JP5582006B2 - 開発支援プログラム、開発支援方法及び開発支援装置 - Google Patents

開発支援プログラム、開発支援方法及び開発支援装置 Download PDF

Info

Publication number
JP5582006B2
JP5582006B2 JP2010272817A JP2010272817A JP5582006B2 JP 5582006 B2 JP5582006 B2 JP 5582006B2 JP 2010272817 A JP2010272817 A JP 2010272817A JP 2010272817 A JP2010272817 A JP 2010272817A JP 5582006 B2 JP5582006 B2 JP 5582006B2
Authority
JP
Japan
Prior art keywords
size
model
increase
decrease
component
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010272817A
Other languages
English (en)
Other versions
JP2012123543A (ja
Inventor
晋 徳本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2010272817A priority Critical patent/JP5582006B2/ja
Publication of JP2012123543A publication Critical patent/JP2012123543A/ja
Application granted granted Critical
Publication of JP5582006B2 publication Critical patent/JP5582006B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、開発支援プログラム、開発支援方法及び開発支援装置に関する。
近年、モデル駆動型開発(MDD:Model Driven Development)と呼ばれる開発手法が用いられる。このMDDでは、ソフトウェアを開発する開発者は、ソフトウェアの設計図に相当するモデルをGUI(Graphical User Interface)操作により設計する。続いて、開発者により設計されたモデルを基に、コード生成装置がソースコードを自動生成する。そして、生成されたソースコードをコンパイラがオブジェクトコードにコンパイルすることで、プログラムを生成する。例えば、このようなMDDは、組込みソフトウェア開発において利用される。
ところで、MDDにおいて、コンポーネントを用いてモデルを表現する手法が存在する。コンポーネントとは、ある機能を提供するための一群の構成要素を一つにまとめたもので、モデルをシンプルに表現するものである。この手法では、コンポーネントを配置した画面上で、コンポーネント同士の関連を定義したり、修正したりするだけで、開発者はモデルを設計できる。この手法は、コンポーネントベースのMDDと称される。例えば、SysML(OMG Systems Modeling Language)におけるブロック図は、コンポーネントベースのMDDに類するものである。
また、プログラムの品質を安定的に評価することで、ソフトウェア開発を支援する技術も存在する。この技術は、評価対象となるプログラムと比較対象となるプログラムについて、それぞれのソースコードを解析し、プログラムの規模や複雑さの尺度として用いられるメトリックス(Metrics)を測定する。そして、それぞれのメトリックスの差分と比較対象となるプログラムの品質とに基づいて、評価対象となるプログラムの品質を安定的に評価する。
また、プログラムの生成を容易にすることで、ソフトウェア開発を支援する技術も存在する。この技術は、ソースコードの雛形を予め用意しておき、プログラムの生成に必要な種々のパラメータを雛形に入力することで、高度な知識を必要とせずにプログラムを容易に生成する。
特開2003−29970号公報 国際公開第2005/020070号
ところで、上記従来技術においてモデルを設計する際に、コンパイル後の最終的なプログラムのサイズを出力すれば、有用であると考えられる。例えば、開発者がGUI操作でコンポーネントを修正する度に、修正により変化する最終的なプログラムのサイズを出力することで、開発者はソフトウェアのサイズ仕様を満たすか否かを考慮しながらモデルを設計できると考えられる。
しかしながら、上記従来技術では、最終的なプログラムのサイズを出力するためには、ソースコードの自動生成とコンパイルという時間がかかる処理の実行を要した。具体的には、ソースコードの自動生成とコンパイルの実行に数分間を要するため、開発者がコンポーネントを修正する度に最終的なプログラムのサイズを確認すると、開発効率が低下していた。
開示の技術は、上記に鑑みてなされたものであって、プログラムのサイズを出力することができる開発支援プログラム、開発支援方法及び開発支援装置を提供することを目的とする。
本願の開示する開発支援プログラムは、一つの態様において、複数のコンポーネントを組み合わせて設計されるモデルにより生成されるプログラムのサイズを推定するための開発支援プログラムであって、コンピュータに、次の各処理を実行させる。すなわち、コンピュータに、第1のモデルに含まれるパラメータである変数、ポートおよびメソッドのうち一つまたは複数のパラメータと、前記パラメータの増減に対する、前記第1のモデルにより生成されるプログラムのサイズの増減値とを対応付けた対応情報を記憶する対応情報記憶部を参照し、第2のモデルに含まれる各パラメータの個数に基づいて、前記第2のモデルにより生成されるプログラムのサイズを推定する処理を実行させる。また、コンピュータに、前記サイズを推定する処理により推定されたサイズを出力する処理を実行させる。
本願の開示する技術の一つの態様によれば、プログラムのサイズを出力することができるという効果を奏する。
図1は、実施例1に係る開発支援装置の構成の一例を示すブロック図である。 図2は、コンポーネントを設計するためのデータの一例を示す図である。 図3は、コンポーネントを配置するためのデータの一例を示す図である。 図4は、統計情報テーブルが記憶するデータの一例を示す図である。 図5は、分析結果テーブルが記憶するデータの一例を示す図である。 図6は、増減情報テーブルが記憶するデータの一例を示す図である。 図7は、出力制御部により出力される情報の一例を示す図である。 図8は、本実施例1に係る分析結果テーブルを生成する処理手順を示すフローチャートである。 図9は、本実施例1に係るサイズを推定する処理手順を示すフローチャートである。 図10は、実施例2に係る開発支援装置の構成の一例を示すブロック図である。 図11は、統計情報テーブルが記憶するデータの一例を示す図である。 図12は、分析結果テーブルが記憶するデータの一例を示す図である。 図13は、増減情報テーブルが記憶するデータの一例を示す図である。 図14は、統計情報テーブルが記憶するデータの一例を示す図である。 図15は、分析結果テーブルが記憶するデータの一例を示す図である。 図16は、増減情報テーブルが記憶するデータの一例を示す図である。 図17は、開発支援プログラムを実行するコンピュータの一例を示す図である。
以下に、本願の開示する開発支援プログラム、開発支援方法及び開発支援装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
実施例1に係る開発支援装置の一例について説明する。実施例1に係る開発支援装置は、例えば、コンポーネントベースのモデル駆動型開発(MDD:Model Driven Development)を実現する機能を有する。コンポーネントとは、ある機能を提供するための一群の構成要素を一つにまとめた、プログラムの部品に相当するものである。実施例1では、コンポーネントベースのMDDにおいて処理対象となるモデルが修正された際に、修正後のモデルにより生成される最終的なプログラムのサイズを出力する場合を説明する。
本実施例1に係る開発支援装置の構成の一例について説明する。図1は、実施例1に係る開発支援装置の構成の一例を示すブロック図である。図1に示すように、この開発支援装置100は、記憶部110と、制御部120とを有する。また、開発支援装置100は、入力装置101と出力装置102とに接続される。
入力装置101は、各種情報の入力を受け付ける。例えば、入力装置101は、ユーザからコンポーネントのデータやコンポーネントの修正指示などの入力を受け付ける。例えば、入力装置101は、キーボードやマウスなどに対応する。出力装置102は、各種情報を出力する。例えば、出力装置102は、コンポーネントの配置を示す図やポップアップウインドウなどを出力する。例えば、出力装置102は、ディスプレイやモニタなどに対応する。
記憶部110は、コンポーネントデータ111と、統計情報テーブル112と、分析結果テーブル113と、増減情報テーブル114とを有する。記憶部110は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、ハードディスクや光ディスクなどの記憶装置に対応する。なお、記憶部110は、対応情報記憶部の一例である。
コンポーネントデータ111は、モデルに含まれる各コンポーネントのデータである。例えば、コンポーネントデータ111は、処理対象となるモデルについて、コンポーネントを設計するためのデータやコンポーネントを配置するためのデータを含む。
図2は、コンポーネントを設計するためのデータの一例を示す図である。図2に示す例では、コンポーネントを設計するためのデータが出力装置102の画面に表示された場合を例として説明する。図2に示すように、例えば、表示画面2aには、コンポーネントを設計する構成要素として、データ2bと、データ2cと、データ2dと、データ2eとが表示される。データ2bは、他のコンポーネントとデータを送受信するためのポート2fを含む。データ2cは、データ2bがコンポーネントである旨を定義するためのメタ要素であり、データ2bからの汎化によりコンポーネントである旨を定義する。データ2dは、データ2eがインターフェイスである旨を定義するためのメタ要素であり、データ2eからの汎化によりインターフェイスである旨を定義する。データ2eは、データ2cのポート2fが送受信するデータのインターフェイスであり、ポート2fが送受信するデータを定義する。データ2bに記述された命令文2gは、変数が1つ存在することを表す。データ2bに記述された命令文2hは、ポートが1つ存在することを表す。データ2bに記述された命令文2iは、メソッドが1つ存在することを表す。コンポーネントを設計するためのデータは、例えば、XML(Extensible Markup Language)フォーマットにより記述される。図2では、光センサのコンポーネントを設計するためのデータを例示する。
図3は、コンポーネントを配置するためのデータの一例を示す図である。図3に示す例では、コンポーネントを配置するためのデータが画面に表示された場合を例として説明する。図3に示すように、表示画面3aには、複数のコンポーネント3bが表示される。コンポーネント3bは、図2に示したデータをインスタンス化したものに対応する。コンポーネント3b同士の関連は、各コンポーネント3bのポート3cを繋ぐことにより定義される。コンポーネントを配置するためのデータは、例えば、XML(Extensible Markup Language)フォーマットにより記述される。なお、図2に示したコンポーネントを設計するためのデータや、図3に示したコンポーネントを配置するためのデータが、処理対象となるモデルに対応する。また、コンポーネントは、部品とも称される。
統計情報テーブル112は、モデルに含まれる各コンポーネントのサイズと、各コンポーネントに含まれる各パラメータの個数とを対応付けて記憶する。図4は、統計情報テーブルが記憶するデータの一例を示す図である。図4に示すように、この統計情報テーブル112は、「コンポーネントID」と、「バイナリサイズ」と、「変数の数」と、「ポート数」と、「メソッド数」とを対応付けて記憶する。ここで、コンポーネントIDは、モデルに含まれる各コンポーネントを一意に識別する識別情報を示す。また、バイナリサイズは、処理対象となるモデルを基にソースコード自動生成とコンパイルとを実行した場合に、各コンポーネントから生成されるプログラムの実サイズを示す。このバイナリサイズは、後述する集計部121によりコンパイラなどの外部装置から別途取得され、統計情報テーブル112に格納される。また、変数の数は、各コンポーネントに含まれる変数の数を示す。また、ポート数は、各コンポーネントに含まれるポートの数を示す。また、メソッド数は、各コンポーネントに含まれるメソッドの数を示す。
例えば、統計情報テーブル112は、図4に示すように、処理対象となるモデルについて、コンポーネントID「コンポーネントA」と、バイナリサイズ「1707」と、変数の数「3」と、ポート数「1」と、メソッド数「1」とを対応付けて記憶する。つまり、統計情報テーブル112は、コンポーネントAのバイナリサイズが1707バイトであり、コンポーネントAが3つの変数と、1つのポートと、1つのメソッドとを含むことを記憶する。また、統計情報テーブル112は、他のコンポーネントについても同様に、「コンポーネントID」と、「バイナリサイズ」と、「変数の数」と、「ポート数」と、「メソッド数」とを対応付けて記憶する。
分析結果テーブル113は、モデルに含まれるパラメータと、各パラメータの増減に対するプログラムのサイズの増減値とを対応付けて記憶する。図5は、分析結果テーブルが記憶するデータの一例を示す図である。図5に示すように、分析結果テーブル113は、「パラメータ」と、「バイナリサイズ増減値」とを対応付けて記憶する。ここで、パラメータは、モデルに含まれるパラメータを示し、例えば、変数、ポート及びメソッドに対応する。また、分析結果テーブル113は、パラメータとは別に、切片の値を有する。この切片の値は、パラメータ以外の命令文などにより必要となるバイナリサイズに対応する。また、バイナリサイズ増減値は、各パラメータの増減に対する、コンパイル後のプログラムのサイズの増減値を示す。
例えば、分析結果テーブル113は、図5に示すように、パラメータ「変数」と、バイナリサイズ増減値「199.6」とを対応付けて記憶する。つまり、分析結果テーブル113は、モデルに含まれる変数が1つ増加するとバイナリサイズが199.6バイト増加することを記憶し、モデルに含まれる変数が1つ減少するとバイナリサイズが199.6バイト減少することを記憶する。また、分析結果テーブル113は、他のパラメータや切片についても同様に、「バイナリサイズ増減値」を記憶する。なお、分析結果テーブル113は、対応情報の一例である。
増減情報テーブル114は、モデルに含まれる各パラメータの増減数と、各パラメータの増減数に基づいて推定されるプログラムのサイズの増減値とを記憶する。図6は、増減情報テーブルが記憶するデータの一例を示す図である。図6に示すように、増減情報テーブル114は、「コンポーネントID」と、「バイナリサイズ予測増減値」と、「変数増減数」と、「ポート増減数」と、「メソッド増減数」とを対応付けて記憶する。ここで、バイナリサイズ予測増減値は、修正後のモデルの各コンポーネントに含まれるパラメータの個数に基づいて推定されるプログラムのサイズの増減値を示す。また、変数増減数は、修正後のモデルの各コンポーネントに含まれる変数の増減数を示す。ポート増減数は、修正後のモデルの各コンポーネントに含まれるポートの増減数を示す。メソッド増減数は、修正後のモデルの各コンポーネントに含まれるメソッドの増減数を示す。
例えば、増減情報テーブル114は、図6に示すように、コンポーネントID「コンポーネントA」と、バイナリサイズ予測増減値「+200」と、変数増減数「+1」と、ポート増減数「±0」と、メソッド増減数「±0」とを対応付けて記憶する。つまり、増減情報テーブル114は、モデルの修正によりコンポーネントAの変数が1つ増加し、バイナリサイズが約200バイト増加すると推定されることを記憶する。また、増減情報テーブル114は、他のコンポーネントについても同様に、「コンポーネントID」と、「バイナリサイズ予測増減値」と、「変数増減数」と、「ポート増減数」と、「メソッド増減数」とを対応付けて記憶する。
制御部120は、集計部121と、分析部122と、設計部123と、計算部124と、出力制御部125とを有する。制御部120は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路に対応する。または、制御部120は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積装置に対応する。
集計部121は、コンポーネントに含まれる各パラメータの個数を集計する。例えば、集計部121は、処理対象となるモデルについて、コンポーネントデータ111に含まれる変数の数、ポート数及びメソッド数をそれぞれ集計する。また、集計部121は、処理対象となるモデルを基にソースコード自動生成装置とコンパイラにより生成されたプログラムについて、図示しないコンパイラなどから各コンポーネントのバイナリサイズを別途取得する。そして、集計部121は、処理対象となるモデルに含まれる各コンポーネントのコンポーネントIDと、バイナリサイズと、変数の数と、ポート数と、メソッド数とを対応付けて統計情報テーブル112に格納する。
分析部122は、各コンポーネントのバイナリサイズを目的変数とし、かつ、コンポーネントに含まれる各パラメータの個数を説明変数とする回帰分析を実行する。例えば、分析部122は、図4に示した統計情報テーブル112から各コンポーネントのバイナリサイズと、変数の数と、ポート数と、メソッド数とを読み出す。そして、分析部122は、バイナリサイズを目的変数「Y」とし、変数の数を説明変数「X」とし、ポート数を説明変数「X」とし、メソッド数を説明変数「X」とする回帰分析を実行する。この回帰分析には、例えば、最小二乗法が用いられる。つまり、分析部122は、例えば、目的変数を説明変数で表す回帰式を設定する。分析部122は、回帰式により求まる目的変数の推定値と、目的変数の測定値との差の2乗平均が最小になるように、回帰式の係数を算出する。分析部122は、回帰分析を実行することにより、例えば、下記の予測式(1)を導出する。
Y=199.6*X+56.1*X+109.4*X+542.6・・・(1)
ここで、Xの係数「199.6」は、変数の増減に対するバイナリサイズ増減値に対応する。また、Xの係数「56.1」は、ポートの増減に対するバイナリサイズ増減値に対応する。また、Xの係数「109.4」は、メソッドの増減に対するバイナリサイズ増減値に対応する。また、切片「542.6」は、パラメータ以外の命令文などにより必要となるバイナリサイズに対応する。なお、上記の予測式(1)は、分析部122により導出される予測式の一例である。
また、分析部122は、回帰分析の結果から分析結果テーブル113を生成する。例えば、分析部122は、パラメータ「変数」と、変数の増減に対するバイナリサイズ増減値「199.6」とを対応付けて分析結果テーブル113に格納する。また、分析部122は、他のパラメータや切片についても同様に、パラメータ又は切片と、バイナリサイズ増減値とを対応付けて分析結果テーブル113に格納する。なお、分析部122は、格納部の一例である。
設計部123は、ユーザから入力装置101を介して入力を受け付けて、モデルを設計する。例えば、設計部123は、設計するコンポーネントを指定する旨の入力をユーザから受け付けて、モデルとしてコンポーネントデータ111を生成する。そして、設計部123は、生成したコンポーネントデータ111を記憶部110に格納する。
また、設計部123は、ユーザから入力装置101を介して入力を受け付けて、モデルを修正し、修正後のモデルに含まれる各パラメータの増減数を集計する。例えば、設計部123は、ユーザからモデルを修正する旨の命令を受け付けて、記憶部110に記憶されたコンポーネントデータ111を読み出し、読み出したコンポーネントデータ111を修正する。具体的には、例えば、設計部123は、ユーザにより指定されたコンポーネントごとに変数、ポート及びメソッドを追加する旨の命令や削減する旨の命令を受け付ける。また、設計部123は、コンポーネントを新規に追加する旨の命令や削除する旨の命令をユーザから受け付ける。設計部123は、受け付けた命令にしたがってコンポーネントデータ111を修正する。そして、設計部123は、修正後のモデルに含まれる各パラメータの増減数やコンポーネントの増減数を集計し、集計した各パラメータの増減数やコンポーネントの増減数を計算部124に出力する。
計算部124は、分析結果テーブル113を参照し、モデルに含まれる各パラメータの増減数に基づいて、モデルにより生成されるプログラムのサイズを計算する。例えば、計算部124は、修正後のモデルに含まれる各パラメータの増減数やコンポーネントの増減数を設計部123から受け付けた場合に、分析結果テーブル113を参照し、修正後のモデルにより生成されるプログラムのサイズを計算する。
例えば、計算部124は、コンポーネントAについて変数増減数「+1」を設計部123から受け付けた場合には、分析結果テーブル113を参照し、バイナリサイズが約200バイト増加するとバイナリサイズ予測増減値を計算する。そして、計算部124は、コンポーネントAのバイナリサイズ予測増減値「+200」と、変数増減数「+1」とを対応付けて増減情報テーブル114に格納する。また、例えば、計算部124は、新規に追加されたコンポーネントEの増減数「+1」を設計部123から受け付けた場合には、分析結果テーブル113を参照し、バイナリサイズが約543バイト増加するとバイナリサイズ予測増減値を計算する。そして、計算部124は、新規に追加されたコンポーネントEに対応付けてバイナリサイズ予測増減値「+543」を増減情報テーブル114に格納する。また、計算部124は、各パラメータの増減数やコンポーネントの増減数を設計部123から受け付けるごとに、バイナリサイズ予測増減値を計算し、増減情報テーブル114を更新する。なお、計算部124は、推定部の一例である。
出力制御部125は、計算部124により計算されたモデルにより生成されるプログラムのサイズを出力装置102から出力する。例えば、出力制御部125は、プログラムの設計仕様として要求されるサイズ仕様を予め保持する記憶部110からサイズ仕様を取得する。出力制御部125は、モデルが修正されるごとに、修正後のモデルのバイナリサイズ予測増減値を増減情報テーブル114から取得し、かつ、修正前のモデルにより生成されるプログラムのサイズを統計情報テーブル112から取得する。そして、出力制御部125は、修正後のモデルのバイナリサイズ予測増減値と修正前のサイズとを加算し、加算した値がサイズ仕様を満たすか否かを判定する。サイズ仕様を満たさないと判定した場合に、出力制御部125は、サイズ仕様を満たさない旨の情報を出力装置102から出力する。
図7は、出力制御部により出力される情報の一例を示す図である。図7に示すように、モデルの修正によりコンポーネント7aに命令文7bが追加されると、出力制御部125は、増減情報テーブル114と統計情報テーブル112とを参照する。出力制御部125は、命令文7bの追加により増加したバイナリサイズ予測増減値と修正前のサイズとを加算し、加算した値がサイズ仕様を満たすか否かを判定する。そして、出力制御部125は、サイズ仕様を満たさないと判定すると、メッセージボックス7cを出力装置102から出力する。なお、出力制御部125による出力方法は、上記の方法に限定されるものではない。例えば、出力制御部125は、モデルの修正により追加された命令文の付近に、修正によるバイナリサイズ予測増減値を出力するようにしても良い。また、出力制御部125は、出力部の一例である。
次に、本実施例1に係る分析結果テーブルを生成する処理手順について説明する。図8は、本実施例1に係る分析結果テーブルを生成する処理手順を示すフローチャートである。分析結果テーブルを生成する処理は、例えば、処理対象となるモデルのコンポーネントデータ111が記憶部110に格納されたことを契機として開始される。また、分析結果テーブルを生成する処理は、例えば、開発支援装置100を利用するユーザが指定した時点で開始される。
図8に示すように、集計部121は、処理タイミングになると(ステップS101Yes)、各コンポーネントのパラメータをコンポーネントデータ111から取得し、各コンポーネントのバイナリサイズをコンパイラなどから別途取得する。そして、集計部121は、取得した各コンポーネントのパラメータとバイナリサイズとを統計情報テーブル112に格納する(ステップS102)。
分析部122は、各コンポーネントのバイナリサイズを目的変数とし、かつ、コンポーネントに含まれる各パラメータの個数を説明変数とする回帰分析を実行する(ステップS103)。そして、分析部122は、回帰分析の結果から分析結果テーブル113を生成する(ステップS104)。
次に、本実施例1に係るサイズを推定する処理手順について説明する。図9は、本実施例1に係るサイズを推定する処理手順を示すフローチャートである。サイズを推定する処理は、例えば、設計部123がユーザからモデルを修正する旨の命令を受け付けたことを契機として開始される。
図9に示すように、設計部123は、ユーザからモデルを修正する旨の命令を受け付けると(ステップS201Yes)、修正後のモデルに含まれる各パラメータの増減数やコンポーネントの増減数を集計し、計算部124に出力する(ステップS202)。
計算部124は、分析結果テーブル113を参照し、修正後のモデルに含まれる各パラメータの増減数やコンポーネントの増減数に基づいて、修正後のモデルにより生成されるプログラムのサイズを計算する(ステップS203)。そして、出力制御部125は、計算部124により計算されたモデルにより生成されるプログラムのサイズを出力装置102から出力する(ステップS204)。
上述してきたように、本実施例1に係る開発支援装置100は、モデルに含まれるパラメータである変数、ポートおよびメソッドのうち一つまたは複数のパラメータと、パラメータの増減に対するプログラムのサイズの増減値とを対応付けた対応情報を記憶する。開発支援装置100は、対応情報を参照し、モデルに含まれる各パラメータの個数に基づいて、モデルにより生成されるプログラムのサイズを推定し、推定したサイズを出力する。このため、開発支援装置100を利用する開発者は、例えば、ソフトウェアのサイズ仕様を満たすか否かを考慮しながらモデルを設計することができる。特に、開発者は、モデルを修正するごとに、修正後のモデルにより生成されるプログラムのサイズを速やかに確認でき、ソフトウェアのサイズ仕様を満たすか否かを考慮しながらモデルを設計することができる。
また、開発支援装置100は、処理対象となるモデルについて回帰分析を実行し、回帰分析の結果から対応情報を生成する。開発支援装置100は、処理対象となるモデルが修正される度に、生成した対応情報を参照し、修正後のモデルに含まれる変数の個数、メソッド数及びポート数に基づいて、最終的なプログラムのサイズを推定し、プログラムのサイズを出力する。このため、開発支援装置100は、精度よく推定された最終的なプログラムのサイズを出力することができる。
実施例1では、開発支援装置100が、処理対象となるモデルに基づいて分析結果テーブル113を生成した後に、同一のモデルの修正に対して分析結果テーブル113を適用して最終的なプログラムのサイズを出力する場合を説明した。しかしながら、本発明はこれに限定されるものではない。例えば、所定のモデルに基づいて生成された分析結果テーブル113は、所定のモデルと同様のメタモデルを用いて設計された他のモデルに対して適用されても良い。つまり、開発支援装置100が記憶する分析結果テーブル113は、既存のモデルに基づいて予め生成されても良く、コンポーネントベースのMDDを提供する開発環境ベンダーにより与えられても良い。
すなわち、図1に示した開発支援装置100は、必ずしも図1に示した各処理部を全て有していなくても良い。例えば、図10に示すように、開発支援装置200は、対応情報記憶部210と、推定部220と、出力部230とを有していれば良い。図10は、実施例2に係る開発支援装置の構成の一例を示すブロック図である。
開発支援装置200は、入力装置101と出力装置102とに接続される。なお、図10に示す入力装置101と出力装置102の説明は、図1に示した入力装置101と出力装置102の説明にそれぞれ対応する。
対応情報記憶部210は、対応情報を記憶する。この対応情報は、モデルに含まれるパラメータである変数、ポート及びメソッドのうち一つ又は複数のパラメータと、パラメータの増減に対する、モデルにより生成されるプログラムのサイズの増減値とを対応付けた情報である。なお、対応情報は、例えば、図5に示した分析結果テーブル113に対応する。
推定部220は、対応情報記憶部210に記憶された対応情報を参照し、入力装置101により入力されたモデルに含まれる各パラメータの個数に基づいて、モデルにより生成されるプログラムのサイズを推定する。例えば、推定部220は、入力装置101により入力された処理対象となるモデルに含まれるコンポーネントの個数や各パラメータの個数を集計する。そして、推定部220は、対応情報を参照し、集計したコンポーネントの個数や各パラメータの個数に基づいて、処理対象となるモデルにより生成されるプログラムのサイズを推定する。
ここで、推定部220が対応情報として図5に示した分析結果テーブル113を用いてプログラムのサイズを推定する場合を説明する。例えば、推定部220は、処理対象となるモデルに含まれるコンポーネントID「コンポーネントA」が、変数の数「3」と、ポート数「1」と、メソッド数「1」とを有する場合には、以下のように処理を実行する。すなわち、推定部220は、各パラメータや切片に対応するバイナリサイズ増減値を対応情報から取得する。そして、推定部220は、切片に基づくサイズ「542.6」と、変数の数に基づくサイズ「199.6×3」と、ポート数に基づくサイズ「56.1×1」と、メソッド数に基づくサイズ「109.4×1」とを加算する。この結果、推定部220は、コンポーネントAのサイズ「1306.9」を算出する。また、推定部220は、モデルに含まれる他のコンポーネントについても同様にコンポーネントごとのサイズを推定する。そして、推定部220は、推定したコンポーネントごとのサイズを加算し、処理対象となるモデルにより生成されるプログラムのサイズを推定する。なお、推定部220は、例えば、図1に示した計算部124に対応する。
出力部230は、推定部220により推定されたサイズを出力装置102に出力する。例えば、出力部230は、推定部220により推定された処理対象となるモデルにより生成されるプログラムのサイズが、プログラムのサイズ仕様を満たすか否かを判定する。サイズ仕様を満たさないと判定した場合に、出力部230は、サイズ仕様を満たさない旨の情報を出力装置102に出力する。なお、出力部230は、例えば、図1に示した出力制御部125に対応する。
このように、本実施例2に係る開発支援装置200は、モデルに含まれるパラメータである変数、ポートおよびメソッドのうち一つまたは複数のパラメータと、パラメータの増減に対するプログラムのサイズの増減値とを対応付けた対応情報を記憶する。開発支援装置200は、対応情報を参照し、モデルに含まれる各パラメータの個数に基づいて、モデルにより生成されるプログラムのサイズを推定し、推定したサイズを出力する。このため、開発支援装置200を利用する開発者は、例えば、ソフトウェアのサイズ仕様を満たすか否かを考慮しながらモデルを設計することができる。特に、開発者は、新規に設計したモデルについて、ソースコード自動生成やコンパイルを実行することなく最終的なプログラムのサイズを速やかに確認でき、ソフトウェアのサイズ仕様を満たすか否かを考慮しながらモデルを設計することができる。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、その他の実施例にて実施されても良い。そこで、以下では、その他の実施例について説明する。
例えば、上述した実施例では、開発支援装置100,200は、モデルに含まれるパラメータとして、変数、ポート及びメソッドを利用すると説明したが、本発明はこれに限定されるものではない。例えば、開発支援装置100,200は、変数、ポート及びメソッドのうち、いずれか一つまたは複数のパラメータを利用しても良い。また、例えば、開発支援装置100,200は、上記のパラメータ以外にも、他のパラメータを利用しても良い。例えば、開発支援装置100,200は、変数のうち、整数で表される変数である整数型変数と、浮動小数点で表される変数である浮動小数点型変数とをそれぞれ異なるパラメータとして利用しても良い。また、例えば、開発支援装置100,200は、ポートのうち、定期的にデータを送受信する定期送受信ポートと、イベントごとにデータを送受信するイベント送受信ポートをそれぞれ異なるパラメータとして利用しても良い。
以下において、開発支援装置100が他のパラメータを利用する場合を説明する。この開発支援装置100は、図1に示した開発支援装置100と基本的には同様の構成であるが、統計情報テーブル112と、分析結果テーブル113と、増減情報テーブル114とが他のパラメータに関する情報を記憶する点が異なる。ここでは、開発支援装置100が他のパラメータとして整数型変数と浮動小数点型変数とを利用する場合を説明する。
図11は、統計情報テーブルが記憶するデータの一例を示す図である。図11に示すように、この統計情報テーブル112は、「コンポーネントID」と、「バイナリサイズ」と、「整数型変数の数」と、「浮動小数点型変数の数」と、「ポート数」と、「メソッド数」とを対応付けて記憶する。ここで、整数型変数の数は、各コンポーネントに含まれる整数型変数の数を示す。また、浮動小数点型変数の数は、各コンポーネントに含まれる浮動小数点型変数の数を示す。
図11に示すように、例えば、統計情報テーブル112は、コンポーネントID「コンポーネントA」と、バイナリサイズ「1707」と、整数型変数の数「2」と、浮動小数点型変数の数「1」と、ポート数「1」と、メソッド数「1」とを対応付けて記憶する。
つまり、統計情報テーブル112は、コンポーネントAのバイナリサイズが1707バイトであり、コンポーネントAが2つの整数型変数と、1つの浮動小数点型変数と、1つのポートと、1つのメソッドとを含むことを記憶する。また、統計情報テーブル112は、他のコンポーネントについても同様に、「コンポーネントID」と、「バイナリサイズ」と、「整数型変数の数」と、「浮動小数点型変数の数」と、「ポート数」と、「メソッド数」とを対応付けて記憶する。
図12は、分析結果テーブルが記憶するデータの一例を示す図である。図12に示すように、分析結果テーブル113が記憶する対応情報は、「パラメータ」と、「バイナリサイズ増減値」とを対応付けて記憶する。ここで、パラメータは、モデルに含まれるパラメータを示し、例えば、整数型変数、浮動小数点型変数、ポート及びメソッドに対応する。また、分析結果テーブル113は、パラメータとは別に、切片の値を有する。また、バイナリサイズ増減値は、各パラメータの増減に対する、コンパイル後のプログラムのサイズの増減値を示す。
図12に示すように、例えば、分析結果テーブル113は、「整数型変数」と、「50.2」とを対応付けて記憶する。つまり、分析結果テーブル113は、モデルに含まれる整数型変数が1つ増加するとバイナリサイズが50.2バイト増加することを記憶し、モデルに含まれる整数型変数が1つ減少するとバイナリサイズが50.2バイト減少することを記憶する。また、分析結果テーブル113は、他のパラメータや切片についても同様に、「バイナリサイズ増減値」を記憶する。
図13は、増減情報テーブルが記憶するデータの一例を示す図である。図13に示すように、増減情報テーブル114は、「コンポーネントID」と、「バイナリサイズ予測増減値」と、「整数型変数増減数」と、「浮動小数点型変数増減数」と、「ポート増減数」と、「メソッド増減数」とを対応付けて記憶する。ここで、整数型変数増減数は、修正後のモデルの各コンポーネントに含まれる整数型変数の増減数を示す。また、浮動小数点型変数増減数は、修正後のモデルの各コンポーネントに含まれる浮動小数点型変数の増減数を示す。
図13に示すように、例えば、増減情報テーブル114は、コンポーネントID「コンポーネントA」と、バイナリサイズ予測増減値「+50」とを対応付けて記憶する。また、増減情報テーブル114は、コンポーネントID「コンポーネントA」と、整数型変数増減数「+1」と、浮動小数点型変数増減数「±0」と、ポート増減数「±0」と、メソッド増減数「±0」とを対応付けて記憶する。つまり、増減情報テーブル114は、モデルの修正によりコンポーネントAの整数型変数増減数が1つ増加し、バイナリサイズが約50バイト増加すると推定されることを記憶する。また、増減情報テーブル114は、他のコンポーネントについても同様に「コンポーネントID」と、「バイナリサイズ予測増減値」と、「整数型変数増減数」と、「浮動小数点型変数増減数」と、「ポート増減数」と、「メソッド増減数」とを対応付けて記憶する。
すなわち、開発支援装置100が他のパラメータを利用する場合には、開発支援装置100が有する各処理部は、図11,12,13に示したテーブルを用いて、以下のように処理を実行する。集計部121は、処理対象となるモデルについて、コンポーネントデータ111に含まれる整数型変数の数、浮動小数点型変数の数、ポート数及びメソッド数をパラメータとしてそれぞれ集計し、集計した情報を図11に示した統計情報テーブル112に格納する。分析部122は、図11に示した統計情報テーブル112から各コンポーネントのバイナリサイズと、各パラメータとを読み出し、回帰分析を実行する。分析部122は、回帰分析の結果から図12に示した分析結果テーブル113を生成する。計算部124は、修正後のモデルに含まれる各パラメータの増減数やコンポーネントの増減数を設計部123から受け付けた場合に、図12に示した分析結果テーブル113を参照し、修正後のモデルにより生成されるプログラムのサイズを計算する。計算部124は、各パラメータの増減数やコンポーネントの増減数を設計部123から受け付けるごとに、バイナリサイズ予測増減値を計算し、図13に示した増減情報テーブル114を更新する。出力制御部125は、計算部124により計算されたモデルにより生成されるプログラムのサイズを出力装置102から出力する。
このように、開発支援装置100は、変数に含まれるパラメータである整数型変数および浮動小数点型変数と、各パラメータの増減に対する、前記モデルにより生成されるプログラムのサイズの増減値とを対応付けた対応情報を記憶する。そして、開発支援装置100は、記憶した対応情報を参照し、モデルにより生成されるプログラムのサイズを推定する。このため、開発支援装置100は、処理対象となるモデルにより生成されるプログラムのサイズを高精度に推定することができる。
また、例えば、上述した実施例では、処理対象となるモデルのコンポーネントデータ111において、コンポーネント同士の関連がポートを繋ぐことにより定義される場合を説明したが、本発明はこれに限定されるものではない。例えば、コンポーネントデータ111は、コンポーネント同士の関連として、所定のコンポーネントの機能が他のコンポーネントに継承される継承関係を含んでも良い。
以下において、開発支援装置100の処理対象となるモデルのコンポーネントデータ111に、コンポーネントAの機能がコンポーネントCに継承される継承関係が含まれる場合を説明する。この開発支援装置100は、図1に示した開発支援装置100と基本的には同様の構成であるが、統計情報テーブル112と、分析結果テーブル113と、増減情報テーブル114とが継承関係についての情報を記憶する点が異なる。なお、上記の継承関係においては、コンポーネントAは「親」とも称され、コンポーネントCは「子」とも称される。
図14は、統計情報テーブルが記憶するデータの一例を示す図である。図14に示すように、この統計情報テーブル112は、「コンポーネントID」と、「バイナリサイズ」と、「変数の数」と、「ポート数」と、「メソッド数」と、「仮想関数」とを対応付けて記憶する。ここで、仮想関数は、該当するコンポーネントが他のコンポーネントに継承されるか否かを示す値であり、「0」又は「1」を有する。仮想関数「0」は、該当するコンポーネントが他のコンポーネントに継承されないことを示し、仮想関数「1」は、該当するコンポーネントが一つ又は複数の他のコンポーネントに継承されることを示す。つまり、「親」となるコンポーネントは、一つ又は複数の「子」となるコンポーネントに継承される場合に、仮想関数「1」を有する。なお、仮想関数により増減するバイナリサイズは、例えば、「親」となるコンポーネントが一つ又は複数の「子」となるコンポーネントを管理するためのテーブルのサイズに相当する。
図14に示すように、例えば、統計情報テーブル112は、コンポーネントID「コンポーネントA」と、バイナリサイズ「1707」と、変数の数「3」と、ポート数「1」と、メソッド数「1」と、仮想関数「1」とを対応付けて記憶する。つまり、統計情報テーブル112は、コンポーネントAのバイナリサイズが1707バイトであり、コンポーネントAが3つの変数と、1つのポートと、1つのメソッドとを含むことを記憶する。また、統計情報テーブル112は、他のコンポーネントに継承されることを記憶する。また、統計情報テーブル112は、他のコンポーネントについても同様に、「コンポーネントID」と、「バイナリサイズ」と、「変数の数」と、「ポート数」と、「メソッド数」と、「仮想関数」とを対応付けて記憶する。
図15は、分析結果テーブルが記憶するデータの一例を示す図である。図15に示すように、分析結果テーブル113が記憶する対応情報は、「パラメータ」と、「バイナリサイズ増減値」とを対応付けて記憶する。ここで、パラメータは、モデルに含まれるパラメータを示し、例えば、変数、ポート、メソッド及び仮想関数に対応する。また、分析結果テーブル113は、パラメータとは別に、切片の値を有する。また、バイナリサイズ増減値は、各パラメータの増減に対する、コンパイル後のプログラムのサイズの増減値を示す。
図15に示すように、例えば、分析結果テーブル113は、「仮想関数」と、「550.1」とを対応付けて記憶する。つまり、分析結果テーブル113は、モデルに含まれる仮想関数が1つ増加するとバイナリサイズが550.1バイト増加することを記憶し、モデルに含まれる仮想関数が1つ減少するとバイナリサイズが550.1バイト減少することを記憶する。また、分析結果テーブル113は、他のパラメータや切片についても同様に、「バイナリサイズ増減値」を記憶する。
図16は、増減情報テーブルが記憶するデータの一例を示す図である。図16では、コンポーネントBの機能が新規のコンポーネントEに継承された場合を説明する。図16に示すように、増減情報テーブル114は、「コンポーネントID」と、「バイナリサイズ予測増減値」と、「変数増減数」と、「ポート増減数」と、「メソッド増減数」と、「仮想関数増減数」とを対応付けて記憶する。ここで、仮想関数増減数は、修正後のモデルの各コンポーネントに含まれる仮想関数の増減数を示す。
図16に示すように、例えば、増減情報テーブル114は、「コンポーネントB」と、バイナリサイズ予測増減値「+550」と、変数増減数「±0」と、ポート増減数「±0」と、メソッド増減数「±0」と、仮想関数「+1」を対応付けて記憶する。つまり、増減情報テーブル114は、モデルの修正によりコンポーネントBの仮想関数増減数が1つ増加し、バイナリサイズが約550バイト増加すると推定されることを記憶する。また、増減情報テーブル114は、例えば、「コンポーネントE」と、バイナリサイズ予測増減値「+543」と、変数増減数「±0」と、ポート増減数「±0」と、メソッド増減数「±0」と、仮想関数「±0」を対応付けて記憶する。つまり、増減情報テーブル114は、モデルの修正によりコンポーネントEが追加され、バイナリサイズが約543バイト増加すると推定されることを記憶する。また、増減情報テーブル114は、他のコンポーネントについても同様に「コンポーネントID」と、「バイナリサイズ予測増減値」と、「変数増減数」と、「ポート増減数」と、「メソッド増減数」と、「仮想関数増減数」とを対応付けて記憶する。
すなわち、開発支援装置100の処理対象となるモデルにおいて所定のコンポーネントが他のコンポーネントに継承される場合には、開発支援装置100が有する各処理部は、図14,15,16に示したテーブルを用いて、以下のように処理を実行する。集計部121は、処理対象となるモデルについて、コンポーネントデータ111に含まれる変数の数、ポート数、メソッド数及び仮想関数をパラメータとしてそれぞれ集計し、集計した情報を図14に示した統計情報テーブル112に格納する。分析部122は、図14に示した統計情報テーブル112から各コンポーネントのバイナリサイズと、各パラメータとを読み出し、回帰分析を実行する。分析部122は、回帰分析の結果から図15に示した分析結果テーブル113を生成する。計算部124は、修正後のモデルに含まれる各パラメータの増減数やコンポーネントの増減数を設計部123から受け付けた場合に、図15に示した分析結果テーブル113を参照し、修正後のモデルにより生成されるプログラムのサイズを計算する。計算部124は、各パラメータの増減数やコンポーネントの増減数を設計部123から受け付けるごとに、バイナリサイズ予測増減値を計算し、図16に示した増減情報テーブル114を更新する。出力制御部125は、計算部124により計算されたモデルにより生成されるプログラムのサイズを出力装置102から出力する。
このように、開発支援装置100は、処理対象となるモデルにおいて所定のコンポーネントが他のコンポーネントに継承される場合には、仮想関数と、仮想関数の増減に対するプログラムのサイズの増減値とを対応付けた対応情報を記憶する。開発支援装置100は、記憶した対応情報を参照し、モデルにより生成されるプログラムのサイズを推定する。このため、開発支援装置100は、処理対象となるモデルにより生成されるプログラムのサイズを高精度に推定することができる。
また、例えば、上述した実施例では、開発支援装置100がコンポーネントベースのMDDに適用される場合を説明したが、本発明はこれに限定されるものではない。開発支援装置100がコンポーネントベースのMDDに適用されるのは、コンポーネントを利用することで、コンポーネント同士の関連をデータの送受信のみで表現でき、コンポーネントごとにバイナリサイズとパラメータの個数とを取得できるからである。このため、コンポーネントベースのMDDでは、回帰分析を実行することができ、対応情報を生成することができる。すなわち、開発支援装置100は、コンポーネントと同様に、回帰分析を実行することができる開発手法に適用されても良い。例えば、開発支援装置100は、SysML(OMG Systems Modeling Language)に適用されても良い。
また、本実施例1及び2において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。例えば、図9に示したサイズを推定する処理は、開発支援装置100を利用するユーザが指定した時点で開始されても良い。この他、上述文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、図6に示した増減情報テーブル114は、各コンポーネントのバイナリサイズ予測増減値を集計した値を記憶しても良い。
また、図1,10に示した開発支援装置100,200の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、開発支援装置100,200の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図10に示した記憶部210をサーバに持たせ、係るサーバと開発支援装置200とが協働することで、最終的なプログラムにサイズを推定しても良い。
また、開発支援装置100,200は、開発支援装置100,200の各機能を既知の情報処理装置に搭載することによって実現することもできる。既知の情報処理装置は、例えば、パーソナルコンピュータ、ワークステーション、携帯電話、Personal Handy-phone System(PHS)端末、移動体通信端末またはPersonal Digital Assistant(PDA)などの装置に対応する。
図17は、開発支援プログラムを実行するコンピュータの一例を示す図である。図17に示すように、コンピュータ300は、各種演算処理を実行するCentral Processing Unit(CPU)301と、ユーザからデータの入力を受け付ける入力装置302と、モニタ303とを有する。また、コンピュータ300は、記憶媒体からプログラム等を読み取る媒体読み取り装置304と、他の装置とデータの授受を行うインターフェイス装置305とを有する。また、コンピュータ300は、各種情報を一時記憶するRandom Access Memory(RAM)306と、ハードディスク装置307を有する。また、各装置301〜307は、バス308に接続される。
ハードディスク装置307は、図1、10に示した、集計部121、分析部122、設計部123、計算部124、出力制御部125、推定部220及び出力部230の各処理部と同様の機能を有する開発支援プログラム307aを記憶する。また、ハードディスク装置307は、開発支援プログラム307aを実現するための各種データ307bを記憶する。
CPU301が開発支援プログラム307aをハードディスク装置307から読み出してRAM306に展開して実行することにより、開発支援プログラム307aは、開発支援プロセス306aとして機能する。すなわち、開発支援プログラム307aは、集計部121、分析部122、設計部123、計算部124、出力制御部125、推定部220及び出力部230の各処理部と同様のプロセスとして機能する。
なお、上記の開発支援プログラム307aは、必ずしもハードディスク装置307に記憶されている必要はない。例えば、コンピュータが読み取り可能な記録媒体に記憶されたプログラムを、コンピュータ300が読み出して実行するようにしても良い。コンピュータが読み取り可能な記録媒体は、例えば、CD−ROMやDVDディスク、USBメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、Local Area Network(LAN)、Wide Area Network(WAN)等に接続された装置にこのプログラムを記憶させておき、コンピュータ300がこれらからプログラムを読み出して実行するようにしても良い。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)複数のコンポーネントを組み合わせて設計されるモデルにより生成されるプログラムのサイズを推定するための開発支援プログラムであって、コンピュータに、
第1のモデルに含まれるパラメータである変数、ポートおよびメソッドのうち一つまたは複数のパラメータと、前記パラメータの増減に対する、前記第1のモデルにより生成されるプログラムのサイズの増減値とを対応付けた対応情報を記憶する対応情報記憶部を参照し、第2のモデルに含まれる各パラメータの個数に基づいて、前記第2のモデルにより生成されるプログラムのサイズを推定し、
前記サイズを推定する処理により推定されたサイズを出力する
処理を実行させることを特徴とする開発支援プログラム。
(付記2)前記コンポーネントごとのコンパイル後のサイズを目的変数とし、かつ、前記コンポーネントに含まれる各パラメータの個数を説明変数とする回帰分析を行い、当該回帰分析の結果から前記対応情報を生成し、生成した前記対応情報を前記対応情報記憶部に格納する処理を更にコンピュータに実行させ、
前記サイズを推定する処理は、修正後のモデルに含まれる各パラメータの個数の増減を受け付けた場合に、前記対応情報を格納する処理により格納された前記対応情報を参照し、前記修正後のモデルにより生成されるプログラムのサイズを推定することを特徴とする付記1に記載の開発支援プログラム。
(付記3)前記サイズを推定する処理は、前記第2のモデルにおいて所定のコンポーネントが他のコンポーネントに継承される場合に、前記第1のモデルに含まれる、所定のコンポーネントが他のコンポーネントに継承されることを示すパラメータである仮想関数と、前記仮想関数の増減に対する、前記第1のモデルにより生成されるプログラムのサイズの増減値とを対応付けた対応情報を更に参照し、前記第2のモデルにより生成されるプログラムのサイズを推定することを特徴とする付記1又は2に記載の開発支援プログラム。
(付記4)前記サイズを推定する処理は、前記第1のモデルに含まれる、前記変数に含まれるパラメータである整数型変数および浮動小数点型変数と、各パラメータの増減に対する、前記第1のモデルにより生成されるプログラムのサイズの増減値とを対応付けた対応情報を更に参照し、前記第2のモデルにより生成されるプログラムのサイズを推定することを特徴とする付記1〜3のいずれか一つに記載の開発支援プログラム。
(付記5)複数のコンポーネントを組み合わせて設計されるモデルにより生成されるプログラムのサイズを推定するために、コンピュータによって実行される開発支援方法であって、
第1のモデルに含まれるパラメータである変数、ポートおよびメソッドのうち一つまたは複数のパラメータと、前記パラメータの増減に対する、前記第1のモデルにより生成されるプログラムのサイズの増減値とを対応付けた対応情報を記憶する対応情報記憶部を参照し、第2のモデルに含まれる各パラメータの個数に基づいて、前記第2のモデルにより生成されるプログラムのサイズを推定し、
前記サイズを推定する処理により推定されたサイズを出力する
ことを特徴とする開発支援方法。
(付記6)前記コンポーネントごとのコンパイル後のサイズを目的変数とし、かつ、前記コンポーネントに含まれる各パラメータの個数を説明変数とする回帰分析を行い、当該回帰分析の結果から前記対応情報を生成し、生成した前記対応情報を前記対応情報記憶部に更に格納し、
前記サイズを推定する処理は、修正後のモデルに含まれる各パラメータの個数の増減を受け付けた場合に、前記対応情報を格納する処理により格納された前記対応情報を参照し、前記修正後のモデルにより生成されるプログラムのサイズを推定することを特徴とする付記5に記載の開発支援方法。
(付記7)前記サイズを推定する処理は、前記第2のモデルにおいて所定のコンポーネントが他のコンポーネントに継承される場合に、前記第1のモデルに含まれる、所定のコンポーネントが他のコンポーネントに継承されることを示すパラメータである仮想関数と、前記仮想関数の増減に対する、前記第1のモデルにより生成されるプログラムのサイズの増減値とを対応付けた対応情報を更に参照し、前記第2のモデルにより生成されるプログラムのサイズを推定することを特徴とする付記5又は6に記載の開発支援方法。
(付記8)前記サイズを推定する処理は、前記第1のモデルに含まれる、前記変数に含まれるパラメータである整数型変数および浮動小数点型変数と、各パラメータの増減に対する、前記第1のモデルにより生成されるプログラムのサイズの増減値とを対応付けた対応情報を更に参照し、前記第2のモデルにより生成されるプログラムのサイズを推定することを特徴とする付記5〜7のいずれか一つに記載の開発支援方法。
(付記9)複数のコンポーネントを組み合わせて設計されるモデルにより生成されるプログラムのサイズを推定するための開発支援装置であって、
第1のモデルに含まれるパラメータである変数、ポートおよびメソッドのうち一つまたは複数のパラメータと、前記パラメータの増減に対する、前記第1のモデルにより生成されるプログラムのサイズの増減値とを対応付けた対応情報を記憶する対応情報記憶部と、
前記対応情報記記憶部に記憶された前記対応情報を参照し、第2のモデルに含まれる各パラメータの個数に基づいて、前記第2のモデルにより生成されるプログラムのサイズを推定する推定部と、
前記推定部により推定されたサイズを出力する出力部と
を有することを特徴とする開発支援装置。
(付記10)前記コンポーネントごとのコンパイル後のサイズを目的変数とし、かつ、前記コンポーネントに含まれる各パラメータの個数を説明変数とする回帰分析を行い、当該回帰分析の結果から前記対応情報を生成し、生成した前記対応情報を前記対応情報記憶部に格納する格納部を更に有し、
前記推定部は、修正後のモデルに含まれる各パラメータの個数の増減を受け付けた場合に、前記格納部により格納された前記対応情報を参照し、前記修正後のモデルにより生成されるプログラムのサイズを推定することを特徴とする付記9に記載の開発支援装置。
(付記11)前記推定部は、前記第2のモデルにおいて所定のコンポーネントが他のコンポーネントに継承される場合に、前記第1のモデルに含まれる、所定のコンポーネントが他のコンポーネントに継承されることを示すパラメータである仮想関数と、前記仮想関数の増減に対する、前記第1のモデルにより生成されるプログラムのサイズの増減値とを対応付けた対応情報を更に参照し、前記第2のモデルにより生成されるプログラムのサイズを推定することを特徴とする付記9又は10に記載の開発支援装置。
(付記12)前記推定部は、前記第1のモデルに含まれる、前記変数に含まれるパラメータである整数型変数および浮動小数点型変数と、各パラメータの増減に対する、前記第1のモデルにより生成されるプログラムのサイズの増減値とを対応付けた対応情報を更に参照し、前記第2のモデルにより生成されるプログラムのサイズを推定することを特徴とする付記9〜11のいずれか一つに記載の開発支援装置。
100 開発支援装置
101 入力装置
102 出力装置
110 記憶部
111 コンポーネントデータ
112 統計情報テーブル
113 分析結果テーブル
114 増減情報テーブル
120 制御部
121 集計部
122 分析部
123 設計部
124 計算部
125 出力制御部
200 開発支援装置
201 入力装置
202 出力装置
210 対応情報記憶部
220 推定部
230 出力部

