UMLメタモデル仕様とOCL制約に基づくUMLモデル検証環境の生成

Slides:



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

OWL-Sを用いたWebアプリケーションの検査と生成
メタモデル記述を用いた成果物間の依存関係追跡手法
シーケンス図の生成のための実行履歴圧縮手法
背景 ソフトウェアの大規模化・複雑化 生産性と品質の向上 ↓ オブジェクト指向分析設計の適用 開発ツールの投入.
XHTML構文検証手法における スクリプト要素の静的解析アルゴリズム
国内線で新千歳空港を利用している航空会社はどこですか?
オブジェクト指向プログラミング(4) 静的分析(2)
クラスその2∽(アドバンス)∽ 福岡工業大学  梶原 大慈       .
情報伝播によるオブジェクト指向プログラム理解支援の提案
3-5 クラス図の関係その3 福本研究室 神田 祐輔.
研究の背景 コードクローン ソースコード中に存在する一致または類似したコード片
3-3 クラス図の関係その2.
CSP記述によるモデル設計と ツールによる検証
リファクタリングのための 変更波及解析を利用した テスト支援ツールの提案
UML入門 UML PRESS vol.1 より 時松誠治 2003年5月19日.
UMLとは           032234 田邊祐司.
プログラム実行履歴を用いたトランザクションファンクション抽出手法
細かい粒度でコードの再利用を可能とするメソッド内メソッドのJava言語への導入
UMLメタモデルの変更に対応した ダイアグラム間整合性検証環境の 自動生成手法
識別子の命名支援を目的とした動詞-目的語関係の辞書構築
その他の図 Chapter 7.
組込みシステムの外部環境分析のためのUMLプロファイル
暗黙的に型付けされる構造体の Java言語への導入
シーケンス図を用いて実行履歴を可視化するデバッグ環境の試作
利用関係に基づく類似度を用いたJavaコンポーネント分類ツールの作成
只見町 インターネット・エコミュージアムの「キーワード」検索の改善
Javaプログラムの変更を支援する 影響波及解析システム
アスペクト指向に基づく 拡張可能な MDAモデルコンパイラ
社会シミュレーションのための モデル作成環境
プログラム動作理解支援を目的とした オブジェクトの振舞いの同値分割手法
オープンソース開発支援のための ソースコード及びメールの履歴対応表示システム
UMLモデルを対象とした リファクタリング候補検出の試み
コードクローン検出に基づくデザイン パターン適用支援手法の提案と実現
Webコミュニティ概念を用いた Webマイニングについての研究 A study on Web Mining Based on Web Communities 清水 洋志.
アスペクト指向言語のための 独立性の高いパッケージシステム
バイトコードを単位とするJavaスライスシステムの試作
シナリオを用いたレビュー手法PBRの追証実験 - UMLで記述された設計仕様書を対象として -
○ 後藤 祥1,吉田 則裕2 ,井岡 正和1 ,井上 克郎1 1大阪大学 2奈良先端科学技術大学院大学
ソフトウェア保守のための コードクローン情報検索ツール
1-3 UMLの図(ダイアグラム) コンポーネント図 システムの物理的な構成を表現 ソフトウェアコンポーネントの依存性を表現
コードクローンの理解支援を目的としたコードクローン周辺コードの解析
コードクローン分類の詳細化に基づく 集約パターンの提案と評価
UMLの概要とオブジェクト指向の基本概念
プログラムの織り込み関係を可視化するアウトラインビューの提案と実装
コーディングパターンの あいまい検索の提案と実装
拡張可能なアスペクト指向モデリングにおける織り合わせの検証
JavaScriptを含んだHTML文書に対する データフロー解析を用いた構文検証手法の提案
コードクローン間の依存関係に基づく リファクタリング支援環境の実装
オブジェクト指向言語論 第十二回 知能情報学部 新田直也.
仮想マシンと物理マシンを一元管理するための仮想AMT
設計情報の再利用を目的とした UML図の自動推薦ツール
保守請負時を対象とした 労力見積のためのメトリクスの提案
コードクローン間の依存関係に基づく リファクタリング支援手法の提案と実現
アスペクト指向言語のための視点に応じた編集を可能にするツール
プログラムの差分記述を 容易に行うための レイヤー機構付きIDEの提案
メソッドの同時更新履歴を用いたクラスの機能別分類法
ソフトウェア工学 知能情報学部 新田直也.
ソフトウェア工学 理工学部 情報システム工学科 新田直也.
プログラム分散化のための アスペクト指向言語
UMLモデルを対象とした リファクタリング候補検出手法の提案と実現
開発者との対話を活かした 横断的構造の表現
ソフトウェア工学 知能情報学部 新田直也.
複雑度メトリクスを用いた JAVAプログラム品質特性の実験的評価
コードクローン解析に基づく デザインパターン適用候補の検出手法
回帰テストにおける実行系列の差分の効率的な検出手法
木構造の比較に基づく メソッド呼び出し履歴の変化の可視化手法
オブジェクト指向言語における セキュリティ解析アルゴリズムの提案と実現
識別子の読解を目的とした名詞辞書の作成方法の一試案
Presentation transcript:

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

