UMLメタモデルの変更に対応した ダイアグラム間整合性検証環境の 自動生成手法 井上研究室 博士前期課程2年 浜口 優 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 概要 仕様の変更に柔軟に対応可能なUMLモデル検証 環境を自動生成する手法を提案 モデル駆動型開発を支援するフレームワークを用いて, UMLモデル検証環境のソースコードを自動生成 支援ツールを作成 生成するUMLモデルと制約を管理 クラス図とシーケンス図間の整合性検証に適用し て実験的に評価 修士論文発表会 2008/2/15 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 2 研究背景 モデル駆動型開発(Model-Driven Development, MDD) 対象に関する知識を「モデル」に変換して行うソフトウェア開発手法 UML(Unified Modeling Language) オブジェクト指向システム開発における表記法 工程3 工程2 工程1 修正・ 詳細化 修正・ 詳細化 不整合が発生 複数の視点から複数の図を記述 不整合が発生する(例.名前要素の不一致 etc…) UMLダイアグラム間の整合性を保つことが必要 修士論文発表会 2008/2/15 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 3 既存研究 各々のUMLモデルに対して依存関係を解析して検証 あらかじめ用意された整合性ルールしか検証できない UMLモデルの仕様に対して整合性ルールを付加して検証 整合性ルールをOCL制約式などを用いて表現する 同じ仕様に基づく任意のUMLモデルに対して整合性検証が可能 UMLモデル の仕様 整合性ルール UMLメタモデル インスタンス化 インスタンス化 検証処理系 検証ツール UMLモデルA UMLモデルB 修士論文発表会 2008/2/15 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 4 UMLメタモデル UMLモデルの仕様 UMLで記述されている M3 MOF インスタンス化 モデル要素 名前 M2 UMLメタモデル インスタンス化 特徴 * 分類子 M1 UMLモデル インスタンス化 属性 操作 インターフェイス クラス 簡略化したUML メタモデル(クラス図に関係する部分) 修士論文発表会 M0 ユーザオブジェクト UMLのメタモデル4層 2008/2/15 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 5 既存研究の問題点 UMLメタモデルは変更される可能性がある 開発チームが使用しているUMLメタモデルが変更される ドメインに特化したUMLメタモデルに拡張される UMLメタモデルV2用に 作り直した検証ツール UMLメタモデルV1に 対応した既存の検証ツール UMLメタモデルV1 UMLメタモデルV2 変更 インスタンス化 インスタンス化 検証 UML モデルA 検証処理系 ツールを 作り直して 検証 インスタンス化 UML モデルC UML モデルB 修士論文発表会 インスタンス化 検証処理系 UML モデルD 2008/2/15 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 6 本研究の目的 UMLメタモデルの変更に柔軟に対応できる UMLダイアグラム間整合性検証環境の生成手法の実現 UMLメタモデルV1に 対応した既存の検証ツール UMLメタモデルV1 自動生成 システム 生成 インスタンス化 検証処理系 UMLメタモデルV2 生成 インスタンス化 インスタンス化 検証 UML モデルA UMLメタモデルV2に 基づいて生成した検証ツール インスタンス化 検証 UML モデルC UML モデルB 修士論文発表会 検証処理系 UML モデルD 2008/2/15 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 7 方針 自動生成システムに必要な機能 UMLメタモデルの入力機能 UMLメタモデルに基づいて検証ツールを生成する機能 生成される検証ツールに必要な機能 UMLモデルの入力機能 検証処理系 既存のモデリングフレームワークを応用 EMF(Eclipse Modeling Framework)を応用 UMLメタモデル階層とEMFモデル階層の対応付け 修士論文発表会 2008/2/15 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 8 EMF(Eclipse Modeling Framework) モデル記述とコード生成のためのフレームワーク モデルを入力することでモデルのインスタンス編集環境を コード生成 EMF モデル EMFモデル 入力 Meta Level M1 コード生成 記述 モデルの インスタンス編集環境 M0 ⇒入力したモデルをメタモデルとしたモデルエディタを生成可能 修士論文発表会 2008/2/15 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 9 提案手法 UMLメタモデル階層とEMFモデル階層の対応付け モデルのインスタンス編集環境においてUMLモデルの記述が可能 Essential MOF M3 インスタンス化 MOF インスタンス化 M2 EMFモデル 入力可能 UMLメタモデル インスタンス化 コード生成 インスタンス化 モデルの インスタンス編集環境 M1 UMLモデル インスタンス化 M0 修士論文発表会 ユーザオブジェクト 2008/2/15 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 10 提案する検証システムの概要 UMLメタモデルと整合性ルールをEMFに入力し, UMLモデル検証環境を自動生成する 整合性ルール (OCL式) UMLメタモデル EMF Meta Level EMFモデル 入力 M2 コード生成 記述 M1 整合性検証 検証結果出力 UMLモデル検証環境 修士論文発表会 2008/2/15 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 11 実験概要 目的 異なるバージョンのUMLメタモデルであっても 同様に整合性検証が可能かを評価 実験対象1 実験対象2 UML2.0メタモデル に基づくクラス図とシーケンス図間 の整合性検証 UML2.1.1メタモデル に基づくクラス図とシーケンス図間 の整合性検証 修士論文発表会 2008/2/15 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 12 実験対象1:バージョン2.0の整合性検証 入力 UML2.0メタモデル 文献のクラス図とシーケンス図間に関する整合性ルール(10個)[2] 記述するUMLダイアグラム クラス図とシーケンス図 UML2.0 メタモデル 入力 UMLダイアグラム間整合性検 記述 証が可能かどうか? 整合性ルール (OCL式) EMF EMFモデル コード生成 整合性検証 検証結果出力 M2 M1 UMLモデル検証環境 [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, 2003 2008/2/15 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 13 実験対象2:バージョン2.1.1の整合性検証 入力 UML2.1.1メタモデル 実験対象1と同じ整合性ルール(10個)[2] 記述するUMLダイアグラム 実験対象1と同じ UML2.1.1 メタモデル 入力 実験対象1と同様に整合性検証が 記述 可能かどうか? 整合性ルールの制約式はどのくらい 検証結果出力 実験対象1から再利用できるのか? 整合性ルール (OCL式) EMF EMFモデル M2 コード生成 整合性検証 M1 UMLモデル検証環境 [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, 2003 2008/2/15 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 14 整合性検証例 違反検出 sd DMaker cd DMaker cd DMaker DrinkMaker + + + + + + setChosenDrink(Drink) : void prepareDrink() : void CoinSlot - DrinkMaker 違反が出力されなくなった :DrinkMaker Container IngredientPortion DrinkMixer chooseDrink(int) : void + getIngredient() : IngredientPortion insertCoin(CoinValue) : void prepareDrink() : void chosenDrink: int returnCoin(CoinValue) : void DrinkRecipe toPay: int + validate(CoinValue) : void + setPrice(int) : void + + addWater(Water) : void CoinContainer addPowder(IngredientPortion) : void Water {leaf}CoinValue + value: CoinValue prepareDrink() IngredientPortion:= getIngredient() - chosenDrink: int Drink+ getWater() : Water + price: int Cocoa wTank :Watertank CoffeePowder DrinkMixer Watertank - totalAmount: int Coin TeaPowder cCont :Container :Tea :DrinkMixer + setChosenDrink(Drink) : void + prepareDrink() : void addPowder(p) Water:= getWater() Drink + addWater(Water) : void + addPowder(IngredientPortion) : void Coffee {leaf} Tea Cocoa {leaf} Coffee {leaf} Tea 1.関連のないクラスのオブジェクト間で メッセージのやりとりをしてはいけない 2.メッセージが未定義ではいけない 修士論文発表会 2008/2/15 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 15 実験結果 実験対象1 (UML2.0メタモデル) 実験対象2 (UML2.1.1メタモデル) 整合性 ルール OCL 制約式 実験結果 整合性 ルール OCL 制約式 実験結果 ルールa 制約式a 検証成功 ルールa 制約式a 検証成功 ルールb 制約式b 検証成功 ルールb 制約式b 検証成功 検証成功 ルールc 制約式 c_d_e 検証成功 ルールd 検証成功 ルールe ルールf 制約式f 検証成功 ルールg 制約式g ルールc ルールd ルールe ルールh ルールi ルールj 制約式 h_i_j 検証成功 制約式 c_d_e 検証成功 ルールf 制約式f 検証成功 検証成功 ルールg 制約式g 検証成功 検証成功 ルールh 検証成功 ルールi 検証成功 ルールj 再利用可能 検証成功 検証成功 制約式 h_i_j 検証成功 検証成功 実験対象1,実験対象2,共に全ての整合性ルールに対して 2008/2/15 修士論文発表会 検証成功 16 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 考察と評価 提案手法により異なるバージョンのUMLメタモデルであっても 同様にUMLダイアグラム間整合性検証を行うことができた UML2.0,UML2.1.1共に,OCL制約式を用いてUMLダイアグラム間整 合性検証が可能であったことを確認 UML2.0用に記述したOCL制約式をUML2.1.1に再利用できた 別の種類のUMLダイアグラム間に対しても整合性検証が可能 だと考えられる クラス図とシーケンス図間の制約と同様にOCL式を記述可能 クラス図とステートマシン図 etc… しかし、OCL式で記述できない整合性ルールも存在した 事前事後条件は不変表明を妨げない etc… 修士論文発表会 2008/2/15 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 17 まとめと今後の課題 UMLメタモデルの変更に対応可能なUMLモデル検 証環境を自動生成する手法を提案 EMFを利用して検証環境のソースコードを自動生成 ツールを作成し,作業を効率化 クラス図とシーケンス図間に関する例題を,異なるUMLメタ モデルの下で適用 今後の課題 より多くのUMLメタモデルのバージョンを用いた評価実験 他の例題への適用 検出した不整合の修正支援機能追加 修士論文発表会 2008/2/15 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 18 ありがとうございました 修士論文発表会 2008/2/15 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 19
© Copyright 2025 ExpyDoc