Claims (6)

  1. 複数のコンポーネントを組み合わせて設計されるモデルにより生成されるプログラムのサイズを推定するための開発支援プログラムであって、コンピュータに、
    第1のモデルに含まれるパラメータである変数、ポートおよびメソッドのうち一つまたは複数のパラメータと、前記パラメータの増減に対する、前記第1のモデルにより生成されるプログラムのサイズの増減値とを対応付けた対応情報を記憶する対応情報記憶部を参照し、第2のモデルに含まれる各パラメータの個数に基づいて、前記第2のモデルにより生成されるプログラムのサイズを推定し、
    前記サイズを推定する処理により推定されたサイズを出力する
    処理を実行させることを特徴とする開発支援プログラム。
  2. 前記コンポーネントごとのコンパイル後のサイズを目的変数とし、かつ、前記コンポーネントに含まれる各パラメータの個数を説明変数とする回帰分析を行い、当該回帰分析の結果から前記対応情報を生成し、生成した前記対応情報を前記対応情報記憶部に格納する処理を更にコンピュータに実行させ、
    前記サイズを推定する処理は、修正後のモデルに含まれる各パラメータの個数の増減を受け付けた場合に、前記対応情報を格納する処理により格納された前記対応情報を参照し、前記修正後のモデルにより生成されるプログラムのサイズを推定することを特徴とする請求項1に記載の開発支援プログラム。
  3. 前記サイズを推定する処理は、前記第2のモデルにおいて所定のコンポーネントが他のコンポーネントに継承される場合に、前記第1のモデルに含まれる、所定のコンポーネントが他のコンポーネントに継承されることを示すパラメータである仮想関数と、前記仮想関数の増減に対する、前記第1のモデルにより生成されるプログラムのサイズの増減値とを対応付けた対応情報を更に参照し、前記第2のモデルにより生成されるプログラムのサイズを推定することを特徴とする請求項1又は2に記載の開発支援プログラム。
  4. 前記サイズを推定する処理は、前記第1のモデルに含まれる、前記変数に含まれるパラメータである整数型変数および浮動小数点型変数と、各パラメータの増減に対する、前記第1のモデルにより生成されるプログラムのサイズの増減値とを対応付けた対応情報を更に参照し、前記第2のモデルにより生成されるプログラムのサイズを推定することを特徴とする請求項1〜3のいずれか一つに記載の開発支援プログラム。
  5. 複数のコンポーネントを組み合わせて設計されるモデルにより生成されるプログラムのサイズを推定するために、コンピュータによって実行される開発支援方法であって、
    第1のモデルに含まれるパラメータである変数、ポートおよびメソッドのうち一つまたは複数のパラメータと、前記パラメータの増減に対する、前記第1のモデルにより生成されるプログラムのサイズの増減値とを対応付けた対応情報を記憶する対応情報記憶部を参照し、第2のモデルに含まれる各パラメータの個数に基づいて、前記第2のモデルにより生成されるプログラムのサイズを推定し、
    前記サイズを推定する処理により推定されたサイズを出力する
    ことを特徴とする開発支援方法。
  6. 複数のコンポーネントを組み合わせて設計されるモデルにより生成されるプログラムのサイズを推定するための開発支援装置であって、
    第1のモデルに含まれるパラメータである変数、ポートおよびメソッドのうち一つまたは複数のパラメータと、前記パラメータの増減に対する、前記第1のモデルにより生成されるプログラムのサイズの増減値とを対応付けた対応情報を記憶する対応情報記憶部と、
    前記対応情報記憶部に記憶された前記対応情報を参照し、第2のモデルに含まれる各パラメータの個数に基づいて、前記第2のモデルにより生成されるプログラムのサイズを推定する推定部と、
    前記推定部により推定されたサイズを出力する出力部と
    を有することを特徴とする開発支援装置。
