説明

モデル自動生成装置及びプログラム

【課題】オブジェクト指向に基づく複数のモデルの共通性と変動性を識別し、複数のモデルが統合化されたモデルを自動的に生成することにより、この統合化されたモデルを再利用した効率的なソフトウェア開発を支援すること。
【解決手段】モデル要素解析部6は、モデルAとモデルBとを入力として、この2つのモデルからそれぞれクラス間の関係を抽出し、抽出されたクラス間の関係のペアに対して、変換ルール定義部8に含まれる照合パターンを参照し、適用すべき照合パターンを選び出す。統合モデル生成部7は、選び出された照合パターンに対応する変換パターンを用いて、クラス間の関係のペアを変換して統合することにより、モデルAとモデルBを統合する統合モデル3を生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、再利用可能なソフトウェア開発を支援するオブジェクト指向分析・設計モデルの自動生成装置、及びコンピュータを前記自動生成装置が備える各部として機能させるためのプログラムに関するものである。
【背景技術】
【0002】
オブジェクト指向によるソフトウェア開発においては、ソフトウェアの仕様として求められている機能を実現するための分析及び設計を、UML(Unified Modeling Language)を用いた分析・設計モデルとして記述し、その内容に基づいてプログラムを作成することが一般的に行なわれている。UMLはオブジェクト指向開発において標準的に利用されているモデルの表記法である。分析・設計モデルは、ソフトウェア全体をクラスという単位に分け、クラスとクラス間の関係からなる構造によってソフトウェアの機能を実現するという方法で構築される。そして、クラスとクラス間の関係は、多くの場合UMLで規定されたクラス図の記法に従って表記される。このようなオブジェクト指向開発を進める方法の従来技術の1つとしてIBM(登録商標)社の「ラショナル統一プロセス」がある。また、オブジェクト指向開発を支援するCASE(Computer Aided Software Engineering)ツールもいくつか製品化されており、その1つとしてIBM(登録商標)社のRational Rose(登録商標)がある。
【0003】
通常、1つのソフトウェアを開発する際には、数十個から数百個のクラスを作成し、これらのクラスの各々に適切な名前を付けて、クラス間を適切な関係で結ぶ必要がある。UMLで定義されているクラス間の関係の1つに「関連」がある。関連は、2つのクラス間に意味的なつながりがあることを表す関係である。UMLのクラス図において、クラスと関連は、クラスを意味する四角形と、四角形どうしを接続する直線として記述される。接続された直線は、矢印で方向性を表すこともできる。
【0004】
UMLで定義されているクラス間の関係には、関連の他に「汎化」がある。汎化は、複数の異なるクラス間の共通性に着目し、より一般的なクラスを定義することを表す関係である。あるクラスの性質をすべて引き継いだ上で、さらに性質を加えた新しいクラスを定義することを継承という。複数の異なるクラス間の共通性を持つ一般的なクラスを定義し、そのクラスを継承することにより、分析・設計モデルの構造を階層的に表すことができる。UMLにおいて継承されるクラスをスーパークラス、継承するクラスをサブクラスと定義されている。UMLのクラス図において、汎化は、サブクラスからスーパークラスに向かって白抜きの矢印を引いて記述される。
【0005】
クラス図ではクラスの他に、インターフェイスを用いてソフトウェア構造を表記する。インターフェイスは、クラスの使い方及び呼び出し方をまとめて定義したものである。インターフェイスはクラスと同様に四角形で表され、名前の上部に<<interface>>が付加される。UMLで定義されているインターフェイスとクラスとの間には実現関係を結ぶことができる。実現関係は、クラスからインターフェィスに向かって白抜きの点線矢印で記述される。インターフェイスと実現関係で結ばれているクラスは、インターフェイスを通して使われたり呼び出されたりすることを意味する。
【0006】
前述のクラス図を用いたクラスとインターフェイス及びこれらの間の関係からなる構造によるソフトウェア機能の表現は、ソフトウェアの理解を容易にし、分析・設計といった開発作業を効率化する上で有用である。
【0007】
同一分野で用いられる複数の類似したソフトウェアを開発する際に、個々のソフトウェアモデルを構築するよりも、個々のソフトウェアモデルを統合化したモデルを構築し、統合化されたモデルを再利用した開発が効率的である。複数の類似したソフトウェアの共通性を分析・抽出し、抽出した共通性を統合化することにより、共通モデルを構築することができる。
【0008】
再利用可能なソフトウェアの開発を支援する従来技術(例えば、特許文献1又は2を参照)としては、要求の変動性を管理し、ホットスポットとフローズンスポットとを識別することによって、フレームワークを生成する技術がある。ここで、ホットスポットとは、フレームワークのうち、アプリケーション毎に変動する仕様部分であり、フローズンスポットとは、フレームワークのうち、アプリケーション間で共通する仕様部分である。これらの従来技術では、開発者によって識別された共通性と変動性を、機械的に管理し活用することができる。
【0009】
【特許文献1】特開平11−237982号公報
【特許文献2】特開2002−157117号公報
【発明の開示】
【発明が解決しようとする課題】
【0010】
しかしながら、上記の再利用可能なソフトウェアの開発を支援する従来技術によれば、同一分野内の類似したシステムを分析して共通性と変動性を認識する作業を、開発者が人手で行う必要があった。そのため、統合化されたモデルを効率的に構築することが難しく、統合化されたモデルに基づくソフトウェア開発の効率が低下するという問題があった。
【0011】
本発明は、上記に鑑みてなされたものであって、オブジェクト指向に基づく複数のモデルの共通性と変動性を識別し、複数のモデルが統合化されたモデルを自動的に生成することにより、この統合化されたモデルを再利用した効率的なソフトウェア開発を支援するモデル自動生成装置、及びプログラムを得ることを目的とする。
【課題を解決するための手段】
【0012】
上述した課題を解決し、目的を達成するために、本発明にかかるモデル自動生成装置は、オブジェクト指向に基づく表記を用いてクラス間の関係を含むソフトウェアの構造を表現するモデルを生成するモデル自動生成装置において、2つのクラス間の関係の同一性の度合いをモデルの構成要素であるモデル要素についての一致、不一致を含む組み合わせのパターンで表した複数の照合パターンと、前記各照合パターンに応じて前記2つのクラス間の関係を統合変換するための変換後のクラス間の関係を定義する変換パターンとが定義される変換ルール定義部と、2つのモデルからそれぞれ抽出されたクラス間の関係のペアを前記モデル要素毎に比較し、この比較結果に一致する照合パターンを前記変換ルール定義部から選び出すための解析を行うモデル要素解析部と、このモデル要素解析部により選び出された前記照合パターンに対応する変換パターンを前記変換ルール定義部から選択し、選択した変換パターンに従ってクラス間の関係を生成することにより、2つのモデルを統合する統合モデルを生成する統合モデル生成部と、を備えることを特徴とする。
【発明の効果】
【0013】
本発明によれば、オブジェクト指向に基づく表記を用いてクラス間の関係を含むソフトウェアの構造を表現する2つのモデルを統合する際に、2つのモデルからそれぞれ抽出されたクラス間の関係のペアの同一性の度合いを照合パターンと比較することにより評価し、各照合パターンに対応する変換パターンに従って関係のペアを統合変換して変換後のクラス間の関係を生成するようにしたので、個別に作成された2つのモデルから簡便に統合化されたモデルの作成が可能となる。従って、同一分野の類似したソフトウェアの開発において、新たに個々のソフトウェアに対してモデルを作成する必要がなく、統合化されたモデルを基礎としてソフトウェアを開発することができる。また、統合化されたモデルを再利用した効率的なソフトウェア開発を行うことができる。
【発明を実施するための最良の形態】
【0014】
以下に、本発明にかかるモデル自動生成装置、モデル自動生成方法、及びプログラムの実施の形態を添付の図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【0015】
実施の形態.
図1は、本発明の実施の形態にかかるモデル自動生成装置の構成を示すブロック図である。図1に示すように、本実施の形態にかかるモデル自動生成装置10は、それぞれオブジェクト指向分析・設計モデルであるモデルAとモデルBとを入力とし、照合パターン及び変換パターンが定義された変換ルール定義部8と、変換ルール定義部8に定義された照合パターンを参照し、モデルA及びモデルBからそれぞれ抽出されたクラス間の関係(以下、単に関係という)からなる関係のペアに対して、この関係のペアを構成する2つの関係を比較し、その比較結果に一致する照合パターンを変換ルール定義部8から選び出すための解析を行うモデル要素解析部6と、モデル要素解析部6により選び出された照合パターンに応じて、対応する変換パターンを変換ルール定義部8から選択し、選択した変換パターンに従って、関係のペアを統合変換して変換後の関係を生成することにより、モデルAとモデルBとを統合して統合モデル3を生成する統合モデル生成部7と、を備えて構成される。
【0016】
ここで、オブジェクト指向分析・設計モデルとは、クラスとクラス間の関係を含むUML(Unified Modeling Language)で規定された情報を含むモデルである。また、オブジェクト指向分析・設計モデルを構成する種々の構成要素をモデル要素といい、関係はクラス及び関係種別等の情報を含む複数個のモデル要素により規定される。以下では、関係に含まれるモデル要素を、関係要素ともいう。
【0017】
さらに、統合モデル生成部7は、表示装置4と入力装置5とを備え、選び出された照合パターンに対応する変換パターンが複数存在する場合に、表示装置4を介して本装置の利用者に変換パターンを1つ選択するよう要求し、利用者は入力装置5を介してどの変換パターンを選択するのかを本装置に通知する。
【0018】
図7は、本実施の形態へ入力されるモデルAの一例を示すクラス図であり、図8は、図7に示したモデルAに含まれる関係に対して、関係を規定するモデル要素である関係要素の一覧を示す図である。また、図9は、本実施の形態へ入力されるモデルBの一例を示すクラス図であり、図10は、図9に示したモデルBに含まれる関係要素の一覧を示す図である。
【0019】
図7においては、「動物園」、「サル」、「サル山」、「キリン」、「芋」、「バナナ」、及び「ゾウ」の7つのクラスがあり、それらの間に「関連」が存在する場合を示している。関係のうち「関連」は、クラスを意味する四角形どうしを接続する直線として表現され、接続された直線には矢印を付することで方向性を表現することができる。また、矢印の起点にあるクラスをソースクラス、矢印の宛先にあるクラスをターゲットクラスという。矢印は、ソースクラスのインスタンスから、ターゲットクラスのインスタンスにアクセスできることを意味する。例えば、「サル」と「バナナ」は、「関連」で結ばれており、ソースクラスが「サル」、ターゲットクラスが「バナナ」である。また、クラス間を結ぶ直線の中央付近には、関係を示す言葉である「関係名」を付与することができ、例えば、「サル」と「バナナ」の関連に対しては、関係名「食べる」が付与されている。一方、「サル」と「芋」の関連に対しては、関係名は付与されておらず、以下ではこのような場合を「無名」という。また、関連には、関係名の他に、ロール(役割)名と多重度を付与することができる。例えば、「サル」と「バナナ」との関連に対しては、「サル」と「バナナ」を結ぶ直線の「バナナ」側の終端付近にロール名「好物」が記述されており、「バナナ」は「サル」の「好物」であることを意味する。また、「サル」と「バナナ」とを結ぶ直線の「バナナ」側の終端付近には、さらに、多重度「20」が記述されており、接続される可能性のあるインスタンスの数を表している。多重度は「下限値..上限値」のように記述し、例えば、「サル」と「芋」との関連に対しては、「芋」の多重度は「2..4」となっている。図9には、6つのクラスを有するモデルBについてのクラス図を示している。
【0020】
次に、図8及び図10においては、各関係にはID番号が付され、各関係は、それぞれ関係要素である、関係種類、ソースクラス名、ターゲットクラス名、ロール名、多重度、及び関係名から規定されている。例えば、図8において、ID=5の関係は、関係種類が「関連」であり、ソースクラス名が「サル」、ターゲットクラス名が「バナナ」、ロール名が「好物」、多重度が「20」、関係名が「食べる」となっている。
【0021】
変換ルール定義部8には、複数の照合パターンと各照合パターンに対応する変換パターンとが定義されている。照合パターンは、2つの関係の比較結果と照合されるパターンであり、2つの関係の同一性の度合いをモデル要素についての一致、不一致を含む組み合わせのパターンで表すものである。以下、照合パターンの詳細について、具体例をもとに説明する。本実施の形態においては、2つの関係を比較するときのモデル要素は、例えば、図8における関係要素である「ソースクラス名」、「ターゲットクラス名」、「ロール名」、及び「関係名」である。図3は、本実施の形態における照合パターンの一例を示す図である。図3に示すように、本実施の形態においては、1つの照合パターンは、照合パターン番号、ソースクラス名、ターゲットクラス名、ロール名、関係名、及び優先度についての情報から構成されている。図3の例では、13個の照合パターンが定義されている。照合パターンは、比較対照の2つのモデルから、任意の関係をそれぞれ1つずつ取り出して、その2つの関係が統合モデル上で同一又は類似のものとして変換可能かどうかを評価するために用いられる。評価の方法は、取り出した2つの関係の関係要素について、ソースクラス名、ターゲットクラス名、ロール名及び関係名をそれぞれ比較し、一致/無名一致/不一致のいずれにあたるかを評価することで一致する照合パターンを見つけ、照合パターン番号を得ることができる。ここで、「一致」とは、該当すする関係要素が両モデルで一致し、「無名一致」とは、該当する関係要素が両モデルとも無名で一致し、「不一致」とは、該当する関係要素が両モデルで一致しないことを意味する。優先度は、モデル要素解析部6により照合パターンが参照される優先度を示し、数字が小さいほど優先度は高い。つまり、優先度が1である照合パターン番号が1の照合パターンから参照される。
【0022】
変換パターンは、照合パターンに応じて、2つの関係を変換して、変換後の関係を生成するための定義を与えるものである。図4−1及び図4−2は、本実施の形態における変換パターン表のフォーマットの一例を示す図である。図4−1及び図4−2に示すように、変換パターン表のフォーマットは、図3における照合パターン番号と、照合パターンに適合したモデルに適用する一連の変換処理を識別する番号である変換パターン番号と、変換により作成する関係のソースクラス名と、ソースクラスに付加する要素(例えば、ステレオタイプ、制約等)であるソースクラス付加要素と、変換により作成する関係のターゲットクラス名と、ターゲットクラスに付加する要素(例えば、ステレオタイプ、制約等)であるターゲットクラス付加要素と、変換により作成する関係のターゲット側のロール名と、変換により作成する関係の種別(例えば、関連、汎化、実現、依存等)である関係種別と、変換により作成する関係の名称である関係名(関連の場合は関連名)と、関係に付加する要素(例えば、ステレオタイプ、汎化等)である関係付加要素と、変換により作成する関係のターゲット側の多重度と、から構成される。
【0023】
モデル要素解析部6は、モデルA及びモデルBからそれぞれ任意に関係を抽出し、各モデルから抽出された2つの関係を、複数個の関係要素ごとに相互に比較し、その比較結果に一致する照合パターンを変換ルール定義部8から選び出すための解析を行う機能を有する。前述のように、図8及び図10に示す例では、2つの関係の比較に用いられる比較要素は、関係要素「ソースクラス名」、「ターゲットクラス名」、「ロール名」、及び「関係名」である。
【0024】
統合モデル生成部7は、モデル要素解析部6により選び出された照合パターンに応じて、この照合パターンに対応する変換パターンを変換ルール定義部8から選択する。そして、統合モデル生成部7は、選択した変換パターンに従って、照合パターンに適合した関係のペアを統合変換して変換後の関係を生成することにより、モデルAとモデルBとを統合して統合モデル3を生成する機能を有する。
【0025】
次に、本実施の形態の動作、即ち、本実施の形態にかかるオブジェクト指向開発支援方法について、図3から図10に示した例をもとに、図2のフローチャートに従って説明する。図2は、本実施の形態において、2つのオブジェクト指向分析・設計モデルを入力して統合モデルを出力する処理の流れを表したフローチャートである。入力される2つのモデルは、モデルA及びモデルBである。
【0026】
図2に示すように、ステップS101では、モデル要素解析部6は変換ルール定義部8を参照し、処理に適用する照合パターンを最も優先度の高いものから順に1つ選択する。優先度は、図3に示すように、照合パターンに予め付与された優先度である。以降のステップでは、ステップS101で選択された1つの照合パターンについて処理を行ない、優先度の高い照合パターンから優先度の低い照合パターンまで順次処理を適用する。
【0027】
ステップS102では、モデル要素解析部6は、ステップS101で選択された照合パターンに適合する関係のペアが存在するかどうかを調べる。ここで関係のペアとは、モデルAに含まれる任意の1つの関係と、モデルBに含まれる任意の1つの関係の組み合わせを意味する。また、図8及び図10からわかるように、関係のペアは関連のペアである。
【0028】
今、ステップS101で、第1優先度の照合パターンである照合パターン番号1の照合パターンが選ばれたとき、ステップS102において、モデル要素解析部6は、ソースクラス名、ターゲットクラス名、ロール名及び関係名のすべてが一致する関連のペアがあるか否かを、図8に示したモデルAと図10に示したモデルBの関係要素から探す。その結果、照合パターン番号1に対応する関連のペアが存在しないことが分かる。その場合は再びステップS101に戻り、次に高い優先度を持つ照合パターンを選択して以降の処理を続ける。
【0029】
次に、ステップS101で、第2優先度の照合パターンである照合パターン番号2の照合パターンが選ばれたとき、ステップS102において、モデル要素解析部6は、ソースクラス名、ターゲットクラス名及びロール名が一致し、関係名がともに無名であるような関連のペアがあるか否かを、図8に示したモデルAと図10に示したモデルBの関係要素から探す。その結果、照合パターン番号2に対応する関連のペアとして、モデルAにおいてIDが1の関連(図8)とモデルBにおいてIDが1の関連(図10)のペアが見つかる。
【0030】
そこで、ステップS103に進む。ステップS103では、ステップS102で見つかった照合パターンに適合するすべてのペアについて、以降のステップの処理を適用する。
【0031】
ステップS104では、統合モデル生成部7は、ステップS102で選択された照合パターンに対応する変換パターンが複数あるかどうかを調べる。ステップS102で選択された照合パターンに対応する変換パターンは、図6−1に示すように、変換パターン番号2−1の1つだけであるので、この変換パターンを選択し、ステップS106に進む。ここで、図6−1、図6−2、図6−3は本実施の形態における変換パターン表の一例であり、図4に示す変換パターン表のフォーマットに従って、照合パターン番号順に与えられている。即ち、図6−1、図6−2、図6−3では、図3に示す照合パターンに対応する変換パターンが、照合パターン番号ごとに与えられている。また、1つの照合パターン番号に対して、1又は複数の変換パターンが対応している。また、図5は、変換パターン表の各項目に記入可能な内容の書式の説明を行う図である。図5に示すように、図6−1における変換パターン番号2−1が付された変換パターンにおいては、変換後の関係種別は関連であり、ソースクラス名はモデルAで注目している関係のソースクラス名(A.ソースクラス名)、ターゲットクラス名はモデルAで注目している関係のターゲットクラス名(A.ターゲットクラス名)、ロール名はモデルAで注目している関係のロール名(A.ロール名)、関係名はモデルAで注目している関係の関係名(A.関連名)、多重度はモデルAで注目している関連の多重度(A.多重度)とモデルBで注目している関連の多重度(B.多重度)との包含である。
【0032】
ステップS106では、統合モデル生成部7は、ステップS102で見つかった関連のペアに対し、図6に示した変換パターン表に基づいて変換パターンを適用して統合モデルに追加する。今、モデルAにおいてIDが1の関連要素とモデルBにおいてIDが1の関連とのペアに対して、照合パターン2に対応する変換パターン2−1を適用する。変換パターン2−1は、ソースクラス名、ターゲットクラス名及びロール名を、ペアのうちモデルAの側から採用し、多重度については、モデルAとモデルBにおける多重度を包含する多重度とすることを意味している。図11は、ステップS106で変換された関係が出力された後の、統合モデルに含まれる関係要素を示す。図11に示すように、統合モデルの関係要素として、ID=1を付し、関係種類は「関連」、ソースクラス名は「動物園」、ターゲットクラス名は「サル」、ロール名は「小型動物」である。また、多重度は、図8におけるID=1の関連の多重度「10..20」と、図10におけるID=1の関連の多重度「30..50」との包含である多重度「10..20,30..50」である。
【0033】
ステップS107では、ステップS102で見つかったすべての関係要素のペアに対して処理を行なったかどうかを判断し、まだ未処理の関係要素のペアがあれば、ステップS103に戻る。そうでなければステップS108に進み、S103〜S106間のループ2を終了する。
【0034】
ステップS109では、すべての照合パターンに対して処理を行なったかどうかを判断し、まだ未処理の照合パターンがあれば、ステップS101に戻る。そうでなければステップS110に進み、S101〜S109間のループを終了する。今、第2優先度である照合パターン2の処理が終わったが、第3優先度以降の照合パターンについてはまだ処理を行なっていないため、ステップS101に戻る。
【0035】
以下、ステップS101からステップS109までのループ処理の流れは上記と同様であるので、パターンの相違に注目して処理の流れの説明を続ける。
【0036】
第3優先度の照合パターンは、照合パターン番号3の照合パターンである。図8のモデルAと図10のモデルBには、このパターンに適合する関連のペアは存在しない。このため、この照合パターンに対応する変換パターンの処理は実施しない。
【0037】
第4優先度の照合パターンは、照合パターン番号4の照合パターンである。図8のモデルAと図10のモデルBには、このパターンに適合する関連のペアとして、モデルAにてIDが5の関連要素と、モデルBにてIDが4の関連のペアが見つかる。また、照合パターン番号4に対応する変換パターンは、図6−1に示すように、変換パターン4−1と変換パターン4−2の2通りがある。この場合、ステップS104にて変換パターンが複数あると判断され、ステップS105にて変換パターンの選択を行なう。変換パターンの選択は、表示装置4により変換パターンの選択をユーザに要求する表示を行い、入力装置5を通じてユーザが変換パターンを1つ選択する。ステップS106において、選択された変換パターンに従って関係の変換を行い、統合モデルに追加する。今、ステップS105で変換パターン4−2が選択されたものとする。図12は、ステップS106で変換された関係が出力された後の、統合モデルに含まれる関係要素を示す。図12において、IDが2の関連要素が、第4優先度の照合パターンに対応して追加された関係である。例えば、ロール名「好物_主食」は、図6に示す変換ルールに従い、モデルAからのロール名である「好物」とモデルBからのロール名である「主食」とを組み合わせたものであり、ロール名が2つのモデルを比較したときの変動性を示す変動要素であることがわかる。このように、統合モデルでは、関数要素ごとに一致又は不一致等の同一性を表すようなラベルが付加され、共通性、変動性を表現している。
【0038】
第5優先度の照合パターンは、照合パターン番号5の照合パターンである。図8のモデルAと図10のモデルBには、このパターンに適合する関連のペアとして、モデルAにてIDが3の関連と、モデルBにてIDが3の関連のペアが見つかる。また、照合パターン番号5に対応する変換パターンは、図6−1に示すように、変換パターン5−1の1通りのみがある。図13は、ステップS106で変換された関係が出力された後の、統合モデルに含まれる関係要素を示す。図13において、IDが3と4の関連が、第5優先度の照合パターンに対応して追加された関係である。例えば、IDが3の関連においては、多重度は「0,1」であり、IDが4の関連においては、多重度は「0,3」であり、それぞれ多重度0を許すことで、変動性をラベルしている。
【0039】
第6優先度の照合パターンは、照合パターン番号6の照合パターンである。図8のモデルAと図10のモデルBには、このパターンに適合する関連のペアは存在しない。このため、この照合パターンに対応する変換パターンの処理は実施しない。
【0040】
第7優先度の照合パターンは、照合パターン番号7の照合パターンである。図8のモデルAと図10のモデルBには、このパターンに適合する関連のペアは存在しない。このため、この照合パターンに対応する変換パターンの処理は実施しない。
【0041】
第8優先度の照合パターンは、照合パターン番号8の照合パターンである。図8のモデルAと図10のモデルBには、このパターンに適合する関連のペアとして、モデルAにてIDが2の関連と、モデルBにてIDが2の関連のペアが見つかる。また、照合パターン番号8に対応する変換パターンは、図6−2に示すように、変換パターン8−1と変換パターン8−2と変換パターン8−3の3通りがある。この場合、ステップS104にて変換パターンが複数あると判断され、ステップS105にて変換パターンの選択を行なう。変換パターンの選択は、表示装置4に変換パターンの選択をユーザに要求する表示を行い、入力装置5を通じてユーザが変換パターンを1つ選択する。ステップS106において、選択された変換パターンに従って関係の変換を行い、統合モデルに追加する。今、ステップS105で変換パターン8−3が選択されたものとする。図14は、ステップS106で変換された関係が出力された後の、統合モデルに含まれる関係要素を示す。図14において、IDが5の関連、IDが6及び7の汎化関係が、第8優先度の照合パターンに対応して追加された関係である。関連のペアのターゲットクラス名がそれぞれ「キリン」、「ゾウ」と異なることから、統合モデルの関係では、共通部分を抽象化したクラス「abstract_大型動物」を介して、関連のペアを統合している。
【0042】
第9優先度の照合パターンは、照合パターン番号9の照合パターンである。図8のモデルAと図10のモデルBには、このパターンに適合する関連のペアは存在しない。このため、この照合パターンに対応する変換パターンの処理は実施しない。
【0043】
第10優先度の照合パターンは、照合パターン番号10の照合パターンである。図8のモデルAと図10のモデルBには、このパターンに適合する関連のペアとして、モデルAにてIDが6の関連と、モデルBにてIDが5の関連のペアが見つかる。また、照合パターン番号10に対応する変換パターンは、図6−3に示すように、変換パターン10−1と変換パターン10−2と変換パターン10−3の3通りがある。この場合、ステップS104にて変換パターンが複数あると判断され、ステップS105にて変換パターンの選択を行なう。変換パターンの選択は、表示装置4に変換パターンの選択をユーザに要求する表示を行い、入力装置5を通じてユーザが変換パターンを1つ選択する。ステップS106において、選択された変換パターンに従って関係の変換を行い、統合モデルに追加する。今、ステップS105で変換パターン10−2が選択されたものとする。図15は、ステップS106で変換された関係が出力された後の、統合モデルに含まれる関係要素を示す。図15において、IDが8の関連、IDが9及び10の実現関係が、第10優先度の照合パターンに対応して追加された関係要素である。図15では、関連のペアの共通性をインターフェイス「I_食べる」として抽出している。
【0044】
第11優先度の照合パターンは、照合パターン番号11の照合パターンである。図8のモデルAと図10のモデルBには、このパターンに適合する関連のペアは存在しない。このため、この照合パターンに対応する変換パターンの処理は実施しない。
【0045】
第12優先度の照合パターンは、照合パターン番号12の照合パターンである。図8のモデルAと図10のモデルBには、このパターンに適合する関連のペアは存在しない。このため、この照合パターンに対応する変換パターンの処理は実施しない。
【0046】
第13優先度の照合パターンは、照合パターン番号13の照合パターンである。これは、照合パターン番号1〜13のすべての照合パターンに当てはまらない場合である。図8のモデルAと図10のモデルBには、このパターンに適合する関連として、モデルAにてIDが4の関連が見つかる。また、照合パターン番号13に対応する変換パターンは、図6−3に示すように、変換パターン13−1と変換パターン13−2の2通りがある。この場合、ステップS104にて変換パターンが複数あると判断され、ステップS105にて変換パターンの選択を行なう。変換パターンの選択は、表示装置4に変換パターンの選択をユーザに要求する表示を行い、入力装置5を通じてユーザが変換パターンを1つ選択する。ステップS106において、選択された変換パターンに従って関係の変換を行い、統合モデルに追加する。今、ステップS105で変換パターン13−1が選択されたものとする。図16は、ステップS106で変換された関係が出力された後の、統合モデルに含まれる関係要素を示す。図16において、IDが11の関連が、第13優先度の照合パターンに対応して追加された関係である。
【0047】
以上のようにして、すべての照合パターンに対する処理を終えたらステップS111に進む。ステップS111では、ここまで作成した統合モデルをUMLのクラス図として出力する。図17に、ステップS111で出力される統合モデルのクラス図を示す。例えば、クラス「ゾウ」とインターフェイス「I_食べる」とは、関係名が「食べる」の「関連」で結ばれており、インターフェイス「I_食べる」のロール名は「好物_栄養源」、多重度は「50,100」である。この関連は、図15におけるIDが8の関連をUMLで表現したものである。なお、クラス「ゾウ」とインターフェイス「I_食べる」を結ぶ矢印には、これが優先度10の照合パターンに従って変換されたものであることを示すために、点線を介して「パターン10」が付されている。他のクラス間の関係も同様であり、通常のUMLの表記方法に従って図示されている。
【0048】
上述のように、本実施の形態においては、2つのオブジェクト指向分析・設計モデルを入力とし、この2つの入力モデルの共通性と変動性を、照合パターンを参照することにより解析して、2つの入力モデルを統合する統合モデルを自動的に生成している。また、このような操作を順次繰り返すことにより、3つ以上のオブジェクト指向分析・設計モデルを統合する統合モデルを自動生成することができる。つまり、先ず、入力モデルを2つ選択し、これら2つのモデルを統合する統合モデルを生成する。次に、先に選択されたモデル以外のモデルを1つ選択して、選択されたモデルと前記統合モデルとを統合する統合モデルを生成する。このような操作を、繰り返してすべての入力モデルを統合する統合モデルを生成することができる。
【0049】
本実施の形態に示されるモデル自動生成装置は、ハードディスク等の記憶手段、メモリ、及びCPU(Central Processing Unit)等を有するパーソナルコンピュータ等の情報処理装置により構成することができる。例えば、変換ルール定義部8は、ハードディスク等の記憶手段から実現され、モデル要素解析部6、統合モデル生成部7は、CPU、メモリ、及びハードディスク等から実現される。また、コンピュータを、本実施の形態における変換ルール定義部8、モデル要素解析部6、統合モデル生成部7として機能させるためのプログラムを情報処理装置の記憶手段に記憶させ、メモリ上に呼び出して実行させることにより、上記処理を実行させることが可能となる。このプログラムは、インストール可能な形式又は実行可能な形式のファイルとしてCD−ROM(Compact Disk Read Only Memory)、フレキシブルディスク、DVD(Digital Versatile Disc又はDigital Video Disc)、メモリーカード等のコンピュータで読み取り可能な記録媒体に記憶させて提供することができる。また、このプログラムを、インターネット等のネットワークに接続されたコンピュータに格納し、ネットワーク経由でダウンロードさせることにより提供することもできる。
【0050】
本発明の実施の形態によれば、個別に作成された複数のオブジェクト指向分析・設計モデルから簡便に統合化されたオブジェクト指向分析・設計モデルの作成が可能であり、同一分野の類似したソフトウェアの開発において、新たに個々のソフトウェアに対してオブジェクト指向分析・設計モデルを作成する必要がなく、統合化されたオブジェクト指向分析・設計モデルを基礎としてソフトウェアを開発することができる。そのため、統合化されたオブジェクト指向分析・設計モデルを再利用した効率的なソフトウェア開発を行うことができる。
【0051】
なお、変換ルール定義部8には、本装置の利用者が、照合パターン及び変換パターンを入力設定する入力手段を備えることができる。これにより、照合パターン及び変換パターンをそれぞれ入力し、又はその内容を変更することができる。変換ルール定義部8に定義される照合パターンと変換パターンを利用者が適宜入力、変更できることから、利用者の目的に応じて統合化されたモデルを作成することができる。
【産業上の利用可能性】
【0052】
以上のように、本発明にかかるモデル自動生成装置及びプログラムは、再利用可能なソフトウェアの開発作業に適している。
【図面の簡単な説明】
【0053】
【図1】本発明の実施の形態にかかるモデル自動生成装置の構成を示すブロック図である。
【図2】本発明の実施の形態において、2つのオブジェクト指向分析・設計モデルを入力して統合モデルを出力する処理の流れを表したフローチャートである。
【図3】本発明の実施の形態における照合パターンの一例を示す図である。
【図4−1】本発明の実施の形態における変換パターン表のフォーマットの一例を示す図である。
【図4−2】図4−1における項目の説明を行う図である。
【図5】本発明の実施の形態における変換パターン表の各項目に記入可能な内容の書式の説明を行う図である。
【図6−1】本実施の形態における変換パターン表の一例を示す図である。
【図6−2】図6−1に続く変換パターン表の一例を示す図である。
【図6−3】図6−2に続く変換パターン表の一例を示す図である。
【図7】本発明の実施の形態へ入力されるモデルAの一例を示すクラス図である。
【図8】図7に示したモデルAの例に含まれる関係要素の一覧を示す図である。
【図9】本発明の実施の形態へ入力されるモデルBの一例を示すクラス図である。
【図10】図9に示したモデルBの例に含まれる関係要素の一覧を示す図である。
【図11】第2優先照合パターン処理後の統合モデルの関係要素を示す図である。
【図12】第4優先照合パターン処理後の統合モデルの関係要素を示す図である。
【図13】第5優先照合パターン処理後の統合モデルの関係要素を示す図である。
【図14】第8優先照合パターン処理後の統合モデルの関係要素を示す図である。
【図15】第10優先照合パターン処理後の統合モデルの関係要素を示す図である。
【図16】第13優先照合パターン処理後の統合モデルの関係要素を示す図である。
【図17】本実施の形態がモデルAとモデルBとを統合することにより生成した統合モデルを表すクラス図である。
【符号の説明】
【0054】
3 統合モデル
4 表示装置
5 入力装置
6 モデル要素解析部
7 統合モデル生成部
8 変換ルール定義部
10 モデル自動生成装置

