(57)【要約】【課題】ソフトウェア開発作業に係る量的な情報を用いつつも、開発作業の質を反映させたソフトウェア開発作業の生産性評価方法を提供する。【解決手段】コンピュータ装置（１００、１０１）により実行されるソフトウェア開発評価方法は、第１のソフトウェアに基づいて第２のソフトウェアを開発するソフトウェア開発作業において、前記第２のソフトウェア開発作業のうち、前記第１のソフトウェア開発作業が原因で新たに発生した作業に係る、ソフトウェアの記述量のような価値データ（β、δ）と、投入資源量（α）とを解析して、夫々のソフトウェア開発作業の評価データ（６００、７００Ａ）を修正する。【選択図】図１
2011170494.tif 000002
【特許請求の範囲】
【請求項１】
第１のソフトウェア開発作業から得られた第１のソフトウェアの価値と前記第１のソフトウェアを修正する第２のソフトウェア開発作業から得られた価値とを夫々表す価値データを生成する第１処理と、
夫々のソフトウェア開発作業において、投入した資源量と前記価値データとに基づいてソフトウェア開発作業毎に作業の生産性を表す評価データを生成する第２処理と、
前記第２のソフトウェア開発作業の投入資源量の内、前記第１のソフトウェア開発作業が原因で新たに発生した作業に相当する部分投入資源量を解析する第３処理と、
前記第２のソフトウェア開発作業の価値データの内、前記第１のソフトウェア開発作業が原因で新たに発生した作業に相当する部分データ値を解析する第４処理と、
前記第３処理で得られた部分投入資源量と前記第４処理で得られた部分データ値とに基づいて、前記評価データを修正する第５処理と、を含み、前記第１乃至第５処理がコンピュータ装置により実行されるソフトウェア開発評価方法。
【請求項２】
前記価値データはソフトウェアの記述量に換算されるデータであり、投入した資源量は作業時間に換算される量である、請求項１記載のソフトウェア開発評価方法。
【請求項３】
前記部分投入資源量は、前記第１のソフトウェアにおける記述量に影響のある追加又は変更と記述量に影響のない変更との双方に要した時間である、請求項２記載のソフトウェア開発評価方法。
【請求項４】
前記部分データ値は、前記第１のソフトウェアにおける記述量に影響のある追加又は変更による記述量である、請求項３記載のソフトウェア開発評価方法。
【請求項５】
前記部分投入資源量は、前記部分データ値と前記第２のソフトウェア開発作業の価値データとの比を用いて、前記第２のソフトウェア開発作業の投入資源量から解析される、請求項３記載のソフトウェア開発評価方法。
【請求項６】
前記第５処理は、前記第１のソフトウェア開発作業の投入資源量に前記部分投入資源量を加算すると共に、前記第１のソフトウェア開発作業の価値データに前記部分データ値を加算し、加算した値に基づいて前記第１のソフトウェア開発作業の生産性を修正する処理である、請求項４記載のソフトウェア開発評価方法。
【請求項７】
前記第５処理は更に、前記第２のソフトウェア開発作業の投入資源量から前記部分投入資源量を減算すると共に、前記第２のソフトウェア開発作業の価値データから前記部分データ値を減算し、減算した値に基づいて前記第２のソフトウェア開発作業の生産性を修正する処理を含む処理である、請求項６記載のソフトウェア開発評価方法。
【請求項８】
前記第１のソフトウェア開発作業から得られた第１のソフトウェアの価値と前記第１のソフトウェアを修正する第２のソフトウェア開発作業から得られた価値とを夫々表す価値データを生成する第１処理と、
夫々のソフトウェア開発作業において、投入した資源量と前記価値データとに基づいてソフトウェア開発作業毎に作業の生産性を表す評価データを生成する第２処理と、
前記第２のソフトウェア開発作業の投入資源量の内、前記第１のソフトウェア開発作業が原因で新たに発生した作業に相当する部分投入資源量を解析する第３処理と、
前記第２のソフトウェア開発作業の価値データの内、前記第１のソフトウェア開発作業が原因で新たに発生した作業に相当する部分データ値を解析する第４処理と、
前記第３処理で得られた部分投入資源量と前記第４処理で得られたデータ値とに基づいて、前記評価データを修正する第５処理と、を制御する制御データを含み、前記第１乃至第５処理がコンピュータ装置によって実行可能なソフトウェア開発評価プログラム。
【請求項９】
プログラムを実行する中央処理装置と、
前記中央処理装置に利用される記憶部と、を有するデータ処理システムであって、
前記中央処理装置は、第１のソフトウェア開発作業から得られた第１のソフトウェアの価値と前記第１のソフトウェアを修正する第２のソフトウェア開発作業から得られた価値とを夫々表す価値データを生成する第１処理を実行し、夫々のソフトウェア開発作業において投入した資源量と前記価値データとに基づいてソフトウェア開発作業毎に作業の生産性を表す評価データを生成する第２処理を実行し、前記第２のソフトウェア開発作業の投入資源量の内、前記第１のソフトウェア開発作業が原因で新たに発生した作業に相当する部分投入資源量を解析する第３処理を実行し、前記第２のソフトウェア開発作業の価値データの内、前記第１のソフトウェア開発作業が原因で新たに発生した作業に相当する部分データ値を解析する第４処理を実行し、前記第３処理で得られた部分投入資源量と前記第４処理で得られたデータ値とに基づいて、前記評価データを修正する第５処理を実行する、データ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア開発に関し、特に、累積的なソフトウェア開発に適用して有効な技術に関する。
【背景技術】
【０００２】
ソフトウェア開発作業を評価する指標として、“生産性”が用いられる。生産性は、一般的に作業を評価する指標として用いられ、生産要素の投入高（インプット）に対して、どの程度の産出高（アウトプット）があるかを示す指標であり、その大小は、生産能率の良し悪しを意味する。例えば、生産性は、作業の工数（インプット）あたりの成果物の規模（アウトプット）で表わされる。他にも、投入高（インプット）としては、労働と資本が利用され、産出高（アウトプット）としては、付加価値、売上高、生産額等が利用される。なお、生産性の評価の視点は、産出高を金額でとらえる視点と金額以外でとらえる視点に大別できる。金額でとらえるとは、何らかの数量を貨幣価値で評価したものである。また、金額以外でとらえるとは、金額に換算する前の金額以外の指標で産出高を把握することである。投入高についても、金額でとらえる視点と金額以外でとらえる視点、双方で表現可能である。
【０００３】
ソフトウェアの開発作業のプロジェクトにおける生産性は、その測定の容易さもあり、産出高として“開発したソフトウェアの規模”を、投入高として“開発に要した工数”を、利用することにより、“１人月当たりのソフトウェアの規模”によって評価される場合が多い。産出高としてソフトウェアの規模が用いられる理由は、ソフトウェアの規模は、ソフトウェアの価値を表わす指標の一つであり、売上げ等の金銭的価値に反映し易いからである。上記のソフトウェアの規模としては、例えば、ソースコードの行数、ファンクションポイント数、又は仕様書等の文書のページ数等が用いられる。なお、ソフトウェアの規模は、開発費用や開発期間を見積もる手段としても利用されている。
【０００４】
しかしながら、ソフトウェアの開発作業の評価として、上述のように、単純にソフトウェアの規模と工数から生産性を算出し、その値の大小を比較する評価を行うだけでは、作業の産み出す価値やコストパフォーマンスを反映しない結果となる場合がある。例えば、完成されたソフトウェアに変更を加える作業を評価する場合には特に注意を要する。
【０００５】
非特許文献３に示されるように、変更作業のなかでも欠陥修正を意味する「保守」の費用は通常、開発組織が負担するのに対して、「新規機能追加」や「機能拡張」のコストは顧客に要求される。この相違は、規模と工数の大きさに加えて、変更対象となったソフトウェアの品質が、経済的な価値（経済性）に影響することを示唆している。しかし、規模と工数の量的な情報だけを用いた生産性評価では、変更対象が品質の悪いソフトウェアである「保守」であっても、開発規模と工数が同一である場合には、「新規機能追加」及び「機能拡張」と作業評価が同じになってしまう。すなわち、単純に規模と工数の大小を測定した値に基づいて算出した生産性では、作業の産み出す価値やコストパフォーマンスの優劣を反映した評価ができない。そこで、ソフトウェアの規模と工数の量的側面だけでなく、ソフトウェアの品質に関わる質的側面を勘案した評価が望ましい。
【０００６】
工数の量的側面について評価する方法の従来例として、例えば、特許文献１に、品質の悪さ（バグ等が存在する状態）が原因で発生する作業（手戻り作業）による工数面へのダメージを評価する方法が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００５−２２２１０８号公報
【非特許文献】
【０００８】
【非特許文献１】佐藤裕一、「経営分析の基本」、日本経済新聞社、２００３、第３版、ｐ３８
【非特許文献２】金子英一、梶山昌之、「アプリケーション・マネジメント・サービス（ＡＭＳ）における開発生産性評価プロセスの確立」、ＰＲＯＶＩＳＩＯＮ  Ｎｏ．４８  Ｗｉｎｔｅｒ  ２００６
【非特許文献３】Ｃａｐｅｒｓ  Ｊｏｎｅｓ、「ソフトウェア開発の定量化手法」、共立出版、１９９８、第２版、ｐ２９、ｐ２２９
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献１に記載の方法は、バクを解決するために要した日数を計算し、計算した日数に基づいて、当該バクの工数面へのダメージを評価する方法である。
【００１０】
しかしながら、特許文献１に記載の方法では、バグの解決に要した量的なダメージの把握にとどまり、ソフトウェアの品質を考慮した生産性の評価を目的とする場合には十分とはいえない。
【００１１】
本発明の目的は、ソフトウェア開発作業に係る量的な情報を用いつつも、開発作業の質を反映させたソフトウェア開発作業の生産性の評価を行うことを目的とする。
【００１２】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１３】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１４】
すなわち、コンピュータ装置により実行されるソフトウェア開発評価方法は、第１のソフトウェアに基づいて第２のソフトウェアを開発するソフトウェア開発作業において、前記第２のソフトウェア開発作業のうち、前記第１のソフトウェア開発作業が原因で新たに発生した作業に係る、ソフトウェアの記述量のような価値データと、投入資源量とを解析して、夫々のソフトウェア開発作業の評価データを修正する。
【発明の効果】
【００１５】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１６】
すなわち、ソフトウェア開発作業に係る量的な情報を用いつつも、開発作業の質を反映させてソフトウェア開発作業の生産性を評価することができる。
【図面の簡単な説明】
【００１７】
【図１】図１は、本実施の形態に係るソフトウェア開発作業の評価方法を適用したデータ処理システムの構成図の一例である。
【図２】図２は、各ソフトウェア開発作業とその成果物の一例である。
【図３】図３は、第１作業と第２作業の生産性についての説明図である。
【図４】図４は、差分解析情報テーブルの一例である。
【図５】図５は、規模集計表の一例である。
【図６】図６は、変更原因情報テーブルの一例である。
【図７】図７は、第２作業に関する規模分類集計表の一例である。
【図８】図８は、作業評価表の一例である。
【図９】図９は、作業評価表の修正方法の定義の一例である。
【図１０】図１０は、作業工数αを求めるためのパラメータの一例である。
【図１１】図１１は、第１作業に関する作業評価修正表の一例である。
【図１２】図１２は、要否判断部１０１６の動作フロー図の一例である。
【図１３】図１３は、修正実行部１０１７の動作フロー図の一例である。
【発明を実施するための形態】
【００１８】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１９】
〔１〕本発明の代表的な実施の形態に係るソフトウェア開発評価方法は、第１のソフトウェア開発作業から得られた第１のソフトウェアの価値と前記第１のソフトウェアを修正する第２のソフトウェア開発作業から得られた価値とを夫々表す価値データ（Ｋ１、Ｋ２）を生成する第１処理と、夫々のソフトウェア開発作業において、投入した資源量（Ｓ１、Ｓ２）と前記価値データとに基づいてソフトウェア開発作業毎に作業の生産性を表す評価データ（６００）を生成する第２処理と、を含む。また、前記ソフトウェア開発評価方法は、前記第２のソフトウェア開発作業の投入資源量の内、前記第１のソフトウェア開発作業が原因で新たに発生した作業に相当する部分投入資源量（α）を解析する第３処理と、前記第２のソフトウェア開発作業の価値データの内、前記第１のソフトウェア開発作業が原因で新たに発生した作業に相当する部分データ値（β）を解析する第４処理と、含む。更に、ソフトウェア開発評価方法は、前記第３処理で得られた部分投入資源量と前記第４処理で得られた部分データ値とに基づいて、前記評価データを修正する（７００Ａ）第５処理と、を含み、前記第１乃至第５処理がコンピュータ装置（１００、１０１）により実行される。これによれば、前記第２のソフトウェア開発作業の投入資源量の内、前記第１のソフトウェア開発作業が原因で新たに発生した前記投入資源量と前記価値データを解析することにより、ソフトウェア開発作業に係る量的な情報を質的な面から把握することができる。そして、その解析結果に基づいて前記評価データを修正するから、ソフトウェア開発作業の質を反映させたソフトウェア開発の評価が可能となる。
【００２０】
〔２〕項１のソフトウェア開発評価方法において、前記価値データはソフトウェアの記述量に換算されるデータであり、投入した資源量は作業時間に換算される量である。これによれば、ソフトウェア開発作業の好適な生産性の評価をすることができる。
【００２１】
〔３〕項１又は２のソフトウェア開発評価方法において、前記部分投入資源量は、前記第１のソフトウェアにおける記述量に影響のある追加又は変更と記述量に影響のない変更との双方に要した時間である。これによれば、前記第２のソフトウェア開発作業の内、前記第１のソフトウェア開発作業が原因で新たに発生した作業に係る前記投入資源量の内訳を、前記記述量に基づいて好適に把握することができる。
【００２２】
〔４〕項１乃至３の何れかのソフトウェア開発評価方法において、前記部分データ値は、前記第１のソフトウェアにおける記述量に影響のある追加又は変更による記述量（β）である。これによれば、前記第２のソフトウェア開発作業において、前記第１のソフトウェアの記述量に対して実質的に増加した記述量を、好適に把握することができる。
【００２３】
〔５〕項１乃至３の何れかのソフトウェア開発評価方法において、前記部分投入資源量は、前記部分データ値と前記第２のソフトウェア開発作業の価値データとの比を用いて、前記第２のソフトウェア開発作業の投入資源量から解析される。これによれば、前記部分投入資源量を好適に算出することができる。
【００２４】
〔６〕項１乃至５の何れかのソフトウェア開発評価方法において、前記第５処理は、前記第１のソフトウェア開発作業の投入資源量（Ｓ１）に前記部分投入資源量（α）を加算すると共に、前記第１のソフトウェア開発作業の価値データ（Ｋ１）に前記部分データ値（β）を加算し、加算した値に基づいて前記第１のソフトウェア開発作業の生産性を修正する処理である。これによれば、前記第１のソフトウェア開発作業の生産性について、作業の質を考慮した妥当性ある評価が可能となる。
【００２５】
〔７〕項１乃至６の何れかのソフトウェア開発評価方法において、前記第５処理は更に、前記第２のソフトウェア開発作業の投入資源量（Ｓ２）から前記部分投入資源量（α）を減算すると共に、前記第２のソフトウェア開発作業の価値データ（Ｋ２）から前記部分データ値（β）を減算し、減算した値に基づいて前記第２のソフトウェア開発作業の生産性を修正する処理を含む処理である。これによれば、前記第２のソフトウェア開発作業の生産性について、作業の質を考慮した妥当性ある評価が可能となる。
【００２６】
〔８〕本発明の代表的な実施の形態に係るソフトウェア開発評価プログラムは、前記第１のソフトウェア開発作業から得られた第１のソフトウェアの価値と前記第１のソフトウェアを修正する第２のソフトウェア開発作業から得られた価値とを夫々表す価値データを生成する第１処理と、夫々のソフトウェア開発作業において、投入した資源量と前記価値データとに基づいてソフトウェア開発作業毎に作業の生産性を表す評価データを生成する第２処理と、を含む。また、前記ソフトウェア開発評価プログラムは、前記第２のソフトウェア開発作業の投入資源量の内、前記第１のソフトウェア開発作業が原因で新たに発生した作業に相当する部分投入資源量を解析する第３処理と、前記第２のソフトウェア開発作業の価値データの内、前記第１のソフトウェア開発作業が原因で新たに発生した作業に相当する部分データ値を解析する第４処理と、を含む。更に前記ソフトウェア開発評価プログラムは、前記第３処理で得られた部分投入資源量と前記第４処理で得られたデータ値とに基づいて、前記評価データを修正する第５処理と、を制御する制御データを含み、前記第１乃至第５処理がコンピュータ装置によって実行可能とされる。これによれば、項１と同様の作用及び効果を奏する。
【００２７】
〔９〕本発明の代表的な実施の形態に係るデータ処理システムは、プログラムを実行する中央処理装置と、前記中央処理装置に利用される記憶部（１００Ｃ、１０１Ｃ）と、を有するデータ処理システム（１００、１０１）であって、前記中央処理装置は、第１のソフトウェア開発作業から得られた第１のソフトウェアの価値と前記第１のソフトウェアを修正する第２のソフトウェア開発作業から得られた価値とを夫々表す価値データを生成する第１処理を実行する。前記中央処理装置は、夫々のソフトウェア開発作業において投入した資源量と前記価値データとに基づいてソフトウェア開発作業毎に作業の生産性を表す評価データを生成する第２処理を実行する。更に前記中央処理装置は、前記第２のソフトウェア開発作業の投入資源量の内、前記第１のソフトウェア開発作業が原因で新たに発生した作業に相当する部分投入資源量を解析する第３処理を実行し、前記第２のソフトウェア開発作業の価値データの内、前記第１のソフトウェア開発作業が原因で新たに発生した作業に相当する部分データ値を解析する第４処理を実行し、前記第３処理で得られた部分投入資源量と前記第４処理で得られたデータ値とに基づいて、前記評価データを修正する第５処理を実行する。これによれば、項１と同様の作用及び効果を奏する。
【００２８】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００２９】
≪実施の形態１≫
図１は、本発明の実施の形態に係る、ソフトウェア開発作業の評価方法を適用したデータ処理システムの構成図である。
【００３０】
前記データ処理システムは、ソフトウェア開発作業の評価を作業毎に行う。図１には、前記データ処理システムの構成要素として、ソフトウェアを開発する側の情報処理装置である開発用情報処理装置１００と、ソフトウェアの開発作業の評価を行う側の情報処理装置である評価用情報処理装置１０１を、代表的に示している。
【００３１】
前記開発者用情報処理装置１００は、ソフトウェア開発作業毎に設置される。例えば、ソフトウェア開発を行う開発チーム毎に設置される。
【００３２】
前記開発用情報処理装置１００では、データ処理を実行する中央処理装置を備えたエンジニアリングワークステーション又はＰＣ（パーソナルコンピュータ）のようなコンピュータ装置１００Ａが、ソフトウェア開発に必要な機能を実現するための開発基盤１００Ｂを用いることにより、ソフトウェアを開発する。なお、前記コンピュータ装置１００Ａは、開発者との間のインターフェースとして、図１に示されない、表示装置や入力装置を備える。また、前記開発基盤１００Ｂは、例えば、デバッガ、シミュレータ、及びソフトウェア構成管理環境等である。
【００３３】
前記開発用情報処理装置１００では更に、開発されたソフトウェアに係る開発作業の評価データと解析データが、評価データ生成部１０００によって生成される。前記評価データは、詳細は後述するが、ソフトウェア開発作業の生産性の評価を行うためのデータであり、夫々の開発作業の成果物であるソースコード等や作業工数に基づいて生成される。また、前記解析データは、詳細は後述するが、作業の成果物等を解析したデータである。
【００３４】
生成された前記評価データ、前記解析データ、及び開発されたソフトウェア等は、データ格納部１００Ｃに格納される。前記データ格納部１００Ｃ、及び後述するデータ格納部１０１Ｃは、ハードディスク又はメモリディスク等の補助記憶装置によって構成される。また、前記開発者用情報処理装置１００、及び前記評価者用情報処理装置１０１は、図示されないネットワーク等で接続されており、前記開発用情報処理装置１００が備えるデータ送受信部１００１と前記評価用情報処理装置１０１が備えるデータ送受信部１０１１を通じて前記評価データ等の交換が行われる。
【００３５】
前記評価者用情報処理装置１０１では、コンピュータ装置１０１Ａが前記開発者用情報処理装置１００によって生成された前記評価データ及び前記解析データを受け取ってデータ格納部１０１Ｃに格納し、必要に応じて作業評価修正部１０１５により、前記評価データの修正を行う。
【００３６】
なお、前記コンピュータ装置１０１Ａは、前記コンピュータ装置１００Ａ同様に、エンジニアリングワークステーション又はＰＣ（パーソナルコンピュータ）であり、図１に示されない、表示装置や入力装置を備える。
【００３７】
前記データ処理システムによる具体的な処理について説明する前に、まず、ソフトウェア開発作業の生産性について説明する。
【００３８】
以下本実施の形態の説明では、第１ソフトウェア開発作業（以下、「第１作業」という。）によって生成された第１ソフトウェアに基づいて第２ソフトウェア開発作業（以下、「第２作業」という。）を行う場合を例とする。
【００３９】
ソフトウェア開発作業の生産性は、前述のように、投入高と産出高により算出される。
【００４０】
本実施の形態では、投入高として、夫々のソフトウェア開発作業に要した開発者の作業工数を用いる。そして、産出高としては、ソフトウェア開発作業により産み出される価値を表わす指標を用いる。ここでは、その指標の一例として、ソフトウェアの規模を用いる。
【００４１】
ソフトウェアの規模について、図２を用いて説明する。
【００４２】
図２は、各ソフトウェア開発作業とその成果物の一例である。
【００４３】
図２において、前作業となる前記第１作業の成果物を第１ソフトウェア２０１とし、後作業となる前記第２作業の成果物を第２ソフトウェア２０２とする。なお、前作業とは、後続の作業である後作業を基準としたときに、当該後続の作業の実施前に行われた作業であって、且つ後続の作業に影響を及ぼす関係にある作業のことである。
【００４４】
図２において、前記第１ソフトウェア２０１に対する前記第２ソフトウェア２０２の変更箇所は、行１、行３、及び行４である。具体的な変更内容は、以下である。
【００４５】
前記第２ソフトウェアの行１は、前記第１ソフトウェア２０１において作り忘れたソースコードの追加による変更箇所である。また、前記第２ソフトウェアの行４は、前記第１ソフトウェア２０１において作り間違えたソースコードの修正による変更箇所である。更に、前記第２ソフトウェアの行３は、前記第１ソフトウェア２０１からの機能変更、及び新たな機能追加に伴うソースコードの変更又は追加による変更箇所である。
【００４６】
本実施の形態では、ソフトウェアの規模はソースコードの行数によって表わす。例えば、前記第１ソフトウェア２０１の場合、ソースコードの行数は４行であるから、前記第１ソフトウェア２０１の規模は“４”となる。一方、前記第２ソフトウェア２０２の場合、ソースコードの行数は５行であるから、前記第２ソフトウェア２０２の規模は“５”となる。
【００４７】
ソフトウェアの規模を用いて産出高を表現する場合、開発作業により産み出される新たな価値という観点で考えると、産出高は、最終的に生成されたソフトウェアの規模ではなく、ベースとなるソフトウェアからの変更に伴うソフトウェアの規模（以下、「変更量」という。）で表現するほうが実態を的確に評価できる場合があると考えられる。そこで、本実施の形態では、産出高として、前記変更量を用いる。図２の場合に前記変更量を考えると、前記第１作業に関しては、ベースとなるソフトウェアがない状態から前記第１ソフトウェア２０１を開発していることから、前記第１作業の前記変更量は“４”となる。一方、前記第２作業に関しては、前述のように、前記第１ソフトウェア２０１をベースとして前記第２ソフトウェア２０２を開発しており、前記第１ソフトウェア２０１からの変更箇所が３行であることから、前記第２作業の前記変更量は“３”となる。
【００４８】
次に、ソフトウェア開発作業毎の生産性について図３を用いて説明する。
【００４９】
図３は前記第１作業と前記第２作業の生産性についての説明図である。
【００５０】
図３において、横軸は、ソフトウェア開発作業における投入高（インプット）を表わし、ソフトウェア開発作業に投入した資源量である。ここでは、前述のように、開発者の作業工数を用いる。また、縦軸はソフトウェア開発作業における産出高（アウトプット）を表わし、前記変更量を用いる。そして、夫々の開発作業の作業効率、すなわち生産性は、夫々のグラフの傾き（産出高／投入高）によって表わされる。例えば、図３において、前記第１作業に要した工数をＳ１とし、前記第１作業における変更量をＫ１した場合、前記第１作業の生産性はＫ１／Ｓ１と表わされる。また、前記第２作業に要した工数をＳ２とし、前記第２作業における変更量をＫ２とすると、前記第２作業の生産性は、Ｋ２／Ｓ２と表わされる。ここで、Ｋ１の値は“４”であり、Ｋ２の値は“３”である。
【００５１】
以上のように表わすことで、前記第１作業と前記第２作業の夫々の生産性を算出することができる。しかしながら、前記第２作業において、前記第１ソフトウェア２０１のバク等の不良が原因で発生した作業、例えば、不良の解析及び対策等の作業、がある場合には、上記により算出された生産性を用いて、各作業の評価を行うことは妥当ではない。例えば、図３において、前記第２作業のうち、前記第１ソフトウェア２０１の不良対策等に要した作業工数αが存在したとする。この場合、当該作業工数αは、前記第２作業の本来の目的である機能の変更や追加等の作業を遅らせた要因であり、前記第２作業にとって不要な工数であったにも関わらず、前記作業工数Ｓ２に計上され、前記第２作業の評価を下げることになる。
【００５２】
そこで、前記システムによるソフトウェア開発作業の評価方法では、前記第２作業に投入した前記工数Ｓ２の内、前記第１作業が原因で新たに発生した前記工数αと、それに伴う変更量を解析し、その結果に基づいて開発作業の生産性を修正することを行う。
【００５３】
前述の場合において、前記不良対策等の変更作業による変更量は、２つの類型に分けることができる。
【００５４】
一つの類型は、前記第１ソフトウェア２０１に対して増加した変更量である。前記変更量が増加する場合としては、例えば、前記第１作業において作り忘れたソースコードを追加した場合がある。図２において、前記第２ソフトウェア２０２における行１が該当する。当該変更量は、図３において、βで表わされ、その値は“１”となる。
【００５５】
もう一つの類型は、前記第１ソフトウェア２０１に対して増加を伴わない変更量である。前記変更量の増加を伴わない場合としては、例えば、前記第１作業において作り間違えたソースコードを修正した場合がある。図２において、前記第２ソフトウェア２０２における行４が該当する。当該変更量は、図３において、δで表わされ、その値は“１”となる。
【００５６】
以上のように、前記システムによるソフトウェア開発作業の評価方法では、前記第２作業に投入した前記工数Ｓ２の内、前記第１作業が原因で新たに発生した前記工数αと、それに伴う変更量を解析する。そして、解析した前記変更量のうち、前記第１ソフトウェアに対して変更量の増加を伴う前記変更量βと、増加を伴わない前記変更量δを解析し、その結果に基づいて開発作業の生産性を修正する。これにより、ソフトウェア開発作業の評価の妥当性を上げることが可能となる。
【００５７】
本実施の形態に係る前記データ処理システムでは、前記評価データ生成部１０００によって、前述の変更量等の解析及び生産性の算出が行われ、解析結果を示す解析データと前記評価データが生成される。そして、前記評価データ修正部１０００によって、前記評価データの修正が行われる。
【００５８】
以下に、前記データ処理システムによる、前記解析データ及び前記評価データの生成方法と前記評価データの修正方法について詳細に説明する。ここでは、前記第２作業の解析結果から、前記第１作業の評価の修正を行う場合について説明する。
【００５９】
はじめに、前記解析データの生成方法について説明する。
【００６０】
前記解析データには、差分解析情報テーブル２００、変更原因情報テーブル４００、規模集計表３００、及び規模分類集計表５００が含まれる。これらのテーブル類は、前記評価データ生成部１０００の各構成要素により作成される。
【００６１】
図１に示されるように、前記開発用情報処理装置１００における前記評価データ生成部１０００は、構成要素として、成果物差分解析部１００２、規模集計部１００３、変更原因情報収集部１００４、及び作業評価表作成部１００５を有する。前記成果物差分解析部１００２、前記規模集計部１００３、前記変更原因情報収集部１００４、及び前記作業評価表作成部１００５は、コンピュータ装置における中央処理装置のような演算制御部がプログラムを実行することによって実現される機能実現手段の一部である。
【００６２】
まず、前記コンピュータ装置１００Ａによりソフトウェアが開発されると、前記成果物解析部１００２が、当該ソフトウェアに基づいて、差分解析情報テーブル２００を作成する。前記差分解析情報テーブル２００は、前作業の成果物から後作業の成果物への変更箇所を解析した結果が格納されるテーブルである。前記差分解析テーブルの生成は、例えば、成果物としてソフトウェアが生成された時点で開始されてもよいし、前記開発者用情報処理装置１００又は前記評価者用情報処理装置１０１の入力装置を介して入力された前記差分解析テーブルの作成要求に基づいて、開始されてもよい。
【００６３】
図４に前記差分解析情報テーブル２００の一例を示す。
【００６４】
図４に示される前記差分解析情報テーブル２００は、前述の図２の場合における、前記第２ソフトウェア２０２に関する前記差分解析情報テーブルであり、前記第１ソフトウェア２０１から前記第２ソフトウェア２０２への差分の内容を反映させたものである。
【００６５】
前記差分解析情報テーブル２００に保持される情報は、後作業のソフトウェアの位置情報２００１、前作業のソフトウェアの対応位置情報２００２、変更箇所表示２００３、第１の変更分類表示２００４、及び第２の変更分類表示２００５である。
【００６６】
前記後作業のソフトウェアの位置情報２００１は、後作業のソフトウェアの内部の位置を特定する情報が格納される。例えば、図４では、前記第２ソフトウェア２０２の各行の行番号などの情報（以下、「行の情報」、又は「行情報」と称する）が格納される。
【００６７】
前記前作業のソフトウェアの対応位置情報２００２は、前記後作業のソフトウェアの位置情報２００１に対応する前作業のソフトウェアの行の情報が格納される。例えば、図４では、前記対応位置情報２００２として、前記第２ソフトウェアの各行に対応する前記第１ソフトウェアの行の情報が格納される。具体的には、前記第２ソフトウェアの行２に対応する前記第１ソフトウェアのソースコードが行１であることから、その値が、前記位置情報２００１に対応されて格納される。また、前記第２ソフトウェアの行１に対応する前記第１ソフトウェアのソースコードは、存在しないことから、その旨が前記位置情報２００１に対応されて格納される。
【００６８】
前記変更箇所表示２００３は、前記第２ソフトウェアにおいて、前記第１ソフトウェアからの変更となっているソースコードであるか否かを表わす情報が格納される。例えば、前記第２ソフトウェア２０２の場合、行１、行３、及び行４が前記第１ソフトウェア２０１からの変更箇所なので、図４において、前記位置情報２００１の該当する行番号に対応する変更箇所表示２００３に、丸印が刻印されている。
【００６９】
前記第１の変更分類表示２００４は、前記変更箇所表示２００３に示された変更の内容が、前記第１ソフトウェア２０１に対してソースコードの行数が追加となる変更であるか否かを示す情報が格納される。例えば、前記第２ソフトウェア２０２における行１がそれに該当する。
【００７０】
前記第２の変更分類表示２００５は、前記変更箇所表示２００３に示された変更の内容が、前記第１ソフトウェア２０１に対してソースコードの行数の増減を伴わない変更であるか否かを示す情報が格納される。例えば、前記第２ソフトウェア２０２における行３及び行４がそれに該当する。
【００７１】
なお、前記第１ソフトウェアに関する前記差分解析情報テーブルを作成する場合は、例えば、前記後作業のソフトウェアの位置情報２００１に前記第１ソフトウェアの行情報が格納される。そして、前記対応位置情報２００２には、前作業のソフトウェアが存在しないことから、前記位置情報２００１のすべての行について対応する行がない旨の情報が格納される。また、前記変更箇所表示２００３及び前記第１の変更分類表示２００４には、前記位置情報２００１のすべての行について、変更及び追加である旨の情報が格納される。
【００７２】
次に、前記規模集計部１００３が、前記差分解析情報テーブル２００に基づいて、規模集計表３００を作成する。前記規模集計表３００は、作業単位毎の産出高（アウトプット）の情報が記録されるデータである。産出高の情報としては、例えば、ソフトウェアの規模の総量３００２と各作業に伴う変更作業量３００３が記録される。
【００７３】
図５は、前記第１作業の規模集計表３００Ａと前記第２作業の規模集計表３００Ｂの一例である。
【００７４】
前記規模集計部１００３は、前記ソフトウェアの規模の総量３００２の欄に、前記差分解析情報テーブル２００の前記位置情報２００１の欄に記録された行の合計数を記録する。例えば、前記第２作業の規模集計表３００Ｂの場合、前記ソフトウェアの規模の総量３００２の欄には、前記第２ソフトウェアの総行数である“５”が記録される。また、前記規模集計部１００３は、変更作業量３００３の欄に、前記差分解析情報テーブル２００の前記変更箇所表示２００３の欄に記録された行の合計数を記録する。例えば、前記第２作業の規模集計表３００Ｂの場合、前記変更作業量３００３の欄に、前記第１ソフトウェア２０１からの変更箇所である行数“３”が記録される。
【００７５】
なお、前記規模集計表３００は、前記規模集計表３００Ａ及び３００Ｂのように作業単位に作成されたデータでもよいし、前記規模集計表３００Ａと前記規模集計表３００Ｂをまとめた一つのデータでもよい。また、前記規模集計表３００が作成される作業の単位は、例えば、開発プロセス、工程、又はプロジェクトとしてもよい。
【００７６】
前記差分解析情報テーブル２００が作成されると、前記原因情報収集部１００４が、前作業の成果物から後作業の成果物への変更箇所について、その変更の原因を解析し、その結果を記録した変更作業原因情報テーブル４００を作成する。
【００７７】
前記解析は、変更原因となる事象が、いつ、どのように発生したものかに関する原因情報を、情報リソースを利用して収集し、その収集した情報を解析することにより行う。前記情報リソースとして、バグ管理票やソフトウェア構成管理情報等である。また、解析する内容は、具体的には、ソフトウェアの変更箇所が、前作業の不良等が原因で発生した結果であるのか、又は、後作業の本来の目的として機能追加や機能変更を実施した結果であるのかを解析する。これは、前記第２ソフトウェア２０２の開発作業に影響した前記第１ソフトウェア２０１の対応する行の位置を特定するために行う。
【００７８】
図６は、前記変更原因情報テーブル４００の一例である。
【００７９】
前記変更原因情報テーブル４００は、前記差分解析情報テーブル２００に原因作業４００６の欄が追加された形式である。前記変更原因情報テーブル４００は、前記前記差分解析情報テーブル２００に前記原因作業４００６の欄を追加することにより、前記差分解析情報テーブル２００を前記変更原因情報テーブル４００として上書きして生成してもよいし、前記差分解析情報テーブル２００とは別個に生成してもよい。
【００８０】
図６に示される前記変更原因情報テーブル４００では、前記第１ソフトウェア２０１の不良を前記第２作業により対策した箇所である行１及び行４に対応する前記原因作業４００６の欄に、“第１作業”が記録される。一方、前記第２作業の目的として機能変更が実施された行３に対応する前記原因作業欄４００６には、“第２作業”が記録される。
【００８１】
前記変更原因情報テーブル４００が作成されると、前記規模集計部１００３は、前記変更作業量３００３の内訳を集計した前記規模分類集計表５００を作成する。具体的には、前記規模集計部１００３は、前記変更原因情報テーブル４００の前記原因作業４００６を参照し、前記変更作業量３００３を原因作業毎に分類する。そして、前記規模集計部１００３は、更に前記変更原因情報テーブル４００の前記第１の変更分類表示２００４と前記第２の変更分類表示２００５を参照し、前記分類された前記変更作業量３００３を、ソースコードの行数の増加を伴う変更作業と行数の増減を伴わない変更作業とに分類し、各々の数量を集計する。集計された結果が、前記規模分類集計表５００として記録される。これは、前作業原因の作業に係る前記変更量を特定するために作成されるデータである。
【００８２】
図７は、前記第２作業に関する前記規模分類集計表５００の一例を示した説明図である。
【００８３】
図７において、変更原因作業５００１には、変更作業の原因となった原因作業が記録される。前後関係５００２の欄には、当該規模分類集計表５００に係る作業と、前記変更原因作業５００１に記録された作業との関係性を表わす情報が格納される。例えば、前記第２作業にとって、前記第１作業は“前作業”に該当するので、前記変更原因作業５００１の欄に記録された“前記第１作業”に対応する前記前後関係５００２の欄には、“前作業”と記録される。
【００８４】
また、図７において、追加量５００３の欄には、行数の増加を伴う変更作業を示す前記第１の変更分類表示２００４の集計結果が記録される。さらに、変更量５００４の欄には、行数の増加を伴わない変更作業を示す前記第２の変更分類表示２００５の集計結果が記録される。例えば、前記第１作業が原因作業であって、行数の増加に伴う変更に該当する変更箇所は、“行１“の１行であることから、前記変更原因作業５００１の“第１作業”に対応する前記追加量５００３の欄には、“１”が記録される。また、前記第２作業が原因作業であって、行数の増減を伴わない変更に該当する変更箇所は、“行３”の１行であることから、前記変更原因作業５００１の“第２作業”に対応する前記変更量５００４の欄には、“１”が記録される。
【００８５】
上記のように前記解析データが作成されることにより、前述の図３における前記変更量β、及び前記変更量δの値が解析されたことになる。すなわち、前記規模分類集計表５００において、前記変更原因作業５００１の“第１作業”に対応する前記追加量５００３の値が、前記変更量βの値となる。また、前記変更原因作業５００１の“第１作業”に対応する前記変更量５００４の値が、前記変更量δの値となる。
【００８６】
なお、前記変更原因情報テーブル４００、及び前記規模分類集計表５００の作成は、前記差分解析情報テーブル２００及び、前記規模集計表３００が作成された後に続けて実行されてもよいし、後述する修正実行部１０１７からの要求に基づいて実行されてもよい。
【００８７】
生成された前記解析データは、前記データ格納部１００Ｃに格納されるとともに、前記データ送受信部１００１を介して前記評価情報処理装置１０１に送信される。
【００８８】
以上のように、前記解析データとして、前記差分解析情報テーブル２００、前記規模集計表３００、前記変更原因情報テーブル４００、及び前記規模分類集計表５００を作成することで、前記第１作業が原因で発生した変更作業量を、行数の増加を伴う変更作業量と、行数の増減を伴わない変更作業量とに分けて把握することが可能となる。
【００８９】
次に、前記評価データの生成方法について説明する。
【００９０】
前記評価データは、各ソフトウェア開発作業の生産性等を記録したデータであり、以下、「作業評価表」と称する。
【００９１】
前記作業評価表作成部１００５は、前記解析データ等の値に基づいて、各作業の生産性等を算出し、算出結果を前記作業評価表として作成する。前記作業評価表の作成は、前記解析データが作成された後に続けて実行されてもよいし、前記開発者用情報処理装置１００又は前記評価者用情報処理装置１０１の入力装置を介して入力される前記作業評価表の作成要求に基づいて、開始されてもよい。
【００９２】
図８は、前記作業評価表の一例を示す説明図である。
【００９３】
図８に示される作業評価表６００は、作業単位毎に評価項目が記録される。前記評価項目として、作業単位６００１、投入高（ＩＮＰＵＴ）６００２、産出高（ＯＵＴＰＵＴ）６００３、生産性（ＯＵＴＰＵＴ／ＩＮＰＵＴ）６００４、及び前作業原因の作業６００５が記録される。なお、前記作業評価表６００は、図８に示されるように作業毎に評価項目が記録された一つのデータでもよいし、別個のデータとして、作業毎に作成されてもよい。
【００９４】
前記投入高６００２には、各作業に要した作業工数が記録される。前記投入高６００２の単位は、例えば、１人が１ヶ月間で行うことができる作業量を表わす、“人月（Ｍａｎ  Ｍｏｎｔｈ）”を用いるが、その作業を行った人数、又は開発に要した金額など、他の単位を用いてもよい。
【００９５】
前記作業評価表作成部１００５は、例えば、前記開発者用情報処理装置１００、及び前記評価者用情報処理装置１０１の入力装置からの情報に基づいて、前記投入高６００２を記録する。図８において、前記投入高６００２として記録される値は、図３における作業工数の値である。すなわち、前記第１作業の作業工数を“Ｓ１”とし、前記第２作業の作業工数を“Ｓ２”とする。
【００９６】
前記産出高６００３には、例えば、各作業における前記変更作業量３００３が記録される。すなわち、前記作業評価表作成部１００５は、前記規模集計表３００の前記変更作業量３００３の欄を参照し、その内容を前記産出高６００３に記録する。例えば、図８において、前記第１作業の産出高６００３の欄には、前記規模集計表３００Ａにおける変更作業量３００３の欄の値である“４”が記録される。一方、前記第２作業の産出高６００３の欄には、前記規模集計表３００Ｂにおける変更作業量３００３の欄の値である“３”が記録される。
【００９７】
前記生産性６００４には、前記産出高６００３（ＯＵＴＰＵＴ）を前記投入高６００２（ＩＮＰＵＴ）で除算した値“ＯＵＴＰＵＴ／ＩＮＰＵＴ”が記録される。すなわち、前記作業評価表作成部１００５は、前記作業評価表の前記産出高（ＯＵＴＰＵＴ）６００３の値と、前記投入高（ＩＮＰＵＴ）６００２の値に基づいて演算を行い、その結果を前記生産性（ＯＵＴＰＵＴ／ＩＮＰＵＴ）６００４に記録する。例えば、前記第１作業に対応する前記生産性６００４の欄には、“４／Ｓ１”が記録され、前記第２作業に対応する前記生産性６００４の欄には、“３／Ｓ２”が記録される。
【００９８】
前記前作業原因の作業６００５の欄には、前作業原因の作業の有無が記録される。例えば、本例のように、前記第２作業で前記第１作業の不良を対策したような場合には、図８に示すように、前記第２作業に対応する前記前作業原因の作業６００５の欄に、“有”と記録される。
【００９９】
前作業原因の作業６００５の欄への記録は、前記作業評価表作成部１００５が自ら、前記変更原因情報テーブル４００、又は前記規模分類集計表５００を参照した値に基づいて行ってもよいし、前記作業評価表作成部１００５が、前記開発者用情報処理装置１００、及び前記評価者用情報処理装置１０１に外部から入力された値を参照することで行ってもよい。
【０１００】
以上のように生成された前記作業評価表は、前記データ格納部１００Ｃに格納されるとともに、データ送受信部１００１を介して前記評価情報処理装置１０１に送信される。
【０１０１】
次に、前記作業評価表の修正方法について説明する。
【０１０２】
前記開発用情報処理装置１００から送信された前記作業評価表６００は、前記評価情報処理装置１０１の前記データ格納部１０１Ｃに格納される。そして、前記作業評価修正部１０１５は、前記作業評価表６００の修正が必要か否かを判断し、修正が必要と判断した場合には、修正を実行する。
【０１０３】
前記作業評価修正部１０１５は、要否判断部１０１６と修正実行部１０１７を有する。
【０１０４】
前記要否判断部１０１６と前記修正実行部１０１７は、前記コンピュータ装置１０１Ａにおける中央処理装置のような演算制御部がプログラムを実行することによって実現される機能実現手段の一部である。
【０１０５】
前記要否判断部１０１６は、前記作業評価表６００の修正が必要であるか否かを判断し、判断の結果に基づいて、前記修正実行部１０１７を制御する。
【０１０６】
前記要否判断部１０１６の起動信号は、最新の作業に係る前記作業評価表を前記開発用評価装置１００から受信に連動した信号でもよいし、前記評価用情報処理装置１０１の入力装置を介して外部から入力された修正作業の開始の要求に基づく入力信号でもよい。前記入力信号は、例えば、前記評価用情報処理装置１０を操作する評価者からの指示等に係る信号である。
【０１０７】
前記要否判断部１０１６は、前記起動信号を受け取ると、前記データ格納部１０１Ｃに格納された前記作業評価表６００を読み出し、修正の必要性を判断する。例えば、前記作業評価表６００の前作業原因の作業６００５の欄を参照して、前作業原因の作業が有る場合には、修正が必要と判断する。そして、前記要否判断部１０１６は、前記修正実行部１０１７を制御して、前記作業評価表の修正を実行させる。
【０１０８】
前記修正実行部１０１７は、前記要否判断部１０１６により制御され、前記要否判断部１０１６により修正が必要と判断された前記作業評価表６００を取得し、その内容を修正する。具体的には、前記修正実行部１０１７は、前記解析データに基づいて、前記作業評価表６００の内容を修正し、修正した結果を作業評価修正表７００Ａとして、前記データ格納部１０１Ｃに格納する。
【０１０９】
前記修正実行部１０１７による前記作業評価表６００の修正方法を、図９を用いて詳細に説明する。
【０１１０】
図９は、前記作業評価表６００の修正の定義の一例を示した説明図である。
【０１１１】
図９において、参照符号７００１に示される行は、修正前の作業評価表の定義を表わしており、前記作業評価表６００は、この定義に則って作成されている。一方、参照符号７００２に示される行は、修正後の作業評価表の定義を表わしている。
【０１１２】
修正後の作業評価表の定義７００２において、修正後の投入高（ＩＮＰＵＴ）は、修正前の投入高である“Ｓｎ”に前記作業工数αを加算した値である“Ｓｎ＋α”とする。前記作業工数αは、後作業の本来の目的である機能追加や機能変更等のための作業を遅延させた作業の工数であり、後作業にとって不要な工数である。そこで、前記作業工数αは、本来ならば前作業で負担されるべき工数であると考え、前作業の投入高に計上する。これにより、前作業の査定が下がる方向に修正される。
【０１１３】
また、修正後の産出高（ＯＵＴＰＵＴ）は、修正前の産出高である前記変更作業量“Ｋｎ”に前記変更量βを加算した値である“Ｋｎ＋β”とする。これは、後作業における前作業原因の不良対策等の変更作業によって、前作業の成果物としての産出高が増えたと考えることができるからである。これにより、不良対策の変更作業であっても、前作業の産出高として、前記変更量βが新たに追加される査定となる。
【０１１４】
一方、行数の増減を伴わない前記変更量δは、前作業において作り間違えたソースコードを修正したものであり、既に前作業における産出高Ｋ１に計上されている。そこで、当該変更量δを新たな変更量として２重に計上することは行わない。
【０１１５】
以上の修正後の投入高と産出高により、修正後の生産性は、“（Ｋｎ＋β）／（Ｓｎ＋α）”と定義される。
【０１１６】
なお、図９において、付記される記号“ｎ”は、作業名を識別する表記であり、ｎ＝１の場合は第１作業に関わる指標であること表わし、ｎ＝２の場合は第２作業に関わる指標であることを意味する。例えば、“Ｓ１”、及び“Ｋ１”の夫々は、前記第１作業における作業工数と前記変更作業量であることを意味する。
【０１１７】
上記の定義により前記作業評価表６００を修正するためには、前記変更量βと、前記作業工数αの値が必要となる。ここで、前記変更量βは、前記規模分類集計表５００を参照することで値を取得できる。一方、前記作業工数αは、例えば、以下の定義式（式１）により算出する。
【０１１８】
α＝Ｓ２×（β＋δ）／Ｋ２  ・・・（式１）
【０１１９】
（式１）は、図３におけるグラフにおける相似の比を用いた式である。
【０１２０】
（式１）は、図３の前記第２作業のグラフにおける、作業工数と前記変更作業量からなる三角形の相似の比を用いた式である。したがって、前記第２作業の工数Ｓ２のうち、前記第１作業の不良対策等に要した工数が予めわかっている場合には、（式１）を用いる必要はなく、その値を利用すればよい。
【０１２１】
図１０に、前記作業工数αを求めるために必要なパラメータを示す。
【０１２２】
（式１）からもわかるように、前記作業工数αを算出するために必要なパラメータは、後作業の投入高（Ｓ２）、後作業の産出高（Ｋ２）、前作業原因の前記追加量５００３（β）、及び前作業原因の前記変更量５００４（δ）である。
【０１２３】
前記修正実行部１０１７は、上記の方法により、前記作業評価表６００の修正を行う。すなわち、前記修正実行部１０１７は、前記データ格納部１０１Ｃから前記規模分類集計表５００と前記作業評価表６００を読み出して上記各パラメータを取得し、上記の定義に従って前記作業評価表６００を修正して、前記作業評価修正表７００Ａを作成する。
【０１２４】
作成された前記作業評価修正表７００Ａの一例を、図１１に示す。
【０１２５】
図１１は、前記第１作業についての前記作業評価修正表７００Ａの一例を示した説明図である。
【０１２６】
図１１において、参照符号７００１Ａに示される行は、修正前の前記第１作業の評価が記録される行である。また、参照符号７００２Ａに示される行は、修正後の前記第１作業の評価が記録される行である。
【０１２７】
修正後の前記第１作業の評価７００２Ａには、前述の図９に示される前記作業評価表の定義７００２に従って修正された値が記録される。
【０１２８】
前記作業評価修正部１０１５による前記作業評価表の修正の動作手順について、図１２と図１３を用いて詳細に説明する。ここでは、要否判断部は、最新の作業である前記第２作業の作業評価表を前記開発用評価装置１００から受信したときに動作が開始されるものとして説明を行う。
【０１２９】
図１２は、前記要否判断部１０１６の動作フロー図の一例である。
【０１３０】
前記要否判断部１０１６の動作手順について図１２を用いて説明する。
【０１３１】
まず、前記評価用情報処理装置１０１が、前記開発用評価装置１００から前記第２作業の評価項目が記録された作業評価表６００を受信すると、前記要否判断部１０１６が、前記作業評価表６００の前記第２作業の欄の値を前記データ格納部１０１Ｃから読み出す（Ｓ８００１）。次に、前記要否判断部１０１６は、読み出した前記作業評価表６００の前作業原因の作業欄６００５を参照し（Ｓ８００２）、その欄の記録内容が「有」であるか「無」であるかを判別する（Ｓ８００３）。判別の結果、前作業原因の作業が無い場合には、前記要否判断部１０１６は、修正すべき前記作業評価表が存在しないと判断し（Ｓ８００６）、前記修正実行部１０１７を起動することなく終了処理を実行する（Ｓ８００７）。一方、前作業原因の作業が有る場合には、修正すべき作業評価表が存在すると判断し、前記修正実行部１０１７を起動する（Ｓ８００４）。そして、前記修正実行部１０１７により前記作業評価表６００の修正が完了した後、前記要否判断部１０１６は、終了処理を実行する（Ｓ８００５）。
【０１３２】
次に、前記修正実行部１０１７の動作手順について図１３を用いて説明する。
【０１３３】
図１３は、前記修正実行部１０１７の動作フロー図の一例である。
【０１３４】
前記修正実行部１０１７は、図１２のステップ８００６において、前記要否判断部１０１６の制御により起動した後、前記作業評価表６００の修正を開始する。
【０１３５】
まず、前記修正実行部１０１７は、前記変更原因情報テーブル４００及び前記規模分類集計表５００が、前記データ格納部１０１Ｃに格納されているかを確認する（Ｓ９０００）。このとき、前記変更原因情報テーブル４００、及び前記規模分類集計表５００が作成されていない場合には、前記修正実行部１０１７は、前記第２作業に関する前記変更原因情報テーブル４００の作成を前記変更原因情報収集部１００４に依頼する（Ｓ９００１）。次に、前記修正実行部１０１７は、前記第２作業に関する前記規模分類集計表５００の作成を前記規模集計部１００３に依頼する（Ｓ９００２）。前記規模分類集計表５００が作成されると、前述のように、前記規模分類集計表５００が前記開発用処理装置１００から送信され、前記データ格納部１０１Ｃに格納される。一方、ステップ９０００において、前記変更原因情報テーブル４００、及び前記規模分類集計表５００が作成されていることが確認された場合には、次に示すステップ９００３から動作が開始される。
【０１３６】
次に、前記修正実行部１０１７は、前記データ格納部１０１Ｃに格納された前記規模分類集計表５００を参照する（Ｓ９００３）。前記修正実行部１０１７は、参照する前記規模分類集計表５００における前記前後関係５００２の欄の値を取得し（Ｓ９００４）、“前作業”と記録されているか否かを判別する（Ｓ９００５）。ここで、“前作業”と記録されていない場合には、その旨を前記要否判断部１０１６に通知し、修正の処理が終了する（Ｓ９０１１）。一方、“前作業”と記録されている場合には、前記修正実行部１０１７は、前記規模分類集計表５００において、前記前後関係５００２の欄の“前作業”と記録されている行に対応する、前記変更原因作業５００１の値を取得する（Ｓ９００６）。例えば、図７の場合には、“前作業”と記録されている前記前後関係５００２の欄に対応する前記変更原因作業５００１の欄に記録されている値“第１作業”を取得する。前記修正実行部１０１７は、取得した値に該当する作業の前記作業評価表を、前記データ格納部１０１Ｃから取得する（Ｓ９００７）。例えば、図７の場合には、前記修正実行部１０１７は、前記作業評価表６００の“第１作業”の欄の値を取得する。そして、前記修正実行部１０１７は、前述の方法により、前記作業工数αと、前記開発値βを算出し（Ｓ９００８）、算出したαとβの値を用いて修正後の前記第１作業の評価７００２Ａを作成する（Ｓ９００９）。最後に、前記修正実行部１０１７は、作成した前記作業評価修正表７００Ａを前記データ格納部１０１Ｃに格納し（Ｓ９０１０）、前記作業評価表の修正処理を終了する（Ｓ９０１１）。
【０１３７】
以上本実施の形態によれば、後作業の作業工数の内、前作業が原因で新たに発生した前記作業工数αを解析するとともに、前作業が原因で新たに発生した作業の前記変更作業量のうち、ソフトウェアの行数の増加を伴う変更作業量βと、行数の増減を伴わない変更作業量δを解析することにより、ソフトウェア開発作業に係る量的な情報を質的な面から把握することができる。そして、その解析結果であるαとβとδに基づいて前記評価データを修正するから、ソフトウェア開発作業の質を反映させたソフトウェア開発の評価が可能となる。
【０１３８】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０１３９】
例えば、本実施の形態では、前記評価データ生成部１０００と作業評価修正部１０１５が、前記開発者用情報処理装置１００と前記評価者用情報処理装置１０１に夫々分離されて内蔵されているが、これに限られず、単一の情報処理装置にまとめて内蔵してもよい。例えば、評価用情報処理装置１０１に、前記評価データ生成部１０００と前記作業評価修正部１０１５とを内蔵してもよい。
【０１４０】
また、本実施の形態では、ソフトウェア開発作業により産み出される価値を表わす指標として、“ソフトウェアの規模”を表わすソフトウェアのソースコードの行数を用いたが、これに限られず、前記価値を表わす指標として、ソフトウェアの機能の数（Ｆｕｎｃｔｉｏｎ  Ｐｏｉｎｔ）、関数の数、又はファイルの数、を用いても同様の作用及び効果を奏する。
【０１４１】
更に、本実施の形態では、解析結果を用いて前記第１作業の評価を修正する場合を示したが、これに限られず、前記第２作業の評価を修正してもよい。例えば、前述の解析結果を用いて、前記第２作業の投入高を“Ｓ２−α”とし、前記第２作業の産出高を“Ｋ２−（β＋δ）”として、前記第２作業の生産性を修正してもよい。前記第２作業の評価を修正することにより、例えば、前記第２ソフトウェアを用いて第３ソフトウェアを開発する第３作業が行われた場合には、前記第３作業の解析を前述の方法により行うことで、前記第１作業と前記第３作業を反映させた前記第２作業の生産性を算出することが可能となり、より妥当な開発作業の評価が可能となる。
【符号の説明】
【０１４２】
１００  開発用情報処理装置
１０１  評価用情報処理装置
１００Ａ、１０１Ａ  コンピュータ装置
１００Ｂ  開発基盤
１００Ｃ、１０１Ｃ  データ格納部
１０００  評価データ生成部
１００２  成果物差分解析部
１００３  規模集計部
１００４  変更原因情報収集部
１００５  作業評価表作成部
１００１、１０１１  データ送受信部
１０１５  作業評価修正部
１０１６  要否判断部
１０１７  修正実行部
２０１  第１ソフトウェア
２０２  第２ソフトウェア
２００  差分解析情報テーブル
２００１  後作業のソフトウェアの位置情報
２００２  前作業のソフトウェアの対応位置情報
２００３  変更箇所表示
２００４  第１の変更分類表示
２００５  第２の変更分類表示
３００、３００Ａ、３００Ｂ  規模集計表
３００１  作業名
３００２  ソフトウェアの規模の総量
３００３  変更作業量
４００  変更原因情報テーブル
４００６  原因作業
５００  規模分類集計表
５００１  変更原因作業
５００２  前後関係
５００３  追加量
５００４  変更量
６００  作業評価表
６００１  作業単位
６００２  投入高（ＩＮＰＵＴ）
６００３  産出高（ＯＵＴＰＵＴ）
６００４  生産性（ＯＵＴＰＵＴ／ＩＮＰＵＴ）
６００５  前作業原因の作業
７００  作業評価修正定義
７００Ａ  作業評価修正表
７００１  修正前の作業評価表の定義
７００２  修正後の作業評価表の定義
７００１Ａ  修正前の第１作業の評価
７００２Ａ  修正後の第１作業の評価
【図１】
2011170494.tif 000003
【図２】
2011170494.tif 000004
【図３】
2011170494.tif 000005
【図４】
2011170494.tif 000006
【図５】
2011170494.tif 000007
【図６】
2011170494.tif 000008
【図７】
2011170494.tif 000009
【図８】
2011170494.tif 000010
【図９】
2011170494.tif 000011
【図１０】
2011170494.tif 000012
【図１１】
2011170494.tif 000013
【図１２】
2011170494.tif 000014
【図１３】
2011170494.tif 000015