H18年度共同研究最終報告会

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