(57)【要約】【課題】ソフトウェアの開発・運用・保守コストの予測誤差を定量的に評価でき、コスト予測をサービスできるソフトウェアの開発・運用・保守コスト予測方法を提供することである。【解決手段】ソフトウェアの規模を予測するための入力パラメータ値及びその確率分布を入力し、入力した入力パラメータ値及びその確率分布に従いファンクションポイント法に基づいてソフトウェア規模の予測値の確率分布を算出し、算出されたソフトウェア規模から開発と運用と保守に要する工数及びステップ数をばらつきを持った数値の集合で予測し、予測された工数及びステップ数の値が予算の許容範囲を逸脱する確率をリスクとして評価する。【選択図】  図１
2004199119.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアの規模を予測するための入力パラメータ値及びその確率分布を入力し、入力した入力パラメータ値及びその確率分布に従いファンクションポイント法に基づいてソフトウェア規模の予測値の確率分布を算出し、算出されたソフトウェア規模から開発と運用と保守に要する工数及びステップ数をばらつきを持った数値の集合で予測し、予測された工数及びステップ数の値が予算の許容範囲を逸脱する確率をリスクとして評価することを特徴とするソフトウェアの開発・運用・保守コスト予測方法。
【請求項２】
前記入力パラメータは、少なくとも外部入力数、外部出力数、外部照会数、内部論理ファイル数、外部インターフェイス数の５つの入力パラメータを含むことを特徴とする請求項１記載のソフトウェアの開発・運用・保守コスト予測方法。
【請求項３】
ソフトウェアの規模を予測するための入力パラメータ値及びその確率分布を入力するためのクライアント計算機と、前記クライアント計算機から入力された入力パラメータ値及びその確率分布に従いファンクションポイント法に基づいてソフトウェア規模の予測値の確率分布を算出し、開発と運用と保守に要する工数及びステップ数の値を前記クライアント計算機に提示するサーバ計算機と、前記クライアント計算機と前記サーバ計算機とを接続する通信手段とを備えたことを特徴とするソフトウェアの開発・運用・保守コスト予測システム。
【請求項４】
前記通信手段は企業内のイントラネットであり、前記クライアント計算機はソフトウェアを利用する部署に設置され、前記サーバ計算機は外注業者への発注業務を担当する部署に設置され、前記クライアント計算機はソフトウェアを利用する部署がソフトウェアの設計情報に関わる外注費の見積もり条件を入力してソフトウェアの外注費の見積もり依頼をし、前記サーバ計算機は前記クライアント計算機から入力された条件に従って外注費の見積もりを行うことを特徴とする請求項３記載のソフトウェアの開発・運用・保守コスト予測システム。
【請求項５】
前記通信手段はインターネットであり、前記クライアント計算機はソフトウェアを利用するユーザに設置され、前記サーバ計算機はソフトウェアの見積もりのサービスを提供するコンサルテーション会社に設置され、前記クライアント計算機は個人または企業がソフトウェアの設計情報に関わる外注費の見積もり条件を入力してソフトウェアの開発・運用・保守コストの見積もりを依頼し、前記サーバ計算機は前記クライアント計算機から入力された条件に従ってコストの見積もりを行い、見積もり結果を提示することを特徴とする請求項３記載のソフトウェアの開発・運用・保守コスト予測システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、設計情報に基づいてソフトウェアの規模を推定し、ソフトウェアの開発・運用・保守に必要となる作業項目とそれぞれの作業に要するコストを予測するソフトウェアの開発・運用・保守コスト予測方法及びシステムに関する。
【０００２】
【従来の技術】
ソフトウェアの規模を推定するものとしてファンクションポイント（ＦＰ）法があり、入力パラメータを入力して複雑度による補正を行って調整前ＦＰ値を求め、さらにシステム特性要因による重み付けを行って調整後ＦＰ値を算出する。最後に調整後ＦＰ値をベースとして、生産係数から作業項目別の工数、言語別換算係数から選定したプログラミング言語で開発した場合のステップ数を推定する。ここで、ファンクションポイントの算出式、生産係数、言語別換算係数などは、米国における過去のソフト開発プロジェクトの評価結果に基づいて決定されている。また、上記のようなファンクションポイント法（例えば、非特許文献１参照）や過去の事例に基づくソフトウェアの規模予測は市販ツールとして提供されている。
【０００３】
【非特許文献１】
鶴保征城、富野壽監訳「ソフトウェア開発の定量化手法、発行者：（株）構造計画研究所、発売元：共立出版株式会社、２０００年１０月５日発行、Ｐ４４１〜Ｐ４４４」
【０００４】
【発明が解決しようとする課題】
ところが、ソフトウェアの規模を推定する従来のファンクションポイント法では、入力パラメータとなる設計情報の測定が困難であること、入力パラメータから規模やコストを予測する関係式が一意的に決まっていないこと、開発するソフトウェアの分野や運用環境に応じて種々の補正が必要であることなどから、予測誤差を精度良く評価することが困難である。
【０００５】
さらに、関係式や補正係数の決定根拠は、過去のソフト開発プロジェクトの評価結果に基づいているが、これらは米国におけるデータであり、日本の実情に合っているとは限らない。このため、予測された値がどの程度の確からしさを持ち、予算を超過する危険がどの程度あるかを見込むことが困難であった。
【０００６】
また、ファンクションポイント法や過去の事例に基づいてソフトウェアの規模を予測するツールは市販されているものの、開発、運用、保守のさまざまな局面に応じて発生するコストの見積もり提示し、ソフトウェアの利用者に対してインタラクティヴにコンサルテーションサービスを提供することはなかった。
【０００７】
そこで、本発明は、ソフトウェアの開発・運用・保守コストの予測誤差を定量的に評価でき、コスト予測をサービスできるソフトウェアの開発・運用・保守コスト予測方法及びシステムを提供することを目的とする。
【０００８】
【課題を解決するための手段】
本発明のソフトウェアの開発・運用・保守コスト予測方法は、ソフトウェアの規模を予測するための入力パラメータ値及びその確率分布を入力し、入力した入力パラメータ値及びその確率分布に従いファンクションポイント法に基づいてソフトウェア規模の予測値の確率分布を算出し、算出されたソフトウェア規模から開発と運用と保守に要する工数及びステップ数をばらつきを持った数値の集合で予測し、予測された工数及びステップ数の値が予算の許容範囲を逸脱する確率をリスクとして評価する。
【０００９】
本発明のソフトウェアの開発・運用・保守コスト予測システムは、ユーザのクライアント計算機１１とファンクションポイントの計算プログラムがインストールされたサーバ計算機１２とは通信手段にて接続され、ソフトウェアの規模を予測するための入力パラメータ値及びその確率分布をクライアント計算機から入力する。サーバ計算機は、クライアント計算機から入力された入力パラメータ値及びその確率分布に従いファンクションポイント法に基づいてソフトウェア規模の予測値の確率分布を算出し、開発と運用と保守に要する工数及びステップ数の値をクライアント計算機に提示する。
【００１０】
【発明の実施の形態】
以下、本発明の実施の形態を説明する。図１は本発明の第１の実施の形態に係るソフトウェアの開発・運用・保守コスト予測方法の工程の説明図である。ソフトウェアの規模を予測するための入力パラメータ値及びその確率分布を入力するにあたり、ファンクションポイント法の入力パラメータとしての外部入力数ＥＩ、外部出力数ＥＯ、外部照会数ＥＱ、内部論理ファイル数ＩＬＦ、外部インターフェイス数ＥＩＦの値を測定し、その確率分布を定める。
【００１１】
すなわち、図２に示す実体関連図(ERD : Entity Relation Diagram)や図３に示すデータフローダイアグラム(DFD : Data Flow Diagram)などの設計情報から計測される入力パラメータ値を最確値（Ｍ）として定める。図２及び図３では、プラントの運転データをデータベースに登録するためのソフトウェアの場合を示している。図２において、エンティティの種類と計測方法は以下のとおりである。
【００１２】
（１）基本エンティティ
独立した実態概念
データファンクション（ＩＬＦ：内部論理ファイル、ＥＩＦ：外部インターフェースファイル）として計測
（２）関連エンティティ
基本エンティティの関係性を示す概念
関連が｛複数：複数｝のものをデータファンクションとして計測
（３）属性エンティティ
基本エンティティの属性、集約関係で表される概念
基本エンティティと一体のデータ要素型（ＤＥＴ）として計測
（４）副エンティティ
汎化関係で表される部分集合の概念
＜完全＞（部分集合に抜けがない）の場合は、部分集合をレコード要素型（ＲＥＴ）として計測
＜不完全＞の場合は、全体と部分の共通部、及び、部分集合部の和をレコード要素として計測
次に、個々の入力パラメータについて、経験的に妥当と思われる誤差の確率分布を仮定する。例えば、確率分布として正規分布を考える場合には、経験的に妥当と思われる平均的な誤差幅Ｓ１、または、現実的に考えられる最大の誤差幅Ｓ２を仮定する。図４は正規分布による確率分布のランダム変数の説明図であり、図４（ａ）は平均値と標準偏差がそれぞれ最確値Ｍと誤差幅Ｓ１で定まる正規分布をもつ確率変数の特性図、図４（ｂ）は平均値と標準偏差の３倍がそれぞれ最確値Ｍと最大の誤差幅Ｓ２で定まる正規分布をもつランダムな確率変数の特性図である。そして、図４（ａ）または図４（ｂ）の確率分布を各々の入力パラメータ（外部入力数ＥＩ、外部出力数ＥＯ、外部照会数ＥＱ、内部論理ファイル数ＩＬＦ、外部インターフェイス数ＥＩＦ）に対して入力する。
【００１３】
すなわち、外部入力数ＥＩ、外部出力数ＥＯ、外部照会数ＥＱ、内部論理ファイル数ＩＬＦ、外部インターフェイス数ＥＩＦの５つの入力パラメータに対して、それぞれの計測値と平均的な誤差（または誤差の最大幅）を入力し、入力された上記２つの値を平均値と標準偏差またはその倍数とする正規分布を与え、決定された正規分布に従う確率変数を発生させる。
【００１４】
次に、各々の入力パラメータ（外部入力数ＥＩ、外部出力数ＥＯ、外部照会数ＥＱ、内部論理ファイル数ＩＬＦ、外部インターフェイス数ＥＩＦ）に対して、複雑度による補正を行って調整前ＦＰ値を求める。複雑度は「低、中、高」の３段階である。
【００１５】
さらに、システム特性要因について評価により重み付けを行って調整後ＦＰ値を算出する。システム特性要因は、データ通信Ｃ１、機能の分散度Ｃ２、性能目標Ｃ３、利用制約Ｃ４、トランザクション量Ｃ５、オンラインデータエントリＣ６、エンドユーザ効率Ｃ７、オンライン更新Ｃ８、複雑な処理Ｃ９、再利用可能性Ｃ１０、インストールの容易性Ｃ１１、操作の容易性Ｃ１２、複数サイトＣ１３、更新の用意性Ｃ１４の１４項目からなり、それぞれ６段階の難易度評価（影響がない、とるに足らない影響、軽い影響、平均的な影響、かなりの影響、強い影響）により±０．３５の重み付けを行って調整済ＦＰ値を算出する。
【００１６】
この調整済ＦＰ値に指定したプログラミング言語の換算係数を掛けることによって論理ステップ数を算出し、生産係数を掛けることによって開発・運用・保守に係わる作業項目とそれぞれの工数を得る。入力パラメータとしてランダム変数を与えているため、ステップ数と工数もばらつきを持った数値の集合で表され、誤差の分布を定量的に把握することができる。これにより、予測された工数及びステップ数の値が予算の許容範囲を逸脱する確率をリスクとして評価できる。
【００１７】
以上の説明では、確率分布として正規分布の場合について説明したが、図５に示すように、正規分布以外の入力パラメータの分布を定義することも可能である。すなわち、確率分布として、三角分布、対数正規分布、一様分布、指数分布、ワイブル分布、ベータ分布を扱えるようにしても良い。
【００１８】
次に、本発明の第２の実施の形態について説明する。図６は本発明の第２の実施の形態に係るソフトウェアの開発・運用・保守コスト予測システムのブロック構成図である。この第２の実施の形態に係るソフトウェアの開発・運用・保守コスト予測システムは、ファンクションポイントの計算プログラムがインストールされたコンピュータだけでなく、ネットワークにつながった多数のコンピュータからファンクションポイントの計算プログラムを利用できるようにしたものである。
【００１９】
ユーザのクライアント計算機１１とファンクションポイントの計算プログラムがインストールされたサーバ計算機１２とは通信手段にて接続されている。クライアント計算機１１には、ソフトウェアの規模を予測するための入力パラメータ値及びその確率分布が入力される。すなわち、ソフトウェアの設計情報の入力パラメータが入力され（Ｓ１）、複雑度が入力され（Ｓ２）、さらにシステム特性要因が入力される（Ｓ３）。
【００２０】
サーバ計算機１２はクライアント計算機１１から入力された確率分布の入力パラメータ値及び複雑度に基づいて、調整前ＦＰ値を計算し（Ｓ４）、さらに調整前ＦＰ値に対しシステム特性要因及び評価に基づいて調整済ＦＰ値を計算する（Ｓ５）。そして、生産性計数を用いて開発と運用と保守に要する工数を算出しさらに作業項目別コストを予測計算すると共に（Ｓ６）、言語別換算計数を用いてステップ数の値を予測計算し（Ｓ７）、クライアント計算機１１に予測計算結果を提示する（Ｓ８）。
【００２１】
このように、ソフトウェアの開発・運用・保守を担当するユーザは、規模を予測するための入力パラメータ値とその確率分布をクライアント計算機１１からインプットし、ネットワークを介して見積もり作業を管理するサーバ計算機１２に送信する。サーバ計算機１２は当該ソフトウェアの調整前ＦＰ値を算出し、この値を基に、生産性係数から作業項目別の工数、言語別換算係数から選定したプログラミング言語で開発した場合のステップ数が算出され、ネットワークを介してクライアント計算機１１に送られてユーザに提示される。
【００２２】
第２の実施の形態によれば、サーバ計算機１２を通信手段（ネットワーク）に接続しクライアント計算機１１からのアクセスを可能としたので、ファンクションポイントの計算プログラムがインストールされたサーバ計算機１２だけでなく、ネットワークにつながった多数のクライアント計算機１１からファンクションポイントの計算プログラムを利用できる。さらに、多数の見積もりＪＯＢのデータベースに共有することで、種種の補正係数や換算係数を分野や用途に応じてカスタマイズが容易になる。
【００２３】
次に、本発明の第３の実施の形態について説明する。図７は本発明の第３の実施の形態に係るソフトウェアの開発・運用・保守コスト予測システムのブロック構成図である。この第３の実施の形態は、図６に示した第２の実施の形態の通信手段を企業内のイントラネットとし、企業内のソフトウェア開発に関わる部門の担当者が外注作業の見積もり額を得られるようにし、同企業内で外注業者に発注業務に関わる担当者が適切な価格でプログラミング作業の委託作業を外注業者に発注できるようにしたものである。
【００２４】
クライアント計算機１１はソフトウェアを利用する部署に設置され、サーバ計算機１２は外注業者への発注業務を担当する部署に設置され、企業内のイントラネット１３に接続されている。企業のソフトウェアを利用する部署で利用するプログラムを外注作業で作成する場合に、担当者は要求仕様に従って入力パラメータ値とその確率分布をクライアント計算機１１からインプットする。このデータはイントラネット１３を介してサーバ計算機１２に送られる。サーバ計算機１２は、ファンクションポイント計算プログラムで計算されたＦＰ値に基づいて、外注作業の見積もり額を算出し、依頼元の部署に見積もり額を提示する。この見積もり額が依頼元である部署の予算と合わない場合には、仕様を変更して予算に合った開発内容になるように調整することになる。
【００２５】
次に、この見積もり内容は資材調達などの発注作業を管理する部署に伝達され、発注担当者は依頼元の部署から提示された仕様に基づいて外注業者１４に見積もり依頼を提出する。発注業務に関わる部署の担当者は外注業者から回答された見積もり額とサーバ計算機１２による見積もり額とを比較し、予算を下回る中で最も近い見積もり額を提示した業者に発注することになる。
【００２６】
第３の実施の形態によれば、企業内で予めソフトウェアの作成作業の見積もり額を算出できるので、適切な価格でプログラミング作業の委託作業をソフトウェアの開発を請け負う外注業者に発注することができる。
【００２７】
次に、本発明の第４の実施の形態について説明する。図８は本発明の第４の実施の形態に係るソフトウェアの開発・運用・保守コスト予測システムのブロック構成図である。この第４の実施の形態は、図６に示した第２の実施の形態の通信手段をインターネットとし、ソフトウェアの開発・運用・保守に関わる個人ユーザまたは企業ユーザがソフトウェア開発に関わる作業のコストを得られるようにしたものである。
【００２８】
クライアント計算機１１はソフトウェアを利用する個人ユーザ１５や企業ユーザ１６に設置され、サーバ計算機１２はソフトウェアの見積もりのサービスを提供するコンサルテーション会社１７に設置され、インターネット１８を介して接続されている。
【００２９】
個人ユーザ１５または企業ユーザ１６はインターネット１８を介してコンサルテーション会社１７のホームページにアクセスする。この場合、初めての利用であればユーザ登録をし、２回目以降の利用であればユーザ認証を経て、ソフトウェアの開発・運用・保守に関わるコンサルテーションサービスを選択し、提示されたサービス内容とその費用を確認した上でコンサルテーション会社１７と契約を結ぶ。
【００３０】
次に、個人ユーザ１５または企業ユーザ１６が要求された入力パラメータとその確率分布を入力すると、ソフトウェアの開発・運用・保守に関わる作業項目とそれぞれのコストが提示される。個人ユーザ１５または企業ユーザ１６の予算が不足している場合には、コンサルテーション会社１７は、優先度の低い機能を削ったり、バグ検出率の低いモジュールの試験を簡略化したりするなどしてコストダウンの方法を提示し、機能上の要求仕様とコスト上の制約の中で最適なソリューションを提供する。
【００３１】
第４の実施の形態によれば、個人ユーザ１５または企業ユーザ１６はこのようなサービスを受けることにより、自分が担当するソフトウェアの開発・運用・保守に関わるコストの適正額を知ることができ、これに基づいた予算計画を立てることができる。また、コンサルテーション会社１７は個人ユーザ１５または企業ユーザ１６にこのようなサービスを提供することによって、その内容に見合った対価を得ることができる。
【００３２】
【発明の効果】
以上述べたように、本発明によれば、ファンクションポイント法の入力パラメータについて、設計情報から計測される１個の値だけでなく、ソフト開発者の経験から予想される誤差のバラツキを統計的に表現して確率変数として扱うので、ソフトウェアの規模をバラツキまで含めて予測することができる。これにより、ソフトウェアの開発・運用・保守コストを、経験的に考えられる誤差分布と共に推定することができ、予算の許容範囲を逸脱する確率をリスクとして評価することができる。また、このコスト予測機能をイントラネットやインターネット上にクライアント／サーバ型のシステムとして構築することで、企業におけるソフト外注作業の見積もりの自動化やＷｅｂ上のソフト見積もりコンサルテーションサービスが可能となる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係るソフトウェアの開発・運用・保守コスト予測方法の工程の説明図。
【図２】本発明の第１の実施の形態における入力パラメータを求めるための実体関連図の一例の説明図。
【図３】本発明の第１の実施の形態における入力パラメータを求めるためのデータフローダイアグラムの一例の説明図。
【図４】本発明の第１の実施の形態における正規分布による確率分布のランダム変数の説明図。
【図５】本発明の第１の実施の形態で使用可能な入力パラメータの確率分布の説明図。
【図６】本発明の第２の実施の形態に係るソフトウェアの開発・運用・保守コスト予測システムのブロック構成図。
【図７】本発明の第３の実施の形態に係るソフトウェアの開発・運用・保守コスト予測システムのブロック構成図。
【図８】本発明の第４の実施の形態に係るソフトウェアの開発・運用・保守コスト予測システムのブロック構成図。
【符号の説明】
１１…クライアント計算機、１２…サーバ計算機、１３…イントラネット、１４…外注業者、１５…個人ユーザ、１６…企業ユーザ、１７…コンサルテーション会社、１８…インターネット
【図１】
2004199119.tif 000003
【図２】
2004199119.tif 000004
【図３】
2004199119.tif 000005
【図４】
2004199119.tif 000006
【図５】
2004199119.tif 000007
【図６】
2004199119.tif 000008
【図７】
2004199119.tif 000009
【図８】
2004199119.tif 000010