UMLOCL UML NTT Department of Computer Science Graduate

  • Slides: 25
Download presentation
UMLメタモデル仕様とOCL制約 に基づくUMLモデル検証環境 の生成 大阪大学 浜口 優,長井 栄吾,松下 誠,岡野 浩三, 楠本 真二,井上 克郎 NTTデータ 我妻

UMLメタモデル仕様とOCL制約 に基づくUMLモデル検証環境 の生成 大阪大学 浜口 優,長井 栄吾,松下 誠,岡野 浩三, 楠本 真二,井上 克郎 NTTデータ 我妻 智之,梅村 晃広 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 2007/10/20 ESS 2007 1

不整合の例 n クラス図とシーケンス図間の不整合例 p ビデオオンデマンド(VOD)システム[1] n 不整合1: p n 呼び出し先メソッドが 存在しない 不整合2: p メッセージの方向と

不整合の例 n クラス図とシーケンス図間の不整合例 p ビデオオンデマンド(VOD)システム[1] n 不整合1: p n 呼び出し先メソッドが 存在しない 不整合2: p メッセージの方向と 関連が不一致 [1] A. Egyed, Fixing Inconsistencies in UML Design Models, In Proc. of ICSE 2007 ESS 2007/10/20 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 4

方針 n 研究目的を達成するために必要な機能 p UMLメタモデルの編集機能 p UMLモデルの編集機能 …EMF p 検証処理系 …EMFT_OCL n 既存のモデリングフレームワークを応用 p

方針 n 研究目的を達成するために必要な機能 p UMLメタモデルの編集機能 p UMLモデルの編集機能 …EMF p 検証処理系 …EMFT_OCL n 既存のモデリングフレームワークを応用 p EMF(Eclipse Modeling Framework)を応用 n UMLモデル階層とEMFモデル階層の対応付け ESS 2007/10/20 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 10

EMFT-OCL n EMFT-OCL p OCL (EMF Technology-OCL) 制約の検証 OCL式 インスタンスは OCL 制約 を満たしているのか? EMFモデル

EMFT-OCL n EMFT-OCL p OCL (EMF Technology-OCL) 制約の検証 OCL式 インスタンスは OCL 制約 を満たしているのか? EMFモデル ESS 2007/10/20 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 12

プラグインのUI インスタンス化するUMLダイアグラムの選択 n UMLメタモデルに付加するOCL式の編集 n OCL式リスト UMLダイアグラム 選択部分 OCL式 編集部分 図:プラグインのUI ESS 2007/10/20 Department

プラグインのUI インスタンス化するUMLダイアグラムの選択 n UMLメタモデルに付加するOCL式の編集 n OCL式リスト UMLダイアグラム 選択部分 OCL式 編集部分 図:プラグインのUI ESS 2007/10/20 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 17

プラグインの出力結果 n Mainパッケージ作成 p Rootクラス作成 選択したUMLダイアグラムに 必要なUMLメタモデルを包含 n 編集したOCL式を付加 n main パッケージ Rootクラス OCL式に対応した関数

プラグインの出力結果 n Mainパッケージ作成 p Rootクラス作成 選択したUMLダイアグラムに 必要なUMLメタモデルを包含 n 編集したOCL式を付加 n main パッケージ Rootクラス OCL式に対応した関数 UMLダイアグラムを構築する UMLメタモデルの包含関係 ESS 2007 図:Ecoreモデル 2007/10/20 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 18

Mainモデル検証環境 n Rootクラスを起点としてツリー構造のエ ディタで編集 図:検証結果例 図:Mainモデル検証環境 ESS 2007/10/20 Department of Computer Science, Graduate School

Mainモデル検証環境 n Rootクラスを起点としてツリー構造のエ ディタで編集 図:検証結果例 図:Mainモデル検証環境 ESS 2007/10/20 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 19

実験 n 目的 p n 入力 p p n UML 2. 0メタモデル 文献のクラス図とシーケンス図間に関する整合性ルール(10個)[2] UMLモデル検証環境で記述するUMLダイアグラム

