Presentation is loading. Please wait.

Presentation is loading. Please wait.

関心事指向アーキテクチャモデリング環 境 Concern-oriented Architecture Modeling Environment 九州工業大学大学院情報工学府 情報科学専攻 鵜林研究室 M1 佐藤 友紀 1.

Similar presentations


Presentation on theme: "関心事指向アーキテクチャモデリング環 境 Concern-oriented Architecture Modeling Environment 九州工業大学大学院情報工学府 情報科学専攻 鵜林研究室 M1 佐藤 友紀 1."— Presentation transcript:

1 関心事指向アーキテクチャモデリング環 境 Concern-oriented Architecture Modeling Environment 九州工業大学大学院情報工学府 情報科学専攻 鵜林研究室 M1 佐藤 友紀 1

2 研究の概要  モデルレベルから 関心事指向を用いた実装を実現す る これまでに研究されてきた 関心事指向の AOP 言語 [ASE2007] コードレベル 更に進めて モデルレベル 2

3 3 発表の流れ 1. 問題意識 2. 関心事指向プログラミングによる解 決 3. モデリング開発環境 ccModeler 4. 実装方法 5. 関連研究 6. まとめ

4 問題意識 4

5  オブジェクト指向プログラミング ( OOP:Object-Oriented Programming )  アスペクト指向プログラミング (AOP : Aspect-Oriented Programming)  OOP で分離できなかった関心事を分離する  ロギング処理のような関心事を 1 つのモジュール に! 5 アスペクト指向プログラミング AOP の欠点とは … ?

6 6 AOP の問題点 1 図形(点と線)を描画するプログラム 図形の描画、移動があれば画面を更新 update  簡易図形エディタの例  エディタの概要 LinePoint void set(){ } void moveBy(){ } void set(){ } void moveBy(){ } void update(){ } Display アスペクト アドバイス Display ポイントカット pointcut change(): execution(void set()) || execution(void moveBy()) ; before : change() { update(); } 織り込み Display.update() ; 横断的関心事

7 7 AOP の問題点 2  画面の更新が行われているか ポイントカット Display Point set() moveBy() Line set() moveBy() 基本的 横断的 アスペクト 問題点 関心事は、状況によって基本的にも横断的にもなる アスペクトの再利用は必ずしも可能ではない アドバイス update() 基本的 アスペクト ポイントカット Logging 横断的 アドバイス log() ?

8 関心事指向プログラミングによる解 決 8

9 関心事指向プログラミング 1  ccJava ( AOP 言語)  関心事を全てクラスとして記述  関心事を織り合わせて、合成を行う  従来の問題点を解決  基本的・横断的の切り替えが可能  再利用性が高い  有用性  予期せぬ織り込みの防止  → 公開した箇所だけが、織り込みの対象 [ASE2007] OK! 9

10 10 関心事指向プログラミング 2  織り込みインタフェース  「基本的」「横断的」切り替えを可能にする ccJava イメージ図 [ASE2007]  ccJava 構成要素  クラス  織り込みインタフェース  weave ステートメント 織り込みに関する仕様をポイントカットで 記述 public w_interface wDisplay{ pointcut draw():execution(void update()); import before(), after() returning :draw(); export draw(); } ccJava コード 他から織り込める ポイントを公開 織り込みに使える メソッドを公開 draw() log() weave{ ・ ・ ・ connect(port1:wDisplay.draw, port2:wLine.change){ after() returning:port2{port1.proceed();}} connect(port1:wLogging.log, port2:wDisplay.draw){ after() returning:port2{port1.proceed();}} } wDisplay wLine wLogging Line set() moveBy() Display Logging update() log()

11 11 研究の目的  ccJava の考え方を、モデリング環境に拡 張  関心事ベースの設計支援  織り込みの適用範囲の視覚化  関心事やアーキテクチャの再利用 関心事を全てコンポーネントとして扱う 織り込みには関連を用いる 関心事ベースのモデリング開発環境 ccModeler を提案

12  最終的に ccModeler が目指すところ 研究の位置付け 12 wLine Line set() Display update() moveBy() ccJava コード wDisplay アーキテクチャのモデリング 設計したモデルの検証 検証後のモデルからのコード生成 今回は、アーキテクチャのモデリングを行う部分を作成

13 モデリング開発環境 ccModeler 13

14 モデリング開発環境 ccModeler モデル駆動開発 ccGenerator ccJavaAspectJ ccEditor ccJava の概念を取り入れたモデル Component-and-Connector アーキテクチャを採用 → 関心事をコンポーネント、合成をコネクタで表現 ccGenerator モデルから ccJava のコード生成を行う 14

15 15 簡易図形エディタのモデル全体像 関心事 織り込みインタフェース ポイントカット リスト 織り込み線

16 public w_interface wDisplay{ pointcut draw():execution(void update()); import before(), after() returning :draw(); export draw(); } ccJava コード 織り込みインタフェース  Component 表示  例: Display 織り込みインタフェース 16 画面の再描画 メソッドを指定 織り込めるメソッド として宣言 他から織り込め る 箇所として宣言

17 関心事の合成  Connector 表示 weave{ ・ ・ ・ connect(port1:wDisplay.draw, port2:wPoint.change){ after() returning:port2{port1.proceed();} } ccJava コード 合成 17

18  編集上のチェック  入力必要項目  属性名の重複  モデル特有のチェック  ポイントカットの宣言と指定との対応 OCL によるエラーチェック 18

19 実装方法 19

20 実装方法 1  EMF ( Eclipse Modeling Framework )  モデリングフレームワーク  メタモデルが記述できる  GMF ( Graphical Modeling Framework )  グラフィカルエディタのフレームワーク  メタモデルからグラフィカルなエディタを生成 20

21 実装方法 2 21 EMF GMF ツール定義モデル 生成 Class Connect … ドメインモデ ル (メタモデ ル) グラフ定義モデ ル … ccEdito r Rectangle Connection マッピング定義モデ ル + OCL による制約の定 義 メタモデルを定義 使用する図形を定義 各モデルの対応 21

22 22 実装方法 3  ccModeler のメタモデルの一部 織り込み インタフェース 関心事 メタモデルで表現できない制約は OCL で補っている

23 関連研究 23

24 関連研究  AODM  Gray. et al. (2003), An Approach for Supporting Aspect-Oriented Domain Modeling  AspectJ に沿った考え方によるドメイン特化のモデ リング  アスペクトの記述には ECL(Embedded Constraint Language) という言語が必要  The Motorola WEAVR  Cottenier. et al. (2007), The Motorola WEAVER: Model Weaving in a Large Industrial Context 24 どちらも AspectJ に基づいた考え方 ccModeler は関心事指向のモデリング環境である

25 まとめ 25

26 まとめ  cc Java の織り込みインタフェースのメ カニズムを、モデルで表現  Component-and-Connector アーキテク チャ  モデルからコード化までの実現 26

27 今後の課題  モデルベースの検証  モデルが設計者の意図通りかを自動判定  作成したアーキテクチャが要求を反映しているか  モデルに不正確さや曖昧さがないか  現在は OCL によりモデルの文法を簡易的にチェック 形式手法を利用したモデル検証を検討中 27

28 終 28


Download ppt "関心事指向アーキテクチャモデリング環 境 Concern-oriented Architecture Modeling Environment 九州工業大学大学院情報工学府 情報科学専攻 鵜林研究室 M1 佐藤 友紀 1."

Similar presentations


Ads by Google