(57)【要約】      （修正有）【課題】ソフトウエア製品における機能カスタマイズに伴う他機能への影響波及を考慮でき、実工数とのギャップが少ない見積工数算定を可能とする。【解決手段】カスタマイズが必要な箇所と実行予定のカスタマイズパターンとに関する情報を含むカスタマイズ仕様の入力を受付けるカスタマイズ仕様取得部１１０と、前記カスタマイズ仕様を影響パターンテーブル１２５に照合して、カスタマイズによって影響を受けるコンポーネントの影響パターンを抽出すると共に、当該影響パターンをコンポーネント間依存関係テーブル１２６に照合して、カスタマイズによって影響を受けるソフトウェアの機能を特定する影響解析部１１１と、前記特定したソフトウェアの機能の数に、カスタマイズパターン単価テーブル１２７における影響機能あたりの追加単価を乗じて、カスタマイズ工数を算出し、これを適宜な出力インターフェイスに出力する工数算出部１１２とから構成する。【選択図】図１
2006134225.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウエアのカスタマイズに伴う変更工数の見積りを行うシステムであって、
パターン化されたカスタマイズ方式であるカスタマイズパターンと、カスタマイズによる他のコンポーネントへの影響パターンとの関連づけ情報を格納した影響パターンテーブルと、
ソフトウエアが提供する機能毎に、各機能を構成するコンポーネントの依存関係を定義したコンポーネント間依存関係情報を格納したコンポーネント間依存関係テーブルと、
カスタマイズパターン毎に基本となる工数単価と、カスタマイズにより工数追加の影響を受ける影響機能あたりの追加単価とを定義したカスタマイズパターン単価情報を格納したカスタマイズパターン単価テーブルと、
カスタマイズが必要な箇所と実行予定のカスタマイズパターンとに関する情報を含むカスタマイズ仕様の入力を適宜な入力インターフェイスより受付ける、カスタマイズ仕様取得部と、
前記カスタマイズ仕様を前記影響パターンテーブルに照合して、カスタマイズによって影響を受けるコンポーネントの影響パターンを抽出すると共に、当該影響パターンを前記コンポーネント間依存関係テーブルに照合して、カスタマイズによって影響を受けるソフトウェアの機能を特定する影響解析部と、
前記特定したソフトウェアの機能の数に、前記カスタマイズパターン単価テーブルにおける影響機能あたりの追加単価を乗じて、カスタマイズ工数を算出し、これを適宜な出力インターフェイスに出力する工数算出部と、
を備えることを特徴とするソフトウエアカスタマイズ工数見積システム。
【請求項２】
請求項１において、
前記工数算出部が、前記算出したカスタマイズ工数に、工数増加につながる機能の複雑性に応じて重み付けがされた所定の調整係数を乗じて、高精度カスタマイズ工数を算出することを特徴とするソフトウエアカスタマイズ工数見積システム。
【請求項３】
請求項１または２において、
前記影響解析部は、前記コンポーネント間依存関係テーブルにおいて前記影響パターンに該当するコンポーネントを検索すると共に、当該検索した各コンポーネント間での呼び出しルートをたどることで当該ルートに係る機能を抽出し、当該抽出した機能を、カスタマイズによって影響を受けるソフトウェアの機能として特定することを特徴とするソフトウエアカスタマイズ工数見積システム。
【請求項４】
ソフトウエアのカスタマイズに伴う変更工数の見積りを、パターン化されたカスタマイズ方式であるカスタマイズパターンと、カスタマイズによる他のコンポーネントへの影響パターンとの関連づけ情報を格納した影響パターンテーブルと、ソフトウエアが提供する機能毎に、各機能を構成するコンポーネントの依存関係を定義したコンポーネント間依存関係情報を格納したコンポーネント間依存関係テーブルと、カスタマイズパターン毎に基本となる工数単価と、カスタマイズにより工数追加の影響を受ける影響機能あたりの追加単価とを定義したカスタマイズパターン単価情報を格納したカスタマイズパターン単価テーブルとを備えたコンピュータにより行う方法であって、
カスタマイズが必要な箇所と実行予定のカスタマイズパターンとに関する情報を含むカスタマイズ仕様の入力を適宜な入力インターフェイスより受付け、
前記カスタマイズ仕様を前記影響パターンテーブルに照合して、カスタマイズによって影響を受けるコンポーネントの影響パターンを抽出すると共に、当該影響パターンを前記コンポーネント間依存関係テーブルに照合して、カスタマイズによって影響を受けるソフトウェアの機能を特定し、
前記特定したソフトウェアの機能の数に、前記カスタマイズパターン単価テーブルにおける影響機能あたりの追加単価を乗じて、カスタマイズ工数を算出し、これを適宜な出力インターフェイスに出力する、ことを特徴とするソフトウエアカスタマイズ工数見積方法。
【請求項５】
ソフトウエアのカスタマイズに伴う変更工数の見積り方法を、パターン化されたカスタマイズ方式であるカスタマイズパターンと、カスタマイズによる他のコンポーネントへの影響パターンとの関連づけ情報を格納した影響パターンテーブルと、ソフトウエアが提供する機能毎に、各機能を構成するコンポーネントの依存関係を定義したコンポーネント間依存関係情報を格納したコンポーネント間依存関係テーブルと、カスタマイズパターン毎に基本となる工数単価と、カスタマイズにより工数追加の影響を受ける影響機能あたりの追加単価とを定義したカスタマイズパターン単価情報を格納したカスタマイズパターン単価テーブルとを備えたコンピュータに実行させるプログラムであって、
カスタマイズが必要な箇所と実行予定のカスタマイズパターンとに関する情報を含むカスタマイズ仕様の入力を適宜な入力インターフェイスより受付けるステップと、
前記カスタマイズ仕様を前記影響パターンテーブルに照合して、カスタマイズによって影響を受けるコンポーネントの影響パターンを抽出すると共に、当該影響パターンを前記コンポーネント間依存関係テーブルに照合して、カスタマイズによって影響を受けるソフトウェアの機能を特定するステップと、
前記特定したソフトウェアの機能の数に、前記カスタマイズパターン単価テーブルにおける影響機能あたりの追加単価を乗じて、カスタマイズ工数を算出し、これを適宜な出力インターフェイスに出力するステップと、
を備えることを特徴とするソフトウエアカスタマイズ工数見積プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウエアカスタマイズ工数見積方法、ソフトウエアカスタマイズ工数見積方法、ソフトウエアカスタマイズ工数見積プログラムに関する。
【背景技術】
【０００２】
従来、ソフトウエア製品の開発工程の見積を実施する場合には、過去の事例データを元に見積を実施するのが一般的であった。こうした技術としては例えば、ソフトウエア開発上の条件を表す要因情報に対し、特定の条件での過去の開発実績におけるソフトウエア機能量と工程数とを組にして対応づけ、実績情報として格納する要因データベースと、仕様情報の入力を受けて、当該仕様情報に基づいてソフトウエア機能量を算出するソフトウエア機能量算出部と、前記要因データベースに格納されている実績情報を用いて、前記ソフトウエア機能量に基づいて見積の結果としての見積工程数を算出する見積工程数算出部とを具備するソフトウエア開発コストの見積支援システムにおいて、前記要因データベースに同一の要因情報に対応づけられて格納されている、少なくとも一組の実績情報に基づいて生成された、ソフトウエア機能量に対する見積工程数を表す関係近似式を当該要因情報に対応づけて格納する関係近似式データベースを含み、前記見積工程数算出部が、見積作成時にソフトウエア開発上の条件の入力を受けて、当該条件に合致する前記要因情報に対応づけられた関係近似式を前記関係近似式データベースから検索し、当該関係近似式に基づいて、前記算出されたソフトウエア機能量に対応する見積工程数を算出することを特徴とするソフトウエア開発コストの見積支援システム（特許文献１参照）などが提案されている。
【特許文献１】特開２０００−３３９１４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、従来はカスタマイズ工数の見積を実施する方法として、（１）簡易的に実施する場合、ソフトウエア製品の母体機能規模に、何らかのカスタマイズ率を掛けることで、カスタマイズ規模を算出し、工数を見積る手法、（２）詳細に実施する場合、ＵＩ、プログラム、データベースといった構成要素毎に、カスタマイズが必要な点を洗い出して母体との差を明確にすることで、カスタマイズ規模を算出し、工数を見積る手法、の２通りの方法が提案されている。
【０００４】
しかしながら、前者（１）の技術の場合、具体的にどのようなカスタマイズを実施するかは考慮されておらず、おおよその変更量をカスタマイズ率として任意に設定しているため、見積工数と実工数との間に大きなギャップが生じる可能性が高かった。また、カスタマイズを実施することで、他の機能に対して影響が波及する場合があるが、他の機能のカスタマイズ工数については考慮されていなかった。
【０００５】
また、後者（２）の技術の場合、詳細見積を実施するには多大な工数が必要であり、製品提案時の活動において詳細見積を実施することは困難と考えられる。また、詳細見積が可能となるレベルまでカスタマイズ要件が明確になっていない場合が多い。さらに、正確に見積を実施するためには、ソフトウエア製品の内部構造に関する深い知識が必要であり、製品開発者以外のＳＥやＳＩパートナーがこのような見積を実施することは困難となっていた。
【０００６】
なお、特許文献１で示す従来技術においては、新規にソフトウエアを開発する場合を想定しており、さらに母体ソフトウエアのカスタマイズを対象とし、カスタマイズパターンを元に見積を実施することについては提案されていなかった。
【０００７】
そこで本発明は上記課題を鑑みてなされたものであり、ソフトウエア製品における機能カスタマイズに伴う他機能への影響波及を考慮でき、実工数とのギャップが少ない見積工数算定を可能とする、ソフトウエアカスタマイズ工数見積システム、ソフトウエアカスタマイズ工数見積方法、ソフトウエアカスタマイズ工数見積プログラムを提供することを主たる目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決する本発明のソフトウエアカスタマイズ工数見積システムは、ソフトウエアのカスタマイズに伴う変更工数の見積りを行うシステムであって、パターン化されたカスタマイズ方式であるカスタマイズパターンと、カスタマイズによる他のコンポーネントへの影響パターンとの関連づけ情報を格納した影響パターンテーブルと、ソフトウエアが提供する機能毎に、各機能を構成するコンポーネントの依存関係を定義したコンポーネント間依存関係情報を格納したコンポーネント間依存関係テーブルと、カスタマイズパターン毎に基本となる工数単価と、カスタマイズにより工数追加の影響を受ける影響機能あたりの追加単価とを定義したカスタマイズパターン単価情報を格納したカスタマイズパターン単価テーブルと、カスタマイズが必要な箇所と実行予定のカスタマイズパターンとに関する情報を含むカスタマイズ仕様の入力を適宜な入力インターフェイスより受付ける、カスタマイズ仕様取得部と、前記カスタマイズ仕様を前記影響パターンテーブルに照合して、カスタマイズによって影響を受けるコンポーネントの影響パターンを抽出すると共に、当該影響パターンを前記コンポーネント間依存関係テーブルに照合して、カスタマイズによって影響を受けるソフトウェアの機能を特定する影響解析部と、前記特定したソフトウェアの機能の数に、前記カスタマイズパターン単価テーブルにおける影響機能あたりの追加単価を乗じて、カスタマイズ工数を算出し、これを適宜な出力インターフェイスに出力する工数算出部と、を備えることを特徴とする（第１の発明）。
【０００９】
第２の発明は、第１の発明において、前記工数算出部が、前記算出したカスタマイズ工数に、工数増加につながる機能の複雑性に応じて重み付けがされた所定の調整係数を乗じて、高精度カスタマイズ工数を算出することを特徴とする。
【００１０】
第３の発明は、第１または第２の発明において、前記影響解析部は、前記コンポーネント間依存関係テーブルにおいて前記影響パターンに該当するコンポーネントを検索すると共に、当該検索した各コンポーネント間での呼び出しルートをたどることで当該ルートに係る機能を抽出し、当該抽出した機能を、カスタマイズによって影響を受けるソフトウェアの機能として特定することを特徴とする。
【００１１】
第４の発明は、ソフトウエアのカスタマイズに伴う変更工数の見積りを、パターン化されたカスタマイズ方式であるカスタマイズパターンと、カスタマイズによる他のコンポーネントへの影響パターンとの関連づけ情報を格納した影響パターンテーブルと、ソフトウエアが提供する機能毎に、各機能を構成するコンポーネントの依存関係を定義したコンポーネント間依存関係情報を格納したコンポーネント間依存関係テーブルと、カスタマイズパターン毎に基本となる工数単価と、カスタマイズにより工数追加の影響を受ける影響機能あたりの追加単価とを定義したカスタマイズパターン単価情報を格納したカスタマイズパターン単価テーブルとを備えたコンピュータにより行う方法であって、カスタマイズが必要な箇所と実行予定のカスタマイズパターンとに関する情報を含むカスタマイズ仕様の入力を適宜な入力インターフェイスより受付け、前記カスタマイズ仕様を前記影響パターンテーブルに照合して、カスタマイズによって影響を受けるコンポーネントの影響パターンを抽出すると共に、当該影響パターンを前記コンポーネント間依存関係テーブルに照合して、カスタマイズによって影響を受けるソフトウェアの機能を特定し、前記特定したソフトウェアの機能の数に、前記カスタマイズパターン単価テーブルにおける影響機能あたりの追加単価を乗じて、カスタマイズ工数を算出し、これを適宜な出力インターフェイスに出力する、ことを特徴とする。
【００１２】
第５の発明は、ソフトウエアのカスタマイズに伴う変更工数の見積り方法を、パターン化されたカスタマイズ方式であるカスタマイズパターンと、カスタマイズによる他のコンポーネントへの影響パターンとの関連づけ情報を格納した影響パターンテーブルと、ソフトウエアが提供する機能毎に、各機能を構成するコンポーネントの依存関係を定義したコンポーネント間依存関係情報を格納したコンポーネント間依存関係テーブルと、カスタマイズパターン毎に基本となる工数単価と、カスタマイズにより工数追加の影響を受ける影響機能あたりの追加単価とを定義したカスタマイズパターン単価情報を格納したカスタマイズパターン単価テーブルとを備えたコンピュータに実行させるプログラムであって、カスタマイズが必要な箇所と実行予定のカスタマイズパターンとに関する情報を含むカスタマイズ仕様の入力を適宜な入力インターフェイスより受付けるステップと、前記カスタマイズ仕様を前記影響パターンテーブルに照合して、カスタマイズによって影響を受けるコンポーネントの影響パターンを抽出すると共に、当該影響パターンを前記コンポーネント間依存関係テーブルに照合して、カスタマイズによって影響を受けるソフトウェアの機能を特定するステップと、前記特定したソフトウェアの機能の数に、前記カスタマイズパターン単価テーブルにおける影響機能あたりの追加単価を乗じて、カスタマイズ工数を算出し、これを適宜な出力インターフェイスに出力するステップと、を備えることを特徴とする。
【００１３】
その他、本願が開示する課題、及びその解決方法は、発明の実施の形態の欄、及び図面により明らかにされる。
【発明の効果】
【００１４】
本発明によれば、ソフトウエア製品における機能カスタマイズに伴う他機能への影響波及を考慮でき、実工数とのギャップが少ない見積工数算定が可能となる。
【発明を実施するための最良の形態】
【００１５】
−−−システム構成−−−
以下に本発明の実施形態について図面を用いて詳細に説明する。本実施形態では、一例として、Ｉｎｔｅｒｎｅｔ／Ｉｎｔｒａｎｅｔを介して、社内ＳＥ（システムエンジニア  以下同様）部門や、社外の関連組織／ＳＩ（システムインテグレータ  以下同様）パートナーがソフトウエア製品のカスタマイズ工数見積を実施する状況を想定する。この場合、端末１０、１１は、利用ユーザ（社内ＳＥ部門や社外の関連会社／ＳＩパートナー）の環境で、Ｉｎｔｅｒｎｅｔ／Ｉｎｔｒａｎｅｔなどのネットワーク１３０を介してソフトウェアカスタマイズ工数見積システム１００にアクセスすることとなる。
【００１６】
図１は本実施形態におけるソフトウエアカスタマイズ工数見積システムを含むネットワーク構成図である。本発明のソフトウエアカスタマイズ工数見積システム１００（以下、システム１００）は、本発明のソフトウエアカスタマイズ工数見積方法を実行する機能を実現すべく書き換え可能メモリなどのプログラムデータベース１０１に格納されたプログラム１０２をメモリ１０３に読み出し、演算装置たるＣＰＵ１０４により実行する。
【００１７】
また、前記システム１００は、コンピュータ装置が一般に備えている各種キーボードやボタン類などの入出力インターフェイス１０５、ならびに社内ＳＥ部門の端末１０や社外端末１１などの外部装置１５０との間のデータ授受を担う通信手段１０６などを有している。
【００１８】
システム１００は、前記通信手段１０６により、前記外部装置１５０と例えばインターネットやＬＡＮ、シリアル・インターフェース通信線などのネットワーク１３０を介して接続し、ソフトウェアカスタマイズ工数見積に関する指示や結果等のデータの送受信を実行する。システム１００の各種機能部と通信手段１０６との間ではＩ／Ｏ部１０７がデータのバッファリングや各種仲介処理を実行している。
【００１９】
続いて、前記システム１００が例えばプログラム１０２に基づき構成・保持する機能部につき説明を行う。なお、システム１００は、パターン化されたカスタマイズ方式であるカスタマイズパターンと、カスタマイズによる他のコンポーネントへの影響パターンとの関連づけ情報を格納した影響パターンテーブル１２５と、ソフトウエアが提供する機能毎に、各機能を構成するコンポーネントの依存関係を定義したコンポーネント間依存関係情報を格納したコンポーネント間依存関係テーブル１２６と、カスタマイズパターン毎に基本となる工数単価と、カスタマイズにより工数追加の影響を受ける影響機能あたりの追加単価とを定義したカスタマイズパターン単価情報を格納したカスタマイズパターン単価テーブル１２７とを備えているものとする。
【００２０】
システム１００は、カスタマイズが必要な箇所と実行予定のカスタマイズパターンとに関する情報を含むカスタマイズ仕様の入力を適宜な入力インターフェイスより受付ける、カスタマイズ仕様取得部１１０を備える。
【００２１】
また、システム１００は、前記カスタマイズ仕様を前記影響パターンテーブル１２５に照合して、カスタマイズによって影響を受けるコンポーネントの影響パターンを抽出すると共に、当該影響パターンを前記コンポーネント間依存関係テーブル１２６に照合して、カスタマイズによって影響を受けるソフトウェアの機能を特定する影響解析部１１１を備える。
【００２２】
なお、前記影響解析部１１１は、前記コンポーネント間依存関係テーブル１２６において前記影響パターンに該当するコンポーネントを検索すると共に、当該検索した各コンポーネント間での呼び出しルートをたどることで当該ルートに係る機能を抽出し、当該抽出した機能を、カスタマイズによって影響を受けるソフトウェアの機能として特定することとすれば好適である。
【００２３】
また、前記特定したソフトウェアの機能の数に、前記カスタマイズパターン単価テーブル１２７における影響機能あたりの追加単価を乗じて、カスタマイズ工数を算出し、これを適宜な出力インターフェイスに出力する工数算出部１１２を備える。
【００２４】
なお、前記工数算出部１１２が、前記算出したカスタマイズ工数に、工数増加につながる機能の複雑性に応じて重み付けがされた所定の調整係数を乗じて、高精度カスタマイズ工数を算出することとしてもよい。
【００２５】
なお、これまで示した  システム１００における各機能部１１０〜１１２は、ハードウェアとして実現してもよいし、メモリやＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）などの適宜な記憶装置に格納したプログラムとして実現するとしてもよい。この場合、前記ＣＰＵ１０４がプログラム実行に合わせて記憶装置より該当プログラムをメモリ１０３に読み出して、これを実行することとなる。
【００２６】
また、前記ネットワーク１３０に関しては、インターネット、ＬＡＮの他、ＡＴＭ回線や専用回線、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、電灯線ネットワーク、無線ネットワーク、公衆回線網、携帯電話網、シリアル・インターフェース通信線など様々なネットワークを採用することも出来る。また、ＶＰＮ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）など仮想専用ネットワーク技術を用いれば、インターネットを採用した際にセキュリティ性を高めた通信が確立され好適である。なお、前記シリアル・インターフェイスは、単一の信号線を用いて１ビットずつ順次データを送るシリアル伝送で、外部機器と接続するためのインターフェースを指し、通信方式としてはＲＳ−２３２Ｃ、ＲＳ−４２２、ＩｒＤＡ、ＵＳＢ、ＩＥＥＥ１３９４、ファイバ・チャネルなどが想定できる。
【００２７】
−−−データベース構造−−−
次に、本実施形態における前記システム１００が利用するテーブルのデータ構造について説明する。図２は、本実施形態における（ａ）影響パターンテーブル、（ｂ）コンポーネント間依存関係テーブル、（ｃ）カスタマイズパターン単価テーブルの各データ構成を示す図である。
【００２８】
前記影響パターンテーブル１２５は、パターン化されたカスタマイズ方式であるカスタマイズパターンと、カスタマイズによる他のコンポーネントへの影響パターンとの関連づけ情報を格納したテーブルである。この影響パターンテーブル１２５は、例えばカスタマイズパターン４１をキーとして、影響パターン４４、変更箇所４５といったデータを関連づけたレコードの集合体となっている。
【００２９】
なお、本実施形態においては、この影響パターンテーブル１２５において、カスタマイズ単価４２、影響機能あたりの追加単価４３の情報についても格納・管理することとし、そのため、前記カスタマイズパターン単価テーブル１２７がこの影響パターンテーブル１２５に含まれる形式となっている。
【００３０】
また、前記コンポーネント間依存関係テーブル１２６は、ソフトウエアが提供する機能毎に、各機能を構成するコンポーネントの依存関係を定義したコンポーネント間依存関係情報を格納したテーブルである。このコンポーネント間依存関係テーブル１２６は、実務機能毎にソフトウエア製品内の全コンポーネントの依存関係を示すため、例えば実務機能６１をキーとして、呼び出し元コンポーネント６２、呼び出し元層種別６３、呼び出し先コンポーネント６４、呼び出し先層種別６５といったデータを関連づけたレコードの集合体となっている。
【００３１】
また、本実施形態におけるシステム１００は、カスタマイズ機能テーブル１２８を有するものとする。このカスタマイズ機能テーブル１２８は、実務機能５１をキーとして、カスタマイズパターン５２、影響機能数５３、調整係数５４、カスタマイズ規模５５といったデータを関連づけたレコードの集合体となっている。
【００３２】
なお、前記影響機能数５３は、前記影響解析部１１１が、前記コンポーネント間依存関係テーブル１２６において前記影響パターンに該当するコンポーネントを検索すると共に、当該検索した各コンポーネント間での呼び出しルートをたどることで当該ルートに係る機能を抽出し、当該抽出した機能を、カスタマイズによって影響を受けるソフトウェアの機能として特定した数にあたる。
【００３３】
また、前記調整係数５４は、前記工数算出部１１２が、前記算出したカスタマイズ工数に乗じて高精度カスタマイズ工数を算出する際に用いる、工数増加につながる機能の複雑性に応じて重み付けがされた所定の調整係数である。
【００３４】
−−−事前設定処理−−−
以下、本実施形態におけるソフトウエアカスタマイズ工数見積方法の実際手順について、図に基づき説明する。なお、以下で説明するソフトウエアカスタマイズ工数見積方法に対応する各種動作は、前記システム１００がメモリ１０３に読み出して実行するプログラム１０２によって実現される。そして、このプログラム１０２は、以下に説明される各種の動作を行うためのコードから構成されている。
【００３５】
図３は本実施形態のソフトウェアカスタマイズ工数見積方法における処理手順を示す流れ図である。まず、全プロジェクトで使用するデフォルト値を設定する必要がある。そこで、システム１００において、影響パターンテーブル１２５およびカスタマイズ機能テーブル１２８に対し、予め想定されうるカスタマイズの内容をカスタマイズパターンとして分類・設定する。さらに、カスタマイズパターン毎にカスタマイズ工数の単価を設定する（ステップｓ００１）とともに、カスタマイズする変更箇所も設定する（ステップｓ００６）。前記カスタマイズ単価は、過去の導入事例等を参考に設定し、ＦＰ／Ｓｔｅｐのいずれかで設定可能とする。
【００３６】
また、カスタマイズパターンによってはソフトウェアが含む他の機能に対し影響波及が生じる場合がある。そこでシステム１００は、前記影響パターンテーブル１２５において、カスタマイズパターン毎に影響パターンを設定し（ステップｓ００５）、管理する。また、システム１００は、前記カスタマイズパターンに対し影響機能数あたりの工数単価を前記影響パターンテーブル１２５（の含むカスタマイズパターン単価テーブル）において設定し（ステップｓ００２）、管理する。
【００３７】
さらに、カスタマイズによる他の機能への影響波及を解析するために、ソフトウエア製品が提供する機能を構成するコンポーネントの全ての依存関係（呼出関係）を、コンポーネント間依存関係テーブル１２６にて管理する（ステップｓ００３）。これにより、概算見積時には、コンポーネントが互いに影響し合っていることを利用し、カスタマイズによる影響の大きさを測ることができる。
【００３８】
また、詳細見積時には、このコンポーネント間の依存関係を一つずつ確認していき、依存関係のないものが確認できた場合には、その依存関係のないコンポーネントに依存関係を持っていたコンポーネントには影響が及ばないと見積ることになる。
【００３９】
また、システム１００は、カスタマイズ機能テーブル１２８において、工数増加につながる機能の複雑性に応じて重み付けがされた所定の調整係数を設定し（ステップｓ００４）、管理する。
【００４０】
−−−処理概要−−−
事前処理に続く処理について説明する。はじめに利用者（社内ＳＥ部門や社外の関連会社／ＳＩパートナー）が、それぞれの自環境の端末１０、１１からＩｎｔｅｒｎｅｔ／Ｉｎｔｒａｎｅｔ等のネットワーク１３０を介してログインしてきたとすれば、システム１００はこれを受けて認証処理などのログイン処理を実行し（ステップｓ１００）、ログインできた利用者の端末１０、１１らからソフトウエア製品を導入するプロジェクト登録を受付けることとなる。
【００４１】
システム１００は、前記端末１０、１１らから、顧客の要求毎にカスタマイズすべき項目の追加を受付け、その項目毎に見積を実施していく（ステップｓ１０１、１０２）。或いは、顧客の要求がカスタマイズではない場合（ｓ１０３：ＮＯ）、アドオン等で導入する場合の見積手続きに移行する（ステップｓ１０４）。
【００４２】
続いて、システム１００は、ソフトウエア製品が提供する機能毎にどのようなカスタマイズを実施するかを、前記端末１０、１１からのカスタマイズパターンの指定で受け付けて（ステップｓ１０５）、影響パターンテーブル１２５、カスタマイズ機能テーブル１２８に登録する（ステップｓ１０６）。この時、カスタマイズパターンは複数選択できるものとする。
【００４３】
ここでシステム１００は、前記指定を受け付けたカスタマイズパターンに対応する工数単価を、影響パターンテーブル１２５（の含むカスタマイズパターン単価テーブル１２７）から取得する（ステップｓ１０９）。なお、カスタマイズパターンに対応した工数単価は再設定可能とする（ステップｓ１０７）。再設定を行う際は（ｓ１０７：ＹＥＳ）、プロジェクト毎にカスタマイズパターン単価テーブル１２７をコピーし、カスタマイズパターン毎に工数単価をカスタマイズパターン単価テーブル１２７に再設定を行う（ステップｓ１０８）。
【００４４】
さらに、他の機能に対し影響波及があるカスタマイズパターンが選択されていた場合、システム１００は、影響パターンテーブル１２５において該当する影響パターンを検索する（ｓ１１０）と共に、コンポーネント間依存関係テーブル１２６から、影響する機能数を計測する（ステップｓ１１１）。
【００４５】
この計測方法は、コンポーネント間依存関係テーブル１２６にある依存関係パターンをたどることによって計測する。ここで、コンポーネント間依存関係テーブル１２６の内容を説明しておく。機能毎の各層のコンポーネントは、図４のように依存関係を形成しているが、必ずしも各層に１つずつではなく、図５のように複数存在する場合もある。ただし、１機能を１Ｐ層（プレゼンテーション層：画面に関するコンポーネント層  以下同様）と考えているため、機能毎にＰ層だけは、１つだけ存在する。また、各機能間で依存するコンポーネントは、Ｄ層（データ層：データベース接続等に関するコンポーネント層  以下同様）のみとしている。
【００４６】
これらを利用して、システム１００が影響機能数５３を計測する際には、まず、影響をたどる始点となる、カスタマイズするコンポーネントを、カスタマイズパターンから決定する。例えば、カスタマイズパターンが「ＧＵＩ（レイアウト）」のようにＧＵＩ系のカスタマイズであれば、Ｐ層のコンポーネント、また、カスタマイズパターンが「ロジック」であれば、Ｆ層（ファンクション層：計算等のロジックに関するコンポーネント層  以下同様）のコンポーネントが始点となる。これは影響パターンテーブル１２５（の含むカスタマイズパターン単価テーブル１２７）内の変更箇所項目４５から取得する。
【００４７】
そのコンポーネントから、前記影響パターン４４を用いて依存関係テーブル１２６をたどり、Ｄ層コンポーネントから他の機能のコンポーネントまでたどり、機能毎に１つだけ存在するＰ層のコンポーネント数を計測することで、影響機能数５３を計測することが出来る。
【００４８】
また、システム１００は、影響パターンテーブル１２５の含むカスタマイズパターン単価テーブル１２７から、影響機能数あたりの追加単価を取得する（ステップｓ１１４）。なお、影響機能数あたりの追加単価も再設定可能とする（ステップｓ１１２）。再設定を行う際は（ｓ１１２：ＹＥＳ）、プロジェクト毎にカスタマイズパターン単価テーブル１２７をコピーし、カスタマイズパターン毎に、追加単価を影響パターンテーブル１２５のカスタマイズパターン単価テーブル１２７に再設定を行う（ステップｓ１１３）。
【００４９】
なお、カスタマイズ工数は、「カスタマイズ単価４２＋影響機能あたり追加単価４３＊影響機能数５３」の算定手順にて算出する（ステップｓ１１５）。このときシステム１００は、予めソフトウエア製品が提供する機能の複雑度に応じて設定されている調整係数５４を、カスタマイズ機能テーブル１２８から取得し（ステップｓ１１６）、最終的に上記の計算式で計算されたカスタマイズ工数に、調整係数を掛けることで高精度のカスタマイズ工数を算出する（ステップｓ１１７）。以上が処理手順の概要となる。
【００５０】
−−−工数算出処理の具体例１−−−
ここで、システム１００が、カスタマイズ工数を算出する具体例について、３通りのカスタマイズパターンで図２のテーブル内に記述したサンプル値を用いて説明する。また、下記具体例１、２のコンポーネント間依存関係データ構造を図４に、具体例３のコンポーネント間依存関係データ構造を図５に示す。
【００５１】
（１）まず、カスタマイズパターン「ＧＵＩ（チェンジ）」、カスタマイズする機能である実務機能「発注指示入力」が設定されたものとし、システム１００はこれをカスタマイズ機能テーブル１２８に登録する。
【００５２】
（２）システム１００は、設定された実務機能「発注指示入力」に応じて、デフォルト設定されている調整係数「１．２」を取得し、カスタマイズ機能テーブル１２８に登録する。
【００５３】
（３）次に、システム１００は、設定されたカスタマイズパターン「ＧＵＩ（チェンジ）」を影響パターンテーブル１２５のカスタマイズパターン単価テーブル１２７で検索し、カスタマイズ単価「１０００（ｓｔｅｐ）」と影響機能あたりの追加単価「１００（ｓｔｅｐ）」、さらに影響パターン「Ｐ／Ｃ／Ｆ／Ｄ層」を取得する。
【００５４】
（４）ここで、システム１００は、影響機能数をカウントするため、設定された実務機能「発注指示入力」と前記取得した影響パターン「Ｐ／Ｃ／Ｆ／Ｄ層」を用いて、コンポーネント間依存関係テーブル１２６より影響機能数を計測する。
【００５５】
システム１００はまず、実務機能「発注指示入力」をコンポーネント間依存関係テーブル１２６内から検索し、カスタマイズパターン「ＧＵＩ（チェンジ）」をカスタマイズパターン単価テーブル１２７で検索し、カスタマイズを実施するコンポーネント「ＡＡＡ（Ｐ層）」を決定する。  
システム１００は、このコンポーネントを始点とし、影響するコンポーネントを探索する。前記取得した影響パターン「Ｐ／Ｃ／Ｆ／Ｄ層」をコンポーネント間依存関係テーブル１２６に当てはめ、まず、呼び出し先層種別６５をたどって、始点「ＡＡＡ（Ｐ層）」の呼び出し先コンポーネントである「ＢＢＢ（Ｃ層（コントロール層：ロジック等の制御をおこなうコンポーネント層  以下同様））」、さらに「ＢＢＢ（Ｃ層）」の呼び出し先コンポーネントである「ＣＣＣ（Ｆ層）」、そして「ＣＣＣ（Ｆ層）」の呼び出し先コンポーネントである「ＤＤＤ（Ｄ層）」まで影響が波及する。  
ここで、Ｄ層コンポーネントに影響が及んでいるため、このＤ層コンポーネントを利用しているコンポーネントを、呼び出し元層種別６３をたどり、「ＤＤＤ（Ｄ層）」の呼び出し元コンポーネントである「ＧＧＧ（Ｆ層）」と「ＪＪＪ（Ｆ層）」に影響が及び、さらに「ＧＧＧ（Ｆ層）」から「ＦＦＦ（Ｃ層）」、「ＦＦＦ（Ｃ層）」から「ＥＥＥ（Ｐ層）」、また、「ＪＪＪ（Ｆ層）」から「ＩＩＩ（Ｃ層）」、「ＩＩＩ（Ｃ層）」から「ＨＨＨ（Ｐ層）」まで影響が波及する。  
したがって、影響する機能は「発注書出力」と「受入検収入力」の２つとなり、システム１００は、影響機能数「２」を取得する。
【００５６】
（５）以上の過程で取得してきた、カスタマイズ単価「１０００（ｓｔｅｐ）」、影響機能あたりの追加単価「１００（ｓｔｅｐ）」、影響機能数「２」と調整係数「１．２」を、カスタマイズ規模を算出する計算式「（カスタマイズ単価＋影響機能あたりの追加単価＊影響機能数）＊調整係数」に当てはめて計算することで、システム１００は、カスタマイズ工数を「１４４０（ｓｔｅｐ）」と算出することができる。
【００５７】
−−−工数算出処理の具体例２−−−
（１）まず、カスタマイズパターン「ＧＵＩ（項目追加変更）」、カスタマイズする機能である実務機能「発注指示入力」が設定されたものとし、システム１００は、これをカスタマイズ機能テーブル１２８に登録する。
【００５８】
（２）設定された実務機能「発注指示入力」より、システム１００は、デフォルト設定されている調整係数「１．０」を取得し、カスタマイズ機能テーブル１２８に登録する。
【００５９】
（３）次に、システム１００は、設定されたカスタマイズパターン「ＧＵＩ（項目追加変更）」を影響パターンテーブル１２５のカスタマイズパターン単価テーブル１２７で検索し、カスタマイズ単価「１００（ｓｔｅｐ）」と影響機能あたりの追加単価「５０（ｓｔｅｐ）」、さらに影響パターン「Ｐ／Ｄ層」を取得する。
【００６０】
この影響パターン「Ｐ／Ｄ層」は、「Ｐ／（Ｃ／Ｆ）／Ｄ層」としても表せる。これは、Ｐ層とＤ層のコンポーネントは影響を受けるが、Ｃ層とＦ層のコンポーネントは影響を受けないことを表している。具体的に言うと、画面（Ｐ層）で入出力された値が、何も手が加えられずデータベース（Ｄ層）に入出力される機能でのＰ層の項目の追加変更は、ロジック部（Ｃ／Ｆ層）で何も行われないため、Ｃ／Ｆ層では影響を受けないことになる。このように影響を受けない層があることを考慮して、影響機能あたりの追加単価値は、影響パターン「Ｐ／Ｃ／Ｆ／Ｄ層」に比べて少ない値が設定されている。
【００６１】
（４）ここでシステム１００は、影響機能数をカウントするため、設定された実務機能「発注指示入力」と前記取得した影響パターン「Ｐ／Ｄ層」とを用いて、コンポーネント間依存関係テーブル１２６より影響機能数を計測する。
【００６２】
この時、システム１００は、実務機能「発注指示入力」をコンポーネント間依存関係テーブル１２６内から検索し、カスタマイズパターン「ＧＵＩ（項目追加変更）」を、影響パターンテーブル１２５のカスタマイズパターン単価テーブル１２７で検索し、カスタマイズを実施するコンポーネント「ＡＡＡ（Ｐ層）」を決定する。  
システム１００は、このコンポーネントを始点とし、影響するコンポーネントを探索する。前記取得した影響パターン「Ｐ／Ｄ層」をコンポーネント間依存関係テーブル１２６に当てはめ、まず、呼び出し先層種別６５をたどると、具体例１と同様の手順で、「ＥＥＥ（Ｐ層）」、「ＨＨＨ（Ｐ層）」まで影響が波及する。  
したがって、影響する機能は「発注書出力」と「受入検収入力」の２つとなり、システム１００は、影響機能数「２」を取得する。
【００６３】
（５）以上の過程で取得してきた、カスタマイズ単価「１００（ｓｔｅｐ）」、影響機能あたりの追加単価「５０（ｓｔｅｐ）」、影響機能数「２」と調整係数「１．０」を、カスタマイズ規模を算出する計算式「（カスタマイズ単価＋影響機能あたりの追加単価＊影響機能数）＊調整係数」に当てはめて計算することで、システム１００はカスタマイズ工数を「２００（ｓｔｅｐ）」と算出することができる。
【００６４】
−−−工数算出処理の具体例３−−−
（１）まず、カスタマイズパターン「帳票（ロジック）」、カスタマイズする機能である実務機能「支給指示明細入力」が設定されたものとし、システム１００は、これをカスタマイズ機能テーブル１２８に登録する。
【００６５】
（２）システム１００は、設定された実務機能「支給指示明細入力」より、デフォルト設定されている調整係数「１．２」を取得し、カスタマイズ機能テーブル１２８に登録する。
【００６６】
（３）次にシステム１００は、設定されたカスタマイズパターン「帳票（ロジック）」を影響パターンテーブル１２５のカスタマイズパターン単価テーブル１２７で検索し、カスタマイズ単価「２５０（ｓｔｅｐ）」と影響機能あたりの追加単価「７５（ｓｔｅｐ）」、さらに影響パターン「Ｐ／Ｃ／Ｆ／Ｄ層」を取得する。
【００６７】
（４）ここでシステム１００は、影響機能数をカウントするため、設定された実務機能「支給指示明細入力」と前記取得した影響パターン「Ｐ／Ｃ／Ｆ／Ｄ層」を用いて、コンポーネント間依存関係テーブル１２６より影響機能数を計測する。
【００６８】
このときシステム１００は、実務機能「支給指示明細入力」をコンポーネント間依存関係テーブル１２６内から検索し、カスタマイズパターン「帳票（ロジック）」を影響パターンテーブル１２５のカスタマイズパターン単価テーブル１２７で検索し、カスタマイズを実施するコンポーネント「６６６（Ｆ層）」を決定する。  
システム１００は、このコンポーネントを始点とし、影響するコンポーネントを探索する。前記取得した影響パターン「Ｐ／Ｃ／Ｆ／Ｄ層」をコンポーネント間依存関係テーブル１２６に当てはめ、まず、呼び出し先層種別６５をたどって、始点「６６６（Ｆ層）」の呼び出し元コンポーネントである「５５５（Ｃ層）」、さらに「５５５（Ｃ層）」の呼び出し元コンポーネントである「１１１（Ｐ層）」まで影響が波及する。
【００６９】
ここで、「１１１（Ｐ層）」の呼び出し先コンポーネントが「５５５（Ｃ層）」の他に「２２２（Ｃ層）」が存在するので、「１１１（Ｐ層）」から「２２２（Ｃ層）」に影響が及び、さらに「２２２（Ｃ層）」から「３３３（Ｆ層）」、「３３３（Ｆ層）」から「４４４（Ｄ層）」まで影響が波及する。  
そして、始点である「６６６（Ｆ層）」は呼び出し先コンポーネントとして、「７７７（Ｄ層）」が存在するので、「６６６（Ｆ層）」から「７７７（Ｄ層）」にも影響が波及する。Ｄ層コンポーネントに影響が及んでいるため、このＤ層コンポーネントを利用しているコンポーネントを、呼び出し元層種別６３をたどり、「７７７（Ｄ層）」の呼び出し元コンポーネントである「０００（Ｆ層）」に影響が及び、さらに「０００（Ｆ層）」から「９９９（Ｃ層）」、「９９９（Ｃ層）」から「８８８（Ｐ層）」まで影響が波及する。  
したがって、影響する機能は「支給指示明細入力」と「支給指示明細照会」の２つとなり、影響機能数「２」をシステム１００は取得する。
【００７０】
（５）以上の過程で取得してきた、カスタマイズ単価「２５０（ｓｔｅｐ）」、影響機能あたりの追加単価「７５（ｓｔｅｐ）」、影響機能数「２」と調整係数「１．２」を、カスタマイズ規模を算出する計算式「（カスタマイズ単価＋影響機能あたりの追加単価＊影響機能数）＊調整係数」に当てはめて計算することで、システム１００は、カスタマイズ工数を「４８０（ｓｔｅｐ）」と算出することができる。
【００７１】
以上のように、本発明を導入することによって、ある機能のカスタマイズを実施することで、他の機能に対して影響が波及する場合でも、他の機能のカスタマイズ工数まで考慮した見積が可能となる。
【００７２】
本発明によれば、カスタマイズする機能以外の他の機能への影響波及が考慮され、見積工数と実工数とのギャップの最小化により、収益率向上につながる。また、製品導入に対する追加費用の発生が減少し、予算確保も容易となる。  
したがって、ソフトウエア製品における機能カスタマイズに伴う他機能への影響波及を考慮でき、実工数とのギャップが少ない見積工数算定が可能となる。
【００７３】
以上、本発明の実施の形態について、その実施の形態に基づき具体的に説明したが、これに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【図面の簡単な説明】
【００７４】
【図１】本実施形態におけるソフトウェアカスタマイズ工数見積システムを含むネットワーク構成図である。
【図２】本実施形態における（ａ）影響パターンテーブル、（ｂ）コンポーネント間依存関係テーブル、（ｃ）カスタマイズパターン単価テーブルの各データ構成を示す図である。
【図３】本実施形態のソフトウェアカスタマイズ工数見積方法における処理手順を示す流れ図である。
【図４】本発明の構成管理データベース内のデータ構成例１を示す図である。
【図５】本発明の構成管理データベース内のデータ構成例２を示す図である。
【符号の説明】
【００７５】
１０  社内ＳＥ部門環境
１１  社外の関連会社／ＳＩパートナー環境
４１  カスタマイズパターン項目
４２  カスタマイズ単価項目
４３  影響機能あたりの追加単価項目
４４  影響パターン項目
４５  変更箇所項目
５１  実務機能項目
５２  カスタマイズパターン項目
５３  影響機能数項目
５４  調整係数項目
５５  カスタマイズ規模項目
６１  実務機能項目
６２  呼び出し元コンポーネント項目
６３  呼び出し元層種別項目
６４  呼び出し先コンポーネント項目
６５  呼び出し先層種別項目
７０  コンポーネント間依存関係データ構成例１
８０  コンポーネント間依存関係データ構成例２
１００  ソフトウェアカスタマイズ工数見積システム、システム
１０１  プログラムデータベース
１０２  プログラム
１０３  メモリ
１０４  ＣＰＵ
１０５  入出力インターフェイス
１０６  通信手段
１０７  Ｉ／Ｏ部
１１０  カスタマイズ仕様取得部
１１１  影響解析部
１１２  工数算出部
１２５  影響パターンテーブル
１２６  コンポーネント間依存関係テーブル
１２７  カスタマイズパターン単価テーブル
１２８  カスタマイズ機能テーブル
【図１】
2006134225.tif 000003
【図２】
2006134225.tif 000004
【図３】
2006134225.tif 000005
【図４】
2006134225.tif 000006
【図５】
2006134225.tif 000007