概要 仕様の変更に柔軟に対応可能なUMLモデル検証環境を自動生成する手法を提案 クラス図とシーケンス図間の整合性検証に適用して実験的に評価 支援ツールを作成 生成するUMLモデルと制約を管理 クラス図とシーケンス図間の整合性検証に適用して実験的に評価 概要を述べます。 仕様の変更に柔軟に対応可能なUMLモデル検証環境を自動生成する 手法を提案しました。モデル駆動型開発を支援するフレームワーク を用いてUMLモデル検証環境のソースコードを自動生成しました。 また、生成するUMLモデルと制約を管理するために支援ツール を作成しました。 予備実験としてクラス図とシーケンス図間の整合性検証に適用して 実験的に評価しました。 ESS2007 2007/10/20

⇒ UMLダイヤグラム間の整合性を保つことが必要 研究背景 モデル駆動開発(Model-Driven Development, MDD) 対象に関する知識を「モデル」に変換して行うソフトウェア開発手法 UML(Unified Modeling Language) オブジェクト指向システム開発における表記法 工程3 工程2 修正・ 詳細化 修正・ 詳細化 工程1 モデル駆動開発MDDは対象に関する知識を「モデル」に変換して 行うソフトウェア開発手法です。近年、オブジェクト指向システム 開発における表記法であるUMLの普及に伴い、注目を集めています。 MDDで一般的に用いられるUMLダイアグラムは工程を進める毎に 修正・詳細化されていきます。クラス図のみであったUMLモデルに シーケンス図など様々な種類のUMLダイアグラムが追加されて いきます。しかし、この各工程間で不整合が発生することがあります。 また複数の視点から複数のダイアグラムを記述するので各ダイアグラム は完全に独立していません。工程内でも不整合は発生することがあります。 従ってUMLダイアグラム間の整合性を保つことが必要です。 今回私はb.の工程内における不整合に着目しています。 b. 複数の視点から複数の図を記述    (完全に独立していない)   ⇒ 工程内で不整合が発生 a. 各工程において、修正・詳細化 ⇒ 工程間で不整合が発生 ⇒ UMLダイヤグラム間の整合性を保つことが必要 ESS2007 2007/10/20

不整合の例 クラス図とシーケンス図間の不整合例 ビデオオンデマンド(VOD)システム[1] 不整合1: 不整合2: 呼び出し先メソッドが存在しない 不整合2: メッセージの方向と関連が不一致 不整合の例について紹介します。図はビデオオンデマンドシステムの クラス図とシーケンス図です。クラス図で記述している各クラスが どのようなやり取りをするのかを記述しているのが下のシーケンス図 になります。したがってクラス図とシーケンス図には密接な関係 があります。 しかしこのダイアグラムは2つの不整合を含んでいます。 1つめは呼び出し先メソッドが存在しない不整合です。 DisplayクラスのオブジェクトdispはStreamerクラスのオブジェクトstに Connect()メソッドを呼び出していますが、Streamerクラスに Connect()メソッドは存在しません。 2つめはメッセージの方向と関連の不一致です。Streamerクラスから Displayクラスに対して関連が引かれているのに、シーケンス図では dispからstの各メソッドを呼び出しています。これは関連の方向を 逆にしなければなりません。 [1] A. Egyed, Fixing Inconsistencies in UML Design Models, In Proc. of ICSE2007 ESS2007 2007/10/20

