(57)【要約】      （修正有）【課題】短時間で精度の良い測定結果を得ることが可能なソフトウエア規模測定装置及びソフトウエア規模測定プログラムを提供する。【解決手段】各機能プロセス情報とトリガイベント情報に対応する利用者数を求めて、求めた利用者数情報を入力部から入力する（Ｓ１２）。統計的データ移動数情報を得て、各単位の利用者数情報に上記統計的データ移動数情報を乗じる乗算を行い、更に、該乗算の結果である機能量を加える和算を行ってファンクションポイント情報（未調整ＦＰ）を得る（Ｓ１４）。プログラム複雑度区分情報及びデータ複雑度区分情報を入力部から入力する（Ｓ２１、Ｓ２２）。複雑度区分値から補正係数を得て、ファンクションポイント情報（未調整ＦＰ）に補正係数を乗算し、調整済ファンクションポイント情報を得る（Ｓ２６）。【選択図】図１４
2010113639.tif 000002
【特許請求の範囲】
【請求項１】
情報を入力するための入力部と、この入力部により入力された情報を演算する演算部と、この演算部により演算された結果を出力する出力部とを備え、
測定対象プロジェクトのソフトウエアに関する要求仕様書の記載内容に基づき、前記ソフトウエアの必要機能を実現する機能プロセスを識別した結果である機能プロセス情報が前記入力部から入力され、
前記ソフトウエアの外部から前記各機能プロセスを起動するためのイベントであるトリガイベントを識別した結果であるトリガイベント情報が前記入力部から入力され、
前記各機能プロセス毎に当該機能プロセスと相互に作用する利用者の数である利用者数を識別した結果である利用者数情報が前記入力部から入力され、
複数プロジェクトのソフトウエアに関する要求仕様書の記載内容に基づき、当該各ソフトウエアの必要機能を実現する機能プロセスを識別し、この各機能プロセス内のデータ移動数と利用者数を識別し、識別した各機能プロセス内のデータ移動数と利用者数を用いて、機能プロセス毎における１利用者当たりのデータ移動数を求め、求められた機能プロセス毎における１利用者当たりのデータ移動数に統計的処理行って得た１利用者当たりの統計的データ移動数情報が前記入力部から入力され、
前記演算部において、前記入力部から入力された機能プロセス情報と対応するトリガイベント情報と更に対応する利用者数情報とを単位として、各単位の利用者数情報に前記統計的データ移動数情報を乗じる乗算と、該乗算の結果を加える和算とを行ってファンクションポイント情報を得るファンクションポイント算出手段と、
このファンクションポイント算出手段により得られたファンクションポイント情報を前記出力部からソフトウエア規模情報として出力させる出力制御手段と
を具備することを特徴とするソフトウエア規模測定装置。
【請求項２】
複数プロジェクトのソフトウエアに関する要求仕様書の記載内容に基づき、当該各ソフトウエアの必要機能を実現する機能プロセスを識別し、この各機能プロセス内のデータ移動数と利用者数を識別し、識別した各機能プロセス内のデータ移動数と利用者数を用いて、機能プロセス毎における１利用者当たりのデータ移動数を求め、求められた機能プロセス毎における１利用者当たりのデータ移動数を記憶した第１のデータベースと、
この第１のデータベースに記憶された機能プロセス毎における１利用者当たりのデータ移動数に統計的処理行って１利用者当たりの統計的データ移動数情報を求める統計的データ移動数情報取得手段と
を具備することを特徴とする請求項１に記載のソフトウエア規模測定装置。
【請求項３】
１プロジェクトのソフトウエアを構成するプログラムを定性的複雑度基準によりＮ段階に区分したプログラム複雑度区分情報を用い、
１プロジェクトのソフトウエアに使用されるデータを定性的複雑度基準によりＭ段階に区分したデータ複雑度区分情報を用い、
複数プロジェクトのソフトウエアについて、それぞれソフトウエア規模測定を行って各プロジェクト毎の総データ移動数と総利用者数とを求め、求められた総データ移動数を総利用者数により割る除算を行ってプロジェクト毎のデータ移動数を得て、プロジェクト毎に前記プログラム複雑度区分情報及び前記データ複雑度区分情報におけるどの区分であるかを評価して複雑度区分値を得て、前記プロジェクト毎のデータ移動数と複雑度区分値に基づき前記１利用者当たりの統計的データ移動数情報に一致する複雑度区分値の補正係数を１とし、他の複雑度区分値を前記１利用者当たりの統計的データ移動数情報により正規化して得られる補正係数情報を用い、
測定対象プロジェクトのソフトウエアに関して、プログラム複雑度区分情報及びデータ複雑度情報の入力を受けて、当該プロジェクトの複雑度区分値を得て、この当該プロジェクトの複雑度区分値と前記補正係数情報に基づき前記ファンクションポイント算出手段による算出されたファンクションポイント情報に補正を加える補正手段とを具備し、
前記出力制御手段は、この補正手段により補正されたファンクションポイント情報を前記出力部からソフトウエア規模情報として出力させることを特徴とする請求項１または２に記載のソフトウエア規模測定装置。
【請求項４】
複数プロジェクトのソフトウエアについて、それぞれソフトウエア規模測定を行って各プロジェクト毎の総データ移動数と総利用者数とを求め、求められた総データ移動数と総利用者数の情報を記憶すると共に、プロジェクト毎に前記プログラム複雑度区分情報及び前記データ複雑度区分情報におけるどの区分であるかを評価して得た複雑度区分値情報を記憶した第２のデータベースと、
この第２のデータベースに記憶された総データ移動数を総利用者数により割る除算を行ってプロジェクト毎のデータ移動数を得る一方、前記第２のデータベースの複雑度区分値を取り出し、前記プロジェクト毎のデータ移動数と複雑度区分値に基づき前記１利用者当たりの統計的データ移動数情報に一致する複雑度区分値の補正係数を１とし、他の複雑度区分値を前記１利用者当たりの統計的データ移動数情報により正規化して補正係数情報を得る補正係数情報取得手段とを具備することを特徴とする請求項３に記載のソフトウエア規模測定装置。
【請求項５】
情報を入力するための入力部と、この入力部により入力された情報を演算する演算部と、この演算部により演算された結果を出力する出力部とを備えるソフトウエア規模測定装置の前記演算部を構成するコンピュータを、
測定対象プロジェクトのソフトウエアに関する要求仕様書の記載内容に基づき、前記ソフトウエアの必要機能を実現する機能プロセスを識別した結果である機能プロセス情報が前記入力部から入力され、
前記ソフトウエアの外部から前記各機能プロセスを起動するためのイベントであるトリガイベントを識別した結果であるトリガイベント情報が前記入力部から入力され、
前記各機能プロセス毎に当該機能プロセスと相互に作用する利用者の数である利用者数を識別した結果である利用者数情報が前記入力部から入力され、
複数プロジェクトのソフトウエアに関する要求仕様書の記載内容に基づき、当該各ソフトウエアの必要機能を実現する機能プロセスを識別し、この各機能プロセス内のデータ移動数と利用者数を識別し、識別した各機能プロセス内のデータ移動数と利用者数を用いて、機能プロセス毎における１利用者当たりのデータ移動数を求め、求められた機能プロセス毎における１利用者当たりのデータ移動数に統計的処理行って得た１利用者当たりの統計的データ移動数情報が前記入力部から入力され、
前記演算部において、前記入力部から入力された機能プロセス情報と対応するトリガイベント情報と更に対応する利用者数情報とを単位として、各単位の利用者数情報に前記統計的データ移動数情報を乗じる乗算と、該乗算の結果を加える和算とを行ってファンクションポイント情報を得るファンクションポイント算出手段、
このファンクションポイント算出手段により得られたファンクションポイント情報を前記出力部からソフトウエア規模情報として出力させる出力制御手段
として機能させることを特徴とするソフトウエア規模測定プログラム。
【請求項６】
複数プロジェクトのソフトウエアに関する要求仕様書の記載内容に基づき、当該各ソフトウエアの必要機能を実現する機能プロセスを識別し、この各機能プロセス内のデータ移動数と利用者数を識別し、識別した各機能プロセス内のデータ移動数と利用者数を用いて、機能プロセス毎における１利用者当たりのデータ移動数を求め、求められた機能プロセス毎における１利用者当たりのデータ移動数を記憶した第１のデータベースを、前記コンピュータが備え、
前記コンピュータを更に、前記第１のデータベースに記憶された機能プロセス毎における１利用者当たりのデータ移動数に統計的処理行って１利用者当たりの統計的データ移動数情報を求める統計的データ移動数情報取得手段
として機能させることを特徴とする請求項５に記載のソフトウエア規模測定プログラム。
【請求項７】
前記コンピュータが、
１プロジェクトのソフトウエアを構成するプログラムを定性的複雑度基準によりＮ段階に区分したプログラム複雑度区分情報を用い、
１プロジェクトのソフトウエアに使用されるデータを定性的複雑度基準によりＭ段階に区分したデータ複雑度区分情報を用い、
複数プロジェクトのソフトウエアについて、それぞれソフトウエア規模測定を行って各プロジェクト毎の総データ移動数と総利用者数とを求め、求められた総データ移動数を総利用者数により割る除算を行ってプロジェクト毎のデータ移動数を得て、プロジェクト毎に前記プログラム複雑度区分情報及び前記データ複雑度区分情報におけるどの区分であるかを評価して複雑度区分値を得て、前記プロジェクト毎のデータ移動数と複雑度区分値に基づき前記１利用者当たりの統計的データ移動数情報に一致する複雑度区分値の補正係数を１とし、他の複雑度区分値を前記１利用者当たりの統計的データ移動数情報により正規化して得られる補正係数情報を用い、
前記コンピュータを、
測定対象プロジェクトのソフトウエアに関して、プログラム複雑度区分情報及びデータ複雑度情報の入力を受けて、当該プロジェクトの複雑度区分値を得て、この当該プロジェクトの複雑度区分値と前記補正係数情報に基づき前記ファンクションポイント算出手段による算出されたファンクションポイント情報に補正を加える補正手段として機能させ、
この補正手段により補正されたファンクションポイント情報を前記出力部からソフトウエア規模情報として出力させる出力制御手段
として機能させことを特徴とする請求項５または６に記載のソフトウエア規模測定プログラム。
【請求項８】
複数プロジェクトのソフトウエアについて、それぞれソフトウエア規模測定を行って各プロジェクト毎の総データ移動数と総利用者数とを求め、求められた総データ移動数と総利用者数の情報を記憶した第２のデータベースを前記コンピュータが備え、
前記コンピュータを、
前記第２のデータベースに記憶された総データ移動数を総利用者数により割る除算を行ってプロジェクト毎のデータ移動数を得て、プロジェクト毎に前記プログラム複雑度区分情報及び前記データ複雑度区分情報におけるどの区分であるかを評価して複雑度区分値を得て、前記プロジェクト毎のデータ移動数と複雑度区分値に基づき前記１利用者当たりの統計的データ移動数情報に一致する複雑度区分値の補正係数を１とし、他の複雑度区分値を前記１利用者当たりの統計的データ移動数情報により正規化して補正係数情報を得る補正係数情報取得手段
として機能させることを特徴とする請求項７に記載のソフトウエア規模測定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はソフトウエア規模を測定することが可能なソフトウエア規模測定装置及びソフトウエア規模測定プログラムに関し、特に、組込みシステムやリアルタイム制御システムのソフトウエア規模を的確且つ短時間に測定可能なソフトウエア規模測定装置及びソフトウエア規模測定プログラムに関するものである。
【背景技術】
【０００２】
従来、この種の測定手法としては、概算法（経験法、類推法）、工数積上法（積算法）などが知られている。これらの手法は、測定を行う測定者の技量に依存する可能性が高く、客観性に乏しいという問題がある。
【０００３】
上記に対し、ファンクションポイント法と称される手法が多く採用されるようになっている。このファンクションポイント法は、プログラムの規模を表す指標に基づいて見積りを行うもので、見積り結果について検証可能であるという特徴を有している。このファンクションポイント法として、ＩＦＰＵＧ法やＮＥＳＭＡ法が知られているが、これらの手法は一般業務向けのソフトウエア規模測定に向いた手法であり、組込みシステムやリアルタイム制御システムのソフトウエア規模測定に用いても、適切な見積り結果を得ることができない。
【０００４】
また、ファンクションポイント法の一つとしてＣＯＳＭＩＣ−ＦＦＰ法（以下、ＣＯＳＭＩＣ法という）が知られており、この手法は組込みシステムやリアルタイム制御システムのソフトウエア規模測定に向いている（非特許文献１参照）。しかしながら、この手法による規模測定を行うためには、難解な測定マニュアルの理解が不可欠であり、このために時間と労力が必要となる。しかも、ＣＯＳＭＩＣ法においては、設計レベルの粒度により測定結果に係る規模が異なるという問題がある。
【０００５】
また、要因情報毎に、対応する実績情報から予め算出された関係近似式を格納している関係近似式データベースを有し、制御装置が、測定上の条件と仕様情報の入力を受けてＦＰ（ファンクションポイント）数を算出し、条件に合致する要因情報に対応する関係近似式を関係近似式データベースから得て、当該関係近似式に基づいて算出したＦＰ数を当てはめて見積工程数を算出する見積支援システムが存在している（特許文献１参照）。
【非特許文献１】山口正明著，「ファンクションポイントＣＯＳＭＩＣ−ＦＦＰ法実践ガイド」，第１刷，株式会社日科技連出版社，２００７年１２月２２日
【特許文献１】特開２０００−３３９１４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は上記のようなソフトウエア規模測定の現状に鑑みてなされたもので、その目的は、組込みシステムやリアルタイム制御システムのソフトウエア規模測定を適切に行うことができ、しかも、難解な測定マニュアルの理解が不要であり、短時間で精度の良い測定結果を得ることが可能なソフトウエア規模測定装置及びソフトウエア規模測定プログラムを提供することである。
【課題を解決するための手段】
【０００７】
本発明に係るソフトウエア規模測定装置は、情報を入力するための入力部と、この入力部により入力された情報を演算する演算部と、この演算部により演算された結果を出力する出力部とを備え、測定対象プロジェクトのソフトウエアに関する要求仕様書の記載内容に基づき、前記ソフトウエアの必要機能を実現する機能プロセスを識別した結果である機能プロセス情報が前記入力部から入力され、前記ソフトウエアの外部から前記各機能プロセスを起動するためのイベントであるトリガイベントを識別した結果であるトリガイベント情報が前記入力部から入力され、前記各機能プロセス毎に当該機能プロセスと相互に作用する利用者の数である利用者数を識別した結果である利用者数情報が前記入力部から入力され、複数プロジェクトのソフトウエアに関する要求仕様書の記載内容に基づき、当該各ソフトウエアの必要機能を実現する機能プロセスを識別し、この各機能プロセス内のデータ移動数と利用者数を識別し、識別した各機能プロセス内のデータ移動数と利用者数を用いて、機能プロセス毎における１利用者当たりのデータ移動数を求め、求められた機能プロセス毎における１利用者当たりのデータ移動数に統計的処理行って得た１利用者当たりの統計的データ移動数情報が前記入力部から入力され、前記演算部において、前記入力部から入力された機能プロセス情報と対応するトリガイベント情報と更に対応する利用者数情報とを単位として、各単位の利用者数情報に前記統計的データ移動数情報を乗じる乗算と、該乗算の結果を加える和算とを行ってファンクションポイント情報を得るファンクションポイント算出手段と、このファンクションポイント算出手段により得られたファンクションポイント情報を前記出力部からソフトウエア規模情報として出力させる出力制御手段と
を具備することを特徴とする。
【０００８】
本発明に係るソフトウエア規模測定装置は、複数プロジェクトのソフトウエアに関する要求仕様書の記載内容に基づき、当該各ソフトウエアの必要機能を実現する機能プロセスを識別し、この各機能プロセス内のデータ移動数と利用者数を識別し、識別した各機能プロセス内のデータ移動数と利用者数を用いて、機能プロセス毎における１利用者当たりのデータ移動数を求め、求められた機能プロセス毎における１利用者当たりのデータ移動数を記憶した第１のデータベースと、この第１のデータベースに記憶された機能プロセス毎における１利用者当たりのデータ移動数に統計的処理行って１利用者当たりの統計的データ移動数情報を求める統計的データ移動数情報取得手段とを具備することを特徴とする。
【０００９】
本発明に係るソフトウエア規模測定装置は、１プロジェクトのソフトウエアを構成するプログラムを定性的複雑度基準によりＮ段階に区分したプログラム複雑度区分情報を用い、１プロジェクトのソフトウエアに使用されるデータを定性的複雑度基準によりＭ段階に区分したデータ複雑度区分情報を用い、複数プロジェクトのソフトウエアについて、それぞれソフトウエア規模測定を行って各プロジェクト毎の総データ移動数と総利用者数とを求め、求められた総データ移動数を総利用者数により割る除算を行ってプロジェクト毎のデータ移動数を得て、プロジェクト毎に前記プログラム複雑度区分情報及び前記データ複雑度区分情報におけるどの区分であるかを評価して複雑度区分値を得て、前記プロジェクト毎のデータ移動数と複雑度区分値に基づき前記１利用者当たりの統計的データ移動数情報に一致する複雑度区分値の補正係数を１とし、他の複雑度区分値を前記１利用者当たりの統計的データ移動数情報により正規化して得られる補正係数情報を用い、測定対象プロジェクトのソフトウエアに関して、プログラム複雑度区分情報及びデータ複雑度情報の入力を受けて、当該プロジェクトの複雑度区分値を得て、この当該プロジェクトの複雑度区分値と前記補正係数情報に基づき前記ファンクションポイント算出手段による算出されたファンクションポイント情報に補正を加える補正手段とを具備し、前記出力制御手段は、この補正手段により補正されたファンクションポイント情報を前記出力部からソフトウエア規模情報として出力させることを特徴とする。
【００１０】
本発明に係るソフトウエア規模測定装置は、複数プロジェクトのソフトウエアについて、それぞれソフトウエア規模測定を行って各プロジェクト毎の総データ移動数と総利用者数とを求め、求められた総データ移動数と総利用者数の情報を記憶した第２のデータベースと、この第２のデータベースに記憶された総データ移動数を総利用者数により割る除算を行ってプロジェクト毎のデータ移動数を得て、プロジェクト毎に前記プログラム複雑度区分情報及び前記データ複雑度区分情報におけるどの区分であるかを評価して複雑度区分値を得て、前記プロジェクト毎のデータ移動数と複雑度区分値に基づき前記１利用者当たりの統計的データ移動数情報に一致する複雑度区分値の補正係数を１とし、他の複雑度区分値を前記１利用者当たりの統計的データ移動数情報により正規化して補正係数情報を得る補正係数情報取得手段とを具備することを特徴とする。
【００１１】
本発明に係るソフトウエア規模測定プログラムは、情報を入力するための入力部と、この入力部により入力された情報を演算する演算部と、この演算部により演算された結果を出力する出力部とを備えるソフトウエア規模測定装置の前記演算部を構成するコンピュータを、測定対象プロジェクトのソフトウエアに関する要求仕様書の記載内容に基づき、前記ソフトウエアの必要機能を実現する機能プロセスを識別した結果である機能プロセス情報が前記入力部から入力され、前記ソフトウエアの外部から前記各機能プロセスを起動するためのイベントであるトリガイベントを識別した結果であるトリガイベント情報が前記入力部から入力され、前記各機能プロセス毎に当該機能プロセスと相互に作用する利用者の数である利用者数を識別した結果である利用者数情報が前記入力部から入力され、複数プロジェクトのソフトウエアに関する要求仕様書の記載内容に基づき、当該各ソフトウエアの必要機能を実現する機能プロセスを識別し、この各機能プロセス内のデータ移動数と利用者数を識別し、識別した各機能プロセス内のデータ移動数と利用者数を用いて、機能プロセス毎における１利用者当たりのデータ移動数を求め、求められた機能プロセス毎における１利用者当たりのデータ移動数に統計的処理行って得た１利用者当たりの統計的データ移動数情報が前記入力部から入力され、前記演算部において、前記入力部から入力された機能プロセス情報と対応するトリガイベント情報と更に対応する利用者数情報とを単位として、各単位の利用者数情報に前記統計的データ移動数情報を乗じる乗算と、該乗算の結果を加える和算とを行ってファンクションポイント情報を得るファンクションポイント算出手段、このファンクションポイント算出手段により得られたファンクションポイント情報を前記出力部からソフトウエア規模情報として出力させる出力制御手段として機能させることを特徴とする。
【００１２】
本発明に係るソフトウエア規模測定プログラムは、複数プロジェクトのソフトウエアに関する要求仕様書の記載内容に基づき、当該各ソフトウエアの必要機能を実現する機能プロセスを識別し、この各機能プロセス内のデータ移動数と利用者数を識別し、識別した各機能プロセス内のデータ移動数と利用者数を用いて、機能プロセス毎における１利用者当たりのデータ移動数を求め、求められた機能プロセス毎における１利用者当たりのデータ移動数を記憶した第１のデータベースを、前記コンピュータが備え、前記コンピュータを更に、前記第１のデータベースに記憶された機能プロセス毎における１利用者当たりのデータ移動数に統計的処理行って１利用者当たりの統計的データ移動数情報を求める統計的データ移動数情報取得手段として機能させることを特徴とする。
【００１３】
本発明に係るソフトウエア規模測定プログラムは、前記コンピュータが、１プロジェクトのソフトウエアを構成するプログラムを定性的複雑度基準によりＮ段階に区分したプログラム複雑度区分情報を用い、１プロジェクトのソフトウエアに使用されるデータを定性的複雑度基準によりＭ段階に区分したデータ複雑度区分情報を用い、複数プロジェクトのソフトウエアについて、それぞれソフトウエア規模測定を行って各プロジェクト毎の総データ移動数と総利用者数とを求め、求められた総データ移動数を総利用者数により割る除算を行ってプロジェクト毎のデータ移動数を得て、プロジェクト毎に前記プログラム複雑度区分情報及び前記データ複雑度区分情報におけるどの区分であるかを評価して複雑度区分値を得て、前記プロジェクト毎のデータ移動数と複雑度区分値に基づき前記１利用者当たりの統計的データ移動数情報に一致する複雑度区分値の補正係数を１とし、他の複雑度区分値を前記１利用者当たりの統計的データ移動数情報により正規化して得られる補正係数情報を用い、前記コンピュータを、測定対象プロジェクトのソフトウエアに関して、プログラム複雑度区分情報及びデータ複雑度情報の入力を受けて、当該プロジェクトの複雑度区分値を得て、この当該プロジェクトの複雑度区分値と前記補正係数情報に基づき前記ファンクションポイント算出手段による算出されたファンクションポイント情報に補正を加える補正手段として機能させ、この補正手段により補正されたファンクションポイント情報を前記出力部からソフトウエア規模情報として出力させる出力制御手段として機能させことを特徴とする。
【００１４】
本発明に係るソフトウエア規模測定プログラムは、複数プロジェクトのソフトウエアについて、それぞれソフトウエア規模測定を行って各プロジェクト毎の総データ移動数と総利用者数とを求め、求められた総データ移動数と総利用者数の情報を記憶した第２のデータベースを前記コンピュータが備え、前記コンピュータを、前記第２のデータベースに記憶された総データ移動数を総利用者数により割る除算を行ってプロジェクト毎のデータ移動数を得て、プロジェクト毎に前記プログラム複雑度区分情報及び前記データ複雑度区分情報におけるどの区分であるかを評価して複雑度区分値を得て、前記プロジェクト毎のデータ移動数と複雑度区分値に基づき前記１利用者当たりの統計的データ移動数情報に一致する複雑度区分値の補正係数を１とし、他の複雑度区分値を前記１利用者当たりの統計的データ移動数情報により正規化して補正係数情報を得る補正係数情報取得手段として機能させることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、複数プロジェクトのソフトウエアに関する要求仕様書の記載内容に基づき、当該各ソフトウエアの必要機能を実現する機能プロセスを識別し、この各機能プロセス内のデータ移動数と利用者数を識別し、識別した各機能プロセス内のデータ移動数と利用者数を用いて、機能プロセス毎における１利用者当たりのデータ移動数を求め、求められた機能プロセス毎における１利用者当たりのデータ移動数に統計的処理行って得た１利用者当たりの統計的データ移動数情報を用いるので、データ移動数を求める処理が不要であり、しかも、この処理をＣＯＳＭＩＣ法を用いて実現できるため、組込みシステムやリアルタイム制御システムのソフトウエア規模測定を適切に行うことができる。
【００１６】
また、機能プロセス情報と対応するトリガイベント情報と更に対応する利用者数情報とを単位として、各単位の利用者数情報に前記統計的データ移動数情報を乗じる乗算と、該乗算の結果を加える和算とを行ってファンクションポイント情報を得る処理により、ソフトウエア規模測定を行うので、機能プロセス情報、トリガイベント情報、利用者数情報を入力するだけで済むため、難解な測定マニュアルの理解が不要であり、短時間で精度の良い測定結果を得ることが可能である。
【００１７】
本発明によれば、補正係数情報を用い、測定対象プロジェクトのソフトウエアに関して、プログラム複雑度区分情報及びデータ複雑度情報の入力を受けて、当該プロジェクトの複雑度区分値を得て、この当該プロジェクトの複雑度区分値と前記補正係数情報に基づき前記ファンクションポイント算出手段による算出されたファンクションポイント情報に補正を加えるので、補正によってより精度の向上が図られた結果を得ることができる。
【発明を実施するための最良の形態】
【００１８】
以下添付図面を参照して、本発明に係るソフトウエア規模測定装置及びソフトウエア規模測定プログラムの実施例を説明する。実施例に係るソフトウエア規模測定装置は、図１に示されるようにコンピュータによって構成される演算部１０に、情報を入力するための入力部２１と、演算部１０により演算された結果を出力する出力部２２とを備える。演算部１０には、第１のデータベース３１と第２のデータベース３２とを備える外部記憶部３０が接続されている。
【００１９】
本実施例においては、入力部２１から機能プロセス情報、トリガイベント情報、利用者数情報が入力される。本発明はファンクションポイント法を採用しており、本実施例において用いる各種情報は、ＣＯＳＭＩＣ法による測定において識別される情報である。従って、機能プロセス情報は、測定対象プロジェクトのソフトウエアに関する要求仕様書の記載内容に基づき、上記ソフトウエアの必要機能を実現する機能プロセスを識別した結果である情報であり、既に示した非特許文献１に記載の手法により測定者によって識別される。
【００２０】
例えば、当初にメニュー画面を表示し、メニューの選択により画像を表示する或いは音を出力する測定対象プロジェクトのソフトウエアＡについては、図２に示すように「メニュー画面」機能プロセス、「画像表示」機能プロセス、「音出力」機能プロセスが識別される。
【００２１】
トリガイベント情報は、上記測定対象プロジェクトのソフトウエアＡの外部から上記記各機能プロセスを起動するためのイベントであるトリガイベントを識別した結果である情報であり、非特許文献１に記載の手法により測定者によって識別される。
【００２２】
トリガイベント情報は、図３に示すように利用者Ｂによって被測定ソフトウエアＡの外側で発生し、一つまたは複数の機能プロセスを起動するイベントである。ここに、利用者は人間だけではなく、技術的な装置（コピー、印刷機、電話機等）、他のソフトウエアを含む概念である。ＣＯＳＭＩＣ法では、この利用者Ｂ及び持続的記憶域Ｃと被測定ソフトウエアＡの機能プロセス間において生じる「エントリ」、「エグジット」、「リード」、「ライト」というデータ移動を機能プロセス毎に識別してソフトウエア規模測定を行う。上記の持続的記憶域Ｃは、ソフトウエアＡによるデータの保存、データの読み出しができる記憶域を指すものである。
【００２３】
トリガイベントを識別する意義は次の通りである。即ち、トリガイベントが確かに被測定ソフトウエアＡの外側で発生していることを確認し、被測定ソフトウエアＡの内側において発生しているようなトリガイベントが存在しないかを検出することにより、エンドユーザの要求が満たされる粒度でシステム設計されているかを確認することができる。つまり、細かすぎる粒度で設計したソフトウエア構成となっていないかを確認する材料としてトリガイベントを用い、粒度を一定とするために用いる。これによって測定者の技量によらず、一定の粒度を確保し、適切なソフトウエア規模測定を保障している。
【００２４】
上記において入力された利用者数情報は、上記各機能プロセス毎に当該機能プロセスと相互に作用する利用者の数である利用者数を識別した結果である情報であり、非特許文献１に記載の手法により測定者によって識別される。
【００２５】
例えば、図２で説明した「メニュー画面」機能プロセス、「画像表示」機能プロセス、「音出力」機能プロセスにより構成されるソフトウエアＡについては、この被測定ソフトウエアＡの機能プロセス間において生じる「エントリ」、「エグジット」の相手を分析する。この分析の結果として例えば図４に示されるように、共通ユーザインタフェース、実行制御システム、ファイル制御システム、ハードウエア制御という利用者が存在すると、識別される。
【００２６】
上記において識別された利用者である「共通ユーザインタフェース」、「実行制御システム」、「ファイル制御システム」、「ハードウエア制御」の内のいずれが「メニュー画面」機能プロセスにおいて利用者となっているかを識別して、「メニュー画面」機能プロセスについての利用者数が求められる。他の「画像表示」機能プロセス、「音出力」機能プロセスについても同様にしてそれぞれの利用者数を求めることができる。
【００２７】
図１に示した外部記憶部３０の第１のデータベース３１には、複数プロジェクトのソフトウエアに関する要求仕様書の記載内容に基づき、当該各ソフトウエアの必要機能を実現する機能プロセスを識別し、この各機能プロセス内のデータ移動数と利用者数を識別し、識別した各機能プロセス内のデータ移動数と利用者数を用いて、機能プロセス毎における１利用者当たりのデータ移動数を求め、求められた機能プロセス毎における１利用者当たりのデータ移動数が記憶されている。ここにおける識別についても、ＣＯＳＭＩＣ法によるソフトウエア規模測定において行われたものである。つまり、ＣＯＳＭＩＣ法によるソフトウエア規模測定において得られた実績データの内、各機能プロセス内のデータ移動数と利用者数、機能プロセス毎における１利用者当たりのデータ移動数が第１のデータベース３１に図５に示す如く記憶されている。
【００２８】
一方、演算部１０には、図１に示されるように、統計的データ移動数情報取得手段１１が備えられている。統計的データ移動数情報取得手段１１は、第１のデータベース３１に記憶された機能プロセス毎における１利用者当たりのデータ移動数に統計的処理行って１利用者当たりの統計的データ移動数情報を求める。
【００２９】
例えば、図６に示すように横軸に１機能プロセスのデータ移動数をとり、縦軸に１機能プロセスの利用者をとってヒストグラムを作成し、この平均値、標準偏差、中央値を求める。この例においては、データ移動数の平均値は３．２９となり、標準偏差１．５２と中央値３．００が得られる。この中央値の３．００を、１利用者当たりの統計的データ移動数情報とする。
【００３０】
演算部１０には、ファンクションポイント算出手段１２と出力制御手段１３とが備えられている。ここに、ファンクションポイント算出手段１２は、入力された機能プロセス情報と対応するトリガイベント情報と更に対応する利用者数情報とを単位として、各単位の利用者数情報に上記統計的データ移動数情報を乗じる乗算を行い機能量を得る。更に、ファンクションポイント算出手段１２は、該乗算の結果である機能量を加える和算を行ってファンクションポイント情報を得るものである。
【００３１】
入力された機能プロセス情報と対応するトリガイベント情報と更に対応する利用者数情報とを単位として計算シートに記載すると図７に示すようになる。この例では、「メニュー画面」機能プロセスと「画像表示」機能プロセスは、利用者数が２であり、「音出力」機能プロセスの利用者数は、４であることを示している。
【００３２】
各単位の利用者数情報に上記統計的データ移動数情報（前述の通り、３．００）を乗じる乗算によって機能量（ＣＦＰ）は、６、６、１２となり、該乗算の結果を加える和算とを行ったファンクションポイント情報（未調整ＦＰ）は、図７に示す通り２４となる。出力制御手段１３は、ファンクションポイント算出手段１２により得られたファンクションポイント情報（未調整ＦＰ）を、この段階において出力部２２から出力するように機能しても良い。
【００３３】
なお、この実施例では、第１のデータベース３１を備え、統計的データ移動数情報を装置内において求めたが、第１のデータベース３１の内容を別装置に備え、統計的データ移動数情報を他の装置において求め、求めた統計的データ移動数情報（実績データ）を入力部２１から入力するようにしても良い。
【００３４】
本実施例では演算部１０に、ファンクションポイント算出手段１２により算出されたファンクションポイント情報に補正を加える補正手段１５、及びこの補正手段１５が用いる補正係数を得るための補正係数情報取得手段１４を備えている。補正のために、１プロジェクトのソフトウエアを構成するプログラムを定性的複雑度基準によりＮ段階に区分したプログラム複雑度区分情報を用い、また、１プロジェクトのソフトウエアに使用されるデータを定性的複雑度基準によりＭ段階に区分したデータ複雑度区分情報を用いるものである。
【００３５】
ここでは、プログラム複雑度区分は、例えば図８（ａ）に示すように、５区分であり、定性的複雑度基準の内容は図８（ａ）に記載してある通りである。測定対象プロジェクトのソフトウエアのプログラム複雑度区分が幾つであるかについては測定者が決定し、入力部２１から入力する。
【００３６】
また、データ複雑度区分は、例えば図８（ｂ）に示すように、５区分であり、定性的複雑度基準の内容は図８（ｂ）に記載してある通りである。測定対象プロジェクトのソフトウエアのデータ複雑度区分が幾つであるかについては測定者が決定し、入力部２１から入力する。
【００３７】
図９（ａ）には、過去に行った５８プロジェクトに関する測定結果から得られたプログラム複雑度区分とデータ移動数の関係をグラフ化したものが示されている。この図９（ａ）によれば、プログラムの複雑度が高くなるにつれてデータ移動数が増加する傾向があると結論できる。また、図９（ｂ）には、過去に行った５８プロジェクトに関する測定結果から得られたデータ複雑度区分とデータ移動数の関係をグラフ化したものが示されている。この図９（ｂ）によれば、データの複雑度が高くなるにつれてデータ移動数が増加する傾向があると結論できる。
【００３８】
図１に示されている外部記憶部３０の第２のデータベース３２には、複数プロジェクトのソフトウエアについて、それぞれソフトウエア規模測定を行って各プロジェクト毎の総データ移動数と総利用者数とを求め、求められた総データ移動数と総利用者数の情報とからなる実績データが図１０に示すように記憶されている。また図１０に示されている通り、第２のデータベース３２には、プロジェクト毎に上記プログラム複雑度区分情報及び上記データ複雑度区分情報におけるどの区分であるかを評価して複雑度区分値（プログラム複雑度区分情報＋上記データ複雑度区分情報）を得たものも記憶されている。
【００３９】
補正係数情報取得手段１４は、第２のデータベースに記憶された総データ移動数を総利用者数により割る除算を行ってプロジェクト毎のデータ移動数を得る一方、前記第２のデータベースの複雑度区分値を取り出し、前記プロジェクト毎のデータ移動数と複雑度区分値に基づき前記１利用者当たりの統計的データ移動数情報に一致する複雑度区分値の補正係数を１とし、他の複雑度区分値を前記１利用者当たりの統計的データ移動数情報により正規化して補正係数情報を得るものである。
【００４０】
具体的には、評価結果であるプログラム複雑度区分情報及びデータ複雑度区分情報（和算）を複雑度（複雑度区分値）として横軸にとり、縦にプロジェクト毎のデータ移動数をとってグラフとすると、図１１のｇに示されるようになり、このグラフｇに近似する直線による補正線ｈを得る。この二次元座標において上記１利用者当たりの統計的データ移動数情報（３．００）に一致する複雑度区分値の補正係数を１とする。
【００４１】
図１１の例では、統計的データ移動数情報（３．００）には複雑度区分６が該当する。このため、複雑度区分値６の補正係数が１である。他の複雑度区分値を前記１利用者当たりの統計的データ移動数情報により正規化する。例えば、複雑度区分値が１０は補正線ｈにおいて４．２であるから、３により正規化（割り算）すると補正係数１．４が得られる。また、複雑度区分値が２は補正線ｈにおいて１．８であるから、３により正規化（割り算）すると補正係数０．６が得られる。他の複雑度区分値についても同様にすると、図１２に示す複雑度(複雑度区分値)と補正係数の対照テーブルが得られる。
【００４２】
前述の通り、入力部２１から測定対象プロジェクトのソフトウエアに関するプログラム複雑度区分情報及びデータ複雑度区分情報が入力されているので、和算により測定対象プロジェクトのソフトウエアの複雑度区分値が得られ、図１２のテーブルから補正係数が得られる。例えば、プログラム複雑度区分情報が２であり、データ複雑度区分情報が１であるとして、入力されている場合には、合計である複雑度区分値は３であり、図１２のテーブルから補正係数０．７が得られる。
【００４３】
補正手段１５は、上記のようにして得られた補正係数情報に基づきファンクションポイント算出手段１２によって算出されたファンクションポイント情報に補正を加える。図７に示す通りのファンクションポイント情報（未調整ＦＰ）＝２４について、補正係数０．７を適用する乗算を行い、調整済ファンクションポイント情報（調整済ＦＰ）＝１６．８を得る。この結果、図７の未調整ＦＰの欄が調整済ＦＰに変更される。
【００４４】
調整済ファンクションポイント情報（調整済ＦＰ）＝１６．８は、出力制御手段１３によって出力部２２へ出力され、表示などがなされる。本実施例では、第２のデータベース３２と補正係数情報取得手段１４を備えたが、これらを他の装置において備えるようにし、得られた補正係数（テーブル）を入力部２１から入力して演算部１０が保持するように構成しても良い。
【００４５】
未調整ＦＰの補正に関しては、必ずしも行わなくとも良い。本発明の実施例において理解できるように、１利用者当たりの統計的データ移動数情報（実施例では、３．００）に一致する複雑度区分値の補正係数を１としているため、未調整ＦＰの補正が必要か否かを演算部１０において判断する処理を不要としている。即ち、全ての場合において単に補正計数を未調整ＦＰに掛けることにより、補正が必要な未調整ＦＰについては補正がなされる一方、補正が不要な未調整ＦＰについては１が掛けられて補正なしと同じ結果が得られるように構成されている。
【００４６】
過去に行った５８プロジェクトに関するＣＯＳＭＩＣ法による測定結果と、本発明による測定結果である相関を散布図として図１３（ａ）図１３（ｂ）に示す。図１３（ａ）におけるＲ２＝０．８１８３は相関係数＝０．９０５で非常に強い相関にあることが分かる。図１３（ａ）の非相関に係る４プロジェクトを除いて再度相関を散布図としたものを図１３（ｂ）に示す。この図１３（ｂ）におけるＲ２＝０．９３８５は相関係数＝０．９６９で非常に強い相関にあることが分かる。
【００４７】
実施例に係るソフトウエア規模測定装置の演算部１０における各手段は、図１４に示されるフローチャートに対応するプログラムをコンピュータが実行することにより実現されるものであるので、このフローチャートを用いてソフトウエア規模測定装置の動作を説明する。測定対象プロジェクトのソフトウエアに関する要求仕様書の記載内容に基づき、上記ソフトウエアの必要機能を実現する機能プロセスを識別し、また、トリガイベントを識別し、識別結果に係る機能プロセス情報とトリガイベント情報を入力部２１から入力する（Ｓ１１）。
【００４８】
更に、上記の各機能プロセス情報とトリガイベント情報に対応する利用者数を求めて、求めた利用者数情報を入力部２１から入力する（Ｓ１２）。つまり、図７に示した情報を全て入力する。これにより、演算部１０が起動し、先に説明したようにして統計的データ移動数情報を得て、各単位の利用者数情報に上記統計的データ移動数情報を乗じる乗算を行い機能量を得る（Ｓ１３）。更に、該乗算の結果である機能量を加える和算を行ってファンクションポイント情報（未調整ＦＰ）を得る（Ｓ１４）。
【００４９】
測定者は全ての機能プロセス情報を入力したかの確認を行い（Ｓ１５）、全機能プロセス情報の入力が完了している場合に、演算部１０を次の処理へ移行させるべく、測定対象プロジェクトのソフトウエアに関するプログラム複雑度及びデータ複雑度の評価を行い、結果であるプログラム複雑度区分情報及びデータ複雑度区分情報を入力部２１から入力する（Ｓ２１、Ｓ２２）。
【００５０】
上記入力に応じて、演算部１０は、プログラム複雑度区分情報とデータ複雑度区分情報を合計して複雑度区分値を得る（Ｓ２３）。先に説明したようにして、補正線ｈを得て、この二次元座標において上記１利用者当たりの統計的データ移動数情報（３．００）に一致する複雑度区分値の補正係数を１とし、他の複雑度区分値を上記１利用者当たりの統計的データ移動数情報により正規化して、補正係数の対照テーブルを得る（Ｓ２４）。
【００５１】
演算部１０は、対照テーブルを用いて、ステップＳ２３において得られた複雑度区分値に対応する補正係数を求める（Ｓ２５）。先の例では、複雑度区分値は３であり、図１２のテーブルから補正係数０．７が得られる。次に、ファンクションポイント情報（未調整ＦＰ）＝２４について、補正係数０．７を適用する乗算を行い、調整済ファンクションポイント情報（調整済ＦＰ）＝１６．８を得て、出力制御手段１３によって出力部２２へ出力され、表示などがなされる（Ｓ２６）。
【００５２】
このようにして得られた測定結果は、図１３を用いて説明したように、ＣＯＳＭＩＣ法による測定結果と強い相関を有しており、デジタル家電などの組込みシステムやリアルタイムシステムのソフトウエア規模測定をＣＯＳＭＩＣ法と同様に好適に行うことができる。この場合、ＣＯＳＭＩＣ法を完璧に理解している必要がなく、上記において入力部２１から入力した情報を識別できれば良く、平易な測定である。測定に必要な情報が少なく、必要情報の識別も比較的容易であるから、ＣＯＳＭＩＣ法に比べて短時間で測定を行うことができる利点がある。
【図面の簡単な説明】
【００５３】
【図１】本発明に係るソフトウエア規模測定装置の実施例の構成を示すブロック図。
【図２】本発明に係るソフトウエア規模測定装置の実施例の測定法において用いられる測定対象プロジェクトのソフトウエアと機能プロセスの関係の一例を示す図。
【図３】本発明に係るソフトウエア規模測定装置の実施例の測定法において用いられる測定対象プロジェクトのソフトウエアにおける機能プロセス、利用者、トリガイベントの関係の一例を示す図。
【図４】本発明に係るソフトウエア規模測定装置の実施例の測定法に用いられる測定対象プロジェクトのソフトウエアにおける機能プロセスと利用者数の関係の一例を示す図。
【図５】本発明に係るソフトウエア規模測定装置の実施例が備える第１のデータベースに記憶されている情報の内容の一例を示す図。
【図６】本発明に係るソフトウエア規模測定装置の実施例が統計的処理行って１利用者当たりの統計的データ移動数情報を求める処理を説明するためのヒストグラムの一例を示す図。
【図７】本発明に係るソフトウエア規模測定装置の実施例によってファンクションポイント情報（未調整ＦＰ）を求める処理を説明するための計算シートを示す図。
【図８】本発明に係るソフトウエア規模測定装置の実施例によってファンクションポイント情報（未調整ＦＰ）を補正する処理に用いるプログラム複雑度区分及びデータ複雑度区分の一例を示す図。
【図９】過去の測定結果から得られたプログラム複雑度区分とデータ移動数の関係及びデータ複雑度区分とデータ移動数の関係の一例をグラフ化して示した図。
【図１０】本発明に係るソフトウエア規模測定装置の実施例が備える第２のデータベースに記憶されている情報の内容の一例を示す図。
【図１１】本発明に係るソフトウエア規模測定装置の実施例によってファンクションポイント情報（未調整ＦＰ）を補正する補正係数情報を得るときの処理に用いるグラフを示す図。
【図１２】本発明に係るソフトウエア規模測定装置の実施例によってファンクションポイント情報（未調整ＦＰ）を補正する処理に用いる補正係数情報の一例を示す図。
【図１３】本発明に係るソフトウエア規模測定装置の実施例による測定結果とＣＯＳＭＩＣ法による測定結果の相関を示す分布図。
【図１４】本発明に係るソフトウエア規模測定装置の実施例の動作を説明するためのフローチャート。
【符号の説明】
【００５４】
１０  演算部
１１  統計的データ移動数情報取得手段
１２  ファンクションポイント算出手段
１３  出力制御手段
１４  補正係数情報取得手段
１５  補正手段
２１  入力部
２２  出力部
３０  外部記憶部
３１  第１のデータベース
３２  第２のデータベース
【図１】
2010113639.tif 000003
【図２】
2010113639.tif 000004
【図４】
2010113639.tif 000005
【図５】
2010113639.tif 000006
【図６】
2010113639.tif 000007
【図７】
2010113639.tif 000008
【図８】
2010113639.tif 000009
【図１０】
2010113639.tif 000010
【図１２】
2010113639.tif 000011
【図１４】
2010113639.tif 000012
【図３】
2010113639.tif 000013
【図９】
2010113639.tif 000014
【図１１】
2010113639.tif 000015
【図１３】
2010113639.tif 000016