(57)【要約】【課題】  予め知識ベース情報、事例データベース等の類似性を判定するための情報を設定していなくても、完全にViewとControlを分離できることができないコンポーネント部品と、画面との類似度を取得する技術を提供する。【解決手段】  コンポーネント部品に含まれるプロパティ、イベント、メソッドの各々の数と、画面に含まれる画面構成部品のうち、ボタン、ラベル、入力フォームの各々の数とから、コンポーネント部品と画面とのマッチ率を算出する。【選択図】  図１
2009087006.tif 000002
【特許請求の範囲】
【請求項１】
画面情報データと、コンポーネント部品データとの類似度を取得する類似度取得装置であって、
画面にオブジェクトを表示する１つ以上の種類の画面構成部品のうち少なくとも１つを有する前記画面情報データと、画面を制御する１つ以上の種類の制御部品のうち少なくとも１つを有する前記コンポーネント部品データとの各々を、複数記憶する記憶装置と、
前記画面情報データの各々に含まれる画面構成部品の種別毎の数と、前記コンポーネント部品データの各々に含まれる制御部品の種別毎の数とから、前記画面情報データの各々と、前記コンポーネント部品データの各々との類似度を算出する類似度算出手段と、
前記算出した結果を出力装置に出力する出力処理手段と、を有すること
を特徴とする類似度取得装置。
【請求項２】
請求項１記載の類似度取得装置であって、
前記類似性算出手段が、前記画面情報データの各々に含まれる画面構成部品の種別毎の数と、前記コンポーネント部品データの各々に含まれる制御部品の種別毎の数との比率から、類似度を算出すること
を特徴とする類似度取得装置。
【請求項３】
請求項1記載の類似度取得装置であって、
前記制御部品とは、プロパティ、メソッド、イベントであること
を特徴とする類似度取得装置。
【請求項４】
請求項1記載の類似度取得装置であって、
前記画面構成部品とは、ボタン、ラベル、入力フォームであること
を特徴とする類似度取得装置。
【請求項５】
画面情報データと、コンポーネント部品データとの類似度を取得する類似度取得装置であって、
画面に表示するボタン、ラベル、入力フォームの画面構成部品のうち少なくとも１つを有する前記画面情報データと、画面を制御するプロパティ、メソッド、イベントのうち少なくとも１つを有する前記コンポーネント部品データとの各々を、複数記憶する記憶装置と、
前記画面情報データの各々に含まれるボタンの数と前記コンポーネント部品データの各々に含まれるイベントの数との比率、前記画面情報データの各々に含まれるラベルの数と前記コンポーネント部品データの各々に含まれるプロパティの数との比率、及び、前記画面情報データの各々に含まれる入力フォームの数と前記コンポーネント部品データの各々に含まれるメソッドの数との比率から、前記画面情報データの各々と、前記コンポーネント部品データの各々との類似度を算出する類似度算出手段と、
前記算出した結果を出力装置に出力する出力処理手段と、を有すること
を特徴とする類似度取得装置。
【請求項６】
画面情報データと、コンポーネント部品データとの類似度を取得する類似度取得装置による類似性取得方法であって、
画面にオブジェクトを表示する１つ以上の種類の画面構成部品のうち少なくとも１つを有する前記画面情報データと、画面を制御する１つ以上の種類の制御部品のうち少なくとも１つを有する前記コンポーネント部品データとの各々を、複数記憶する記憶装置、を有する前記類似度取得装置に、
前記画面情報データの各々に含まれる画面構成部品の種別毎の数と、前記コンポーネント部品データの各々に含まれる制御部品の種別毎の数とから、前記画面情報データの各々と、前記コンポーネント部品データの各々との類似度を算出するステップと、
前記算出した結果を出力装置に出力するステップと、を実行させること
を特徴とする類似性取得方法。
【請求項７】
画面情報データと、コンポーネント部品データとの類似度を取得する類似度取得装置による類似性取得プログラムであって、
画面にオブジェクトを表示する１つ以上の種類の画面構成部品のうち少なくとも１つを有する前記画面情報データと、画面を制御する１つ以上の種類の制御部品のうち少なくとも１つを有する前記コンポーネント部品データとの各々を、複数記憶する記憶装置、を有する前記類似度取得装置に、
前記画面情報データの各々に含まれる画面構成部品の種別毎の数と、前記コンポーネント部品データの各々に含まれる制御部品の種別毎の数とから、前記画面情報データの各々と、前記コンポーネント部品データの各々との類似度を算出するステップと、
前記算出した結果を出力装置に出力するステップと、を実行させること
を特徴とする類似性取得プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの類似度を取得する技術に関するものである。
【背景技術】
【０００２】
画面上において、複数のボタン等が表示され、ユーザが何れか１つのボタンを押下等すると、押下されたボタンに応じた処理を行なうユーザインタフェースがある。このようなユーザインタフェースの開発では、通常、デザイナが画面を作成し、上流工程に携わる設計者が、その画面に対応した処理を行なうコンポーネント部品の設計・実装を作成している。さらに、下流工程設計者が、上流工程設計者が作成したコンポーネント部品を他の類似した画面等に再利用するために、画面とコンポーネント部品を結びつける作業を行っている。
【０００３】
上述のように、画面の再生者、コンポーネント部品の作成者、画面とコンポーネント部品とを関連付ける人が別の個人である。また、コンポーネント部品はプログラムソースコードとして記述され、全文検索などを行う際の形態素解析が不可能なドキュメントであり、そのプログラムソースコードを判別するためのメタ情報が付与等されていない。さらに、コンポーネント部品を管理するデータベースがなく、個人管理や一部の人の間で共有されている。従って、コンポーネント部品の再利用が困難であった。
【０００４】
ここで、類似する設計事例を検索する技術として、特許文献１、特許文献２がある。特許文献１には、知識ベース情報を予め設定しておき、この知識ベース情報から、類似する過去の設計事例を検索して提示する技術が記載されている。また、特許文献２には、事例データベースを予め定めておき、この事例データベースから、要求仕様に類似な仕様の部品を組合せることが記載されている。
【０００５】
また、ソフトウェアの設計モデルの一つに、MVC（Model View Controller）モデルがある。処理の中核を担う「Model」、表示・出力を司る「View」、入力を受け取ってその内容に応じてViewとModelを制御する「Controller」の３要素の組み合わせでシステムを実装するものである。
【０００６】
【特許文献１】特開平７−２１９９８９号
【特許文献２】特開平９−１７９８９２号
【発明の開示】
【発明が解決しようとする課題】
【０００７】
特許文献１、特許文献２の各々は、予め、知識ベース情報、事例データベースを設定しておく必要がある。また、MVCは、完全にViewとControlを分離できることができないコンポーネント部品に対しては適用が困難である。
【０００８】
本発明はこのような事情に鑑みてなされたもので、予め知識ベース情報、事例データベース等の類似性を判定するための情報を設定していなくても、完全にViewとControlを分離できることができないコンポーネント部品と、画面との類似度を取得することのできる技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は上記の目的を達成するためになされたもので、画面を構成する画面構成部品の数と、コンポーネント部品に含まれる制御部品との数から、画面とコンポーネント部品との類似度を取得することを特徴とする。
【００１０】
また、本発明は、画面情報データと、コンポーネント部品データとの類似度を取得する類似度取得装置であって、画面にオブジェクトを表示する１つ以上の種類の画面構成部品のうち少なくとも１つを有する前記画面情報データと、画面を制御する１つ以上の種類の制御部品のうち少なくとも１つを有する前記コンポーネント部品データとの各々を、複数記憶する記憶装置と、前記画面情報データの各々に含まれる画面構成部品の種別毎の数と、前記コンポーネント部品データの各々に含まれる制御部品の種別毎の数とから、前記画面情報データの各々と、前記コンポーネント部品データの各々との類似度を算出する類似度算出手段と、前記算出した結果を出力装置に出力する出力処理手段と、を有することを特徴とする
【発明の効果】
【００１１】
本発明の技術によれば、予め知識ベース情報、事例データベース等の類似性を判定するための情報を設定していなくても、完全にViewとControlを分離できることができないコンポーネント部品と、画面との類似度を取得することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の一実施形態を、図面を参照して詳細に説明する。
【００１３】
以下で説明する本実施形態は、コンポーネント部品に含まれるプロパティ、イベント、メソッドの各々の数と、画面に含まれる画面構成部品の種別毎の数とから、コンポーネント部品と画面とのマッチ率を算出するものである。マッチ率の算出に用いる画面構成部品は特に限定するものではないが、ここでは、処理実行を指示するための「ボタン」、文字列等を表示等するための「ラベル」、文字列を入力等するための「入力フォーム」であるものとして説明する。
【００１４】
まず、図１を参照し、本実施形態の構成例について説明する。
【００１５】
図１において、設計支援装置１００は、例えば、PC（Personal Computer）、サーバ装置等の情報処理装置である。設計支援装置１００は、ＣＰＵ（Central Processing Unit）１０１、メモリ１０２、２次記憶装置１０３、入力装置１０４、出力装置１０５、通信インタフェース１０６等を有する。ＣＰＵ１０１、メモリ１０２、２次記憶装置１０３、入力装置１０４、出力装置１０５、通信インタフェース１０６等はバス１０７により接続される。
【００１６】
２次記憶装置１０３は、例えばＨＤＤ（Hard Disk Drive）や、シリコンディスク、書き込み及び読出しの可能な任意の記憶メディア及び記憶メディアの駆動装置等である。２次記憶装置１０３は、コンポーネント部品テーブル１２１、イベントリストテーブル１２２、メソッドリストテーブル１２３、プロパティリストテーブル１２４、バインドテーブル１２５、画面情報格納領域１３１、ＸＭＬ（eXtensible Markup Language）データ格納領域１３２等を有する。コンポーネント部品テーブル１２１は、各コンポーネント部品を構成するイベント、メソッド、プロパティの各々に関する情報を示す。イベントリストテーブル１２２は、イベントに関する情報を示す。メソッドリストテーブル１２３は、メソッドに関する情報を示す。プロパティリストテーブル１２４は、プロパティに関する情報を示す。バインドテーブル１２５は、各画面と、その画面と接続されているコンポーネント部品を示す。なお、ここで、「画面とコンポーネント部品が接続されている」とは、画面と、その画面を制御するためのコンポーネント部品とが定められていることを示す。画面情報格納領域１３１は、画面に関する情報を格納する。ＸＭＬデータ格納領域１３２は、画面表示、処理実行等のためのＸＭＬデータを格納する。
【００１７】
なお、コンポーネント部品テーブル１２１、イベントリストテーブル１２２、メソッドリストテーブル１２３、プロパティリストテーブル１２４、バインドテーブル１２５、及び、画面情報格納領域１３１、ＸＭＬデータ格納領域１３２の各々内の情報は、後述する処理により生成される。しかし、これに限られるわけではなく、通信インタフェース１１０６を介して入力されてもよく、また、予め２次記憶装置１０３に格納等されていてもよい。
【００１８】
ＣＰＵ１０１は、プログラム（図示略）をメモリ１０２にロードして実行することにより、情報設定部１１１、画面設定部１１２、検索受付部１１３、解析部１１４、解析結果出力部１１５、接続定義受付部１１６等を実現する。
【００１９】
情報設定部１１１は、各コンポーネント部品を構成するイベント、メソッド、プロパティの設定処理を行ない、その設定情報をコンポーネント部品テーブル１２１、イベントリストテーブル１２２、メソッドリストテーブル１２３、プロパティリストテーブル１２４の各々へ格納する。また、情報設定部１１１は、コンポーネント部品のＸＭＬデータを生成し、ＸＭＬデータ格納領域１３２に格納する。画面設定部１１２は、画面上におけるボタンやラベルなどの位置や大きさ等の情報を含む画面情報を生成し、画面情報格納領域１３１へ格納する。また、画面設定部１１２は、画面のＸＭＬデータを生成し、ＸＭＬデータ格納領域１３２に格納する。検索受付部１１３は、類似するコンポーネント部品又は画面の検索要求を受け付ける。解析部１１４は、コンポーネント部品及び画面の類似度を算出する。解析結果出力部１１５は、検索結果の出力処理を行なう。接続定義受付部１１６は、画面とコンポーネント部品との接続関係を、バインドテーブル１２５へ格納する。
【００２０】
入力装置１０４は、例えば、キーボード、マウス、スキャナ、マイクロフォン等である。出力装置１０５は、例えば、ディスプレイ装置、スピーカ、プリンタ等である。
【００２１】
なお、上述のＣＰＵ１０１の機能及び情報を、通信ネットワーク（図示略）を介して接続される複数の情報処理装置（図示略）が有していても良い。また、ＣＰＵ１０１は、通信ネットワーク（図示略）を介して他の通信装置（図示略）と接続され、この通信装置に後述する情報を出力してもよく、また、この通信装置から入力された指示に従い後述する処理を行なってもよい。
【００２２】
次に、２次記憶装置１０３内の情報の一例について説明する。
【００２３】
まず、図２を参照し、コンポーネント部品テーブル１２１の一例を説明する。
【００２４】
図２において、コンポーネント部品テーブル１２１の各レコードは、フィールド２０１、フィールド２０２、フィールド２０３、フィールド２０４等を有する。フィールド２０１は、コンポーネント部品を示す。フィールド２０２は、同じレコードのフィールド２０１のコンポーネント部品に含まれるイベントを示す。フィールド２０３は、同じレコードのフィールド２０１のコンポーネント部品に含まれるメソッドを示す。フィールド２０４は、同じレコードのフィールド２０１のコンポーネント部品に含まれるプロパティを示す。
【００２５】
次に、図３を参照し、イベントリストテーブル１２２の一例を説明する。
【００２６】
図３において、イベントリストテーブル１２２の各レコードは、フィールド３０１、フィールド３０２、フィールド３０３等を有する。フィールド３０１は、イベント名を示す。フィールド３０２は、同じレコードのフィールド３０１のイベントの値を示す。この値とは、具体的には、例えば、同じレコードのフィールド３０１のイベントを実現するためのＸＭＬデータである。フィールド３０３は、同じレコードのフィールド３０１のイベントを説明する文字列である。
【００２７】
次に、図４を参照し、メソッドリストテーブル１２３の一例を説明する。
【００２８】
図４において、メソッドリストテーブル１２３の各レコードは、フィールド４０１、フィールド４０２、フィールド４０３等を有する。フィールド４０１は、メソッド名を示す。フィールド４０２は、同じレコードのフィールド４０１のメソッドの値を示す。この値とは、具体的には、例えば、同じレコードのフィールド４０１のメソッドを実現するためのＸＭＬデータである。フィールド４０３は、同じレコードのフィールド３０１のイベントを説明する文字列である。
【００２９】
次に、図５を参照し、プロパティリストテーブル１２４の一例を説明する。
【００３０】
図５において、メソッドリストテーブル１２３の各レコードは、フィールド５０１、フィールド５０２等を有する。フィールド５０１は、プロパティ名を示す。フィールド５０２は、同じレコードのフィールド５０１のプロパティの値を示す。この値とは、具体的には、例えば、同じレコードのフィールド５０１のプロパティを実現するためのＸＭＬデータである。
【００３１】
次に、図６を参照し、バインドテーブル１２５の一例を説明する。
【００３２】
図６において、バインドテーブル１２５の各レコードは、フィールド６０１、フィールド６０２等を有する。フィールド６０１は、画面を示す画面名である。なお、この画面名は任意でよく、例えば、画面を表示するための画面データのファイル名、任意の識別情報等である。フィールド６０２は、同じレコードのフィールド６０１の画面に対し接続されたコンポーネント部品名を示す。
【００３３】
なお、図６の例では、１つのフィールド６０１の値に対し、１つのフィールド６０２の値を有する。即ち、画面と、コンポーネント部品とが１対１である例を示している。しかし、これに限られるわけではなく、１つのフィールド６０１の値に対し、複数のフィールド６０２の値を有していてもよく、また、複数のフィールド６０１の値に対し、１つのフィールド６０２の値を有していてもよい。
【００３４】
次に、図７を参照し、画面情報格納領域１３１内の情報の一例について説明する。
【００３５】
ここでは、画面情報格納領域１３１内には、複数のテーブルが格納されているものとする。以下、これらのテーブルを「画面情報テーブル７００」といい、各テーブルを特に区別して説明する場合、「画面情報テーブル７００ａ」というように符号を付与して説明する。
【００３６】
図７（ａ）の画面情報テーブル７００ａは、各画面を構成する部品を示すものである。図７（ａ）において、画面情報テーブル７００ａの各レコードは、フィールド７０１、フィールド７０２等を有する。フィールド７０１は、画面名である。フィールド７０２は、同じレコードのフィールド７０１の画面を構成する画面構成部品を示す画面構成部品名である。この画面構成部品とは、例えば、画面に含まれるボタンや文字列等である。
【００３７】
図７（ｂ）の画面情報テーブル７００ｂは、画面構成部品に関する情報である。図７（ｂ）において、画面情報テーブル７００ｂの各レコードは、フィールド７１１、フィールド７１２、フィールド７１３等を有する。フィールド７１１は、画面構成部品名である。フィールド７１２は、同じレコードのフィールド７１１の画面構成部品の属性である。フィールド７１３は、同じレコードのフィールド７１２の属性毎の属性値である。なお、フィールド７１２の属性とは、例えば、画面構成部品の画面上における位置や大きさ等を特定するためのものである。
【００３８】
具体的には、例えば、図７（ａ）の画面情報テーブル７００ａの場合、フィールド７０１、フィールド７０２の値が「行き先画面」、「ＢｕｔｔｏｎＡ、ＢｕｔｔｏｎＢ、ＬａｂｅｌＡ、ＬａｂｅｌＢ、ＩｎｐｕｔＦｏｒｍＡ」であるものが含まれている。従って、「行き先画面」は、「ＢｕｔｔｏｎＡ」、「ＢｕｔｔｏｎＢ」、「ＬａｂｅｌＡ」、「ＬａｂｅｌＢ」、「ＩｎｐｕｔＦｏｒｍＡ」という５つの画面構成部品を含むことを示す。なお、「ＢｕｔｔｏｎＡ」、「ＢｕｔｔｏｎＢ」の各々は、画面上に表示等するボタンを示す。「ＬａｂｅｌＡ」、「ＬａｂｅｌＢ」等は、画面上に表示等する文字列を示す。「ＩｎｐｕｔＦｏｒｍＡ」は、画面上に表示する、文字列の入力を受け付けるための領域を示す。
【００３９】
また、例えば、図７（ｂ）の画面情報テーブル７００ｂの場合、フィールド７１１、フィールド７１２、フィールド７１３の各々の値が「ＢｕｔｔｏｎＡ」、「Ｘ座標」、「Ｙ座標」、「幅」、「１００」、「２００」、「１００」であるものが含まれている。従って、「ＢｕｔｔｏｎＡ」は、「Ｘ座標」が「１００」、「Ｙ座標」が「２００」の画面上の位置に、「幅」が「１００」で存在するものであることを示す。
【００４０】
なお、図７（ｂ）の例では、フィールド７１２の画面構成部品の属性として、「Ｘ座標」、「Ｙ座標」、「幅」が示されているが、属性及びその属性の形態は任意である。
【００４１】
次に、図８を参照し、ＸＭＬデータ格納領域１３２に格納されているＸＭＬデータの一例を説明する。
【００４２】
図８において、ＸＭＬデータ８０１は、画面上に表示する画面構成部品を表示するためのものである。ここでは、画面構成部品を表示するためのＸＭＬデータを、画面情報データという。また、ＸＭＬデータ８１１は、コンポーネント部品に含まれるイベント、メソッド、プロパティ等による機能を実現するためのものである。以下、コンポーネント部品に含まれるイベント、メソッド、プロパティ等による機能を実現するためのＸＭＬデータを、コンポーネント部品データという。
【００４３】
ＸＭＬデータ８０１、ＸＭＬデータ８１１の各々の詳細については後述する。
【００４４】
次に、動作例を説明する。
【００４５】
上述のように、コンポーネント部品テーブル１２１、イベントリストテーブル１２２、メソッドリストテーブル１２３、プロパティリストテーブル１２４、バインドテーブル１２５、及び、画面情報格納領域１３１、ＸＭＬデータ格納領域１３２の各々内の情報は、ユーザの指示等に従い、ＣＰＵ１０１が生成する。以下では、これらを生成する処理例を説明する。
【００４６】
まず、コンポーネント部品テーブル１２１、イベントリストテーブル１２２、メソッドリストテーブル１２３、プロパティリストテーブル１２４、バインドテーブル１２５、ＸＭＬデータ格納領域１３２内のコンポーネント部品データを生成する動作例を説明する。
【００４７】
ＣＰＵ１０１の情報設定部１１１は、入力装置１０４又は通信インタフェース１０６を介して入力された情報に従い、コンポーネント部品テーブル１２１、イベントリストテーブル１２２、メソッドリストテーブル１２３、プロパティリストテーブル１２４、バインドテーブル１２５、ＸＭＬデータ格納領域１３２内のコンポーネント部品データ等を生成する。そのために、情報設定部１１１は、これらの情報を受け付けるための画面を出力入力装置１０４のディスプレイ装置等に出力する。
【００４８】
ここで、コンポーネント部品の設定を受け付けるための画面の一例を、図９に示す。
【００４９】
図９において、画面９０１は、領域９１１、領域９１２、領域９１３、領域９１４等を有する。領域９１１は、コンポーネント部品名を示す。ここで示される名称のコンポーネント部品に含まれるイベント、メソッド、プロパティ等が、領域９１２、領域９１３、領域９１４等の各々にて設定される。
【００５０】
領域９１２、領域９１３、領域９１４等の各々にて設定されるイベント、メソッド、プロパティ等の各々は、イベントリストテーブル１２２、メソッドリストテーブル１２３、プロパティリストテーブル１２４等の各々に既に格納されているものから選択されてもよく、また、生成又は更新等されてもよい。
【００５１】
ここで、まず、イベントリストテーブル１２２、メソッドリストテーブル１２３、プロパティリストテーブル１２４等の各々に既に格納されているイベント、メソッド、プロパティ等から選択する場合の例を説明する。
【００５２】
情報設定部１１１は、イベントリストテーブル１２２から、各レコードのフィールド３０１のイベント名、フィールド３０３の文字列等を読出し、領域９１３に表示するように制御する。ユーザは、入力装置１０４等を用いて、領域９１３に表示されているイベント名毎のチェックボックスをオン又はオフ等する。これにより、ユーザは、領域９１１のコンポーネント部品に含めるイベントを指示する。
【００５３】
情報設定部１１１は、メソッドリストテーブル１２３から、各レコードのフィールド４０１のメソッド名、フィールド４０３の文字列等を読出し、領域９１２に表示するように制御する。ユーザは、入力装置１０４等を用いて、領域９１２に表示されているメソッド名毎のチェックボックスをオン又はオフ等する。これにより、ユーザは、領域９１１のコンポーネント部品に含めるメソッドを指示する。
【００５４】
情報設定部１１１は、プロパティリストテーブル１２４から、各レコードのフィールド５０１のプロパティ名等を読出し、領域９１４に表示するように制御する。ユーザは、入力装置１０４等を用いて、領域９１４に表示されているプロパティ名毎のチェックボックスをオン又はオフ等する。これにより、ユーザは、領域９１１のコンポーネント部品に含めるプロパティを指示する。
【００５５】
情報設定部１１１は、画面９０１の領域９１１、領域９１２、領域９１３、領域９１４の各々で指定等されたコンポーネント部品名、イベント名、メソッド名、プロパティ名を、コンポーネント部品テーブル１２１のレコードの、フィールド２０１、フィールド２０２、フィールド２０３、フィールド２０４等の各々の値として格納する。
【００５６】
次に、イベント、メソッド、プロパティ等を生成又は更新する場合の例を説明する。この場合、ユーザは、入力装置１０４等を用いて、イベント、メソッド、プロパティ等のうち何れかの生成又は更新の指示を入力する。情報設定部１１１は、この生成又は更新の指示が入力されると、指示されたイベント、メソッド、プロパティのうち何れかの生成又は更新を受け付けるための画面を、出力装置１０５のディスプレイ装置等に出力する。
【００５７】
この画面の例を図１０に示す。図１０の例は、イベントを生成又は更新する場合の画面の例である。図１０において、画面１００１は、領域１０１１、領域１０１２、領域１０１３等を有する。領域１０１１は、イベント名を表示、入力する。領域１０１２は、領域１０１１のイベントを実行するためのＸＭＬデータを表示、入力する。領域１０１３は、領域１０１１のイベントを説明する文字列を表示、入力する。
【００５８】
ユーザは、入力装置１０４等を用いて、領域１０１１、領域１０１２、領域１０１３の各々に入力等することにより、イベント名、イベントを実行するためのＸＭＬデータ、イベントを説明する文字列を指示する。情報設定部１１１は、画面１００１の領域１０１１、領域１０１２、領域１０１３の各々に入力等されたイベント名、イベントを実行するためのＸＭＬデータ、イベントを説明する文字列等を、イベントリストテーブル１２２のレコードの、フィールド３０１、フィールド３０２、フィールド３０３等の各々の値として格納する。
【００５９】
なお、情報設定部１１１は、イベントリストテーブル１２２から、各レコードのフィールド３０１のイベント名等を読出し、領域１０１１に表示するように制御してもよい。既に存在するイベントを更新等する場合、ユーザは、入力装置１０４等を用いて、領域１０１１に表示されているイベント名のうち何れかを選択するとよい。この場合、情報設定部１１１は、イベントリストテーブル１２２の各レコードのうち、選択されたイベント名と一致するフィールド３０１を有するものを選択し、選択したレコードのフィールド３０２、フィールド３０３の各々を、領域１０１２、領域１０１３の各々に表示するように制御する。ユーザは、入力装置１０４等を用いて、領域１０１２、領域１０１３の各々に入力及び削除等することにより、イベントを実行するためのＸＭＬデータ、イベントを説明する文字列を更新する。情報設定部１１１は、画面１００１の領域１０１２、領域１０１３の各々に入力された等されたイベントを実行するためのＸＭＬデータ、イベントを説明する文字列等を、イベントリストテーブル１２２の、領域１０１１にて選択されているイベント名と一致するフィールド３０１の値を有するレコードのフィールド３０２、フィールド３０３等の各々の値として格納する。
【００６０】
ここでは、イベントを生成又は更新する場合の例を説明したが、プロパティ、メソッドの各々を生成又は更新する場合も、これと同じである。ただし、プロパティを生成又は更新する場合、画面１００１の領域１０１３に該当するものは表示されない。
【００６１】
ここで、上述の図９、図１０の例により、上述の図２〜図５の各々に一例を示すコンポーネント部品テーブル１２１、イベントリストテーブル１２２、メソッドリストテーブル１２３、プロパティリストテーブル１２４が生成される場合に、情報設定部１１１が、図８に一例を示す、ＸＭＬデータ格納領域１３２内のＸＭＬデータを生成する動作例を説明する。
【００６２】
情報設定部１１１は、ユーザからの指示が入力された場合や、コンポーネント部品テーブル１２１が更新等された場合、所定の日時、所定時間毎等の任意のタイミングで、ＸＭＬデータ格納領域１３２に格納するＸＭＬデータを生成する。
【００６３】
情報設定部１１１は、コンポーネント部品毎に、後述する処理を行なう。まず、情報設定部１１１は、コンポーネント部品テーブル１２１のフィールド２０１の値のうち処理対象のものを１つ選択する。情報設定部１１１は、ＸＭＬデータのフォーマット等に、「<component name=”X1”>」及び「</component>」という開始タグ及び終了タグを追加する。ここで、情報設定部１１１は、このタグの「X1」に、選択したフィールド２０１の値を格納して追加する。
【００６４】
次に、情報設定部１１１は、コンポーネント部品テーブル１２１から、選択したフィールド２０１を有するレコードのフィールド２０２の値を抽出する。情報設定部１１１は、イベントリストテーブル１２２の各レコードのフィールド３０１を参照し、上記処理で抽出したフィールド２０２の値と一致するものを選択し、選択したレコードのフィールド３０２を抽出する。情報設定部１１１は、ＸＭＬデータの上記開始タグ「<component name=”X1”>」と終了タグ「</component>」との間に、「<event name=”X2”>」及び「</event>」という開始タグ及び終了タグを追加する。ここで、情報設定部１１１は、このタグの「X2」に、上記処理で抽出したフィールド２０２の値を格納して追加する。さらに、情報設定部１１１は、上記開始タグ「<event name=”X2”>」と終了タグ「</event>」との間に、抽出したフィールド３０２の値を追加する。情報設定部１１１は、この処理を、選択したフィールド２０１を有するレコードのフィールド２０２の値の各々に対し行なう。
【００６５】
また、情報設定部１１１は、コンポーネント部品テーブル１２１から、選択したフィールド２０１を有するレコードのフィールド２０３の値を抽出する。情報設定部１１１は、メソッドリストテーブル１２３の各レコードのフィールド４０１を参照し、上記処理で抽出したフィールド２０３の値と一致するものを選択し、選択したレコードのフィールド４０２を抽出する。情報設定部１１１は、ＸＭＬデータの上記タグ「<component name=”X1”>」と「</component>」との間に、「<method name=”X3”>」及び「</method>」という開始タグ及び終了タグを追加する。ここで、情報設定部１１１は、このタグの「X3」に、上記処理で抽出したフィールド２０３の値を格納して追加する。さらに、情報設定部１１１は、上記開始タグ「<method name=”X3”>」と終了タグ「</method>」との間に、抽出したフィールド４０２の値を追加する。情報設定部１１１は、この処理を、選択したフィールド２０１を有するレコードのフィールド２０３の値の各々に対し行なう。
【００６６】
さらに、情報設定部１１１は、コンポーネント部品テーブル１２１から、選択したフィールド２０１を有するレコードのフィールド２０４の値を抽出する。情報設定部１１１は、プロパティリストテーブル１２４の各レコードのフィールド５０１を参照し、上記処理で抽出したフィールド２０４の値と一致するものを選択し、選択したレコードのフィールド５０２を抽出する。情報設定部１１１は、ＸＭＬデータの上記タグ「<component name=”X1”>」と「</component>」との間に、「<property name=”X4”>」及び「</property>」という開始タグ及び終了タグを追加する。ここで、情報設定部１１１は、このタグの「X4」に、上記処理で抽出したフィールド２０４の値を格納して追加する。さらに、情報設定部１１１は、上記開始タグ「<property name=”X4”」と終了タグ「</property>」との間に、抽出したフィールド５０２の値を追加する。情報設定部１１１は、この処理を、選択したフィールド２０１を有するレコードのフィールド２０４の値の各々に対し行なう。
【００６７】
具体的には、例えば、図２に一例を示すコンポーネント部品テーブル１２１の場合の、フィールド２０１「compA」を有するレコードのフィールド２０２の値は「Event_initPrm、Event_setPrm」、フィールド２０３の値は「CarPos_read、CarPos_write、CarSpeed_writeSpeed」、フィールド２０４の値は「CarPos、CarSpeed、CarPosRoad」等である。このうち、イベント「Event_initPrm」、メソッド「CarPos_read」、プロパティ「CarPos」の場合の情報設定部１１１の例を説明する。
【００６８】
この場合、情報設定部１１１は、ＸＭＬデータのフォーマット等に、「<component name=” compA”>」及び「</component>」という開始タグ及び終了タグを追加する。ＸＭＬデータ８１１の符号８２１、符号８２２がこれに該当する。
【００６９】
また、情報設定部１１１は、ＸＭＬデータ８１１の符号８２１、符号８２２との間に、「<event name=”Event_initPrm”>」及び「</event>」という開始タグ及び終了タグを追加する。ＸＭＬデータ８１１の符号８２３、符号８２４がこれに該当する。情報設定部１１１は、上記開始タグ「<event name=” Event_initPrm”>」と終了タグ「</event>」との間に、図３に一例を示すイベントリストテーブル１２２の、フィールド３０１の値が「Event_initPrm」であるレコードのフィールド３０２の値を追加する。
【００７０】
また、情報設定部１１１は、ＸＭＬデータ８１１の符号８２１、符号８２２との間に、「<method name=”CarPos_read”>」及び「</method>」という開始タグ及び終了タグを追加する。ＸＭＬデータ８１１の符号８２５、符号８２６がこれに該当する。情報設定部１１１は、上記開始タグ「<method name=”CarPos_read”>」と終了タグ「</method>」との間に、図４に一例を示すメソッドリストテーブル１２３の、フィールド４０１の値が「CarPos_read」であるレコードのフィールド４０２の値を追加する。
【００７１】
また、情報設定部１１１は、ＸＭＬデータ８１１の符号８２１、符号８２２との間に、「<property name=”CarPos”>」及び「</property>」という開始タグ及び終了タグを追加する。ＸＭＬデータ８１１の符号８２７、符号８２８がこれに該当する。情報設定部１１１は、上記開始タグ「<property name=”CarPos”>」と終了タグ「</property>」との間に、図５に一例を示すプロパティリストテーブル１２４の、フィールド５０１の値が「CarPos」であるレコードのフィールド５０２の値を追加する。
【００７２】
次に、画面情報格納領域１３１内の画面情報テーブル７００、ＸＭＬデータ格納領域１３２内の画面情報データを生成する動作例を説明する。
【００７３】
ＣＰＵ１０１の画面設定部１１２は、入力装置１０４又は通信インタフェース１０６を介して入力された情報に従い、画面情報テーブル７００、画面情報データを生成する。そのために、画面設定部１１２は、画面の設定を受け付けるための画面を出力入力装置１０４のディスプレイ装置等に出力する。
【００７４】
ここで、画面情報テーブル７００に格納する情報を受け付けるための画面の一例を、図１１に示す。画面１１０１は、領域１１１１、領域１１１２、領域１１１３等を有する。領域１１１１は、画面名と、その画面の画面構成部品を表示する。領域１１１２は、領域１１１１にて選択されている画面の画面構成部品のレイアウトを表示する。領域１１１３は、領域１１１１にて選択されている画面構成部品に関する情報を表示する。
【００７５】
例えば、ユーザは、入力装置１０４を用いて、生成する画面の画面名を入力する。画面設定部１１２は、入力された画面名を、領域１１１１に表示する処理をする。ユーザは、入力装置１０４を用いて、領域１１１１に表示されている画面名のうち何れか１つを選択し、選択した画面に追加等する画面構成部品の名称（画面構成部品名）を入力する。なお、ここで、予め、２次記憶装置１０３等に、例えば「Ｂｕｔｔｏｎ」、「Ｌａｂｅｌ」、「ＩｎｐｕｔＦｏｒｍ」等の画面構成部品の一覧が記憶されており、画面設定部１１２が、この一覧を出力装置１０５のディスプレイ装置等に表示し、ユーザが、入力装置１０４を用いて、表示された画面構成品目のうち少なくとも１つを選択することで、画面に追加する画面構成部品を入力しても良い。また、画面構成部品名は、ユーザが入力装置１０４を用いて入力してもよく、画面設定部１１２が生成してもよい。画面設定部１１２は、画面構成部品名を、選択されている画面に追加するものとして領域１１１１に表示する。
【００７６】
ユーザは、入力装置１０４を用いて、領域１１１１に表示されている画面構成部品のうち１つを選択する。画面設定部１１２は、選択された画面構成部品に関する情報を、領域１１１３に表示する。そのために、画面設定部１１２は、画面情報テーブル７００ｂから、選択された画面構成部品の画面構成部品名と一致するフィールド７１１の値を有するレコードを検索し、該当するレコードのフィールド７１２、フィールド７１３の各々を抽出する。画面設定部１１２は、抽出したフィールド７１２、フィールド７１３の各々を、領域１１１３に表示する。なお、ここで、テーブル１３３ｂに、選択された画面構成部品の画面構成部品名と一致するフィールド７１１の値を有するレコードが無い場合、画面設定部１１２は、選択された画面構成部品は新規で生成されたものであると判定し、領域１１１３に、その画面構成部品の種別に応じた属性等のみを表示してもよい。画面１１０１の例の場合、量領域１１１３には、画面構成部品名「ＢｕｔｔｏｎＡ」に関する情報が表示されている。
【００７７】
ユーザは、入力装置１０４を用いて、選択した画面構成部品を、領域１１１２に示される画面上の任意の位置にドラッグ等して、その画面構成部品の配置位置を指定する。画面設定部１１２は、領域１１１２において、その画面構成部品が配置された位置に応じて、実際の画面上の位置（ＸＹ座標）を算出し、その位置を、領域１１１３に表示する。画面１１０１の例の場合、符号１１３１、符号１１３２が、算出した画面上の位置のＸＹ座標の例である。ユーザは、入力装置１０４を用いて、領域１１１２に示される画面上にドラッグ等した画面構成品目の大きさを変更する等して、その画面構成品目の幅等の大きさを入力する。画面設定部１１２は、領域１１１２において、その画面構成部品の大きさに応じて、実際の画面構成部品の大きさを算出し、その大きさを、領域１１１３に表示する。画面１１０１の例の場合、符号１１３３が、算出した画面構成部品の大きさの例である。
【００７８】
なお、上述のように領域１１１２に画面構成部品をドラッグ等した後は、画面構成部品を選択するために、ユーザは、入力装置１０４を用いて、領域１１１２上の画面構成部品を選択してもよい。
【００７９】
また、ユーザは、入力装置１０４等を用いて、領域１１１３に直接値を入力等することにより、画面構成部品に関する情報を入力してもよい。
【００８０】
入力装置１０４等から登録指示が入力された場合等に、画面設定部１１２は、画面１１０１により指示された情報を格納する。そのために、画面設定部１１２は、画面情報テーブル７００ａの各レコードのフィールド７０１、フィールド７０２等の値として、領域１１１１の画面名、画面構成部品名等を格納する。また、画面設定部１１２は、画面情報テーブル７００ｂの各レコードフィールド７１１に、符号１１２２の画面構成部品名の各々を格納し、フィールド７１２に、同じレコードのフィールド７１１の画面構成部品の種別に応じた属性名を格納し、フィールド７１３に、領域１１１３に表示等されている値を格納する。
【００８１】
具体的には、例えば、図１１に一例を示す画面１１０１において、画面名「行き先画面」の画面構成部品として「ＢｕｔｔｏｎＡ」が入力等され、この画面構成部品「ＢｕｔｔｏｎＡ」に関する情報として、「属性名：Ｘ座標」が「１００」、「属性名：Ｙ座標」が「２００」、「属性名：幅」が「１００」が入力等された場合の例を説明する。この場合、画面設定部１１２は、画面情報テーブル７００ａのレコードのフィールド７０１、フィールド７０２の値として、「行き先画面」、「ＢｕｔｔｏｎＡ」を格納する。また、画面設定部１１２は、画面情報テーブル７００ａのレコードのフィールド７１１の値として「ＢｕｔｔｏｎＡ」を格納し、この値が含まれるレコードの、フィールド７１２「Ｘ座標」、「Ｙ座標」、「幅」の各々に対応するフィールド７１３の値として、「１００」、「２００」、「１００」を格納する。
【００８２】
なお、画面設定部１１２は、上述の画面１１０１にて、画面情報テーブル７００の各々を更新するようにしてもよい。その場合の動作例は上述と同じであるので省略する。
【００８３】
画面設定部１１２は、ユーザからの指示が入力された場合や、画面情報テーブル７００のうち少なくとも１つが更新等された場合、所定の日時、所定時間毎等の任意のタイミングで、画面情報格納領域１３１に格納するＸＭＬデータを生成する。
【００８４】
画面設定部１１２は、画面毎に、後述する処理を行なう。まず、画面設定部１１２は、画面情報テーブル７００ａのフィールド７０１の値のうち処理対象のものを１つ選択する。画面設定部１１２は、ＸＭＬデータのフォーマット等に、「<display name=”Y1”>」及び「</display>」という開始タグ及び終了タグを追加する。ここで、画面設定部１１２は、このタグの「Y1」に、選択したフィールド７０１の値を格納して追加する。
【００８５】
次に、画面設定部１１２は、選択したフィールド７０１を有するレコードのフィールド７０２の値を抽出する。次に、画面設定部１１２は、画面情報テーブル７００ｂの各レコードのうち、抽出したフィールド７０２の値の各々と一致するフィールド７１１を含むものを検索し、該当するレコードのフィールド７１２、フィールド７１３の値を抽出する。画面設定部１１２は、画面構成部品の種別に応じて、ＸＭＬデータの上記開始タグ「<display name=”Y1”>」と終了タグ「</display>」との間に、その画面構成部品を表示等するためのデータを追加する。なお、抽出したフィールド７０２の値の示す画面構成部品の種別を判定する技術は任意であり、例えば、画面構成部品名に、その画面構成部品の種別を示す情報が含まれていてもよく、画面構成部品名と、その画面構成部品の種別を示す情報とを対応付けたテーブルを上述した画面情報テーブル７００の生成時に生成しておき、画面設定部１１２が、このテーブルを参照等することにより判定してもよい。また、例えば、抽出したフィールド７１２、フィールド７１３の値から判定してもよい。
【００８６】
例えば、画面構成部品が「Ｂｕｔｔｏｎ」である場合の例を説明する。この場合、画面設定部１１２は、画面情報テーブル７００ｂから、ＸＭＬデータの上記開始タグ「<display name=”Y1”>」と終了タグ「</display>」との間に、「<button x=”x1” y=”y1” width=”w1”name=”Y2”/>」を追加する。ここで、画面設定部１１２は、「x1」、「y1」、「w1」の各々に、抽出したフィールド７１２「Ｘ座標」、「Ｙ座標」、「幅」の各々に対応するフィールド７１３の値を格納する。また、画面設定部１１２は、「Y2」に、抽出したフィールド７０２（フィールド７１１の値）を格納する。
【００８７】
また、画面構成部品が「Ｌａｂｅｌ」である場合の例を説明する。この場合、画面設定部１１２は、画面情報テーブル７００ｂから、ＸＭＬデータの上記開始タグ「<display name=”Y1”>」と終了タグ「</display>」との間に、「<label x=”x2” y=”y2” width=”w2”name=”Y3”/>」を追加する。ここで、画面設定部１１２は、「x2」、「y2」、「w2」の各々に、抽出したフィールド７１２「Ｘ座標」、「Ｙ座標」、「幅」の各々に対応するフィールド７１３の値を格納する。また、画面設定部１１２は、「Y3」に、抽出したフィールド７０２（フィールド７１１の値）を格納する。
【００８８】
また、画面構成部品が「ＩｎｐｕｔＦｏｒｍ」である場合の例を説明する。この場合、画面設定部１１２は、画面情報テーブル７００ｂから、ＸＭＬデータの上記開始タグ「<display name=”Y1”>」と終了タグ「</display>」との間に、「<label x=”x3” y=”y3” width=”w3”name=”Y4”/>」を追加する。ここで、画面設定部１１２は、「x3」、「y3」、「w3」の各々に、抽出したフィールド７１２「Ｘ座標」、「Ｙ座標」、「幅」の各々に対応するフィールド７１３の値を格納する。また、画面設定部１１２は、「Y4」に、抽出したフィールド７０２（フィールド７１１の値）を格納する。
【００８９】
具体的には、例えば、図７に一例を示す画面情報テーブル７００ａの場合の、フィールド７０１「行き先画面」を有するレコードのフィールド７０２の値は、「ＢｕｔｔｏｎＡ」、「ＢｕｔｔｏｎＢ」、「ＬａｂｅｌＡ」、「ＬａｂｅｌＢ」、「ＩｎｐｕｔＦｏｒｍＡ」等である。ここで、「ＢｕｔｔｏｎＡ」の場合を例にして、画面設定部１１２の動作例を説明する。
【００９０】
この場合、画面設定部１１２は、ＸＭＬデータのフォーマット等に、「<display name=”行き先画面”>」及び「</display>」という開始タグ及び終了タグを追加する。ＸＭＬデータ８０１の符号８３１、符号８３２がこれに該当する。
【００９１】
図７（ｂ）に一例を示す画面情報テーブル７００ｂの場合、フィールド７１１の値が「ＢｕｔｔｏｎＡ」であるレコードのフィールド７１３の値は、「１００」、「２００」、「１００」である。従って、画面設定部１１２は、上記開始タグ「<display name=”行き先画面”>」と終了タグ「</display>」との間に、「<button x=”100” y=”200” width=”100”name=”ButtonA”/>」を追加する。ＸＭＬデータ８０１の符号８３３がこれに該当する。
【００９２】
次に、図１２を参照し、動作例を説明する。以下で説明する動作例を起動するタイミングは任意でよく、例えば、入力装置１０４又は通信インタフェース１０６等からの実行指示が入力された場合や、所定の日時、所定時間毎等に行なっても良い。
【００９３】
なお、本実施形態の設計支援装置１００は、画面情報データが指定されると、その画面情報データに類似するコンポーネント部品データを検索することが可能である。また、逆に、設計支援装置１００は、コンポーネント部品データが指定されると、そのコンポーネント部品データに類似する画面情報データを検索することが可能である。以下の例では、画面情報データが指定され、その画面情報データに類似するコンポーネント部品データを検索する場合の例を説明するが、この逆も可能である。
【００９４】
図１２において、検索受付部１１３は、類似性判断の基準となる画面情報データを取得する（Ｓ１２０１）。この処理は特に限定するものではないが、例えば、検索受付部１１３は、画面情報テーブル７００ａの各レコードのフィールド７０１の値を読出して入力装置１０４のディスプレイ装置等に表示等して、画面情報データをユーザに選択させてもよい。また、予め、２次記憶装置１０３等に基準となる画面の画面名等が格納されていてもよく、画面情報格納領域１３１内の画面情報データのうち更新されたものを基準の画面情報データとしてもよい。また、入力装置１０４又は通信インタフェース１０６等から入力されたものを用いても良い。
【００９５】
次に、検索受付部１１３は、上述のＳ１２０１の処理で取得された画面情報データとの接続関係が構築されているコンポーネント部品データがあるか否か判定する（Ｓ１２０２）。そのために、例えば、検索受付部１１３は、バインドテーブル１２５の各レコードのフィールド６０１を参照し、上述のＳ１２０１の処理で取得された画面情報データの画面名と一致するものが含まれているか否か判定する。この判定の結果、一致する場合、検索受付部１１３は、その画面情報データとの接続関係が構築されているコンポーネント部品データがあると判定する。なお、ここで、画面情報データの画面名を取得する技術は任意でよいが、例えば、図８に一例を示す画面情報データの場合、検索受付部１１３は、ＸＭＬデータ８０１の「<display name=”行き先画面”>」の「””」内のデータを、画面情報データの画面名とする。
【００９６】
上述のＳ１２０２の判定の結果、画面情報データとの接続関係が構築されているコンポーネント部品データがある場合、検索受付部１１３は、処理を終了する。なお、この場合、接続定義受付部１１６等は、画面情報データとの接続関係が既に構築されていることと、この画面情報データとの接続関係が構築されているコンポーネント部品データを通知する情報とを、出力装置１０５等に出力しても良い。
【００９７】
上述のＳ１２０２の判定の結果、画面情報データとの接続関係が構築されているコンポーネント部品データがない場合、解析部１１４は、上述のＳ１２０１の処理で取得された画面情報データに含まれるボタン数、ラベル数、入力フォーム数の各々をカウントする（Ｓ１２０３）。そのために、解析部１１４は、上述のＳ１２０１の処理で取得された画面情報データに含まれるタグの各々の要素のうち、ボタンを表示するもの、ラベルを表示するもの、入力フォームを表示するものの各々をカウントする。
【００９８】
より詳細には、解析部１１４は、上述のＳ１２０１の処理で取得された画面情報データから、「<button x=」が含まれているタグの数をカウントし、この数をボタン数とする。また、解析部１１４は、上述のＳ１２０１の処理で取得された画面情報データから、「<label x=」が含まれているタグの数をカウントし、この数をラベル数とする。解析部１１４は、上述のＳ１２０１の処理で取得された画面情報データから、「<inputform x=」が含まれているタグの数をカウントし、この数を入力フォーム数とする。
【００９９】
次に、解析部１１４は、ＸＭＬデータ格納領域１３２に格納されている各コンポーネント部品データに含まれるイベント数、プロパティ数、メソッド数の各々をカウントする（Ｓ１２０４）。そのために、解析部１１４は、ＸＭＬデータ格納領域１３２に格納されている各コンポーネント部品データに含まれるタグの各々の要素のうち、イベントを実現するもの、プロパティを実現するもの、メソッドを実現するものの各々をカウントする
より詳細には、解析部１１４は、ＸＭＬデータ格納領域１３２に格納されているコンポーネント部品データの各々から、「<enent name=」が含まれているタグの数をカウントし、この数をイベント数とする。また、解析部１１４は、ＸＭＬデータ格納領域１３２に格納されているコンポーネント部品データの各々から、「<method name=」が含まれているタグの数をカウントし、この数をプロパティ数とする。解析部１１４は、ＸＭＬデータ格納領域１３２に格納されているコンポーネント部品データの各々から、「<property name=」が含まれているタグの数をカウントし、この数をメソッド数とする。
【０１００】
次に、解析部１１４は、上述のＳ１２０１の処理で取得された画面情報データと、ＸＭＬデータ格納領域１３２に格納されているコンポーネント部品データの各々とのマッチ率を算出する（Ｓ１２０５）。マッチ率の算出技術は特に限定するものではないが、ここでは、以下の数で算出する。
【０１０１】
【数１】
2009087006.tif 000003
【０１０２】
上記数１において、「Ｃｅ」は、コンポーネント部品データに含まれるイベント数である。「Ｃｐ」は、コンポーネント部品データに含まれるプロパティ数である。「Ｃｍ」は、コンポーネント部品データに含まれるメソッド数である。「Ｄｂ」は、画面情報データに含まれるボタン数である。「Ｄｌ」は、画面情報データに含まれるラベル数である。「Ｄｉ」は、画面情報データに含まれる入力フォーム数である。ボタン数、ラベル数、入力フォーム数の各々は、上述のＳ１２０３の処理で取得されたものである。また、イベント数、プロパティ数、メソッド数の各々は、上述のＳ１２０４の処理で取得されたものである。
【０１０３】
次に、解析結果出力部１１５は、上述のＳ１２０５の処理において、マッチするコンポーネント部品データが検索されたか否か判定する（Ｓ１２０６）。この処理は特に限定するものではないが、例えば、解析結果出力部１１５は、上述のＳ１２０５の処理で算出されたマッチ率のうち少なくとも一部が、例えば「０．１以上１．５以下」等の任意の所定範囲内である場合、マッチするコンポーネント部品データが検索されたと判定し、また、マッチ率の全てが所定範囲でない場合、マッチするコンポーネント部品データが無いと判定する。
【０１０４】
Ｓ１２０６の判定の結果、マッチするコンポーネント部品データが無い場合、情報設定部１１１は、コンポーネント部品を生成する（Ｓ１２０７）。この処理は任意でよく、例えば、情報設定部１１１は、上述の図９で一例を示した画面を出力装置１０５のディスプレイ装置に表示等するとよい。この場合の動作例は上述と同じであるので省略する。
【０１０５】
一方、上述のＳ１２０６の判定の結果、マッチするコンポーネント部品データがある場合、解析結果出力部１１５は、上述のＳ１２０５の結果を出力装置１０５等に出力する（Ｓ１２０８）。ここでは、解析結果出力部１１５は、上述のＳ１２０５の処理で算出したマッチ率が「１」に近い順で、コンポーネント部品データのコンポーネント名等を、出力装置１０５に出力する。なお、ここで、コンポーネント部品データのコンポーネント名を取得する技術は任意でよいが、例えば、図８に一例を示すものの場合、解析結果出力部１１５は、ＸＭＬデータ８１１のタグ「<component name=”compA”>」の「””」内のデータを、コンポーネント部品データのコンポーネント名とする。
【０１０６】
ここで、図１３を参照し、解析結果出力部１１５が出力装置１０５のディスプレイ装置等に上述のＳ１２０５の結果を表示した場合の画面例を説明する。
【０１０７】
図１３において、画面１３０１は、上述のＳ１２０５の結果を表示する例である。画面１３０１は、領域１３１１、領域１３１２、領域１３１３等を有する。領域１３１１は、類似性判定の基準となる画面情報データの画面名を表示する。領域１３１２は、上述のＳ１２０５の処理で算出したマッチ率が「１」に近い順で、コンポーネント部品データのコンポーネント名を表示する。領域１３１３は、領域１３１２で選択等されたコンポーネント部品データを表示する領域である。
【０１０８】
図１２に戻り、接続定義受付部１１６は、上述のＳ１２０１の処理で取得された画面情報データと、コンポーネント部品データとの接続関係を取得し、登録する（Ｓ１２０９）。上述のＳ１２０１の処理で取得された画面情報データと、コンポーネント部品データとの接続関係を取得するために、接続定義受付部１１６は、例えば、接続関係をユーザに指示させるための画面を、出力装置１０５のディスプレイ装置等に表示してもよい。
【０１０９】
図１４を参照し、接続関係をユーザに指示させるための画面の例を説明する。
【０１１０】
図１４において、画面１４０１は、接続関係をユーザに指示させるための表示例である。画面１４０１は、領域１４１１、領域１４１２、領域１４１３等を有する。領域１４１１は、類似性判定の基準となる画面情報データの画面名を表示する。領域１４１２は、上述のＳ１２０５の処理で算出したマッチ率が「１」に近い順で、コンポーネント部品データのコンポーネント名を表示する。領域１４１３は、領域１４１２に表示されているコンポーネント部品を選択するためのものである。図１４の例では、領域１４１３に、上述のＳ１２０５の処理で算出したマッチ率が「１」に近い順で、コンポーネント部品データのコンポーネント名を表示し、さらに、これらのコンポーネント部品のマッチ率を表示している。ユーザは、入力装置１０４を用いて、領域１４１３に表示されたコンポーネント部品名毎のチェックボタンのうち少なくとも１つをオン又はオフすることにより、領域１４１１で選択されている画面と接続させるコンポーネント部品を指示する。
【０１１１】
接続定義受付部１１６は、取得した接続関係をバインドテーブル１２５に格納する。そのために、処理部１２２は、例えば、バインドテーブル１２５に追加したレコードのフィールド６０１、フィールド６０２の各々の値として、上述の画面１４０１の領域１４１１で選択されている画面名、上述の画面１４０１の領域１４１３でチェックボタンがオン等されたコンポーネント部品名を格納する。
【０１１２】
上述の動作例により、画面とコンポーネント部品とのマッチ率を取得することができる。
【０１１３】
なお、上述のように、コンポーネント部品データが指定され、そのコンポーネント部品データに類似する画面情報データを検索することも可能である。その場合、上述のＳ１２０１の処理で、類似性判定の基準としてコンポーネント部品データを指定するとよい。また、Ｓ１２０３の処理で、類似性判定の基準としてコンポーネント部品データに含まれるイベント数、プロパティ数、メソッド数の各々をカウントするとよい。Ｓ１２０４の処理で、画面情報格納領域１３１に格納されている各画面情報データに含まれるボタン数、ラベル数、入力フォーム数の各々をカウントするとよい。これらのカウント処理の具体例は上述と同じである。また、マッチ率は、上述の数１により算出するとよい。Ｓ１２０８の処理で、画面情報データをマッチ率が「１」に近い順に出力するとよい。
【０１１４】
ここで、図１５を参照し、レイアウトが異なる画面と、スキンが異なる画面との例を説明する。
【０１１５】
例えばボタンの有無等、画面にて実行指示可能な機能が異なる場合、その画面はレイアウトが異なる。また、見た目のみが異なり、画面にて実行指示可能な機能が同じ場合、その画面はスキンが異なる。図１５において、画面１５０１、画面１５０２は、スキンのみが異なるものである。画面１５０３、画面１５０４も、スキンのみが異なるものである。また、画面１５０１、画面１５０３は、レイアウトのみが異なるものである。画面１５０２、画面１５０４も、レイアウトのみが異なるものである。
【０１１６】
従来、このようなレイアウト変更がある場合、その画面と類似するコンポーネント部品を人が探していた。上述した本実施形態の技術により、画面とコンポーネント部品とのマッチ率を取得することが可能となるので、レイアウト変更がある場合でも、類似するコンポーネント部品を探すことが容易となる。具体的には、例えば、図１５の画面１５０１、画面１５０２は、スキンのみが異なるものであるので、画面１５０１の画面情報データ及び画面１５０２のコンポーネント部品データとのマッチ率、又は、画面１５０１のコンポーネント部品データと画面１５０２の画面情報データとのマッチ率は、「１」となる。また、図１５の画面１５０１、画面１５０３は、「戻る」ボタンの有無というレイアウトのみが異なるものであるので、画面１５０１の画面情報データ及び画面１５０３のコンポーネント部品データとのマッチ率、又は、画面１５０１のコンポーネント部品データと画面１５０３の画面情報データとのマッチ率は、「１」に近い値となる。
【０１１７】
上記実施形態により、以前から利用しているコンポーネント部品の中に、画面情報だけでなく画面をコントロールするための画面遷移や状態遷移情報など、画面そのもの以外の情報も含まれていたものをそのまま利用することが容易となる。即ち、上記実施形態により、デザイナが作成する画面と上流工程設計者が作成するコンポーネント部品を、下流工程設計者が再利用できる形で結びつけることが可能となる。また、上記実施形態では、コンポーネント部品を一括管理するためのデータベースを用いてコンポーネント部品を管理する必要もなく、また、コンポーネント部品にメタ情報を付与等する必要もない。上記実施形態により、画面のレイアウトは同じであるが、色や背景などのスキンが異なる場合でも、その画面と類似するコンポーネント部品を検索することが可能となる。
【０１１８】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【０１１９】
例えば、上述の実施形態では、画面構成部品を示すデータ、及び、機能を実現するためのデータが、ＸＭＬデータである場合の例を説明したが、これに限られるわけではない。これらを実現するデータは任意である。
【０１２０】
また、上述の実施形態では、コンポーネント部品に含まれるプロパティ、イベント、メソッドの各々の数と、画面情報に含まれるボタン、ラベル、入力フォームの画面構成部品の各々の数から類似度を算出したが、これに限られるわけではない。コンポーネント部品に含まれる制御ユニットの種別毎の数と、画面情報に含まれる画面構成部品の種別毎の数とから、類似度を算出すればよい。
【図面の簡単な説明】
【０１２１】
【図１】本発明の一実施形態において、構成例を示す図である。
【図２】同実施形態において、コンポーネント部品テーブルの一例を示す図である。
【図３】同実施形態において、イベントリストテーブルの一例を示す図である。
【図４】同実施形態において、メソッドリストテーブルの一例を示す図である。
【図５】同実施形態において、プロパティリストテーブルの一例を示す図である。
【図６】同実施形態において、バインドテーブルの一例を示す図である。
【図７】同実施形態において、画面情報テーブルの一例を示す図である。
【図８】同実施形態において、ＸＭＬデータの一例を示す図である。
【図９】同実施形態において、画面例を示す図である。
【図１０】同実施形態において、画面例を示す図である。
【図１１】同実施形態において、画面例を示す図である。
【図１２】同実施形態において、動作例を示す図である。
【図１３】同実施形態において、画面例を示す図である。
【図１４】同実施形態において、画面例を示す図である。
【図１５】同実施形態において、マッチ率を説明するための図である。
【符号の説明】
【０１２２】
１００：設計支援装置、１０１：ＣＰＵ、１０２：メモリ、１０３：２次記憶装置、１０４：入力装置、１０５：出力装置、１０６：通信インタフェース、１０７：バス、１１１：情報設定部、１１２：画面設定部、１１３：検索受付部、１１４：解析部、１１５：解析結果出力部、１１６：接続定義受付部、１２１：コンポーネント部品テーブル、１２２：イベントリストテーブル、１２３：メソッドリストテーブル、１２４：プロパティリストテーブル、１２５：バインドテーブル、１３１：画面情報格納領域、１３２：ＸＭＬデータ格納領域、７００：画面情報テーブル、８０１：ＸＭＬデータ
【図１】
2009087006.tif 000004
【図２】
2009087006.tif 000005
【図３】
2009087006.tif 000006
【図４】
2009087006.tif 000007
【図５】
2009087006.tif 000008
【図６】
2009087006.tif 000009
【図７】
2009087006.tif 000010
【図８】
2009087006.tif 000011
【図９】
2009087006.tif 000012
【図１０】
2009087006.tif 000013
【図１１】
2009087006.tif 000014
【図１２】
2009087006.tif 000015
【図１３】
2009087006.tif 000016
【図１４】
2009087006.tif 000017
【図１５】
2009087006.tif 000018