(57)【特許請求の範囲】
【請求項１】
ベースとなるソースファイルが格納された格納部にアクセスし、ベースとなる前記ソースファイルを、互いに独立する第１ソースファイルおよび第２ソースファイルとしてチェックアウトする、チェックアウト部と、
前記第１ソースファイルに関連するバグの対応状況を特定する第１バグデータを取得する、第１バグデータ取得部と、
前記第２ソースファイルの編集時に、前記第１バグデータで特定される前記バグの対応状況を表示させる、制御部と、
前記第１ソースファイルで対応済の前記バグについて、前記第２ソースファイルで対応済の場合には、前記格納部へ前記第２ソースファイルをチェックインし、前記第１ソースファイルで対応済の前記バグについて、前記第２ソースファイルで対応が済んでいない場合には、前記格納部へ前記第２ソースファイルをチェックインしない、チェックイン部と、
を備えていることを特徴とする、ソースファイル編集管理装置。
【請求項２】
前記チェックイン部は、前記第１ソースファイルをチェックインし、
前記第１バグデータ取得部は、前記第１ソースファイルのチェックインの際、前記第１ソースファイルで対応済の前記バグについて、対応済である旨が前記バグの対応状況で示されるように、前記第１バグデータを更新する、請求項１に記載の、ソースファイル編集管理装置。
【請求項３】
前記第１バグデータ取得部は、前記第１ソースファイルのチェックアウトの際、前記第１ソースファイルで対応が済んでいない前記バグについて、編集中である旨が前記バグの対応状況で示されるように、前記第１バグデータを更新する、請求項１または請求項２に記載の、ソースファイル編集管理装置。
【請求項４】
前記制御部は、前記バグの詳細を表示する要求が出力された場合に、前記バグの詳細を表示させる、請求項１〜請求項３のいずれか１項に記載のソースファイル編集管理装置。
【請求項５】
前記第２ソースファイルにおける前記バグの対応状況を特定する第２バグデータを取得する、第２バグデータ取得部、をさらに備え、
前記第２バグデータ取得部は、前記第２ソースファイルで対応済のバグについて、対応済である旨が前記第２ソースファイルにおける前記バグの対応状況に含まれるように、前記第２バグデータを更新する、請求項１〜請求項４のいずれか１項に記載のソースファイル編集管理装置。
【請求項６】
前記第２バグデータ取得部は、前記第２ソースファイルのチェックインの際、前記第１バグデータを削除する、請求項５に記載のソースファイル編集管理装置。
【請求項７】
前記第１ソースファイルと前記第２ソースファイルとの差分を抽出する、差分抽出部、
をさらに備えている、請求項１〜請求項６のいずれか１項に記載のソースファイル編集管理装置。
【請求項８】
（ａ）コンピュータによって、ベースとなるソースファイルが格納された格納部にアクセスし、ベースとなる前記ソースファイルを、互いに独立する第１ソースファイルおよび第２ソースファイルとしてチェックアウトする、ステップと、
（ｂ）前記コンピュータによって、前記第１ソースファイルに関連するバグの対応状況を特定する第１バグデータを取得する、ステップと、
（ｃ）前記コンピュータによって、前記第２ソースファイルの編集時に、前記第１バグデータで特定される前記バグの対応状況を表示させる、ステップと、
（ｄ）前記コンピュータによって、前記第１ソースファイルで対応済の前記バグについて、前記第２ソースファイルで対応済の場合には、前記格納部へ前記第２ソースファイルをチェックインし、前記第１ソースファイルで対応済の前記バグについて、前記第２ソースファイルで対応が済んでいない場合には、前記格納部へ前記第２ソースファイルをチェックインしない、ステップと、
を有していることを特徴とする、ソースファイル編集管理方法。
【請求項９】
コンピュータに、
（ａ）ベースとなるソースファイルが格納された格納部にアクセスし、ベースとなる前記ソースファイルを、互いに独立する第１ソースファイルおよび第２ソースファイルとしてチェックアウトする、ステップと、
（ｂ）前記第１ソースファイルに関連するバグの対応状況を特定する第１バグデータを取得する、ステップと、
（ｃ）前記第２ソースファイルの編集時に、前記第１バグデータで特定される前記バグの対応状況を表示させる、ステップと、
（ｄ）前記第１ソースファイルで対応済の前記バグについて、前記第２ソースファイルで対応済の場合には、前記格納部へ前記第２ソースファイルをチェックインし、前記第１ソースファイルで対応済の前記バグについて、前記第２ソースファイルで対応が済んでいない場合には、前記格納部へ前記第２ソースファイルをチェックインしない、ステップと、
を実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソースファイルのバグについて管理するための、ソースファイル編集管理装置、ソースファイル編集管理方法、およびプログラムに関する。
【背景技術】
【０００２】
電子計算機に用いられるソースファイルには、バグが発生することがある。このバグを修正した履歴などを管理する、バグ管理システムが知られている（たとえば、特許文献１参照）。
【０００３】
上記のバグの修正時などにおいて、同一のソースファイルを、複数人が同時に編集すると、各ソースファイル間で、不整合が生じるおそれがある。このような不整合を防ぐために、排他制御を行う構成が知られている（たとえば、特許文献２，３参照）。
【０００４】
また、複数人が同時にソースコードを編集している場合に、リアルタイムで、複数人がどのような編集を行っているか、検索するようにした構成が知られている（たとえば、特許文献４参照）。
【０００５】
また、ソースファイルの修正内容を、修正情報として保持しておくことで、リリース時における、バグの修正漏れを抑制するようにした構成が知られている（たとえば、特許文献５参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−１２８６５０号公報
【特許文献２】特開２００８−１１７３４０号公報
【特許文献３】特開２００６−２７７４３５号公報
【特許文献４】特許第３０２２３２６号明細書
【特許文献５】特開平９−９７１７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、現リリース版のソースファイルを改造することで、次期リリース版のソースファイルを作成する改造作業者と、現リリース版のソースファイルの保守作業者とは、別々であることが多い。即ち、次期リリース版ソースファイルのバグを改修する改造作業者と、現リリース版ソースファイルのバグを改修する保守作業者とは、別々である。このため、改造作業と、バグ改修作業との間で、改修内容などの取り込み状況の管理などが、適切に行われていないと、次期リリース版は、保守作業者の行ったバグ改修の内容が取り込まれないまま、リリースされるおそれがある。
【０００８】
従来、多くの場合は、手作業によって、ソースファイルとバグの対応を管理し、次期リリース版のバグ改修状況の把握に多大な工数を割いていた。また、短い期間で、次期リリース版ソースファイルを作成するための改造作業と、現リリース版ソースファイルのバグ改修作業とを行うためには、これらの作業を同時に行う必要がある。しかしながら、特許文献２，３に記載のように、同一のデータについて、排他制御を行う構成では、改造作業者および保守作業者の双方が、同一のデータを改修することができない。また、特許文献４に記載されているように、ソースファイルの１行ずつのリアルタイムな同時編集をチェックする方法では、一度、作業者に警告が出されているにも関わらず、さらに１行編集する毎にリアルタイムにチェックするということは、無駄な処理を行っているといえる。
【０００９】
また、特許文献１〜５のいずれの構成においても、次期リリース版ソースファイルを作成するための改造作業において、現リリース版ソースファイルの保守作業で反映されたバグが未対応であっても、次期リリース版ソースファイルがチェックインされてしまう。
【００１０】
本発明の目的の一例は、上記問題を解消し、ソースファイルを、同時に異なる作業者によって編集することができ、かつ、ソースファイル間で、バグの反映状況を統一させ得る、ソースファイル編集管理装置、ソースファイル編集管理方法、およびプログラムを提供することにある。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、本発明の一側面におけるソースファイル編集管理装置は、
ベースとなるソースファイルが格納された格納部にアクセスし、ベースとなる前記ソースファイルを、互いに独立する第１ソースファイルおよび第２ソースファイルとしてチェックアウトする、チェックアウト部と、
前記第１ソースファイルに関連するバグの対応状況を特定する第１バグデータを取得する、第１バグデータ取得部と、
前記第２ソースファイルの編集時に、前記第１バグデータで特定される前記バグの対応状況を表示させる、制御部と、
前記第１ソースファイルで対応済の前記バグについて、前記第２ソースファイルで対応済の場合には、前記格納部へ前記第２ソースファイルをチェックインし、前記第１ソースファイルで対応済の前記バグについて、前記第２ソースファイルで対応が済んでいない場合には、前記格納部へ前記第２ソースファイルをチェックインしない、チェックイン部と、
を備えていることを特徴とする。
【００１２】
また、上記目的を達成するため、本発明の一側面におけるソースファイル編集管理方法は、
（ａ）コンピュータによって、ベースとなるソースファイルが格納された格納部にアクセスし、ベースとなる前記ソースファイルを、互いに独立する第１ソースファイルおよび第２ソースファイルとしてチェックアウトする、ステップと、
（ｂ）前記コンピュータによって、前記第１ソースファイルに関連するバグの対応状況を特定する第１バグデータを取得する、ステップと、
（ｃ）前記コンピュータによって、前記第２ソースファイルの編集時に、前記第１バグデータで特定される前記バグの対応状況を表示させる、ステップと、
（ｄ）前記コンピュータによって、前記第１ソースファイルで対応済の前記バグについて、前記第２ソースファイルで対応済の場合には、前記格納部へ前記第２ソースファイルをチェックインし、前記第１ソースファイルで対応済の前記バグについて、前記第２ソースファイルで対応が済んでいない場合には、前記格納部へ前記第２ソースファイルをチェックインしない、ステップと、
を有していることを特徴とする。
【００１３】
更に、上記目的を達成するため、本発明の一側面におけるプログラムは、コンピュータに、
コンピュータに、
（ａ）ベースとなるソースファイルが格納された格納部にアクセスし、ベースとなる前記ソースファイルを、互いに独立する第１ソースファイルおよび第２ソースファイルとしてチェックアウトする、ステップと、
（ｂ）前記第１ソースファイルに関連するバグの対応状況を特定する第１バグデータを取得する、ステップと、
（ｃ）前記第２ソースファイルの編集時に、前記第１バグデータで特定される前記バグの対応状況を表示させる、ステップと、
（ｄ）前記第１ソースファイルで対応済の前記バグについて、前記第２ソースファイルで対応済の場合には、前記格納部へ前記第２ソースファイルをチェックインし、前記第１ソースファイルで対応済の前記バグについて、前記第２ソースファイルで対応が済んでいない場合には、前記格納部へ前記第２ソースファイルをチェックインしない、ステップと、
を実行させることを特徴とする。
【発明の効果】
【００１４】
以上のように、本発明によれば、ソースファイルを、同時に異なる作業者によって編集することができ、かつ、ソースファイル間で、バグの反映状況を統一させ得る。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施の形態におけるソースファイル編集管理システムの構成を示すブロック図である。
【図２】データベースと、ソースファイル編集管理装置とを示す、ブロック図である。
【図３】データベースに格納されているデータによって特定されるテーブルについて示す図であり、図３（ａ）は、基本バグデータによって特定される、基本バグテーブルを示しており、図３（ｂ）は、第１バグデータによって特定される、第１バグテーブルを示しており、図３（ｃ）は、第２バグデータによって特定される、第２バグテーブルを示している。
【図４】制御部が表示させるエディタ画面を示す図である。
【図５】エディタ画面の展開例を示す図である。図５（ａ）は、図４の開くボタン、チェックアウトボタン、およびチェックインボタンを示している。図５（ｂ）は、図５（ａ）の各ボタン、が操作されることで表示される画面をそれぞれ示している。図５（ｃ）は、図５（ｂ）の各ボタンが操作されることで表示される画面をそれぞれ示している。図５（ｄ）は、図５（ｃ）のボタンが操作されることで表示される画面を示している。
【図６】図４の要バグ改修ボタンが操作された場合のエディタ画面の展開例を示す図である。
【図７】図４の差分抽出ボタンが操作された場合のエディタ画面の展開例を示す図である。
【図８】第１ソースファイルを、ソースファイル格納部からソースファイル編集管理装置へチェックアウトする際の、動作を示すフロー図である。
【図９】第１ソースファイルをチェックインする動作を示すフロー図である。
【図１０】第２ソースファイルを、ソースファイル格納部からソースファイル編集管理装置へチェックアウトする際の動作を示すフロー図である。
【図１１】チェックアウトされた第２ソースファイルに関する、バグの一覧を作成する動作を示すフロー図である。
【図１２】第１ソースファイルのバグ一覧を表示する動作と、第２ソースファイルのバグ除去の結果を第２バグテーブルに反映する動作とを示すフロー図である。
【図１３】第２ソースファイルのバグを除去するための、改造作業者の作業を補助する動作を示すフロー図である。
【図１４】第２ソースファイルを、ソースファイル編集管理装置から、ソースファイル格納部へチェックインする動作のフロー図である。
【図１５】本発明の実施の形態におけるソースファイル編集管理装置を実現するコンピュータの一例を示すブロック図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態における、ソースファイル編集管理装置、ソースファイル編集管理方法、およびプログラムについて、図面を参照しながら説明する。
【００１７】
［全体構成］
最初に、本発明の実施の形態におけるソースファイル編集管理装置を含む、ソースファイル編集管理システムの構成について、図１を用いて説明する。図１は、本発明の実施の形態におけるソースファイル編集管理システム１の構成を示すブロック図である。
【００１８】
図１に示すように、ソースファイル編集管理システム１は、データベース２と、複数のソースファイル編集管理装置３と、を備えている。データベース２は、ネットワーク４を介して、各ソースファイル編集管理装置３に接続されている。なお、各ソースファイル編集管理装置３は、互いに同様の構成であるので、以下では、１つのソースファイル編集管理装置３について説明し、他のソースファイル編集管理装置３についての説明は省略する。
【００１９】
図２は、データベース２と、ソースファイル編集管理装置３とを示す、ブロック図である。図２では、ネットワーク４の図示は省略している。また、図２は、ソースファイル編集管理装置３に表示装置６が接続された状態を示している。
【００２０】
図２に示すように、データベース２は、コンピュータなどの記憶装置によって構成されている。データベース２は、ソースファイル格納部２１と、基本バグデータ格納部２２と、第１バグテーブル格納部２３と、第２バグテーブル格納部２４と、を備えている。
【００２１】
ソースファイル格納部２１は、複数のソースファイルを格納している。本実施の形態では、ソースファイル格納部２１に格納されるソースファイルには、ベースとなるソースファイル１０と、第１ソースファイル１１と、第２ソースファイル１２と、が含まれる。
【００２２】
たとえば、ベースとなるソースファイル１０は、最新のリリース版のソースファイルである。第１ソースファイル１１は、ベースとなるソースファイル１０のバグを改修することで完成する。すなわち、第１ソースファイル１１は、ベースとなるソースファイル１０の保守作業のために用いられる。第２ソースファイル１２は、ベースとなるソースファイル１０を改造することにより、ベースとなるソースファイル１０の次にリリースされるソースファイルとなる。すなわち、第２ソースファイル１２は、次期リリース版ソースファイルである。第１ソースファイル１１と第２ソースファイル１２とは、互いに独立したソースファイルである。
【００２３】
なお、以下では、第１ソースファイル１１を編集することを、「改修」といい、第２ソースファイルを編集することを、「改造」という。本実施の形態では、ソースファイル格納部２１には、ベースとなるソースファイル１０以外にも、ベースとなるソースファイルが、履歴別に、複数含まれている。
【００２４】
基本バグデータ格納部２２は、基本バグテーブル１３ａを特定する、基本バグデータ１３を格納している。基本バグテーブル１３ａについては、後述する図３（ａ）を用いて説明する。
【００２５】
第１バグデータ格納部２３は、第１バグテーブル１４ａを特定する、第１バグデータ１４を格納している。第１バグテーブル１４ａについては、後述する図３（ｂ）を用いて、詳細に説明する。
【００２６】
第２バグデータ格納部２４は、第２バグテーブル１５ａを特定する、第２バグデータ１５を格納している。第２バグテーブル１５ａについては、後述する図３（ｃ）を用いて、詳細に説明する。
【００２７】
ソースファイル編集管理装置３は、ソースファイル格納部２１に格納されているソースファイルの編集および編集管理を行う。ソースファイル編集管理装置３は、たとえば、第１ソースファイル１１の編集を管理し、第２ソースファイル１２の編集を管理する。
【００２８】
ソースファイル編集管理装置３は、チェックアウト部３１と、チェックイン部３２と、第１バグデータ取得部３３と、制御部３５と、を備えている。
【００２９】
チェックアウト部３１は、ソースファイル格納部２１にアクセスし、ベースとなるソースファイル１０を、互いに独立した第１ソースファイル１１、および第２ソースファイル１２として、チェックアウト可能である。
【００３０】
第１バグデータ取得部３３は、第１ソースファイル１１に関連するバグの対応状況を特定する、第１バグデータ１４を、第１バグデータ格納部２３から取得する。また、第１バグデータ取得部３３は、第１ソースファイル１１のバグ対応状況を、更新する。制御部３５は、第２ソースファイル１２の編集時には、第１バグデータ１４で特定されるバグの対応状況を表示させる。
【００３１】
チェックイン部３２は、第１ソースファイル１１で対応済のバグについて、第２ソースファイル１２で対応済の場合には、ソースファイル格納部２１へ第２ソースファイル１２をチェックインする。一方、チェックイン部３２は、第１ソースファイル１１で対応済のバグについて、第２ソースファイル１２で対応が済んでいない場合には、ソースファイル格納部２１へ第２ソースファイル１２をチェックインしない。
【００３２】
以上説明したように、本実施の形態では、ベースとなるソースファイル１０を、互いに独立した第１ソースファイル１１、および第２ソースファイル１２としてチェックアウトできる。これにより、第１ソースファイル１１と、第２ソースファイル１２とを同時に、異なる作業者によって編集することができる。その結果、ベースとなるソースファイル１０のバグ改修作業を第１ソースファイル１１で行いつつ、たとえば、次期リリース版のソースファイルを作成する作業を、第２ソースファイル１２で行うことができる。その結果、ソースファイルを、より迅速に編集することができる。また、第２ソースファイル１２の編集時に、第１ソースファイルに関連するバグの対応状況を、確認することができる。第２ソースファイル１２の改造作業者は、この対応状況を参考にすることで、第１ソースファイル１１で改修されたバグについて、第２ソースファイル１２のバグも、同様に除去することができる。その上、チェックイン部３２は、第１ソースファイル１１で対応済みのバグについて、第２ソースファイル１２で対応が完了するまでは、第２ソースファイル１２をチェックインしない。このため、第１ソースファイル１１で対応されたバグが、第２ソースファイル１２で対応されないという、反映漏れを防止できる。これにより、ソースファイル１１、１２間で、バグの反映状況を統一させることができる。以上の次第で、ソースファイル１１、１２を、同時に異なる作業者によって編集することができ、かつ、ソースファイル１１、１２間で、バグの反映状況を統一させ得る。
【００３３】
しかも、本実施の形態では、第２ソースファイル１２のバグ改造の要否を、作業者がバグ管理表を参照しながら手作業で確認する必要がなく、バグの対応にかかる手間を、より低減することができる。
【００３４】
以上が、ソースファイル編集管理システム１の概略説明である。次に、ソースファイル編集管理システム１の、より具体的な構成を、図１に加え、図２〜図１５を用いて説明する。
【００３５】
なお、本実施の形態では、第２ソースファイル１２の改造作業と、第１ソースファイル１１のバグ改修作業とを同時に進めるためには、ソースファイルをマージする作業が避けられないと考えられる。さらに、論理的に仕様の整合を保ってマージすることは機械的に自動で行うには限界がある。よって、全体仕様および改造仕様、ならびに、追加・強化する仕様を理解している要員の目視と、判断とが必要であると考えられる。そこで、本実施の形態では、「仕様のマージ」は、人手での作業が不可避との認識に立ち、ソースファイルの同時並行的な編集作業の実現を重視し、且つマージに関する状況を如何に正確に把握するかを、重視している。
【００３６】
図１および図２に示すように、本実施の形態では、ソースファイル編集管理システム１は、第１ソースファイル１１と、第２ソースファイル１２とを、異なるソースファイル編集管理装置３で、同時に編集可能に構成されている。
【００３７】
図３は、データベース２に格納されているデータによって特定されるテーブルについて示す図であり、図３（ａ）は、基本バグデータ１３によって特定される、基本バグテーブル１３ａを示しており、図３（ｂ）は、第１バグデータ１４によって特定される、第１バグテーブル１４ａを示しており、図３（ｃ）は、第２バグデータ１５によって特定される、第２バグテーブル１５ａを示している。
【００３８】
図２および図３（ａ）に示すように、本実施の形態では、データベース２の基本バグデータ格納部２２は、基本バグテーブル１３ａを特定する基本バグデータ１３を格納している。基本バグテーブル１３ａは、発見されたバグについての情報を管理するテーブルである。本実施の形態では、基本バグテーブル１３ａは、図示しない入力装置などを用いて、予め、手作業で、基本バグデータ格納部２２に格納されている。本実施の形態では、基本バグテーブル１３ａは、バグ番号１３ｂ、バグ内容１３ｃ、原因１３ｄ、対処１３ｅ、対応状況１３ｆ等の項目を有している。
【００３９】
本実施の形態では、バグ番号１３ｂは、バグ内容１３ｃ毎に付されており、たとえば、１から始まっている。バグ内容１３ｃは、たとえば、「カーソルの色が勝手に変わる」など、具体的なバグ内容が示される項目である。原因１３ｄは、たとえば、「バグ内容１３ｃが生じる原因が示される項目である。対処１３ｅは、たとえば、ソースファイルをどのように変更したか、などが示される項目である。対応状況１３ｆは、対応するバグについて、対応が済んだか否かが示される項目である。対応状況１３ｆは、デフォルトでは、「未」である。本実施の形態では、基本バグテーブル１３ａには、４つのバグが示されている。また、基本バグテーブル１３ａでは、バグ番号１〜３は、基本となるソースファイル１０が原因で生じたことが示されている。
【００４０】
本実施の形態では、データベース２の第１バグデータ格納部２３は、第１バグテーブル１４ａを特定する第１バグデータ１４を格納している。第１バグテーブル１４ａは、基本バグテーブル１３ａに示されているバグのうち、第１ソースファイル１１に関連するものを、対応づけるテーブルである。本実施の形態では、第１バグテーブル１４ａは、図示しない入力装置などを用いて、予め、手作業で、第１バグデータ格納部２３に格納されている。本実施の形態では、第１バグテーブル１４ａは、項番１４ｂ、バグ番号１４ｃ、連番１４ｄ、ソースファイル名１４ｅ、第１対応状況１４ｆなどの項目を有している。
【００４１】
項番１４ｂは、第１バグテーブル１４ａにおいて、バグ番号１４ｃ毎に付されている。バグ番号１４ｃには、基本バグテーブル１３ａに示されているバグ番号１３ｂのうち、第１ソースファイル１１に関連するバグについてのバグ番号が示されている。本実施の形態では、第１ソースファイル１１に関連するバグについてのバグ番号１４ｃとして、「１」、「２」、「３」の番号が示されている。ソースファイル名１４ｅには、バグを改修するソースファイルのファイル名が示されている。本実施の形態では、バグを改修するソースファイルは、第１ソースファイル１１であるので、ソースファイル名１４ｅには、「第１ソースファイル１１」と示されている。対応状況１４ｆは、個々のバグ番号１４ｃで特定されるバグについて、第１ソースファイル１１での対応が済んだか否かを示す項目である。本実施の形態では、各バグ番号１４ｃにおいて、対応状況１４ｆは、デフォルトで、「未」に設定される。この対応状況１４ｆは、後述するように、第１ソースファイル１１を、バグ改修のためにチェックアウトすることにより、「中」に変更される。「中」とは、編集中であるとの意味である。また、この対応状況１４ｆは、後述するように、第１ソースファイル１１を、バグ改修が完了してチェックインすることにより、「済」に変更される。
【００４２】
本実施の形態では、データベース２の第２バグデータ格納部２４は、第２バグテーブル１５ａを特定する第２バグデータ１５を格納している。第２バグテーブル１５ａは、第１バグテーブル１４ａに示されているバグを、第２ソースファイル１２に対応づけるテーブルである。本実施の形態では、第２バグテーブル１５ａは、項番１５ｂ、ソースファイル名１５ｃ、連番１５ｄ、バグ番号１５ｅ、対応状況１５ｆなどの項目を有している。
【００４３】
項番１５ｂには、項番１４ｂと同じ番号が付されている。ソースファイル名１５ｃには、バグを除去するソースファイルのファイル名が示されている。本実施の形態では、バグを除去するソースファイルは、第２ソースファイル１２であるので、ソースファイル名１５ｃには、「第２ソースファイル１２」と示されている。バグ番号１５ｅは、バグ番号１４ｃと同じ番号が付されている。対応状況１５ｆは、個々のバグ番号１５ｅで特定されるバグについて、第２ソースファイル１２での対応が済んだか否かを示す項目である。本実施の形態では、各バグ番号１５ｅにおいて、対応状況１５ｆは、デフォルトで、「未」に設定される。この対応状況１５ｆは、後述するように、入力受付部３６に所定の操作指令が与えられることに伴い、「済」または「非」に変更される。
【００４４】
図２に示すように、本実施の形態では、ソースファイル編集管理装置３は、専用のエディタとして構成されている。すなわち、本実施の形態では、データベース２に格納されているソースファイルは、ソースファイル編集管理装置３によってのみ、編集される。本実施の形態では、ソースファイル編集管理装置３は、チェックアウト部３１と、チェックイン部３２と、第１バグデータ取得部３３と、第２バグデータ取得部３４と、制御部３５と、入力受付部３６と、差分抽出部３７と、を備えている。
【００４５】
本実施の形態では、入力受付部３６は、ソースファイル編集管理装置３を操作するための操作指令を、ソースファイル編集管理装置３の外部装置から受け付ける。この外部装置には、マウスなどのポインティングデバイス、およびキーボードが含まれる。入力受付部３６は、制御部３５に接続されている。入力受付部３６は、後述するエディタ画面４０上のボタンなどが操作されることにより、操作指令を受け付ける。
【００４６】
本実施の形態では、制御部３５は、入力受付部３６が受け付けた指令などに基づいて、ソースファイル編集管理装置３の各部の動作を制御する。制御部３５は、表示装置６に接続されている。表示装置６には、液晶ディスプレイなどが含まれる。制御部３５は、表示装置６へ画像表示信号を出力することにより、表示装置６の画面に、種々の映像を表示させる。制御部３５に表示される画像の一例については、後述する。
【００４７】
本実施の形態では、チェックアウト部３１は、ソースファイル格納部２１からの、第１ソースファイル１１のチェックアウトを行う。また、チェックアウト部３１は、ソースファイル格納部２１からの、第２ソースファイル１２のチェックアウトを行う。
【００４８】
本実施の形態では、チェックイン部３２は、ソースファイル格納部２１への、第１ソースファイル１１のチェックインを行う。また、チェックアウト部３１は、ソースファイル格納部２１への、第２ソースファイル１２のチェックインを行う。
【００４９】
本実施の形態では、第１バグデータ取得部３３は、前述したように、第１ソースファイル１１に関連するバグ内容を特定した、第１バグデータ１４を、第１バグデータ格納部２３から取得する。第１バグデータ取得部３３は、第１バグテーブル１４ａの対応状況１４ｆを、「中」または「済」に変更することにより、第１ソースファイル１１のバグ対応状況を、更新する。
【００５０】
本実施の形態では、第２バグデータ取得部３４は、第２ソースファイル１２に関連するバグ内容を特定した、第２バグデータ１５を、第２バグデータ格納部２４から取得する。第２バグデータ１５は、第１バグデータ１４が存在する場合に、第２バグデータ取得部３４によって生成および更新される。第２バグデータ取得部３４は、第２バグテーブル１５ａの各バグ番号１５ｅの対応状況１５ｆを、「済」または「非」に変更することにより、第２ソースファイル１２のバグ対応状況を、更新する。
【００５１】
本実施の形態では、差分抽出部３７は、チェックアウト部３１によってチェックアウトされている第２ソースファイル１２と、ソースファイル格納部２１に格納されている第１ソースファイル１１との差分を、抽出する。
【００５２】
次に、制御部３５が、表示装置６に表示させる画像について説明する。図４は、制御部３５が表示させるエディタ画面４０を示す図である。図４に示すように、本実施の形態では、エディタ画面４０は、ファイル名欄４１と、開くボタン４２と、チェックアウトボタン４３と、チェックインボタン４４と、要バグ対応ボタン４５と、差分抽出ボタン４６と、ソースファイル表示編集部４７と、を有している。
【００５３】
ファイル名欄４１は、エディタ画面４０において操作されるソースファイル名を入力する欄である。開くボタン４２は、ソースファイル格納部２１からチェックアウトされたソースファイルを、エディタ画面４０に開くためのボタンである。チェックアウトボタン４３は、ソースファイル格納部２１からソースファイルをチェックアウトするためのボタンである。チェックインボタン４４は、ソースファイル編集管理装置３にチェックアウトされているソースファイルを、ソースファイル格納部２１へチェックインするためのボタンである。要バグ対応ボタン４５は、第２バグテーブル１５ａの対応状況１５ｆが「未」であるものが存在する場合に、表示されるボタンである。差分抽出ボタン４６は、ソースファイル編集管理装置３にチェックアウトされている第２ソースファイル１２と、ソースファイル格納部２１にチェックインされている第１ソースファイル１１との差分を抽出するためのボタンである。ソースファイル表示編集部４７は、作業者が編集するソースファイルが表示される部分である。
【００５４】
図５は、エディタ画面４０の展開例を示す図である。図５（ａ）は、図４の開くボタン４２、チェックアウトボタン４３、およびチェックインボタン４４を示している。図５（ｂ）は、図５（ａ）の各ボタン４２、４３、４４が操作されることで表示される画面をそれぞれ示している。図５（ｃ）は、図５（ｂ）の各ボタン４９ｆ、５１ａが操作されることで表示される画面をそれぞれ示している。図５（ｄ）は、詳細ボタン５２ｅが操作されることで表示される画面を示している。
【００５５】
図５（ａ）、図５（ｂ）、図５（ｃ）、および図５（ｄ）に示すように、開くボタン４２が操作されると、矢印Ａ１で示される、「開く」画面４８が表示される。開く画面４８は、ソースファイル編集管理装置３にチェックアウトされているソースファイルを開くための画面である。たとえば、開く画面４８のチェック欄４８ａが指定された状態で、ＯＫボタン４８ｃが操作されると、制御部３５は、第２ソースファイル１２を開く。一方、開く画面４８のチェック欄４８ｂが指定された状態で、ＯＫボタン４８ｃが操作されると、制御部３５は、第１ソースファイル１１を開く。また、キャンセルボタン４８ｄが操作されると、開く画面４８が閉じられる。
【００５６】
一方、たとえば、チェックアウトボタン４３が操作されると、矢印Ａ２で示される、チェックアウト画面４９が表示される。チェックアウト画面４９は、ソースファイル格納部２１からソースファイルをチェックアウトするための画面である。チェックアウト画面４９のチェック欄４９ａが指定された状態で、ＯＫボタン４９ｃが操作されると、チェックアウト部３１は、ソースファイル格納部２１に格納されている第２ソースファイル１２をチェックアウトする。なお、この場合において、ソースファイル格納部２１に第２ソースファイル１２が格納されていなければ、チェックアウト部３１は、ベースとなるソースファイル１０を、第２ソースファイル１２としてチェックアウトする。
【００５７】
一方、チェックアウト画面４９のチェック欄４９ｂが指定された状態で、ＯＫボタン４９ｃが操作されると、チェックアウト部３１は、ソースファイル格納部２１に格納されている、第１ソースファイル１１をチェックアウトする。なお、この場合において、ソースファイル格納部２１に第１ソースファイル１１が格納されていなければ、チェックアウト部３１は、ベースとなるソースファイル１０を、第１ソースファイル１１としてチェックアウトする。この場合、チェックアウトされるのは、バグ番号欄４９ｅに表示されているバグ番号に対応する、第１ソースファイル１１である。
【００５８】
バグ番号欄４９ｅに表示されているバグ番号を変更するためには、作業者は、チェックアウト画面４９の検索ボタン４９ｆを操作する。これにより、バグ番号一覧画面５０が表示される。バグ番号一覧画面５０では、第１バグテーブル１４ａに示されているバグ番号１４ｃが表示される。このバグ番号１４ｃのいずれかが指定されることで、バグ番号欄４９ｅのバグ番号が、対応する番号に変更される。本実施の形態では、バグ番号１〜３が、第１ソースファイル１１に対応するバグである。また、本実施の形態では、バグ番号１〜３のいずれかが選択された場合に、第１ソースファイル１１がチェックアウトされる。また、キャンセルボタン４９ｄが操作されると、チェックアウト画面４９が閉じられる。
【００５９】
本実施の形態では、チェックインボタン４４が操作されると、矢印Ａ３で示される、チェックイン画面５１が表示される。チェックイン画面５１は、ソースファイル編集管理装置３から、ソースファイル格納部２１へソースファイルをチェックインするための画面である。キャンセルボタン５１ｂが操作されると、チェックイン画面５１が閉じられる。一方、ファイル名欄４１（図４参照）に、チェックインしようとするファイル名が記入された状態で、ＯＫボタン５１ａが操作されると、当該ファイル名で特定されるソースファイルが、チェックインされる。ただし、第２ソースファイル１２をチェックインする際、第２バグテーブル１５ａの各バグ番号１５ｅについての対応状況１５ｆが全て「済」になっていない場合、矢印Ａ５に示すように、対応バグ一覧画面５２が表示され、チェックインは行われない。
【００６０】
対応バグ一覧画面５２の一例として、本実施の形態では、バグ番号欄５２ａと、バグ内容欄５２ｂと、第１対応状況欄５２ｃと、第２対応状況欄５２ｄと、詳細ボタン５２ｅと、が表示されている。本実施の形態において、対応バグ一覧画面５２には、バグ番号３、２、１のそれぞれについて、バグ内容５２ｂ、第１対応状況欄５２ｃ、第２対応状況欄５２ｄ、詳細ボタン５２ｅがそれぞれ表示されている。第１対応状況欄５２ｃとは、第１ソースファイル１１における、バグの対応状況を示している。第１対応状況欄５２ｃでは、第１ソースファイル１１において、バグ改修対応が未だであるバグについては、「未」が表示される。また、第１対応状況欄５２ｃでは、バグ改修が対応済であるバグについては「済」が表示され、バグ改修中であるバグについては、「中」が表示される。また、第２対応状況欄５２ｄは、チェックインしようとしている第２ソースファイル１２において、バグが対応済か否かを表示している。第２ソースファイル１２において、第２対応状況欄５２ｄは、デフォルトで、「未」に設定されている。これは、前述したように、第２バグテーブル１５ａの作成時に、各バグ番号についての対応状況が、「未」に設定されるためである。一方、除去が済んだバグについては、「済」と表示され、改修不要のバグについては、「非」が表示される。本実施の形態では、第２対応状況欄５２ｄは、対応バグ一覧画面５２の▼ボタン５２ｆが操作されることにより、「未」、「非」、「済」のいずれかに変更される。また、対応バグ一覧画面５２の詳細ボタン５２ｅが操作されることで、操作された詳細ボタン５２ｅに対応するバグ情報画面５３が、矢印Ａ６に示すように、表示される。本実施の形態では、このバグ情報画面５３のデータは、第２バグデータ取得部３４が、基本バグデータ格納部２２、第１バグデータ格納部２３、および第２バグデータ格納部２４を参照することで、得られる。バグ情報画面５３には、対応するバグ番号、原因、対応などが示されている。
【００６１】
図６は、図４の要バグ対応ボタン４５が操作された場合のエディタ画面４０の展開例を示す図である。図６に示すように、要バグ対応ボタン４５が操作されると、矢印Ａ７で示される、対応バグ一覧画面５４が表示される。この対応バグ一覧画面５４、およびバグ情報画面５５は、それぞれ、図５の対応バグ一覧画面５２、およびバグ情報画面５３と同様である。したがって、対応バグ一覧画面５４の各要素については、対応バグ一覧画面５２の各要素に対応する符号を付し、詳細な説明は省略する。また、バグ情報画面５５についての詳細な説明も省略する。
【００６２】
図７は、図４の差分抽出ボタン４６が操作された場合のエディタ画面４０の展開例を示す図である。図７に示すように、差分抽出ボタン４６が操作されると、差分表示画面５６が表示される。差分表示画面５６には、編集中の第２ソースファイル１２と、ソースファイル格納部２１に格納されている第１ソースファイル１１のファイル名とが、表示される。また、差分表示画面５６には、上記第１ソースファイル１１のバージョンが表示されている。この場合、本実施の形態では、編集中のファイル名として、「第２ソースファイル１２」が表示されており、バージョン名として「１０」が表示されている。また、差分表示画面５６には、上記２つのソースファイル１１、１２の差分情報が表示されている。
【００６３】
[ソースファイル編集管理装置の動作説明]
次に、本発明の実施の形態におけるソースファイル編集管理装置３の動作について、図８〜１４を用いて説明する。また、以下の説明においては、適宜、図１〜図１４を参酌する。また、本実施の形態では、ソースファイル編集管理装置３を動作させることによって、ソースファイル管理編集方法が、実施される。よって、本発明の実施の形態におけるソースファイル管理編集方法の説明は、以下のソースファイル編集管理装置３の動作説明に代える。
【００６４】
［（１）第１ソースファイルのバグ改修が行われる際の動作］
［（１−１）第１ソースファイルのチェックアウト動作］
まず、バグ改修を行う、第１ソースファイル１１を、ソースファイル格納部２１からソースファイル編集管理装置３へチェックアウトする際の動作を、図８を用いて説明する。図８は、第１ソースファイル１１を、ソースファイル格納部２１からソースファイル編集管理装置３へチェックアウトする際の動作を示すフロー図である。
【００６５】
まず、バグ改修担当者によって、チェックアウトボタン４３が操作されると（ステップＡ１０１でＹＥＳ）、制御部３５は、チェックアウト画面４９を、表示装置６に表示させる（ステップＡ１０２）。
【００６６】
次に、制御部３５は、バグ改修担当者によって、チェック欄４９ｂがチェックされ、さらに、バグ番号一覧画面５０が開かれた状態で、バグ番号１、２または３が指定された後に、ＯＫボタン４９ｃが操作されることを待つ。そして、上記の操作が行われ、ＯＫボタン４９ｃが操作されると（ステップＡ１０３でＹＥＳ）、チェックアウト部３１は、ソースファイル格納部２１から、別のソースファイル編集管理装置３に、第１ソースファイル１１がチェックアウト済であるか否かを判定する（ステップＡ１０４）。
【００６７】
別のソースファイル編集管理装置３に、第１ソースファイル１１がチェックアウトされていない場合（ステップＡ１０４でＮＯ）、チェックアウト部３１は、上記バグ番号に対応するソースファイルとしての第１ソースファイル１１をチェックアウトする（ステップＡ１０５）。この場合、ソースファイル格納部２１にチェックインされている、最新の第１ソースファイル１１が、ソースファイル格納部２１からチェックアウトされる。ただし、バグ番号に対応する第１ソースファイル１１が未だ存在しない場合には、ソースファイル１０についてチェックインされている最新のものが、第１ソースファイル１１として、チェックアウトされる。
【００６８】
第１ソースファイル１１のチェックアウトに伴い、第１バグデータ取得部３３は、第１バグテーブル１４ａの各対応状況１４ｆを、「中」に更新する（ステップＡ１０６）。
【００６９】
一方、別のソースファイル編集管理装置３に、第１ソースファイル１１がチェックアウト済である場合（ステップＡ１０４でＹＥＳ）、チェックアウト部３１は、第１ソースファイル１１のチェックアウトを拒否する（ステップＡ１０７）。
【００７０】
［（１−２）第１ソースファイルのチェックイン動作］
次に、バグ改修が済まされた第１ソースファイル１１をチェックインする動作を、図９を用いて説明する。図９は、第１ソースファイル１１をチェックインする動作を示すフロー図である。
【００７１】
バグ改修担当者によって、チェックインボタン４４が操作されると（ステップＡ２０１でＹＥＳ）。制御部３５は、チェックイン画面５１を、表示装置６に表示させる（ステップＡ２０２）。次いで、チェックイン画面５１のＯＫボタン５１ａが操作されると（ステップＡ２０３でＹＥＳ）、チェックイン部３２は、ファイル名欄４１に記入されているファイル名、すなわち、本実施の形態では、第１ソースファイル１１を、ソースファイル格納部２１へチェックインする（ステップＡ２０４）。この際、第１バグデータ取得部３３は、第１バグテーブル１４ａの各対応状況欄１４ｆを、「中」から、「済」に更新する（ステップＡ２０５）。
【００７２】
［（２）第２ソースファイルの改造が行われる際の動作］
［（２−１）第２ソースファイルのチェックアウト動作］
まず、第２ソースファイル１２を、ソースファイル格納部２１からソースファイル編集管理装置３へチェックアウトする際の動作を、図１０を用いて説明する。図１０は、第２ソースファイル１２を、ソースファイル格納部２１からソースファイル編集管理装置３へチェックアウトする際の動作を示すフロー図である。
【００７３】
まず、改造担当者によって、チェックアウトボタン４３が操作されると（ステップＡ３０１でＹＥＳ）、制御部３５は、チェックアウト画面４９を、表示装置６に表示させる（ステップＡ３０２）。
【００７４】
次に、改造担当者によって、ファイル名欄４１に、チェックアウトを要求する第２ソースファイル１２のファイル名が記入され、かつ、チェック欄４９ｂがチェックされた状態で、ＯＫボタン４９ｃが操作されることを待つ（ステップＡ３０３）。そして、ＯＫボタン４９ｃが操作されると（ステップＡ３０３でＹＥＳ）、チェックアウト部３１は、ソースファイル格納部２１から、別のソースファイル編集管理装置３に、第２ソースファイル１２がチェックアウト済か否かを判定する（ステップＡ３０４）。
【００７５】
別のソースファイル編集管理装置３に、第１ソースファイル１１がチェックアウトされていない場合（ステップＡ３０４でＮＯ）、チェックアウト部３１は、第２ソースファイル１２を、チェックアウトする（ステップＡ３０５）。この場合、ソースファイル格納部２１にチェックインされている、最新の第２ソースファイル１２が、ソースファイル格納部２１からチェックアウトされる。ただし、対応する第２ソースファイル１２が未だ存在しない場合には、ベースとなるソースファイル１０が、第２ソースファイル１２として、チェックアウトされる。
【００７６】
一方、別のソースファイル編集管理装置３に、第２ソースファイル１２がチェックアウト済である場合（ステップＡ３０４でＹＥＳ）、チェックアウト部３１は、第２ソースファイル１２のチェックアウトを拒否する（ステップＡ３０６）。
【００７７】
［（２−２）チェックアウトされた第２ソースファイルに対応する、バグの一覧の作成動作］
次に、チェックアウトされた第２ソースファイル１２に関するバグの一覧を表示する動作を、図１１を用いて説明する。図１１は、チェックアウトされた第２ソースファイル１２に関する、バグの一覧を作成する動作を示すフロー図である。
【００７８】
この動作は、改造作業者が、開くボタン４２を操作し、さらに、ファイル名欄４１に、第２ソースファイル１２のファイル名を入力し、チェック欄４８ａをチェックした状態で、ＯＫボタン４８ｃが操作されると、開始される。この操作によって、入力受付部３６は、第２ソースファイル１２を開く要求を受け付ける（ステップＡ４０１でＹＥＳ）。なお、第２ソースファイル１２を開く要求が出されるのは、当該ソースファイル１２のチェックアウト時、または、第２ソースファイル１２について、チェックアウト後に編集が中断され、その後再開される時である。
【００７９】
上記の要求が受け付けられると、制御部３５は、第２ソースファイル１２を開く（ステップＡ４０２）。これにより、エディタ画面４０のファイル表示装置６に、第２ソースファイル１２の内容が表示される。
【００８０】
次いで、第２バグデータ取得部３４は、第１バグテーブル格納部２３に格納されている、第１バグデータ１４を読み込む（ステップＡ４０３）。次に、第２バグデータ取得部３４は、第１バグデータ１４の有無を判定する（ステップＡ４０４）。第１バグデータ１４が存在しない場合、すなわち、第１ソースファイル１１にバグが存在しない場合（ステップＡ４０４でＮＯ）、処理は終了する。
【００８１】
一方、第１バグデータ１４が存在する場合（ステップＡ４０４でＹＥＳ）、第２バグデータ取得部３４は、第２バグテーブル１５ａを作成する（ステップＡ４０５）。具体的には、第２バグデータ取得部３４は、第１バグテーブル１４ａのうち、ステップＡ４０２で開いたソースファイル名をキーにして、当該ソースファイル名に対応付けられているバグ番号などの一覧を抽出する。これにより、第２バグテーブル１５ａが作成される。
【００８２】
なお、ステップＡ４０５の処理に先立ち、既に第２バグテーブル１５ａが作成されている場合には、既に作成されている第２バグテーブル１５ａを更新することにより、第２バグテーブル１５ａが作成される（ステップＡ４０５）。より具体的には、既に作成されている第２バグテーブル１５ａに含まれているバグ番号についてのデータは、そのまま残される。一方、このステップＡ４０５の処理で新たに抽出されたバグ番号についてのデータは、第２バグテーブル１５ａに追加される。そして、第２バグデータ取得部３４は、ステップＡ４０５において、新たに追加されたバグ番号がある場合には、当該バグ番号についての対応状況（対応状況１５ｆ）を、「未」に設定する。
【００８３】
次に、制御部３５は、ステップＡ４０５で作成された第２バグテーブル１５ａにおいて、対応状況が「未」のバグ番号が存在しているか否かを検索する（ステップＡ４０６）。
【００８４】
対応状況が「未」のバグ番号が存在している場合（ステップＡ４０６でＹＥＳ）、ステップＡ４０２で開かれた第２ソースファイル１２には、改修すべきバグが存在している。この場合、制御部３５は、要バグ対応ボタン４５を、エディタ画面４０に表示させる（ステップＡ４０７）。一方、対応状況が「未」のバグ番号が存在していない場合（ステップＡ４０６でＮＯ）には、エディタ画面４０には、要バグ対応ボタン４５は表示されない。
【００８５】
［（２−３）第２ソースファイルのバグ除去などに際しての動作］
次に、エディタ画面４０で編集されている第２ソースファイル１２に関して、第１ソースファイル１１のバグ一覧を表示する動作と、第２ソースファイル１２のバグ除去の結果を第２バグテーブル１５ａに反映する動作とを、図１２を用いて説明する。
【００８６】
図１２は、第１ソースファイル１１のバグ一覧を表示する動作と、第２ソースファイル１２のバグ除去の結果を第２バグテーブル１５ａに反映する動作とを示すフロー図である。図１２に示されている動作フローは、要バグ対応ボタン４５がエディタ画面４０に表示されている場合に実施される。
【００８７】
図１２に示すように、要バグ対応ボタン４５が改造作業者によって操作された場合（ステップＡ５０１でＹＥＳ）、制御部３５は、対応バグ一覧画面５４を、表示装置６に表示させる（ステップＡ５０２）。より具体的には、制御部３５は、第１バグテーブル１４ａおよび第２バグテーブル１５ａのバグ番号１４ｃ，１５ｅを、バグ番号５４ａに表示させる。また、制御部３５は、対応するバグ内容１３ｃを、バグ内容５４ｂに表示させる。また、制御部３５は、第１バグテーブル１４ａの対応状況１４ｆを、第１対応状況５４ｃに表示させる。また、制御部３５は、第２バグテーブル１５ａの対応状況１５ｆを、第２対応状況５４ｄに表示させる。
【００８８】
次に、制御部３５は、第２対応状況欄５４ｄの表示変更要求があるか否かを判定する（ステップＡ５０３）。改造作業者によって、▼ボタン５４ｆが操作されない場合（ステップＡ５０３でＮＯ）、制御部３５は、ステップＡ５０５に進む。
【００８９】
一方、たとえば、改造作業者が、第２ソースファイル１２のバグを除去した場合、▼ボタン５２ｆを操作することで、対応するバグ番号の第２対応状況欄５２ｄは、「済」に設定される。これにより、第２対応状況欄５２ｄの表示変更要求が、第２バグデータ取得部３４に与えられる（ステップＡ５０３でＹＥＳ）。この場合、第２バグデータ取得部３４は、第２バグテーブル１５ａのうち、対応するバグ番号についての対応状況が「済」となるよう、第２バグデータ１５を変更する（ステップＡ５０４）。
【００９０】
なお、改造作業者が、第２ソースファイル１２のバグ除去が不要であると判断した場合、▼ボタン５２ｆが操作されることで、対応するバグ番号の第２対応状況欄５２ｄは、「非」に設定される。この場合、上記したように、第２対応状況欄５２ｄの表示変更要求が、第２バグデータ取得部３４に与えられる（ステップＡ５０３でＹＥＳ）。この場合、第２バグデータ取得部３４は、第２バグテーブル１５ａのうち、対応するバグ番号についての対応状況が「非」となるよう、第２バグデータ１５を変更する（ステップＡ５０４）。
【００９１】
次に、制御部３５は、詳細ボタン５４ｅが操作されたか否かを判定する（ステップＡ５０５）。詳細ボタン５４ｅが操作された場合（ステップＡ５０５でＹＥＳ）、第２バグデータ取得部３４は、基本バグテーブル１３ａを読み込む。次いで、制御部３５は、操作された詳細ボタン５４ｅに対応するバグ番号について、バグ番号と、バグ内容と、原因と、対応などとを、バグ情報画面５５に表示する（ステップＡ５０６）。一方、ステップＡ５０５にいて、詳細ボタン５４ｅが操作されない場合（ステップＡ５０５でＮＯ）。制御部３５は、ステップＡ５０７に進む。
【００９２】
次に、制御部３５は、対応バグ一覧画面５４を閉じる要求の有無を判定する（ステップＡ５０７）。改造作業者の操作によって、対応バグ一覧画面５４を閉じる要求がだされている場合（ステップＡ５０７でＹＥＳ）、制御部３５は、対応バグ一覧画面５４を閉じさせる（ステップＡ５０８）。この場合において、バグ情報画面５５が表示されている場合には、このバグ情報画面５５も閉じられる。一方、対応バグ一覧画面５４を閉じる要求が出されていない場合（ステップＡ５０７でＮＯ）、制御部３５は、ステップＡ５０３に戻る。
【００９３】
［（２−４）バグ改修作業の補助動作］
次に、第２ソースファイルのバグを除去するための、改造作業者の作業を補助する動作を、図１３を用いて説明する。図１３は、第２ソースファイル１２のバグを除去するための、改造作業者の作業を補助する動作を示すフロー図である。
【００９４】
図１３に示すフローは、エディタ画面４０で第２ソースファイル１２が開かれている場合に行われる。この場合において、エディタ画面４０の差分抽出ボタン４６が、開発作業者によって操作されると（ステップＡ６０１でＹＥＳ）、制御部３５は、上記第２ソースファイル１２に対応する第１ソースファイル１１を、ソースファイル格納部２１から読み込む（ステップＡ６０２）。次に、差分抽出部３７は、上記第２ソースファイル１２と、読み込んだ第１ソースファイル１１との差分を抽出する（ステップＡ６０３）。この場合、差分の抽出は、ｄｉｆｆ機能などを用いて行われる。次に、制御部３５は、抽出した差分情報が示された差分表示画面５６を、表示装置６に表示させる（ステップＡ６０４）。
【００９５】
改造作業者は、この差分情報を基に、エディタ画面４０に表示されている、第２ソースファイル１２のバグを除去する。
【００９６】
［（２−５）第２ソースファイルのチェックイン］
次に、第２ソースファイル１２を、ソースファイル編集管理装置３から、ソースファイル格納部２１へチェックインする動作を、図１４を用いて説明する。図１４は、第２ソースファイル１２を、ソースファイル編集管理装置３から、ソースファイル格納部２１へチェックインする動作のフロー図である。
【００９７】
まず、チェックイン部３２は、エディタ画面４０に第２ソースファイル１２が開かれている状態で、エディタ画面４０のチェックインボタン４４が操作されたか否かを判定する（ステップＡ７０１）。改造作業者によってチェックインボタン４４が操作された場合（ステップＡ７０１でＹＥＳ）、チェックイン部３２は、第２バグテーブル１５ａを参照する（ステップＡ７０２）。次に、チェックイン部３２は、第２バグテーブル１５ａの各バグ番号に関して、「未」の対応状況の有無を判定する（ステップＡ７０３）。
【００９８】
第２バグテーブル１５ａにおいて、「未」の対応状況が存在する場合（ステップＡ７０３でＹＥＳ）、制御部３５は、対応バグ一覧画面５２を表示させる（ステップＡ７０４）。対応バグ一覧画面５２は、対応バグ一覧画面５４と同様に作成される。さらに、対応バグ一覧画面５２には、警告５２ｇが表示されている。本実施の形態では、「対応必要なバグが未対応で残っています。チェックインは行えません。」と表示されている。この場合、チェックイン部３２は、チェックインを行わない。
【００９９】
次に、制御部３５は、第２対応状況欄５２ｄの表示変更要求があるか否かを判定する（ステップＡ７０５）。改造作業者によって、▼ボタン５２ｆが操作されない場合（ステップＡ７０５でＮＯ）、制御部３５は、ステップＡ７０７に進む。
【０１００】
一方、たとえば、改造作業者が、第２ソースファイル１２のバグ除去の結果を反映し忘れていた場合、改造作業者によって▼ボタン５２ｆが操作されることで、対応するバグ番号の第２対応状況欄５２ｄは、「済」に設定される。これにより、第２対応状況欄５２ｄの表示変更要求が、第２バグデータ取得部３４に与えられる（ステップＡ７０５でＹＥＳ）。この場合、第２バグデータ取得部３４は、第２バグテーブル１５ａのうち、対応するバグ番号１５ｅについての対応状況が「済」となるよう、第２バグデータ１５を変更する（ステップＡ７０６）。
【０１０１】
なお、改造作業者が、第２ソースファイル１２のバグ除去が不要であると判断した場合、▼ボタン５２ｆが操作されることで、対応するバグ番号１５ｅの第２対応状況欄５２ｄは、「非」に設定される。この場合、上記と同様に、第２対応状況欄５２ｄの表示変更要求が、第２バグデータ取得部３４に与えられる（ステップＡ７０５でＹＥＳ）。この場合、第２バグデータ取得部３４は、第２バグテーブル１５ａのうち、対応するバグ番号１５ｅについての対応状況１５ｆが「非」となるよう、第２バグデータ１５を変更する（ステップＡ７０６）。
【０１０２】
次に、制御部３５は、詳細ボタン５２ｅが操作されたか否かを判定する（ステップＡ７０７）。詳細ボタン５２ｅが操作された場合（ステップＡ７０７でＹＥＳ）、第２バグデータ取得部３４は、基本バグテーブル１３ａを読み込む。次いで、制御部３５は、操作された詳細ボタン５２ｅに対応するバグ番号について、バグ番号と、バグ内容と、原因と、対応などとを、バグ情報画面５３に表示する（ステップＡ７０８）。一方、ステップＡ７０７において、詳細ボタン５２ｅが操作されない場合（ステップＡ７０７でＮＯ）。制御部３５は、ステップＡ７０９に進む。
【０１０３】
次に、制御部３５は、対応バグ一覧画面５２を閉じる要求の有無を判定する（ステップＡ７０９）。たとえば、第２ソースファイル１２に関して、一部または全部のバグ番号に関するバグの除去をし忘れていた場合、改造作業者は、対応バグ一覧画面５２を閉じる操作を行う。これにより、対応バグ一覧画面５２を閉じる要求が、入力受付部３６を介して、制御部３５へ出力される。この場合（ステップＡ７０９でＹＥＳ）、制御部３５は、対応バグ一覧画面５２を閉じる（ステップＡ７１０）。この場合において、バグ情報画面５３が表示されている場合には、このバグ情報画面５３も閉じられる。一方、対応バグ一覧画面５２を閉じる要求が出されていない場合（ステップＡ７０９でＮＯ）、制御部３５は、ステップＡ７０３に戻る。
【０１０４】
ステップＡ７０３において、第２バグテーブル１５ａの対応状況１５ｆに、「未」のバグ番号が存在しない場合（ステップＡ７０３でＮＯ）、チェックインしようとする第２ソースファイル１２において、全てのバグが除去されている。この場合、チェックイン部３２は、第２ソースファイル１２を、ソースファイル格納部２１へチェックインする（ステップＡ７１１）。その後、第２バグデータ取得部３４は、第１バグデータ１４を、第１バグデータ格納部２３から削除する（ステップＡ７１２）。
【０１０５】
以上説明したように、本実施の形態では、第２ソースファイル１２をチェックインする際に、バグの対応が済んでいなければ、チェックインが行われず、その旨が通知される。よって、改造作業者に、バグ改造作業の継続を促すことができ、その上、第１ソースファイル１１で対応済みのバグの反映漏れが第２ソースファイル１２で生じることを、防止できる。
【０１０６】
また、本実施の形態では、第１バグデータ取得部３３は、第１ソースファイル１１のチェックインの際、第１ソースファイル１１で対応済のバグについて、対応済である旨がバグの対応状況１４ｆで示されるように、第１バグデータ１４を更新する。その結果、本実施の形態では、第１ソースファイル１１で対応済みのバグを、表示装置６で確認できる。この情報を参考にして、第２ソースファイル１２のバグを除去できる。
【０１０７】
また、本実施の形態では、第１バグデータ取得部３３は、第１ソースファイル１１のチェックアウトの際、第１ソースファイル１１で対応が済んでいないバグについて、編集中である旨がバグの対応状況で示されるように、第１バグデータ１４を更新する。これにより、第１ソースファイル１１で編集中のバグがどれであるかを、表示装置６などで確認できる。
【０１０８】
また、本実施の形態では、制御部３５は、詳細ボタン５２ｅ、５４ｅが操作された場合に、対応するバグの詳細を表示させる。これにより、必要に応じてバグの詳細をチェックできる。よって、改造作業者は、第２ソースファイル１２のバグ除去作業の指標を得ることができ、バグ除去作業を、より迅速に行うことができる。
【０１０９】
また、本実施の形態では、第２バグデータ取得部３４は、第２ソースファイル１２で対応済のバグについて、対応済である旨が、第２ソースファイル１２におけるバグの対応状況１５ｆに含まれるように、第２バグデータ１５を更新する。このような構成によって、第２ソースファイル１２のバグ除去作業の進捗状況を、チェックイン部３２が把握することができる。
【０１１０】
また、本実施の形態では、第１バグデータ取得部３３は、第２ソースファイル１２のチェックインの際、第１バグデータ１４を削除する。これにより、用が済んだデータを、データベース２から削除できる。
【０１１１】
また、本実施の形態では、第１ソースファイル１１と第２ソースファイル１２との差分が、差分抽出部３７によって抽出される。これにより、第２ソースファイル１２のバグを除去する際に、バグ除去箇所・内容の目安を把握することができる。また、差分抽出に際して、編集中の第２ソースファイル１２をチェックアウトする必要がない。
【０１１２】
［プログラム］
本実施の形態におけるプログラムは、コンピュータに、図８に示すステップＡ１０１、Ａ１０３〜Ａ１０７、図９に示すステップＡ２０１、Ａ２０３〜Ａ２０５、図１０に示すステップＡ３０１、Ａ３０３〜Ａ３０６、図１１に示すステップＡ４０１〜Ａ４０６、図１２に示すステップＡ５０１、Ａ５０３〜Ａ５０５、Ａ５０７、図１３に示すステップＡ６０１〜Ａ６０３、および、図１４に示すステップＡ７０１〜Ａ７０３、Ａ７０５〜Ａ７０７、Ａ７０９、Ａ７１１、Ａ７１２を実行させるプログラムであればよい。
【０１１３】
このプログラムをコンピュータにインストールし、実行することによって、本実施の形態におけるソースファイル編集管理装置３、およびソースファイル編集管理方法を実現することができる。この場合、コンピュータのＣＰＵ（Central Processing Unit）は、チェックアウト部３１、チェックイン部３２、第１バグデータ取得部３３、第２バグデータ取得部３４、制御部３５、入力受付部３６、および差分抽出部３７として機能し、処理を行なう。
【０１１４】
ここで、本実施の形態におけるプログラムを実行することによって、ソースファイル編集管理装置３を実現するコンピュータについて、図１５を用いて説明する。図１５は、本発明の実施の形態におけるソースファイル編集管理装置３を実現するコンピュータ２１０の一例を示すブロック図である。
【０１１５】
図１５に示すように、コンピュータ２１０は、ＣＰＵ２１１と、メインメモリ２１２と、記憶装置２１３と、入力インターフェイス２１４と、表示コントローラ２１５と、データリーダ／ライタ２１６と、通信インターフェイス２１７とを備える。これらの各部は、バス２２１を介して、互いにデータ通信可能に接続される。
【０１１６】
ＣＰＵ２１１は、記憶装置２１３に格納された、本実施の形態におけるプログラム（コード）をメインメモリ２１２に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ２１２は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）等の揮発性の記憶装置である。
【０１１７】
また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体２２０に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス２１７を介して接続されたインターネット上で流通するものであってもよい。
【０１１８】
また、記憶装置２１３の具体例としては、ハードディスクの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス２１４は、ＣＰＵ２１１と、キーボード及びマウスといった入力機器２１８との間のデータ伝送を仲介する。表示コントローラ２１５は、ディスプレイ装置２１９と接続され、ディスプレイ装置２１９での表示を制御する。
【０１１９】
データリーダ／ライタ２１６は、ＣＰＵ２１１と記録媒体２２０との間のデータ伝送を仲介し、記録媒体２２０からのプログラムの読み出し、及びコンピュータ２１０における処理結果の記録媒体２２０への書き込みを実行する。通信インターフェイス２１７は、ＣＰＵ２１１と、他のコンピュータとの間のデータ伝送を仲介する。
【０１２０】
また、記録媒体２２０の具体例としては、ＣＦ（Compact Flash（登録商標））及びＳＤ（Secure Digital）等の汎用的な半導体記憶デバイス、フレキシブルディスク（Flexible Disk）等の磁気記憶媒体、又はＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの光学記憶媒体が挙げられる。
【０１２１】
［変形例］
本実施の形態では、ソースファイル編集管理装置３は、ソースファイルの編集が可能である構成を説明したけれども、この通りでなくてもよい。たとえば、ソースファイルを検索する部分、および、ソースファイルを編集する部分は、他の一般のエディタで構成されてもよい。これにより、一般的に自分好みのファイルエディタ使用したがる傾向が強い、作業者に対して、本発明の特徴を提供しつつ、自分好みのエディタを、提供することができる。この場合、たとえば、チェックアウト部３１、チェックイン部３２、第１バグデータ取得部３３、第２バグデータ取得部３４、制御部３５、入力受付部３６、および差分抽出部３７を、「専用エディタ管理部」として構成する。そして、ソースファイルを検索する部分、および、ソースファイルを編集する部分を、専用エディタ管理部と協働して利用可能な構成とする。これにより、一般的なエディタを利用しつつ、本発明の目的とする機能を実現することができる。なお、上記エディタと、上記専用エディタ管理部との間で、編集するファイルの情報を受け渡しすることが必要となる。この場合、パーソナルコンピュータのＯＳ（Operating System）で実現されているデータ連携機能を用いることで、上記した、受け渡しが可能となる。
【０１２２】
上述した実施の形態の一部又は全部は、以下に記載する（付記１）〜（付記２１）によって表現することができるが、以下の記載に限定されるものではない。
【０１２３】
（付記１）
ベースとなるソースファイルが格納された格納部にアクセスし、ベースとなる前記ソースファイルを、互いに独立する第１ソースファイルおよび第２ソースファイルとしてチェックアウトする、チェックアウト部と、
前記第１ソースファイルに関連するバグの対応状況を特定する第１バグデータを取得する、第１バグデータ取得部と、
前記第２ソースファイルの編集時に、前記第１バグデータで特定される前記バグの対応状況を表示させる、制御部と、
前記第１ソースファイルで対応済の前記バグについて、前記第２ソースファイルで対応済の場合には、前記格納部へ前記第２ソースファイルをチェックインし、前記第１ソースファイルで対応済の前記バグについて、前記第２ソースファイルで対応が済んでいない場合には、前記格納部へ前記第２ソースファイルをチェックインしない、チェックイン部と、
を備えていることを特徴とする、ソースファイル編集管理装置。
【０１２４】
（付記２）
前記チェックイン部は、前記第１ソースファイルをチェックインし、
前記第１バグデータ取得部は、前記第１ソースファイルのチェックインの際、前記第１ソースファイルで対応済の前記バグについて、対応済である旨が前記バグの対応状況で示されるように、前記第１バグデータを更新する、付記１に記載の、ソースファイル編集管理装置。
【０１２５】
（付記３）
前記第１バグデータ取得部は、前記第１ソースファイルのチェックアウトの際、前記第１ソースファイルで対応が済んでいない前記バグについて、編集中である旨が前記バグの対応状況で示されるように、前記第１バグデータを更新する、付記１または付記２に記載の、ソースファイル編集管理装置。
【０１２６】
（付記４）
前記制御部は、前記バグの詳細を表示する要求が出力された場合に、前記バグの詳細を表示させる、付記１〜付記３のいずれか１項に記載のソースファイル編集管理装置。
【０１２７】
（付記５）
前記第２ソースファイルにおける前記バグの対応状況を特定する第２バグデータを取得する、第２バグデータ取得部、をさらに備え、
前記第２バグデータ取得部は、前記第２ソースファイルで対応済のバグについて、対応済である旨が前記第２ソースファイルにおける前記バグの対応状況に含まれるように、前記第２バグデータを更新する、付記１〜付記４のいずれか１項に記載のソースファイル編集管理装置。
【０１２８】
（付記６）
前記第２バグデータ取得部は、前記第２ソースファイルのチェックインの際、前記第１バグデータを削除する、付記５に記載のソースファイル編集管理装置。
【０１２９】
（付記７）
前記第１ソースファイルと前記第２ソースファイルとの差分を抽出する、差分抽出部、
をさらに備えている、付記１〜付記６のいずれか１項に記載のソースファイル編集管理装置。
【０１３０】
（付記８）
（ａ）ベースとなるソースファイルが格納された格納部にアクセスし、ベースとなる前記ソースファイルを、互いに独立する第１ソースファイルおよび第２ソースファイルとしてチェックアウトする、ステップと、
（ｂ）前記第１ソースファイルに関連するバグの対応状況を特定する第１バグデータを取得する、ステップと、
（ｃ）前記第２ソースファイルの編集時に、前記第１バグデータで特定される前記バグの対応状況を表示させる、ステップと、
（ｄ）前記第１ソースファイルで対応済の前記バグについて、前記第２ソースファイルで対応済の場合には、前記格納部へ前記第２ソースファイルをチェックインし、前記第１ソースファイルで対応済の前記バグについて、前記第２ソースファイルで対応が済んでいない場合には、前記格納部へ前記第２ソースファイルをチェックインしない、ステップと、
を有していることを特徴とする、ソースファイル編集管理方法。
【０１３１】
（付記９）
（ｅ）前記第１ソースファイルのチェックインの際、前記第１ソースファイルで対応済の前記バグについて、対応済である旨が前記バグの対応状況で示されるように、前記第１バグデータを更新する、ステップをさらに有する、付記８に記載の、ソースファイル編集管理方法。
【０１３２】
（付記１０）
（ｆ）前記第１ソースファイルのチェックアウトの際、前記第１ソースファイルで対応が済んでいない前記バグについて、編集中である旨が前記バグの対応状況で示されるように、前記第１バグデータを更新する、ステップをさらに有する、付記８または付記９または請求項２に記載の、ソースファイル編集管理方法。
【０１３３】
（付記１１）
（ｇ）前記バグの詳細を表示する要求が出力された場合に、前記バグの詳細を表示させる、ステップをさらに有する、付記８〜付記１０のいずれか１項に記載のソースファイル編集管理方法。
【０１３４】
（付記１２）
（ｈ）前記第２ソースファイルにおける前記バグの対応状況を特定する第２バグデータを取得する、ステップと、
（ｉ）前記第２ソースファイルで対応済のバグについて、対応済である旨が前記第２ソースファイルにおける前記バグの対応状況に含まれるように、前記第２バグデータを更新する、ステップと、をさらに有する、付記８〜付記１１のいずれか１項に記載のファイル編集方法。
【０１３５】
（付記１３）
（ｊ）前記第２ソースファイルのチェックインの際、前記第１バグデータを削除する、ステップをさらに有する、付記８〜付記１２のいずれか１項に記載のソースファイル編集管理方法。
【０１３６】
（付記１４）
（ｋ）前記第１ソースファイルと前記第２ソースファイルとの差分を抽出する、ステップをさらに備えている、付記８〜付記１３のいずれか１項に記載のソースファイル編集管理方法。
【０１３７】
（付記１５）
コンピュータに、
（ａ）ベースとなるソースファイルが格納された格納部にアクセスし、ベースとなる前記ソースファイルを、互いに独立する第１ソースファイルおよび第２ソースファイルとしてチェックアウトする、ステップと、
（ｂ）前記第１ソースファイルに関連するバグの対応状況を特定する第１バグデータを取得する、ステップと、
（ｃ）前記第２ソースファイルの編集時に、前記第１バグデータで特定される前記バグの対応状況を表示させる、ステップと、
（ｄ）前記第１ソースファイルで対応済の前記バグについて、前記第２ソースファイルで対応済の場合には、前記格納部へ前記第２ソースファイルをチェックインし、前記第１ソースファイルで対応済の前記バグについて、前記第２ソースファイルで対応が済んでいない場合には、前記格納部へ前記第２ソースファイルをチェックインしない、ステップと、
を実行させる、プログラム。
【０１３８】
（付記１６）
（ｅ）前記第１ソースファイルのチェックインの際、前記第１ソースファイルで対応済の前記バグについて、対応済である旨が前記バグの対応状況で示されるように、前記第１バグデータを更新する、ステップをさらに有する、付記１５に記載の、プログラム。
【０１３９】
（付記１７）
（ｆ）前記第１ソースファイルのチェックアウトの際、前記第１ソースファイルで対応が済んでいない前記バグについて、編集中である旨が前記バグの対応状況で示されるように、前記第１バグデータを更新する、ステップをさらに有する、付記１５または付記１６に記載の、プログラム。
【０１４０】
（付記１８）
（ｇ）前記バグの詳細を表示する要求が出力された場合に、前記バグの詳細を表示させる、ステップをさらに有する、付記１５〜付記１７のいずれか１項に記載のプログラム。
【０１４１】
（付記１９）
（ｈ）前記第２ソースファイルにおける前記バグの対応状況を特定する第２バグデータを取得する、ステップと、
（ｉ）前記第２ソースファイルで対応済のバグについて、対応済である旨が前記第２ソースファイルにおける前記バグの対応状況に含まれるように、前記第２バグデータを更新する、ステップと、をさらに有する、付記１５〜付記１８のいずれか１項に記載のプログラム。
【０１４２】
（付記２０）
（ｊ）前記第２ソースファイルのチェックインの際、前記第１バグデータを削除する、ステップをさらに有する、付記１５〜付記１９のいずれか１項に記載のプログラム。
【０１４３】
（付記２１）
（ｋ）前記第１ソースファイルと前記第２ソースファイルとの差分を抽出する、ステップをさらに備えている、付記１５〜付記２０のいずれか１項に記載のプログラム。
【産業上の利用可能性】
【０１４４】
本発明は、ソースファイルのバグについて管理するための、ソースファイル編集管理装置、ソースファイル編集管理方法、およびプログラムに適用することができる。
【符号の説明】
【０１４５】
３  ソースファイル編集管理装置
１０  ベースとなるソースファイル
１１  第１ソースファイル
１２  第２ソースファイル
１４  第１バグデータ
２１  格納部
３１  チェックアウト部
３２  チェックイン部
３３  第１バグデータ取得部
３４  第２バグデータ取得部
３５  制御部
３７  差分抽出部
２１０  コンピュータ
【図１】
0005565885.tif 000002
【図２】
0005565885.tif 000003
【図３】
0005565885.tif 000004
【図４】
0005565885.tif 000005
【図５】
0005565885.tif 000006
【図６】
0005565885.tif 000007
【図７】
0005565885.tif 000008
【図８】
0005565885.tif 000009
【図９】
0005565885.tif 000010
【図１０】
0005565885.tif 000011
【図１１】
0005565885.tif 000012
【図１２】
0005565885.tif 000013
【図１３】
0005565885.tif 000014
【図１４】
0005565885.tif 000015
【図１５】
0005565885.tif 000016