(57)【要約】【課題】  ソフトウェアの規模の見積を支援するためのソフトウェア開発規模見積装置、ソフトウェア開発規模見積方法、及びソフトウェア開発規模見積プログラムを提供する。【解決手段】  画面や帳票のモデルをアプリケーションパターンとしてアプリケーション格納器１５に予め登録しておき、パターン合成器１３が任意に作成されたデータから構成されるプロセスモデルとアプリケーションパターンとを合成し、アプリケーションモデルを自動生成し、見積りモデル作成部２が自動生成されたアプリケーションモデルから５つのファンクションを自動的に算出することにより、人為的な作業によるファンクションの算出を行わずに、ファンクションポイント計算部３が未調整ファンクションを算出できるため、簡単な操作で信頼性の高い見積もりを行うことができる。【選択図】  図１
2006268768.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアに関する任意の情報からなるプロセスモデルを記憶するプロセスモデル記憶手段と、
前記プロセスモデルを構成する情報をデータファンクション、トランザクションファンクションが抽出できるアプリケーションモデルへ変換するための規則からなるアプリケーションパターンを記憶するアプリケーションパターン記憶手段と、
前記プロセスモデル及び前記アプリケーションパターンから前記アプリケーションモデルを生成するアプリケーションモデル作成手段と、
前記アプリケーションモデルからデータファンクション、トランザクションファンクションを抽出する抽出手段と、
抽出されたデータファンクション、トランザクションファンクションからファンクションポイントを算出する算出手段とを有することを特徴とするソフトウェア開発規模見積装置。
【請求項２】
前記算出手段は、
データファンクションに係るレコード項目数を算出し、
トランザクションファンクションに係る参照ファイル数を算出し、
前記レコード項目数及び前記参照ファイル数と所定の換算表とを比較して複雑さを決定し、
前記複雑さから未調整ファンクションポイントを算出することを特徴とする請求項１記載のソフトウェア開発規模見積装置。
【請求項３】
前記アプリケーションモデル作成手段は、前記プロセスモデルを構成する情報にデータファンクション、トランザクションファンクションを区別する種別を付加したアプリケーションモデルを作成することを特徴とする請求項１又は２記載のソフトウェア開発規模見積装置。
【請求項４】
前記抽出手段は、前記種別に基づいて前記プロセスモデルを構成する情報からデータファンクション、トランザクションファンクションを抽出することを特徴とする請求項３記載のソフトウェア開発規模見積装置。
【請求項５】
前記データファンクションは、ＥＩ、ＥＯ、又はＥＱであり、
前記トランザクションファンクションは、ＩＬＦ、又はＥＩＦであることを特徴とする請求項１から４のいずれか１項記載のソフトウェア開発規模見積装置。
【請求項６】
ソフトウェアに関する任意の情報からなるプロセスモデルを記憶するプロセスモデル記憶工程と、
前記プロセスモデルを構成する情報をデータファンクション、トランザクションファンクションが抽出できるアプリケーションモデルへ変換するための規則からなるアプリケーションパターンを記憶するアプリケーションパターン記憶工程と、
前記プロセスモデル及び前記アプリケーションパターンから前記アプリケーションモデルを生成するアプリケーションモデル作成工程と、
前記アプリケーションモデルからデータファンクション、トランザクションファンクションを抽出する抽出工程と、
抽出されたデータファンクション、トランザクションファンクションからファンクションポイントを算出する算出工程とを有することを特徴とするソフトウェア開発規模見積方法。
【請求項７】
前記算出工程は、
データファンクションに係るレコード項目数を算出する工程と、
トランザクションファンクションに係る参照ファイル数を算出する工程と、
前記レコード項目数及び前記参照ファイル数と所定の換算表とを比較して複雑さを決定する工程と、
前記複雑さから未調整ファンクションポイントを算出する工程とを有することを特徴とする請求項６記載のソフトウェア開発規模見積方法。
【請求項８】
前記アプリケーションモデル作成工程は、前記プロセスモデルを構成する情報にデータファンクション、トランザクションファンクションを区別する種別を付加したアプリケーションモデルを作成する工程を有することを特徴とする請求項６又は７記載のソフトウェア開発規模見積方法。
【請求項９】
前記抽出工程は、前記種別に基づいて前記プロセスモデルを構成する情報からデータファンクション、トランザクションファンクションを抽出する工程を有することを特徴とする請求項８記載のソフトウェア開発規模見積方法。
【請求項１０】
ソフトウェアに関する任意の情報からなるプロセスモデルを記憶するプロセスモデル記憶処理と、
前記プロセスモデルを構成する情報をデータファンクション、トランザクションファンクションが抽出できるアプリケーションモデルへ変換するための規則からなるアプリケーションパターンを記憶するアプリケーションパターン記憶処理と、
前記プロセスモデル及び前記アプリケーションパターンから前記アプリケーションモデルを生成するアプリケーションモデル作成処理と、
前記アプリケーションモデルからデータファンクション、トランザクションファンクションを抽出する抽出処理と、
抽出されたデータファンクション、トランザクションファンクションからファンクションポイントを算出する算出処理とを有することを特徴とするソフトウェア開発規模見積プログラム。
【請求項１１】
前記算出処理は、
データファンクションに係るレコード項目数を算出する処理と、
トランザクションファンクションに係る参照ファイル数を算出する処理と、
前記レコード項目数及び前記参照ファイル数と所定の換算表とを比較して複雑さを決定する処理と、
前記複雑さから未調整ファンクションポイントを算出する処理とを有することを特徴とする請求項１０記載のソフトウェア開発規模見積プログラム。
【請求項１２】
前記アプリケーションモデル作成処理は、前記プロセスモデルを構成する情報にデータファンクション、トランザクションファンクションを区別する種別を付加したアプリケーションモデルを作成する処理を有することを特徴とする請求項１０又は１１記載のソフトウェア開発規模見積プログラム。
【請求項１３】
前記抽出処理は、前記種別に基づいて前記プロセスモデルを構成する情報からデータファンクション、トランザクションファンクションを抽出する処理を有することを特徴とする請求項１２記載のソフトウェア開発規模見積プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア開発規模見積装置、ソフトウェア開発規模見積方法、及びソフトウェア開発規模見積プログラムに関し、特に、ソフトウェアの規模の見積を支援するためのソフトウェア開発規模見積装置、ソフトウェア開発規模見積方法、及びソフトウェア開発規模見積プログラムに関する。
【背景技術】
【０００２】
ソフトウェア開発を行うときの機能量を見積もる方法として、ファンクションポイント法がある。ファンクションポイント法は、（１）アプリケーションソフトウェアの境界の設定、（２）ファンクションの洗い出し、（３）複雑さを設定し未調整ファンクションポイントの算出、（４）未調整ファンクションポイントからアプリケーションソフトウェアの特性を評価しファンクションポイントを算出、という手順で機能量を算出する。
【０００３】
ファンクションポイント法では、（２）においてファンクションポイント法に必須の５つのファンクションを洗い出す。５つのファンクションは、２つのデータファンクションと３つのトランザクションファンクションとから構成される。
【０００４】
２つのデータファンクションには、ＩＬＦと呼ばれる内部論理ファイル、ＥＩＦと呼ばれる外部インターフェースファイルがある。３つのトランザクションファンクションには、ＥＩと呼ばれる外部入力、ＥＯと呼ばれる外部出力、ＥＱと呼ばれる外部照会がある。
【０００５】
従来、（２）の手順におけるファンクションの洗い出しに多大な工数を要していた。（２）の手順において５つのファンクション（ＩＬＦ、ＥＩＦ、ＥＩ、ＥＯ、ＥＱ）を洗い出すためには、ソフトウェアの業務を定めるために利用していた画面や帳票のモデルを用いてＥＩ、ＥＯ、ＥＱを洗い出し、さらに、データベース設計の元となるデータモデルからＩＬＦやＥＩＦを洗い出さなければならなかった。
【０００６】
しかし、この方法では、画面や帳票のモデルプやデータモデルを作成するという多大な工数が必要であるため、ソフトウェア開発を受注した際の見積額の算出方法として用いにくいという欠点があった。
【０００７】
（２）の手順を効率化する方法として、従来、児玉 公信著の「システム開発の見積もりのための実践ファンクションポイント法」（日本能率協会マネジメントセンタ：ISBN4820714317）による方法がある。これは、プロセスモデルとデータモデルから５つのファンクションを洗い出す方法である。具体的には、トランザクションファンクションであるＥＩ、ＥＯ、ＥＱの洗い出しを画面や帳票のモデルから行うのではなく、プロセスモデルからＥＩ、ＥＯ、ＥＱを洗い出し、データモデルからデータファンクションであるＩＬＦやＥＩＦを洗い出す方法である。この方法では、画面や帳票を予め作る必要がないため、従来よりも少ない工数でファンクションポイントを求めることができる。
【０００８】
しかし、このモデルによる方法は、プロセスモデルが単純な場合は実用的であるが、例えば、業務システムのようなアプリケーションソフトウェアでは、１つの業務機能に多くのファンクションが盛り込まれるため、複雑なプロセスモデルを作らざるを得ない。また、ソフトウェア開発の受注の前に、複雑なプロセスモデルを作成することは、画面や帳票を作成するよりも工数は少なくなるものの、多大な工数が必要になることに変わりは無い。さらに、モデリング作業は人為的な作業であるから、同じアプリケーションから一意に定まるモデルが定義されることはない。
【０００９】
よって、いずれの方法によっても、ＥＩ、ＥＯ、ＥＱ、ＩＬＦ、ＥＩＦを洗い出す作業は、ファンクションポイント法を習得した人でなければ行うことができない。なお、ファンクションポイント法を習得するためには一定のトレーニングが必要であり、機能量の見積もり方法として簡単に使えるものではなかった。
【００１０】
従って、多大な工数を費やすことなくアプリケーションソフトウェアの見積もりを行うために、従来よりも抽象度の高いモデルを用いて少ない工数で算出する方法が求められている。
【００１１】
特許文献１では、開発分野ごとにファンクションポイント算出に必要な情報を予め準備しておき、それらの呼び出すことにより、計測規則の習得とそれに従った機能抽出の煩雑さ、計測者による計測値の差を減少することができるソフトウェア見積りシステムが提案されている。
【００１２】
特許文献２では、人為的な要因をできる限り排除すると共に、開発の上流過程で作成される仕様書や設計書の電子データを利用して、簡単な操作でかつ短い時間内で信頼性の高い見積りを行うことができるシステム規模の見積支援方法及び装置が提案されている。
【特許文献１】特開２００２−２２２０８０号公報
【特許文献２】特開２０００−７６０６２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかし、上記の発明は以下の問題を有している。
【００１４】
特許文献１記載のソフトウェア見積りシステムは、ユーザが機能量算出対象プロジェクトと同分野の既存の機能情報、ファンクションポイント法による見積りに必要なファンクションを人為的に選択し、入力しなければならないため、結果的にユーザがソフトウェアの見積りに必要なファンクションを入力しなければ、見積りを実行することができない。
【００１５】
特許文献２記載のシステム規模の見積支援方法及び装置は、ユーザが予め定義された仕様書に必要な情報を入力しておくことにより、自動的にファンクションポイントの算出を行うものであり、ユーザが任意に入力したデータからファンクションポイントの算出に必要な情報を抽出し、自動的にファンクションポイントを算出することはできない。
【００１６】
本発明は、画面や帳票のモデルをアプリケーションパターンとして予め登録しておきプロセスモデルとを合成し、アプリケーションモデルを自動生成し、自動生成されたアプリケーションモデルから５つのファンクションを自動的に算出することにより、人為的な作業によるファンクションの算出を行わずに、未調整ファンクションを算出するソフトウェア開発規模見積装置、ソフトウェア開発規模見積方法、及びソフトウェア開発規模見積プログラムを提案することを目的としている。
【課題を解決するための手段】
【００１７】
請求項１記載のソフトウェア開発規模見積装置は、ソフトウェアに関する任意の情報からなるプロセスモデルを記憶するプロセスモデル記憶手段と、前記プロセスモデルを構成する情報をデータファンクション、トランザクションファンクションが抽出できるアプリケーションモデルへ変換するための規則からなるアプリケーションパターンを記憶するアプリケーションパターン記憶手段と、前記プロセスモデル及び前記アプリケーションパターンから前記アプリケーションモデルを生成するアプリケーションモデル作成手段と、前記アプリケーションモデルからデータファンクション、トランザクションファンクションを抽出する抽出手段と、抽出されたデータファンクション、トランザクションファンクションからファンクションポイントを算出する算出手段とを有することを特徴とする。
【００１８】
請求項２記載の発明は、請求項１記載のソフトウェア開発規模見積装置において、前記算出手段は、データファンクションに係るレコード項目数を算出し、トランザクションファンクションに係る参照ファイル数を算出し、前記レコード項目数及び前記参照ファイル数と所定の換算表とを比較して複雑さを決定し、前記複雑さから未調整ファンクションポイントを算出することを特徴とする。
【００１９】
請求項３記載の発明は、請求項１又は２記載のソフトウェア開発規模見積装置において、前記アプリケーションモデル作成手段は、前記プロセスモデルを構成する情報にデータファンクション、トランザクションファンクションを区別する種別を付加したアプリケーションモデルを作成することを特徴とする。
【００２０】
請求項４記載の発明は、請求項３記載のソフトウェア開発規模見積装置において、前記抽出手段は、前記種別に基づいて前記プロセスモデルを構成する情報からデータファンクション、トランザクションファンクションを抽出することを特徴とする。
【００２１】
請求項５記載の発明は、請求項１から４のいずれか１項記載のソフトウェア開発規模見積装置において、前記データファンクションは、ＥＩ、ＥＯ、又はＥＱであり、前記トランザクションファンクションは、ＩＬＦ、又はＥＩＦであることを特徴とする。
【００２２】
請求項６記載のソフトウェア開発規模見積方法は、ソフトウェアに関する任意の情報からなるプロセスモデルを記憶するプロセスモデル記憶工程と、前記プロセスモデルを構成する情報をデータファンクション、トランザクションファンクションが抽出できるアプリケーションモデルへ変換するための規則からなるアプリケーションパターンを記憶するアプリケーションパターン記憶工程と、前記プロセスモデル及び前記アプリケーションパターンから前記アプリケーションモデルを生成するアプリケーションモデル作成工程と、前記アプリケーションモデルからデータファンクション、トランザクションファンクションを抽出する抽出工程と、抽出されたデータファンクション、トランザクションファンクションからファンクションポイントを算出する算出工程とを有することを特徴とする。
【００２３】
請求項７記載の発明は、請求項６記載のソフトウェア開発規模見積方法において、前記算出工程は、データファンクションに係るレコード項目数を算出する工程と、トランザクションファンクションに係る参照ファイル数を算出する工程と、前記レコード項目数及び前記参照ファイル数と所定の換算表とを比較して複雑さを決定する工程と、前記複雑さから未調整ファンクションポイントを算出する工程とを有することを特徴とする。
【００２４】
請求項８記載の発明は、請求項６又は７記載のソフトウェア開発規模見積方法において、前記アプリケーションモデル作成工程は、前記プロセスモデルを構成する情報にデータファンクション、トランザクションファンクションを区別する種別を付加したアプリケーションモデルを作成する工程を有することを特徴とする。
【００２５】
請求項９記載の発明は、請求項８記載のソフトウェア開発規模見積方法において、前記抽出工程は、前記種別に基づいて前記プロセスモデルを構成する情報からデータファンクション、トランザクションファンクションを抽出する工程を有することを特徴とする。
【００２６】
請求項１０記載のソフトウェア開発規模見積プログラムは、ソフトウェアに関する任意の情報からなるプロセスモデルを記憶するプロセスモデル記憶処理と、前記プロセスモデルを構成する情報をデータファンクション、トランザクションファンクションが抽出できるアプリケーションモデルへ変換するための規則からなるアプリケーションパターンを記憶するアプリケーションパターン記憶処理と、前記プロセスモデル及び前記アプリケーションパターンから前記アプリケーションモデルを生成するアプリケーションモデル作成処理と、前記アプリケーションモデルからデータファンクション、トランザクションファンクションを抽出する抽出処理と、抽出されたデータファンクション、トランザクションファンクションからファンクションポイントを算出する算出処理とを有することを特徴とする。
【００２７】
請求項１１記載の発明は、請求項１０記載のソフトウェア開発規模見積プログラムにおいて、前記算出処理は、データファンクションに係るレコード項目数を算出する処理と、トランザクションファンクションに係る参照ファイル数を算出する処理と、前記レコード項目数及び前記参照ファイル数と所定の換算表とを比較して複雑さを決定する処理と、前記複雑さから未調整ファンクションポイントを算出する処理とを有することを特徴とする。
【００２８】
請求項１２記載の発明は、請求項１０又は１１記載のソフトウェア開発規模見積プログラムにおいて、前記アプリケーションモデル作成処理は、前記プロセスモデルを構成する情報にデータファンクション、トランザクションファンクションを区別する種別を付加したアプリケーションモデルを作成する処理を有することを特徴とする。
【００２９】
請求項１３記載の発明は、請求項１２記載のソフトウェア開発規模見積プログラムにおいて、前記抽出処理は、前記種別に基づいて前記プロセスモデルを構成する情報からデータファンクション、トランザクションファンクションを抽出する処理を有することを特徴とする。
【発明の効果】
【００３０】
本発明は、画面や帳票のモデルをアプリケーションパターンとして予め登録しておきプロセスモデルと合成し、アプリケーションモデルを自動生成し、自動生成されたアプリケーションモデルから５つのファンクションを自動的に算出することにより、人為的な作業によるファンクションの算出を行わずに、未調整ファンクションを算出できるため、簡単な操作で信頼性の高い見積もりを行うことができる。
【発明を実施するための最良の形態】
【００３１】
以下に、本発明の一実施形態に係るソフトウェア開発規模見積装置の構成及び動作について説明する。
【００３２】
本実施形態に係るソフトウェア開発規模見積装置は、プロセスモデルとアプリケーションパターンからアプリケーションモデルを作成するアプリケーションモデル作成部１、アプリケーションモデルから見積モデルを作成する見積もりモデル作成部２、見積モデルと換算表とから未調整ファンクションポイントを算出するファンクションポイント計測部３、プロセスモデルを格納するプロセスモデル格納器１１、アプリケーションパターンを格納するアプリケーションパターン格納器１５、アプリケーションモデルを格納するアプリケーションモデル格納器２１、見積モデルを格納する見積もりモデル格納器３１、未調整ファンクションポイントの算出に必要な換算表を格納する換算表格納器３５、及び算出した未調整ファンクションポイントを格納する未調整ファンクションポイント格納器３７を有して構成される。
【００３３】
プロセスモデル格納器１１は、図６に示すプロセスモデルをメタ言語で記述したメタモデルを格納する。図７は、図６に示すメタモデルを図示したものである。ここで、プロセスモデルとは、規模を計測しようとするソフトウェアに関する任意の情報から構成される。以下にプロセスモデルの構成の一例について説明する。
【００３４】
なお、図６に示すメタモデルは、ＥＢＮＦ（Extended Backus Naur Form）で記述している。但し、ここでは終端の定義が無いものは文字列であると定義する。例えば、図６の<項目種別>や<項目名>の定義が記載されていないが、これは任意の文字列であると解釈する。
【００３５】
プロセスモデルのメタモデルは、プロセスモデルに含まれるデータの構成を表す＜プロセス＞、ソフトウェアに要求される処理を表す＜入力データ＞、該ソフトウェアによる処理に必要なデータを表す＜出力データ＞、入力データから出力データを生成するために、外部システムから取得する情報を表す＜外部参照データ＞、入力データから出力データを生成するために、内部システムから取得する情報を表す＜内部参照データ＞、ユーザから入力される任意の情報を表す＜ユーザ入力＞、及びユーザに提供される情報を表す＜ユーザ出力＞を有して構成される。
【００３６】
アプリケーションパターン格納器１５は、図８に示すアプリケーションパターンのメタモデルで記述したモデルを格納する。図８も図６と同様にＥＢＮＦで記述されている。図６と同様に終端の定義が無いものは任意の文字列であると解釈する。アプリケーションパターンとは、プロセスモデルからアプリケーションモデルの生成に必要な情報を抽出し、アプリケーションモデルを生成するルールを表すデータから構成される。以下に、アプリケーションパターンの構成の一例について説明する。
【００３７】
アプリケーションパターンに含まれるデータの構成を表す＜パターン＞、プロセスモデルから抽出する＜入力データ＞、＜出力データ＞、＜外部参照データ＞、及び＜内部参照データ＞、プロセスモデルに含まれるユーザ入力及びユーザ出力がテキストスタイル（＜データフォーム＞）又は所定のスタイル（＜コマンドフォーム＞）であるか否かを判断するためのデータを表す＜入出力デバイス＞、ユーザ入力及びユーザ出力のいずれか、又は両者が＜データフォーム＞であるか判断するためのデータを表す＜データフォーム＞、プロセスモデルから抽出されるユーザ入力及びユーザ出力がトランザクションファンクションＥＩ、ＥＯ、及びＥＱいずれに属するかを判断するためのデータを表す＜ユーザ入力＞、＜ユーザ出力＞、＜ユーザ入出力＞、及び＜コマンドフォーム＞、及びプロセスモデルから抽出されるユーザ入力及びユーザ出力がファンクションポイント法による計測対象であるか否かを判断するためのデータを表す＜ファンクション種別＞を有して構成される。
【００３８】
アプリケーションモデル作成部１は、プロセスモデル格納器１１からプロセスモデルを読み取るプロセスモデル読取器１２、アプリケーションパターン格納器１５からアプリケーションパターンを読み取るパターン読取器１４、読み取ったプロセスモデルとアプリケーションパターンを合成し、アプリケーションモデルを作成するパターン合成器１３、及び合成したアプリケーションモデルをアプリケーションモデル保存器２１に格納するアプリケーションモデル保存器１５を有して構成される。
【００３９】
図９はアプリケーションモデルのメタモデルの定義である。図９も図６と同様にＥＢＮＦで記述している。図６と同様に終端の定義が無いものは任意の文字列であると解釈する。アプリケーションモデルは、ファンクションポイント法による計測対象となるデータから構成される。以下に、アプリケーションモデルの構成に一例について説明する。
【００４０】
プロセスモデルとアプリケーションパターンとを合成した生成されたアプリケーションモデルは、アプリケーションモデルの構成を示す＜アプリケーション＞、ファンクションポイント法による計測対象となる各項目のデータファンクション（ＩＬＦ、ＥＩＦ）を示す＜入力データ＞、＜出力データ＞、＜外部参照データ＞、及び＜内部参照データ＞、ユーザ入力及びユーザ出力が属するトランザクションファンクション（ＥＩ、ＥＯ、ＥＱ）を示す＜入出力デバイス＞、及びファンクションポイント法による計測対象となる項目を表す＜種別付き項目データ＞を有して構成される。
【００４１】
見積もりモデル作成部２は、アプリケーションモデル格納器２１からアプリケーションモデルを取り出すアプリケーションモデル読取器２２、アプリケーションモデルを見積もりモデルに変換するファンクション抽出器２３、及び抽出したファンクションを見積もりモデルとして保存する見積もりモデル保存器２４を有して構成される。
【００４２】
図１０は、見積もりモデルのメタモデルの定義である。図１０も図６と同様にＥＢＮＦで記述している。図６と同様に終端の定義が無いものは任意の文字列であると解釈する。ファンクションポイント計算部３は、見積もりモデル保存器３１から見積もりモデルを取り出す見積もりモデル読取器３２、換算表を取り出す換算表読取器３４、取り出した見積もりモデルと換算表から未調整ファンクションポイントを計算するファンクションポイント計算機３３、及び計算した結果を保存する未調整ファンクションポイント保存器３６を有して構成される。
【００４３】
次に、本実施形態に係るソフトウェア開発規模見積装置の動作について図２から５を用いて説明する。
【００４４】
まず、図１のアプリケーションモデル作成部１の動作について図２及び３を用いて説明する。
【００４５】
プロセスモデル読取器１２は、プロセスモデル格納器１１からプロセスモデルを読み出す（ステップＳ２０１）。パターン読取器１４は、アプリケーションパターン格納器１５からアプリケーションパターンを読み出す（ステップＳ２０２）。パターン合成器１３は、ステップＳ２０１で読み出されたプロセスモデルからユーザ入力とユーザ出力とを抽出する（ステップＳ２０３）。ユーザ入力とユーザ出力とが抽出できた場合は（ステップＳ２０４／ＹＥＳ）、パターン合成器１３は、ユーザ入力とユーザ出力とがトランザクションファンクションＥＩ、ＥＯ、及びＥＱいずれに属するかを図３に示すフローチャートに従って判断する（ステップＳ２０５）。
【００４６】
パターン合成器１３は、まずプロセスモデルに含まれるユーザ入力及びユーザ出力がファンクションポイント法による計測対象であるか否かを、アプリケーションパターンに含まれる＜ファンクション種別＞に基づいて判断する（ステップＳ３０１）。
【００４７】
ユーザ入力及びユーザ出力が計測対象外であると判断された場合は（ステップＳ３０１／ＮＯ）、プロセスモデルから抽出されたユーザ入力及びユーザ出力がファンクションポイント法による計測の対象外であると判断し（ステップＳ３０２）、その旨を示すデータをアプリケーションモデルの＜入出力デバイス＞として保存する（ステップＳ２０６）。
【００４８】
一方、ユーザ入力及びユーザ出力が計測対象であると判断された場合は（ステップＳ３０１／ＹＥＳ）、ユーザ入力及びユーザ出力がコマンドフォームであるか、又はユーザ入力がデータフォームであるか否かを判断する（ステップＳ３０３）。ここで、ユーザ入力及びユーザ出力がコマンドフォームであった場合又はユーザ入力がデータフォームである場合は（ステップＳ３０３／ＹＥＳ）、ユーザ入力及びユーザ出力にファンクション種別ＥＩを付加し（ステップＳ３０４）、その旨を示すデータをアプリケーションモデルの＜入出力デバイス＞として保存する（ステップＳ２０６）。
【００４９】
一方、ユーザ入力及びユーザ出力がコマンドフォームでない場合及びユーザ入力がデータフォームでない場合は（ステップＳ３０３／ＮＯ）、アプリケーションパターンの＜入出力デバイス＞に含まれるデータがプロセスモデルの入力データ、内部参照データ、及び外部参照データの中に含まれるか否かを判断する（ステップＳ３０５）。ここで、アプリケーションパターンの＜入出力デバイス＞に含まれるデータがプロセスモデルの入力データ、内部参照データ、及び外部参照データに含まれる場合は（ステップＳ３０５／ＹＥＳ）、ユーザ入力及びユーザ出力にファンクション種別ＥＯを付加し（ステップＳ３０６）、その旨を示すデータをアプリケーションモデルの＜入出力デバイス＞として保存する(ステップＳ２０６)。
【００５０】
一方、アプリケーションパターンの＜入出力デバイス＞に含まれるデータがプロセスモデルの入力データ、内部参照データ、及び外部参照データに含まれない場合は（ステップＳ３０５／ＮＯ）、ユーザ入力及びユーザ出力にファンクション種別ＥＱを付加し（ステップＳ３０７）、その旨を示すデータをアプリケーションモデルの＜入出力デバイス＞として保存する（ステップＳ２０６）。
【００５１】
プロセスモデルに含まれるユーザ入力及びユーザ出力のファンクション種別の判断が完了すると（ステップＳ２０５、ステップＳ２０６）、又はユーザ入力及びユーザ出力がプロセスモデルから抽出されなかった場合は（ステップＳ２０４／ＮＯ）、パターン合成器１３は、プロセスモデルから入力データ、出力データ、及び内部参照データを取り出す（ステップＳ２０７）。そして、プロセスモデルに入力データ、出力データ、及び内部参照データが含まれているか否かを判断する（ステップＳ２０８）。
【００５２】
プロセスモデルに入力データ、出力データ、及び内部参照データが含まれていた場合は（ステップＳ２０８／ＹＥＳ）、パターン合成器１３は入力データ、出力データ、及び内部参照データにファンクション種別ＩＬＦを付加し（ステップＳ２０９）、その旨を示すデータをアプリケーションモデルの＜入出力デバイス＞として保存する（ステップＳ２１０）。
【００５３】
パターン合成器１３による入力データ、出力データ、及び内部参照データへのファンクション種別ＩＬＦの付加が完了（ステップＳ２０９、ステップＳ２１０）、又はプロセスモデルに入力データ、出力データ、及び内部参照データが含まれていなかった場合（ステップＳ２０８／ＮＯ）、プロセスモデルから外部参照データを抽出する（ステップＳ２１１）。ここで、プロセスモデルから外部参照データが抽出されるか否かを判断する（ステップＳ２１２）。
【００５４】
プロセスモデルから外部参照データが抽出された場合は（ステップＳ２１２／ＹＥＳ）、外部参照データにファンクション種別ＥＩＦを付加し（ステップＳ２１３）、その旨を示すデータをアプリケーションモデルの＜入出力デバイス＞として保存し（ステップＳ２１４）、アプリケーションモデル作成部１における処理が終了する。
【００５５】
一方、プロセスモデルから外部参照データが抽出されなかった場合は（ステップＳ２１２／ＮＯ）、アプリケーションモデル作成部１における処理は終了する。
【００５６】
次に、図４を用いて見積もりモデル作成部２における動作について説明する。
【００５７】
まず、アプリケーションモデル読取器２２がアプリケーションモデル格納器２１からアプリケーションモデルを読み出す（ステップＳ４０１）。次に、ファンクション抽出器２３は、読み出されたアプリケーションモデルの入力データ、出力データ、外部参照データ、内部参照データ、入出力デバイスの各項目についてファンクション種別が付加された項目データ（以下、種別付き項目データとする）を読み出す（ステップＳ４０２）。ここで、アプリケーションモデルに含まれる入力データ、出力データ、外部参照データ、内部参照データ、及び入出力デバイスの各項目について種目付き項目データが読み出せるか否かを判断する（ステップＳ４０３）。
【００５８】
ここで、アプリケーションモデルに含まれる入力データ、出力データ、外部参照データ、内部参照データ、及び入出力デバイスの各項目について種目付き項目データが読み出された場合は（ステップＳ４０３／ＹＥＳ）、見積もりモデル保存器２４が読み出されたファンクション種別に基づいて種目付き項目データを分類した見積もりモデルを見積もりモデル格納器３１に格納し（ステップＳ４０４）、見積もりモデル作成部２における処理は終了する。例えば、ファンクション種別がＥＩである場合は、その種目付き項目データを図１０に示す見積もりモデルの＜ＥＩデータ＞として分類され、ファンクション種別に基づき分類された入力データ、出力データ、外部参照データ、内部参照データ、及び入出力デバイスからなる見積もりモデルは見積もりモデル格納器３１に格納される。
【００５９】
一方、アプリケーションモデルに含まれる入力データ、出力データ、外部参照データ、内部参照データ、及び入出力デバイスの各項目について種目付き項目データが読み出されなかった場合は（ステップＳ４０３／ＮＯ）、見積もりモデル作成部２における処理を終了する。
【００６０】
次に、図５を用いてファンクションポイントモデル作成部３の動作について説明する。
【００６１】
まず、見積もりモデル読取器３２が見積もりモデル格納器３１から見積もりモデルを読み出す（ステップＳ５０１）。さらに、換算表読取器３４が換算表格納器３５から換算表を読み出す（ステップＳ５０２）。換算表は、見積もり対象の見積もりモデルに含まれる各項目の複雑度が「高」、「中」、「低」のいずれかを判定するための表である。
【００６２】
ファンクションポイント計算器３３は、見積もりモデルに含まれる項目のファンクション種別がＩＬＦ、ＥＩＦの場合は、ファンクション種別と項目名をそれぞれレコードと項目と解釈し、レコード種類数と項目数を算出する。
【００６３】
また、見積もりモデル含まれる項目のファンクション種別がＥＩ、ＥＯ、ＥＱの場合は、ファンクション種別と項目名をそれぞれ参照ファイルと項目と解釈し、参照ファイル数と項目数を算出する。
【００６４】
そして、その算出結果と換算表とを照らし合わせ、複雑度を判定し、さらにファンクションポイント法の計算式に従い、未調整ファンクションポイントを算出する（ステップＳ５０３）。算出された未調整ファンクションポイントは、未調整ファンクションポイント保存器３６によって未調整ファンクションポイント格納器３７に格納される（ステップＳ５０４）。
【００６５】
上述の構成によれば、画面や帳票のモデルをアプリケーションパターンとして予め登録しておきプロセスモデルとを合成し、アプリケーションモデルを自動生成し、自動生成されたアプリケーションモデルから５つのファンクションを自動的に算出することにより、人為的な作業によるファンクションの算出を行わずに、未調整ファンクションを算出できるため、簡単な操作で信頼性の高い見積もりを行うことができる。
【図面の簡単な説明】
【００６６】
【図１】本実施形態に係るソフトウェア開発規模見積装置の構成を示すブロック図である。
【図２】アプリケーションモデル作成部における処理を示すフローチャートである。
【図３】アプリケーションモデル作成部における処理を示すフローチャートである。
【図４】見積もりモデル作成部における処理を示すフローチャートである。
【図５】ファンクションポイント計算部における処理を示すフローチャートである。
【図６】プロセスモデルのメタモデルを示す図である。
【図７】プロセスモデルの構成を示すブロック図である。
【図８】アプリケーションパターンのメタモデルを示す図である。
【図９】アプリケーションモデルのメタモデルを示す図である。
【図１０】見積もりモデルのメタモデルを示す図である。
【符号の説明】
【００６７】
１    アプリケーションモデル作成部
２    見積もりモデル作成部
３    ファンクションポイント計算部
１１    プロセスモデル格納器
１５    アプリケーションパターン格納器
２１    アプリケーションモデル格納器
３１    見積もりモデル格納器
３５    換算表格納器
３７    未調整ファンクションポイント格納器
【図１】
2006268768.tif 000003
【図２】
2006268768.tif 000004
【図３】
2006268768.tif 000005
【図４】
2006268768.tif 000006
【図５】
2006268768.tif 000007
【図６】
2006268768.tif 000008
【図７】
2006268768.tif 000009
【図８】
2006268768.tif 000010
【図９】
2006268768.tif 000011
【図１０】
2006268768.tif 000012