既存研究 UMLモデルの仕様に対して整合性ルールを付加して検証 UMLメタモデル 利点 整合性ルールにOCL制約式を利用 USE,OCLE etc.. 整合性ルールに独自の制約式を利用 UML/Analyzer etc.. 仕様 整合性ルール UMLメタモデル インスタンス化 インスタンス化 既存研究ではいくつかのツールがUMLモデルの仕様、 つまりUMLメタモデルに対して整合性ルールを付加 することで検証を行っています。UMLメタモデルに 対して整合性ルールを付加することでインスタンス化された UMLモデルに対して整合性検証が可能になります。 整合性ルールにはOCL制約式や独自の制約式を利用しています。 利点は同一仕様に基づく任意のUMLモデルに対して整合性検証 が可能な点です。 次にUMLメタモデルとOCLについて紹介します。 検証処理系 UMLモデルA UMLモデルB 利点 同一仕様に基づく任意のUMLモデルに対して整合性検証が可能 ESS2007 2007/10/20

簡略化したUML メタモデル(クラス図に関係する部分) UMLについてのUMLモデル M3 MOF インスタンス化 モデル要素 名前 M2 UMLメタモデル インスタンス化 * 特徴 分類子 M1 UMLモデル インスタンス化 UMLメタモデルとはUMLについてのUMLモデルです。 左の図が簡略化したUMLメタモデルの一部で、クラス図 のクラスについて定義しています。この図からクラスは 分類子を継承し、名前、属性、操作を持つことが分かります。 右の図はUMLのメタモデル4層です。UMLは4つの階層のモデル によって定義されます。最上位のMOFモデルがUMLメタモデル を定義し、UMLメタモデルがUMLモデルを定義し、UMLモデル がユーザオブジェクトを定義しています。 属性 操作 インターフェイス クラス M0 ユーザオブジェクト 簡略化したUML メタモデル(クラス図に関係する部分) UMLのメタモデル4層 ESS2007 2007/10/20

OCL(Object Constraint Language) UMLモデル内のモデル要素に対して制約を与えるために導入された制約記述言語 クラスの詳細仕様を決定 第一階述語論理に基づく 論理式 (真ならば制約を満たす) context ClassA inv: self.name = ‘client’ OCL式記述例 OCL式 インスタンス化 インスタンス クラス OCL(Object Constraint Language)はUMLモデル内のモデル要素 に対して制約を与えるために導入された制約記述言語です。 クラスの詳細仕様を決定します。第一階述語論理に基づき 論理式で表され、真ならば制約を満たすことになります。 下の図のようにクラスにOCL式を付加し、クラスのインスタンスに 対してOCL式の記述通りの動作でなくてはならないことを保証します。 右の図はOCL式の表記例です。クラスAのname属性はclientで なくてはならないという不変式になっています。 不変表明 事前事後条件 派生属性値の設定 etc…. OCL式の記述通りの動作 ESS2007 2007/10/20

既存研究の問題点 既存研究ではUMLメタモデルの変更に対応できない 頻繁なバージョンチェンジを行うUMLメタモデルに逐一対応する必要あり UMLメタモデルB 変更不可 UMLメタモデルA 整合性ルール 整合性 ルール 変更不可 UMLメタモデルC インスタンス化 インスタンス化 既存研究を調べた結果、UMLメタモデルの変更に対応できないという 問題点があることが分かりました。UMLメタモデルには複数のバージョンが 存在し、バージョンチェンジも頻繁に行われます。したがって既存研究 ではツール内で逐一対応する必要があります。また、以前のバージョン のUMLメタモデルからインスタンス化されたUMLダイアグラムのような 過去の設計資産の再利用も困難になります。また、同様にドメインに 特化したUMLメタモデルにも対応することができません。 整合性 ルール 検証処理系 UMLモデルA UMLモデルB ESS2007 2007/10/20

