(57)【要約】【課題】プログラムを開発する際に、複数のプログラム使用環境へ提供するため、もしくは異なる機能を追加で持たせるために、１つのプログラムを複写して平行開発を行うことがある。プログラム開発中にバグが発見され修正するときに、複写先のプログラムのソースコード行にも同様のバグ修正が必要な場合がある。発見されたバグを持つ行が、複写先や改訂先の行が存在し、同様のバグ修正を行わなければならないとき、その行を検索する手段、またその行の修正が完了したかを管理する手段が無い。【解決手段】プログラムファイルの行毎に更新前のＩＤと更新後のＩＤを持ち、またバグ管理情報を持つファイル管理システムを利用して、バグが修正した行を複写、改訂した行を検索する機能を持ち、また検索したプログラムファイルの行に、バグ管理情報を付加する手段を持つ。【選択図】図１
2012088874.tif 000002
【特許請求の範囲】
【請求項１】
プログラムファイルの行毎に更新前のＩＤと更新後のＩＤを持ち、またバグ管理情報を持つファイル管理システムを利用して、バグが修正した行を複写、改訂した行を検索する機能を持つことを特徴とするプログラムバグ管理システム。
【請求項２】
請求項１で検索したプログラムファイルの行に、バグ管理情報を付加する手段を持つことを特徴とするプログラムバグ管理システム。
【請求項３】
請求項２で付加したバグ管理情報を、バグ毎に検索してバグ修正の状況を表示する手段を持つことを特徴とするプログラムバグ管理システム。
【請求項４】
請求項２で付加したバグ管理情報を、ファイル毎にバグ管理情報が入力された行のみを表示する手段を持つことを特徴とするプログラムバグ管理システム。
【請求項５】
プログラムファイルの内容を表示する際に、請求項２で付加したバグ管理情報を同時に表示する手段を持つことを特徴とするプログラムバグ管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
発明は、プログラムファイルのバグを管理するシステムに関する。
【背景技術】
【０００２】
プログラム上で発見されたバグが、その修正の完了を管理するバグ管理システムの従来技術文献としては特開２０１０−１２８６５０号（特許文献１）がある。
【０００３】
また、ソフトウェアのプログラムファイルの行毎にＩＤを採番し、行毎の履歴が検索できるプログラムファイル管理システムの従来技術文献としては非特許文献１がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１２８６５０号
【非特許文献】
【０００５】
【非特許文献１】特許出願番号  特２０１０−０８０１２０号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
プログラムを開発する際に、複数のプログラム使用環境へ提供するため、もしくは異なる機能を追加で持たせるために、１つのプログラムを複写して平行開発を行うことがある。プログラム開発中にバグが発見され修正するときに、複写先のプログラムファイルにも同様のバグ修正が必要な場合がある。
【０００７】
特許文献１のバグ管理システムでは、発見したバグ箇所の修正状況は管理できるが、そのバグ部分が複写された他のプログラムファイルの把握は、プログラムファイル内の文字列検索などを行う必要があり作業が煩雑である。また文字列による検索では、一部文字が変更されていた場合、摘出ができないため、修正漏れが発生する可能性がある。
【０００８】
非特許文献１のプログラムファイル管理システムでは、プログラムファイルの行毎に現ＩＤと、複写前のＩＤを付与することによりプログラムを複写した状況が把握できるが、バグ修正完了したかを管理する手段はない。
【課題を解決するための手段】
【０００９】
本発明は、プログラムファイルのバグ修正時に、システム利用者が修正した部分の行にバグ管理番号情報を入力することにより、ソースコード行毎の情報としてバグ管理番号と修正済みのフラグが登録される。その情報を元に、行毎に持つＩＤの情報を追跡することにより、複写により同内容バグ修正が必要な可能性のあるソースコード行を検索し、表示することが出来る。同内容バグ修正が必要な場合には修正要情報を入力し、そのソースコード行の情報にバグ管理番号と修正未のフラグが登録される。これにより同内容バグを持つソースコード行が未修正であることを管理できる。次にそのソースコード行をバグ修正したときには、同様にバグ修正済みのフラグに変更することにより、バグ修正が完了したことを管理できる。
【発明の効果】
【００１０】
本発明のプログラムファイルバグ管理システムは、バグ修正した行と同内容のバグ修正が必要な箇所の摘出と、その摘出したプログラム行の修正が未完了か完了かを管理することができる。
【図面の簡単な説明】
【００１１】
【図１】プログラムバグ管理システムのブロック構成図。
【図２】プログラムバグ管理システムのハードウェア構成図。
【図３】リポジトリのファイルデータ構成図。
【図４】バグ管理ファイルのデータ構成図。
【図５】バグ修正情報入力処理の処理フロー図。
【図６】バグ修正情報入力時の画面表示例。
【図７】探索履歴ＩＤテーブルの例。
【図８】関連行テーブルの例。
【図９】表示用関連行テーブルの例。
【図１０（ａ）】同内容バグ摘出、修正要情報入力処理の処理フロー図。
【図１０（ｂ）】同内容バグ摘出、修正要情報入力処理におけるバグ元の複写、改訂元検出の処理フロー図。
【図１０（ｃ）】同内容バグ摘出、修正要情報入力処理における同内容バグ行摘出の処理フロー図。
【図１０（ｄ）】同内容バグ摘出、修正要情報入力処理における同内容バグ情報登録の処理フロー図。
【図１１】同内容バグ情報登録時の画面表示例。
【図１２】ソースコード情報一時テーブルの例。
【図１３】ファイル・ソースコード情報テーブルの例。
【図１４】バグ番号入力による修正状況表示時の処理フロー図。
【図１５】指定バグ番号のバグ修正状況表示時の画面表示例。
【図１６】ファイル情報一時テーブルの例。
【図１７】ファイル名入力による修正状況表示時の処理フロー図。
【図１８】指定ファイル名のバグ修正状況表示時の画面表示例。
【図１９】ファイル名入力による修正状況表示時の処理フロー図。
【図２０】指定ファイル名のバグ修正状況表示時の画面表示例。
【発明を実施するための形態】
【００１２】
以下、本発明を、図面に基づいて説明する。
【実施例１】
【００１３】
図１は、本発明によるプログラムバグ管理システムの一実施例を示すブロック構成図である。プログラムファイルバグ管理システムは、図１に示すように、プログラムファイルにバグ管理情報などを付加しながら登録するバグ情報入力機能１０１、発見されたバグの同内容バグを検索するバグ行検索機能１０２、バグの修正状況を表示するバグ情報表示機能１０３、プログラムファイルを管理情報を付加して管理するリポジトリ１０４、バグ情報を管理するバグ管理ファイル１０５を備えるように構成される。
【００１４】
図２は、本発明によるプログラムバグ管理システムの一実施例を示すハードウェア構成図である。プログラムバグ管理システムは、図２に示すように、利用者がバグ情報入力機能に対する情報入力、バグ行検索機能やバグ情報表示機能の操作指示を行う入力装置２０１、利用者へプログラムソースの表示や、同内容バグ検索の結果を表示、バグ情報を表示する出力装置２０２、バグ情報入力機能やバグ行検索機能、バグ情報表示機能を処理する処理装置２０３、リポジトリやバグ管理ファイルが格納されるデータ保管装置２０４、から構成される。
【００１５】
図３は、リポジトリ１０４内容の一実地例を示すファイルデータ構成図である。リポジトリ１０４は、ファイルを個別に識別するファイル管理情報３０１と、各ファイルの内容を各行の情報を付加して保管するソースコード情報３０２を有する。
【００１６】
ファイル管理情報３０１は、ファイル名３０３、ファイルが再格納されたときに１づつ増えて履歴番号を示すＲｅｖ．３０４、同ファイル名の中で一番最新である場合に１である最新フラグ３０５、ファイルとＲｅｖ．毎に一意の番号を採番したファイルＩＤ３０６を有する。
【００１７】
ソースコード情報３０２は、ファイルのファイルＩＤ３０７、そのファイル内の行番号３０８、ファイル内容のコード３０９、履歴ＩＤはファイル内容の行毎に番号が採番される。履歴ＩＤ[引継]３１０は、そのファイルの改訂前の履歴ＩＤを引継いで格納される。履歴ＩＤ[改訂]３１１は、その行が改訂されたときに新たな履歴ＩＤが採番されて格納される。その行がバグに関係していた場合、バグ毎に付けられた番号を格納するバグ番号３１２、そのバグへの対策が完了している場合に１である修正完了フラグ３１３を有する。
【００１８】
図４は、バグ管理ファイル１０５内容の一実施例を示すファイルデータ構造図である。バグ管理ファイル１０５は、バグの情報を管理するバグ管理情報４０１と、修正したバグの情報を登録する一次修正バグ情報４０２を有する。
【００１９】
バグ管理情報４０１は、バグ毎に一意に付けられたバグ番号４０３と、プログラム開発者がそのバグの内容を把握できるように記述されるバグ内容４０４から構成される。
【００２０】
一次修正バグ情報４０２は、発見されたバグを修正したバグ管理番号が格納される一次修正バグ番号４０５で構成される。
【００２１】
図５は、プログラム編集時にバグ情報を登録するフロー図である。まず利用者は編集するプログラムファイルを、リポジトリより読み込む（５０１）。次に読み込んだプログラムファイルを編集する（５０２）。編集が完了したらバグ情報追加するかどうかの選択肢入力が利用者に求められる（５０３）。利用者は編集にバグの修正を含む場合Ｙ、バグの修正を含まない場合Ｎを入力する。バグ情報追加するかの選択時（５０３）にＹが入力された場合、プログラムファイルの各行が表示され、利用者はプログラムソースコード各行に対応するバグ番号と修正完了かどうかのフラグ値を入力する（５０４）。次に入力されたバグの情報を付加しながらリポジトリ１０４にプログラムソースコードの情報を格納し、また修正されたバグの番号を一次修正バグ情報４０２へ格納する（５０５）。
【００２２】
図６は、バグ修正情報入力処理５０４において、プログラムソースコード各行に対応するバグ番号と修正完了かどうかのフラグ値を入力する画面の実施例である。利用者はバグを修正した行にそのバグの管理番号をバグ番号列へ入力し、修正が完了した場合に１を修正完了フラグ列に入力する。入力されたバグの情報はリポジトリ１０４と、一次修正バグ情報４０２へ格納される。一次修正バグ情報へ格納された情報より、バグが発生した箇所の修正が完了したことを把握できる。
【００２３】
次に同内容のバグが存在する可能性のあるソースコード行の検索と、そのバグ情報を管理する実施例を説明する。
【００２４】
図７はソースコード行を検索するときに探索したＩＤを格納する探索履歴ＩＤテーブルの実施例である。
【００２５】
図８は検索したソースコード行の情報を格納する関連行テーブルの実施例である。
【００２６】
図９は検索したソースコード行を表示させる前に情報格納する表示用関連行テーブルの実施例である。
【００２７】
図１０（ａ）はバグが発生した箇所の修正が完了したことから、同内容のバグ管理を行う処理フロー図である。まず一次修正バグ情報４０５からバグ管理番号を把握し、同内容バグを調べたいバグ番号を入力する（１００１）。次に、ソースコード情報を１行読み出す（１００３）。読み込んだソースコード情報と入力されたバグ番号が合致するか判断すする（１００４）。合致した場合、ソースコード情報から履歴ＩＤ[引継]を取得する。１行読込んでからここまでの処理をソースコード情報が完了するまで繰り返す（１００２）。これにより指定したバグ管理番号の修正行の履歴ＩＤが把握できる。次に格納した履歴ＩＤから、その行の複写、改訂元の履歴ＩＤの検索を行い（１００６）、次にその履歴ＩＤが複写・改訂先の履歴を追跡し、同内容バグ行の摘出を行う（１００７）。次に摘出した同内容バグ情報を表示し、同内容バグ情報を登録する（１００８）。フロー図内のブロック１００６〜１００８の詳細処理フロー図を図１０（ｂ）〜（ｄ）に示す。
【００２８】
図１０（ｂ）はバグ修正行の履歴ＩＤから、その行の複写、改訂元の検索を行う処理１００６の詳細処理フロー図である。バグ修正された行の履歴ＩＤを探索履歴ＩＤテーブルへ格納する（１００９）。次にソースコード情報から１データ読み込み（１０１０）、読込んだデータの履歴ＩＤ[改訂]が探索履歴ＩＤテーブルの履歴ＩＤと合致するかを判断する（１０１２）。合致した場合は、読込んだデータの履歴ＩＤ[引継]にデータが存在するかを判断する（１０１３）。存在した場合はそのデータを、探索履歴ＩＤテーブルへ書換えで格納する（１０１４）。次にソースコード情報の読み込み位置を初期化して（１０１５）、ソースコード情報を再度先頭から読み込み開始する。ここまでの処理をソースコード情報が終了するまで繰り返す（１０１０）。
【００２９】
図１０（ｃ）は検索した複写、改訂元の履歴ＩＤの改訂後・複写後のソースデータ情報を検索する処理１００７の詳細処理フロー図である。まず探索履歴ＩＤテーブルから１データ読み込み（１０１７）、次にソースコード情報から１データ読込む（１０１９）。ここで探索履歴ＩＤテーブルから読込んだ履歴ＩＤと、ソースコード情報から読込んだ履歴ＩＤ[引継]が合致するか判断し（１０２０）、合致した場合は関連行テーブルに格納する（１０２１）。次に履歴ＩＤ[改訂]が存在するか判断し（１０２２）、存在した場合は探索履歴ＩＤテーブルに追記で格納する（１０２３）。ソースコード情報を１データ読込んでから（１０１９）ここまでの処理をソースコード情報が終了するまで繰り返す（１０１８）。更に、探索履歴ＩＤテーブル１データ読み込んでから（１０１７）ここまでの処理を探索履歴ＩＤテーブルが終了するまで繰り返す（１０１６）。
【００３０】
図１０（ｄ）は同内容バグの行に情報を付加する処理１００８の詳細処理フロー図である。まず関連行テーブルから１データ読込む（１０２５）。次にファイル管理情報から１データ読込む（１０２７）。関連行テーブルから読込んだデータのファイルＩＤとファイル管理情報から読込んだデータのファイルＩＤが一致するか判断する（１０２８）。更にファイル管理情報の最新フラグが１か判断する（１０２９）。１であった場合は表示用関連行テーブルに格納する（１０３０）。ファイル管理情報を１データ読み込んでから（１０２７）ここまでの処理をファイル管理情報が終わるまで繰り返す（１０２６）。更に追跡履歴テーブルを１データ読込んでから（１０２５）ここまでの処理を追跡履歴テーブルが終わるまで繰り返す（１０２４）。次に表示用関連行テーブルを表示する（１０３１）。システム使用者は表示されたソース行を見て、その行に同内容のバグを含んでいると判断した場合は、当該バグ番号と修正が完了していないことを示す０を入力する（１０３２）。次に入力されたバグ番号と修正が完了していないことを示す０の情報を、ソースコード情報３０２へ書き戻すことにより、リポジトリ１０４にバグ管理の情報が格納される（１０３３）。
【００３１】
図１１は同内容バグが存在する可能性のあるソース行一覧を表示している画面の実施例である。利用者は修正必要と判断した行のバグ番号列にバグ管理番号を、修正完了フラグ列に０を入力する。
【実施例２】
【００３２】
バグ修正の状況を把握する実施例を示す。
【００３３】
図１２は、ソースコード情報を一時的に格納するソースコード情報一時テーブルの実施例である。
【００３４】
図１３は、ファイル管理情報とソースコード情報を合わせたデータを格納するファイル・ソースコード情報テーブルの実施例である。
【００３５】
図１４は、バグ番号を指定することにより、実施例１によりリポジトリ１０４に登録されている当該バグ番号が付加されたプログラムソース行を一覧表示し、バグ修正の状況を把握する実施例の処理フロー図である。
【００３６】
まずシステム利用者は調査したいバグ番号を入力する（１４０１）。次にソースコード情報から１データ読込む（１４０３）。次に入力されたバグ番号とソースコード情報データのバグ番号が一致するか判断する（１４０４）。一致した場合はソースコード情報一時テーブルに格納する（１４０５）。ソースコード情報から１データ読込んでから（１４０３）ここまでの処理をソースコード情報が終るまで繰り返す（１４０２）。
【００３７】
次にソースコード情報一時テーブルから１データ読込む（１４０７）。次にファイル管理情報から１データ読込む（１４０９）。ソースコード情報一時テーブルから読込んだデータのファイルＩＤと、ファイル管理情報から読込んだデータのファイルＩＤが一致するか判断する（１４１０）。一致した場合はファイル・ソースコード情報テーブルへ格納する（１４１１）。ファイル管理情報を１データ読込んでから（１４０９）ここまでの処理をファイル管理情報が終るまで繰り返す（１４０８）。更にソースコード情報一時テーブルを１データ読込んでから（１４０７）ここまでの処理をソースコード情報一時テーブルが終るまで繰り返す（１４０６）。
【００３８】
次にファイル・ソースコード情報テーブルへ格納したデータを表示し、当該バグ番号の修正状況が把握できる（１４１２）。
【００３９】
図１５は、バグ修正情報を表示している画面の実施例である。
【実施例３】
【００４０】
ファイルのバグ修正状況を把握する実施例を示す。
【００４１】
図１６は、ファイル管理情報を一時的に格納するファイル情報一時テーブルの実施例である。
【００４２】
図１７は、ファイル名を指定することにより、リポジトリ１０４に登録されている当該ファイルに、実施例１により付加されたバグ情報を一覧表示し、当該ファイルのバグ修正の状況を把握する実施例の処理フロー図である。
【００４３】
まずシステム利用者は調査したいファイル名を入力する（１７０１）。次にファイル管理情報から１データ読込む（１７０３）。次に入力されたファイル名とファイル管理情報データのファイル名が一致するか判断する（１７０４）。一致した場合はファイル管理情報データの最新フラグが１か判断する（１７０５）。最新フラグが１であった場合はファイル情報一時テーブルに格納する（１７０６）。ファイル管理情報から１データ読込んでから（１７０３）ここまでの処理をソースコード情報が終るまで繰り返す（１７０２）。
【００４４】
次にソースコード情報から１データ読込む（１７０８）。次にファイル情報一時テーブルに格納してあるデータのファイルＩＤと、ソースコード情報から読込んだデータのファイルＩＤが合致するか判断する（１７０９）。合致した場合はソースコード情報データにバグ番号が登録されているか判断する（１７１０）。バグ番号が登録されていた場合、ソースコード情報一時テーブルに格納する（１７１１）。ソースコード情報を１データ読込んでから（１７０８）ここまでの処理をソースコード管理情報が終るまで繰り返す（１７０７）。
【００４５】
次にソースコード情報一時テーブルへ格納したデータを表示し、当該ファイルのバグ修正状況が把握できる（１７１２）。
【００４６】
図１８は、指定したファイル名のバグ修正情報を表示している画面の実施例である。
【実施例４】
【００４７】
ソースコードにバグ情報を付加して表示することにより、バグ修正状況を把握する実施例を示す。
【００４８】
図１９は、ファイル名を指定してリポジトリ１０４に登録されている当該ファイルを表示する際に、実施例１により付加されたバグ情報を同時に表示し、当該ファイルのバグ修正の状況を把握する実施例の処理フロー図である。
【００４９】
まずシステム利用者は調査したいファイル名を入力する（１９０１）。次にファイル管理情報から１データ読込む（１９０３）。次に入力されたファイル名とファイル管理情報データのファイル名が一致するか判断する（１９０４）。一致した場合はファイル管理情報データの最新フラグが１か判断する（１９０５）。最新フラグが１であった場合はファイル情報一時テーブルに格納する（１９０６）。ファイル管理情報から１データ読込んでから（１９０３）ここまでの処理をソースコード情報が終るまで繰り返す（１９０２）。
【００５０】
次にソースコード情報から１データ読込む（１９０８）。次にファイル情報一時テーブルに格納してあるデータのファイルＩＤと、ソースコード情報から読込んだデータのファイルＩＤが合致するか判断する（１９０９）。合致した場合はソースコード情報一時テーブルに格納する（１９１０）。ソースコード情報を１データ読込んでから（１９０８）ここまでの処理をソースコード管理情報が終るまで繰り返す（１９０７）。
【００５１】
次にソースコード情報一時テーブル内を、行番号でソートする（１９１１）。
【００５２】
次にソースコード情報一時テーブルへ格納したデータを表示し、当該ファイルを全体ソースの中でどの位置にバグが存在するかと、そのバグ修正状況が把握できる（１９１２）。
【００５３】
図２０は、指定したファイル名のソースコードと、その各行のバグ修正情報を表示している画面の実施例である。
【符号の説明】
【００５４】
１０１…バグ情報入力機能部、１０２…バグ行検索機能部、１０３…バグ情報表示機能部、１０４…リポジトリ、１０５…バグ管理ファイル、２０１…入力装置、２０２…出力装置、２０３…処理装置、２０４…データ保管装置、３０１…ファイル管理情報部、３０２…ソースコード情報部、３０３…ファイル名、３０４…Ｒｅｖ、３０５…最新フラグ、３０６…ファイルＩＤ、３０７…ファイル名、３０８…行番号、３０９…コード、３１０…履歴ＩＤ[引継]、３１１…履歴ＩＤ[改訂]、３１２…バグ番号、３１３…修正完了フラグ、４０１…バグ管理情報、４０２…一次修正バグ情報、４０３…バグ番号、４０４…バグ内容、４０５…一次修正バグ番号。
【図１】
2012088874.tif 000003
【図２】
2012088874.tif 000004
【図３】
2012088874.tif 000005
【図４】
2012088874.tif 000006
【図５】
2012088874.tif 000007
【図６】
2012088874.tif 000008
【図７】
2012088874.tif 000009
【図８】
2012088874.tif 000010
【図９】
2012088874.tif 000011
【図１０（ａ）】
2012088874.tif 000012
【図１０（ｂ）】
2012088874.tif 000013
【図１０（ｃ）】
2012088874.tif 000014
【図１０（ｄ）】
2012088874.tif 000015
【図１１】
2012088874.tif 000016
【図１２】
2012088874.tif 000017
【図１３】
2012088874.tif 000018
【図１４】
2012088874.tif 000019
【図１５】
2012088874.tif 000020
【図１６】
2012088874.tif 000021
【図１７】
2012088874.tif 000022
【図１８】
2012088874.tif 000023
【図１９】
2012088874.tif 000024
【図２０】
2012088874.tif 000025