(57)【要約】【課題】ソースコードを格納した多数のソースファイルに対し、エンハンスや不良修正などプログラム変更要因毎またはある指定期間内でのソースコード変更行数つまり、追加、変更、削除行数を容易に算出することにある。【解決手段】プログラム変更要因に対応付けた修正ＩＤをそのプログラム変更要因によって修正したソースコードの変更履歴情報に設定し、その修正ＩＤを元に変更前ソースコードと変更後ソースコードを復元し、それらを比較してプログラム変更要因毎の変更行数算出する。【選択図】  図１
2004185519.tif 000002
【特許請求の範囲】
【請求項１】
複数の部分プログラムを有するプログラムのプログラム開発規模算出方法において、
該部分プログラムにおける修正を示す修正種別情報と該修正直前のプログラムコードを対応つけて各部分プログラム毎に記憶し、
修正種別情報に対する上記プログラムの修正時に発生するプログラムコード量の見積要求を受け付けた場合、該修正種別情報に該当する部分プログラムの修正直前のプログラムコードから修正直前のプログラムを復元し、該復元した修正直前のプログラムと上記プログラムとを比較して開発規模を算出して表示することを特徴とするプログラム開発規模算出方法。
【請求項２】
上記部分プログラムにおける修正変更順序ごとにラベル名称を生成して当該修正に発生した上記プログラムコード量と対応付けて記憶し、上記見積要求に上記ラベル名称である第１のラベルと第２のラベルが含まれる場合、上記第１のラベルから上記第２のラベルまでの間の上記部分プログラムで該修正種別情報に該当する当該部分プログラムの修正直前のプログラムコードから修正直前のプログラムを復元し、該復元した修正直前のプログラムと上記プログラムとを比較して開発規模を算出して表示することを特徴とすることを特徴とする請求項１のプログラム開発規模算出方法。
【請求項３】
上記開発規模は、プログラムステップの追加、変更、削除の少なくともいずれかであることを特徴とすることを特徴とする請求項１または２記載のプログラム開発規模算出方法。
【請求項４】
複数の部分プログラムを有するプログラムのプログラム開発規模算出装置において、
該部分プログラムにおける修正を示す修正種別情報と該修正直前のプログラムコードを対応つけて各部分プログラム毎に記憶する手段と、
修正種別情報に対する上記プログラムの修正時に発生するプログラムコード量の見積要求を受け付けた場合、該修正種別情報に該当する部分プログラムの修正直前のプログラムコードから修正直前のプログラムを復元し、該復元した修正直前のプログラムと上記プログラムとを比較して開発規模を算出して表示する手段とを備えたことを特徴とするプログラム開発規模算出装置。
【請求項５】
上記記憶する手段は、さらに、上記部分プログラムにおける修正変更順序ごとにラベル名称を生成して当該修正に発生した上記プログラムコード量と対応付けて記憶し、
上記表示する手段は、上記見積要求に上記ラベル名称である第１のラベルと第２のラベルが含まれる場合、上記第１のラベルから上記第２のラベルまでの間の上記部分プログラムで該修正種別情報に該当する当該部分プログラムの修正直前のプログラムコードから修正直前のプログラムを復元し、該復元した修正直前のプログラムと上記プログラムとを比較して開発規模を算出して表示することを特徴とすることを特徴とする請求項４のプログラム開発規模算出装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラム開発全体のみならず個々のエンハンス、不良修正などのプログラム変更要因毎のプログラム開発規模を個別に算出するプログラム開発規模算出技術に関する。
【０００２】
【従来の技術】
プログラムのエンハンスや不良修正時のプログラム修正において、プログラムコード（ソースコードやオブジェクトコードなどをいう）の追加、変更、削除行数を計測することは作業量の見積り、テスト項目数の設定及び作込み不良の推定などを実施する上で重要である。
従来、プログラムの開発規模を計測する技術として、例えば、特開昭６０−７４０３１公報に記載のものが知られている。
【０００３】
特開昭６０−７４０３１号に開示されているような手法では、例えば、プログラムやモジュール（部分プログラムともいう）の各レコード対応に登録、追加挿入または削除を区別する情報をプログラム・モジュールが格納されたライブラリの更新毎に修正レベルをカウントアップし、更新されたレコードに修正ＩＤ、修正レベルを設定し、設定された修正ＩＤ、修正レベルを元に各プログラム・モジュール対応の開発量を算出、出力するようにする技術である。
【０００４】
【特許文献１】
特開昭６０−７４０３１号
【０００５】
【発明が解決しようとする課題】
しかしながら、前記従来技術では、複数のソースファイルを一括更新する時に修正レベルと修正ＩＤを各更新レコードに設定することにより、各ソースファイルの変更行数を算出できるようにしたものであり、修正全体の変更行数またはそれぞれのソースファイルの更新を行った時の変更行数を算出することができるものの機能エンハンス項目および不良修正などによるソースファイル更新作業を複数回に分けて行なう場合または複数の機能エンハンス項目及び不良修正のソースファイル更新を一度で行なう場合にエンハンス項目毎または不良修正毎の変更行数を算出できないという問題がある。
【０００６】
本発明の目的はプログラム変更要因毎またはある指定期間での追加、変更、削除された行数を算出することを可能としたプログラム開発規模算出方法およびシステムを提供することにある。
【０００７】
【課題を解決するための手段】
上記課題を解決するために、本発明は、ソースファイルの構成管理手段とプログラム変更要因毎に修正ＩＤを付加しその修正ＩＤとその変更要因によって修正されるソースコードを格納したソースファイル名を対応付ける変更点管理手段と変更前ソースファイルと変更後ソースファイルを比較する手段とその比較結果を元に修正ＩＤに対応したソースファイルの変更行数を算出する手段とを備えることを特徴とする。
更に、本発明は、プログラム開発中に変更されるソースコードの変更履歴にラベル名を設定する手段を備え、ラベル名を指定することによりラベル名が設定されている世代のソースコードを取出す手段を備え、それらラベル名を２点指定することにより指定期間内におけるソースコード変更行数を算出することを特徴とする。
更に、本発明は、開発機能や担当者など更に分類集計できるよう分類集計用の項目名を設定し、設定した項目名とソースファイル名と修正ＩＤを対応させる手段を備え、設定した項目名毎のソースファイルの変更行数を算出することを特徴とする。
【０００８】
【発明の実施の形態】
以下、本発明を実施する場合の一形態を、図面を参照して具体的に説明する。
【０００９】
図１は、本発明実施の一形態であるプログラム修正内容を識別する修正ＩＤを元にその修正ＩＤに該当するプログラムの開発規模算出を示したブロック図である。開発規模算出システム制御部１は開発規模算出システム全体を制御する手段である。ソースファイル群２は修正ＩＤが設定されている世代の直前世代のソースコードが格納されているソースファイル群である。ソースファイル群３は修正ＩＤが設定されている世代のソースコードが格納されているソースファイル群である。世代とは構成管理プログラムが管理するソース変更履歴ファイルに格納されたある時点でのソースコードである。変更点管理プログラム４は構成管理プログラム５が管理するソース変更履歴６と変更点管理票が管理するプログラム変更要因である修正ＩＤとを対応付ける変更点管理プログラムである。構成管理プログラム５はソースコードを格納したソースファイル毎に変更履歴を蓄積し、その変更履歴を元に任意時点でのソースコードを再現する構成管理プログラムである。ソース変更履歴ファイル６は構成管理プログラム５が管理する各ソースファイルの変更履歴を格納したソース変更履歴ファイル全体である。ソースファイル毎にソース変更履歴ファイルを生成し各ソースファイルと対応付けが可能となる名称を各ソース変更履歴ファイルに付与している。変更行数集計プログラム７は指定された２つのファイルに対し、比較プログラム８を使って変更行を検出し、変更行数を集計する変更行数集計プログラムである。比較プログラム８は２つのファイルの変更行を検出する比較プログラムである。比較結果格納ファイル９は比較プログラム８の実行結果を格納するファイルである。変更行数算出結果１０は変更行数集計プログラム７によって集計された変更行数を格納するファイルである。１１はプログラム変更要因とそれを識別する修正ＩＤとその変更要因によって変更されるソースコードを格納したソースファイル名と分類集計用の項目名を対応付ける変更点管理票を格納したファイルである。
【００１０】
図２は、本発明実施の一形態である指定期間内におけるプログラムの開発規模算出を示したブロック図である。図１と異なる点は、修正ＩＤ指定ではなく、ある期間を示すラベル名を指定することである。ソースファイル群１２は一つ目のラベル名としてラベルＡが設定されている世代のソースファイル全てである。ソースファイル群１３は二つ目のラベル名としてラベルＢが設定されている世代のソースファイル全てである。これらソースファイル群１２のソースファイル群と１３のソースファイル群に対し、図１と同様に変更行数集計プログラム７は比較プログラム８を使ってそれぞれ対応するするソースファイルを比較し、変更のあった行数を集計する。これにより指定期間内におけるプログラムの開発規模を算出することが出来る。
【００１１】
図３は構成管理プログラムが管理するソース変更履歴ファイルの構成図である。ソース変更履歴ファイルはソースファイル毎に１つずつ存在し、構成管理プログラムは修正毎のソースコード差分とその世代番号と修正ＩＤとラベル名からなるエントリを生成する。このエントリは修正した数だけソース変更履歴ファイル内に存在する。修正したソースコードを登録する時、登録者は修正ＩＤを指定することで該当世代のエントリに修正ＩＤが設定される。また、試行版など作成する場合、その時点での各ソースファイルを後から復元できるよう構成管理プログラムはその時点での全ソースファイルのソース変更履歴ファイルの最新世代に対してラベル名を付与できるようにし、指定されたラベル名を該当世代のエントリに設定する。
【００１２】
図４は変更点管理票（４０）の構成図である。修正ＩＤ欄（４１）とその修正ＩＤ（４１）で変更する時の変更理由を格納する変更理由欄（４２）と修正対象のソースファイル名を格納する修正ファイル名欄（４３）と担当者や機能名など分類するためのキーワードを設定する項目名欄（４４）からなる。一つの修正ＩＤで複数ファイルを修正することがあるのでそれらのファイル名称を全て修正ファイル名欄（４３）に設定する。修正ＩＤは各レコードを識別するために重複して設定しているが変更理由は修正ＩＤが同じもののレコードの先頭レコードにだけ設定するようにしている。図ではこれらのデータをＣＳＶ（ｃｏｍｍａ  ｓｅｐａｒａｔｅｄ  ｖａｌｕｅ）形式で格納することを想定したものであるが、修正ＩＤ毎に修正内容、修正ファイル名、項目名をＣＳＶ形式でなくテキストファイルやデータベースに格納することも可能である。
【００１３】
図５は指定された修正ＩＤに該当するプログラム変更の開発規模を算出する時の処理手順を示すフローチャートである。この処理手順を図１に示すブロック図に基づいて以下説明する。
【００１４】
開発規模を算出する修正ＩＤを入力する（５０１）。変更点管理ファイル（１１）から変更点管理票（４０）を読み込み（５０２）、指定された修正ＩＤに一致するソースファイル名を変更点管理票（４０）の修正ファイル名欄（４３）から検索する（５０３）。ソースファイル名があれば（５０４）そのソースファイルのソース変更履歴ファイル（３０）から指定された修正ＩＤが設定されている世代を検索し（５０５）、検出した全ての世代のソースコードを構成管理プログラムを用いて復元する（５０６）。検出した世代が初期世代でない場合（５０７）、更に検出した世代より一つ前の世代のソースコードを復元する（５０８）。復元したソースコード（２）（３）を比較する（５０９）。比較結果を元に追加、変更、削除行数を集計する（５１０）。該当世代が初期世代の場合（５０７）、該当世代のソースコードの行数を追加行数として集計する（５１１）。次に修正ＩＤに一致するソースファイル名を変更点管理票の修正ファイル名（４３）から検索し（５１０）、有れば（５０４）ステップ５０５からステップ５１２を繰り返す。無ければ（５０４）それまでに個々に算出した追加、変更、削除行数を全て集計する（５１３）。
【００１５】
図６は二つのラベル名を使って指定期間内における開発規模を算出する時の処理手順を示すフローチャートである。この処理手順を図２に示すブロック図に基づいて以下説明する。
【００１６】
開発規模を集計する２地点間のラベル名を入力する（６０１）。ソース変更履歴ファイル（６）に格納されている全てのソース変更履歴ファイル（３０）を検索する（６０２）。ソース変更履歴ファイル（３０）が有る間（６０３）、そのソース変更履歴ファイル（３０）から一つ目のラベル名が設定されている世代を検索する（６０４）。検出された世代のソースコードを構成管理プログラムを用いて復元する（６０５）。次に二つ目のラベル名が設定されている世代を検索する（６０６）。検出された世代のソースコードを構成管理プログラムを用いて復元する（６０７）。これら復元したソースコード（１２）（１３）を比較し（６０８）、追加、変更、削除行数を集計する（６０９）。次のソース変更履歴ファイル（３０）を検索し（６１０）、有れば（６０３）ステップ６０４からステップ６１０を繰り返す。無ければ（６０３）それまでに個々に算出した追加、変更、削除行数を全て集計する（６１１）。
【００１７】
図７は指定された項目名によって修正された全てのプログラム開発規模を算出する時の処理手順を示すフローチャートである。
【００１８】
開発規模を算出する項目名を入力する（７０１）。変更点管理ファイル（１１）から変更点管理票（４０）を読み込み（７０２）、入力した項目名が変更点管理票（４０）の項目名欄（４４）に設定されている項目名と一致するものを検索し、その項目名が設定されているレコードの修正ＩＤ欄（４１）にある修正ＩＤと修正ファイル名欄（４３）にあるソースファイル名を検索し、対象となる修正ＩＤとソースファイル名を決定する（７０３）。対象となるソースファイル名が有れば（７０４）そのソースファイル名のソース変更履歴ファイル（３０）の変更履歴から指定された項目名と対応付いた修正ＩＤが設定されている世代を検索し（７０５）、修正ＩＤが一致する全ての世代のソースコードを構成管理プログラムによって復元する（７０６）。更にその復元したソースコードの世代より一つ前の世代のソースコードを復元する（７０７）。それら復元したソースコードを比較する（７０８）。比較結果を元に追加、変更、削除行数を集計する（７０９）。指定された項目名と対応付く修正ＩＤが変更点管理票（４０）の修正ＩＤ欄（４１）に更にあれば（７１０）ステップ７０５からステップ７０９を繰り返す。項目名と対応付く修正ＩＤが変更点管理票（４０）に見つからなければ（７１０）ステップ７０３で決定した次のソースファイル名を検索する（７１１）。次のソースファイル名が有れば（７０４）ステップ７０５からステップ７１１を繰り返す。無ければ（７０４）それまでに個々に算出した追加、変更、削除行数を全て集計する（７１２）。
【００１９】
図８はプログラム変更要因毎に付加する修正ＩＤとその変更要因によって修正された各ソースファイル名を対応付ける変更点管理票（４０）を作成、更新すると共に構成管理プログラムを用いて修正されたソースコードを対応する修正ＩＤと共にソース変更履歴ファイルに登録する変更点管理プログラム（４）の処理手順を示すフローチャートである。
【００２０】
修正ＩＤと変更理由とソースファイル名と項目名を入力し（８０１）、変更点管理票（４０）を変更点管理ファイル（１１）から読み込む（８０２）。入力した修正ＩＤが変更点管理票（４０）の修正ＩＤ欄（４１）に設定済みかチェックする（８０３）。修正ＩＤが変更点管理票（４０）に無ければ（８０３）、その修正ＩＤ用のレコードを変更点管理票（４０）に追加する（８０４）。追加したレコードの変更理由欄（４２）に入力した変更理由を設定し（８０５）、修正ファイル名欄（４３）に入力したソースファイル名を設定し（８０６）、項目名欄（４４）に入力した項目名を設定する（８０７）。修正ＩＤのレコードが既にあれば（８０３）、次にそのレコードにある修正ファイル名欄（４３）に設定されているソースファイル名をチェックする。入力したソースファイル名が既にその修正ファイル名欄（４３）になければ（８０８）、ソ−スファイル名を設定するレコードを追加し入力したソース名を修正ファイル名欄（４３）に設定する（８０９）。入力したソースファイル名のソースコードをソース変更履歴ファイルに登録する（８１０）。作成、更新した変更点管理票（４０）を変更点管理ファイル（１１）に書き込む（８１１）。
【００２１】
プログラム変更要因毎に修正ＩＤを付加し、変更したソースコードの変更履歴に修正ＩＤを設定しプログラム変更要因と修正ＩＤと変更されたソースコードを格納したソースファイル名を対応付ける。これにより、プログラム変更要因と対応付いた修正ＩＤを元に修正ＩＤに該当するソースコードとその修正ＩＤで変更される前のソースコードを生成し、それらソースコードを比較してプログラム変更要因毎のソースコード変更行数を算出することが出来る。変更履歴に変更前が存在しない場合は初期登録ソースファイルと見なし、該当ソースコードの行数を追加行数として算出することができる
また、変更されるソースコードの変更履歴にラベル名を設定し、設定したラベル名を２点指定することによりラベル名が設定されている世代のソースコードを生成し、それらソースコードを比較して指定の２点間でのソースコード変更行数を算出することができる
また、担当者毎など更に分類集計できるよう分類集計用の項目名をプログラム修正ＩＤと対応付けて設定できるようにし、設定した項目名とソースファイル名と修正ＩＤを対応させて、設定した項目名毎のソースファイルの変更行数を算出することができる。
【００２２】
【発明の効果】
以上、説明したように、本発明によれば、プログラム変更要因毎またはある指定期間における追加、変更、削除された行数を算出することを可能とすることができる。
【図面の簡単な説明】
【図１】本発明の一実施の形態の修正ＩＤ指定による開発規模算出システムの概略構成を示すブロック図、
【図２】本発明の一実施の形態のラベル名指定による開発規模算出システムの概略構成を示すブロック図、
【図３】ソース変更履歴ファイルの構成を説明するための概略図、
【図４】プログラム変更要因、修正ＩＤ、ソースファイル名、項目名を対応付けて管理する変更点管理票を説明するための概略図、
【図５】修正ＩＤに該当するプログラム変更規模を算出する時の処理手順を示すフローチャート、
【図６】ラベル名を使って指定期間内におけるプログラム変更規模を算出する時の処理手順を示すフローチャート、
【図７】項目名毎にプログラム変更規模を算出する時の処理手順を示すフローチャート、
【図８】変更点管理票を作成、更新、変更したソースコードをソース変更履歴ファイルに登録する変更点管理プログラムの処理手順を示すフローチャート
【符号の説明】
１…開発規模算出システム制御、２…修正ＩＤによる修正前ソースコードを格納したソースファイルの集合、３…修正ＩＤによる修正後ソースコードを格納したソースファイルの集合、４…変更点管理プログラム、５…構成管理プログラム、６…ソース変更履歴ファイルの集合、７…変更行数集計プログラム、８…比較プログラム、９…比較結果を格納するファイル、１０…算出した変更行数を格納するファイル、１１…変更点管理票を格納したファイル、１２…一つ目の指定ラベルに対応付いたソースコードを格納したファイルの集合、１３…二つ目の指定ラベルに対応付いたソースコードを格納したファイルの集合、３０…ソース変更履歴ファイル、４０…変更点管理票、４１…修正ＩＤ欄、４２…変更理由欄、４３…修正ファイル名欄、４４…項目名欄
【図１】
2004185519.tif 000003
【図２】
2004185519.tif 000004
【図３】
2004185519.tif 000005
【図４】
2004185519.tif 000006
【図５】
2004185519.tif 000007
【図６】
2004185519.tif 000008
【図７】
2004185519.tif 000009
【図８】
2004185519.tif 000010