研究内容 本研究の目的 UMLメタモデルの変更に柔軟に対応した UMLダイアグラム間整合性検証環境の生成 変更可 変更可 UMLモデルA ルール 整合性ルール UML メタモデルB 変更可 インスタンス化 インスタンス化 これまでの内容を踏まえて、本研究の目的は UMLメタモデルの変更に柔軟に対応した UMLダイアグラム間整合性検証環境の生成です。 任意のUMLメタモデルを用いて検証を行うことが できる検証システムを考案します。 整合性 ルール UML メタモデルC 検証処理系 UMLモデルA UMLモデルB ESS2007 2007/10/20

方針 研究目的を達成するために必要な機能 既存のモデリングフレームワークを応用 UMLメタモデルの編集機能 UMLモデルの編集機能 検証処理系 既存のモデリングフレームワークを応用 EMF(Eclipse Modeling Framework)を応用 UMLモデル階層とEMFモデル階層の対応付け …EMF …EMFT_OCL ここで研究目的を達成するために必要な機能について 整理します。大きく分けてUMLメタモデルの編集機能と 対応したUMLモデルの編集機能とそのUMLモデルに対する 検証処理系が必要になります。 そこで本研究では、既存のモデリングフレームワークを 応用できないかと考えました。で、モデリングフレームワーク の1つであるEMFを応用し、UMLモデル階層とEMFモデル階層の 対応付けを行うことを考案しました。上記2つに関してはEMFが 編集機能を提供し、検証処理系に関してはEMFに付属する EMFT_OCLプラグインにより提供されることになります。 詳細は後程述べます。 ESS2007 2007/10/20

EMF(Eclipse Modeling Framework) モデル記述とコード生成のためのフレームワーク モデル駆動型アーキテクチャ(MDA)をサポート M2 Essential MOF MDAに基づいて、Ecoreモデルからモデルのインスタンス編集環境をコード生成 インスタンス化 Ecoreモデル(PIM) M1 自動変換 XMI形式に基づく木構造で管理 インスタンス インスタンス間の関連 木構造に基づくユーザインターフェース EMFモデル(PSM) インスタンス化 コード生成 EMF(Eclipse Modeling Framework)はモデル記述とコード 生成のためのフレームワークです。モデル駆動型アーキテクチャ (MDA)をサポートしています。 このMDAに基づいて、Ecoreモデルからモデルのインスタンス 編集環境を自動でコード生成します。生成されたインスタンス 編集環境ではインスタンスやインスタンス間の関連をXMI形式に 基づく木構造で管理し、そのユーザインターフェイスを提供 しています。EMFもUMLと同様に右の図のようにメタモデル階層 が存在します。EMOFモデルがEcoreモデルを定義し、Ecoreモデル からEMFモデルへの自動変換を行った後、EMFモデルからモデル のインスタンス編集環境のソースコードを自動生成することができます。 要するにEcoreモデルをメタモデルとしたXMI形式に基づく木構造の モデルエディタを作成することができるということです。 モデルの インスタンス編集環境 M0 EMFのメタモデル3層 ⇒ Ecoreモデルをメタモデルとした木構造のモデルエディタを生成可能 ESS2007 2007/10/20

EMFT-OCL EMFT-OCL (EMF Technology-OCL) OCL 制約の検証 インスタンスは OCL 制約 また、EMFにはEMFT-OCLプラグインがあり、OCL制約の検証を サポートしています。EMFモデルにOCL式を追加することで、 先程のモデルのインスタンス編集環境においてインスタンスがOCL制約 を満たしているのかどうかを検証することができます。 インスタンスは OCL 制約 を満たしているのか? EMFモデル ESS2007 2007/10/20