【特許請求の範囲】
【請求項1】
オブジェクト指向に基づく表記を用いてクラス間の関係を含むソフトウェアの構造を表現するモデルを生成するモデル自動生成装置において、
2つのクラス間の関係の同一性の度合いをモデルの構成要素であるモデル要素についての一致、不一致を含む組み合わせのパターンで表した複数の照合パターンと、前記各照合パターンに応じて前記2つのクラス間の関係を統合変換するための変換後のクラス間の関係を定義する変換パターンとが定義される変換ルール定義部と、
2つのモデルからそれぞれ抽出されたクラス間の関係のペアを前記モデル要素毎に比較し、この比較結果に一致する照合パターンを前記変換ルール定義部から選び出すための解析を行うモデル要素解析部と、
このモデル要素解析部により選び出された前記照合パターンに対応する変換パターンを前記変換ルール定義部から選択し、選択した変換パターンに従ってクラス間の関係を生成することにより、2つのモデルを統合する統合モデルを生成する統合モデル生成部と、
を備えることを特徴とするモデル自動生成装置。
【請求項2】
前記2つのモデルからそれぞれ抽出された前記クラス間の関係が、クラス間の関連であることを特徴とする請求項1に記載のモデル自動生成装置。
【請求項3】
前記モデル要素には、関係の起点を表すソースクラス名と、関係の宛先を表すターゲットクラス名と、ロール名と、関係名と、が含まれ、前記照合パターンは、前記ソースクラス名、前記ターゲットクラス名、前記ロール名、及び前記関係名のそれぞれについて、一致、不一致、及び名前が双方に定義されていない無名一致を含む組み合わせパターンであることを特徴とする請求項1又は2に記載のモデル自動生成装置。
【請求項4】
前記照合パターンは優先度の情報を含み、前記モデル要素解析部は、前記優先度の高い照合パターンから前記優先度の低い照合パターンまで順次参照することにより、前記関係のペアの比較結果に一致する照合パターンを前記変換ルール定義部から選び出すことを特徴とする請求項3に記載のモデル自動生成装置。
【請求項5】
前記変換ルール定義部は、前記照合パターン及び前記変換パターンを入力設定する入力
手段を備えることを特徴とする請求項1〜4のいずれか1つに記載のモデル自動生成装置。
【請求項6】
前記モデル要素解析部は、2つのモデルからそれぞれクラス間の関係をすべて抽出して、モデル要素の一覧であるそれぞれ第1及び第2のモデル要素一覧を作成し、前記第1及び第2のモデル要素一覧を利用して、前記変換ルール定義部に定義された照合パターンにその比較結果が一致する関係のペアをみつけることを特徴とする請求項1〜5のいずれか1つに記載のモデル自動生成装置。
【請求項7】
前記統合モデル生成部は、前記統合変換後のクラス間の関係を規定するモデル要素に対して、前記照合パターンに応じて、前記関係のペアの同一性の度合いを表すラベルを付加することを特徴とする請求項1〜6のいずれか1つに記載のモデル自動生成装置。
【請求項8】
前記統合モデル生成部は、入力手段と表示手段とを備え、前記統合モデル生成部は、1つの照合パターンに対し、複数の対応する変換パターンが存在するときに、前記モデル自動生成装置の利用者に前記表示手段を介して複数の変換パターンを表示し、前記入力手段を介して1つの変換パターンを選択させることを特徴とする請求項1〜7のいずれか1つに記載のモデル自動生成装置。
【請求項9】
前記変換パターンは、対応する前記照合パターンに応じて、前記関係のペアを構成する一方のクラス間の関係における多重度と、他方のクラス間の関係における多重度とから、前記変換後のクラス間の関係における多重度を定義することを特徴とする請求項1〜8のいずれか1つに記載のモデル自動生成装置。
【請求項10】
コンピュータを、請求項1〜9のいずれか1つに記載された、前記変換ルール定義部、前記モデル要素解析部、及び前記統合モデル生成部として機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4−1】
image rotate

【図4−2】
image rotate

【図5】
image rotate

【図6−1】
image rotate

【図6−2】
image rotate

【図6−3】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2008−140264(P2008−140264A)
【公開日】平成20年6月19日(2008.6.19)
【国際特許分類】
【出願番号】特願2006−327325(P2006−327325)
【出願日】平成18年12月4日(2006.12.4)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】