UMLOCL UML NTT Department of Computer Science Graduate
- Slides: 25
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 メッセージの方向と 関連が不一致 [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 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モデル 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 of Computer Science, Graduate School of Information Science & Technology, Osaka University 17
プラグインの出力結果 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 of Information Science & Technology, Osaka University 19
実験 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モデル コード生成 記述 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つ において、引くべき関連のうち 約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 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
- Uml diagram computer science
- Uml computer science
- Solutionary ntt acquisition
- Edelivery surabaya
- Ntt sla
- Struktur polda sumut 2020
- Arcstar enterprise streaming
- Ntt data
- Ntt docomo, inc
- Music recommendation dataset
- Ntt cti
- Ucl meng computer science
- Northwestern computer science department
- Computer science department rutgers
- Computer science department stanford
- Mch fsu
- Ubc computer science department
- Bhargavi goswami
- Columbia university department of computer science
- Uml 2
- Oussep
- Science my favourite subject
- Uml political science
- Department of forensic science dc
- Oh.nesinc
- Dmse