提案手法 UMLモデル階層とEMFモデル階層の対応付け M3 M2 M1 M0 Ecore、EMFモデルとUMLメタモデルを対応させれば検証可能 Essential MOF M3 MOF インスタンス化 インスタンス化 M2 Ecoreモデル(PIM) UMLメタモデル 自動変換 EMFモデル(PSM) インスタンス化 OCL式 インスタンス化 コード生成 よってこれらから、提案手法ではUMLモデル階層とEMFモデル階層 の対応付けを行うことにしました。Ecore、EMFモデルとUMLメタモデルを 対応させることで、EMF上でUMLモデルエディタがコード生成されます。 また、UMLメタモデルと対応するEcore、EMFモデル に対してOCL制約式を付加することで、UMLモデルエディタ においてEMFT_OCLプラグインによるOCL式を用いた 検証が可能になります。 モデルの インスタンス編集環境 M1 UMLモデル インスタンス化 EMFT_OCL によりOCL式を用いた検証が可能 M0 ユーザオブジェクト ESS2007 2007/10/20

提案する検証システムの概要 M2 M1 検証結果出力 EMF EMFT_OCL UMLメタモデル 入力 入力 整合性ルール (OCL式) UMLメタモデルと整合性ルールをEMFの入力として与え、UMLモデル検証環境を自動生成する EMF EMFT_OCL Ecoreモデルエディタ UMLメタモデル 入力 入力 整合性ルール (OCL式) Ecoreモデル M2 自動変換 EMFモデル コード生成 記述 そして提案する検証システムの概要は以下の通りになります。 EMFにUMLメタモデルと整合性ルールを記述したOCL式を入力として与えます。 そしてEcoreモデルが生成され、EcoreモデルはEMFモデルに自動変換され、 EMFモデルからインスタンス化されたUMLモデル検証環境が自動生成されます。 自動生成されたUMLモデル検証環境において各UMLモデルを記述し、 整合性ルールを検証することが可能になります。 この四角で囲まれた部分が検証システム提供者の仕事で、それ以外 が検証者の仕事になります。 記述 M1 整合性検証 記述 検証結果出力 UMLモデル検証環境 ESS2007 2007/10/20

⇒ 必要な全クラスと関連を持つクラスをEcoreモデルに追加する 検証システム実現の問題点 インスタンス編集環境はパッケージ毎に生成 クラスのインスタンスをルートとして木構造で管理 ルートと関連を持たないクラスはインスタンス化できない Ecoreモデル Root B A M2 V T U S r1:Root s1:S XMI形式 UMLモデル検証環境構築には複数パッケージ内のクラスが必要 互いに関連を持たないクラスどうしも存在 u1:U <s1> <u1>…</u1> <t1>…</t1> <tn>…</tn> </s1> <r1> <s1>…</s1> <u1>…</u1> <t1>…</t1> <tn>…</tn> <v1>…</v1> </r1> M1 t1:T v1:V しかし、この検証システムを実装するにあたり、EMFの仕様が 原因で発生する問題点がありました。 EMFの仕様では、右の図のようにインスタンス編集環境がEcoreモデル内 のパッケージ毎に生成されます。そして、そのパッケージ内の1クラス のインスタンスをルートとして木構造で管理することになります。 また、ルートと関連を持たないクラスはインスタンス化することが できません。(例紹介) しかし、UMLモデル検証環境構築には複数パッケージ内のクラスが 必要になります。当然それらには互いに関連を持たないクラスどうしも 存在します。したがって今のままでは適切にUMLモデル検証環境を 構築することができません。 そこで、構築に必要な全クラスと関連を持つクラスをEcoreモデルに 追加することにしました。必要な全クラスと関連を持つRootクラス を追加し、Rootクラスのインスタンスをルートとすることで、全ての クラスインスタンスを生成することが可能になります。 Aモデル インスタンス編集環境 tn:T 構築できない ⇒ 必要な全クラスと関連を持つクラスをEcoreモデルに追加する ESS2007 2007/10/20

