(57)【要約】【課題】オブジェクト指向に基づく複数のモデルの共通性と変動性を識別し、複数のモデルが統合化されたモデルを自動的に生成することにより、この統合化されたモデルを再利用した効率的なソフトウェア開発を支援すること。【解決手段】モデル要素解析部６は、モデルＡとモデルＢとを入力として、この２つのモデルからそれぞれクラス間の関係を抽出し、抽出されたクラス間の関係のペアに対して、変換ルール定義部８に含まれる照合パターンを参照し、適用すべき照合パターンを選び出す。統合モデル生成部７は、選び出された照合パターンに対応する変換パターンを用いて、クラス間の関係のペアを変換して統合することにより、モデルＡとモデルＢを統合する統合モデル３を生成する。【選択図】        図１
2008140264.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクト指向に基づく表記を用いてクラス間の関係を含むソフトウェアの構造を表現するモデルを生成するモデル自動生成装置において、
２つのクラス間の関係の同一性の度合いをモデルの構成要素であるモデル要素についての一致、不一致を含む組み合わせのパターンで表した複数の照合パターンと、前記各照合パターンに応じて前記２つのクラス間の関係を統合変換するための変換後のクラス間の関係を定義する変換パターンとが定義される変換ルール定義部と、
２つのモデルからそれぞれ抽出されたクラス間の関係のペアを前記モデル要素毎に比較し、この比較結果に一致する照合パターンを前記変換ルール定義部から選び出すための解析を行うモデル要素解析部と、
このモデル要素解析部により選び出された前記照合パターンに対応する変換パターンを前記変換ルール定義部から選択し、選択した変換パターンに従ってクラス間の関係を生成することにより、２つのモデルを統合する統合モデルを生成する統合モデル生成部と、
を備えることを特徴とするモデル自動生成装置。
【請求項２】
前記２つのモデルからそれぞれ抽出された前記クラス間の関係が、クラス間の関連であることを特徴とする請求項１に記載のモデル自動生成装置。
【請求項３】
前記モデル要素には、関係の起点を表すソースクラス名と、関係の宛先を表すターゲットクラス名と、ロール名と、関係名と、が含まれ、前記照合パターンは、前記ソースクラス名、前記ターゲットクラス名、前記ロール名、及び前記関係名のそれぞれについて、一致、不一致、及び名前が双方に定義されていない無名一致を含む組み合わせパターンであることを特徴とする請求項１又は２に記載のモデル自動生成装置。
【請求項４】
前記照合パターンは優先度の情報を含み、前記モデル要素解析部は、前記優先度の高い照合パターンから前記優先度の低い照合パターンまで順次参照することにより、前記関係のペアの比較結果に一致する照合パターンを前記変換ルール定義部から選び出すことを特徴とする請求項３に記載のモデル自動生成装置。
【請求項５】
前記変換ルール定義部は、前記照合パターン及び前記変換パターンを入力設定する入力
手段を備えることを特徴とする請求項１〜４のいずれか１つに記載のモデル自動生成装置。
【請求項６】
前記モデル要素解析部は、２つのモデルからそれぞれクラス間の関係をすべて抽出して、モデル要素の一覧であるそれぞれ第１及び第２のモデル要素一覧を作成し、前記第１及び第２のモデル要素一覧を利用して、前記変換ルール定義部に定義された照合パターンにその比較結果が一致する関係のペアをみつけることを特徴とする請求項１〜５のいずれか１つに記載のモデル自動生成装置。
【請求項７】
前記統合モデル生成部は、前記統合変換後のクラス間の関係を規定するモデル要素に対して、前記照合パターンに応じて、前記関係のペアの同一性の度合いを表すラベルを付加することを特徴とする請求項１〜６のいずれか１つに記載のモデル自動生成装置。
【請求項８】
前記統合モデル生成部は、入力手段と表示手段とを備え、前記統合モデル生成部は、１つの照合パターンに対し、複数の対応する変換パターンが存在するときに、前記モデル自動生成装置の利用者に前記表示手段を介して複数の変換パターンを表示し、前記入力手段を介して１つの変換パターンを選択させることを特徴とする請求項１〜７のいずれか１つに記載のモデル自動生成装置。
【請求項９】
前記変換パターンは、対応する前記照合パターンに応じて、前記関係のペアを構成する一方のクラス間の関係における多重度と、他方のクラス間の関係における多重度とから、前記変換後のクラス間の関係における多重度を定義することを特徴とする請求項１〜８のいずれか１つに記載のモデル自動生成装置。
【請求項１０】
コンピュータを、請求項１〜９のいずれか１つに記載された、前記変換ルール定義部、前記モデル要素解析部、及び前記統合モデル生成部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、再利用可能なソフトウェア開発を支援するオブジェクト指向分析・設計モデルの自動生成装置、及びコンピュータを前記自動生成装置が備える各部として機能させるためのプログラムに関するものである。
【背景技術】
【０００２】
オブジェクト指向によるソフトウェア開発においては、ソフトウェアの仕様として求められている機能を実現するための分析及び設計を、ＵＭＬ（Unified Modeling Language）を用いた分析・設計モデルとして記述し、その内容に基づいてプログラムを作成することが一般的に行なわれている。ＵＭＬはオブジェクト指向開発において標準的に利用されているモデルの表記法である。分析・設計モデルは、ソフトウェア全体をクラスという単位に分け、クラスとクラス間の関係からなる構造によってソフトウェアの機能を実現するという方法で構築される。そして、クラスとクラス間の関係は、多くの場合ＵＭＬで規定されたクラス図の記法に従って表記される。このようなオブジェクト指向開発を進める方法の従来技術の１つとしてＩＢＭ（登録商標）社の「ラショナル統一プロセス」がある。また、オブジェクト指向開発を支援するＣＡＳＥ（Computer Aided Software Engineering）ツールもいくつか製品化されており、その１つとしてＩＢＭ（登録商標）社のRational Rose（登録商標）がある。
【０００３】
通常、１つのソフトウェアを開発する際には、数十個から数百個のクラスを作成し、これらのクラスの各々に適切な名前を付けて、クラス間を適切な関係で結ぶ必要がある。ＵＭＬで定義されているクラス間の関係の１つに「関連」がある。関連は、２つのクラス間に意味的なつながりがあることを表す関係である。ＵＭＬのクラス図において、クラスと関連は、クラスを意味する四角形と、四角形どうしを接続する直線として記述される。接続された直線は、矢印で方向性を表すこともできる。
【０００４】
ＵＭＬで定義されているクラス間の関係には、関連の他に「汎化」がある。汎化は、複数の異なるクラス間の共通性に着目し、より一般的なクラスを定義することを表す関係である。あるクラスの性質をすべて引き継いだ上で、さらに性質を加えた新しいクラスを定義することを継承という。複数の異なるクラス間の共通性を持つ一般的なクラスを定義し、そのクラスを継承することにより、分析・設計モデルの構造を階層的に表すことができる。ＵＭＬにおいて継承されるクラスをスーパークラス、継承するクラスをサブクラスと定義されている。ＵＭＬのクラス図において、汎化は、サブクラスからスーパークラスに向かって白抜きの矢印を引いて記述される。
【０００５】
クラス図ではクラスの他に、インターフェイスを用いてソフトウェア構造を表記する。インターフェイスは、クラスの使い方及び呼び出し方をまとめて定義したものである。インターフェイスはクラスと同様に四角形で表され、名前の上部に<<interface>>が付加される。ＵＭＬで定義されているインターフェイスとクラスとの間には実現関係を結ぶことができる。実現関係は、クラスからインターフェィスに向かって白抜きの点線矢印で記述される。インターフェイスと実現関係で結ばれているクラスは、インターフェイスを通して使われたり呼び出されたりすることを意味する。
【０００６】
前述のクラス図を用いたクラスとインターフェイス及びこれらの間の関係からなる構造によるソフトウェア機能の表現は、ソフトウェアの理解を容易にし、分析・設計といった開発作業を効率化する上で有用である。
【０００７】
同一分野で用いられる複数の類似したソフトウェアを開発する際に、個々のソフトウェアモデルを構築するよりも、個々のソフトウェアモデルを統合化したモデルを構築し、統合化されたモデルを再利用した開発が効率的である。複数の類似したソフトウェアの共通性を分析・抽出し、抽出した共通性を統合化することにより、共通モデルを構築することができる。
【０００８】
再利用可能なソフトウェアの開発を支援する従来技術（例えば、特許文献１又は２を参照）としては、要求の変動性を管理し、ホットスポットとフローズンスポットとを識別することによって、フレームワークを生成する技術がある。ここで、ホットスポットとは、フレームワークのうち、アプリケーション毎に変動する仕様部分であり、フローズンスポットとは、フレームワークのうち、アプリケーション間で共通する仕様部分である。これらの従来技術では、開発者によって識別された共通性と変動性を、機械的に管理し活用することができる。
【０００９】
【特許文献１】特開平１１−２３７９８２号公報
【特許文献２】特開２００２−１５７１１７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、上記の再利用可能なソフトウェアの開発を支援する従来技術によれば、同一分野内の類似したシステムを分析して共通性と変動性を認識する作業を、開発者が人手で行う必要があった。そのため、統合化されたモデルを効率的に構築することが難しく、統合化されたモデルに基づくソフトウェア開発の効率が低下するという問題があった。
【００１１】
本発明は、上記に鑑みてなされたものであって、オブジェクト指向に基づく複数のモデルの共通性と変動性を識別し、複数のモデルが統合化されたモデルを自動的に生成することにより、この統合化されたモデルを再利用した効率的なソフトウェア開発を支援するモデル自動生成装置、及びプログラムを得ることを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するために、本発明にかかるモデル自動生成装置は、オブジェクト指向に基づく表記を用いてクラス間の関係を含むソフトウェアの構造を表現するモデルを生成するモデル自動生成装置において、２つのクラス間の関係の同一性の度合いをモデルの構成要素であるモデル要素についての一致、不一致を含む組み合わせのパターンで表した複数の照合パターンと、前記各照合パターンに応じて前記２つのクラス間の関係を統合変換するための変換後のクラス間の関係を定義する変換パターンとが定義される変換ルール定義部と、２つのモデルからそれぞれ抽出されたクラス間の関係のペアを前記モデル要素毎に比較し、この比較結果に一致する照合パターンを前記変換ルール定義部から選び出すための解析を行うモデル要素解析部と、このモデル要素解析部により選び出された前記照合パターンに対応する変換パターンを前記変換ルール定義部から選択し、選択した変換パターンに従ってクラス間の関係を生成することにより、２つのモデルを統合する統合モデルを生成する統合モデル生成部と、を備えることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、オブジェクト指向に基づく表記を用いてクラス間の関係を含むソフトウェアの構造を表現する２つのモデルを統合する際に、２つのモデルからそれぞれ抽出されたクラス間の関係のペアの同一性の度合いを照合パターンと比較することにより評価し、各照合パターンに対応する変換パターンに従って関係のペアを統合変換して変換後のクラス間の関係を生成するようにしたので、個別に作成された２つのモデルから簡便に統合化されたモデルの作成が可能となる。従って、同一分野の類似したソフトウェアの開発において、新たに個々のソフトウェアに対してモデルを作成する必要がなく、統合化されたモデルを基礎としてソフトウェアを開発することができる。また、統合化されたモデルを再利用した効率的なソフトウェア開発を行うことができる。
【発明を実施するための最良の形態】
【００１４】
以下に、本発明にかかるモデル自動生成装置、モデル自動生成方法、及びプログラムの実施の形態を添付の図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１５】
実施の形態．
図１は、本発明の実施の形態にかかるモデル自動生成装置の構成を示すブロック図である。図１に示すように、本実施の形態にかかるモデル自動生成装置１０は、それぞれオブジェクト指向分析・設計モデルであるモデルＡとモデルＢとを入力とし、照合パターン及び変換パターンが定義された変換ルール定義部８と、変換ルール定義部８に定義された照合パターンを参照し、モデルＡ及びモデルＢからそれぞれ抽出されたクラス間の関係（以下、単に関係という）からなる関係のペアに対して、この関係のペアを構成する２つの関係を比較し、その比較結果に一致する照合パターンを変換ルール定義部８から選び出すための解析を行うモデル要素解析部６と、モデル要素解析部６により選び出された照合パターンに応じて、対応する変換パターンを変換ルール定義部８から選択し、選択した変換パターンに従って、関係のペアを統合変換して変換後の関係を生成することにより、モデルＡとモデルＢとを統合して統合モデル３を生成する統合モデル生成部７と、を備えて構成される。
【００１６】
ここで、オブジェクト指向分析・設計モデルとは、クラスとクラス間の関係を含むＵＭＬ（Unified Modeling Language）で規定された情報を含むモデルである。また、オブジェクト指向分析・設計モデルを構成する種々の構成要素をモデル要素といい、関係はクラス及び関係種別等の情報を含む複数個のモデル要素により規定される。以下では、関係に含まれるモデル要素を、関係要素ともいう。
【００１７】
さらに、統合モデル生成部７は、表示装置４と入力装置５とを備え、選び出された照合パターンに対応する変換パターンが複数存在する場合に、表示装置４を介して本装置の利用者に変換パターンを１つ選択するよう要求し、利用者は入力装置５を介してどの変換パターンを選択するのかを本装置に通知する。
【００１８】
図７は、本実施の形態へ入力されるモデルＡの一例を示すクラス図であり、図８は、図７に示したモデルＡに含まれる関係に対して、関係を規定するモデル要素である関係要素の一覧を示す図である。また、図９は、本実施の形態へ入力されるモデルＢの一例を示すクラス図であり、図１０は、図９に示したモデルＢに含まれる関係要素の一覧を示す図である。
【００１９】
図７においては、「動物園」、「サル」、「サル山」、「キリン」、「芋」、「バナナ」、及び「ゾウ」の７つのクラスがあり、それらの間に「関連」が存在する場合を示している。関係のうち「関連」は、クラスを意味する四角形どうしを接続する直線として表現され、接続された直線には矢印を付することで方向性を表現することができる。また、矢印の起点にあるクラスをソースクラス、矢印の宛先にあるクラスをターゲットクラスという。矢印は、ソースクラスのインスタンスから、ターゲットクラスのインスタンスにアクセスできることを意味する。例えば、「サル」と「バナナ」は、「関連」で結ばれており、ソースクラスが「サル」、ターゲットクラスが「バナナ」である。また、クラス間を結ぶ直線の中央付近には、関係を示す言葉である「関係名」を付与することができ、例えば、「サル」と「バナナ」の関連に対しては、関係名「食べる」が付与されている。一方、「サル」と「芋」の関連に対しては、関係名は付与されておらず、以下ではこのような場合を「無名」という。また、関連には、関係名の他に、ロール（役割）名と多重度を付与することができる。例えば、「サル」と「バナナ」との関連に対しては、「サル」と「バナナ」を結ぶ直線の「バナナ」側の終端付近にロール名「好物」が記述されており、「バナナ」は「サル」の「好物」であることを意味する。また、「サル」と「バナナ」とを結ぶ直線の「バナナ」側の終端付近には、さらに、多重度「２０」が記述されており、接続される可能性のあるインスタンスの数を表している。多重度は「下限値..上限値」のように記述し、例えば、「サル」と「芋」との関連に対しては、「芋」の多重度は「２..４」となっている。図９には、６つのクラスを有するモデルＢについてのクラス図を示している。
【００２０】
次に、図８及び図１０においては、各関係にはＩＤ番号が付され、各関係は、それぞれ関係要素である、関係種類、ソースクラス名、ターゲットクラス名、ロール名、多重度、及び関係名から規定されている。例えば、図８において、ＩＤ＝５の関係は、関係種類が「関連」であり、ソースクラス名が「サル」、ターゲットクラス名が「バナナ」、ロール名が「好物」、多重度が「２０」、関係名が「食べる」となっている。
【００２１】
変換ルール定義部８には、複数の照合パターンと各照合パターンに対応する変換パターンとが定義されている。照合パターンは、２つの関係の比較結果と照合されるパターンであり、２つの関係の同一性の度合いをモデル要素についての一致、不一致を含む組み合わせのパターンで表すものである。以下、照合パターンの詳細について、具体例をもとに説明する。本実施の形態においては、２つの関係を比較するときのモデル要素は、例えば、図８における関係要素である「ソースクラス名」、「ターゲットクラス名」、「ロール名」、及び「関係名」である。図３は、本実施の形態における照合パターンの一例を示す図である。図３に示すように、本実施の形態においては、１つの照合パターンは、照合パターン番号、ソースクラス名、ターゲットクラス名、ロール名、関係名、及び優先度についての情報から構成されている。図３の例では、１３個の照合パターンが定義されている。照合パターンは、比較対照の２つのモデルから、任意の関係をそれぞれ１つずつ取り出して、その２つの関係が統合モデル上で同一又は類似のものとして変換可能かどうかを評価するために用いられる。評価の方法は、取り出した２つの関係の関係要素について、ソースクラス名、ターゲットクラス名、ロール名及び関係名をそれぞれ比較し、一致／無名一致／不一致のいずれにあたるかを評価することで一致する照合パターンを見つけ、照合パターン番号を得ることができる。ここで、「一致」とは、該当すする関係要素が両モデルで一致し、「無名一致」とは、該当する関係要素が両モデルとも無名で一致し、「不一致」とは、該当する関係要素が両モデルで一致しないことを意味する。優先度は、モデル要素解析部６により照合パターンが参照される優先度を示し、数字が小さいほど優先度は高い。つまり、優先度が１である照合パターン番号が１の照合パターンから参照される。
【００２２】
変換パターンは、照合パターンに応じて、２つの関係を変換して、変換後の関係を生成するための定義を与えるものである。図４−１及び図４−２は、本実施の形態における変換パターン表のフォーマットの一例を示す図である。図４−１及び図４−２に示すように、変換パターン表のフォーマットは、図３における照合パターン番号と、照合パターンに適合したモデルに適用する一連の変換処理を識別する番号である変換パターン番号と、変換により作成する関係のソースクラス名と、ソースクラスに付加する要素（例えば、ステレオタイプ、制約等）であるソースクラス付加要素と、変換により作成する関係のターゲットクラス名と、ターゲットクラスに付加する要素（例えば、ステレオタイプ、制約等）であるターゲットクラス付加要素と、変換により作成する関係のターゲット側のロール名と、変換により作成する関係の種別（例えば、関連、汎化、実現、依存等）である関係種別と、変換により作成する関係の名称である関係名（関連の場合は関連名）と、関係に付加する要素（例えば、ステレオタイプ、汎化等）である関係付加要素と、変換により作成する関係のターゲット側の多重度と、から構成される。
【００２３】
モデル要素解析部６は、モデルＡ及びモデルＢからそれぞれ任意に関係を抽出し、各モデルから抽出された２つの関係を、複数個の関係要素ごとに相互に比較し、その比較結果に一致する照合パターンを変換ルール定義部８から選び出すための解析を行う機能を有する。前述のように、図８及び図１０に示す例では、２つの関係の比較に用いられる比較要素は、関係要素「ソースクラス名」、「ターゲットクラス名」、「ロール名」、及び「関係名」である。
【００２４】
統合モデル生成部７は、モデル要素解析部６により選び出された照合パターンに応じて、この照合パターンに対応する変換パターンを変換ルール定義部８から選択する。そして、統合モデル生成部７は、選択した変換パターンに従って、照合パターンに適合した関係のペアを統合変換して変換後の関係を生成することにより、モデルＡとモデルＢとを統合して統合モデル３を生成する機能を有する。
【００２５】
次に、本実施の形態の動作、即ち、本実施の形態にかかるオブジェクト指向開発支援方法について、図３から図１０に示した例をもとに、図２のフローチャートに従って説明する。図２は、本実施の形態において、２つのオブジェクト指向分析・設計モデルを入力して統合モデルを出力する処理の流れを表したフローチャートである。入力される２つのモデルは、モデルＡ及びモデルＢである。
【００２６】
図２に示すように、ステップＳ１０１では、モデル要素解析部６は変換ルール定義部８を参照し、処理に適用する照合パターンを最も優先度の高いものから順に１つ選択する。優先度は、図３に示すように、照合パターンに予め付与された優先度である。以降のステップでは、ステップＳ１０１で選択された１つの照合パターンについて処理を行ない、優先度の高い照合パターンから優先度の低い照合パターンまで順次処理を適用する。
【００２７】
ステップＳ１０２では、モデル要素解析部６は、ステップＳ１０１で選択された照合パターンに適合する関係のペアが存在するかどうかを調べる。ここで関係のペアとは、モデルＡに含まれる任意の１つの関係と、モデルＢに含まれる任意の１つの関係の組み合わせを意味する。また、図８及び図１０からわかるように、関係のペアは関連のペアである。
【００２８】
今、ステップＳ１０１で、第１優先度の照合パターンである照合パターン番号１の照合パターンが選ばれたとき、ステップＳ１０２において、モデル要素解析部６は、ソースクラス名、ターゲットクラス名、ロール名及び関係名のすべてが一致する関連のペアがあるか否かを、図８に示したモデルＡと図１０に示したモデルＢの関係要素から探す。その結果、照合パターン番号１に対応する関連のペアが存在しないことが分かる。その場合は再びステップＳ１０１に戻り、次に高い優先度を持つ照合パターンを選択して以降の処理を続ける。
【００２９】
次に、ステップＳ１０１で、第２優先度の照合パターンである照合パターン番号２の照合パターンが選ばれたとき、ステップＳ１０２において、モデル要素解析部６は、ソースクラス名、ターゲットクラス名及びロール名が一致し、関係名がともに無名であるような関連のペアがあるか否かを、図８に示したモデルＡと図１０に示したモデルＢの関係要素から探す。その結果、照合パターン番号２に対応する関連のペアとして、モデルＡにおいてＩＤが１の関連（図８）とモデルＢにおいてＩＤが１の関連（図１０）のペアが見つかる。
【００３０】
そこで、ステップＳ１０３に進む。ステップＳ１０３では、ステップＳ１０２で見つかった照合パターンに適合するすべてのペアについて、以降のステップの処理を適用する。
【００３１】
ステップＳ１０４では、統合モデル生成部７は、ステップＳ１０２で選択された照合パターンに対応する変換パターンが複数あるかどうかを調べる。ステップＳ１０２で選択された照合パターンに対応する変換パターンは、図６−１に示すように、変換パターン番号２−１の１つだけであるので、この変換パターンを選択し、ステップＳ１０６に進む。ここで、図６−１、図６−２、図６−３は本実施の形態における変換パターン表の一例であり、図４に示す変換パターン表のフォーマットに従って、照合パターン番号順に与えられている。即ち、図６−１、図６−２、図６−３では、図３に示す照合パターンに対応する変換パターンが、照合パターン番号ごとに与えられている。また、１つの照合パターン番号に対して、１又は複数の変換パターンが対応している。また、図５は、変換パターン表の各項目に記入可能な内容の書式の説明を行う図である。図５に示すように、図６−１における変換パターン番号２−１が付された変換パターンにおいては、変換後の関係種別は関連であり、ソースクラス名はモデルＡで注目している関係のソースクラス名（Ａ．ソースクラス名）、ターゲットクラス名はモデルＡで注目している関係のターゲットクラス名（Ａ．ターゲットクラス名）、ロール名はモデルＡで注目している関係のロール名（Ａ．ロール名）、関係名はモデルＡで注目している関係の関係名（Ａ．関連名）、多重度はモデルＡで注目している関連の多重度（Ａ．多重度）とモデルＢで注目している関連の多重度（Ｂ．多重度）との包含である。
【００３２】
ステップＳ１０６では、統合モデル生成部７は、ステップＳ１０２で見つかった関連のペアに対し、図６に示した変換パターン表に基づいて変換パターンを適用して統合モデルに追加する。今、モデルＡにおいてＩＤが１の関連要素とモデルＢにおいてＩＤが１の関連とのペアに対して、照合パターン２に対応する変換パターン２−１を適用する。変換パターン２−１は、ソースクラス名、ターゲットクラス名及びロール名を、ペアのうちモデルＡの側から採用し、多重度については、モデルＡとモデルＢにおける多重度を包含する多重度とすることを意味している。図１１は、ステップＳ１０６で変換された関係が出力された後の、統合モデルに含まれる関係要素を示す。図１１に示すように、統合モデルの関係要素として、ＩＤ＝１を付し、関係種類は「関連」、ソースクラス名は「動物園」、ターゲットクラス名は「サル」、ロール名は「小型動物」である。また、多重度は、図８におけるＩＤ＝１の関連の多重度「１０..２０」と、図１０におけるＩＤ＝１の関連の多重度「３０..５０」との包含である多重度「１０..２０，３０..５０」である。
【００３３】
ステップＳ１０７では、ステップＳ１０２で見つかったすべての関係要素のペアに対して処理を行なったかどうかを判断し、まだ未処理の関係要素のペアがあれば、ステップＳ１０３に戻る。そうでなければステップＳ１０８に進み、Ｓ１０３〜Ｓ１０６間のループ２を終了する。
【００３４】
ステップＳ１０９では、すべての照合パターンに対して処理を行なったかどうかを判断し、まだ未処理の照合パターンがあれば、ステップＳ１０１に戻る。そうでなければステップＳ１１０に進み、Ｓ１０１〜Ｓ１０９間のループを終了する。今、第２優先度である照合パターン２の処理が終わったが、第３優先度以降の照合パターンについてはまだ処理を行なっていないため、ステップＳ１０１に戻る。
【００３５】
以下、ステップＳ１０１からステップＳ１０９までのループ処理の流れは上記と同様であるので、パターンの相違に注目して処理の流れの説明を続ける。
【００３６】
第３優先度の照合パターンは、照合パターン番号３の照合パターンである。図８のモデルＡと図１０のモデルＢには、このパターンに適合する関連のペアは存在しない。このため、この照合パターンに対応する変換パターンの処理は実施しない。
【００３７】
第４優先度の照合パターンは、照合パターン番号４の照合パターンである。図８のモデルＡと図１０のモデルＢには、このパターンに適合する関連のペアとして、モデルＡにてＩＤが５の関連要素と、モデルＢにてＩＤが４の関連のペアが見つかる。また、照合パターン番号４に対応する変換パターンは、図６−１に示すように、変換パターン４−１と変換パターン４−２の２通りがある。この場合、ステップＳ１０４にて変換パターンが複数あると判断され、ステップＳ１０５にて変換パターンの選択を行なう。変換パターンの選択は、表示装置４により変換パターンの選択をユーザに要求する表示を行い、入力装置５を通じてユーザが変換パターンを１つ選択する。ステップＳ１０６において、選択された変換パターンに従って関係の変換を行い、統合モデルに追加する。今、ステップＳ１０５で変換パターン４−２が選択されたものとする。図１２は、ステップＳ１０６で変換された関係が出力された後の、統合モデルに含まれる関係要素を示す。図１２において、ＩＤが２の関連要素が、第４優先度の照合パターンに対応して追加された関係である。例えば、ロール名「好物＿主食」は、図６に示す変換ルールに従い、モデルＡからのロール名である「好物」とモデルＢからのロール名である「主食」とを組み合わせたものであり、ロール名が２つのモデルを比較したときの変動性を示す変動要素であることがわかる。このように、統合モデルでは、関数要素ごとに一致又は不一致等の同一性を表すようなラベルが付加され、共通性、変動性を表現している。
【００３８】
第５優先度の照合パターンは、照合パターン番号５の照合パターンである。図８のモデルＡと図１０のモデルＢには、このパターンに適合する関連のペアとして、モデルＡにてＩＤが３の関連と、モデルＢにてＩＤが３の関連のペアが見つかる。また、照合パターン番号５に対応する変換パターンは、図６−１に示すように、変換パターン５−１の１通りのみがある。図１３は、ステップＳ１０６で変換された関係が出力された後の、統合モデルに含まれる関係要素を示す。図１３において、ＩＤが３と４の関連が、第５優先度の照合パターンに対応して追加された関係である。例えば、ＩＤが３の関連においては、多重度は「０，１」であり、ＩＤが４の関連においては、多重度は「０，３」であり、それぞれ多重度０を許すことで、変動性をラベルしている。
【００３９】
第６優先度の照合パターンは、照合パターン番号６の照合パターンである。図８のモデルＡと図１０のモデルＢには、このパターンに適合する関連のペアは存在しない。このため、この照合パターンに対応する変換パターンの処理は実施しない。
【００４０】
第７優先度の照合パターンは、照合パターン番号７の照合パターンである。図８のモデルＡと図１０のモデルＢには、このパターンに適合する関連のペアは存在しない。このため、この照合パターンに対応する変換パターンの処理は実施しない。
【００４１】
第８優先度の照合パターンは、照合パターン番号８の照合パターンである。図８のモデルＡと図１０のモデルＢには、このパターンに適合する関連のペアとして、モデルＡにてＩＤが２の関連と、モデルＢにてＩＤが２の関連のペアが見つかる。また、照合パターン番号８に対応する変換パターンは、図６−２に示すように、変換パターン８−１と変換パターン８−２と変換パターン８−３の３通りがある。この場合、ステップＳ１０４にて変換パターンが複数あると判断され、ステップＳ１０５にて変換パターンの選択を行なう。変換パターンの選択は、表示装置４に変換パターンの選択をユーザに要求する表示を行い、入力装置５を通じてユーザが変換パターンを１つ選択する。ステップＳ１０６において、選択された変換パターンに従って関係の変換を行い、統合モデルに追加する。今、ステップＳ１０５で変換パターン８−３が選択されたものとする。図１４は、ステップＳ１０６で変換された関係が出力された後の、統合モデルに含まれる関係要素を示す。図１４において、ＩＤが５の関連、ＩＤが６及び７の汎化関係が、第８優先度の照合パターンに対応して追加された関係である。関連のペアのターゲットクラス名がそれぞれ「キリン」、「ゾウ」と異なることから、統合モデルの関係では、共通部分を抽象化したクラス「abstract＿大型動物」を介して、関連のペアを統合している。
【００４２】
第９優先度の照合パターンは、照合パターン番号９の照合パターンである。図８のモデルＡと図１０のモデルＢには、このパターンに適合する関連のペアは存在しない。このため、この照合パターンに対応する変換パターンの処理は実施しない。
【００４３】
第１０優先度の照合パターンは、照合パターン番号１０の照合パターンである。図８のモデルＡと図１０のモデルＢには、このパターンに適合する関連のペアとして、モデルＡにてＩＤが６の関連と、モデルＢにてＩＤが５の関連のペアが見つかる。また、照合パターン番号１０に対応する変換パターンは、図６−３に示すように、変換パターン１０−１と変換パターン１０−２と変換パターン１０−３の３通りがある。この場合、ステップＳ１０４にて変換パターンが複数あると判断され、ステップＳ１０５にて変換パターンの選択を行なう。変換パターンの選択は、表示装置４に変換パターンの選択をユーザに要求する表示を行い、入力装置５を通じてユーザが変換パターンを１つ選択する。ステップＳ１０６において、選択された変換パターンに従って関係の変換を行い、統合モデルに追加する。今、ステップＳ１０５で変換パターン１０−２が選択されたものとする。図１５は、ステップＳ１０６で変換された関係が出力された後の、統合モデルに含まれる関係要素を示す。図１５において、ＩＤが８の関連、ＩＤが９及び１０の実現関係が、第１０優先度の照合パターンに対応して追加された関係要素である。図１５では、関連のペアの共通性をインターフェイス「Ｉ＿食べる」として抽出している。
【００４４】
第１１優先度の照合パターンは、照合パターン番号１１の照合パターンである。図８のモデルＡと図１０のモデルＢには、このパターンに適合する関連のペアは存在しない。このため、この照合パターンに対応する変換パターンの処理は実施しない。
【００４５】
第１２優先度の照合パターンは、照合パターン番号１２の照合パターンである。図８のモデルＡと図１０のモデルＢには、このパターンに適合する関連のペアは存在しない。このため、この照合パターンに対応する変換パターンの処理は実施しない。
【００４６】
第１３優先度の照合パターンは、照合パターン番号１３の照合パターンである。これは、照合パターン番号１〜１３のすべての照合パターンに当てはまらない場合である。図８のモデルＡと図１０のモデルＢには、このパターンに適合する関連として、モデルＡにてＩＤが４の関連が見つかる。また、照合パターン番号１３に対応する変換パターンは、図６−３に示すように、変換パターン１３−１と変換パターン１３−２の２通りがある。この場合、ステップＳ１０４にて変換パターンが複数あると判断され、ステップＳ１０５にて変換パターンの選択を行なう。変換パターンの選択は、表示装置４に変換パターンの選択をユーザに要求する表示を行い、入力装置５を通じてユーザが変換パターンを１つ選択する。ステップＳ１０６において、選択された変換パターンに従って関係の変換を行い、統合モデルに追加する。今、ステップＳ１０５で変換パターン１３−１が選択されたものとする。図１６は、ステップＳ１０６で変換された関係が出力された後の、統合モデルに含まれる関係要素を示す。図１６において、ＩＤが１１の関連が、第１３優先度の照合パターンに対応して追加された関係である。
【００４７】
以上のようにして、すべての照合パターンに対する処理を終えたらステップＳ１１１に進む。ステップＳ１１１では、ここまで作成した統合モデルをＵＭＬのクラス図として出力する。図１７に、ステップＳ１１１で出力される統合モデルのクラス図を示す。例えば、クラス「ゾウ」とインターフェイス「Ｉ＿食べる」とは、関係名が「食べる」の「関連」で結ばれており、インターフェイス「Ｉ＿食べる」のロール名は「好物＿栄養源」、多重度は「５０，１００」である。この関連は、図１５におけるＩＤが８の関連をＵＭＬで表現したものである。なお、クラス「ゾウ」とインターフェイス「Ｉ＿食べる」を結ぶ矢印には、これが優先度１０の照合パターンに従って変換されたものであることを示すために、点線を介して「パターン１０」が付されている。他のクラス間の関係も同様であり、通常のＵＭＬの表記方法に従って図示されている。
【００４８】
上述のように、本実施の形態においては、２つのオブジェクト指向分析・設計モデルを入力とし、この２つの入力モデルの共通性と変動性を、照合パターンを参照することにより解析して、２つの入力モデルを統合する統合モデルを自動的に生成している。また、このような操作を順次繰り返すことにより、３つ以上のオブジェクト指向分析・設計モデルを統合する統合モデルを自動生成することができる。つまり、先ず、入力モデルを２つ選択し、これら２つのモデルを統合する統合モデルを生成する。次に、先に選択されたモデル以外のモデルを１つ選択して、選択されたモデルと前記統合モデルとを統合する統合モデルを生成する。このような操作を、繰り返してすべての入力モデルを統合する統合モデルを生成することができる。
【００４９】
本実施の形態に示されるモデル自動生成装置は、ハードディスク等の記憶手段、メモリ、及びＣＰＵ（Central Processing Unit）等を有するパーソナルコンピュータ等の情報処理装置により構成することができる。例えば、変換ルール定義部８は、ハードディスク等の記憶手段から実現され、モデル要素解析部６、統合モデル生成部７は、ＣＰＵ、メモリ、及びハードディスク等から実現される。また、コンピュータを、本実施の形態における変換ルール定義部８、モデル要素解析部６、統合モデル生成部７として機能させるためのプログラムを情報処理装置の記憶手段に記憶させ、メモリ上に呼び出して実行させることにより、上記処理を実行させることが可能となる。このプログラムは、インストール可能な形式又は実行可能な形式のファイルとしてＣＤ−ＲＯＭ（Compact Disk Read Only Memory）、フレキシブルディスク、ＤＶＤ（Digital Versatile Disc又はDigital Video Disc）、メモリーカード等のコンピュータで読み取り可能な記録媒体に記憶させて提供することができる。また、このプログラムを、インターネット等のネットワークに接続されたコンピュータに格納し、ネットワーク経由でダウンロードさせることにより提供することもできる。
【００５０】
本発明の実施の形態によれば、個別に作成された複数のオブジェクト指向分析・設計モデルから簡便に統合化されたオブジェクト指向分析・設計モデルの作成が可能であり、同一分野の類似したソフトウェアの開発において、新たに個々のソフトウェアに対してオブジェクト指向分析・設計モデルを作成する必要がなく、統合化されたオブジェクト指向分析・設計モデルを基礎としてソフトウェアを開発することができる。そのため、統合化されたオブジェクト指向分析・設計モデルを再利用した効率的なソフトウェア開発を行うことができる。
【００５１】
なお、変換ルール定義部８には、本装置の利用者が、照合パターン及び変換パターンを入力設定する入力手段を備えることができる。これにより、照合パターン及び変換パターンをそれぞれ入力し、又はその内容を変更することができる。変換ルール定義部８に定義される照合パターンと変換パターンを利用者が適宜入力、変更できることから、利用者の目的に応じて統合化されたモデルを作成することができる。
【産業上の利用可能性】
【００５２】
以上のように、本発明にかかるモデル自動生成装置及びプログラムは、再利用可能なソフトウェアの開発作業に適している。
【図面の簡単な説明】
【００５３】
【図１】本発明の実施の形態にかかるモデル自動生成装置の構成を示すブロック図である。
【図２】本発明の実施の形態において、２つのオブジェクト指向分析・設計モデルを入力して統合モデルを出力する処理の流れを表したフローチャートである。
【図３】本発明の実施の形態における照合パターンの一例を示す図である。
【図４−１】本発明の実施の形態における変換パターン表のフォーマットの一例を示す図である。
【図４−２】図４−１における項目の説明を行う図である。
【図５】本発明の実施の形態における変換パターン表の各項目に記入可能な内容の書式の説明を行う図である。
【図６−１】本実施の形態における変換パターン表の一例を示す図である。
【図６−２】図６−１に続く変換パターン表の一例を示す図である。
【図６−３】図６−２に続く変換パターン表の一例を示す図である。
【図７】本発明の実施の形態へ入力されるモデルＡの一例を示すクラス図である。
【図８】図７に示したモデルＡの例に含まれる関係要素の一覧を示す図である。
【図９】本発明の実施の形態へ入力されるモデルＢの一例を示すクラス図である。
【図１０】図９に示したモデルＢの例に含まれる関係要素の一覧を示す図である。
【図１１】第２優先照合パターン処理後の統合モデルの関係要素を示す図である。
【図１２】第４優先照合パターン処理後の統合モデルの関係要素を示す図である。
【図１３】第５優先照合パターン処理後の統合モデルの関係要素を示す図である。
【図１４】第８優先照合パターン処理後の統合モデルの関係要素を示す図である。
【図１５】第１０優先照合パターン処理後の統合モデルの関係要素を示す図である。
【図１６】第１３優先照合パターン処理後の統合モデルの関係要素を示す図である。
【図１７】本実施の形態がモデルＡとモデルＢとを統合することにより生成した統合モデルを表すクラス図である。
【符号の説明】
【００５４】
３  統合モデル
４  表示装置
５  入力装置
６  モデル要素解析部
７  統合モデル生成部
８  変換ルール定義部
１０  モデル自動生成装置
【図１】
2008140264.tif 000003
【図２】
2008140264.tif 000004
【図３】
2008140264.tif 000005
【図４−１】
2008140264.tif 000006
【図４−２】
2008140264.tif 000007
【図５】
2008140264.tif 000008
【図６−１】
2008140264.tif 000009
【図６−２】
2008140264.tif 000010
【図６−３】
2008140264.tif 000011
【図７】
2008140264.tif 000012
【図８】
2008140264.tif 000013
【図９】
2008140264.tif 000014
【図１０】
2008140264.tif 000015
【図１１】
2008140264.tif 000016
【図１２】
2008140264.tif 000017
【図１３】
2008140264.tif 000018
【図１４】
2008140264.tif 000019
【図１５】
2008140264.tif 000020
【図１６】
2008140264.tif 000021
【図１７】
2008140264.tif 000022