(57)【要約】  【課題】複数バージョンのソースプログラムに対する修正を、簡単な操作で効率的に行う。  【解決手段】ソースプログラム管理装置は、複数行のコードを含むソースプログラムと、前記ソースプログラムの行ごとに、当該行のコードが適用される前記ソースプログラムのバージョンを示す適用バージョン情報とを格納する記憶部と、前記ソースプログラムのいずれかの行のコードの修正を受け付けると、前記記憶部に格納されている対応する行のコードを、前記受け付けたコードで修正する修正部とを有する。【選択図】図１
2017199191.tif 000002
【特許請求の範囲】
【請求項１】
複数行のコードを含むソースプログラムと、前記ソースプログラムの行ごとに、当該行のコードが適用される前記ソースプログラムのバージョンを示す適用バージョン情報とを格納する記憶部と、
前記ソースプログラムのいずれかの行のコードの修正を受け付けると、前記記憶部に格納されている対応する行のコードを、前記受け付けたコードで修正する修正部と
を有するソースプログラム管理装置。
【請求項２】
請求項１に記載のソースプログラム管理装置であって、
前記修正部は、前記ソースプログラムへの行のコードの追加とともに当該行についてのバージョンとして全バージョン又は一部のバージョンを受け付けると、前記記憶部に格納されているソースプログラムに、前記受け付けたコードを追加し、当該追加した行の前記適用バージョン情報に前記受け付けた全バージョン又は一部のバージョンを設定する
ソースプログラム管理装置。
【請求項３】
請求項１に記載のソースプログラム管理装置であって、
前記修正部は、前記ソースプログラムのいずれかの行のコードについてバージョンの修正を受け付けると、前記記憶部に格納されている対応する行の前記適用バージョン情報に、前記受け付けたバージョンを設定する
ソースプログラム管理装置。
【請求項４】
請求項２に記載のソースプログラム管理装置であって、
前記修正部は、前記ソースプログラムへの行のコードの追加とともに指定バージョンを受け付けると、前記記憶部に格納されているソースプログラムに、前記受け付けたコードを追加し、当該追加した行の前記適用バージョン情報に、前記受け付けた指定バージョンを設定する
ソースプログラム管理装置。
【請求項５】
請求項３に記載のソースプログラム管理装置であって、
前記修正部は、前記ソースプログラムのいずれかの行のコードの削除とともに指定バージョンを受け付けると、前記記憶部に格納されている対応する行の前記適用バージョン情報から、前記受け付けた指定バージョンを解除する
ソースプログラム管理装置。
【請求項６】
請求項１に記載のソースプログラム管理装置であって、
前記修正部は、前記ソースプログラムの各行を表示部に表示させ、前記ソースプログラムの各行のコードの表示態様を、当該各行の前記適用バージョン情報が示すバージョンに基づいて決定する
ソースプログラム管理装置。
【請求項７】
請求項１に記載のソースプログラム管理装置であって、
前記記憶部に格納されている第１のソースプログラムと異なるバージョンの第２のソースプログラムを受け付ける登録部を有し、
前記登録部は、前記第２のソースプログラムとともに指定バージョンを受け付けると、前記第１のソースプログラムと前記第２のソースプログラムとを比較し、内容が一致する行のコードの前記適用バージョン情報に、前記受け付けた指定バージョンを設定し、内容が一致しない行のコードを前記第１のソースプログラムに追加し、当該追加した行の前記適用バージョン情報に、前記受け付けた指定バージョンを設定する
ソースプログラム管理装置。
【請求項８】
ソースプログラム管理装置のソースプログラム管理方法であって、
前記ソースプログラム管理装置は、記憶部と、制御部とを有し、
前記記憶部は、複数行のコードを含むソースプログラムと、前記ソースプログラムの行ごとに、当該行のコードが適用される前記ソースプログラムのバージョンを示す適用バージョン情報とを格納し、
前記制御部は、前記ソースプログラムのいずれかの行のコードの修正を受け付けると、前記記憶部に格納されている対応する行のコードを、前記受け付けたコードで修正する
ソースプログラム管理方法。
【請求項９】
コンピューターをソースプログラム管理装置として機能させるプログラムであって、
複数行のコードを含むソースプログラムと、前記ソースプログラムの行ごとに、当該行のコードが適用される前記ソースプログラムのバージョンを示す適用バージョン情報とを格納する記憶部と、
前記ソースプログラムのいずれかの行のコードの修正を受け付けると、前記記憶部に格納されている対応する行のコードを、前記受け付けたコードで修正する修正部として
前記コンピューターを機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソースプログラム管理装置、ソースプログラム管理方法、及びプログラムに関する。
【背景技術】
【０００２】
ソフトウェア開発などのプロジェクトでは、ソースプログラムを管理するためのバージョン管理システムが利用されることがある。このバージョン管理システムは、例えば、複数バージョンのソースプログラムをバージョン別にリポジトリと呼ばれるデータベースに格納して管理する。また、このバージョン管理システムは、例えば、各バージョンのソースプログラムの更新の経緯を表示したり、異なるバージョン間のソースプログラムの相違点を表示したりすることができる。
【０００３】
特許文献１には、履歴管理システムの内部で管理される履歴情報と修正されたソースコード内のコメントに記載された履歴情報を整合させ、専用の表示ツールを使用することなく修正履歴とソースコードを表示するための、ソースコード履歴管理装置が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２６８７７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記のような従来のバージョン管理システムは、次のような問題を有する。例えば、最新バージョンのソースプログラムと過去の複数のバージョンのソースプログラムのいずれにも同様の修正を加える場合、ユーザーは修正対象の各バージョンのソースプログラムのファイルを開いて個別に修正する必要があり、手間が掛かる。
【０００６】
本発明の目的は、複数バージョンのソースプログラムに対する修正を、簡単な操作で効率的に行うことにある。
【課題を解決するための手段】
【０００７】
本願は、上記課題の少なくとも一部を解決する手段を複数含んでいるが、その例を挙げるならば、以下のとおりである。
【０００８】
上記の課題を解決する本発明の一態様は、ソースプログラム管理装置であって、複数行のコードを含むソースプログラムと、前記ソースプログラムの行ごとに、当該行のコードが適用される前記ソースプログラムのバージョンを示す適用バージョン情報とを格納する記憶部と、前記ソースプログラムのいずれかの行のコードの修正を受け付けると、前記記憶部に格納されている対応する行のコードを、前記受け付けたコードで修正する修正部と
を有する。
【０００９】
前記修正部は、前記ソースプログラムへの行のコードの追加とともに当該行についてのバージョンとして全バージョン又は一部のバージョンを受け付けると、前記記憶部に格納されているソースプログラムに、前記受け付けたコードを追加し、当該追加した行の前記適用バージョン情報に前記受け付けた全バージョン又は一部のバージョンを設定してもよい。
【００１０】
前記修正部は、前記ソースプログラムのいずれかの行のコードについてバージョンの修正を受け付けると、前記記憶部に格納されている対応する行の前記適用バージョン情報に、前記受け付けたバージョンを設定してもよい。
【００１１】
前記修正部は、前記ソースプログラムへの行のコードの追加とともに指定バージョンを受け付けると、前記記憶部に格納されているソースプログラムに、前記受け付けたコードを追加し、当該追加した行の前記適用バージョン情報に、前記受け付けた指定バージョンを設定してもよい。
【００１２】
前記修正部は、前記ソースプログラムのいずれかの行のコードの削除とともに指定バージョンを受け付けると、前記記憶部に格納されている対応する行の前記適用バージョン情報から、前記受け付けた指定バージョンを解除してもよい。
【００１３】
前記修正部は、前記ソースプログラムの各行を表示部に表示させ、前記ソースプログラムの各行のコードの表示態様を、当該各行の前記適用バージョン情報が示すバージョンに基づいて決定してもよい。
【００１４】
前記ソースプログラム管理装置は、前記記憶部に格納されている第１のソースプログラムと異なるバージョンの第２のソースプログラムを受け付ける登録部を有してもよい。前記登録部は、前記第２のソースプログラムとともに指定バージョンを受け付けると、前記第１のソースプログラムと前記第２のソースプログラムとを比較し、内容が一致する行のコードの前記適用バージョン情報に、前記受け付けた指定バージョンを設定し、内容が一致しない行のコードを前記第１のソースプログラムに追加し、当該追加した行の前記適用バージョン情報に、前記受け付けた指定バージョンを設定してもよい。
【００１５】
上記の課題を解決する本発明の他の態様は、ソースプログラム管理装置のソースプログラム管理方法であって、前記ソースプログラム管理装置は、記憶部と、制御部とを有し、前記記憶部は、複数行のコードを含むソースプログラムと、前記ソースプログラムの行ごとに、当該行のコードが適用される前記ソースプログラムのバージョンを示す適用バージョン情報とを格納し、前記制御部は、前記ソースプログラムのいずれかの行のコードの修正を受け付けると、前記記憶部に格納されている対応する行のコードを、前記受け付けたコードで修正する。
【００１６】
上記の課題を解決する本発明のさらに他の態様は、コンピューターをソースプログラム管理装置として機能させるプログラムであって、複数行のコードを含むソースプログラムと、前記ソースプログラムの行ごとに、当該行のコードが適用される前記ソースプログラムのバージョンを示す適用バージョン情報とを格納する記憶部と、前記ソースプログラムのいずれかの行のコードの修正を受け付けると、前記記憶部に格納されている対応する行のコードを、前記受け付けたコードで修正する修正部として前記コンピューターを機能させる。
【発明の効果】
【００１７】
本発明によれば、複数バージョンのソースプログラムに対する修正を、簡単な操作で効率的に行うことができる。
【００１８】
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施形態に係るソースプログラム管理装置の機能構成の一例を示すブロック図である。
【図２】ソースプログラムテーブルのデータ構造の一例を示す図である。
【図３】ソースプログラム管理装置のハードウェア構成の一例を示すブロック図である。
【図４】操作画面の一例を示す図である。
【図５】登録処理の一例を示すフローチャートである。
【図６】検索処理の一例を示すフローチャートである。
【図７】各行のコード及び適用バージョンの表示例を示す図である。
【図８】修正処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００２０】
以下、本発明の実施形態について、図面を参照して説明する。
【００２１】
図１は、本発明の実施形態に係るソースプログラム管理装置の機能構成の一例を示すブロック図である。ソースプログラム管理装置１は、例えば、ソフトウェア開発に従事する１人以上のユーザーにより使用される。ソースプログラム管理装置１は、複数バージョンのソースプログラム（ソースコードと呼んでもよい）を管理する。管理されるソースプログラムの言語やフォーマットは、特に限定されず、例えば、プログラミング言語、マークアップ言語、スクリプト言語など様々なものを含む。
【００２２】
ソースプログラム管理装置１は、制御部１０と、記憶部２０と、表示部３０と、入力部４０と、通信部５０とを含む。制御部１０は、ソースプログラム管理装置１の動作を統合的に制御する。記憶部２０は、制御部１０がその処理に使用するデータ、プログラム等の情報を格納する。表示部３０は、操作画面などの情報を表示する。入力部４０は、ユーザー操作の入力を受け付ける。通信部５０は、ＬＡＮ（Local Area Network）などの通信ネットワークを介して、ＰＣ（Personal Computer）等の操作端末と情報を送受信する。
【００２３】
記憶部２０は、ソースプログラムを管理するためのソースプログラムテーブル２００（以下、単に「テーブル２００」ともいう）を格納する。
【００２４】
図２は、ソースプログラムテーブルのデータ構造の一例を示す図である。テーブル２００は、複数バージョンのソースプログラムを、コード内容が共通する行を集約して、格納することができる。そのため、テーブル２００は、複数バージョンのソースプログラムのコードを行単位のレコードで管理する。各レコードは、ファイル名２１０と、行番号２２０と、コード２３０と、適用バージョン２４０（本発明の「適用バージョン情報」に相当する）とを含む。
【００２５】
ファイル名２１０は、ソースプログラムのファイル名である。本実施形態では、ファイル名２１０によってソースプログラムのバージョンは区別されない。すなわち、同じソースプログラムは、全バージョンにおいて共通のファイル名が用いられる。もちろん、ソースプログラムは、ファイル名に限らず、その他の識別子を用いて区別されてもよい。
【００２６】
行番号２２０は、コード２３０の行番号である。同じファイル名２１０が関連付けられた各コード２３０（すなわち、同じソースプログラムを構成する各コード）に対して、上から順に連続番号（例えば、１から開始する自然数）が付与される。
【００２７】
コード２３０は、ソースプログラムを構成する１行のコードである。
【００２８】
適用バージョン２４０は、コード２３０が適用される（あるいは、使用される）バージョンを示す情報である。適用バージョン２４０は、登録された各バージョン２４１についての適用の有無を示す適用フラグ２４２を含む。以下では、適用フラグ２４２の値「１」は、対応するバージョン２４１への適用を示し、適用フラグ２４２の値「０」は、対応するバージョン２４１への非適用を示す。「‐」は、バージョンが登録されていないことを示す。また、以下では、バージョン２４１は、１から開始する自然数を使用する。
【００２９】
図１の説明に戻る。制御部１０は、操作受付部１１と、登録部１２と、検索部１３と、修正部１４とを含む。
【００３０】
操作受付部１１は、ソースプログラムの登録、検索、修正等の操作をユーザーから受け付ける操作画面を、表示部３０に出力する。また、操作受付部１１は、入力部４０を介して、ユーザー操作を受け付ける。操作受付部１１は、通信部５０を介して通信可能な操作端末に操作画面を出力し、当該操作端末からユーザー操作を受け付けてもよい。本実施形態では、ユーザーは、入力部４０を操作するものとする。
【００３１】
登録部１２は、ソースプログラムの登録処理を実行する。例えば、登録部１２は、操作受付部１１を介して、登録対象のソースプログラムをそのファイル名とともに受け付ける。登録部１２の処理は、後に詳述する。
【００３２】
検索部１３は、ソースプログラムの検索処理を実行する。例えば、検索部１３は、操作受付部１１を介して、検索キー（例えば、ファイル名のみ、又はファイル名と１つのバージョン）を受け付け、当該検索キーを用いてテーブル２００からソースプログラムを抽出する。検索部１３の処理は、後に詳述する。
【００３３】
修正部１４は、ソースプログラムの修正処理を実行する。例えば、修正部１４は、操作受付部１１を介して、行単位でコードの修正を受け付け、テーブル２００に反映する。修正部１４の処理は、後に詳述する。
【００３４】
図３は、ソースプログラム管理装置のハードウェア構成の一例を示すブロック図である。ソースプログラム管理装置１は、例えば、図３に示すようなコンピューター９０により実現することができる。コンピューター９０は、例えば、パーソナルコンピューターであるが、これに限らず、サーバーコンピューター、スマートフォン、タブレットコンピューター等の電子機器であってもよい。また、ソースプログラム管理装置１は、複数のコンピューターにより構成されてもよい。
【００３５】
コンピューター９０は、例えば、演算装置９１と、主記憶装置９２と、外部記憶装置９３と、出力装置９４と、入力装置９５と、通信装置９６とを含む。
【００３６】
演算装置９１は、例えば、ＣＰＵ（Central Processing Unit）などの装置である。主記憶装置９２は、例えば、ＲＡＭ（Random Access Memory）などの記憶装置である。外部記憶装置９３は、例えば、ハードディスクやＳＳＤ（Solid State Drive）、あるいはフラッシュＲＯＭ（Read Only Memory）などの記憶装置である。
【００３７】
出力装置９４は、ディスプレイ、プリンター、スピーカーなどを含む、出力情報を出力する装置である。入力装置９５は、キーボードやマウスなどのポインティングデバイス、タッチパネル、マイクロフォンなどを含む、入力情報を受け付ける装置である。通信装置９６は、ネットワークケーブルを介して有線通信を行う通信装置、アンテナを介して無線通信を行う通信装置を含む、情報を送受信する装置である。
【００３８】
制御部１０は、例えば、演算装置９１が所定のアプリケーションプログラムを実行することによって実現することができる。このアプリケーションプログラムは、例えば、主記憶装置９２又は外部記憶装置９３内に記憶され、実行にあたって主記憶装置９２上にロードされ、演算装置９１によって実行される。記憶部２０は、例えば、主記憶装置９２及び外部記憶装置９３の少なくとも一方によって実現される。記憶部２０又はその一部分は、例えば、通信装置９６を介して接続されるネットワーク上のストレージにより実現されてもよい。入力部４０は、例えば、入力装置９５によって実現される。表示部３０は、例えば、出力装置９４によって実現される。通信部５０は、例えば、通信装置９６によって実現される。
【００３９】
図４は、操作画面の一例を示す図である。操作受付部１１は、例えば、上記の所定のアプリケーションプログラムが起動された場合に、操作画面３００を表示部３０に表示させる。
【００４０】
操作画面３００は、ソースプログラムの登録、検索、修正などの各種操作を受け付けることができる。操作画面３００は、ファイル名欄３１０と、バージョン欄３２０と、登録ボタン３３０と、検索ボタン３４０と、コード編集欄３５０と、適用バージョン欄３６０とを含む。
【００４１】
ファイル名欄３１０は、登録対象のソースプログラムのファイル名、又は、検索対象のソースプログラムのファイル名を設定するための欄である。ファイル名欄３１０で設定されるファイル名により特定されるファイルを、以下、「指定ファイル」という。
【００４２】
バージョン欄３２０は、登録対象のソースプログラムのバージョン、又は、検索対象のソースプログラムのバージョンを設定するための欄である。バージョン欄３２０で設定されるバージョンを、以下、「指定バージョン」という。
【００４３】
登録ボタン３３０は、ソースプログラムの登録を指示するためのボタンである。
【００４４】
検索ボタン３４０は、ソースプログラムの検索を指示するためのボタンである。
【００４５】
コード編集欄３５０は、登録対象のソースプログラムのコード、又は、検索されたソースプログラムのコードを、ユーザー操作によって編集可能に表示する欄である。
【００４６】
適用バージョン欄３６０は、コード編集欄３５０に表示されているソースプログラムの各行のコードについて、各バージョン３６１についての適用の有無を示す適用フラグ３６２を編集可能に表示する欄である。
【００４７】
図５は、登録処理の一例を示すフローチャートである。例えば、登録部１２は、操作画面３００の登録ボタン３３０が操作（例えば、クリック）された場合に、本フローチャートの処理を開始する。
【００４８】
なお、本実施形態では、新しいソースプログラムを登録する場合、ユーザーは、操作画面３００のファイル名欄３１０に、当該ソースプログラムのファイル名を設定する（バージョン欄３２０にはバージョンを設定しないでよい）。登録済のソースプログラムを置き換える場合、ユーザーは、ファイル名欄３１０に、当該ソースプログラムのファイル名を設定する（バージョン欄３２０にはバージョンを設定しないでよい）。登録済のソースプログラムの新しいバージョンを追加する場合、ユーザーは、ファイル名欄３１０に、当該ソースプログラムのファイル名を設定するとともに、バージョン欄３２０に、新しいバージョンを設定する。
【００４９】
また、本実施形態では、新しいソースプログラムを登録する場合、ユーザーは、コード編集欄３５０に、当該ソースプログラムの各行のコードを設定する（適用バージョン欄３６０には設定しないでよい）。登録済のソースプログラムを置き換える場合、ユーザーは、コード編集欄３５０に、新しいソースプログラムの各行のコードを設定するとともに、バージョン３６１と適用フラグ３６２を設定する。登録済のソースプログラムの新しいバージョンを追加する場合、ユーザーは、コード編集欄３５０に、新しいバージョンのソースプログラムの各行のコードを設定する（適用バージョン欄３６０には設定しないでよい）。
【００５０】
本フローチャートが開始されると、登録部１２は、指定ファイルが登録済か否かを判定する（ステップＳ１０）。例えば、登録部１２は、ファイル名欄３１０からファイル名を取得する。そして、登録部１２は、取得したファイル名に対応するファイル名２１０がテーブル２００に格納されているか否か判定する。
【００５１】
指定ファイルが登録済でないと判定した場合（ステップＳ１０で「Ｎ」）、登録部１２は、指定ファイルのコードをテーブル２００に登録する（ステップＳ１１）。例えば、登録部１２は、コード編集欄３５０からソースプログラムの各行のコードを取得する。そして、登録部１２は、取得した各行のコードに対応するレコードを、テーブル２００に追加する。登録部１２は、追加した各レコードのファイル名２１０に、ステップＳ１０で取得したファイル名を設定する。また、登録部１２は、追加した各レコードのコード２３０に、取得した各行のコードを設定する。また、登録部１２は、追加した各レコードの行番号２２０に、上から順に連続番号を設定する。
【００５２】
また、登録部１２は、バージョン「１」を設定する（ステップＳ１２）。例えば、登録部１２は、適用バージョン２４０のバージョン２４１に「１」を登録する。また、登録部１２は、ステップＳ１１で追加した各レコードについて、バージョン「１」と対応する適用フラグ２４２に「１」を設定する。そして、登録部１２は、本フローチャートの処理を終了する。このようにして、新しいソースプログラム（バージョン「１」）が、テーブル２００に登録される。なお、新しいソースプログラムを登録する場合、登録部１２は、バージョン「１」以外の他のバージョンの指定を受け付けて、設定してもよい。
【００５３】
指定ファイルが登録済であると判定した場合（ステップＳ１０で「Ｙ」）、登録部１２は、バージョンが指定されたか否かを判定する（ステップＳ２０）。例えば、登録部１２は、バージョン欄３２０から指定バージョンを取得する。そして、登録部１２は、指定バージョンを取得できたか否かを判定する。
【００５４】
バージョンが指定されていないと判定した場合（ステップＳ２０で「Ｎ」）、登録部１２は、指定ファイルのコードをテーブル２００から削除する（ステップＳ２１）。例えば、登録部１２は、ステップＳ１０で取得したファイル名に対応するファイル名２１０を有するレコードを、テーブル２００から削除する。
【００５５】
また、登録部１２は、指定ファイルのコードをテーブル２００に登録する（ステップＳ２２）。ステップＳ２２の処理は、ステップＳ１１と同様である。
【００５６】
また、登録部１２は、指定された適用バージョンを設定する（ステップＳ２３）。例えば、登録部１２は、適用バージョン欄３６０からバージョン３６１を取得し、テーブル２００のバージョン２４１に設定する。また、登録部１２は、適用バージョン欄３６０から各行のコードの適用フラグ３６２を取得し、ステップＳ２２で追加した各レコードの適用フラグ２４２に設定する。そして、登録部１２は、本フローチャートの処理を終了する。このようにして、テーブル２００に登録済のソースプログラムが、別の１つ以上のバージョンのソースプログラムに置き換えられる。
【００５７】
バージョンが指定されていると判定した場合（ステップＳ２０で「Ｙ」）、登録部１２は、指定ファイルのコードをテーブル２００から抽出する（ステップＳ３１）。例えば、登録部１２は、ステップＳ１０で取得したファイル名に対応するファイル名２１０を有するレコードを、テーブル２００から抽出する。
【００５８】
また、登録部１２は、入力されたコードと抽出したコードを比較する（ステップＳ３２）。例えば、登録部１２は、コード編集欄３５０から新しいバージョンのソースプログラムの各行のコードを取得する。また、登録部１２は、取得したソースプログラムとステップＳ３１で抽出したソースプログラムとを比較することにより、抽出したソースプログラムに対して内容が一致する行と内容が一致しない行とを、取得したソースプログラムから特定する。この処理は、コード内容が変更されていない行と、コード内容が変更された行と、追加された行とを特定することができる。
【００５９】
また、登録部１２は、内容が一致する各行について指定バージョンを設定する（ステップＳ３３）。例えば、登録部１２は、ステップＳ３２で内容が一致すると判定された各行（コードに変更がない行）に対応するレコードについて、ステップＳ２０で取得した指定バージョンと対応する適用フラグ２４２に「１」を設定する。
【００６０】
また、登録部１２は、内容が一致しない各行のコードをテーブル２００に登録する（ステップＳ３４）。例えば、登録部１２は、ステップＳ３２で内容が一致しないと判定された各行（コードが変更された行又は追加された行）に対応するレコードを、テーブル２００に追加する。このとき、登録部１２は、入力されたソースプログラム上の行順序が維持されるように、各レコードをテーブル２００に挿入する。登録部１２は、追加した各レコードのファイル名２１０に、ステップＳ１０で取得したファイル名を設定する。また、登録部１２は、追加した各レコードのコード２３０に、取得した各行のコードを設定する。また、登録部１２は、ステップＳ１０で取得したファイル名を有する各レコードの行番号２２０に、上から順に連続番号を設定する。
【００６１】
また、登録部１２は、指定バージョンを設定する（ステップＳ３５）。例えば、登録部１２は、適用バージョン２４０のバージョン２４１に、ステップＳ２０で取得した指定バージョンを追加登録する。また、登録部１２は、ステップＳ３４で追加された各レコードについて、指定バージョンと対応する適用フラグ２４２に「１」を設定し、他のバージョンの適用フラグ２４２に「０」を設定する。そして、登録部１２は、本フローチャートの処理を終了する。このようにして、登録済のソースプログラムの新しいバージョンが、テーブル２００に追加される。
【００６２】
図６は、検索処理の一例を示すフローチャートである。例えば、検索部１３は、操作画面３００の検索ボタン３４０が操作（例えば、クリック）された場合に、本フローチャートの処理を開始する。
【００６３】
なお、本実施形態では、登録済のソースプログラムの全バージョンを検索する場合、ユーザーは、操作画面３００のファイル名欄３１０に、当該ソースプログラムのファイル名を設定する（バージョン欄３２０にはバージョンを設定しないでよい）。登録済のソースプログラムの特定の１つのバージョンを検索する場合、ユーザーは、操作画面３００のファイル名欄３１０に、当該ソースプログラムのファイル名を設定するとともに、バージョン欄３２０に、当該バージョンを設定する。
【００６４】
本フローチャートが開始されると、検索部１３は、バージョンが指定されたか否かを判定する（ステップＳ４０）。例えば、検索部１３は、バージョン欄３２０から指定バージョンを取得する。そして、検索部１３は、指定バージョンを取得できたか否かを判定する。
【００６５】
バージョンが指定されていないと判定した場合（ステップＳ４０で「Ｎ」）、検索部１３は、指定ファイルのコードをテーブル２００から抽出する（ステップＳ４１）。例えば、検索部１３は、ファイル名欄３１０からファイル名を取得し、取得したファイル名に対応するファイル名２１０を有するレコードを、テーブル２００から抽出する。これにより、指定されたソースプログラムの全バージョンのコードが抽出される。
【００６６】
バージョンが指定されていると判定した場合（ステップＳ４０で「Ｙ」）、検索部１３は、指定ファイルの指定バージョンのコードをテーブル２００から抽出する（ステップＳ４２）。例えば、検索部１３は、ファイル名欄３１０からファイル名を取得する。それから、検索部１３は、取得したファイル名に対応するファイル名２１０を有するレコードのうち、ステップＳ４０で取得した指定バージョンと対応する適用フラグ２４２が「１」であるレコードを、テーブル２００から抽出する。これにより、指定されたソースプログラムの指定バージョンのコードが抽出される。
【００６７】
それから、検索部１３は、ステップＳ４１又はステップＳ４２で抽出したコードを表示する（ステップＳ４３）。例えば、検索部１３は、ステップＳ４１で抽出された各レコードのコード２３０及び適用フラグ２４２を、操作画面３００のコード編集欄３５０及び適用フラグ３６２に表示する。又は、検索部１３は、ステップＳ４２で抽出された各レコードのコード２３０を、操作画面３００のコード編集欄３５０に表示する（適用バージョンは表示しない）。いずれの場合も、検索部１３は、バージョン２４１を、操作画面３００のバージョン３６１に表示する。
【００６８】
図７は、各行のコード及び適用バージョンの表示例を示す図である。図７では、全３バージョンの７行分のコードを有するソースプログラムを例示している。図７（Ａ）は、バージョン指定がない場合を示している。この場合、全３バージョンの７行分のコードがコード編集欄３５０に表示されるとともに、各行の適用フラグが適用フラグ３６２に表示される。一方、図７（Ｂ）〜（Ｃ）は、特定の１つのバージョンが指定された場合を示している。この場合、指定バージョンのコードがコード編集欄３５０に表示され、適用フラグ３６２は表示されない。図７（Ｂ）は、バージョン「１」が指定された場合を示しており、７行のコードのうち、バージョン「１」が適用バージョンとして設定されているコードが表示されている。図７（Ｃ）は、バージョン「２」が指定された場合を示しており、７行のコードのうち、バージョン「２」が適用バージョンとして設定されているコードが表示されている。図７（Ｄ）は、バージョン「３」が指定された場合を示しており、７行のコードのうち、バージョン「３」が適用バージョンとして設定されているコードが表示されている。
【００６９】
図６の説明に戻る。また、検索部１３は、第１区分の行を第１の色で表示する（ステップＳ４４）。本実施形態では、検索部１３は、各行のコードの表示態様を、当該行の適用バージョンの数に対応する区分に応じて決定する（後述する修正部１４も同様）。本実施形態では、全バージョンが適用バージョンである行は、第１区分に該当する。例えば、検索部１３は、コード編集欄３５０に表示した各行のうち、第１区分の行の文字を第１の色（例えば、黒）で表示する。図７（Ａ）〜（Ｄ）において、第１区分の行は、網掛けせずに示している。
【００７０】
また、検索部１３は、第２区分の行を第２の色で表示する（ステップＳ４５）。本実施形態では、複数バージョン（全バージョンを除く）が適用バージョンである行は、第２区分に該当する。例えば、検索部１３は、コード編集欄３５０に表示した各行のうち、第２区分の行の文字を第２の色（例えば、赤）で表示する。図７（Ａ）〜（Ｄ）において、第２区分の行は、ドットの網掛けで示している。
【００７１】
また、検索部１３は、第３区分の行を第３の色で表示する（ステップＳ４６）。本実施形態では、１つのバージョンが適用バージョンである行は、第３区分に該当する。例えば、検索部１３は、コード編集欄３５０に表示した各行のうち、第３区分の行の文字を第３の色（例えば、青）で表示する。図７（Ａ）〜（Ｃ）において、第３区分の行は、斜線の網掛けで示している。
【００７２】
以上のようにして、検索部１３は、検索されたソースプログラムを表示し、本フローチャートの処理を終了する。
【００７３】
図８は、修正処理の一例を示すフローチャートである。修正部１４は、例えば、検索処理後に、図７に示すコード編集欄３５０上又は適用バージョン欄３６０上で、行の修正、行の追加、行の削除等のユーザー操作を受け付ける。図８は、このようなユーザー操作を受け付けた場合の修正部１４の処理を示している。
【００７４】
まず、修正部１４は、バージョンが指定されたか否かを判定する（ステップＳ５０）。例えば、修正部１４は、バージョン欄３２０から指定バージョンを取得する。そして、修正部１４は、指定バージョンを取得できたか否かを判定する。
【００７５】
バージョンが指定されていないと判定した場合（ステップＳ５０で「Ｎ」）、修正部１４は、ユーザー操作がいずれかの行の修正であるか否かを判定する（ステップＳ５１）。
【００７６】
いずれかの行の修正であると判定した場合（ステップＳ５１で「Ｙ」）、修正部１４は、テーブル２００に修正を反映する（ステップＳ５２）。例えば、修正部１４は、コード編集欄３５０から修正された行のコードを取得し、テーブル２００の対応するレコードのコード２３０に上書きする。そして、修正部１４は、処理をステップＳ５１に戻す。このようにして、第１区分の行が修正された場合には、全バージョンに対して修正が反映される。第２区分の行が修正された場合には、対応する複数バージョンに対して修正が反映される。第３区分の行が修正された場合には、対応する１つのバージョンに対して修正が反映される。
【００７７】
いずれかの行の修正でないと判定した場合（ステップＳ５１で「Ｎ」）、修正部１４は、ユーザー操作が行の追加であるか否かを判定する（ステップＳ５３）。なお、修正部１４は、行の追加とともに、当該追加された行の適用バージョン（適用フラグ３６２）も受け付けることができる。
【００７８】
行の追加であると判定した場合（ステップＳ５３で「Ｙ」）、修正部１４は、テーブル２００に行を追加する（ステップＳ５４）。例えば、修正部１４は、コード編集欄３５０に追加された行のコードを取得する。また、修正部１４は、当該追加された行に対応するレコードをテーブル２００に追加する。このとき、修正部１４は、追加された行位置に対応する位置に、レコードを挿入する。修正部１４は、追加したレコードのファイル名２１０に、ファイル名欄３１０に入力されているファイル名を設定する。また、修正部１４は、追加したレコードのコード２３０に、取得した行のコードを設定する。また、修正部１４は、ファイル名欄３１０に入力されているファイル名を有する各レコードの行番号２２０に、上から順に連続番号を設定する。
【００７９】
また、修正部１４は、指定された適用バージョンを設定する（ステップＳ５５）。例えば、修正部１４は、適用バージョン欄３６９から追加された行の適用フラグ３６２を取得し、ステップＳ５４で追加したレコードの適用フラグ２４２に設定する。なお、修正部１４は、追加された行を、区分に応じた色で表示する。そして、修正部１４は、処理をステップＳ５１に戻す。このようにして、全バージョン又は一部のバージョンに対して、同時にコードを追加することができる。
【００８０】
行の追加でないと判定した場合（ステップＳ５３で「Ｎ」）、修正部１４は、ユーザー操作がいずれかの行の適用バージョンの変更であるか否かを判定する（ステップＳ５６）。
【００８１】
いずれかの行の適用バージョンの変更であると判定した場合（ステップＳ５６で「Ｙ」）、修正部１４は、テーブル２００に変更を反映する（ステップＳ５７）。例えば、修正部１４は、適用バージョン欄３６０から変更された行の適用フラグ３６２を取得し、テーブル２００の対応するレコードの適用フラグ２４２に設定する。なお、修正部１４は、変更後の適用バージョンの数に対応する区分に応じて、コードの色を変更する。そして、修正部１４は、処理をステップＳ５１に戻す。このようにして、各行のコードの適用バージョンを変更することができる。なお、あるバージョンの適用フラグ３６２を「０」に変更することで、当該バージョンから行を削除するのと同様の結果を得ることができる。
【００８２】
いずれかの行の適用バージョンの変更でないと判定した場合（ステップＳ５６で「Ｎ」）、修正部１４は、処理をステップＳ５１に戻す。
【００８３】
一方、バージョンが指定されていると判定した場合（ステップＳ５０で「Ｙ」）、修正部１４は、ユーザー操作がいずれかの行の修正であるか否かを判定する（ステップＳ６１）。
【００８４】
いずれかの行の修正であると判定した場合（ステップＳ６１で「Ｙ」）、修正部１４は、テーブル２００に修正を反映する（ステップＳ６２）。例えば、修正部１４は、コード編集欄３５０から修正された行のコードを取得し、テーブル２００の対応するレコードのコード２３０に上書きする。そして、修正部１４は、処理をステップＳ６１に戻す。このようにして、第１区分の行が修正された場合には、全バージョンに対して修正が反映される。第２区分の行が修正された場合には、対応する複数バージョンに対して修正が反映される。第３区分の行が修正された場合には、対応する１つのバージョンに対して修正が反映される。
【００８５】
いずれかの行の修正でないと判定した場合（ステップＳ６１で「Ｎ」）、修正部１４は、ユーザー操作が行の追加であるか否かを判定する（ステップＳ６３）。
【００８６】
行の追加であると判定した場合（ステップＳ６３で「Ｙ」）、修正部１４は、テーブル２００に行を追加する（ステップＳ６４）。例えば、修正部１４は、コード編集欄３５０に追加された行のコードを取得する。また、修正部１４は、当該追加された行に対応するレコードをテーブル２００に追加する。このとき、修正部１４は、追加された行位置に対応する位置に、レコードを挿入する。修正部１４は、追加したレコードのファイル名２１０に、ファイル名欄３１０に入力されているファイル名を設定する。また、修正部１４は、追加したレコードのコード２３０に、取得した行のコードを設定する。また、修正部１４は、ファイル名欄３１０に入力されているファイル名を有する各レコードの行番号２２０に、上から順に連続番号を設定する。
【００８７】
また、修正部１４は、指定バージョンを設定する（ステップＳ６５）。例えば、修正部１４は、ステップＳ６４で追加したレコードについて、ステップＳ５０で取得した指定バージョンと対応する適用フラグ２４２に「１」を設定し、他のバージョンの適用フラグ２４２に「０」を設定する。なお、修正部１４は、追加された行（第３区分）を、第３の色で表示する。そして、修正部１４は、処理をステップＳ６１に戻す。このようにして、指定バージョンに対して、コードを追加することができる。
【００８８】
行の追加でないと判定した場合（ステップＳ６３で「Ｎ」）、修正部１４は、ユーザー操作がいずれかの行の削除であるか否かを判定する（ステップＳ６６）。
【００８９】
いずれかの行の削除であると判定した場合（ステップＳ６６で「Ｙ」）、修正部１４は、指定バージョンを解除する（ステップＳ６７）。例えば、修正部１４は、削除された行に対応するレコードについて、ステップＳ５０で取得した指定バージョンと対応する適用フラグ２４２に「０」を設定する。そして、修正部１４は、処理をステップＳ６１に戻す。このようにして、指定バージョンの特定の行を削除することができる。
【００９０】
いずれかの行の削除でないと判定した場合（ステップＳ６６で「Ｎ」）、修正部１４は、処理をステップＳ６１に戻す。
【００９１】
以上、本発明の一実施形態について説明した。本実施形態によれば、複数バージョンのソースプログラムに対する修正を、簡単な操作で効率的に行うことができる。
【００９２】
例えば、ソースプログラム管理装置１は、複数バージョンのソースプログラムを、コード内容が共通する行を集約してテーブルで管理している。そして、ソースプログラム管理装置１は、あるコード行の修正を受け付けると、その修正をテーブル上の対応するレコードに反映する。これにより、複数バージョンのソースプログラムに対する修正を、簡単な操作で効率的に行うことができる。
【００９３】
また例えば、ソースプログラム管理装置１は、コード行の追加とともに当該行の適用バージョンを受け付けると、テーブル上の対応する位置にレコードを追加し、適用バージョンとして指定された全バージョン又は一部のバージョンを設定する。これにより、全バージョン又は一部のバージョンのソースプログラムに対するコード行の追加を、簡単な操作で効率的に行うことができる。
【００９４】
また例えば、ソースプログラム管理装置１は、あるコード行の適用バージョンの変更を受け付けると、テーブル上の対応するレコードの適用バージョンに反映する。これにより、所望の１以上のバージョンからのコード行の削除、所望の１以上のバージョンへのコード行の追加を、簡単な操作で効率的に行うことができる。
【００９５】
また例えば、ソースプログラム管理装置１は、区分に応じて異なる色でコードを表示する。これにより、ユーザーは、コード行の適用バージョンの数を直感的に認識し、例えば、修正対象のコード行を効率的に見つけ出すことができる。
【００９６】
また例えば、ソースプログラム管理装置１は、各コード行の適用バージョンを適用フラグとして表示する。これにより、ユーザーは、コード行の適用バージョンを直感的に認識し、例えば、修正対象のコード行を効率的に見つけ出すことができる。
【００９７】
本発明は、上述の実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。実施形態および各変形例を適宜組み合わせることもできる。
【００９８】
上述の実施形態に係るソースプログラム管理装置１は、コードの区分を色で表しているが、例えば、文字の大きさ、強調の仕方、記号の付加などの他の表示態様によって区分を表してもよい。また、適用バージョンの数に基づいてコードを区分するだけでなく、例えば、適用バージョンの組合せに基づいてコードを区分してもよい（例えば、バージョン１とバージョン２を区別したり、バージョン１及び２の組合せとバージョン２及び３の組合せとを区別したりする）。
【００９９】
図１のソースプログラム管理装置１の構成は、当該装置１の構成を理解容易にするために、主な処理内容に応じて分類したものである。構成要素の分類の仕方や名称によって、本発明が制限されることはない。ソースプログラム管理装置１の構成は、処理内容に応じて、さらに多くの構成要素に分類することもできる。また、１つの構成要素がさらに多くの処理を実行するように分類することもできる。また、各構成要素の処理は、１つのハードウェアで実行されてもよいし、複数のハードウェアで実行されてもよい。また、各構成要素の処理又は機能の分担は、本発明の目的及び効果を達成できるのであれば、上述したものに限られない。また、図２に示すテーブルのデータ構造は、一例であり、本発明の目的を達成することができるのであれば、図示した例に限定されない。
【０１００】
図５、６、８で示したフローチャートの処理単位は、ソースプログラム管理装置１の処理を理解容易にするために、主な処理内容に応じて分割したものである。処理単位の分割の仕方や名称によって、本発明が制限されることはない。ソースプログラム管理装置１の処理は、処理内容に応じて、さらに多くの処理単位に分割することもできる。また、１つの処理単位がさらに多くの処理を含むように分割することもできる。さらに、本発明の目的及び効果を達成できるのであれば、上記のフローチャートの処理順序も、図示した例に限られるものではない。また、図４、及び７に示す操作画面は、一例であり、本発明の目的を達成することができるのであれば、図示した例に限定されない。
【０１０１】
本発明は、上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した各実施形態は、本発明を分かりやすく説明するために詳細に説明したものであり、本発明が、必ずしも説明した全ての構成要素を備えるものに限定されるものではない。また、ある実施形態の構成の一部を、他の実施形態の構成に置き換えることが可能であり、ある実施形態の構成に、他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【０１０２】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現されてもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリーや、ハードディスク、ＳＳＤ等の記憶装置、または、ＩＣ（Integrated Circuit）カード、ＳＤメモリーカード、ＤＶＤ（Digital Versatile Disc）等の記録媒体に置くことができる。また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【０１０３】
１…ソースプログラム管理装置、１０…制御部、１１…操作受付部、１２…登録部、１３…検索部、１４…修正部、２０…記憶部、３０…表示部、４０…入力部、５０…通信部、９０…コンピューター、９１…演算装置、９２…主記憶装置、９３…外部記憶装置、９４…出力装置、９５…入力装置、９６…通信装置、２００…ソースプログラムテーブル、２１０…ファイル名、２２０…行番号、２３０…コード、２４０…適用バージョン、２４１…バージョン、２４２…適用フラグ、３００…操作画面、３１０…ファイル名欄、３２０…バージョン欄、３３０…登録ボタン、３４０…検索ボタン、３５０…コード編集欄、３６０…適用バージョン欄、３６１…バージョン、３６２…適用フラグ
【図１】
2017199191.tif 000003
【図２】
2017199191.tif 000004
【図３】
2017199191.tif 000005
【図４】
2017199191.tif 000006
【図５】
2017199191.tif 000007
【図６】
2017199191.tif 000008
【図７】
2017199191.tif 000009
【図８】
2017199191.tif 000010