検証システム実現のためのプラグイン Ecoreモデルエディタの拡張 プラグインによる自動化 プラグイン 導入 Ecoreモデル Root mainパッケージ作成 各UMLダイアグラムに必要なUMLメタモデル要素を包含 プラグイン 導入 Ecoreモデル Root main A B インスタンス化 インスタンス化 インスタンス化 EMFモデル 一連の作業を支援するためにEcoreモデルエディタを拡張しました。 プラグインによってRootクラスを含むmainパッケージがEcoreモデルに 作成され、Rootクラスは各UMLダイアグラムに必要なUMLメタモデル要素 を包含します。mainパッケージから生成されるmainモデル検証環境では 適切に各UMLダイアグラムを編集することが可能になります。 また、各UMLダイアグラムに必要なUMLメタモデル要素は UMLの仕様書から特定しました。 Aモデル 検証環境 Bモデル 検証環境 Mainモデル 検証環境 UMLモデル検証環境 ESS2007 2007/10/20

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

プラグインの出力結果 Mainパッケージ作成 Rootクラス作成 選択したUMLダイアグラムに必要なUMLメタモデルを包含 編集したOCL式を付加 main パッケージ Rootクラス OCL式に対応した関数 図はプラグインの出力が反映されたEcoreモデルです。 mainパッケージが作成され、Rootクラスが作成されます。 Rootクラスは選択したUMLダイアグラムの構築に必要な UMLメタモデルを包含します。構築に必要なUMLメタモデル内の モデル要素はUMLの仕様書から特定しました。 そして編集したOCL式もRootクラスに付加します。 UMLダイアグラムを構築するUMLメタモデルの包含関係 図:Ecoreモデル ESS2007 2007/10/20

Mainモデル検証環境 Rootクラスを起点としてツリー構造のエディタで編集 図:検証結果例 図:Mainモデル検証環境 ESS2007 2007/10/20

実験 目的 入力 UMLモデル検証環境で記述するUMLダイアグラム 実験環境 提案手法がUMLダイアグラム間整合性検証に可能かどうか評価 文献のクラス図とシーケンス図間に関する整合性ルール(10個)[2] UMLモデル検証環境で記述するUMLダイアグラム クラス図とシーケンス図 実験環境 OS : Windows Vista Business CPU : Intel(R) Core(TM) 2 CPU 1.87GHz Memory : 2.0GB RAM Eclipse ver : 3.2.0 EMF ver : 2.2.0 uml::interactions::basicinteractions::Lifeline.allInstances()->forAll(l | uml::classes::kernel::Class.allInstances() ->select(oclIsTypeOf(uml::classes::kernel::Class))->collect(Name) ->includesAll(l->collect(Name)) ) おこなった実験について述べます。目的は提案手法がUMLダイアグラム間 整合性検証が可能かどうかの評価です。 入力はUMLバージョン2.0のメタモデルと、カールトン大学で提案されている クラス図とシーケンス図間に関する10個のルールです。 UMLモデル検証環境で記述するUMLダイアグラムはクラス図とシーケンス図です。 図は整合性ルールのOCL式表記例です。意味はシーケンス図内の各オブジェクト は必ずクラス図で定義されていなければならないという制約です。このような OCL式が10個存在します。実験環境は以下のようになります。 図:整合性ルールの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, 2003 ESS2007 2007/10/20

実験設定 M2 M1 検証結果出力 EMF EMFT_OCL UML2.0メタモデル 入力 入力 整合性ルール (OCL式) Ecoreモデルエディタ UML2.0メタモデル 入力 入力 整合性ルール (OCL式) Ecoreモデル M2 自動変換 EMFモデル コード生成 記述 検証システムと対応させると以下のようになります。 M1 クラス図 検証結果出力 整合性検証 記述 UMLモデル検証環境 シーケンス図 ESS2007 2007/10/20

