(57)【要約】【課題】あるモデルを再利用モデルとしたときに可変となる部分が、モデルを構築する要素の繰り返し項目と同一の用語として現れる特性を利用して、１つのモデルから再利用モデルであるモデルテンプレートを自動生成する。【解決手段】可変部設定手段１０２は、作成済みモデル格納手段１０１から読み込んだ作成済みモデルから抽象構文木を作成し、そのうち部分木が同じものは１つの部分木に統合する。パラメータ作成手段１０５は、中間モデルテンプレートからノードの文字列の出現頻度の一覧を作成し、その出現頻度の一覧の中で出現頻度が２以上のもののノードを取り出し、読み込んだ中間モデルテンプレートのノード値の文字列を、自動付与したパラメータ番号に置き換える。パラメータ設定手段１０５は、処理した結果をモデルテンプレート格納手段１０６に格納し、中間パラメータをパラメータ定義格納手段１０７に格納する。【選択図】図１
2010165205.tif 000002
【特許請求の範囲】
【請求項１】
入出力データを作成済みモデルとして格納する作成済みモデル格納手段と、
前記作成済みモデルの中のモデル要素の繰り返し項目を一つに統合したものをパラメータ設定して、少なくとも中間モデルテンプレートを作成する中間モデルテンプレート作成手段と、
前記中間モデルテンプレートを保存する第１の格納手段と、
前記モデル格納手段から読み込んだ前記作成済みモデルと、前記第１の格納手段から読み込んだ前記中間モデルテンプレートとから、それらモデル内の同一用語をパラメータに置き換えて、少なくともモデルテンプレートを作成するモデルテンプレート作成手段と、
前記モデルテンプレートを保存する第２の格納手段と
を有することを特徴とするモデルテンプレート自動生成システム。
【請求項２】
入出力データを作成済みモデルとして格納する作成済みモデル格納手段と、
前記作成済みモデルの中のモデル要素の繰り返し項目を一つに統合したものをパラメータ設定して、パラメータ付き中間モデルを作成するパラメータ付き中間モデル作成手段と、
前記パラメータ付き中間モデルを保存する第１の格納手段と、
前記モデル格納手段から読み込んだ前記作成済みモデルと、前記第１の格納手段から読み込んだ前記パラメータ付き中間モデルとから、それらモデル内の同一用語をパラメータに置き換えて、パラメータ付きモデルを作成するパラメータ付きモデル作成手段と、
前記パラメータ付きモデルを保存する第２の格納手段と
を有することを特徴とするモデルテンプレート自動生成システム。
【請求項３】
前記パラメータ付き中間モデル作成手段は、前記作成済みモデルの中のモデル要素の繰り返し項目を見つけて１つに統合し、それを再利用の際の可変部分としてパラメータ設定し、中間モデルテンプレートと中間パラメータとを前記パラメータ付き中間モデルとして作成する可変部設定手段であり、
前記パラメータ付きモデル作成手段は、前記作成済みモデルと前記中間モデルテンプレートと前記中間パラメータを受け取り、モデル内の同一用語をパラメータに置き換えることにより、モデルテンプレートとパラメータ定義とを前記パラメータ付きモデルとして作成するパラメータ作成手段である
ことを特徴とする請求項２記載のモデルテンプレート自動生成システム。
【請求項４】
前記可変部設定手段は、
前記モデル格納手段から読み込んだ前記作成済みモデルから抽象構文木を作成する抽象構文木作成手段と、
前記抽象構文木からノードの繰り返し項目を統合するために、部分木が同じものを検索して比較を行い同じ部分木を一つの部分木に統合すると共に、その統合の際にノード値が異なる部分木はパラメータ番号を自動付与する統合手段と、
前記作成済みモデルに前記統合手段で統合した前記部分木を前記中間モデルテンプレートとして作成すると共に、前記パラメータ番号をノード名称と対にして前記中間パラメータとして作成する手段と
を有することを特徴とする請求項３記載のモデルテンプレート自動生成システム。
【請求項５】
前記パラメータ作成手段は、
前記モデル格納手段から読み込んだ前記作成済みモデルから抽象構文木を作成する抽象構文木作成手段と、
前記抽象構文木からノード値の文字列を取り出し、その文字列とその文字列の出願頻度との一覧を作成する一覧作成手段と、
前記中間モデルテンプレートを読み込み、その中間モデルテンプレートを構成する各ノードのうち、前記一覧の中で前記出現頻度が所定値以上であるノード値を持つノードを取り出してパラメータ番号を自動付与するパラメータ付与手段と、
前記作成済みモデルに前記自動付与したパラメータ番号を持つノードが存在したときには、そのノードを前記中間モデルテンプレートに挿入する挿入手段と、
前記パラメータ付与手段及び前記挿入手段の処理後の前記中間モデルテンプレートを前記モデルテンプレートとして作成すると共に、前記中間パラメータを前記パラメータ定義として作成する作成手段と
を有することを特徴とする請求項３記載のモデルテンプレート自動生成システム。
【請求項６】
作成済みモデル格納部から作成済みモデルを読み込む作成済みモデル読み込みステップと、
前記作成済みモデルの中のモデル要素の繰り返し項目を一つに統合したものをパラメータ設定して、少なくとも中間モデルテンプレートを作成する中間モデルテンプレート作成ステップと、
前記中間モデルテンプレートを第１の格納部に保存する第１の格納ステップと、
読み込んだ前記作成済みモデルと、前記第１の格納部から読み込んだ前記中間モデルテンプレートとから、それらモデル内の同一用語をパラメータに置き換えて、少なくともモデルテンプレートを作成するモデルテンプレート作成ステップと、
前記モデルテンプレートを第２の格納部に保存する第２の格納ステップと
を含むことを特徴とするモデルのテンプレート自動生成方法。
【請求項７】
作成済みモデル格納部から作成済みモデルを読み込む作成済みモデル読み込みステップと、
読み込んだ前記作成済みモデルの中のモデル要素の繰り返し項目を一つに統合したものをパラメータ設定して、パラメータ付き中間モデルを作成するパラメータ付き中間モデル作成ステップと、
前記パラメータ付き中間モデルを第１の格納部に保存する第１の格納ステップと、
読み込んだ前記作成済みモデルと、前記第１の格納部から読み込んだ前記パラメータ付き中間モデルとから、それらモデル内の同一用語をパラメータに置き換えて、パラメータ付きモデルを作成するパラメータ付きモデル作成ステップと、
前記パラメータ付きモデルを第２の格納部に保存する第２の格納ステップと
を含むことを特徴とするモデルテンプレート自動生成方法。
【請求項８】
前記パラメータ付き中間モデル作成ステップは、前記作成済みモデルの中のモデル要素の繰り返し項目を見つけて１つに統合し、それを再利用の際の可変部分としてパラメータ設定し、中間モデルテンプレートと中間パラメータとを前記パラメータ付き中間モデルとして作成する可変部設定ステップであり、
前記パラメータ付きモデル作成ステップは、前記作成済みモデルと前記中間モデルテンプレートと前記中間パラメータを受け取り、モデル内の同一用語をパラメータに置き換えることにより、モデルテンプレートとパラメータ定義とを前記パラメータ付きモデルとして作成するパラメータ作成ステップである
ことを特徴とする請求項７記載のモデルテンプレート自動生成方法。
【請求項９】
前記可変部設定ステップは、
読み込んだ前記作成済みモデルから抽象構文木を作成する抽象構文木作成ステップと、
前記抽象構文木からノードの繰り返し項目を統合するために、部分木が同じものを検索して比較を行い同じ部分木を一つの部分木に統合すると共に、その統合の際にノード値が異なる部分木はパラメータ番号を自動付与する統合ステップと、
前記作成済みモデルに前記統合ステップで統合した前記部分木を前記中間モデルテンプレートとして作成すると共に、前記パラメータ番号をノード名称と対にして前記中間パラメータとして作成する作成ステップと
を含むことを特徴とする請求項８記載のモデルテンプレート自動生成方法。
【請求項１０】
前記パラメータ作成ステップは、
読み込んだ前記作成済みモデルから抽象構文木を作成する抽象構文木作成ステップと、
前記抽象構文木からノード値の文字列を取り出し、その文字列とその文字列の出願頻度との一覧を作成する一覧作成ステップと、
前記中間モデルテンプレートを読み込み、その中間モデルテンプレートを構成する各ノードのうち、前記一覧の中で前記出現頻度が所定値以上であるノード値を持つノードを取り出してパラメータ番号を自動付与するパラメータ付与ステップと、
前記作成済みモデルに前記自動付与したパラメータ番号を持つノードが存在したときには、そのノードを前記中間モデルテンプレートに挿入する挿入ステップと、
前記パラメータ付与ステップ及び前記挿入ステップの処理後の前記中間モデルテンプレートを前記モデルテンプレートとして作成すると共に、前記中間パラメータを前記パラメータ定義として作成する作成ステップと
を含むことを特徴とする請求項８記載のモデルテンプレート自動生成方法。
【請求項１１】
作成済みモデル格納部から作成済みモデルを読み込む作成済みモデル読み込みステップと、
前記作成済みモデルの中のモデル要素の繰り返し項目を一つに統合したものをパラメータ設定して、少なくとも中間モデルテンプレートを作成する中間モデルテンプレート作成ステップと、
前記中間モデルテンプレートを第１の格納部に保存する第１の格納ステップと、
読み込んだ前記作成済みモデルと、前記第１の格納部から読み込んだ前記中間モデルテンプレートとから、それらモデル内の同一用語をパラメータに置き換えて、少なくともモデルテンプレートを作成するモデルテンプレート作成ステップと、
前記モデルテンプレートを第２の格納部に保存する第２の格納ステップと
を、コンピュータにより実行させることを特徴とするモデルのテンプレート自動生成プログラム。
【請求項１２】
作成済みモデル格納部から作成済みモデルを読み込む作成済みモデル読み込みステップと、
読み込んだ前記作成済みモデルの中のモデル要素の繰り返し項目を一つに統合したものをパラメータ設定して、パラメータ付き中間モデルを作成するパラメータ付き中間モデル作成ステップと、
前記パラメータ付き中間モデルを第１の格納部に保存する第１の格納ステップと、
読み込んだ前記作成済みモデルと、前記第１の格納部から読み込んだ前記パラメータ付き中間モデルとから、それらモデル内の同一用語をパラメータに置き換えて、パラメータ付きモデルを作成するパラメータ付きモデル作成ステップと、
前記パラメータ付きモデルを第２の格納部に保存する第２の格納ステップと
を、コンピュータにより実行させることを特徴とするモデルテンプレート自動生成プログラム。
【請求項１３】
前記パラメータ付き中間モデル作成ステップは、前記作成済みモデルの中のモデル要素の繰り返し項目を見つけて１つに統合し、それを再利用の際の可変部分としてパラメータ設定し、中間モデルテンプレートと中間パラメータとを前記パラメータ付き中間モデルとして作成する可変部設定ステップであり、
前記パラメータ付きモデル作成ステップは、前記作成済みモデルと前記中間モデルテンプレートと前記中間パラメータを受け取り、モデル内の同一用語をパラメータに置き換えることにより、モデルテンプレートとパラメータ定義とを前記パラメータ付きモデルとして作成するパラメータ作成ステップである
ことを特徴とする請求項１２記載のモデルテンプレート自動生成プログラム。
【請求項１４】
前記可変部設定ステップは、
読み込んだ前記作成済みモデルから抽象構文木を作成する抽象構文木作成ステップと、
前記抽象構文木からノードの繰り返し項目を統合するために、部分木が同じものを検索して比較を行い同じ部分木を一つの部分木に統合すると共に、その統合の際にノード値が異なる部分木はパラメータ番号を自動付与する統合ステップと、
前記作成済みモデルに前記統合ステップで統合した前記部分木を前記中間モデルテンプレートとして作成すると共に、前記パラメータ番号をノード名称と対にして前記中間パラメータとして作成する作成ステップと
を含むことを特徴とする請求項１３記載のモデルテンプレート自動生成プログラム。
【請求項１５】
前記パラメータ作成ステップは、
読み込んだ前記作成済みモデルから抽象構文木を作成する抽象構文木作成ステップと、
前記抽象構文木からノード値の文字列を取り出し、その文字列とその文字列の出願頻度との一覧を作成する一覧作成ステップと、
前記中間モデルテンプレートを読み込み、その中間モデルテンプレートを構成する各ノードのうち、前記一覧の中で前記出現頻度が所定値以上であるノード値を持つノードを取り出してパラメータ番号を自動付与するパラメータ付与ステップと、
前記作成済みモデルに前記自動付与したパラメータ番号を持つノードが存在したときには、そのノードを前記中間モデルテンプレートに挿入する挿入ステップと、
前記パラメータ付与ステップ及び前記挿入ステップの処理後の前記中間モデルテンプレートを前記モデルテンプレートとして作成すると共に、前記中間パラメータを前記パラメータ定義として作成する作成ステップと
を含むことを特徴とする請求項１３記載のモデルテンプレート自動生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はモデルのテンプレート自動生成システム、方法及びプログラムに係り、特にモデリング言語で記述されたソフトウェアのモデルから再利用可能なモデルであるモデルテンプレートを自動生成する、モデルのテンプレート自動生成システム、方法及びプログラムに関する。
【背景技術】
【０００２】
ＭＤＡ(Model Driven Architecture：モデル駆動アーキテクチャ)のようなモデリング言語で記述されたソフトウェアの開発を行う開発手法において、或る問題領域で再利用できるテンプレート化したモデル(モデルテンプレート)を作るためには、或る問題領域で複数回のモデリング経験の有る開発者がモデルエディタを用いて作成している。
【０００３】
このようなモデルテンプレートやプログラム部品を作成する方法が特許文献１や特許文献２に開示されている。特許文献１には、過去の業務プロセスモデリングの結果を再利用できるようにするために、業務を構成する作業内容及び作業フロー、作業で使用するデータなどを含む業務プロセスを、階層化構造を用いて表した業務プロセスモデルを記憶装置に記憶するシステムが開示されている。この特許文献１記載のシステムでは、業務プロセスモデルの検索の際に階層構造を検索キーとして使用して、より適切な業務プロセスモデルを抽出する。従って、この業務プロセスモデルはモデルテンプレートに相当する。
【０００４】
また、特許文献２には、ソフトウェアを部品化し、再利用するためのソフトウェア部品化方法において、プログラムとデータ名とを読み込み、読み込んだプログラムから読み込んだデータ名のデータの参照手順を抽出し、抽出した参照手順をプログラム部品として登録する方法が開示されている。
【０００５】
しかし、モデルを用いたソフトウェア開発を行うことが多くなるにつれて、複数回のモデリング経験を持たない開発者であっても、再利用可能なモデルテンプレートを作成しモデリング作業を効率化することが求められるようになった。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−２８５３１３号公報
【特許文献２】特開平８−１３７６８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記のモデルのテンプレート生成方法では、次のような課題がある。
【０００８】
第一の課題は、再利用モデルであるモデルテンプレートの作成には、開発者のスキルと時間を要し、モデルのパラメータ化の間違いや漏れを完全に防止することができないことである。
【０００９】
その理由は、再利用モデルであるモデルテンプレートの作成は、開発者がモデルエディタを用いて再利用可能な部分を特定しパラメータ化していくという作業を手作業で行っているためである。
【００１０】
第２の課題は、再利用モデルを作成するには、或る問題領域の複数のモデリング経験と共通性及び可変の部分を見付けるために或る問題領域の複数のモデルが必要であることである。
【００１１】
その理由は、再利用可能なものを作り上げるには、モデリング経験のある開発者が複数のモデル間で、共通な部分と可変の部分を見極めて、或るモデルに特有の部分を可変部分としてパラメータ化したモデルを再利用モデルとしているためである。
【００１２】
本発明は以上の点に鑑みなされたもので、あるモデルを再利用モデルとしたときに可変となる部分が、モデルを構築する要素の繰り返し項目と同一の用語として現れる特性を利用して、１つのモデルから再利用モデルであるモデルテンプレートを自動生成できるモデルのテンプレート自動生成システム、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記の目的を達成するため、本発明のモデルのテンプレート自動生成システムは、入出力データを作成済みモデルとして格納する作成済みモデル格納手段と、作成済みモデルの中のモデル要素の繰り返し項目を一つに統合したものをパラメータ設定して、少なくとも中間モデルテンプレートを作成する中間モデルテンプレート作成手段と、中間モデルテンプレートを保存する第１の格納手段と、モデル格納手段から読み込んだ作成済みモデルと、第１の格納手段から読み込んだ中間モデルテンプレートとから、それらモデル内の同一用語をパラメータに置き換えて、少なくともモデルテンプレートを作成するモデルテンプレート作成手段と、モデルテンプレートを保存する第２の格納手段とを有することを特徴とする。
【００１４】
また、上記の目的を達成するため、本発明のモデルのテンプレート自動生成方法は、作成済みモデル格納部から作成済みモデルを読み込む作成済みモデル読み込みステップと、作成済みモデルの中のモデル要素の繰り返し項目を一つに統合したものをパラメータ設定して、少なくとも中間モデルテンプレートを作成する中間モデルテンプレート作成ステップと、中間モデルテンプレートを第１の格納部に保存する第１の格納ステップと、読み込んだ作成済みモデルと、第１の格納部から読み込んだ中間モデルテンプレートとから、それらモデル内の同一用語をパラメータに置き換えて、少なくともモデルテンプレートを作成するモデルテンプレート作成ステップと、モデルテンプレートを第２の格納部に保存する第２の格納ステップとを含むことを特徴とする。
【００１５】
更に、上記の目的を達成するため、本発明のモデルのテンプレート自動生成プログラムは、作成済みモデル格納部から作成済みモデルを読み込む作成済みモデル読み込みステップと、作成済みモデルの中のモデル要素の繰り返し項目を一つに統合したものをパラメータ設定して、少なくとも中間モデルテンプレートを作成する中間モデルテンプレート作成ステップと、中間モデルテンプレートを第１の格納部に保存する第１の格納ステップと、読み込んだ作成済みモデルと、第１の格納部から読み込んだ中間モデルテンプレートとから、それらモデル内の同一用語をパラメータに置き換えて、少なくともモデルテンプレートを作成するモデルテンプレート作成ステップと、モデルテンプレートを第２の格納部に保存する第２の格納ステップとを、コンピュータにより実行させることを特徴とする。
【発明の効果】
【００１６】
本発明によれば、可変部設定手段でモデルの繰り返し構造を統合し、パラメータ作成手段で用語の持つ意味の一意性が成り立つようにパラメータ化を行う構成としているため、１つの作成済みモデルから再利用モデルであるモデルテンプレートを得ることができる。
【図面の簡単な説明】
【００１７】
【図１】本発明のモデルのテンプレート自動生成システムの一実施形態のブロック図である。
【図２】図１の実施形態の可変部設定手段の動作を示すフローチャートである。
【図３】図１の実施形態のパラメータ作成手段動作を示すフローチャートである。
【図４】抽象構文木として表現した一例の作成済みモデルである。
【図５】図１の中間モデルテンプレート格納手段に格納される中間モデルテンプレートの一実施例を示す図である。
【図６】図１の可変部設定手段が自動生成した中間パラメータの一実施例を示す図である。
【図７】図１のパラメータ設定手段が自動生成したモデルテンプレートの一実施例を示す図である。
【図８】図１のパラメータ設定手段が自動生成したパラメータ定義の一実施例を示す図である。
【発明を実施するための形態】
【００１８】
次に、発明を実施するための形態について図面を参照して詳細に説明する。
【００１９】
図１は、本発明になるモデルのテンプレート自動生成システムの一実施形態のブロック図を示す。同図に示すように、本実施形態のモデルのテンプレート自動生成システム１００は、作成済みモデルを記憶しておく作成済みモデル格納手段１０１と、作成済みモデルからモデルの再利用に可変となる部分を設定する可変部設定手段１０２と、可変部設定手段１０２で処理した結果を記憶しておく中間モデルテンプレート格納手段１０３及び中間パラメータ格納手段１０４と、作成済みモデル格納手段１０１からの作成済みモデルと可変部設定手段１０２が処理した結果を受け取って、パラメータ化処理を行うパラメータ作成手段１０５と、パラメータ作成手段１０５が処理した結果を記憶しておくモデルテンプレート格納手段１０６及びパラメータ定義格納手段１０７とを有する。
【００２０】
作成済みモデル格納手段１０１は、可変部設定手段１０２とパラメータ作成手段１０５が読み込んだ時に抽象構文木として変換できるものを記憶している。抽象構文木は、１つ以上のノードを木構造で表したものである。１つのノードは、ノード名称とノード値を持つか、あるいは、ノード名称とノードを持つものである。中間モデルテンプレート格納手段１０３は、可変部設定手段１０２の加工処理の結果作られた抽象構文木を記憶している。中間パラメータ格納手段１０４は、可変部設定手段１０２が自動付与したパラメータ番号と、自動付与したノード名を抽象構文木のルートからのパスを付けた文字列を中間パラメータとして複数記憶している。
【００２１】
モデルテンプレート格納手段１０６は、パラメータ作成手段１０５の加工処理の結果作られた抽象構文木をモデルテンプレートとして記憶している。パラメータ定義格納手段１０７は、パラメータ作成手段１０５が自動付与したパラメータ番号と、自動付与したノード名を抽象構文木のルートからのパスを付けた文字列の対をパラメータ定義として複数記憶している。
【００２２】
次に、本実施形態の概略動作について説明する。
【００２３】
可変部設定手段１０２は、作成済みモデル格納手段１０１から作成済みモデルを読み込み、抽象構文木を作成する。次に、可変部設定手段１０２は、作成した抽象構文木からノードの繰り返し項目を統合するために、部分木が同じものを検索するために部分木の比較を行い、同じものは１つの部分木に統合する。部分木の比較は、あるノードの名称とそのノードの子の部分木のノード名称が一致した場合、部分木が同じとして処理する。一致せず異なる場合は同じとして処理しない。比較結果で得られた統合対象を統合する際に、ノード値が異なるものはパラメータ番号を自動付与すると共に、繰り返し項目であることを表すフラグを立てる。
【００２４】
可変部設定手段１０２は、最後に、読み込んだ作成済みモデルに対して上記の処理を行った結果を中間モデルテンプレート格納手段１０３に中間モデルテンプレートとして格納する。また、可変部設定手段１０２は、上記の処理の際に自動付与したパラメータ番号をノード名称が一意に定まるようにルートのノードから辿ったノード名称と対にして中間パラメータ格納手段１０４に中間パラメータとして格納する。
【００２５】
次に、パラメータ作成手段１０５は、初めに作成済みモデル格納手段１０１から作成済みモデルを読み込み、抽象構文木を作成する。続いて、パラメータ作成手段１０５は、ノード値の文字列を取り出し、その文字列と出現頻度の一覧を作成する。このときノード値の部分文字列も一覧作成の対象とする。
【００２６】
次に、パラメータ作成手段１０５は、中間モデルテンプレート格納手段１０３から中間モデルテンプレートを読み込み、出現頻度の一覧と合わせて中間モデルテンプレートの加工処理を開始する。続いて、パラメータ作成手段１０５は、出現頻度の一覧の中で出現頻度が２以上のもののノードを取り出し、読み込んだ中間モデルテンプレートのノード値の文字列を、自動付与したパラメータ番号に置き換える。最後に、パラメータ設定手段１０５は、処理した結果をモデルテンプレート格納手段１０６にモデルテンプレートとして格納し、更に、処理の際に自動付与したパラメータ番号を、中間パラメータ格納手段１０４から読み込んだ中間パラメータとマージして、ノード名が一意に定まるようにルートノードから辿ったノード名称と対にしてパラメータ定義格納手段１０７にパラメータ定義として格納する。
【００２７】
次に、図１のブロック図と、図２及び図３のフローチャートを併せ参照して本実施形態の全体の動作について詳細に説明する。
【００２８】
まず、可変部設定手段１０２の動作について、図２のフローチャートと共に説明する。可変部設定手段１０２は、作成済みモデル格納手段１０１から作成済みモデルを読み込む（図２のステップＡ１）。次に、可変部設定手段１０２は、読み込んだ作成済みモデルから抽象構文木を作成する（図２のステップＡ２）。続いて、抽象構文木を親ノードと子の部分木に分割可能か確認する（図２のステップＡ３）。分割できる場合は図２のステップＡ４に進み、分割できない場合は図２のステップＡ６に進む。
【００２９】
分割できる場合は、統合可能な部分木があるか確認する（図２のステップＡ４）。可変部設定手段１０２は、統合可能な部分木が存在する場合はステップＡ５に進み、存在しない場合はステップＡ３に戻る。統合可能な部分木が存在する場合は、統合可能な複数の部分木を取り出し、属性値やノード値にパラメータ番号を自動付与し、１つの部分木を作成する（図２のステップＡ５）。その後、統合していない部分木を処理するため、図２のステップＡ３に戻る。
【００３０】
一方、可変部設定手段１０２は、ステップＡ３で部分木に分割できないことを確認した場合は、可変部設定手段１０２の今までの処理結果をまとめて中間モデルテンプレートとして中間モデルテンプレート格納手段１０３に保存する（図２のステップＡ６）。次に、可変部設定手段１０２は、まとめた処理結果から中間パラメータを中間パラメータ格納手段１０４に保存する（図２のステップＡ７）。なお、中間モデルテンプレートと中間パラメータの２つを合わせて、本明細書では「パラメータ付き中間モデル」と呼ぶこととする。
【００３１】
次に、パラメータ作成手段１０５の動作について、図３のフローチャートと共に詳細に説明する。まず、パラメータ作成手段１０５は、作成済みモデル格納手段１０１から作成済みモデルを読み込む（図３のステップＡ８）。次に、パラメータ作成手段１０５は、読み込んだ作成済みモデルから抽象構文木を作成する（図３のステップＡ９）。そして、ノード値と出現頻度の一覧を作成する（図３のステップＡ１０）。更に、作成した出現頻度の一覧から出現頻度２以上を取り出す（図３のステップＡ１１）。
【００３２】
次に、パラメータ作成手段１０５は、中間モデルテンプレート格納手段１０３から中間モデルテンプレートを読み込み（図３のステップＡ１２）、その中から出現頻度２以上のノード値を持つノードを取り出して、パラメータ番号を自動付与する（図３のステップＡ１３）。
【００３３】
続いて、パラメータ作成手段１０５は、ステップＡ１３でパラメータ番号を自動付与したノード値と同じ属性値が作成済みモデルにあるかどうか検索し、ある場合、それを取り出して中間モデルテンプレートに挿入する（図３のステップＡ１４）。続いて、パラメータ作成手段１０５は、中間モデルテンプレートに対する今までの処理結果をまとめてモデルテンプレートとしてモデルテンプレート格納手段１０６に保存し（図３のステップＡ１５）、中間パラメータをパラメータ定義としてパラメータ定義格納手段１０７に保存する（図３のステップＡ１６）。なお、モデルテンプレートとパラメータ定義の２つを合わせて、本明細書では「パラメータ付きモデル」と呼ぶこととする。
【００３４】
次に、本実施形態の効果について説明する。
【００３５】
本実施形態では、可変部設定手段１０２でモデルの繰り返し構造を統合し、パラメータ作成手段１０５で用語の持つ意味の一意性が成り立つようにパラメータ化を行う構成としている。このため、本実施形態によれば、複数の作成済みモデルを用意しなくても、１つの作成済みモデルから再利用モデルであるモデルテンプレートを得ることができる。
【００３６】
また、本実施形態では、モデル要素の繰り返し項目や同一用語がモデル特有部分になるという性質を利用して、作成済みモデルから再利用モデルであるモデルテンプレートを自動生成するようにしている。このため、本実施の形態によれば、或る問題領域で複数回のモデリング経験の無いモデリング技能の低い開発者であっても、再利用モデルを自動生成できるようになることでパラメータ化作業の間違いや漏れを防止できる。
【００３７】
なお、前述した特許文献１記載の発明は業務フローの上位・下位を階層構造を用いて表したモデルをテンプレートしているが、本実施形態では、これとは異なり、モデル要素（ノード）の繰り返し構造とモデル要素の値に同一用語が出現しているかの判断により、自動的にモデル要素の統合とパラメータ定義を行ったものをテンプレートとしている。
【００３８】
また、前述した特許文献２記載の発明は図面上で部品化しない部分を消去するという人間を介した結果として得られるテンプレートをプログラム部品として登録している。これに対し、本実施形態では、可変部分となるパラメータがモデルテンプレートのどの位置にあるのかを示すためにルートノードから辿ったノード名称をパラメータ定義として登録するものであり、特許文献２記載の発明とは異なる。
【実施例１】
【００３９】
次に、具体的な実施例を用いて本発明のモデルのテンプレート自動生成システム１００の動作を説明する。
【００４０】
図４は、作成済みモデルを抽象構文木として表現した一例を示す。この抽象構文木は、図４に示すようにＸＬＭ(extensible markup language)のノード名称あるいはノードの属性として表される。図４において、ノードは<FunctionUnit Name=‘商品検索’>やName=‘商品検索’である。ノード名称は、FunctionUnitやNameである。ノード値は‘商品検索’である。
【００４１】
図１の可変部設定手段１０２は、作成済みモデル格納手段１０１から作成済みモデルを読み込む（図２のステップＡ１）と、図４に示すような木構造で表すことができる抽象構文木を作成する（図２のステップＡ２）。次に、可変部設定手段１０２は、親ノードと子の部分木に分割可能かを確認し（図２のステップＡ３）、分割可能であれば更に統合可能な部分木があるか確認し（図２のステップＡ４）、統合可能であれば、統合可能な複数の部分木を統合し、統合後のノード値にパラメータ番号を自動付与する（図２のステップＡ５）。図１の可変部設定手段１０２は、処理が完了すると、処理結果をまとめて、それを中間モデルテンプレートとして図１の中間モデルテンプレート格納手段１０３に格納し（図２のステップＡ６）、さらに、中間パラメータを中間パラメータ格納手段１０４に格納する（図２のステップＡ７）。
【００４２】
図５は、パラメータ番号を自動付与した後の図１の中間モデルテンプレート格納手段１０３に格納される中間モデルテンプレートの一例を示す。図５に示すように、「ノードPage」、「Reference」、「Element」、「Attribute」などが繰り返し項目として統合され、属性値は、一意に番号付けられたパラメータ番号である$1〜$8に置き換えられ、繰り返し項目を表すフラグrepeatableが付けられている。
【００４３】
図６は処理の結果得られた図１の中間パラメータ格納手段１０４に格納される中間パラメータの一例を示す。図６に示すように、中間パラメータは、中間モデルテンプレートにおけるパラメータ番号と、それに対応したルートノードからのパス付きノード名の一覧を表している。例えば、自動付与したパラメータ番号$1はノード名称のパスとして、「FunctionUnit,Component,Page,Name」が書き込まれている。
【００４４】
次に、図１のパラメータ作成手段１０５は、作成済みモデル格納手段１０１から作成済みモデルを読み込む（図３のステップＡ８）と、図４に示すような木構造で表すことができる抽象構文木を作成する（図３のステップＡ９）。続いて、パラメータ作成手段１０５は、ノードと出現頻度の一覧を作成し（図３のステップＡ１０）、出現頻度２以上のノードを取り出す（図３のステップＡ１１）。
【００４５】
次に、パラメータ作成手段１０５は、中間モデルテンプレート格納手段１０３から図５に示したような中間モデルテンプレートを読み込み（図３のステップＡ１２）、図３のステップＡ１１の手順で得られた出現頻度２以上のノード値を取り出して、自動付与したパラメータ番号に置き換える（図３のステップＡ１３）。
【００４６】
パラメータ作成手段１０５は、処理が完了すると、処理結果をまとめて、図１のモデルテンプレート格納手段１０６に格納し（図３のステップＡ１４）、さらに、パラメータ定義格納手段１０７に格納する（図３のステップＡ１５）。
【００４７】
図７は、図５に示したような中間モデルテンプレートを処理した結果であるモデルテンプレートを表している。図５において「商品」と「検索」という文字列は、出現頻度２以上であることから、これらの文字列は、図７に示すように、自動付与したパラメータ番号$9と$10にそれぞれ置き換えられている。
【００４８】
図８は、図６の中間パラメータを処理した結果であるパラメータ定義格納手段１０７に格納されるパラメータ定義の一例を示す。図８に示すように、パラメータ定義は、自動付与したパラメータ番号$9と$10とノード名称のパスが、図６に示した中間パラメータに追記で書き込まれた構成である。
【００４９】
なお、「“＄”から始まる文字列はパラメータ定義する」という制約を加えれば、中間パラメータ格納手段１０４に格納される中間パラメータは中間モデルテンプレートから作成することができるため、中間パラメータ格納手段１０４を不要にできる。同様に、上記の制約を加えれば、パラメータ定義格納手段１０７に格納されるパラメータ定義はモデルテンプレートから作成することができるため、パラメータ定義格納手段１０７を不要にできる。
【００５０】
なお、本発明は以上の実施形態及び実施例に限定されるものではなく、例えば、図２及び図３のフローチャートの各処理をコンピュータにより実行させるモデル添付レータ自動生成プログラムも本発明に包含されるものである。
【産業上の利用可能性】
【００５１】
本発明によれば、MDA(Model Driven Architecture：モデル駆動アーキテクチャ)のようなモデリングによるソフトウェア開発を行う開発手法において、類似の処理構造を持つ機能のモデリング作業の効率化といった用途に適用可能である。例えば、業務システムの開発では、業務データの検索処理や更新処理を行うソフトウェアのモデルは業務データの種類が異なることを除き、モデルの多くの部分が類似している。業務システム全体機能に対し、類似機能の占める割合は３割を超える場合もあり、それらの機能のモデリングを個々に行うのは効率が悪い。このような開発において、テンプレート化された再利用可能なモデルを利用することで、モデリング作業の効率化といった用途に適用できる。また、本発明で作成した再利用モデルを一つの業務システム開発だけで用いるのではなく、他の業務システム開発にも再利用することで、開発組織のモデリングの効率化を行うといった用途にも適用可能である。
【符号の説明】
【００５２】
１００  モデルのテンプレート自動生成システム
１０１  作成済みモデル格納手段
１０２  可変部設定手段
１０３  中間モデルテンプレート
１０４  中間パラメータ格納手段
１０５  パラメータ作成手段
１０６  モデルテンプレート格納手段
１０７  パラメータ定義格納手段
【図１】
2010165205.tif 000003
【図２】
2010165205.tif 000004
【図３】
2010165205.tif 000005
【図４】
2010165205.tif 000006
【図５】
2010165205.tif 000007
【図６】
2010165205.tif 000008
【図７】
2010165205.tif 000009
【図８】
2010165205.tif 000010