実験 n 目的 p n 入力 p p n UML 2. 0メタモデル 文献のクラス図とシーケンス図間に関する整合性ルール(10個)[2] UMLモデル検証環境で記述するUMLダイアグラム p n 提案手法がUMLダイアグラム間整合性検証に可能かどうか評価 クラス図とシーケンス図 実験環境 p p p OS : CPU : Memory : Eclipse ver : EMF ver : Windows Vista Business Intel(R) Core(TM) 2 CPU 1. 87 GHz 2. 0 GB RAM 3. 2. 0 uml: : interactions: : basicinteractions: : Lifeline. all. Instances()->for. All(l | 2. 2. 0 uml: : classes: : kernel: : Class. all. Instances() ->select(ocl. Is. Type. Of(uml: : classes: : kernel: : Class))->collect(Name) ->includes. All(l->collect(Name)) ) 図:整合性ルールのOCL式表記例 [2] L. C. Briand, Y. Labiche and L. O'Sullivan, Impact Analysis and Change Management of UML Models, Technical Report SCE-03 -01, Carleton University, ESS 20072003 2007/10/20 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 20

実験設定 EMF UML 2. 0メタモデル EMFT_OCL Ecoreモデルエディタ 入力 入力 Ecoreモデル M 2 整合性ルール (OCL式)

実験設定 EMF UML 2. 0メタモデル EMFT_OCL Ecoreモデルエディタ 入力 入力 Ecoreモデル M 2 整合性ルール (OCL式) 自動変換 EMFモデル コード生成 記述 M 1 クラス図 整合性検証 記述 シーケンス図 検証結果出力 UMLモデル検証環境 ESS 2007/10/20 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 21

適用例題 n 概要 Drink. Makerに関するクラス図、シーケンス図 p これらのダイアグラム中に、UMLダイアグラムで最もよく起こる とされる不整合である「関連の引き忘れ」がある[3] 1.関連のないクラスのオブジェクト間で メッセージのやりとりをしている 2.メッセージが未定義 調査した産業用UMLモデル 2つ において、引くべき関連のうち

適用例題 n 概要 Drink. Makerに関するクラス図、シーケンス図 p これらのダイアグラム中に、UMLダイアグラムで最もよく起こる とされる不整合である「関連の引き忘れ」がある[3] 1.関連のないクラスのオブジェクト間で メッセージのやりとりをしている 2.メッセージが未定義 調査した産業用UMLモデル 2つ において、引くべき関連のうち 約70%が忘れられていた[4] [3] K. Ludwik and S. Miroslaw, Inconsistencies in Student Designs, In Proc. of Workshop on Consistency Problems in UML-based Software Development, 2003 [4] C. Lange, M. R. V. Chaudron, J. Muskens , L. J. Somers and H. M. Dortmans, An Empirical Investigation in Quantifying Inconsistency and Incompleteness of UML Designs, In Proc. of Workshop on Consistency Problems in UML-based Software Development, 2003 ESS 2007/10/20 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 22

不整合の検出 違反検出 cd DMaker Drink. Maker + + + set. Chosen. Drink(Drink) : void

不整合の検出 違反検出 cd DMaker Drink. Maker + + + set. Chosen. Drink(Drink) : void prepare. Drink() : void Coin. Slot - 違反が出力されなくなった Container Ingredient. Portion Drink. Mixer choose. Drink(int) : void + get. Ingredient() : Ingredient. Portion insert. Coin(Coin. Value) : void prepare. Drink() : void chosen. Drink: int return. Coin(Coin. Value) : void Drink. Recipe to. Pay: int + validate(Coin. Value) : void + set. Price(int) : void + + - chosen. Drink: int Drink+ get. Water() : Water + price: int add. Water(Water) : void Coin. Container add. Powder(Ingredient. Portion) : void Water Cocoa {leaf}Coin. Value + value: Coin. Value Coffee. Powder Drink. Mixer Watertank - total. Amount: int Coin Tea. Powder + set. Chosen. Drink(Drink) : void + prepare. Drink() : void Drink + add. Water(Water) : void + add. Powder(Ingredient. Portion) : void Coffee {leaf} Tea Cocoa {leaf} Coffee {leaf} Tea 1.関連のないクラスのオブジェクト間で メッセージのやりとりをしてはいけない 2.メッセージが未定義ではいけない ESS 2007/10/20 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 23