調査した産業用UMLモデル2つにおいて、引くべき関連のうち約70%が忘れられていた[4] 適用例題 概要 DrinkMakerに関するクラス図、シーケンス図 これらのダイアグラム中に、UMLダイアグラムで最もよく起こるとされる不整合である「関連の引き忘れ」がある[3] 調査した産業用UMLモデル2つにおいて、引くべき関連のうち約70%が忘れられていた[4] 1.関連のないクラスのオブジェクト間で   メッセージのやりとりをしている 2.メッセージが未定義 適用した例題はDrinkMakerに関するクラス図とシーケンス図です。 DrinkMakerはコーヒーや紅茶などの飲料を作るシステムです。 これらのダイアグラム中にはUMLダイアグラムで最もよく起こる とされる不整合である関連の引き忘れをあります。 具体的には、関連のないクラスのオブジェクト間でメッセージの やりとりをしているというものとメッセージが未定義であると いうものです。 [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 ESS2007 2007/10/20

不整合の検出 違反検出 違反が出力されなくなった 1.関連のないクラスのオブジェクト間で メッセージのやりとりをしてはいけない cd DMaker DrinkMixer - chosenDrink: int + setChosenDrink(Drink) : void prepareDrink() : void Coffee {leaf} Cocoa Drink addWater(Water) : void addPowder(IngredientPortion) : void Tea cd DMaker 違反が出力されなくなった DrinkMaker Container IngredientPortion + chooseDrink(int) : void + insertCoin(CoinValue) : void + getIngredient() : IngredientPortion + prepareDrink() : void + returnCoin(CoinValue) : void TeaPowder CoffeePowder CoinSlot DrinkRecipe Watertank DrinkMixer - toPay: int - chosenDrink: int + price: int + getWater() : Water + validate(CoinValue) : void + setPrice(int) : void + setChosenDrink(Drink) : void + prepareDrink() : void CoinContainer Water - totalAmount: int Drink これがドリンクメーカーのクラス図とシーケンス図です。 この赤く囲まれた部分を利用します。このクラス図は 赤い部分にあるはずの関連と継承がありません。また シーケンス図の方には関連がないはずのオブジェクト間 でメッセージを送っています。ここで検証を行った結果、 関連のないクラスのオブジェクト間のメッセージ のやりとりをしてはいけないという整合性ルールと メッセージが未定義ではいけないという 整合性ルールに違反していることを検出できました。 これらを修正し、再度検証を行ったところ違反が 出力されなくなり、適用例題での検証は成功する ことができました。 + addWater(Water) : void + addPowder(IngredientPortion) : void 1.関連のないクラスのオブジェクト間で   メッセージのやりとりをしてはいけない Coin CoinValue + value: CoinValue Cocoa Coffee {leaf} {leaf} Tea 2.メッセージが未定義ではいけない ESS2007 2007/10/20

考察と評価 提案手法によりUMLダイアグラム間整合性検証は可能 別の種類のUMLダイアグラム間に対しても検証可能だと考えられる DrinkMaker例題に対する10個の整合性ルールの検証に成功 OCL式で整合性ルールを記述することが可能 別の種類のUMLダイアグラム間に対しても検証可能だと考えられる クラス図とシーケンス図間の制約と同様にOCL式を記述可能 クラス図とステートマシン図 etc… しかし、OCL式で記述できない整合性ルールも存在した 事前事後条件は不変表明を妨げない 集約リンクの有向パス中にサイクルはない etc… 考察と評価です。提案手法によりUMLダイアグラム間整合性検証は可能 だと考えます。適用例題で述べた整合性ルール以外に対しても評価実験を 行い、10個の整合性ルールをOCL式で記述し、検証することに成功しました。 別の種類のUMLダイアグラム間に対しても検証可能だと考えます。 クラス図とシーケンス図間の制約と同様にOCL式を記述可能であれば、 クラス図とステートマシン図などの整合性ルールも検証可能だと考えます。 しかし、クラス図とシーケンス図間に関する制約以外の制約の中には OCL式で記述できない整合性ルールも存在しました。 ESS2007 2007/10/20

まとめと今後の課題 UMLメタモデルとOCL制約を用いてUMLモデル検証環境を構築する手法を提案 今後の課題 EMFを利用して検証環境のソースコードを自動生成する ツールを作成し、作業の効率化を図る クラス図とシーケンス図間に関する例題に適用 今後の課題 UML2.0以外のバージョンを用いた場合の評価実験 他の例題への適用 別の種類のUMLダイアグラム間整合性検証 ESS2007 2007/10/20