(57)【要約】【課題】ＵＭＬで表現された要求仕様に対してＦＰ法を適用するための計測値を算出し、ソフトウェア規模の自動見積りを可能にする。【解決手段】ＵＭＬのクラス図とユースケース図およびコラボレーション図を作成し（Ｓ１〜Ｓ５）、これらをそれぞれデータ表現し（Ｓ６）、クラス図からＦＰ法におけるデータファンクションの内部論理ファイル（ＩＬＦ）と、外部インターフェースファイル（ＥＩＦ）を計測し（Ｓ７）、ユースケース図からＦＰ法におけるトランザクションファンクションの外部入力（ＥＩ）と外部出力（ＥＯ）および外部照会（ＥＱ）を計測し（Ｓ８）、ＩＬＦ、ＥＩＦ、ＥＩ、ＥＯ、ＥＱのデータ項目（ＤＥＴ）とレコード種別（ＲＥＴ）および関連ファイル（ＦＴＲ）から、ＦＰ法のＦＰ値を求める（Ｓ９，Ｓ１０）。コラボレーション図のデータ表現からＤＥＴとＦＴＲを計測する。【選択図】  図１
2005222183.tif 000002
【特許請求の範囲】
【請求項１】
開発しようとするソフトウェアの要求仕様として作成したＵＭＬのクラス図とユースケース図をそれぞれデータ表現する手段と、
データ表現された前記クラス図からファンクションポイント法におけるデータファンクションの内部論理ファイル（ＩＬＦ）と、外部インターフェースファイル（ＥＩＦ）を計測する手段と、
データ表現された前記ユースケース図からファンクションポイント法におけるトランザクションファンクションの外部入力（ＥＩ）と外部出力（ＥＯ）および外部照会（ＥＱ）を計測する手段と、
前記内部論理ファイル（ＩＬＦ）、外部インターフェースファイル（ＥＩＦ）、外部入力（ＥＩ）と外部出力（ＥＯ）および外部照会（ＥＱ）のデータ項目（ＤＥＴ）とレコード種別（ＲＥＴ）および関連ファイル（ＦＴＲ）から、ファンクションポイント法のファンクションポイント値を求める手段と、
前記ファンクションポイント値からソフトウェアの開発工数の見積もりを求める手段とを備えたことを特徴とするソフトウェア開発支援システム。
【請求項２】
前記ユースケース内で使用するクラス群を特定するためのコラボレーション図をデータ表現する手段を備え、
前記コラボレーション図のデータ表現から前記データ項目（ＤＥＴ）と関連ファイル（ＦＴＲ）を計測することを特徴とする請求項１に記載のソフトウェア開発支援システム。
【請求項３】
前記クラス図、ユースケース図およびコラボレーション図のデータ表現手段は、ＸＭＬ形式でデータ表現することを特徴とする請求項１または２に記載のソフトウェア開発支援システム。
【請求項４】
開発しようとするソフトウェアの要求仕様として作成したＵＭＬのクラス図とユースケース図をそれぞれデータ表現する過程と、
データ表現された前記クラス図からファンクションポイント法におけるデータファンクションの内部論理ファイル（ＩＬＦ）と、外部インターフェースファイル（ＥＩＦ）を計測する過程と、
データ表現された前記ユースケース図からファンクションポイント法におけるトランザクションファンクションの外部入力（ＥＩ）と外部出力（ＥＯ）および外部照会（ＥＱ）を計測する過程と、
前記内部論理ファイル（ＩＬＦ）、外部インターフェースファイル（ＥＩＦ）、外部入力（ＥＩ）と外部出力（ＥＯ）および外部照会（ＥＱ）のデータ項目（ＤＥＴ）とレコード種別（ＲＥＴ）および関連ファイル（ＦＴＲ）から、ファンクションポイント法のファンクションポイント値を求める過程と、
前記ファンクションポイント値からソフトウェアの開発工数の見積もりを求める過程とを備えたことを特徴とするソフトウェア開発支援方法。
【請求項５】
前記ユースケース内で使用するクラス群を特定するためのコラボレーション図をデータ表現する過程を備え、
前記コラボレーション図のデータ表現から前記データ項目（ＤＥＴ）と関連ファイル（ＦＴＲ）を計測することを特徴とする請求項４に記載のソフトウェア開発支援方法。
【請求項６】
前記クラス図、ユースケース図およびコラボレーション図のデータ表現過程は、ＸＭＬ形式でデータ表現することを特徴とする請求項４または５に記載のソフトウェア開発支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア開発支援システムおよび支援方法に係り、特にソフトウェアの規模及び開発工数の見積りを支援するシステムおよび方法に関する。
【背景技術】
【０００２】
ソフトウェア開発において、事前に開発工数の見積りを行うために、ソフトウェアの規模をデータと処理の尺度で計測し、これに開発環境による生産性を掛け合わせることにより開発工数を求めている。
【０００３】
ソフトウェアの規模を見積る方法として、ファンクションポイント法（以下、ＦＰ法と呼ぶ）が広く使用されている（例えば、特許文献１参照）。ＦＰ法で求められたファンクションポイント値（以下、ＦＰ値と呼ぶ）はソフトウェア規模の尺度となる。
【０００４】
ＦＰ法は、図８に示すように、データファンクションとトランザクションファンクションを計測するが、これはデータテーブルと要素処理であり、データファンクションには内部論理ファイル（ＩＬＦ）と外部インタフェースファイル（ＥＩＦ）があり、トランザクションファンクションには外部入力（ＥＩ）、外部出力（ＥＯ）、外部照会（ＥＱ）があり、これらの数を計測する。
【０００５】
また、各データファンクションにはデータ項目（ＤＥＴ）とレコード種別（ＲＥＴ）があり、これからそのファンクションの複雑度を決定する。同様に各トランザクションファンークションにはデータ項目（ＤＥＴ）と関連ファイル（ＦＴＲ）があり、これからそのファンクションの複雑度を決定する。
【０００６】
各ファンクションの複雑度からＦＰ法で定義済みのマトリックスを参照してファンクションポイントを求め、その合計が未調整ファンクションポイントとなる。さらに、調整係数を一般システム特性と呼ばれるシステム機能要因から求め、それを掛け合わせることによりＦＰ値が求められる。
【特許文献１】特開２００２−２２２０８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ＦＰ法では、ソフトウェアの要求仕様を、特に書式の決まったものを対象にしているわけではない。構造化分析などに基づいたＥＲ図（実体関連図）やＤＦＤ図（データフロー図）などの方式で記述する場合もある。そのため、計測対象の認識基準が分かりにくくなっている。
【０００８】
最近のソフトウェア開発手法では、ＵＭＬ（統一モデリング言語）を用いたＲＵＰ（ラショナル統一プロセス）などに基づき要求仕様を作成する場合が多い。
【０００９】
ＦＰ法はＵＭＬに対応しておらず、直接計測することができない。ＦＰ法で自動で見積りを行うツール（Knowlege ＰＬＡＮ：ＳＰＲ社など）も存在しているが、ＵＭＬに対応した分析設計ツールに対応しておらず、見積り工程と分析設計工程が分断されてしまう。
【００１０】
また、ＵＭＬから工数を見積る方法としてユースケースポイント法（以下ＵＣＰ法）があるが、これはＦＰ法と似ているが、まだ歴史が浅く精度を高めるためのノウハウが蓄積されておらず、また計測対象の粒度が粗いため、精度が低いようである。
【００１１】
本発明の目的は、ＵＭＬで表現された要求仕様に対してＦＰ法を適用するための計測値を算出し、ソフトウェア規模の自動見積りができるソフトウェア開発支援システムおよび支援方法を提供することにある。
【課題を解決するための手段】
【００１２】
本発明は、前記の課題を解決するため、ＵＭＬのクラス図からＦＰ法におけるデータファンクションの内部論理ファイル（ＩＬＦ）と、外部インターフェースファイル（ＥＩＦ）を計測し、ＵＭＬのユースケース図からＦＰ法におけるトランザクションファンクションの外部入力（ＥＩ）と外部出力（ＥＯ）および外部照会（ＥＱ）を計測し、これら計測値についてそれぞれのデータ項目（ＤＥＴ）とレコード種別（ＲＥＴ）および関連ファイル（ＦＴＲ）を得、ＦＰ値さらには開発工数の自動見積りを得るようにしたもので、以下のシステムおよび方法を特徴とする。
【００１３】
（１）開発しようとするソフトウェアの要求仕様として作成したＵＭＬのクラス図とユースケース図をそれぞれデータ表現する手段と、
データ表現された前記クラス図からファンクションポイント法におけるデータファンクションの内部論理ファイル（ＩＬＦ）と、外部インターフェースファイル（ＥＩＦ）を計測する手段と、
データ表現された前記ユースケース図からファンクションポイント法におけるトランザクションファンクションの外部入力（ＥＩ）と外部出力（ＥＯ）および外部照会（ＥＱ）を計測する手段と、
前記内部論理ファイル（ＩＬＦ）、外部インターフェースファイル（ＥＩＦ）、外部入力（ＥＩ）と外部出力（ＥＯ）および外部照会（ＥＱ）のデータ項目（ＤＥＴ）とレコード種別（ＲＥＴ）および関連ファイル（ＦＴＲ）から、ファンクションポイント法のファンクションポイント値を求める手段と、
前記ファンクションポイント値からソフトウェアの開発工数の見積もりを求める手段とを備えたことを特徴とする。
【００１４】
（２）前記ユースケース内で使用するクラス群を特定するためのコラボレーション図をデータ表現する手段を備え、
前記コラボレーション図のデータ表現から前記データ項目（ＤＥＴ）と関連ファイル（ＦＴＲ）を計測することを特徴とする。
【００１５】
（３）前記クラス図、ユースケース図およびコラボレーション図のデータ表現手段は、ＸＭＬ形式でデータ表現することを特徴とする。
【００１６】
（４）開発しようとするソフトウェアの要求仕様として作成したＵＭＬのクラス図とユースケース図をそれぞれデータ表現する過程と、
データ表現された前記クラス図からファンクションポイント法におけるデータファンクションの内部論理ファイル（ＩＬＦ）と、外部インターフェースファイル（ＥＩＦ）を計測する過程と、
データ表現された前記ユースケース図からファンクションポイント法におけるトランザクションファンクションの外部入力（ＥＩ）と外部出力（ＥＯ）および外部照会（ＥＱ）を計測する過程と、
前記内部論理ファイル（ＩＬＦ）、外部インターフェースファイル（ＥＩＦ）、外部入力（ＥＩ）と外部出力（ＥＯ）および外部照会（ＥＱ）のデータ項目（ＤＥＴ）とレコード種別（ＲＥＴ）および関連ファイル（ＦＴＲ）から、ファンクションポイント法のファンクションポイント値を求める過程と、
前記ファンクションポイント値からソフトウェアの開発工数の見積もりを求める過程とを備えたことを特徴とする。
【００１７】
（５）前記ユースケース内で使用するクラス群を特定するためのコラボレーション図をデータ表現する過程を備え、
前記コラボレーション図のデータ表現から前記データ項目（ＤＥＴ）と関連ファイル（ＦＴＲ）を計測することを特徴とする。
【００１８】
（６）前記クラス図、ユースケース図およびコラボレーション図のデータ表現過程は、ＸＭＬ形式でデータ表現することを特徴とする。
【発明の効果】
【００１９】
以上のとおり、本発明によれば、以下の効果がある。
【００２０】
（１）ＵＭＬ表記をデータとして表現するため、人の書いた仕様をコンピュータなどのシステムで扱うことができる。
【００２１】
（２）ＵＭＬから自動でＦＰ算出用の計測データを生成することができる。
【００２２】
（３）ＵＭＬ表記された要求仕様から、開発工数見積りなどを行うためのソフトウェア規模を表すＦＰ値を求めることができる。
【００２３】
（４）ＵＭＬ表記された要求仕様から、ＦＰ法を使って見積りを行えるため、ＵＣＰ法などに比べて見積精度を高くすることができる。
【発明を実施するための最良の形態】
【００２４】
図１は、本発明の実施形態を示すソフトウェア開発支援システムおよび支援方法の処理手順を示す。見積りを行う者は、ユースケース図、クラス図、コラボレーション図を作成し、開発しようとするソフトウェアの要求仕様を作成する。ソフトウェア開発支援システムは、入力された要求仕様のデータ表現からクラス数、ユースケース接続数、属性数などを計測し、ＦＰ法を適用できるようなＩＬＦ、ＥＩＦ、ＥＩ、ＥＯ、ＥＱ、各ＤＥＴ、ＲＥＴ、ＦＴＲに変換する。これらの詳細を以下に説明する。
【００２５】
ＦＰ法ではデータファンクションとトランザクションファンクションを計測するが、ＵＭＬでは対応する概念をそれぞれクラスとユースケースと考えることができる。
【００２６】
そこで、本実施形態では、ＵＭＬのクラス図からＦＰ法におけるデータファンクションの内部論理ファイル（ＩＬＦ）と、外部インターフェースファイル（ＥＩＦ）を計測し、ＵＭＬのユースケース図からＦＰ法におけるトランザクションファンクションの外部入力（ＥＩ）と外部出力（ＥＯ）および外部照会（ＥＱ）を計測する。
【００２７】
図２は商品販売店舗システムをソフトウェア開発する場合のクラス図の例を示し、対象システムと外部システムで扱うデータを分析し、出現するクラスとその関係を図として作成する（Ｓ１）。クラスはなるべく詳細に作成するが、汎化クラスでまとめられるもの、あるいは汎化関係は無いがまとまって一つの意味のある情報を表すクラス群を区別し、クラス群を外部システムか対象システムかでＩＬＦ，ＥＩＦで区別する（Ｓ２）。同図の例では、「商品クラス」には、商品が在庫品か取寄品かを区別する「在庫品クラス」と「取寄品クラス」を設けたクラス図を作成する。その際、データ項目（ＤＥＴ）はクラス群内の重複しない属性の数とし、レコード種別（ＲＥＴ）はクラス群内のクラス数とする。
【００２８】
本システムでは上記のクラス図をデータとして表現する（Ｓ６）。例として、ＸＭＬ形式で表現したものを図３に示す。ここではクラス群をclassset、クラスをclass、属性をattribute、関連をrelation、汎化関係をsuperで表している。
【００２９】
ここで、classsetタグの数をtype属性で区別し、ＩＬＦ，ＥＩＦとして計測する（Ｓ７）。また、classset内のattributeタグの数をＤＥＴ、classset内のclassタグの数をＲＥＴとする。
【００３０】
図４は、ユースケース図の例を示し、対象システムが提供する機能（処理）を描き、その分類をする（Ｓ３，Ｓ４）。通常は大まかなユースケースを描いて終わりとする（ＵＣＰ法の場合はこれでよい）が、ＦＰ法を適用する場合はなるべく詳細に、ユーザから見て意味のある処理単位まで展開する必要がある。アクタとユースケースの接続はユースケースを実現する処理に相当する。そこで、処理のタイプを入力・出力・検索に分け、アクタとユースケース間の接続にそれぞれＥＩ・ＥＯ・ＥＱとラベル（ステレオタイプ）を付けておく。処理のタイプ分けの方法は、ＦＰ法のマニュアルにより見積り者の行うことであり、本システムの範囲外である。
【００３１】
本システムでは、上記のユースケース図をデータとして表現する（Ｓ６）。例として、ＸＭＬ形式で表現したものを図５に示す。ここでは、アクタをactor、ユースケースをusecase、アクタとユースケースの接続をrelation、包含関係をincludesで表している。ここでrelationタグの数をtype属性で区別し、ＥＩ，ＥＯ，ＥＱとして計測する（Ｓ８）。
【００３２】
次に、ユースケースとクラスの関連としてユースケースで使用されるオブジェクト、即ちクラスを明らかにするため、コラボレーション図を作成する（Ｓ５）。図６は「注文する」のコラボレーション図の例を示す。ＥＩ・ＥＯ・ＥＱの関連ファイル（ＦＴＲ）は対応するユースケースのコラボレーション図で出てくるクラスが属するクラス群の数、ＤＥＴはそのクラス内の重複しない属性の数とする。
【００３３】
本システムでは、コラボレーション図をデータとして表現する（Ｓ６）。例として、ＸＭＬ形式で表現したものを図７に示す。ここでは、ユースケースをusecase、アクタをactor、クラスをclass、メッセージをmessageで表している。ユースケース毎のコラボレーション図から、classをクラス図で対応するclasssetにしたものの重複しない数を、ユースケースに対応したＥＬ，ＥＯ，ＥＱの関連ファイル（ＦＴＲ）とする。また、classからクラス図でattributeを求め、その重複しない数をデータ項目（ＤＥＴ）とする。
【００３４】
但し、コラボレーション図はユースケース内で使用するクラス群を特定するために使用するだけであり、特に詳細に記述する必要はなく、クラスが明記されていればよい。
【００３５】
最後に、本システムは、以上の処理で計測されたＩＬＦ，ＥＩＦ，ＥＩ，ＥＯ，ＥＱとそれぞれのＤＥＴ，ＲＥＴ，ＦＴＲを出力する（Ｓ９）。また、これらデータからＦＰ法によりＦＰ値を求め（Ｓ１０）、さらにはこのＦＰ値から開発工数の見積りを求める。
【図面の簡単な説明】
【００３６】
【図１】本発明の実施形態を示すソフトウェア開発支援の処理手順。
【図２】実施形態におけるクラス群の例。
【図３】クラス図のデータ表現例。
【図４】実施形態におけるユースケースとアクタの関係例。
【図５】ユースケース図のデータ表現例。
【図６】実施形態における「注文する」のコラボレーション図の例。
【図７】コラボレーション図のデータ表現例。
【図８】ＦＰ法による計測項目図。
【図１】
2005222183.tif 000003
【図２】
2005222183.tif 000004
【図３】
2005222183.tif 000005
【図４】
2005222183.tif 000006
【図５】
2005222183.tif 000007
【図６】
2005222183.tif 000008
【図７】
2005222183.tif 000009
【図８】
2005222183.tif 000010