(57)【特許請求の範囲】
【請求項１】
複数のコンポーネントを組み合わせて設計されるモデルにより生成されるプログラムのサイズを推定するための開発支援プログラムであって、コンピュータに、
第１のモデルに含まれるパラメータである変数、ポートおよびメソッドのうち一つまたは複数のパラメータと、前記パラメータの増減に対する、前記第１のモデルにより生成されるプログラムのサイズの増減値とを対応付けた対応情報を記憶する対応情報記憶部を参照し、第２のモデルに含まれる各パラメータの個数に基づいて、前記第２のモデルにより生成されるプログラムのサイズを推定し、
前記サイズを推定する処理により推定されたサイズを出力する
処理を実行させることを特徴とする開発支援プログラム。
【請求項２】
前記コンポーネントごとのコンパイル後のサイズを目的変数とし、かつ、前記コンポーネントに含まれる各パラメータの個数を説明変数とする回帰分析を行い、当該回帰分析の結果から前記対応情報を生成し、生成した前記対応情報を前記対応情報記憶部に格納する処理を更にコンピュータに実行させ、
前記サイズを推定する処理は、修正後のモデルに含まれる各パラメータの個数の増減を受け付けた場合に、前記対応情報を格納する処理により格納された前記対応情報を参照し、前記修正後のモデルにより生成されるプログラムのサイズを推定することを特徴とする請求項１に記載の開発支援プログラム。
【請求項３】
前記サイズを推定する処理は、前記第２のモデルにおいて所定のコンポーネントが他のコンポーネントに継承される場合に、前記第１のモデルに含まれる、所定のコンポーネントが他のコンポーネントに継承されることを示すパラメータである仮想関数と、前記仮想関数の増減に対する、前記第１のモデルにより生成されるプログラムのサイズの増減値とを対応付けた対応情報を更に参照し、前記第２のモデルにより生成されるプログラムのサイズを推定することを特徴とする請求項１又は２に記載の開発支援プログラム。
【請求項４】
前記サイズを推定する処理は、前記第１のモデルに含まれる、前記変数に含まれるパラメータである整数型変数および浮動小数点型変数と、各パラメータの増減に対する、前記第１のモデルにより生成されるプログラムのサイズの増減値とを対応付けた対応情報を更に参照し、前記第２のモデルにより生成されるプログラムのサイズを推定することを特徴とする請求項１〜３のいずれか一つに記載の開発支援プログラム。
【請求項５】
複数のコンポーネントを組み合わせて設計されるモデルにより生成されるプログラムのサイズを推定するために、コンピュータによって実行される開発支援方法であって、
第１のモデルに含まれるパラメータである変数、ポートおよびメソッドのうち一つまたは複数のパラメータと、前記パラメータの増減に対する、前記第１のモデルにより生成されるプログラムのサイズの増減値とを対応付けた対応情報を記憶する対応情報記憶部を参照し、第２のモデルに含まれる各パラメータの個数に基づいて、前記第２のモデルにより生成されるプログラムのサイズを推定し、
前記サイズを推定する処理により推定されたサイズを出力する
ことを特徴とする開発支援方法。
【請求項６】
複数のコンポーネントを組み合わせて設計されるモデルにより生成されるプログラムのサイズを推定するための開発支援装置であって、
第１のモデルに含まれるパラメータである変数、ポートおよびメソッドのうち一つまたは複数のパラメータと、前記パラメータの増減に対する、前記第１のモデルにより生成されるプログラムのサイズの増減値とを対応付けた対応情報を記憶する対応情報記憶部と、
前記対応情報記憶部に記憶された前記対応情報を参照し、第２のモデルに含まれる各パラメータの個数に基づいて、前記第２のモデルにより生成されるプログラムのサイズを推定する推定部と、
前記推定部により推定されたサイズを出力する出力部と
を有することを特徴とする開発支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、開発支援プログラム、開発支援方法及び開発支援装置に関する。
【背景技術】
【０００２】
近年、モデル駆動型開発（ＭＤＤ：Model  Driven  Development）と呼ばれる開発手法が用いられる。このＭＤＤでは、ソフトウェアを開発する開発者は、ソフトウェアの設計図に相当するモデルをＧＵＩ（Graphical  User  Interface）操作により設計する。続いて、開発者により設計されたモデルを基に、コード生成装置がソースコードを自動生成する。そして、生成されたソースコードをコンパイラがオブジェクトコードにコンパイルすることで、プログラムを生成する。例えば、このようなＭＤＤは、組込みソフトウェア開発において利用される。
【０００３】
ところで、ＭＤＤにおいて、コンポーネントを用いてモデルを表現する手法が存在する。コンポーネントとは、ある機能を提供するための一群の構成要素を一つにまとめたもので、モデルをシンプルに表現するものである。この手法では、コンポーネントを配置した画面上で、コンポーネント同士の関連を定義したり、修正したりするだけで、開発者はモデルを設計できる。この手法は、コンポーネントベースのＭＤＤと称される。例えば、ＳｙｓＭＬ（OMG  Systems  Modeling  Language）におけるブロック図は、コンポーネントベースのＭＤＤに類するものである。
【０００４】
また、プログラムの品質を安定的に評価することで、ソフトウェア開発を支援する技術も存在する。この技術は、評価対象となるプログラムと比較対象となるプログラムについて、それぞれのソースコードを解析し、プログラムの規模や複雑さの尺度として用いられるメトリックス（Metrics）を測定する。そして、それぞれのメトリックスの差分と比較対象となるプログラムの品質とに基づいて、評価対象となるプログラムの品質を安定的に評価する。
【０００５】
また、プログラムの生成を容易にすることで、ソフトウェア開発を支援する技術も存在する。この技術は、ソースコードの雛形を予め用意しておき、プログラムの生成に必要な種々のパラメータを雛形に入力することで、高度な知識を必要とせずにプログラムを容易に生成する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−２９９７０号公報
【特許文献２】国際公開第２００５／０２００７０号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、上記従来技術においてモデルを設計する際に、コンパイル後の最終的なプログラムのサイズを出力すれば、有用であると考えられる。例えば、開発者がＧＵＩ操作でコンポーネントを修正する度に、修正により変化する最終的なプログラムのサイズを出力することで、開発者はソフトウェアのサイズ仕様を満たすか否かを考慮しながらモデルを設計できると考えられる。
【０００８】
しかしながら、上記従来技術では、最終的なプログラムのサイズを出力するためには、ソースコードの自動生成とコンパイルという時間がかかる処理の実行を要した。具体的には、ソースコードの自動生成とコンパイルの実行に数分間を要するため、開発者がコンポーネントを修正する度に最終的なプログラムのサイズを確認すると、開発効率が低下していた。
【０００９】
開示の技術は、上記に鑑みてなされたものであって、プログラムのサイズを出力することができる開発支援プログラム、開発支援方法及び開発支援装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本願の開示する開発支援プログラムは、一つの態様において、複数のコンポーネントを組み合わせて設計されるモデルにより生成されるプログラムのサイズを推定するための開発支援プログラムであって、コンピュータに、次の各処理を実行させる。すなわち、コンピュータに、第１のモデルに含まれるパラメータである変数、ポートおよびメソッドのうち一つまたは複数のパラメータと、前記パラメータの増減に対する、前記第１のモデルにより生成されるプログラムのサイズの増減値とを対応付けた対応情報を記憶する対応情報記憶部を参照し、第２のモデルに含まれる各パラメータの個数に基づいて、前記第２のモデルにより生成されるプログラムのサイズを推定する処理を実行させる。また、コンピュータに、前記サイズを推定する処理により推定されたサイズを出力する処理を実行させる。
【発明の効果】
【００１１】
本願の開示する技術の一つの態様によれば、プログラムのサイズを出力することができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施例１に係る開発支援装置の構成の一例を示すブロック図である。
【図２】図２は、コンポーネントを設計するためのデータの一例を示す図である。
【図３】図３は、コンポーネントを配置するためのデータの一例を示す図である。
【図４】図４は、統計情報テーブルが記憶するデータの一例を示す図である。
【図５】図５は、分析結果テーブルが記憶するデータの一例を示す図である。
【図６】図６は、増減情報テーブルが記憶するデータの一例を示す図である。
【図７】図７は、出力制御部により出力される情報の一例を示す図である。
【図８】図８は、本実施例１に係る分析結果テーブルを生成する処理手順を示すフローチャートである。
【図９】図９は、本実施例１に係るサイズを推定する処理手順を示すフローチャートである。
【図１０】図１０は、実施例２に係る開発支援装置の構成の一例を示すブロック図である。
【図１１】図１１は、統計情報テーブルが記憶するデータの一例を示す図である。
【図１２】図１２は、分析結果テーブルが記憶するデータの一例を示す図である。
【図１３】図１３は、増減情報テーブルが記憶するデータの一例を示す図である。
【図１４】図１４は、統計情報テーブルが記憶するデータの一例を示す図である。
【図１５】図１５は、分析結果テーブルが記憶するデータの一例を示す図である。
【図１６】図１６は、増減情報テーブルが記憶するデータの一例を示す図である。
【図１７】図１７は、開発支援プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１３】
以下に、本願の開示する開発支援プログラム、開発支援方法及び開発支援装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１４】
実施例１に係る開発支援装置の一例について説明する。実施例１に係る開発支援装置は、例えば、コンポーネントベースのモデル駆動型開発（ＭＤＤ：Model  Driven  Development）を実現する機能を有する。コンポーネントとは、ある機能を提供するための一群の構成要素を一つにまとめた、プログラムの部品に相当するものである。実施例１では、コンポーネントベースのＭＤＤにおいて処理対象となるモデルが修正された際に、修正後のモデルにより生成される最終的なプログラムのサイズを出力する場合を説明する。
【００１５】
本実施例１に係る開発支援装置の構成の一例について説明する。図１は、実施例１に係る開発支援装置の構成の一例を示すブロック図である。図１に示すように、この開発支援装置１００は、記憶部１１０と、制御部１２０とを有する。また、開発支援装置１００は、入力装置１０１と出力装置１０２とに接続される。
【００１６】
入力装置１０１は、各種情報の入力を受け付ける。例えば、入力装置１０１は、ユーザからコンポーネントのデータやコンポーネントの修正指示などの入力を受け付ける。例えば、入力装置１０１は、キーボードやマウスなどに対応する。出力装置１０２は、各種情報を出力する。例えば、出力装置１０２は、コンポーネントの配置を示す図やポップアップウインドウなどを出力する。例えば、出力装置１０２は、ディスプレイやモニタなどに対応する。
【００１７】
記憶部１１０は、コンポーネントデータ１１１と、統計情報テーブル１１２と、分析結果テーブル１１３と、増減情報テーブル１１４とを有する。記憶部１１０は、例えば、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子、ハードディスクや光ディスクなどの記憶装置に対応する。なお、記憶部１１０は、対応情報記憶部の一例である。
【００１８】
コンポーネントデータ１１１は、モデルに含まれる各コンポーネントのデータである。例えば、コンポーネントデータ１１１は、処理対象となるモデルについて、コンポーネントを設計するためのデータやコンポーネントを配置するためのデータを含む。
【００１９】
図２は、コンポーネントを設計するためのデータの一例を示す図である。図２に示す例では、コンポーネントを設計するためのデータが出力装置１０２の画面に表示された場合を例として説明する。図２に示すように、例えば、表示画面２ａには、コンポーネントを設計する構成要素として、データ２ｂと、データ２ｃと、データ２ｄと、データ２ｅとが表示される。データ２ｂは、他のコンポーネントとデータを送受信するためのポート２ｆを含む。データ２ｃは、データ２ｂがコンポーネントである旨を定義するためのメタ要素であり、データ２ｂからの汎化によりコンポーネントである旨を定義する。データ２ｄは、データ２ｅがインターフェイスである旨を定義するためのメタ要素であり、データ２ｅからの汎化によりインターフェイスである旨を定義する。データ２ｅは、データ２ｃのポート２ｆが送受信するデータのインターフェイスであり、ポート２ｆが送受信するデータを定義する。データ２ｂに記述された命令文２ｇは、変数が１つ存在することを表す。データ２ｂに記述された命令文２ｈは、ポートが１つ存在することを表す。データ２ｂに記述された命令文２ｉは、メソッドが１つ存在することを表す。コンポーネントを設計するためのデータは、例えば、ＸＭＬ（Extensible  Markup  Language）フォーマットにより記述される。図２では、光センサのコンポーネントを設計するためのデータを例示する。
【００２０】
図３は、コンポーネントを配置するためのデータの一例を示す図である。図３に示す例では、コンポーネントを配置するためのデータが画面に表示された場合を例として説明する。図３に示すように、表示画面３ａには、複数のコンポーネント３ｂが表示される。コンポーネント３ｂは、図２に示したデータをインスタンス化したものに対応する。コンポーネント３ｂ同士の関連は、各コンポーネント３ｂのポート３ｃを繋ぐことにより定義される。コンポーネントを配置するためのデータは、例えば、ＸＭＬ（Extensible  Markup  Language）フォーマットにより記述される。なお、図２に示したコンポーネントを設計するためのデータや、図３に示したコンポーネントを配置するためのデータが、処理対象となるモデルに対応する。また、コンポーネントは、部品とも称される。
【００２１】
統計情報テーブル１１２は、モデルに含まれる各コンポーネントのサイズと、各コンポーネントに含まれる各パラメータの個数とを対応付けて記憶する。図４は、統計情報テーブルが記憶するデータの一例を示す図である。図４に示すように、この統計情報テーブル１１２は、「コンポーネントＩＤ」と、「バイナリサイズ」と、「変数の数」と、「ポート数」と、「メソッド数」とを対応付けて記憶する。ここで、コンポーネントＩＤは、モデルに含まれる各コンポーネントを一意に識別する識別情報を示す。また、バイナリサイズは、処理対象となるモデルを基にソースコード自動生成とコンパイルとを実行した場合に、各コンポーネントから生成されるプログラムの実サイズを示す。このバイナリサイズは、後述する集計部１２１によりコンパイラなどの外部装置から別途取得され、統計情報テーブル１１２に格納される。また、変数の数は、各コンポーネントに含まれる変数の数を示す。また、ポート数は、各コンポーネントに含まれるポートの数を示す。また、メソッド数は、各コンポーネントに含まれるメソッドの数を示す。
【００２２】
例えば、統計情報テーブル１１２は、図４に示すように、処理対象となるモデルについて、コンポーネントＩＤ「コンポーネントＡ」と、バイナリサイズ「１７０７」と、変数の数「３」と、ポート数「１」と、メソッド数「１」とを対応付けて記憶する。つまり、統計情報テーブル１１２は、コンポーネントＡのバイナリサイズが１７０７バイトであり、コンポーネントＡが３つの変数と、１つのポートと、１つのメソッドとを含むことを記憶する。また、統計情報テーブル１１２は、他のコンポーネントについても同様に、「コンポーネントＩＤ」と、「バイナリサイズ」と、「変数の数」と、「ポート数」と、「メソッド数」とを対応付けて記憶する。
【００２３】
分析結果テーブル１１３は、モデルに含まれるパラメータと、各パラメータの増減に対するプログラムのサイズの増減値とを対応付けて記憶する。図５は、分析結果テーブルが記憶するデータの一例を示す図である。図５に示すように、分析結果テーブル１１３は、「パラメータ」と、「バイナリサイズ増減値」とを対応付けて記憶する。ここで、パラメータは、モデルに含まれるパラメータを示し、例えば、変数、ポート及びメソッドに対応する。また、分析結果テーブル１１３は、パラメータとは別に、切片の値を有する。この切片の値は、パラメータ以外の命令文などにより必要となるバイナリサイズに対応する。また、バイナリサイズ増減値は、各パラメータの増減に対する、コンパイル後のプログラムのサイズの増減値を示す。
【００２４】
例えば、分析結果テーブル１１３は、図５に示すように、パラメータ「変数」と、バイナリサイズ増減値「１９９．６」とを対応付けて記憶する。つまり、分析結果テーブル１１３は、モデルに含まれる変数が１つ増加するとバイナリサイズが１９９．６バイト増加することを記憶し、モデルに含まれる変数が１つ減少するとバイナリサイズが１９９．６バイト減少することを記憶する。また、分析結果テーブル１１３は、他のパラメータや切片についても同様に、「バイナリサイズ増減値」を記憶する。なお、分析結果テーブル１１３は、対応情報の一例である。
【００２５】
増減情報テーブル１１４は、モデルに含まれる各パラメータの増減数と、各パラメータの増減数に基づいて推定されるプログラムのサイズの増減値とを記憶する。図６は、増減情報テーブルが記憶するデータの一例を示す図である。図６に示すように、増減情報テーブル１１４は、「コンポーネントＩＤ」と、「バイナリサイズ予測増減値」と、「変数増減数」と、「ポート増減数」と、「メソッド増減数」とを対応付けて記憶する。ここで、バイナリサイズ予測増減値は、修正後のモデルの各コンポーネントに含まれるパラメータの個数に基づいて推定されるプログラムのサイズの増減値を示す。また、変数増減数は、修正後のモデルの各コンポーネントに含まれる変数の増減数を示す。ポート増減数は、修正後のモデルの各コンポーネントに含まれるポートの増減数を示す。メソッド増減数は、修正後のモデルの各コンポーネントに含まれるメソッドの増減数を示す。
【００２６】
例えば、増減情報テーブル１１４は、図６に示すように、コンポーネントＩＤ「コンポーネントＡ」と、バイナリサイズ予測増減値「＋２００」と、変数増減数「＋１」と、ポート増減数「±０」と、メソッド増減数「±０」とを対応付けて記憶する。つまり、増減情報テーブル１１４は、モデルの修正によりコンポーネントＡの変数が１つ増加し、バイナリサイズが約２００バイト増加すると推定されることを記憶する。また、増減情報テーブル１１４は、他のコンポーネントについても同様に、「コンポーネントＩＤ」と、「バイナリサイズ予測増減値」と、「変数増減数」と、「ポート増減数」と、「メソッド増減数」とを対応付けて記憶する。
【００２７】
制御部１２０は、集計部１２１と、分析部１２２と、設計部１２３と、計算部１２４と、出力制御部１２５とを有する。制御部１２０は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などの電子回路に対応する。または、制御部１２０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などの集積装置に対応する。
【００２８】
集計部１２１は、コンポーネントに含まれる各パラメータの個数を集計する。例えば、集計部１２１は、処理対象となるモデルについて、コンポーネントデータ１１１に含まれる変数の数、ポート数及びメソッド数をそれぞれ集計する。また、集計部１２１は、処理対象となるモデルを基にソースコード自動生成装置とコンパイラにより生成されたプログラムについて、図示しないコンパイラなどから各コンポーネントのバイナリサイズを別途取得する。そして、集計部１２１は、処理対象となるモデルに含まれる各コンポーネントのコンポーネントＩＤと、バイナリサイズと、変数の数と、ポート数と、メソッド数とを対応付けて統計情報テーブル１１２に格納する。
【００２９】
分析部１２２は、各コンポーネントのバイナリサイズを目的変数とし、かつ、コンポーネントに含まれる各パラメータの個数を説明変数とする回帰分析を実行する。例えば、分析部１２２は、図４に示した統計情報テーブル１１２から各コンポーネントのバイナリサイズと、変数の数と、ポート数と、メソッド数とを読み出す。そして、分析部１２２は、バイナリサイズを目的変数「Ｙ」とし、変数の数を説明変数「Ｘ１」とし、ポート数を説明変数「Ｘ２」とし、メソッド数を説明変数「Ｘ３」とする回帰分析を実行する。この回帰分析には、例えば、最小二乗法が用いられる。つまり、分析部１２２は、例えば、目的変数を説明変数で表す回帰式を設定する。分析部１２２は、回帰式により求まる目的変数の推定値と、目的変数の測定値との差の2乗平均が最小になるように、回帰式の係数を算出する。分析部１２２は、回帰分析を実行することにより、例えば、下記の予測式（１）を導出する。
【００３０】
Ｙ＝１９９．６＊Ｘ１＋５６．１＊Ｘ２＋１０９．４＊Ｘ３＋５４２．６・・・（１）
【００３１】
ここで、Ｘ１の係数「１９９．６」は、変数の増減に対するバイナリサイズ増減値に対応する。また、Ｘ２の係数「５６．１」は、ポートの増減に対するバイナリサイズ増減値に対応する。また、Ｘ３の係数「１０９．４」は、メソッドの増減に対するバイナリサイズ増減値に対応する。また、切片「５４２．６」は、パラメータ以外の命令文などにより必要となるバイナリサイズに対応する。なお、上記の予測式（１）は、分析部１２２により導出される予測式の一例である。
【００３２】
また、分析部１２２は、回帰分析の結果から分析結果テーブル１１３を生成する。例えば、分析部１２２は、パラメータ「変数」と、変数の増減に対するバイナリサイズ増減値「１９９．６」とを対応付けて分析結果テーブル１１３に格納する。また、分析部１２２は、他のパラメータや切片についても同様に、パラメータ又は切片と、バイナリサイズ増減値とを対応付けて分析結果テーブル１１３に格納する。なお、分析部１２２は、格納部の一例である。
【００３３】
設計部１２３は、ユーザから入力装置１０１を介して入力を受け付けて、モデルを設計する。例えば、設計部１２３は、設計するコンポーネントを指定する旨の入力をユーザから受け付けて、モデルとしてコンポーネントデータ１１１を生成する。そして、設計部１２３は、生成したコンポーネントデータ１１１を記憶部１１０に格納する。
【００３４】
また、設計部１２３は、ユーザから入力装置１０１を介して入力を受け付けて、モデルを修正し、修正後のモデルに含まれる各パラメータの増減数を集計する。例えば、設計部１２３は、ユーザからモデルを修正する旨の命令を受け付けて、記憶部１１０に記憶されたコンポーネントデータ１１１を読み出し、読み出したコンポーネントデータ１１１を修正する。具体的には、例えば、設計部１２３は、ユーザにより指定されたコンポーネントごとに変数、ポート及びメソッドを追加する旨の命令や削減する旨の命令を受け付ける。また、設計部１２３は、コンポーネントを新規に追加する旨の命令や削除する旨の命令をユーザから受け付ける。設計部１２３は、受け付けた命令にしたがってコンポーネントデータ１１１を修正する。そして、設計部１２３は、修正後のモデルに含まれる各パラメータの増減数やコンポーネントの増減数を集計し、集計した各パラメータの増減数やコンポーネントの増減数を計算部１２４に出力する。
【００３５】
計算部１２４は、分析結果テーブル１１３を参照し、モデルに含まれる各パラメータの増減数に基づいて、モデルにより生成されるプログラムのサイズを計算する。例えば、計算部１２４は、修正後のモデルに含まれる各パラメータの増減数やコンポーネントの増減数を設計部１２３から受け付けた場合に、分析結果テーブル１１３を参照し、修正後のモデルにより生成されるプログラムのサイズを計算する。
【００３６】
例えば、計算部１２４は、コンポーネントＡについて変数増減数「＋１」を設計部１２３から受け付けた場合には、分析結果テーブル１１３を参照し、バイナリサイズが約２００バイト増加するとバイナリサイズ予測増減値を計算する。そして、計算部１２４は、コンポーネントＡのバイナリサイズ予測増減値「＋２００」と、変数増減数「＋１」とを対応付けて増減情報テーブル１１４に格納する。また、例えば、計算部１２４は、新規に追加されたコンポーネントＥの増減数「＋１」を設計部１２３から受け付けた場合には、分析結果テーブル１１３を参照し、バイナリサイズが約５４３バイト増加するとバイナリサイズ予測増減値を計算する。そして、計算部１２４は、新規に追加されたコンポーネントＥに対応付けてバイナリサイズ予測増減値「＋５４３」を増減情報テーブル１１４に格納する。また、計算部１２４は、各パラメータの増減数やコンポーネントの増減数を設計部１２３から受け付けるごとに、バイナリサイズ予測増減値を計算し、増減情報テーブル１１４を更新する。なお、計算部１２４は、推定部の一例である。
【００３７】
出力制御部１２５は、計算部１２４により計算されたモデルにより生成されるプログラムのサイズを出力装置１０２から出力する。例えば、出力制御部１２５は、プログラムの設計仕様として要求されるサイズ仕様を予め保持する記憶部１１０からサイズ仕様を取得する。出力制御部１２５は、モデルが修正されるごとに、修正後のモデルのバイナリサイズ予測増減値を増減情報テーブル１１４から取得し、かつ、修正前のモデルにより生成されるプログラムのサイズを統計情報テーブル１１２から取得する。そして、出力制御部１２５は、修正後のモデルのバイナリサイズ予測増減値と修正前のサイズとを加算し、加算した値がサイズ仕様を満たすか否かを判定する。サイズ仕様を満たさないと判定した場合に、出力制御部１２５は、サイズ仕様を満たさない旨の情報を出力装置１０２から出力する。
【００３８】
図７は、出力制御部により出力される情報の一例を示す図である。図７に示すように、モデルの修正によりコンポーネント７ａに命令文７ｂが追加されると、出力制御部１２５は、増減情報テーブル１１４と統計情報テーブル１１２とを参照する。出力制御部１２５は、命令文７ｂの追加により増加したバイナリサイズ予測増減値と修正前のサイズとを加算し、加算した値がサイズ仕様を満たすか否かを判定する。そして、出力制御部１２５は、サイズ仕様を満たさないと判定すると、メッセージボックス７ｃを出力装置１０２から出力する。なお、出力制御部１２５による出力方法は、上記の方法に限定されるものではない。例えば、出力制御部１２５は、モデルの修正により追加された命令文の付近に、修正によるバイナリサイズ予測増減値を出力するようにしても良い。また、出力制御部１２５は、出力部の一例である。
【００３９】
次に、本実施例１に係る分析結果テーブルを生成する処理手順について説明する。図８は、本実施例１に係る分析結果テーブルを生成する処理手順を示すフローチャートである。分析結果テーブルを生成する処理は、例えば、処理対象となるモデルのコンポーネントデータ１１１が記憶部１１０に格納されたことを契機として開始される。また、分析結果テーブルを生成する処理は、例えば、開発支援装置１００を利用するユーザが指定した時点で開始される。
【００４０】
図８に示すように、集計部１２１は、処理タイミングになると（ステップＳ１０１Ｙｅｓ）、各コンポーネントのパラメータをコンポーネントデータ１１１から取得し、各コンポーネントのバイナリサイズをコンパイラなどから別途取得する。そして、集計部１２１は、取得した各コンポーネントのパラメータとバイナリサイズとを統計情報テーブル１１２に格納する（ステップＳ１０２）。
【００４１】
分析部１２２は、各コンポーネントのバイナリサイズを目的変数とし、かつ、コンポーネントに含まれる各パラメータの個数を説明変数とする回帰分析を実行する（ステップＳ１０３）。そして、分析部１２２は、回帰分析の結果から分析結果テーブル１１３を生成する（ステップＳ１０４）。
【００４２】
次に、本実施例１に係るサイズを推定する処理手順について説明する。図９は、本実施例１に係るサイズを推定する処理手順を示すフローチャートである。サイズを推定する処理は、例えば、設計部１２３がユーザからモデルを修正する旨の命令を受け付けたことを契機として開始される。
【００４３】
図９に示すように、設計部１２３は、ユーザからモデルを修正する旨の命令を受け付けると（ステップＳ２０１Ｙｅｓ）、修正後のモデルに含まれる各パラメータの増減数やコンポーネントの増減数を集計し、計算部１２４に出力する（ステップＳ２０２）。
【００４４】
計算部１２４は、分析結果テーブル１１３を参照し、修正後のモデルに含まれる各パラメータの増減数やコンポーネントの増減数に基づいて、修正後のモデルにより生成されるプログラムのサイズを計算する（ステップＳ２０３）。そして、出力制御部１２５は、計算部１２４により計算されたモデルにより生成されるプログラムのサイズを出力装置１０２から出力する（ステップＳ２０４）。
【００４５】
上述してきたように、本実施例１に係る開発支援装置１００は、モデルに含まれるパラメータである変数、ポートおよびメソッドのうち一つまたは複数のパラメータと、パラメータの増減に対するプログラムのサイズの増減値とを対応付けた対応情報を記憶する。開発支援装置１００は、対応情報を参照し、モデルに含まれる各パラメータの個数に基づいて、モデルにより生成されるプログラムのサイズを推定し、推定したサイズを出力する。このため、開発支援装置１００を利用する開発者は、例えば、ソフトウェアのサイズ仕様を満たすか否かを考慮しながらモデルを設計することができる。特に、開発者は、モデルを修正するごとに、修正後のモデルにより生成されるプログラムのサイズを速やかに確認でき、ソフトウェアのサイズ仕様を満たすか否かを考慮しながらモデルを設計することができる。
【００４６】
また、開発支援装置１００は、処理対象となるモデルについて回帰分析を実行し、回帰分析の結果から対応情報を生成する。開発支援装置１００は、処理対象となるモデルが修正される度に、生成した対応情報を参照し、修正後のモデルに含まれる変数の個数、メソッド数及びポート数に基づいて、最終的なプログラムのサイズを推定し、プログラムのサイズを出力する。このため、開発支援装置１００は、精度よく推定された最終的なプログラムのサイズを出力することができる。
【実施例２】
【００４７】
実施例１では、開発支援装置１００が、処理対象となるモデルに基づいて分析結果テーブル１１３を生成した後に、同一のモデルの修正に対して分析結果テーブル１１３を適用して最終的なプログラムのサイズを出力する場合を説明した。しかしながら、本発明はこれに限定されるものではない。例えば、所定のモデルに基づいて生成された分析結果テーブル１１３は、所定のモデルと同様のメタモデルを用いて設計された他のモデルに対して適用されても良い。つまり、開発支援装置１００が記憶する分析結果テーブル１１３は、既存のモデルに基づいて予め生成されても良く、コンポーネントベースのＭＤＤを提供する開発環境ベンダーにより与えられても良い。
【００４８】
すなわち、図１に示した開発支援装置１００は、必ずしも図１に示した各処理部を全て有していなくても良い。例えば、図１０に示すように、開発支援装置２００は、対応情報記憶部２１０と、推定部２２０と、出力部２３０とを有していれば良い。図１０は、実施例２に係る開発支援装置の構成の一例を示すブロック図である。
【００４９】
開発支援装置２００は、入力装置１０１と出力装置１０２とに接続される。なお、図１０に示す入力装置１０１と出力装置１０２の説明は、図１に示した入力装置１０１と出力装置１０２の説明にそれぞれ対応する。
【００５０】
対応情報記憶部２１０は、対応情報を記憶する。この対応情報は、モデルに含まれるパラメータである変数、ポート及びメソッドのうち一つ又は複数のパラメータと、パラメータの増減に対する、モデルにより生成されるプログラムのサイズの増減値とを対応付けた情報である。なお、対応情報は、例えば、図５に示した分析結果テーブル１１３に対応する。
【００５１】
推定部２２０は、対応情報記憶部２１０に記憶された対応情報を参照し、入力装置１０１により入力されたモデルに含まれる各パラメータの個数に基づいて、モデルにより生成されるプログラムのサイズを推定する。例えば、推定部２２０は、入力装置１０１により入力された処理対象となるモデルに含まれるコンポーネントの個数や各パラメータの個数を集計する。そして、推定部２２０は、対応情報を参照し、集計したコンポーネントの個数や各パラメータの個数に基づいて、処理対象となるモデルにより生成されるプログラムのサイズを推定する。
【００５２】
ここで、推定部２２０が対応情報として図５に示した分析結果テーブル１１３を用いてプログラムのサイズを推定する場合を説明する。例えば、推定部２２０は、処理対象となるモデルに含まれるコンポーネントＩＤ「コンポーネントＡ」が、変数の数「３」と、ポート数「１」と、メソッド数「１」とを有する場合には、以下のように処理を実行する。すなわち、推定部２２０は、各パラメータや切片に対応するバイナリサイズ増減値を対応情報から取得する。そして、推定部２２０は、切片に基づくサイズ「５４２．６」と、変数の数に基づくサイズ「１９９．６×３」と、ポート数に基づくサイズ「５６．１×１」と、メソッド数に基づくサイズ「１０９．４×１」とを加算する。この結果、推定部２２０は、コンポーネントＡのサイズ「１３０６．９」を算出する。また、推定部２２０は、モデルに含まれる他のコンポーネントについても同様にコンポーネントごとのサイズを推定する。そして、推定部２２０は、推定したコンポーネントごとのサイズを加算し、処理対象となるモデルにより生成されるプログラムのサイズを推定する。なお、推定部２２０は、例えば、図１に示した計算部１２４に対応する。
【００５３】
出力部２３０は、推定部２２０により推定されたサイズを出力装置１０２に出力する。例えば、出力部２３０は、推定部２２０により推定された処理対象となるモデルにより生成されるプログラムのサイズが、プログラムのサイズ仕様を満たすか否かを判定する。サイズ仕様を満たさないと判定した場合に、出力部２３０は、サイズ仕様を満たさない旨の情報を出力装置１０２に出力する。なお、出力部２３０は、例えば、図１に示した出力制御部１２５に対応する。
【００５４】
このように、本実施例２に係る開発支援装置２００は、モデルに含まれるパラメータである変数、ポートおよびメソッドのうち一つまたは複数のパラメータと、パラメータの増減に対するプログラムのサイズの増減値とを対応付けた対応情報を記憶する。開発支援装置２００は、対応情報を参照し、モデルに含まれる各パラメータの個数に基づいて、モデルにより生成されるプログラムのサイズを推定し、推定したサイズを出力する。このため、開発支援装置２００を利用する開発者は、例えば、ソフトウェアのサイズ仕様を満たすか否かを考慮しながらモデルを設計することができる。特に、開発者は、新規に設計したモデルについて、ソースコード自動生成やコンパイルを実行することなく最終的なプログラムのサイズを速やかに確認でき、ソフトウェアのサイズ仕様を満たすか否かを考慮しながらモデルを設計することができる。
【実施例３】
【００５５】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、その他の実施例にて実施されても良い。そこで、以下では、その他の実施例について説明する。
【００５６】
例えば、上述した実施例では、開発支援装置１００，２００は、モデルに含まれるパラメータとして、変数、ポート及びメソッドを利用すると説明したが、本発明はこれに限定されるものではない。例えば、開発支援装置１００，２００は、変数、ポート及びメソッドのうち、いずれか一つまたは複数のパラメータを利用しても良い。また、例えば、開発支援装置１００，２００は、上記のパラメータ以外にも、他のパラメータを利用しても良い。例えば、開発支援装置１００，２００は、変数のうち、整数で表される変数である整数型変数と、浮動小数点で表される変数である浮動小数点型変数とをそれぞれ異なるパラメータとして利用しても良い。また、例えば、開発支援装置１００，２００は、ポートのうち、定期的にデータを送受信する定期送受信ポートと、イベントごとにデータを送受信するイベント送受信ポートをそれぞれ異なるパラメータとして利用しても良い。
【００５７】
以下において、開発支援装置１００が他のパラメータを利用する場合を説明する。この開発支援装置１００は、図１に示した開発支援装置１００と基本的には同様の構成であるが、統計情報テーブル１１２と、分析結果テーブル１１３と、増減情報テーブル１１４とが他のパラメータに関する情報を記憶する点が異なる。ここでは、開発支援装置１００が他のパラメータとして整数型変数と浮動小数点型変数とを利用する場合を説明する。
【００５８】
図１１は、統計情報テーブルが記憶するデータの一例を示す図である。図１１に示すように、この統計情報テーブル１１２は、「コンポーネントＩＤ」と、「バイナリサイズ」と、「整数型変数の数」と、「浮動小数点型変数の数」と、「ポート数」と、「メソッド数」とを対応付けて記憶する。ここで、整数型変数の数は、各コンポーネントに含まれる整数型変数の数を示す。また、浮動小数点型変数の数は、各コンポーネントに含まれる浮動小数点型変数の数を示す。
【００５９】
図１１に示すように、例えば、統計情報テーブル１１２は、コンポーネントＩＤ「コンポーネントＡ」と、バイナリサイズ「１７０７」と、整数型変数の数「２」と、浮動小数点型変数の数「１」と、ポート数「１」と、メソッド数「１」とを対応付けて記憶する。
つまり、統計情報テーブル１１２は、コンポーネントＡのバイナリサイズが１７０７バイトであり、コンポーネントＡが２つの整数型変数と、１つの浮動小数点型変数と、１つのポートと、１つのメソッドとを含むことを記憶する。また、統計情報テーブル１１２は、他のコンポーネントについても同様に、「コンポーネントＩＤ」と、「バイナリサイズ」と、「整数型変数の数」と、「浮動小数点型変数の数」と、「ポート数」と、「メソッド数」とを対応付けて記憶する。
【００６０】
図１２は、分析結果テーブルが記憶するデータの一例を示す図である。図１２に示すように、分析結果テーブル１１３が記憶する対応情報は、「パラメータ」と、「バイナリサイズ増減値」とを対応付けて記憶する。ここで、パラメータは、モデルに含まれるパラメータを示し、例えば、整数型変数、浮動小数点型変数、ポート及びメソッドに対応する。また、分析結果テーブル１１３は、パラメータとは別に、切片の値を有する。また、バイナリサイズ増減値は、各パラメータの増減に対する、コンパイル後のプログラムのサイズの増減値を示す。
【００６１】
図１２に示すように、例えば、分析結果テーブル１１３は、「整数型変数」と、「５０．２」とを対応付けて記憶する。つまり、分析結果テーブル１１３は、モデルに含まれる整数型変数が１つ増加するとバイナリサイズが５０．２バイト増加することを記憶し、モデルに含まれる整数型変数が１つ減少するとバイナリサイズが５０．２バイト減少することを記憶する。また、分析結果テーブル１１３は、他のパラメータや切片についても同様に、「バイナリサイズ増減値」を記憶する。
【００６２】
図１３は、増減情報テーブルが記憶するデータの一例を示す図である。図１３に示すように、増減情報テーブル１１４は、「コンポーネントＩＤ」と、「バイナリサイズ予測増減値」と、「整数型変数増減数」と、「浮動小数点型変数増減数」と、「ポート増減数」と、「メソッド増減数」とを対応付けて記憶する。ここで、整数型変数増減数は、修正後のモデルの各コンポーネントに含まれる整数型変数の増減数を示す。また、浮動小数点型変数増減数は、修正後のモデルの各コンポーネントに含まれる浮動小数点型変数の増減数を示す。
【００６３】
図１３に示すように、例えば、増減情報テーブル１１４は、コンポーネントＩＤ「コンポーネントＡ」と、バイナリサイズ予測増減値「＋５０」とを対応付けて記憶する。また、増減情報テーブル１１４は、コンポーネントＩＤ「コンポーネントＡ」と、整数型変数増減数「＋１」と、浮動小数点型変数増減数「±０」と、ポート増減数「±０」と、メソッド増減数「±０」とを対応付けて記憶する。つまり、増減情報テーブル１１４は、モデルの修正によりコンポーネントＡの整数型変数増減数が１つ増加し、バイナリサイズが約５０バイト増加すると推定されることを記憶する。また、増減情報テーブル１１４は、他のコンポーネントについても同様に「コンポーネントＩＤ」と、「バイナリサイズ予測増減値」と、「整数型変数増減数」と、「浮動小数点型変数増減数」と、「ポート増減数」と、「メソッド増減数」とを対応付けて記憶する。
【００６４】
すなわち、開発支援装置１００が他のパラメータを利用する場合には、開発支援装置１００が有する各処理部は、図１１，１２，１３に示したテーブルを用いて、以下のように処理を実行する。集計部１２１は、処理対象となるモデルについて、コンポーネントデータ１１１に含まれる整数型変数の数、浮動小数点型変数の数、ポート数及びメソッド数をパラメータとしてそれぞれ集計し、集計した情報を図１１に示した統計情報テーブル１１２に格納する。分析部１２２は、図１１に示した統計情報テーブル１１２から各コンポーネントのバイナリサイズと、各パラメータとを読み出し、回帰分析を実行する。分析部１２２は、回帰分析の結果から図１２に示した分析結果テーブル１１３を生成する。計算部１２４は、修正後のモデルに含まれる各パラメータの増減数やコンポーネントの増減数を設計部１２３から受け付けた場合に、図１２に示した分析結果テーブル１１３を参照し、修正後のモデルにより生成されるプログラムのサイズを計算する。計算部１２４は、各パラメータの増減数やコンポーネントの増減数を設計部１２３から受け付けるごとに、バイナリサイズ予測増減値を計算し、図１３に示した増減情報テーブル１１４を更新する。出力制御部１２５は、計算部１２４により計算されたモデルにより生成されるプログラムのサイズを出力装置１０２から出力する。
【００６５】
このように、開発支援装置１００は、変数に含まれるパラメータである整数型変数および浮動小数点型変数と、各パラメータの増減に対する、前記モデルにより生成されるプログラムのサイズの増減値とを対応付けた対応情報を記憶する。そして、開発支援装置１００は、記憶した対応情報を参照し、モデルにより生成されるプログラムのサイズを推定する。このため、開発支援装置１００は、処理対象となるモデルにより生成されるプログラムのサイズを高精度に推定することができる。
【００６６】
また、例えば、上述した実施例では、処理対象となるモデルのコンポーネントデータ１１１において、コンポーネント同士の関連がポートを繋ぐことにより定義される場合を説明したが、本発明はこれに限定されるものではない。例えば、コンポーネントデータ１１１は、コンポーネント同士の関連として、所定のコンポーネントの機能が他のコンポーネントに継承される継承関係を含んでも良い。
【００６７】
以下において、開発支援装置１００の処理対象となるモデルのコンポーネントデータ１１１に、コンポーネントＡの機能がコンポーネントＣに継承される継承関係が含まれる場合を説明する。この開発支援装置１００は、図１に示した開発支援装置１００と基本的には同様の構成であるが、統計情報テーブル１１２と、分析結果テーブル１１３と、増減情報テーブル１１４とが継承関係についての情報を記憶する点が異なる。なお、上記の継承関係においては、コンポーネントＡは「親」とも称され、コンポーネントＣは「子」とも称される。
【００６８】
図１４は、統計情報テーブルが記憶するデータの一例を示す図である。図１４に示すように、この統計情報テーブル１１２は、「コンポーネントＩＤ」と、「バイナリサイズ」と、「変数の数」と、「ポート数」と、「メソッド数」と、「仮想関数」とを対応付けて記憶する。ここで、仮想関数は、該当するコンポーネントが他のコンポーネントに継承されるか否かを示す値であり、「０」又は「１」を有する。仮想関数「０」は、該当するコンポーネントが他のコンポーネントに継承されないことを示し、仮想関数「１」は、該当するコンポーネントが一つ又は複数の他のコンポーネントに継承されることを示す。つまり、「親」となるコンポーネントは、一つ又は複数の「子」となるコンポーネントに継承される場合に、仮想関数「１」を有する。なお、仮想関数により増減するバイナリサイズは、例えば、「親」となるコンポーネントが一つ又は複数の「子」となるコンポーネントを管理するためのテーブルのサイズに相当する。
【００６９】
図１４に示すように、例えば、統計情報テーブル１１２は、コンポーネントＩＤ「コンポーネントＡ」と、バイナリサイズ「１７０７」と、変数の数「３」と、ポート数「１」と、メソッド数「１」と、仮想関数「１」とを対応付けて記憶する。つまり、統計情報テーブル１１２は、コンポーネントＡのバイナリサイズが１７０７バイトであり、コンポーネントＡが３つの変数と、１つのポートと、１つのメソッドとを含むことを記憶する。また、統計情報テーブル１１２は、他のコンポーネントに継承されることを記憶する。また、統計情報テーブル１１２は、他のコンポーネントについても同様に、「コンポーネントＩＤ」と、「バイナリサイズ」と、「変数の数」と、「ポート数」と、「メソッド数」と、「仮想関数」とを対応付けて記憶する。
【００７０】
図１５は、分析結果テーブルが記憶するデータの一例を示す図である。図１５に示すように、分析結果テーブル１１３が記憶する対応情報は、「パラメータ」と、「バイナリサイズ増減値」とを対応付けて記憶する。ここで、パラメータは、モデルに含まれるパラメータを示し、例えば、変数、ポート、メソッド及び仮想関数に対応する。また、分析結果テーブル１１３は、パラメータとは別に、切片の値を有する。また、バイナリサイズ増減値は、各パラメータの増減に対する、コンパイル後のプログラムのサイズの増減値を示す。
【００７１】
図１５に示すように、例えば、分析結果テーブル１１３は、「仮想関数」と、「５５０．１」とを対応付けて記憶する。つまり、分析結果テーブル１１３は、モデルに含まれる仮想関数が１つ増加するとバイナリサイズが５５０．１バイト増加することを記憶し、モデルに含まれる仮想関数が１つ減少するとバイナリサイズが５５０．１バイト減少することを記憶する。また、分析結果テーブル１１３は、他のパラメータや切片についても同様に、「バイナリサイズ増減値」を記憶する。
【００７２】
図１６は、増減情報テーブルが記憶するデータの一例を示す図である。図１６では、コンポーネントＢの機能が新規のコンポーネントＥに継承された場合を説明する。図１６に示すように、増減情報テーブル１１４は、「コンポーネントＩＤ」と、「バイナリサイズ予測増減値」と、「変数増減数」と、「ポート増減数」と、「メソッド増減数」と、「仮想関数増減数」とを対応付けて記憶する。ここで、仮想関数増減数は、修正後のモデルの各コンポーネントに含まれる仮想関数の増減数を示す。
【００７３】
図１６に示すように、例えば、増減情報テーブル１１４は、「コンポーネントＢ」と、バイナリサイズ予測増減値「＋５５０」と、変数増減数「±０」と、ポート増減数「±０」と、メソッド増減数「±０」と、仮想関数「＋１」を対応付けて記憶する。つまり、増減情報テーブル１１４は、モデルの修正によりコンポーネントＢの仮想関数増減数が１つ増加し、バイナリサイズが約５５０バイト増加すると推定されることを記憶する。また、増減情報テーブル１１４は、例えば、「コンポーネントＥ」と、バイナリサイズ予測増減値「＋５４３」と、変数増減数「±０」と、ポート増減数「±０」と、メソッド増減数「±０」と、仮想関数「±０」を対応付けて記憶する。つまり、増減情報テーブル１１４は、モデルの修正によりコンポーネントＥが追加され、バイナリサイズが約５４３バイト増加すると推定されることを記憶する。また、増減情報テーブル１１４は、他のコンポーネントについても同様に「コンポーネントＩＤ」と、「バイナリサイズ予測増減値」と、「変数増減数」と、「ポート増減数」と、「メソッド増減数」と、「仮想関数増減数」とを対応付けて記憶する。
【００７４】
すなわち、開発支援装置１００の処理対象となるモデルにおいて所定のコンポーネントが他のコンポーネントに継承される場合には、開発支援装置１００が有する各処理部は、図１４，１５，１６に示したテーブルを用いて、以下のように処理を実行する。集計部１２１は、処理対象となるモデルについて、コンポーネントデータ１１１に含まれる変数の数、ポート数、メソッド数及び仮想関数をパラメータとしてそれぞれ集計し、集計した情報を図１４に示した統計情報テーブル１１２に格納する。分析部１２２は、図１４に示した統計情報テーブル１１２から各コンポーネントのバイナリサイズと、各パラメータとを読み出し、回帰分析を実行する。分析部１２２は、回帰分析の結果から図１５に示した分析結果テーブル１１３を生成する。計算部１２４は、修正後のモデルに含まれる各パラメータの増減数やコンポーネントの増減数を設計部１２３から受け付けた場合に、図１５に示した分析結果テーブル１１３を参照し、修正後のモデルにより生成されるプログラムのサイズを計算する。計算部１２４は、各パラメータの増減数やコンポーネントの増減数を設計部１２３から受け付けるごとに、バイナリサイズ予測増減値を計算し、図１６に示した増減情報テーブル１１４を更新する。出力制御部１２５は、計算部１２４により計算されたモデルにより生成されるプログラムのサイズを出力装置１０２から出力する。
【００７５】
このように、開発支援装置１００は、処理対象となるモデルにおいて所定のコンポーネントが他のコンポーネントに継承される場合には、仮想関数と、仮想関数の増減に対するプログラムのサイズの増減値とを対応付けた対応情報を記憶する。開発支援装置１００は、記憶した対応情報を参照し、モデルにより生成されるプログラムのサイズを推定する。このため、開発支援装置１００は、処理対象となるモデルにより生成されるプログラムのサイズを高精度に推定することができる。
【００７６】
また、例えば、上述した実施例では、開発支援装置１００がコンポーネントベースのＭＤＤに適用される場合を説明したが、本発明はこれに限定されるものではない。開発支援装置１００がコンポーネントベースのＭＤＤに適用されるのは、コンポーネントを利用することで、コンポーネント同士の関連をデータの送受信のみで表現でき、コンポーネントごとにバイナリサイズとパラメータの個数とを取得できるからである。このため、コンポーネントベースのＭＤＤでは、回帰分析を実行することができ、対応情報を生成することができる。すなわち、開発支援装置１００は、コンポーネントと同様に、回帰分析を実行することができる開発手法に適用されても良い。例えば、開発支援装置１００は、ＳｙｓＭＬ（OMG  Systems  Modeling  Language）に適用されても良い。
【００７７】
また、本実施例１及び２において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。例えば、図９に示したサイズを推定する処理は、開発支援装置１００を利用するユーザが指定した時点で開始されても良い。この他、上述文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、図６に示した増減情報テーブル１１４は、各コンポーネントのバイナリサイズ予測増減値を集計した値を記憶しても良い。
【００７８】
また、図１，１０に示した開発支援装置１００，２００の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、開発支援装置１００，２００の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図１０に示した記憶部２１０をサーバに持たせ、係るサーバと開発支援装置２００とが協働することで、最終的なプログラムにサイズを推定しても良い。
【００７９】
また、開発支援装置１００，２００は、開発支援装置１００，２００の各機能を既知の情報処理装置に搭載することによって実現することもできる。既知の情報処理装置は、例えば、パーソナルコンピュータ、ワークステーション、携帯電話、Personal  Handy-phone  System（ＰＨＳ）端末、移動体通信端末またはPersonal  Digital  Assistant（ＰＤＡ）などの装置に対応する。
【００８０】
図１７は、開発支援プログラムを実行するコンピュータの一例を示す図である。図１７に示すように、コンピュータ３００は、各種演算処理を実行するCentral  Processing  Unit（ＣＰＵ）３０１と、ユーザからデータの入力を受け付ける入力装置３０２と、モニタ３０３とを有する。また、コンピュータ３００は、記憶媒体からプログラム等を読み取る媒体読み取り装置３０４と、他の装置とデータの授受を行うインターフェイス装置３０５とを有する。また、コンピュータ３００は、各種情報を一時記憶するRandom  Access  Memory（ＲＡＭ）３０６と、ハードディスク装置３０７を有する。また、各装置３０１〜３０７は、バス３０８に接続される。
【００８１】
ハードディスク装置３０７は、図１、１０に示した、集計部１２１、分析部１２２、設計部１２３、計算部１２４、出力制御部１２５、推定部２２０及び出力部２３０の各処理部と同様の機能を有する開発支援プログラム３０７ａを記憶する。また、ハードディスク装置３０７は、開発支援プログラム３０７ａを実現するための各種データ３０７ｂを記憶する。
【００８２】
ＣＰＵ３０１が開発支援プログラム３０７ａをハードディスク装置３０７から読み出してＲＡＭ３０６に展開して実行することにより、開発支援プログラム３０７ａは、開発支援プロセス３０６ａとして機能する。すなわち、開発支援プログラム３０７ａは、集計部１２１、分析部１２２、設計部１２３、計算部１２４、出力制御部１２５、推定部２２０及び出力部２３０の各処理部と同様のプロセスとして機能する。
【００８３】
なお、上記の開発支援プログラム３０７ａは、必ずしもハードディスク装置３０７に記憶されている必要はない。例えば、コンピュータが読み取り可能な記録媒体に記憶されたプログラムを、コンピュータ３００が読み出して実行するようにしても良い。コンピュータが読み取り可能な記録媒体は、例えば、ＣＤ−ＲＯＭやＤＶＤディスク、ＵＳＢメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、Local  Area  Network（ＬＡＮ）、Wide  Area  Network（ＷＡＮ）等に接続された装置にこのプログラムを記憶させておき、コンピュータ３００がこれらからプログラムを読み出して実行するようにしても良い。
【００８４】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００８５】
（付記１）複数のコンポーネントを組み合わせて設計されるモデルにより生成されるプログラムのサイズを推定するための開発支援プログラムであって、コンピュータに、
第１のモデルに含まれるパラメータである変数、ポートおよびメソッドのうち一つまたは複数のパラメータと、前記パラメータの増減に対する、前記第１のモデルにより生成されるプログラムのサイズの増減値とを対応付けた対応情報を記憶する対応情報記憶部を参照し、第２のモデルに含まれる各パラメータの個数に基づいて、前記第２のモデルにより生成されるプログラムのサイズを推定し、
前記サイズを推定する処理により推定されたサイズを出力する
処理を実行させることを特徴とする開発支援プログラム。
【００８６】
（付記２）前記コンポーネントごとのコンパイル後のサイズを目的変数とし、かつ、前記コンポーネントに含まれる各パラメータの個数を説明変数とする回帰分析を行い、当該回帰分析の結果から前記対応情報を生成し、生成した前記対応情報を前記対応情報記憶部に格納する処理を更にコンピュータに実行させ、
前記サイズを推定する処理は、修正後のモデルに含まれる各パラメータの個数の増減を受け付けた場合に、前記対応情報を格納する処理により格納された前記対応情報を参照し、前記修正後のモデルにより生成されるプログラムのサイズを推定することを特徴とする付記１に記載の開発支援プログラム。
【００８７】
（付記３）前記サイズを推定する処理は、前記第２のモデルにおいて所定のコンポーネントが他のコンポーネントに継承される場合に、前記第１のモデルに含まれる、所定のコンポーネントが他のコンポーネントに継承されることを示すパラメータである仮想関数と、前記仮想関数の増減に対する、前記第１のモデルにより生成されるプログラムのサイズの増減値とを対応付けた対応情報を更に参照し、前記第２のモデルにより生成されるプログラムのサイズを推定することを特徴とする付記１又は２に記載の開発支援プログラム。
【００８８】
（付記４）前記サイズを推定する処理は、前記第１のモデルに含まれる、前記変数に含まれるパラメータである整数型変数および浮動小数点型変数と、各パラメータの増減に対する、前記第１のモデルにより生成されるプログラムのサイズの増減値とを対応付けた対応情報を更に参照し、前記第２のモデルにより生成されるプログラムのサイズを推定することを特徴とする付記１〜３のいずれか一つに記載の開発支援プログラム。
【００８９】
（付記５）複数のコンポーネントを組み合わせて設計されるモデルにより生成されるプログラムのサイズを推定するために、コンピュータによって実行される開発支援方法であって、
第１のモデルに含まれるパラメータである変数、ポートおよびメソッドのうち一つまたは複数のパラメータと、前記パラメータの増減に対する、前記第１のモデルにより生成されるプログラムのサイズの増減値とを対応付けた対応情報を記憶する対応情報記憶部を参照し、第２のモデルに含まれる各パラメータの個数に基づいて、前記第２のモデルにより生成されるプログラムのサイズを推定し、
前記サイズを推定する処理により推定されたサイズを出力する
ことを特徴とする開発支援方法。
【００９０】
（付記６）前記コンポーネントごとのコンパイル後のサイズを目的変数とし、かつ、前記コンポーネントに含まれる各パラメータの個数を説明変数とする回帰分析を行い、当該回帰分析の結果から前記対応情報を生成し、生成した前記対応情報を前記対応情報記憶部に更に格納し、
前記サイズを推定する処理は、修正後のモデルに含まれる各パラメータの個数の増減を受け付けた場合に、前記対応情報を格納する処理により格納された前記対応情報を参照し、前記修正後のモデルにより生成されるプログラムのサイズを推定することを特徴とする付記５に記載の開発支援方法。
【００９１】
（付記７）前記サイズを推定する処理は、前記第２のモデルにおいて所定のコンポーネントが他のコンポーネントに継承される場合に、前記第１のモデルに含まれる、所定のコンポーネントが他のコンポーネントに継承されることを示すパラメータである仮想関数と、前記仮想関数の増減に対する、前記第１のモデルにより生成されるプログラムのサイズの増減値とを対応付けた対応情報を更に参照し、前記第２のモデルにより生成されるプログラムのサイズを推定することを特徴とする付記５又は６に記載の開発支援方法。
【００９２】
（付記８）前記サイズを推定する処理は、前記第１のモデルに含まれる、前記変数に含まれるパラメータである整数型変数および浮動小数点型変数と、各パラメータの増減に対する、前記第１のモデルにより生成されるプログラムのサイズの増減値とを対応付けた対応情報を更に参照し、前記第２のモデルにより生成されるプログラムのサイズを推定することを特徴とする付記５〜７のいずれか一つに記載の開発支援方法。
【００９３】
（付記９）複数のコンポーネントを組み合わせて設計されるモデルにより生成されるプログラムのサイズを推定するための開発支援装置であって、
第１のモデルに含まれるパラメータである変数、ポートおよびメソッドのうち一つまたは複数のパラメータと、前記パラメータの増減に対する、前記第１のモデルにより生成されるプログラムのサイズの増減値とを対応付けた対応情報を記憶する対応情報記憶部と、
前記対応情報記記憶部に記憶された前記対応情報を参照し、第２のモデルに含まれる各パラメータの個数に基づいて、前記第２のモデルにより生成されるプログラムのサイズを推定する推定部と、
前記推定部により推定されたサイズを出力する出力部と
を有することを特徴とする開発支援装置。
【００９４】
（付記１０）前記コンポーネントごとのコンパイル後のサイズを目的変数とし、かつ、前記コンポーネントに含まれる各パラメータの個数を説明変数とする回帰分析を行い、当該回帰分析の結果から前記対応情報を生成し、生成した前記対応情報を前記対応情報記憶部に格納する格納部を更に有し、
前記推定部は、修正後のモデルに含まれる各パラメータの個数の増減を受け付けた場合に、前記格納部により格納された前記対応情報を参照し、前記修正後のモデルにより生成されるプログラムのサイズを推定することを特徴とする付記９に記載の開発支援装置。
【００９５】
（付記１１）前記推定部は、前記第２のモデルにおいて所定のコンポーネントが他のコンポーネントに継承される場合に、前記第１のモデルに含まれる、所定のコンポーネントが他のコンポーネントに継承されることを示すパラメータである仮想関数と、前記仮想関数の増減に対する、前記第１のモデルにより生成されるプログラムのサイズの増減値とを対応付けた対応情報を更に参照し、前記第２のモデルにより生成されるプログラムのサイズを推定することを特徴とする付記９又は１０に記載の開発支援装置。
【００９６】
（付記１２）前記推定部は、前記第１のモデルに含まれる、前記変数に含まれるパラメータである整数型変数および浮動小数点型変数と、各パラメータの増減に対する、前記第１のモデルにより生成されるプログラムのサイズの増減値とを対応付けた対応情報を更に参照し、前記第２のモデルにより生成されるプログラムのサイズを推定することを特徴とする付記９〜１１のいずれか一つに記載の開発支援装置。
【符号の説明】
【００９７】
１００      開発支援装置
１０１      入力装置
１０２      出力装置
１１０      記憶部
１１１      コンポーネントデータ
１１２      統計情報テーブル
１１３      分析結果テーブル
１１４      増減情報テーブル
１２０      制御部
１２１      集計部
１２２      分析部
１２３      設計部
１２４      計算部
１２５      出力制御部
２００      開発支援装置
２０１      入力装置
２０２      出力装置
２１０      対応情報記憶部
２２０      推定部
２３０      出力部
【図１】
0005582006.tif 000002
【図２】
0005582006.tif 000003
【図３】
0005582006.tif 000004
【図４】
0005582006.tif 000005
【図５】
0005582006.tif 000006
【図６】
0005582006.tif 000007
【図７】
0005582006.tif 000008
【図８】
0005582006.tif 000009
【図９】
0005582006.tif 000010
【図１０】
0005582006.tif 000011
【図１１】
0005582006.tif 000012
【図１２】
0005582006.tif 000013
【図１３】
0005582006.tif 000014
【図１４】
0005582006.tif 000015
【図１５】
0005582006.tif 000016
【図１６】
0005582006.tif 000017
【図１７】
0005582006.tif 000018