第 6 章 評価
6.1 提案手法の実装
第 6 章
プレートが
Eclipse Plugin
として生成される.Xtend
はXtext
で作成されたJava
の軽量言語である.Xtext
のフレームワーク の中でも多くの箇所で用いられており,モデル変換やコードテンプレートなどモ デル駆動のために必要な機能が言語機能として実装されている.Xtend
で記述さ れたDSL
はJava
のソースコードに変換されるため,既存のJava
ソフトウェアと の親和性も高い.Graphical Modeling Framework
(GMF
)は,グラフィカルDSL
を作成するた めのフレームワークである.EMF
のメタモデルを元にグラフィカルエディタを作 成でき,入力されたモデルはEMF
のインスタンスモデルとして利用することがで きる.Name Version
Eclipse Modeling Tools[21] Kepler(4.3.1) SR1 Eclipse Modeling Framework[22] 1.1.1
Papyrus UML[23] 0.10.1
Xtext[24] 2.4.3
Xtend[24] 2.4.3
Graphical Modeling Framework[25] 1.7.0
表6.1:
使用環境6.1.2 2 層フィーチャメタモデルの実装
システムプロダクトラインの
2
層フィーチャモデルやハードウェアモデル,ゲー トウェイモデルのモデル定義には,Eclipse Modeling Framework(EMF)を用い た.Eclipse Modeling Framework(EMF)はOMG
のMDA
のMeta Object
Facil-ity(MOF)
を元に実装されたモデル駆動開発のためのフレームワークで,メタモデルの定義やモデル駆動技術のための基盤を提供する.モデル駆動のための多くの ツールが本フレームワークを元に作られている.
フィーチャモデルのメタモデルもまた
EMF
のメタメタモデルであるEcore
を用 いて実装されている(Ecore Feature Model)
.フィーチャモデルのメタモデルは,Ecore Feature Model
のメタモデルを基盤として拡張を加えた.6.1.3 ハードウェアメタモデル,ゲートウェイメタモデルの実装
ハードウェアモデルとゲートウェイモデルのメタモデル定義は
Pupyrus UML
に含まれる
MARTE
プロファイルのメタモデルを元に,本研究の拡張を加えた.6.1.4 DSL の実装
ハードウェア部品
DSL
と回路図DSL
の言語定義は,Xtext
を用いて定義し,言 語メタモデルとエディタを生成した.また,回路図エディタからエクスポートす るネットリストから回路図DSL
への変換には,Rubyで作成した簡易なテキスト 変換プログラムを用いた.ハードウェア部品DSL
からハードウェア部品モデルと 回路図DSL
から回路図モデルへの変換は,Xtend
にてDSL
の言語メタモデルから ハードウェアメタモデルへの変換ルールを記述することで行った.ブロック図
DSL
はグラフィカルDSL
であるため,Graphical Modeling Framework
を用いて定義を行った.ブロック図DSL
のメタモデルは,ハードウェアメタモデル を利用する.このため,上記のようなDSL
からモデルへの変換は必要なく,DSL
で入力した形のままモデルが作成した.6.1.5 モデル変換の実装
ハードウェアフィーチャモデル,ハードウェア部品モデル,ブロック図モデル,
回路図モデルを結合しハードウェアモデルを得るプロセスは,
Xtend
にて定義し た.ハードウェアモデルからゲートウェイモデルへの変換工程もXtend
を用いて 定義した.6.1.6 コード生成の実装
ゲートウェイモデルからゲートウェイドライバへのコード生成もまた,
Xtend
に て定義した.ゲートウェイドライバはC
言語を想定しており,C
言語のソースコー ドのテンプレートとヘッダファイルのためのテンプレートを作成した.6.1.7 モデル駆動型システムプロダクトライン開発環境としての 統合
これらのモデル操作のプロセスに加え,
GUI
上からモデルファイルの選択や変 換の指示などモデルフローの操作を指示できるよう,インタフェースをEclipse
の ビューPlugin
として作成した.Device Driver Model
プロジェクトビュー データシートDSL
ブロック図DSL 生成されたデバイスドライバモデル
uml.xml application.xmi
モデル変換フロー
データシート モデルの選択
ブロック図モデルの選択
回路図モデルの選択
統合されたハードウェアモデル 生成されたデバイスドライバモデル
図
6.1:
統合環境の実行画面実装した統合環境の実行画面を図
6.1
に示す.作成した環境は大きくプロジェク トビュー.モデルの入力部(
図中のデータシートDSL
,ブロック図DSL)
と出力確 認部(図中の生成されたデバイスドライバモデル),モデル変換フローに分けられ る.プロジェクトビューにはプロジェクトに含まれるモデルやファイルを表示す る.モデルの入力はデータシートDSL,ブロック図 DSL,回路図 DSL
に応じた三 種類のDSL
エディタを用いた.モデル変換フローでは入力したモデルを選択し,ハードウェアモデルの統合,ゲートウェイドライバモデルへの変換,コード生成 といった各変換作業を行った.生成されたモデルは出力ビューで確認した.
ドキュメント内
JAIST Repository https://dspace.jaist.ac.jp/
(ページ 78-82)