(57)【要約】【課題】プログラムの修正作業後にその修正が適切かを容易に検知でき、確実なプログラム修正作業を行うプログラム誤修正検知装置を提供する。【解決手段】修正内容入力装置１０１から、修正種別、修正内容、修正範囲を限定するキーワード等を、修正内容管理装置１０３に登録する。次に、修正したプログラムをプログラム登録装置１０２により、プログラム管理装置１０４に登録する。次に、修正内容解析装置１０５が修正内容管理装置１０３の登録内容を解析し、修正範囲特定のキーワード、修正前後のバージョン情報を取得する。次に、プログラム取出装置１０６が、修正内容管理装置１０３に登録されているプログラム所在を元に、修正前後のバージョンのプログラムを取り出す。取り出したプログラムに対し、修正対象抽出装置１０７がキーワードに基づいて修正範囲と修正の具体的情報の抽出を行い、差分取得処理装置１０８で修正前後の差分を取得する。最後に修正判定処理装置１０９で誤修正の有無を検知する。【選択図】図１
2008262330.tif 000002
【特許請求の範囲】
【請求項１】
プログラムをバージョン毎に管理し、プログラムの修正作業後に誤修正の有無を検出するプログラム誤修正検知方法において、
予めプログラムのプログラム名、修正種別、修正内容、バージョン及び修正の範囲を特定するキーワードを登録しておき、
プログラムの修正作業時に前記登録の内容を参照して修正された修正後プログラムに新バージョンを付して管理し、修正前プログラムと修正後プログラムから前記キーワードによって修正範囲に該当するブロックを抽出し、抽出した両ブロックの差分をとり、該差分に予め登録された以外の修正内容があるときは誤修正と判定することを特徴とするプログラム誤修正検知方法。
【請求項２】
請求項１において、前記修正前プログラムと前記修正後プログラムから前記キーワードによって分けられる修正範囲と修正範囲以外の範囲をそれぞれ抽出し、前記修正範囲については前記登録の修正内容以外の修正があるかをチェックし、前記修正範囲以外の範囲については修正があるかをチェックし、修正がある場合に誤修正と判定することを特徴とするプログラム誤修正検知方法。
【請求項３】
請求項１または２において、前記修正内容の有無は前記修正種別または禁止修正条件によって判定することを特徴とするプログラム誤修正検知方法。
【請求項４】
プログラムをバージョン毎に管理し、プログラム修正作業の誤りを検出するプログラム誤修正検知装置において、
予めプログラムのプログラム名、修正種別、修正内容、バージョン及び修正の範囲を特定するキーワードを登録する修正内容管理装置と、
プログラムをバージョン毎に管理して、前記登録の内容を参照して修正された修正後プログラムに新バージョンを付して管理するプログラム管理装置と、
前記プログラム管理装置が管理する修正前プログラムと修正後プログラムに対し、前記キーワードによってプログラム修正前後の修正範囲を特定し、予め登録された以外の修正を検知する誤修正判定手段を備えることを特徴とするプログラム誤修正検知装置。
【請求項５】
請求項４において、前記キーワードはプログラム中の対象を示す段階的に詳細化される複数のキーワードからなり、前記プログラムにはこれらのキーワードが予め埋め込まれていることを特徴とするプログラム誤修正検知装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム修正後に修正の正誤を求めるプログラム誤修正検知方法及び装置に関する。
【背景技術】
【０００２】
従来のソフトウェア開発では、特許文献１に記載のように、プログラムの構文単位に予め構文パターンを定義し、修正作業後にプログラムが定義した構文パターンと一致するか調べ、その比較結果を基に修正作業の正誤を確認していた。
【０００３】
【特許文献１】特開平１１−３５３１６２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
プログラムの修正作業において、修正作業後にその修正が適切なものかどうか判断するためには、特許文献１のように修正前後のプログラム全体を調べる必要があった。このため、修正作業に時間がかかり、見落としなどを生じる恐れがあるため、ソフトウェア開発の隘路となっていた。
【０００５】
本発明の目的は、従来技術の問題点に鑑み、プログラムの誤修正を容易に検知でき、確実なプログラム修正作業を行うことができるプログラム誤修正検知方法および装置を提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は、プログラムをバージョン毎に管理し、プログラムの修正作業後に誤修正の有無を検出するプログラム誤修正検知方法において、予めプログラムのプログラム名、修正種別、修正内容、バージョン及び修正の範囲を特定するキーワードを登録しておき、プログラムの修正作業時に前記登録の内容を参照して修正された修正後プログラムに新バージョンを付して管理し、修正前プログラムと修正後プログラムから前記キーワードによって修正範囲に該当するブロックを抽出し、抽出した両ブロックの差分をとり、該差分に予め登録された以外の修正内容があるときは誤修正と判定することを特徴とする。
【０００７】
また、本発明は、プログラムをバージョン毎に管理し、プログラム修正作業の誤りを検出するプログラム誤修正検知装置において、予めプログラムのプログラム名、修正種別、修正内容、バージョン及び修正の範囲を特定するキーワードを登録する修正内容管理装置と、プログラムをバージョン毎に管理して、前記登録の内容を参照して修正された修正後プログラムに新バージョンを付して管理するプログラム管理装置と、前記プログラム管理装置が管理する修正前プログラムと修正後プログラムに対し、前記キーワードによってプログラム修正前後の修正範囲を特定し、予め登録された以外の修正を検知する誤修正判定手段を備えることを特徴とする。
【０００８】
前記プログラムは、予め修正範囲を特定できるキーワードを埋め込んで作成されていることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、修正作業を行ったプログラムについて予め修正内容と修正範囲を登録しておき、プログラム修正後に修正前のプログラムとの差分を求め、求めた差分結果と事前に登録しておいた修正内容とを照合して正誤を判断するので、プログラムの誤修正を容易に検知でき、確実なプログラム修正作業を行うことができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の一実施形態について図面を参照して詳細に説明する。図１は、本発明によるプログラム誤修正検知装置を示す構成図である。本実施例のプログラム誤修正検出装置は、修正方針を与える設計者とプログラムの修正作業を行う作業者とは別人である。
【００１１】
本プログラム誤修正検知装置はコンピュータにより構成される。修正内容入力装置１０１は、プログラムの修正を設計、指示する設計者によって入力され、プログラム修正範囲を特定するためのキーワードと修正内容の定義と、対応する修正プログラム名、修正種別、バージョンを入力する。キーワードは、プログラムに修正が発生した場合に作業者が容易にその場所を探索できるように、修正範囲を特定するために用いられるもので、予めプログラムに埋め込まれている。
【００１２】
修正内容管理装置１０３は、これらの入力情報（修正プログラム名、修正種別、修正内容、バージョン、キーワード）を管理する。また、これらの入力情報が登録されたことを作業者の入力端末に通知し、作業者にプログラムの修正を促す。
【００１３】
修正内容解析装置１０５は、修正内容管理装置１０３の登録内容を解析し、修正範囲特定のためのキーワード、修正前後のプログラムのバージョン等を取得する。
【００１４】
プログラム登録装置１０２は作業者が修正内容管理装置１０３のデータに基づいて作成した修正プログラムを入力する。プログラム管理装置１０４は修正後のプログラムを含むプログラムをバージョン毎に管理する。
【００１５】
プログラム取出装置１０６は、修正内容管理装置１０３に登録されているプログラム名を元に、プログラム管理装置１０４から修正前後のバージョンのプログラムを取り出す。
【００１６】
修正対象抽出装置１０７は、予めプログラムがキーワードによってブロック分け出来る形式に作成されているので、修正部分をキーワードに基づいて探索して抽出する。差分取得処理装置１０８は、修正対象抽出装置１０７が抽出した対象部分のブロックについて修正前後の差分を取得する。また、対象部分のブロック以外についても差分を抽出する。
【００１７】
修正判定処理装置１０９は、修正後のプログラムの対象部分が修正内容入力装置１０１から入力された修正内容に沿って修正が行われているかをチェックし、入力された修正内容と異なれば誤修正と判定する。また対象部分以外については修正の有無を判定し、修正があれば誤修正と判定する。判定結果はディスプレイに出力する。
【００１８】
図１に従って、本装置の基本的な情報の流れを説明する。本実施例のプログラムは、“＃”の連続する個数をもってブロック分けの段階を表し、次の“＃”までを１つのブロックと認識し、“＃”に続く文字列を認識すると、入力されたキーワードによって指定されたブロックであることを認識できるように記述されている。すなわち、プログラムを意味のあるブロックに識別できる記載ルールをもつプログラムである。
【００１９】
設計者は修正内容入力装置１０１を用いて修正内容、修正対象プログラム名等を、修正内容管理装置１０３に格納する。作業者は、予め決められた上記記載ルールに従ってプログラムを作成し、プログラム登録装置１０２からプログラム管理装置１０４に登録する。修正内容解析装置１０５は、修正内容管理装置１０３の修正内容を解析し修正範囲特定のキーワード、修正前後のプログラムのバージョン等を取得する。
【００２０】
次に、プログラム取出装置１０６は、修正内容管理装置１０３に格納されている修正プログラム名を元に、修正前バージョンのプログラムと修正後バージョンのプログラムを、プログラム管理装置１０４から取り出す。取り出されたプログラムに対し、修正対象抽出装置１０７はキーワードに基づいて修正対象の範囲と修正の具体的情報の抽出を行う。差分取得処理装置１０８は修正前後のそれぞれの修正対象範囲について、共通する修正対象範囲内の差分と共通しない修正対象範囲外の差分を取得する。
【００２１】
修正判定処理装置１０９は、修正内容管理装置１０３の情報と差分取得処理装置１０８で得た情報を照合し、修正対象範囲外で追加／変更／削除があるか判定する。また、修正対象範囲内で、修正内容管理装置１０３に登録されていない修正種別があるか判定し、誤った修正がないか検知する。
【００２２】
本実施例では以上のように構成されるので、プログラムの設計指針を与える設計者とプログラムの修正作業を行う作業者が異なる場合（通常）でも、誤修正が容易にかつ速やかに検知でき、確実なプログラム修正作業を可能にするので、ソフトウェア修正の隘路が解消できる。なお、設計者と作業者が同一人であってもよいことは言うまでもない。
【００２３】
次に本プログラム誤修正検知装置のデータと操作の手順を詳細に説明する。図２は修正内容入力装置のインタフェースイメージで、プログラム修正定義画面を示す。プログラム修正定義画面２０１では、設計者より入力された修正Ｎｏ、修正種別、修正内容、及びキーワード２０２を含む入力データを修正内容管理装置１０３に登録する。修正種別には追加、削除、変更がある。ここでの各項目へのデータ入力は必須である。修正内容管理装置１０３はプログラムを修正する作業者の端末から参照可能である。
【００２４】
図３はプログラム登録装置の入力内容を示す説明図である。プログラム３０１は、第一レベルキーワード３０２、第二レベルキーワード３０３によってブロック分け出来る形に記述され、プログラム管理装置１０４に登録される。例えば、第一レベルキーワードは＃ＤＢサーバ、第二レベルキーワードは＃＃Ａである。
【００２５】
図４は修正内容管理装置の管理情報の構造を示す。修正内容管理装置１０３には、修正No４０１、修正種別４０２、修正内容４０３、プログラム所在（フルパス（例）／プログラム／abc.c）４０４、バージョン４０５、キーワード４０６等、修正内容入力装置１０１より入力された情報が格納される。
【００２６】
図５は修正対象抽出装置の修正前後プログラムの一部を示す。プログラム取出装置１０６により、プログラム管理装置１０４から取り出した修正前バージョンのプログラム５０１と修正後バージョンのプログラム５０２を取り出す。これらのプログラムから、修正内容入力装置１０１で入力したキーワード情報４０６（図２の２０２）と、修正前後バージョンのプログラムに埋め込まれたキーワード情報５０３を元に、同一キーワード内の修正前後バージョンのプログラムブロック５０４を抽出する。
【００２７】
図６は差分取得処理装置における修正ブロックを示す。差分取得処理装置１０８は、修正前バージョンの修正ブロック６０１と修正後バージョンの修正ブロック６０２の差分を取得する。図６は、同一キーワードで抽出された修正前のプログラムブロック６０１と修正後のプログラムブロック６０２による差分を示している。差分は修正後の００３（変更）−００４（追加）である。
【００２８】
図７はプログラム誤修正検知装置の動作手順を示すフロー図である。ここでは、主に修正内容解析装置１０５、プログラム取出装置１０６、修正対象抽出装置１０７、差分取得処理装置１０８の処理について示す。
【００２９】
まず、プログラム取出装置１０６が修正内容管理装置１０３よりキーワード情報、対象プログラム所在、修正前後バージョン情報を取り出す（７０１）。次に、修正対象抽出装置１０７が、修正前後バージョンの両方がプログラム管理装置１０４に存在するか否かの判定を行い（７０２）、片方、もしくは両方のプログラムが存在しなかった場合、プログラムを修正した作業者に確認を促すメッセージ出力（７０７）を行う。両方のプログラムが存在する場合は、修正対象抽出装置１０７がプログラム管理装置１０４より、プログラム取出装置１０６を介して修正前後バージョンのプログラムを取り出す（７０３）。ここで修正前後バージョンのプログラムの両方にキーワード情報４０６、５０４が記述されているか判定をする（７０４）。修正前後バージョンのプログラムのいずれか、もしくは両方にキーワード情報５０４が埋め込まれていなかった場合は、修正の範囲が特定できないため、作業者にプログラム全体の確認を促すメッセージ出力（７０８）をする。
【００３０】
修正対象抽出装置１０７は、修正前後バージョンのプログラム両方にキーワード情報５０４が存在する場合、キーワード情報５０４を元に修正前後バージョンのプログラムから修正ブロックを抽出する（７０５）。差分取得処理装置１０８は、抽出した修正前後バージョンの修正ブロック同士で差分を求める（７０６）。同様に、キーワード情報５０４を元に、修正前後バージョンのプログラムから修正ブロック以外を抽出し（７０９）、抽出した修正前後バージョンの修正ブロック以外同士で差分を求める（７１０）。
【００３１】
図８は修正判定処理装置の動作を示す説明図である。修正内容管理装置１０３に格納されている修正種別８０１と、差分取得処理装置１０８で取得した修正ブロックの差分８０２を、禁止修正条件８０３を用いて誤修正の検知を行う。本実施例では、禁止修正条件８０３は固定の定義として予めシステムに設定されている。図８のように、修正種別８０１が「追加」であるのにもかかわらず、差分（８０２）に「変更」や「削除」が発生した場合は誤修正とみなす。また、差分取得処理装置１０８で取得した修正ブロック以外で、「追加」、「変更」、「削除」があった場合も誤修正とみなす。
【００３２】
図９は修正判定処理装置の処理フローを示す。まず、修正内容管理装置１０３より、修正種別４０２を取得し（９０１）、この修正種別４０２を元に禁止修正条件８０３を取得する（９０２）。禁止修正条件８０３の情報と実際のプログラムの差分８０２に該当する項目を検索し、誤修正がないか判定を行う（９０３）。誤修正がなかった場合、誤修正なしの結果を出力し（９０４）、終了する。誤修正があった場合は、誤修正ありの結果を出力し（９０５）、作業者へ修正したプログラムの確認を促す。
【図面の簡単な説明】
【００３３】
【図１】本発明の一実施例によるプログラム誤修正検知装置の構成図。
【図２】修正内容入力装置の修正定義画面を示す説明図。
【図３】プログラム登録装置の入力プログラムを示す説明図。
【図４】修正内容管理装置の管理情報のデータ構造を示す説明図。
【図５】修正対象抽出装置が抽出する修正前後のプログラムの一部を示す説明図。
【図６】差分取得処理装置の差分データを示す説明図。
【図７】プログラム誤修正検知装置の差分を得るまでの動作手順を示すフロー図。
【図８】修正判定処理装置の判定データを示す説明図。
【図９】修正判定処理装置の差分取得後の処理を示すフロー図。
【符号の説明】
【００３４】
１０１…修正内容入力装置、１０２…プログラム登録装置、１０３…修正内容管理装置、１０４…プログラム管理装置、１０５…修正内容解析装置、１０６…プログラム取出装置、１０７…修正対象抽出装置、１０８…差分取得処理装置、１０９…修正判定処理装置、２０１…定義画面、２０２…キーワード、３０１…プログラム、３０２…第一レベルキーワード、３０３…第二レベルキーワード、４０２…修正種別、４０３…修正内容、４０４…プログラム所在、４０５…バージョン、４０６…キーワード、５０１…修正前バージョン、５０２…修正後バージョン、５０３…キーワード情報、６０１，６０２…修正ブロック、８０１…修正種別、８０３…禁止修正条件。
【図１】
2008262330.tif 000003
【図２】
2008262330.tif 000004
【図３】
2008262330.tif 000005
【図４】
2008262330.tif 000006
【図５】
2008262330.tif 000007
【図６】
2008262330.tif 000008
【図７】
2008262330.tif 000009
【図８】
2008262330.tif 000010
【図９】
2008262330.tif 000011