JP2010272817A 2010-12-07 2010-12-07 開発支援プログラム、開発支援方法及び開発支援装置 Expired - Fee Related JP5582006B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010272817A JP5582006B2 (ja) 2010-12-07 2010-12-07 開発支援プログラム、開発支援方法及び開発支援装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010272817A JP5582006B2 (ja) 2010-12-07 2010-12-07 開発支援プログラム、開発支援方法及び開発支援装置

Publications (2)

Publication Number Publication Date
JP2012123543A JP2012123543A (ja) 2012-06-28
JP5582006B2 true JP5582006B2 (ja) 2014-09-03

Family

ID=46504932

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010272817A Expired - Fee Related JP5582006B2 (ja) 2010-12-07 2010-12-07 開発支援プログラム、開発支援方法及び開発支援装置

Country Status (1)

Country Link
JP (1) JP5582006B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016203756A1 (ja) * 2015-06-16 2016-12-22 日本電気株式会社 サービス管理システム、サービス管理方法、及び、記録媒体

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008015945A (ja) * 2006-07-07 2008-01-24 Canon Inc 情報処理装置及び情報処理方法

Also Published As

Publication number Publication date
JP2012123543A (ja) 2012-06-28

Similar Documents

Publication Publication Date Title
AU2010212391B2 (en) Integration environment generator
US10057118B2 (en) Method and apparatus for enabling dynamic analytics configuration on a mobile device
US8775588B2 (en) Method and apparatus for transforming web service policies from logical model to physical model
US10740713B2 (en) Generation of WBS model data
US20170235661A1 (en) Integration of Software Systems via Incremental Verification
US20080229303A1 (en) Method, system and computer program for distributing customized software products
US11645438B2 (en) Generating a template-driven schematic from a netlist of electronic circuits
JP2008257694A (ja) リソースプロビジョニングを推定するための方法およびシステム
JP5209016B2 (ja) WebAPI作成支援装置及びWebAPI作成支援方法
US20160019609A1 (en) Cost computation device, cost computation method, and computer-readable recording medium
US9612890B2 (en) Method and apparatus for workflow based high availability analysis
US8584080B2 (en) Modeling and generating computer software product line variants
JP6213552B2 (ja) 非機能評価によるプロジェクト管理システム、非機能評価によるプロジェクト管理方法および非機能評価によるプロジェクト管理用プログラム
US20090164974A1 (en) Quality measure tool for a composite application
CN113360300A (zh) 接口调用链路生成方法、装置、设备及可读存储介质
JP5582006B2 (ja) 開発支援プログラム、開発支援方法及び開発支援装置
US20130346055A1 (en) Modeling and cooperative simulation of systems with interdependent discrete and continuous elements
JP2010113527A (ja) バグ摘出予測システム
Trendowicz et al. Constructive Cost Model—COCOMO
Djedidi et al. Constructing an accurate and a high-performance power profiler for embedded systems and smartphones
JP6355554B2 (ja) 設定データ記憶装置、方法及びプログラム
US20160154724A1 (en) Non-functional evaluation assistance device, system, method, and program
JP2012234448A (ja) ソフトウェア性能逐次予測方法及び予測システム
TW201818238A (zh) 監控程式產生系統及其產生方法
JP2015146156A (ja) ソフトウェア品質基準計算装置及びソフトウェア品質基準計算方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130904

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140325

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140617

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140630

R150 Certificate of patent or registration of utility model

Ref document number: 5582006

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees