(57)【要約】【課題】プログラムソースで修正されたステップの修正情報に加え、修正者情報および修正日時も含めて詳細な修正履歴を管理でき、また、修正ステップをプログラムで実行される順に時系列に並べて表示でき、プログラムの修正手順および修正内容を容易に把握できようにすること。【解決手段】クライアント端末１００のＣＰＵ１０２は、ソースコードの修正が行われた際に、該修正情報をソースコード内に蓄積し、該ソースコード内に記憶される修正履歴を、前記修正されたソースコードに基づくプログラムの実行順に並べた修正履歴情報として生成して表示する構成を特徴とする。【選択図】図１
2008134900.tif 000002
【特許請求の範囲】
【請求項１】
ソースコードの修正が行われた際に、該修正情報を蓄積する記憶手段と、
前記記憶手段に記憶される修正履歴を、前記修正されたソースコードに基づいたプログラムにより実行される順に並べた修正履歴情報として生成する生成手段と、
を有することを特徴とするソースコード修正履歴管理装置。
【請求項２】
前記生成手段は、前記記憶手段に記憶される修正履歴を、前記修正情報を機能毎に、関数実行順に並べて出力するための情報を生成する、ことを特徴とする請求項１に記載のソースコード修正履歴管理装置。
【請求項３】
前記記憶手段は、ソースコードに対する機能毎の一連の修正を一つの作業単位として、該作業単位を識別可能に修正情報を蓄積するものであり、
前記生成手段は、前記記憶手段に記憶される修正履歴を、前記修正情報を機能毎に、各機能内では作業毎に、各作業内ではその機能での関数実行順に並べて出力するための情報を生成する、ことを特徴とする請求項１又は２に記載のソースコード修正履歴管理装置。
【請求項４】
前記生成手段は、前記修正情報を関数実行順に、ツリー構造に並べて出力するための情報を生成する、ことを特徴とする請求項２又は３に記載のソースコード修正履歴管理装置。
【請求項５】
複数の機能毎の修正情報の中から、１または複数の機能を選択する機能選択手段を設け、
前記生成手段は、前記機能選択手段に選択された機能に対応する機能に対して、機能毎に、前記修正情報を各機能内では作業毎に、各作業内ではその機能での関数実行順に、ツリー構造に並べて出力するための情報を生成する、ことを特徴とする請求項２乃至４のいずれかに記載のソースコード修正履歴管理装置。
【請求項６】
前記修正情報は、作業単位名，関数名，修正行番号，修正日時情報，修正者情報，バージョン情報，修正時にソース内に記載されたコメント，修正前のソースコードの少なくとも１つを含むことを特徴とする請求項２乃至４のいずれかに記載のソースコード修正履歴管理装置。
【請求項７】
前記修正情報は、修正前のコードを含むものであり、
前記生成手段により生成された修正履歴情報を表示する表示手段と、
前記表示手段により表示された修正履歴情報からいずれかの修正情報を選択させる選択手段と、
前記選択手段により選択された修正情報に対応する修正前の状態まで順次遡って修正情報内の修正前のコードを前記修正されたソースコードに対して適用するロールバック手段と、
を有することを特徴とする請求項１乃至６のいずれかに記載のソースコード修正履歴管理装置。
【請求項８】
前記表示手段は、前記ロールバック手段により適用された修正前のコードを強調表示する、ことを特徴とする請求項７に記載のソースコード修正履歴管理装置。
【請求項９】
作成されたソースコード内に、該ソースコードに記述された関数の実行開示時に該関数を識別するための関数識別情報をログ出力するためのロギングコードを追加する追加手段と、
前記追加手段によりロギングコードが追加されたソースコードから生成されるプログラムの実行時に、前記ロギングコードによりログ出力される関数識別情報の出力順を関数の実行順序として取得する実行順序取得手段と、を有し、
前記生成手段は、前記記憶手段に記憶される修正履歴を、前記実行順序取得手段により取得されたプログラムの実行順に並べた修正履歴情報として生成する、ことを特徴とする請求項１乃至８のいずれかに記載のソースコード修正履歴管理装置。
【請求項１０】
前記記憶手段は、ソースコードの修正が行われた際に、該修正情報を該ソースコード内に蓄積する、ことを特徴とする請求項１乃至９のいずれかに記載のソースコード修正履歴管理装置。
【請求項１１】
ソースコードの修正が行われた際に、該修正情報を記憶手段に蓄積する蓄積ステップと、
前記記憶手段に記憶される修正履歴を、前記修正されたソースコードに基づいたから取得されるプログラム内の関数実行順に並べた修正履歴情報として生成する生成ステップと、
を有することを特徴とするソースコード修正履歴管理方法。
【請求項１２】
請求項１乃至１０のいずれかに記載されたソースコード修正履歴管理装置としてコンピュータを機能させるための、又は、請求項１１に記載されたソースコード修正履歴管理方法をコンピュータに実行させるためのプログラム。
【請求項１３】
請求項１乃至１０のいずれかに記載されたソースコード修正履歴管理装置としてコンピュータを機能させるためのプログラム、又は、請求項１１に記載されたソースコード修正履歴管理方法をコンピュータに実行させるためのプログラムをコンピュータが読み取り可能に記憶した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムソースの修正履歴か管理するソースコード修正履歴管理装置およびソースコード修正履歴管理方法およびプログラムおよび記録媒体に関する。
【背景技術】
【０００２】
従来、プログラムのバージョン更新等によるソースファイルの修正箇所の履歴を管理することは、過去の修正内容の把握を容易にし、過去の修正と同様の修正を行う場合に過去の修正箇所を参考にできることによって効率的な修正作業が可能となる点で有意義である。
【０００３】
このような利点を生かす方法として、特許文献１には、以下のようなプログラムソースの履歴管理方法が提案されている。
【０００４】
この方法では、まず修正前と修正後の各プログラムソースを関数単位で比較し、修正前後のプログラムソース間の差分を修正履歴として取得しデータベースに蓄積する。そして、蓄積された修正履歴の中の修正された関数名を、他の修正された関数名との関連を示しつつ識別可能に出力することによって、複数のモジュール、ソースファイル、関数にまたがった修正箇所を容易に把握することができる。これにより、過去の修正と同様の修正を行う場合に該当する過去の修正箇所を速やかに検索して次の修正に役立てることができ、プログラム修正の効率化を図ることができる。
【特許文献１】特開２００１−２５６０４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１では、関連を示して関数毎の修正情報を表示するだけであるため、修正箇所を関数毎に検索することはできても、プログラムが実行される順序との関連は不明であるため、詳細な修正手順を示すことはできなかった。プログラムソースを誰がいつ、どのステップをどの順序で修正したか、それがどの機能に関連する修正であったのか、修正箇所の実行順序はどうなっているのか等といったことは管理できず、詳細な作業状況を共有することができなかった。
【０００６】
その結果、人がプログラムソースと修正履歴を比較して、プログラムが実行される順に修正箇所を追う事によって、行われる場合が多く非常に煩雑であった。
【０００７】
また、特許文献１の方法では、修正履歴を実行順序で管理していないため、実行順序によって修正箇所を並べる際にプログラムの修正回数が増えた場合等、ソース管理が非常に面倒なものとなってしまう。
【０００８】
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、プログラムソースで修正されたステップ毎の詳細な修正履歴をプログラムで実行される順に時系列に並べて表示でき、プログラムの修正手順および修正内容を容易に把握でき、さらに、プログラムソース管理も容易な優れたプログラムソース履歴管理環境を構築する仕組を提供することである。
【課題を解決するための手段】
【０００９】
本発明は、ソースコードの修正が行われた際に、該修正情報を蓄積する記憶手段と、前記記憶手段に記憶される修正履歴を、前記修正されたソースコードに基づいたプログラムにより実行される順に並べた修正履歴情報として生成する生成手段と、を有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、プログラムソースで修正されたステップ毎の詳細な修正履歴をプログラムで実行される順に時系列に並べて表示でき、プログラムの修正手順および修正内容を容易に把握でき、さらに、プログラムソース管理も容易な優れたプログラムソース履歴管理環境を構築できる等の効果を奏する。
【発明を実施するための最良の形態】
【００１１】
〔第１実施形態〕
図１は、本発明の一実施形態を示すソースコード修正履歴管理装置としての情報処理装置を適用可能なシステムのハードウェア構成の一例を示す図である。
【００１２】
図１において、１００はクライアント端末、２００はサーバ装置、３００は通信ネットワークである。
【００１３】
図１に示すように、本システムでは、複数のクライアント端末１００ａ〜１００ｃとサーバ装置２００が通信ネットワーク３００を介して通信可能に接続されている。
【００１４】
クライアント端末１００において、１０２はＣＰＵであり、クライアント端末の中枢となる制御装置であって各種制御を行う。１０３はＲＡＭ（Random Access Memory）であって、プログラムのワークエリアや一時的に保持するデータのバッファとして利用する。
【００１５】
１０４はＲＯＭ（Read Only Memory）であって、ＣＰＵ１０２が実行するプログラムの保存等を行う。１０５は外部メモリであって、ＣＰＵ１０２が実行する各種プログラムや各データの保持を行うものであり、具体的にはハードディスクドライブやＤＶＤドライブ等である。
【００１６】
１０６は入力装置であって、この装置を通じてＣＰＵ１０２にデータなどの入力を行うためのものであり、具体的には、キーボードやマウスである。
【００１７】
１０７は表示装置であって、具体的にはディスプレイ等である。１０８は通信インターフェースであって、ＬＡＮなどの伝送路と端末とを接続する部分である。
【００１８】
サーバ装置２００において、２０２はＣＰＵであり、サーバ装置の中枢となる制御装置であって各種制御を行う。２０３はＲＡＭ（Random Access Memory）であって、プログラムのワークエリアや一時的に保持するデータのバッファとして利用する。
【００１９】
２０４はＲＯＭ（Read Only Memory）であって、ＣＰＵ２０２が実行するプログラムの保存等を行う。２０５は外部メモリであって、ＣＰＵ２０２が実行する各種プログラムや各データの保持を行うものであり、具体的にはハードディスクドライブやＤＶＤドライブ等である。
【００２０】
２０６は入力装置であって、この装置を通じてＣＰＵ２０２にデータなどの入力を行うためのものであり、具体的には、キーボードやマウスである。
【００２１】
２０７は表示装置であって、具体的にはディスプレイ等である。２０８は通信インターフェースであって、ＬＡＮなどの伝送路と端末とを接続する部分である。
【００２２】
２０１はＤＢであり、後述するプログラムソース，関数管理テーブル，機能関連ファイル，修正履歴ファイル等を記憶管理するためのものである。なお、ＤＢ２０１は、外部メモリ２０５内に実装されてもよいし、他の記憶装置内に実装されていてもよい。
【００２３】
以下、図２〜図１６を参照して、本発明の制御処理について説明する。
【００２４】
まず、図２〜図８を参照して新規プログラムソース作成時の処理について説明する。その後、図９〜図１４を参照してプログラムソース修正時の処理について説明する。さらにその後、図１５，図１６を参照してプログラムソース修正時の処理について説明する。
【００２５】
図２は、本発明の第１の制御処理の一例を示すシーケンス図であり、プログラムソースを新規作成し、作成後のプログラムを実行することで機能関連ファイルを作成する一連の処理に対応する。なお、図中、Ｓ２００〜Ｓ２１５はクライアント端末１００のＣＰＵ１０２が外部メモリ１０５からプログラムをＲＡＭ１０３上に読み出して実行することにより実現される処理に対応する。
【００２６】
まず、図３に示す作業パネル１３００がクライアント端末１００の表示装置１０７に表示されている状態で、ユーザにより新規作成ボタン１３０５が押下指示されると、クライアント端末１００のＣＰＵ１０２は、プログラムソース（ソースコード）の新規作成処理を実行する。この際、クライアント端末１００のＣＰＵ１０２は、作業パネル１３００のソースコードウィンドウ１３０３上でのプログラムソースの作成編集操作を受け付ける。
【００２７】
図３は、本発明における作業パネルの一例を示す模式図である。
【００２８】
図３に示すように、作業パネル１３００は、選択した機能の機能関連ツリーを表示する機能関連ツリーウィンドウ１３０１、修正履歴ツリーを表示する修正履歴ツリーウィンドウ１３０２、ソースコードを作成・表示・修正するソースコードウィンドウ１３０３、コンソールを表示するコンソールウィンドウ１３０４を具備している。
【００２９】
なお、ウィンドウ１３０１，１３０２，１３０３は、新規作成モードでは空白表示される。
【００３０】
１３０５は新規作成ボタンであり、ソースコードを新規作成する際にクライアント端末１００の入力装置１０６により押下指示する。１３０６は開くボタンであり、作成済のソースコードをオープンする際にクライアント端末１００の入力装置１０６により押下指示する。１３０７は保存ボタンであり、新規作成又は修正したソースコードを保存する際にクライアント端末１００の入力装置１０６により押下指示する。
【００３１】
また、１３０８はトリガ関数選択ボタンであり、このボタンをクライアント端末１００の入力装置１０６により押下指示することにより、トリガ関数を選択することができる。
【００３２】
また、１３０９は作業名設定ボタンであり、後述するプログラムソースの修正処理時に、このボタンをクライアント端末１００の入力装置１０６により押下指示することにより、後述する作業名の設定を行うことができる。
【００３３】
また、１３１０はコンパイルボタンであり、このボタンをクライアント端末１００の入力装置１０６により押下指示することにより、コンパイル処理を実行することができる。
【００３４】
また、１３１１は実行ボタンであり、このボタンをクライアント端末１００の入力装置１０６により押下指示することにより、プログラムを実行することができる。
【００３５】
また、１３１２は検索ボタンであり、トリガ関数名，作業名に基づく検索処理を行う際にクライアント端末１００の入力装置１０６により押下指示する。
【００３６】
以下、図２のシーケンス図の説明に戻る。
【００３７】
そして、ユーザがこの作業パネル１３００のソースコードウィンドウ１３０３上でプログラムソースを新規作成した後、保存ボタン１３０７が指示されると、この指示に応じて、クライアント端末１００のＣＰＵ１０２は、Ｓ２００で作成したソースコードを、サーバ装置２００のＤＢ２０１に登録する（Ｓ２１６）。この時、サーバ装置２００のＣＰＵ２０２は、クライアント端末１００からのソースコードの登録要求に基づいて、クライアント端末１００から受け取ったソースコードをＤＢ２０１に登録する。
【００３８】
次に、ユーザよりトリガ関数選択ボタン１３０８が指示されると、この指示に応じて、クライアント端末１００のＣＰＵ１０２は、トリガ関数選択処理を実行する（Ｓ２０１）。
【００３９】
この際、クライアント端末１００のＣＰＵ１０２は、図４に示す新規作成時のトリガ関数選択パネル８００を表示装置１０７に表示し（Ｓ２０２）、トリガ関数の選択を受け付ける。
【００４０】
図４は、本発明においてプログラムソースの新規作成時にトリガ関数を指定するためのトリガ関数選択パネルの一例を示す模式図である。
【００４１】
図４に示すように、トリガ関数選択パネル８００には、トリガ関数を指定するためのチェックボックス８０１と、ＯＫボタン８０２と、キャンセルボタン８０３を具備している。
【００４２】
以下、図２のシーケンス図の説明に戻る。
【００４３】
トリガ関数を選択後、ユーザからのコンパイルボタン１３１０の押下指示（コンパイルまたはビルド指示）に応じて、クライアント端末１００のＣＰＵ１０２は、Ｓ２００で作成したプログラムソースのコンパイル（ビルド）処理を実行する（Ｓ２０３）。この際、クライアント端末１００のＣＰＵ１０２は、該コンパイルによってプログラムにエラーコードが無かった場合、プログラムソース作成者のアカウント情報，プログラムソースの全ステップ（行）情報を取得し（Ｓ２０４，Ｓ２０５）、プログラムソース内の全関数にＩＤを割振り、図６に示す関数管理テーブルを作成する(Ｓ２０６)。
【００４４】
図５は、図２のステップＳ２０６で作成される関数管理テーブルの一例を示す模式図である。
【００４５】
図５に示すように、関数管理テーブル１０００は、クラス名１００１、ユニークな関数ＩＤ１００２、引数１００３、戻り値１００４、新規作成日時１００５、関連機能１００６をデータとして持っている。
【００４６】
以下、図２のシーケンス図の説明に戻る。
【００４７】
そして、クライアント端末１００のＣＰＵ１０２は、取得した情報や、関数管理テーブルを、Ｓ２１６で登録したプログラムソースに紐付けてサーバ装置２００のＤＢ２０１に登録する(Ｓ２０７)。この時、サーバ装置２００のＣＰＵ２０２は、クライアント端末１００からの関数管理テーブル等の登録要求に基づいて、クライアント端末１００から受け取った関数管理テーブル等をＤＢ２０１に登録する。
【００４８】
次に、ユーザからの実行ボタン１３１１の押下指示（ステップＳ２０３にて生成されたプログラム実行体の実行指示）に応じて、クライアント端末１００のＣＰＵ１０２は、該プログラム実行体を実行する（Ｓ２０８）。この際、クライアント端末１００のＣＰＵ１０２は、Ｓ２０１のトリガ関数選択処理において設定（選択）された関数以下の動作情報（関数実行順序）を、図６に示す機能関連ファイルとして作成する(Ｓ２０９)。
【００４９】
図６は、図２のステップＳ２０９で作成される機能関連ファイルの一例を示す模式図である。
【００５０】
図６に示すように、機能関連ファイル１１００は、例えばＸＭＬのような階層型データ構造を持つことによって、機能関連ツリー１１０１のようにトリガ関数によって呼び出される関数の階層構造を保持する。
【００５１】
以下、図２のシーケンス図の説明に戻る。
【００５２】
そして、クライアント端末１００のＣＰＵ１０２は、作成した機能関連ファイルを、Ｓ２１６で登録したプログラムソースに紐付けてサーバ装置２００のＤＢ２０１に登録する(Ｓ２０９)。この時、サーバ装置２００のＣＰＵ２０２は、クライアント端末１００からの機能関連ファイルの登録要求に基づいて、クライアント端末１００から受け取った機能関連ファイルをＤＢ２０１に登録する。
【００５３】
次に、クライアント端末１００のＣＰＵ１０２は、Ｓ２１６で登録したプログラムソースに対応する関数管理テーブル１０００の取得をサーバ装置２００のＤＢ２０１に要求して(Ｓ２１１)、サーバ装置２００から返信される関数管理テーブルを取得する（Ｓ２１２）。
【００５４】
次に、クライアント端末１００のＣＰＵ１０２は、ステップＳ２１２で取得した関数管理テーブル１０００内の関連機能項目１００７に関連機能を登録する(Ｓ２１３)。
【００５５】
この関連機能の登録終了後、クライアント端末１００のＣＰＵ１０２は、該関連機能が更新された関数管理テーブル１０００をＤＢ２０１に更新登録する（Ｓ２１４）。この時、サーバ装置２００のＣＰＵ２０２は、クライアント端末１００からの関数管理テーブルの登録要求に基づいて、クライアント端末１００から受け取った関数管理テーブルをＤＢ２０１に更新登録する。
【００５６】
次に、クライアント端末１００のＣＰＵ１０２は、作成された機能関連ファイルをツリー形式で、図３に示した作業パネル１３００の機能関連ツリーウィンドウ１３０１に表示する(Ｓ２１５)。
【００５７】
以下、図７のフローチャートを参照して、図２に示したステップＳ２０３のコンパイル時の処理を詳細に説明する。
【００５８】
図７は、本発明の第２の制御処理の一例を示すフローチャートであり、図２に示したステップＳ２０３のコンパイル時の処理を詳細に説明するフローチャートに対応する。なお、図中、Ｓ３００〜Ｓ３１２はクライアント端末１００のＣＰＵ１０２が外部メモリ１０５からプログラムをＲＡＭ１０３上に読み出して実行することにより実現される処理に対応する。
【００５９】
まず、ステップＳ３００において、クライアント端末１００のＣＰＵ１０２は、図２のＳ２１６で登録したプログラムソースのコンパイル処理し、ステップＳ３０１において、このコンパイル処理で、エラーが無かったか否かを判定する。
【００６０】
そして、ステップＳ３０１で、エラーが有った（エラーコードが返された）と判定した場合には、クライアント端末１００のＣＰＵ１０２は、そのまま処理を終了する。
【００６１】
一方、ステップＳ３０１で、エラーが無かった（エラーコードを返さなかった）と判定した場合には、クライアント端末１００のＣＰＵ１０２は、ステップＳ３０２に処理を進める。
【００６２】
ステップＳ３０２では、クライアント端末１００のＣＰＵ１０２は、トリガ関数が設定されているか否かのチェックを行い、トリガ関数が設定されていないと判定した場合には、そのままステップＳ３０５に処理を進める。
【００６３】
一方、ステップＳ３０２でトリガ関数が設定されていると判断した場合には、クライアント端末１００のＣＰＵ１０２は、ステップＳ３０４において、プログラムソースにロギングコードを挿入する。なお、このロギングコードは、トリガ関数、及び、トリガ関数により呼び出される関数内に、開始位置，終了位置を示す情報（例えば・・・や・・・で示し、ロギング関数又はロギング関数により呼び出される関数であることを示す情報を含む），関数名（・・・で示す），関数ＩＤ（・・・で示す）をログ出力するロギングコードとする。
【００６４】
次に、ステップＳ３０５において、クライアント端末１００のＣＰＵ１０２は、プログラムソースをリコンパイルし、ステップＳ３０５に処理を進める。
【００６５】
ステップＳ３０５では、クライアント端末１００のＣＰＵ１０２は、プログラムソース作成者のアカウント情報を取得する。
【００６６】
次に、ステップＳ３０６において、クライアント端末１００のＣＰＵ１０２は、プログラムソースのステップ（行）情報を取得する。
【００６７】
次に、ステップＳ３０７において、クライアント端末１００のＣＰＵ１０２は、ステップＳ３０６で取得したプログラムソース（１ステップ分）を解析し、ステップＳ３０８において、該ステップが関数となるコードであるか否かを判定し、関数となるコードでないと判定した場合には、ステップＳ３０６に処理を戻し、次のステップの処理に移行する。
【００６８】
一方、ステップＳ３０８で、このステップが関数となるコードであると判断した場合には、クライアント端末１００のＣＰＵ１０２は、ステップＳ３０９に処理を進める。
【００６９】
次に、ステップＳ３０９において、クライアント端末１００のＣＰＵ１０２は、ステップＳ３０８で判定された関数に関数ＩＤ（ユニークな番号）を割り振り、この関数の情報（クラス名，関数名，引数，戻り値，新規作成日等の情報）とともＲＡＭ１０３内に保持する。
【００７０】
次に、ステップＳ３１０において、クライアント端末１００のＣＰＵ１０２は、プログラムソースの次のステップ（行）がＥＯＦであるか否かを判定し、ＥＯＦでないと判定した場合には、ステップＳ３０６に処理を戻し、次のステップの処理に移行する。
【００７１】
一方、ステップＳ３１０で、プログラムソースの次のステップ（行）がＥＯＦであると判定した場合には、クライアント端末１００のＣＰＵ１０２は、ステップＳ３１１に処理を進める。
【００７２】
ステップＳ３１１では、クライアント端末１００のＣＰＵ１０２は、ＲＡＭ１０３内に保持された、関数ＩＤ，関数の情報（クラス名，関数名，引数，戻り値，新規作成日等の情報）に基づいて、図５に示した関数管理テーブル１０００を作成し、ステップＳ３１２において、該関数管理テーブル１０００を、Ｓ３００でコンパイルしたプログラムソース（即ち、図２のＳ２１６で登録したプログラムソース）に紐付けて、サーバ装置２００のＤＢ２０１に登録処理し、本コンパイル処理を終了する。
【００７３】
以下、図８のフローチャートを参照して、図２に示したステップＳ２０８のプログラム実行時の処理を詳細に説明する。
【００７４】
図８は、本発明の第３の制御処理の一例を示すフローチャートであり、図２に示したステップＳ２０８のプログラム実行時の処理を詳細に説明するフローチャートに対応する。なお、図中、Ｓ５００〜Ｓ５０３はクライアント端末１００のＣＰＵ１０２が外部メモリ１０５からプログラムをＲＡＭ１０３上に読み出して実行することにより実現される処理に対応する。
【００７５】
まず、ステップＳ５００において、クライアント端末１００のＣＰＵ１０２は、図２のＳ２０３でコンパイルしたプログラム実行体を実行し、このプログラム実行時に、ロギングコードから機能関連ファイル１１００（図６）を外部メモリ１０５内に生成する（Ｓ５０１）。
【００７６】
そして、ステップＳ５０２において、クライアント端末１００のＣＰＵ１０２は、ステップＳ５０１で生成された機能関連ファイル１１００を、Ｓ５００で実行したプログラム実行体のプログラムソースに紐付けて、サーバ装置２００のＤＢ２０１に登録する。
【００７７】
次に、ステップＳ５０３において、クライアント端末１００のＣＰＵ１０２は、関数管理テーブル１０００を更新する。詳細には、まずサーバ装置２００のＤＢ２０１から関数管理テーブル１０００（図５）を取得する。そして、クライアント端末１００のＣＰＵ１０２は、ステップＳ５０１で生成した機能関連ファイル１１００（図６）内の各関数ＩＤ（・・・で示す）と一致する関数管理テーブル１０００内の関連機能項目１００７に、トリガ関数のＩＤ番号を追加する。そして、クライアント端末１００のＣＰＵ１０２は、上記関数管理テーブル１０００を再びＤＢ２０１に更新登録する。そして、本プログラム実行時の処理を終了する。
【００７８】
次に、図９〜図１６を参照してプログラムソース修正時の処理について説明する。
【００７９】
図９Ａ，図９Ｂは、本発明の第４の制御処理の一例を示すシーケンス図であり、プログラムソースを修正し、該修正情報及び関数管理テーブル１０００及び機能関連ファイル１１００から機能毎の修正履歴をプログラム実行順序に沿って表示する一連の処理に対応する。なお、図中、Ｓ６００〜Ｓ６２５はクライアント端末１００のＣＰＵ１０２が外部メモリ１０５からプログラムをＲＡＭ１０３上に読み出して実行することにより実現される処理に対応する。
【００８０】
まず、図３に示す作業パネル１３００がクライアント端末１００の表示装置１０７に表示されている状態で、ユーザにより開くボタン１３０６が押下指示されオープンするプログラムソースが選択されると、クライアント端末１００のＣＰＵ１０２は、プログラムソースの新規作成処理を実行する。この際、クライアント端末１００のＣＰＵ１０２は、クライアント端末１００のＣＰＵ１０２は、修正者であるユーザのアカウント情報をシステムから取得する（Ｓ６０１）。そして、クライアント端末１００のＣＰＵ１０２は、選択されたプログラムソースの取得をサーバ装置２００のＤＢ２０１に要求して(Ｓ６２３)、サーバ装置２００から返信されるプログラムソースを取得する（Ｓ６２４）。ここで、関数管理テーブル１０００，機能関連ファイル１１００も一緒に取得するようにしてもよい。そして、クライアント端末１００のＣＰＵ１０２は、取得したプログラムソース等を開き作業パネル１３００のソースコードウィンドウ１３０３上に表示する。
【００８１】
次に、ユーザからのトリガ関数選択ボタン１３０８の押下指示に応じて、クライアント端末１００のＣＰＵ１０２は、トリガ関数選択処理を実行する（Ｓ６０２）。
【００８２】
この際、クライアント端末１００のＣＰＵ１０２は、図１０に示す修正時のトリガ関数選択パネル１７００を表示装置１０７に表示し（Ｓ６０３）、トリガ関数の選択を受け付ける。
【００８３】
図１０は、本発明においてプログラムソースの修正時にトリガ関数を指定するためのトリガ関数選択パネルの一例を示す模式図である。
【００８４】
図１０に示すように、トリガ関数選択パネル１７００には、トリガ関数を指定するためのチェックボックス１７０１と、ＯＫボタン１７０２と、キャンセルボタン１７０３を具備している。なお、チェックボックス１７０１でチェック可能な関数は、図２に示したプログラムソース新規作成時にＳ２０１でトリガ関数選択パネル８００（図４）でトリガ関数として選択された関数に絞られるようにＣＰＵ１０２により制御されているものとする。なお、図２に示したプログラムソース新規作成時にトリガ関数として選択された関数は、機能関連ファイル１１００より取得可能である。
【００８５】
以下、図９のシーケンス図の説明に戻る。
【００８６】
トリガ関数を選択後、ユーザからの作業名設定ボタン１３０９の押下指示に応じて、クライアント端末１００のＣＰＵ１０２は、作業名設定処理を実行する（６０４）。この際、クライアント端末１００のＣＰＵ１０２は、図１１に示す作業名選択パネル９００を表示装置１０７に表示し（Ｓ６０５）、作業名の設定を受け付ける。
【００８７】
図１１は、本発明における作業名選択パネル９００の一例を示す模式図である。
【００８８】
作業名選択パネル９００において、９０１はコンボボックスであり、プログラムソース修正時に過去の作業名、又は、新規の作業名をクライアント端末１００の入力装置１０６により入力するためのものである。
【００８９】
９０２は新規作成ボタンであり、このボタンをクライアント端末１００の入力装置１０６により押下指示することにより、プログラムソースの修正処理に新規の作業名を設定することができる。
【００９０】
９０３はＯＫボタンであり、このボタンをクライアント端末１００の入力装置１０６により押下指示することにより、プログラムソースの修正処理に過去の作業名を選択設定することができる。
【００９１】
９０４はキャンセルボタンであり、このボタンをクライアント端末１００の入力装置１０６により押下指示することにより、作業名の設定をキャンセルすることができる。
【００９２】
以下、図９のシーケンス図の説明に戻る。
【００９３】
作業名設定後、設定された作業名をＲＡＭ１０３内に保持し、クライアント端末１００のＣＰＵ１０２は、作業パネル１３００のソースコードウィンドウ１３０３上でのプログラムソースの修正操作を受け付け、ユーザはソースコードの編集（修正作業）を行う（Ｓ６０６）。この際、クライアント端末１００のＣＰＵ１０２は、内部的に修正箇所情報(ステップＳ６０４で設定された作業名，修正後のステップ情報（行番号），修正日時，アカウント情報，バージョン情報，コメント，修正前ソースコード)を修正ラベルとしてプログラムソースの修正箇所に挿入するものとする。
【００９４】
そして、ユーザがこの作業パネル１３００のソースコードウィンドウ１３０３上でプログラムソースを修正した後、保存ボタン１３０７が指示されると、この指示に応じて、クライアント端末１００のＣＰＵ１０２は、Ｓ６０６で修正したソースコードを、サーバ装置２００のＤＢ２０１に更新登録する（Ｓ６２５）。即ち、ソースコードに対する機能（トリガ関数）毎の一連の修正を一つの作業単位として、該作業単位を識別可能に修正情報を蓄積する（Ｓ６０２で設定した作業名とともにプログラムソース内に蓄積する）。また、これらの情報を、関数名に対応つけてプログラムソース外に蓄積させるように構成してもよい。
【００９５】
なお、Ｓ６０６で、図２に示したプログラムソース新規作成時にＳ２０１でトリガ関数として選択された関数が実行された際に呼び出される関数が新たに作成された場合には、ＣＰＵ１０２は、その関数に関数ＩＤを付与するとともに、その関数内にロギングコードを挿入する。このロギングコードには、開始位置，終了位置を示す情報，関数名，関数ＩＤをログ出力するロギングコードとする。なお、図２に示したプログラムソース新規作成時にトリガ関数として選択された関数は、機能関連ファイル１１００より取得可能である。
【００９６】
次に、ユーザからのコンパイルボタン１３１０の押下指示（コンパイルまたはビルド指示）に応じて、クライアント端末１００のＣＰＵ１０２は、コンパイル（ビルド）処理を実行する（Ｓ６０７）。この際、クライアント端末１００のＣＰＵ１０２は、該コンパイルによってプログラムにエラーコードがあった場合、エラーメッセージをウィンドウ１３０４に表示し、ユーザにソースコードを再編集させてエラーの修正を行わせる。
【００９７】
一方、該コンパイルによってプログラムにエラーコードが無かった場合、クライアント端末１００のＣＰＵ１０２は、関数管理テーブル１０００の取得をサーバ装置２００のＤＢ２０１に要求して(Ｓ６０８)、サーバ装置２００から返信される関数管理テーブル１０００を取得する（Ｓ６０９）。
【００９８】
次に、クライアント端末１００のＣＰＵ１０２は、ステップＳ６０６で修正されたプログラムソースに基づいて、ステップＳ６０９で取得した関数管理テーブル１０００を更新し（Ｓ６１０）、該更新した関数管理テーブルを、サーバ装置２００のＤＢ２０１に更新登録する(Ｓ６１１)。この時、サーバ装置２００のＣＰＵ２０２は、クライアント端末１００からの関数管理テーブル等の登録要求に基づいて、クライアント端末１００から受け取った関数管理テーブル等をＤＢ２０１に更新登録する。
【００９９】
次に、ユーザからの実行ボタン１３１１の押下指示（ステップＳ６０７にて生成されたプログラム実行体の実行指示）に応じて、クライアント端末１００のＣＰＵ１０２は、Ｓ６０７でコンパイルしたプログラム実行体を実行する（Ｓ６１２）。この際、クライアント端末１００のＣＰＵ１０２は、機能関連ファイル１１００の取得をサーバ装置２００のＤＢ２０１に要求して(Ｓ６１３)、サーバ装置２００から返信される機能関連ファイル１１００を取得する（Ｓ６１４）。
【０１００】
そして、クライアント端末１００のＣＰＵ１０２は、Ｓ６０２，Ｓ６０３の処理において設定した関数以下の動作情報に変更があった場合、該変更に基づいてＳ６１４で取得した機能関連ファイル１１００を更新する（Ｓ６１５）。
【０１０１】
次に、クライアント端末１００のＣＰＵ１０２は、Ｓ６１５で更新した機能関連ファイル１１００を、サーバ装置２００のＤＢ２０１に更新登録する(Ｓ６１６)。この時、サーバ装置２００のＣＰＵ２０２は、クライアント端末１００からの機能関連ファイル１１００の登録要求に基づいて、クライアント端末１００から受け取った機能関連ファイル１１００をＤＢ２０１に更新登録する。
【０１０２】
次に、クライアント端末１００のＣＰＵ１０２は、関数管理テーブル１０００の取得をサーバ装置２００のＤＢ２０１に要求して(Ｓ６１７)、サーバ装置２００から返信される関数管理テーブル１０００を取得する（Ｓ６１８）。
【０１０３】
そして、クライアント端末１００のＣＰＵ１０２は、Ｓ６１８で取得した関数管理テーブル１０００内関連機能項目１００７に変更があった場合、該関数管理テーブル１０００内の関連機能項目１００７の関連機能を更新・登録する。
【０１０４】
そして、クライアント端末１００のＣＰＵ１０２は、機能関連ファイル１１００に書き込まれた関数のプログラムソースを調べ、プログラムソース内に挿入された修正箇所情報(作業名，修正後のステップ情報（行番号），修正日時，アカウント情報，バージョン情報，コメント，修正前ソースコード)を、作業名毎に修正履歴ファイル１２００（図１２）に順次書き込むことによって、修正履歴ファイル１２００を作成する（Ｓ６１９）。即ち、修正履歴ファイル１２００内の修正情報は、機能（トリガ関数）毎に、各機能内では作業毎に、各作業内ではその機能での関数実行順に並べられた情報として生成される。なお、ここで、修正履歴ファイル１２００に書き込まれる修正情報は、Ｓ６０２で選択されたトリガ関数に対応するもののみとする。
【０１０５】
そして、クライアント端末１００のＣＰＵ１０２は、Ｓ６１９で作成した修正履歴ファイル１２００を、Ｓ６１２で実行したプログラム実行体のプログラムソース及びＳ６０３で選択された対応するトリガ関数（機能）に紐付けて、サーバ装置２００のＤＢ２０１に登録する(Ｓ６２０)。この時、サーバ装置２００のＣＰＵ２０２は、クライアント端末１００からの修正履歴ファイル１２００の登録要求に基づいて、クライアント端末１００から受け取った修正履歴ファイル１２００をＤＢ２０１に登録する。
【０１０６】
図１２は、図９のステップＳ６１９で作成される修正履歴ファイル１２００の一例を示す模式図である。
【０１０７】
図１２に示すように、修正履歴ファイル１２００には、作業名（・・・で示し、複数記載可）毎に、関数毎の修正履歴（・・・で示し、複数記載可）が記載される。
【０１０８】
この関数毎の修正履歴には、関数名（・・・で示す），関数ＩＤ（・・・で示す），ステップ（行）毎の修正情報（・・・で示し、複数記載可）が記載される。
【０１０９】
ステップ毎の修正情報には、行番号（・・・で示す），修正日時（・・・で示す），アカウント情報（・・・で示す），バージョン情報（・・・で示す），コメント（・・・で示す），修正前ソースコード（・・・で示す）が記載される。
【０１１０】
なお、アカウント情報（・・・で示す）には、ユーザ名（・・・で示す）が記載される。
【０１１１】
以下、図９のシーケンス図の説明に戻る。
【０１１２】
次に、クライアント端末１００のＣＰＵ１０２は、ステップＳ６２１において、機能ごとの修正履歴を、図１２の１２０１に示すように、関数管理テーブル１０００および機能関連ファイル１１００に関連付け、ツリー形式で作業パネル１３００内の修正履歴ツリーウィンドウ１３０２に表示する（Ｓ６２２）。そして、プログラムソース修正時の処理を終了する。
【０１１３】
以下、図１３のフローチャートを参照して、図９に示したステップＳ６１９，Ｓ６２０の修正履歴ファイル作成処理を詳細に説明する。
【０１１４】
図１３は、本発明の第５の制御処理の一例を示すフローチャートであり、図９に示したステップＳ６１９，Ｓ６２０の修正履歴ファイル作成処理を詳細に説明するフローチャートに対応する。なお、図中、Ｓ７００〜Ｓ７０４はクライアント端末１００のＣＰＵ１０２が外部メモリ１０５からプログラムをＲＡＭ１０３上に読み出して実行することにより実現される処理に対応する。
【０１１５】
まず、ステップＳ７００において、クライアント端末１００のＣＰＵ１０２は、プログラム実行の操作後、機能関連ファイル１１００（図６）を参照し、図９のＳ６０２で選択されたトリガ関数及びトリガ関数から呼び出される関数毎に、図９のＳ６０６で修正したプログラムソース内の修正ラベルの有無のチェックを行う。
【０１１６】
次に、ステップＳ７０１において、いずれの関数内に修正ラベルが無いと判定した場合には、クライアント端末１００のＣＰＵ１０２は、そのまま処理を終了する。
【０１１７】
一方、ステップＳ７０１で、関数内に修正ラベルが有ると判定した場合には、ステップＳ７０２において、クライアント端末１００のＣＰＵ１０２は、修正ラベルの有る関数毎に、修正ラベルとしての修正箇所情報(ステップ情報（行番号），修正日時，アカウント情報，バージョン情報，コメント，修正前ソースコード)を、設定された作業情報とともに修正履歴ファイル１２００（図１２）に順次書き込む。
【０１１８】
次に、ステップＳ７０３において、クライアント端末１００のＣＰＵ１０２は、他の機能で使用されている関数の処理を実行する。なお、この処理の詳細は、後述する図１４に示す。
【０１１９】
そして、ステップＳ７０４において、クライアント端末１００のＣＰＵ１０２は、ステップＳ７０２，Ｓ７０３で作成した各トリガ関数（機能）に対応する各修正履歴ファイル１２００（図１２）をサーバ装置２００のＤＢ２０１にそれぞれ更新登録する。
【０１２０】
以下、図１４のフローチャートを参照して、図１３のステップＳ７０３の他の機能で使用されている関数の処理を詳細に説明する。
【０１２１】
図１４は、本発明の第６の制御処理の一例を示すフローチャートであり、図１３のステップＳ７０３の他の機能で使用されている関数の処理を詳細に説明するフローチャートに対応する。なお、図中、Ｓ１６０１〜１６０４はクライアント端末１００のＣＰＵ１０２が外部メモリ１０５からプログラムをＲＡＭ１０３上に読み出して実行することにより実現される処理に対応する。
【０１２２】
まず、ステップＳ１６０１において、クライアント端末１００のＣＰＵ１０２は、修正部分が関数内か否かを判定し、関数内でないと判定した場合には、そのまま図１３のフローチャートに処理を戻す。
【０１２３】
一方、ステップＳ１６０１で、修正部分が関数内と判断した場合には、ステップＳ１６０２において、クライアント端末１００のＣＰＵ１０２は、修正を含む関数の関数ＩＤを取得する。
【０１２４】
次に、ステップＳ１６０３において、クライアント端末１００のＣＰＵ１０２は、関数管理テーブル１０００を参照し、ステップＳ１６０２で取得したＩＤを用いて、修正した関数が当該機能（図９のＳ６０２でトリガ関数として設定された機能）以外で使用されているか否かを判定し、使用されていないと判定した場合には、そのまま図１３のフローチャートに処理を戻す。
【０１２５】
一方、ステップＳ１６０３で、修正した関数が当該機能（図９のＳ６０２でトリガ関数として設定された機能）以外で使用されていと判定した場合には、ステップＳ１６０５に処理を進める。
【０１２６】
ステップＳ１６０５では、クライアント端末１００のＣＰＵ１０２は、修正した関数を使用している他の機能（トリガ関数）の修正履歴ファイルをサーバ装置２００のＤＢ２０１から取得し、該取得した他の機能（トリガ関数）の修正履歴ファイルをサーバ装置２００に対し、当該修正履歴情報を追加して、図１３のフローチャートに処理を戻す。
【０１２７】
以下、図１５，図１６を参照して、修正履歴参照処理について説明する。
【０１２８】
図１５は、本発明の第７の制御処理の一例を示すフローチャートであり、修正履歴参照処理に対応する。なお、図中、Ｓ１６０１〜１６０４はクライアント端末１００のＣＰＵ１０２が外部メモリ１０５からプログラムをＲＡＭ１０３上に読み出して実行することにより実現される処理に対応する。
【０１２９】
まず、図３に示す作業パネル１３００がクライアント端末１００の表示装置１０７に表示されている状態で、ユーザにより検索ボタン１３１２又は開くボタン１３０６が押下指示されると、クライアント端末１００のＣＰＵ１０２は、本フローチャートの処理を開始する。
【０１３０】
まず、ステップＳ１４００において、クライアント端末１００のＣＰＵ１０２は、ユーザにより検索ボタン１３１２押下による関数・作業名検索指示があったか否かを判定し、関数・作業名検索指示があったと判定した場合には、クライアント端末１００のＣＰＵ１０２は、ステップＳ１４０１に処理を進める。
【０１３１】
ステップＳ１４０１では、クライアント端末１００のＣＰＵ１０２は、図１６に示す修正履歴検索パネル１５００を表示装置１０７に表示し、ユーザから入力を受け付ける。
【０１３２】
図１６は、本発明における修正履歴検索パネル１５００の一例を示す模式図である。
【０１３３】
図１６に示すように、修正履歴を参照したいトリガ関数を選択するためのリストボックス１５０１、作業名を選択するためのリストボックス１５０２、検索を開始するための検索開始ボタン１５０３を具備する。なお、修正履歴を検索する際は、トリガ関数または作業名のみでも検索可能である。
【０１３４】
以下、図１５のフローチャートの説明に戻る。
【０１３５】
そして、ユーザがリストボックス１５０１，１５０２から修正したい機能名（トリガ関数名），過去に修正した作業名の両方又はいずれかを選択し、検索開始ボタン１５０３を押下指示すると、クライアント端末１００のＣＰＵ１０２は、この指示に応じて、入力されたトリガ関数名，作業名をキーにして、サーバ装置２００内のＤＢ２０１に登録されている修正履歴ファイル１２００（図１２），プログラムソース，関数管理テーブル１０００（図５），機能関連ファイル（図６）を検索して取得する（Ｓ１４０１）。
【０１３６】
そして、ステップＳ１４０２において、クライアント端末１００のＣＰＵ１０２は、ステップＳ１４０１で検索して取得した修正履歴ファイル１２００（図１２），プログラムソース，関数管理テーブル１０００（図５），機能関連ファイル（図６）に基づいて、該当する機能のプログラムソース，機能関連ツリー，修正履歴ツリーを、機能関連ツリーウィンドウ１３０１，修正履歴ツリーウィンドウ１３０２，プログラムソースウィンドウ１３０３に表示する。そして、ステップＳ１４０５に処理を進める。
【０１３７】
一方、ステップＳ１４００で、ユーザにより検索ボタン１３１２押下による関数・作業名検索指示がなかった、即ち、開くボタン１３０６押下によるファイルオープン指示があったと判定した場合には、クライアント端末１００のＣＰＵ１０２は、ステップＳ１４０３に処理を進める。
【０１３８】
ステップＳ１４０３では、クライアント端末１００のＣＰＵ１０２は、図示しないダイアログによりオープンするプログラムソースを選択させて、該選択されたプログラムソース、及び、該プログラムソースに紐付けられて登録されている関数管理テーブル１０００（図５），機能関連ファイル（図６）をサーバ装置２００内のＤＢ２０１から取得し、該取得した修正履歴ファイル１２００（図１２），プログラムソース，関数管理テーブル１０００（図５），機能関連ファイル（図６）に基づいて、該当する機能のプログラムソース，機能関連ツリー，修正履歴ツリーを、機能関連ツリーウィンドウ１３０１，修正履歴ツリーウィンドウ１３０２，プログラムソースウィンドウ１３０３に表示する。この際、修正履歴ツリーウィンドウ１３０２には、図１７に示すように、修正情報が、機能（トリガ関数）毎に、各機能内では作業毎に、各作業内ではその機能での関数実行順に、ツリー構造に並べて表示出力される。また、各修正情報には、修正後の修正行番号，修正日時情報，修正者情報，バージョン情報，修正時にソース内に記載されたコメント，修正前のソースコードが含まれるものとする。
【０１３９】
次に、クライアント端末１００のＣＰＵ１０２は、ステップＳ１４０５に処理を進める。
【０１４０】
ステップＳ１４０５では、クライアント端末１００のＣＰＵ１０２は、ユーザが修正履歴ツリーウィンドウ１３０２上の修正ツリー上で修正履歴を選択したことを検知すると、ステップＳ１４０６に処理を進める。なお、修正履歴の選択は、作業名を選択してもよいし、関数名，行番号，修正日時等を選択してもよい。修正履歴として、修正日時を選択した様子を後述する図１７の１３９０に示す。
【０１４１】
ステップＳ１４０６において、クライアント端末１００のＣＰＵ１０２は、現行プログラムソースの修正前ソースコードを修正履歴ファイル１２００から取得する。次に、ステップＳ１４０７において、クライアント端末１００のＣＰＵ１０２は、Ｓ１４０６で取得した修正前ソースコードを現行プログラムソースへ反映し、現行プログラムソースを１つ前の状態に戻す（ロールバックする）。
【０１４２】
次に、ステップＳ１４０８において、クライアント端末１００のＣＰＵ１０２は、目的の修正履歴（Ｓ１４０５で選択された修正履歴）の状態まで現行プログラムソースが戻った（ロールバックした）か否かを判定し、まだ、戻っていないと判定した場合には、ステップＳ１４０６に処理を戻し、Ｓ１４０６，Ｓ１４０７の処理を繰り返す。
【０１４３】
一方、ステップＳ１４０８で、目的の修正履歴（Ｓ１４０５で選択された修正履歴）の状態まで現行プログラムソースが戻った（ロールバックした）と判定した場合には、クライアント端末１００のＣＰＵ１０２は、ステップＳ１４０９に処理を進める。
【０１４４】
ステップＳ１４０９では、クライアント端末１００のＣＰＵ１０２は、その時点でのプログラムソース（現行プログラムソース）をプログラムソースウィンドウ１３０３に表示する。
【０１４５】
そして、ステップＳ１４１０において、クライアント端末１００のＣＰＵ１０２は、Ｓ１４０７で反映した修正箇所を全て強調表示（例えば、太字、斜体、異なる書体、アンダーライン、マーカー表示、点滅表示等の強調表示）し、処理を終了する。この様子を、修正履歴を選択した様子を後述する図１７の１３９９に示す。
【０１４６】
図１７は、図３に示した作業パネル１３００において修正履歴を参照している様子を示した模式図である。
【０１４７】
以上示したように、プログラムソースで修正されたステップの修正情報に加え、修正者情報および修正日時も含めて修正履歴として蓄積するので、詳細な修正履歴を管理できる。
【０１４８】
これにより、複数人での作業の際、プログラムソースを誰がいつ、どのステップを修正したかを管理することができるので、作業状況を共有することができる。
【０１４９】
また、過去の修正履歴を表示する際に、修正履歴をシステムの機能のトリガとなる関数ごとに関連名によって視覚的に表示することにより、参照したい過去の修正履歴の探索を速やかに行うことができる。
【０１５０】
さらに修正履歴を表示する際に、複数のモジュール、ソースファイル、関数にまたがった修正コードをプログラムで実行される順に時系列に並べ替えて表示するので、プログラムの修正手順および修正内容の把握が容易になる。これにより、過去の修正と同様の修正を行う場合に、該当する過去の修正箇所を速やかに検索して次の修正に役立てることができる。この結果、プログラムの修正を行う場合に、過去の修正内容の理解とプログラム修正の効率化を図ることができる等の効果を奏する。
【０１５１】
また、バージョン毎に全てのプログラムソースを保存しておく必要もなく、ソース管理が容易になる等の効果を奏する。
【０１５２】
なお、上記実施形態では、サーバ装置２００を設け、サーバ装置２００内のＤＢ２０１により、各種データを管理する構成について説明した。しかし、サーバ装置２００を設けることなく、クライアント端末１００内にＤＢ２０１を実装して、各種データを管理するように構成してもよい。
【０１５３】
また、上記実施形態では、図２に示したプログラムソース作成時の処理，図９に示したプログラムソース修正時の処理において、ソースコードの履歴を管理するトリガ関数（機能）を選択する構成合について説明したが、トリガ関数を選択することなく、全てのトリガ関数（機能）を対象にしてプログラムソース作成時の処理，プログラムソース修正時の処理を行うように構成してもよい。
【０１５４】
また、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【０１５５】
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１５６】
以下、図１８に示すメモリマップを参照して本発明に係るソースコード修正履歴管理装置としての情報処理装置で読み取り可能なデータ処理プログラムの構成について説明する。
【０１５７】
図１８は、本発明に係るソースコード修正履歴管理装置としての情報処理装置（クライアント端末１００）で読み取り可能な各種データ処理プログラムを格納する記録媒体（記憶媒体）のメモリマップを説明する図である。
【０１５８】
なお、特に図示しないが、記録媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０１５９】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、インストールするプログラムやデータが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０１６０】
本実施形態における図２，図７，図８，図９Ａ，図９Ｂ，図１３，図１４，図１５に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記録媒体により、あるいはネットワークを介して外部の記録媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【０１６１】
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１６２】
この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【０１６３】
プログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＤＶＤ−ＲＯＭ，磁気テープ，不揮発性のメモリカード，ＲＯＭ，ＥＥＰＲＯＭ，シリコンディスク等を用いることができる。
【０１６４】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１６５】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１６６】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１６７】
さらに、本発明を達成するためのソフトウェアによって表されるプログラムをネットワーク上のサーバ，データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１６８】
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【図面の簡単な説明】
【０１６９】
【図１】本発明の一実施形態を示すソースコード修正履歴管理装置としての情報処理装置を適用可能なシステムのハードウェア構成の一例を示す図である。
【図２】本発明の第１の制御処理の一例を示すシーケンス図である。
【図３】本発明における作業パネルの一例を示す模式図である。
【図４】本発明においてプログラムソースの新規作成時にトリガ関数を指定するためのトリガ関数選択パネルの一例を示す模式図である。
【図５】図２のステップＳ２０６で作成される関数管理テーブルの一例を示す模式図である。
【図６】図２のステップＳ２０９で作成される機能関連ファイルの一例を示す模式図である。
【図７】本発明の第２の制御処理の一例を示すフローチャートである。  フローチャートである。
【図８】本発明の第３の制御処理の一例を示すフローチャートである。
【図９Ａ】本発明の第４の制御処理の一例を示すシーケンス図である。
【図９Ｂ】本発明の第４の制御処理の一例を示すシーケンス図である。
【図１０】本発明においてプログラムソースの修正時にトリガ関数を指定するためのトリガ関数選択パネルの一例を示す模式図である。
【図１１】本発明における作業名選択パネル９００の一例を示す模式図である。
【図１２】図９のステップＳ６１９で作成される修正履歴ファイル１２００の一例を示す模式図である。
【図１３】本発明の第５の制御処理の一例を示すフローチャートである。  フローチャートである。
【図１４】本発明の第６の制御処理の一例を示すフローチャートである。  フローチャートである。
【図１５】本発明の第７の制御処理の一例を示すフローチャートである。
【図１６】本発明における修正履歴検索パネル１５００の一例を示す模式図である。
【図１７】図３に示した作業パネル１３００において修正履歴を参照している様子を示した模式図である。
【図１８】本発明に係るソースコード修正履歴管理装置としての情報処理装置（クライアント端末１００）で読み取り可能な各種データ処理プログラムを格納する記録媒体（記憶媒体）のメモリマップを説明する図である。
【符号の説明】
【０１７０】
１００  クライアント端末
１０２  ＣＰＵ
１０５  外部メモリ
１０６  入力装置
１０７  表示装置
１１０  機能関連ファイル
２００  サーバ装置
２００  サーバ装置
２０１  ＤＢ
３００  通信ネットワーク
９００  作業名選択パネル
１０００  関数管理テーブル
１１００  機能関連ファイル
１２００  修正履歴ファイル
【図１】
2008134900.tif 000003
【図２】
2008134900.tif 000004
【図３】
2008134900.tif 000005
【図４】
2008134900.tif 000006
【図５】
2008134900.tif 000007
【図６】
2008134900.tif 000008
【図７】
2008134900.tif 000009
【図８】
2008134900.tif 000010
【図９Ａ】
2008134900.tif 000011
【図９Ｂ】
2008134900.tif 000012
【図１０】
2008134900.tif 000013
【図１１】
2008134900.tif 000014
【図１２】
2008134900.tif 000015
【図１３】
2008134900.tif 000016
【図１４】
2008134900.tif 000017
【図１５】
2008134900.tif 000018
【図１６】
2008134900.tif 000019
【図１７】
2008134900.tif 000020
【図１８】
2008134900.tif 000021