(57)【要約】【課題】開発対象プログラムから編集により派生したユーザプログラムの一元管理の品質を向上させる。【解決手段】ステップ１１において、更新前後のプログラムを行単位で比較して追加，置換および削除された差分の行を抽出し更新差分情報とし、ステップ１２において、この更新差分情報と、各エディションの編集差分情報と更新差分情報とを行単位で比較し、重複行の有無により各エディションのプログラムとの競合の有無を判定する。また、ステップ１３において、ステップ１２の競合有り判定に対応して、各エディションのプログラムとの競合メッセージを出力し、ステップ１４において、ステップ１２の競合無し判定に対応して、改版し、更新差分情報および版数を版情報としてそれぞれ登録する。【選択図】　　　図１
2004127156.tif 000002
【特許請求の範囲】
【請求項１】
開発対象プログラムに対し更新ごとの管理単位として版を用い改版登録ごとに更新前後の更新差分情報を登録し、ユーザアプリケーションごとの機能差に基づき前記開発対象プログラムから編集により派生したユーザプログラムに対し編集ごとの管理単位としてエディションを用いエディション登録ごとに編集前後の編集差分情報を登録し、指定版から最新版までの前記更新差分情報と指定エディションの前記編集差分情報と最新版プログラムとをマージし指定版および指定エディションのプログラムを出力する版管理方法において、
前記更新差分情報を抽出し各エディションのプログラムとの競合の有無を判定して競合メッセージ出力または改版登録を行う改版登録ステップと、
前記編集差分情報を抽出し最新版プログラムとの競合の有無を判定して競合メッセージ出力またはエディション登録を行うエディション登録ステップと、
版指定またはエディション指定の無効／有効を判定して無効メッセージ出力またはプログラム出力を行うプログラム出力ステップとを含むことを特徴とする版管理方法。
【請求項２】
前記改版登録ステップが、更新前後のプログラムを行単位で比較して追加，置換および削除された差分の行を抽出し前記更新差分情報とする抽出ステップと、
各エディションの前記編集差分情報と前記更新差分情報とを行単位で比較し重複行の有無により各エディションのプログラムとの競合の有無を判定する判定ステップと、
この判定ステップの競合有り判定に対応して各エディションのプログラムとの競合メッセージを出力するメッセージ出力ステップと、
前記判定ステップの競合無し判定に対応して改版し前記更新差分情報および版数を版情報としてそれぞれ登録する登録ステップとを含む、請求項１記載の版管理方法。
【請求項３】
前記エディション登録ステップが、編集前後のプログラムを行単位で比較して追加，置換および削除された差分の行を抽出し前記編集差分情報とする抽出ステップと、
編集前の版から最新版までの前記更新差分情報と前記編集差分情報とを行単位で比較し重複行の有無により最新版プログラムとの競合の有無を判定する判定ステップと、
この判定ステップの競合有り判定に対応して編集前の版から最新版までの各版プログラムとの競合メッセージを出力するメッセージ出力ステップと、
前記判定ステップの競合無し判定に対応して前記編集差分情報，編集前版数およびエディション名をエディション情報としてそれぞれ登録する登録ステップとを含む、請求項１または２記載の版管理方法。
【請求項４】
前記プログラム出力ステップが、指定版の版数が指定エディションの前記編集前版数以上であるか否かにより版指定またはエディション指定の有効／無効を判定する判定ステップと、
この判定ステップの無効判定に対応して版指定またはエディション指定の無効メッセージを出力するメッセージ出力ステップと、
前記判定ステップの有効判定に対応して指定版から最新版までの前記更新差分情報と指定エディションの前記編集差分情報と最新版プログラムとをマージし指定版および指定エディションのプログラムを出力する出力ステップとを含む、請求項１，２または３記載の版管理方法。
【請求項５】
開発対象プログラムに対し更新ごとの管理単位として版を用い改版登録ごとに更新前後の更新差分情報を登録し、ユーザアプリケーションごとの機能差に基づき前記開発対象プログラムから編集により派生したユーザプログラムに対し編集ごとの管理単位としてエディションを用いエディション登録ごとに編集前後の編集差分情報を登録し、指定版から最新版までの前記更新差分情報と指定エディションの前記編集差分情報と最新版プログラムとをマージし指定版および指定エディションのプログラムを出力する処理をコンピュータに実行させる版管理プログラムにおいて、
前記処理が、前記更新差分情報を抽出し各エディションのプログラムとの競合の有無を判定して競合メッセージ出力または改版登録を行う改版登録ステップと、前記編集差分情報を抽出し最新版プログラムとの競合の有無を判定して競合メッセージ出力またはエディション登録を行うエディション登録ステップと、
版指定またはエディション指定の無効／有効を判定して無効メッセージ出力またはプログラム出力を行うプログラム出力ステップとを含むことを特徴とする版管理プログラム。
【請求項６】
前記改版登録ステップが、更新前後のプログラムを行単位で比較して追加，置換および削除された差分の行を抽出し前記更新差分情報とする抽出ステップと、
各エディションの前記編集差分情報と前記更新差分情報とを行単位で比較し重複行の有無により各エディションのプログラムとの競合の有無を判定する判定ステップと、
この判定ステップの競合有り判定に対応して各エディションのプログラムとの競合メッセージを出力するメッセージ出力ステップと、
前記判定ステップの競合無し判定に対応して改版し前記更新差分情報および版数を版情報としてそれぞれ登録する登録ステップとを含む、請求項５記載の版管理プログラム。
【請求項７】
前記エディション登録ステップが、編集前後のプログラムを行単位で比較して追加，置換および削除された差分の行を抽出し前記編集差分情報とする抽出ステップと、
編集前の版から最新版までの前記更新差分情報と前記編集差分情報とを行単位で比較し重複行の有無により最新版プログラムとの競合の有無を判定する判定ステップと、
この判定ステップの競合有り判定に対応して編集前の版から最新版までの各版プログラムとの競合メッセージを出力するメッセージ出力ステップと、
前記判定ステップの競合無し判定に対応して前記編集差分情報，編集前版数およびエディション名をエディション情報としてそれぞれ登録する登録ステップとを含む、請求項５または６記載の版管理プログラム。
【請求項８】
前記プログラム出力ステップが、指定版の版数が指定エディションの前記編集前版数以上であるか否かにより版指定またはエディション指定の有効／無効を判定する判定ステップと、
この判定ステップの無効判定に対応して版指定またはエディション指定の無効メッセージを出力するメッセージ出力ステップと、
前記判定ステップの有効判定に対応して指定版から最新版までの前記更新差分情報と指定エディションの前記編集差分情報と最新版プログラムとをマージし指定版および指定エディションのプログラムを出力する出力ステップとを含む、請求項５，６または７記載の版管理プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、開発対象プログラムの版管理方法に関し、特に、開発対象プログラムから編集により派生したユーザプログラムに対し管理単位としてエディションを用いる版管理方法に関する。
【０００２】
【従来の技術】
一般に、ソフトウェアの開発において、開発対象のプログラムは、仕様に基づいて作成され、仕様変更または不具合発生により機能の追加，置換または削除などの変更または修正が頻繁に加えられながら開発される。この開発対象プログラムは、開発中、登録された開発対象プログラムを基準にして、変更または修正が検討され、ある時点で、登録中の開発対象プログラムが更新される。このとき、これらの更新および出力を管理するため、開発対象プログラムに対し更新ごとの管理単位として版を用いた版管理方法が従来から実施されている。
【０００３】
従来、この種の版管理方法は、一般的な構成のコンピュータに版管理プログラムをインストールして各コマンド入力に応じて実行させることにより実施され、改版登録ごとに、更新前後のプログラムを行単位で比較して追加，置換および削除された差分の行を更新前後の更新差分情報として抽出し、更新差分情報および版数を版情報としてそれぞれ登録し、プログラム出力時に、指定版から最新版までの更新差分情報と最新版プログラムとをマージし指定版のプログラムを出力する。
【０００４】
この従来の版管理方法は、各版の更新差分情報および最新版プログラムを登録し最新版プログラムとのマージによりプログラムを出力する方法であるので、登録のためのメモリ容量が削減され、大規模なソフトウェア開発に適用され、また、最も頻繁に利用される最新版プログラムが、最も高速に出力される。
【０００５】
一般に、プログラムの開発では、開発の効率化または短ＴＡＴ化のため、基本となる開発対象プログラムの開発と並行して、各ユーザ向けのプロジェクト開発が進行することが多く、各ユーザアプリケーションに対応したユーザプログラムが、開発途上の開発対象プログラムからユーザアプリケーションごとの機能差に基づきそれぞれ編集されて派生する。派生したユーザプログラムは、開発対象プログラムが改版される度に、対応を検討する必要があるものであり、その数の増加と共に、改版時の技術工数が増加することとなる。
【０００６】
これらユーザプログラムをメンテナンスするため、開発対象プログラムからユーザプログラムへ編集した変更部分と、開発対象プログラムとを独立にそれぞれライブラリ登録し、ライブラリ登録された変更部分および開発対象プログラムを行単位でマージしユーザプログラムを出力し、開発対象プログラムの版管理と一元化する方法も提案されている（例えば、特許文献１参照）。
【０００７】
【特許文献１】
特開２０００−１１２８００号公報（段落番号０００６〜００１０、図１）
【０００８】
【発明が解決しようとする課題】
一般に、基本となる開発対象プログラムの開発とユーザプログラムの開発とを同期させることは、ユーザ要求または競合他社への対応もあり、かなり難しい。まして、開発対象プログラムの開発完了を待って、ユーザプログラムの開発を始めることは、ほとんどできない。従って、ユーザプログラムの開発は、開発対象プログラムの開発と非同期に開始され、非同期に終了する。
【０００９】
例えば、ユーザプログラムの開発開始時に編集対象とした編集前の版の開発対象プログラムは、仕様変更または不具合発生により更新されて改版され、開発終了時には、最新版プログラムではなくなっている。
【００１０】
このような場合に、上述した従来の開発対象プログラムの版管理とユーザプログラムのメンテナンスとの一元化方法を適用しても、編集およびシミュレーションにより開発されたユーザプログラムの変更部分は、最新版プログラムに対応したものでなく、ライブラリ登録され、最新版プログラムとマージして、ユーザプログラムが出力されても、出力されたユーザプログラムは、最新版プログラムに対応したものとして動作保証されず、品質確保のため、実際上、編集前版数の版のプログラムに対応したものに限定される。
【００１１】
出力されたユーザプログラムを最新版プログラムに対応したものとして動作保証するためには、ユーザプログラムの開発終了時に、再度、最新版プログラムを編集対象とする編集変換を行いシミュレーションする必要があり、更に、これら編集変換およびシミュレーションを改版ごとに繰り返す必要があり、多大な技術工数が発生する。
【００１２】
このように、開発対象プログラムの開発が或る程度まで収束していない場合は、メンテナンスされるユーザプログラムは、品質確保のため、実際上、編集前の版のプログラムに対応したものに限定されることになる。
【００１３】
従って、本発明の目的は、開発対象プログラムから編集により派生したユーザプログラムの一元管理の品質を向上させることにある。
【００１４】
【課題を解決するための手段】
そのため、本発明は、開発対象プログラムに対し更新ごとの管理単位として版を用い改版登録ごとに更新前後の更新差分情報を登録し、ユーザアプリケーションごとの機能差に基づき前記開発対象プログラムから編集により派生したユーザプログラムに対し編集ごとの管理単位としてエディションを用いエディション登録ごとに編集前後の編集差分情報を登録し、指定版から最新版までの前記更新差分情報と指定エディションの前記編集差分情報と最新版プログラムとをマージし指定版および指定エディションのプログラムを出力する版管理方法において、
前記更新差分情報を抽出し各エディションのプログラムとの競合の有無を判定して競合メッセージ出力または改版登録を行う改版登録ステップと、
前記編集差分情報を抽出し最新版プログラムとの競合の有無を判定して競合メッセージ出力またはエディション登録を行うエディション登録ステップと、
版指定またはエディション指定の無効／有効を判定して無効メッセージ出力またはプログラム出力を行うプログラム出力ステップとを含んでいる。
【００１５】
また、本発明は、開発対象プログラムに対し更新ごとの管理単位として版を用い改版登録ごとに更新前後の更新差分情報を登録し、ユーザアプリケーションごとの機能差に基づき前記開発対象プログラムから編集により派生したユーザプログラムに対し編集ごとの管理単位としてエディションを用いエディション登録ごとに編集前後の編集差分情報を登録し、指定版から最新版までの前記更新差分情報と指定エディションの前記編集差分情報と最新版プログラムとをマージし指定版および指定エディションのプログラムを出力する処理をコンピュータに実行させる版管理プログラムにおいて、
前記処理が、前記更新差分情報を抽出し各エディションのプログラムとの競合の有無を判定して競合メッセージ出力または改版登録を行う改版登録ステップと、前記編集差分情報を抽出し最新版プログラムとの競合の有無を判定して競合メッセージ出力またはエディション登録を行うエディション登録ステップと、
版指定またはエディション指定の無効／有効を判定して無効メッセージ出力またはプログラム出力を行うプログラム出力ステップとを含んでいる。
【００１６】
また、前記改版登録ステップが、更新前後のプログラムを行単位で比較して追加，置換および削除された差分の行を抽出し前記更新差分情報とする抽出ステップと、
各エディションの前記編集差分情報と前記更新差分情報とを行単位で比較し重複行の有無により各エディションのプログラムとの競合の有無を判定する判定ステップと、
この判定ステップの競合有り判定に対応して各エディションのプログラムとの競合メッセージを出力するメッセージ出力ステップと、
前記判定ステップの競合無し判定に対応して改版し前記更新差分情報および版数を版情報としてそれぞれ登録する登録ステップとを含んでいる。
【００１７】
また、前記エディション登録ステップが、編集前後のプログラムを行単位で比較して追加，置換および削除された差分の行を抽出し前記編集差分情報とする抽出ステップと、
編集前の版から最新版までの前記更新差分情報と前記編集差分情報とを行単位で比較し重複行の有無により最新版プログラムとの競合の有無を判定する判定ステップと、
この判定ステップの競合有り判定に対応して編集前の版から最新版までの各版プログラムとの競合メッセージを出力するメッセージ出力ステップと、
前記判定ステップの競合無し判定に対応して前記編集差分情報，編集前版数およびエディション名をエディション情報としてそれぞれ登録する登録ステップとを含んでいる。
【００１８】
また、前記プログラム出力ステップが、指定版の版数が指定エディションの編集前版数以上であるか否かにより版指定またはエディション指定の有効／無効を判定する判定ステップと、
この判定ステップの無効判定に対応して版指定またはエディション指定の無効メッセージを出力するメッセージ出力ステップと、
前記判定ステップの有効判定に対応して指定版から最新版までの前記更新差分情報と指定エディションの前記編集差分情報と最新版プログラムとをマージし指定版および指定エディションのプログラムとして出力する出力ステップとを含んでいる。
【００１９】
【発明の実施の形態】
本発明の版管理方法は、従来と同じく、一般的な構成のコンピュータに版管理プログラムをインストールして各コマンド入力に応じて実行させることにより実施される。
【００２０】
また、本発明の版管理方法は、従来と同じく、開発対象プログラムに対し更新ごとの管理単位として版を用い、改版登録ごとに更新前後の更新差分情報を登録し、また、ユーザアプリケーションごとの機能差に基づき前記開発対象プログラムから編集により派生したユーザプログラムに対し編集ごとの管理単位としてエディションを用い、エディション登録ごとに編集前後の編集差分情報を登録する。また、プログラム出力時に、指定版から最新版までの更新差分情報と指定エディションの編集差分情報と最新版プログラムとをマージし、指定版および指定エディションのプログラムを出力する。
【００２１】
次に、本発明について、図面を参照して説明する。図１，図２および図３は、本発明の版管理方法の実施形態を示す流れ図である。本実施形態の版管理方法は、入力された各コマンドを判定して改版登録ステップ１，エディション登録ステップ２，プログラム出力ステップ３へそれぞれ分岐し、図１，図２，図３は、本実施形態の版管理方法における改版登録ステップ１，エディション登録ステップ２，プログラム出力ステップ３の処理例をそれぞれ示す。
【００２２】
改版登録ステップ１は、更新前後の更新差分情報を抽出し、各エディションのプログラムとの競合の有無を判定して、競合メッセージ出力または改版登録を行う。本実施形態では、図１に示されるように、ステップ１１〜１４からなり、ステップ１１において、更新前後のプログラムを行単位で比較して追加，置換および削除された差分の行を抽出し更新差分情報とし、ステップ１２において、この更新差分情報と、各エディションの編集差分情報と更新差分情報とを行単位で比較し、重複行の有無により各エディションのプログラムとの競合の有無を判定する。また、ステップ１３において、ステップ１２の競合有り判定に対応して、各エディションのプログラムとの競合メッセージを出力し、ステップ１４において、ステップ１２の競合無し判定に対応して、改版し、更新差分情報および版数を版情報としてそれぞれ登録する。
【００２３】
エディション登録ステップ２は、編集前後の編集差分情報を抽出し最新版プログラムとの競合の有無を判定して競合メッセージ出力またはエディション登録を行う。本実施形態では、図２に示されるように、ステップ２１〜２４からなり、ステップ２１において、編集前後のプログラムを行単位で比較して、追加，置換および削除された差分の行を抽出し編集差分情報とし、ステップ２２において、編集前の版から最新版までの更新差分情報と編集差分情報とを行単位で比較し、重複行の有無により最新版プログラムとの競合の有無を判定する。ステップ２３において、ステップ２２の競合有り判定に対応して、編集前の版から最新版までの各版プログラムとの競合メッセージを出力し、ステップ２４において、ステップ２２の競合無し判定に対応して、編集差分情報，編集前版数およびエディション名をエディション情報としてそれぞれ登録する。
【００２４】
プログラム出力ステップ３は、版指定またはエディション指定の無効／有効を判定して無効メッセージ出力またはプログラム出力を行う。本実施形態では、図３に示されるように、ステップ３１〜３３からなり、ステップ３１において、指定版の版数が指定エディションの編集前版数以上であるか否かにより、版指定またはエディション指定の有効／無効を判定し、ステップ３２において、ステップ３１の無効判定に対応して、版指定またはエディション指定の無効メッセージを出力し、ステップ３３において、ステップ３１の有効判定に対応して、指定版から最新版までの更新差分情報と指定エディションの編集差分情報と最新版プログラムとをマージし、指定版および指定エディションのプログラムとして出力する。
【００２５】
次に、本実施形態の版管理方法を用いて改版登録，エディション登録およびプログラム出力する例についてそれぞれ説明する。
【００２６】
まず、プログラム開発者が開発対象プログラムを変更または修正しシミュレーションして改版登録する場合、改版登録コマンドの入力に対応して、改版登録ステップ１において、更新前後のプログラムから更新差分情報が抽出され、各エディションのプログラムとの競合の有無が判定され、競合無しの場合、改版登録が行われ、競合有りの場合、競合有りエディションについて、競合メッセージが出力される。
【００２７】
この競合メッセージを参照して、プログラム開発者は、競合有りエディションについて、開発対象プログラムを再変更または再修正して競合を回避できるか検討し、競合回避が可能の場合、再び、シミュレーションして、改版登録コマンドの入力に対応して、改版登録ステップ１において改版登録が行われる。また、競合回避が不可の場合、プログラム開発者は、競合有りエディションのエディション担当者と対策を協議し、エディション側の対策が可能か検討し、例えば、対策可の場合、シミュレーションして、別途のエディション登録が行われ、対策不可の場合、競合有りエディションのユーザプログラムを開発対象プログラムと独立して開発する。
【００２８】
また、エディション担当者が開発対象プログラムから編集およびシミュレーションにより派生したユーザプログラムをエディション登録する場合、エディション登録コマンドの入力に対応して、エディション登録ステップ２において、編集前後のプログラムから編集差分情報が抽出され、最新版プログラムとの競合の有無が判定され、競合無しの場合、エディション登録が行われ、競合有りの場合、競合有り版数について、競合メッセージが出力される。
【００２９】
この競合メッセージを参照して、エディション担当者は、競合有り版数について、ユーザプログラムを再編集して競合を回避できるか検討し、競合回避が可能の場合、再び、シミュレーションして、エディション登録コマンドの入力に対応して、エディション登録ステップ２においてエディション登録が行われる。また、競合回避が不可の場合、エディション担当者は、プログラム開発者と対策を協議し、開発対象プログラム側の対策が可能か検討し、例えば、対策可の場合、シミュレーションして、開発対象プログラムが改版されて最新版を編集前版数としてエディション登録が行われ、対策不可の場合、このエディションのユーザプログラムを開発対象プログラムと独立して開発する。
【００３０】
また、プログラム開発者またはエディション担当者が指定版および指定エディションのプログラムを出力する場合、プログラム出力コマンドの入力に対応して、プログラム出力ステップ３において、版指定またはエディション指定の無効／有効が判定され、指定有効の場合、プログラム出力が行われ、指定無効の場合、無効メッセージが出力される。
【００３１】
この無効メッセージを参照して、プログラム開発者またはエディション担当者は、指定版または指定エディションを確認および変更して、再び、プログラム出力コマンドを入力し、指定版および指定エディションのプログラムが出力される。
【００３２】
上述したように、本発明による版管理方法を用いた場合、改版登録およびエディション登録の時点で、各エディションのプログラムまたは最新版プログラムとの間の競合の有無が判定され、競合有りの場合、競合メッセージが出力され、プログラム開発者およびエディション担当者が対策を協議することを促され、常に、指定版から最新版までの更新差分情報と指定エディションの編集差分情報と最新版プログラムとが競合無しの状態で登録され、プログラム出力の時点で正確にマージされ、有効な指定版および指定エディションのプログラムが任意に出力される。
【００３３】
ここで、各エディションのプログラムおよび最新版プログラムの間で更新差分情報および編集差分情報間の競合以外の動作不具合がある場合は、本実施形態の版管理方法に限らず、当然、出力された指定版および指定エディションのプログラムも動作不具合を有することになる。しかし、これら動作不具合は、本来、シミュレーションまたはエミュレーションにより確認されるべきものである。一般には、改版登録およびエディション登録の時点で、プログラム開発者またはエディション担当者は常にシミュレーションにより動作確認して登録するので、本実施形態の版管理方法を用いた場合、動作確認された更新差分情報，編集差分情報および最新版プログラムが登録され、動作確認された指定版および指定エディションのプログラムが出力される。
【００３４】
なお、本実施形態の版管理方法において、指定版から最新版までの更新差分情報と指定エディションの編集差分情報と最新版プログラムとをマージするとして説明した。しかし、この説明に限定されず、例えば、プログラム出力時に、版およびエディションの指定が共に無い場合、最新版プログラムをマージ無しで出力する変形例も可能である。また、版の指定が無い場合は、従来と同じく、最新版が暗黙に指定される変形例も可能である。
【００３５】
【発明の効果】
以上説明したように、本発明による版管理方法を用いた場合、改版登録およびエディション登録の時点で、各エディションのプログラムまたは最新版プログラムとの間の競合の有無が判定され、競合有りの場合、競合メッセージが出力され、プログラム開発者およびエディション担当者が対策を協議することを促され、常に、指定版から最新版までの更新差分情報と指定エディションの編集差分情報と最新版プログラムとが競合無しの状態で登録され、プログラム出力の時点で正確にマージされ、有効な指定版および指定エディションのプログラムが任意に出力される。
【００３６】
また、改版登録およびエディション登録の時点でプログラム開発者およびエディション担当者が常にシミュレーションにより動作確認して登録することにより、動作確認された指定版および指定エディションのプログラムが出力され、開発対象プログラムから編集により派生したユーザプログラムの一元管理の品質が向上するなどの効果がある。
【図面の簡単な説明】
【図１】本発明の版管理方法の実施形態における改版登録ステップ１の処理例を示す流れ図である。
【図２】本発明の版管理方法の実施形態におけるエディション登録ステップ２の処理例を示す流れ図である。
【図３】本発明の版管理方法の実施形態におけるプログラム出力ステップ３の処理例を示す流れ図である。
【符号の説明】
１　　改版登録ステップ
２　　エディション登録ステップ
３　　プログラム出力ステップ
１１〜１４，２１〜２４，３１〜３３　　ステップ
【図１】
2004127156.tif 000003
【図２】
2004127156.tif 000004
【図３】
2004127156.tif 000005