説明

ソースコード修正履歴管理装置およびソースコード修正履歴管理方法およびプログラムおよび記録媒体

【課題】プログラムソースで修正されたステップの修正情報に加え、修正者情報および修正日時も含めて詳細な修正履歴を管理でき、また、修正ステップをプログラムで実行される順に時系列に並べて表示でき、プログラムの修正手順および修正内容を容易に把握できようにすること。
【解決手段】クライアント端末100のCPU102は、ソースコードの修正が行われた際に、該修正情報をソースコード内に蓄積し、該ソースコード内に記憶される修正履歴を、前記修正されたソースコードに基づくプログラムの実行順に並べた修正履歴情報として生成して表示する構成を特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラムソースの修正履歴か管理するソースコード修正履歴管理装置およびソースコード修正履歴管理方法およびプログラムおよび記録媒体に関する。
【背景技術】
【0002】
従来、プログラムのバージョン更新等によるソースファイルの修正箇所の履歴を管理することは、過去の修正内容の把握を容易にし、過去の修正と同様の修正を行う場合に過去の修正箇所を参考にできることによって効率的な修正作業が可能となる点で有意義である。
【0003】
このような利点を生かす方法として、特許文献1には、以下のようなプログラムソースの履歴管理方法が提案されている。
【0004】
この方法では、まず修正前と修正後の各プログラムソースを関数単位で比較し、修正前後のプログラムソース間の差分を修正履歴として取得しデータベースに蓄積する。そして、蓄積された修正履歴の中の修正された関数名を、他の修正された関数名との関連を示しつつ識別可能に出力することによって、複数のモジュール、ソースファイル、関数にまたがった修正箇所を容易に把握することができる。これにより、過去の修正と同様の修正を行う場合に該当する過去の修正箇所を速やかに検索して次の修正に役立てることができ、プログラム修正の効率化を図ることができる。
【特許文献1】特開2001−256043号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1では、関連を示して関数毎の修正情報を表示するだけであるため、修正箇所を関数毎に検索することはできても、プログラムが実行される順序との関連は不明であるため、詳細な修正手順を示すことはできなかった。プログラムソースを誰がいつ、どのステップをどの順序で修正したか、それがどの機能に関連する修正であったのか、修正箇所の実行順序はどうなっているのか等といったことは管理できず、詳細な作業状況を共有することができなかった。
【0006】
その結果、人がプログラムソースと修正履歴を比較して、プログラムが実行される順に修正箇所を追う事によって、行われる場合が多く非常に煩雑であった。
【0007】
また、特許文献1の方法では、修正履歴を実行順序で管理していないため、実行順序によって修正箇所を並べる際にプログラムの修正回数が増えた場合等、ソース管理が非常に面倒なものとなってしまう。
【0008】
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、プログラムソースで修正されたステップ毎の詳細な修正履歴をプログラムで実行される順に時系列に並べて表示でき、プログラムの修正手順および修正内容を容易に把握でき、さらに、プログラムソース管理も容易な優れたプログラムソース履歴管理環境を構築する仕組を提供することである。
【課題を解決するための手段】
【0009】
本発明は、ソースコードの修正が行われた際に、該修正情報を蓄積する記憶手段と、前記記憶手段に記憶される修正履歴を、前記修正されたソースコードに基づいたプログラムにより実行される順に並べた修正履歴情報として生成する生成手段と、を有することを特徴とする。
【発明の効果】
【0010】
本発明によれば、プログラムソースで修正されたステップ毎の詳細な修正履歴をプログラムで実行される順に時系列に並べて表示でき、プログラムの修正手順および修正内容を容易に把握でき、さらに、プログラムソース管理も容易な優れたプログラムソース履歴管理環境を構築できる等の効果を奏する。
【発明を実施するための最良の形態】
【0011】
〔第1実施形態〕
図1は、本発明の一実施形態を示すソースコード修正履歴管理装置としての情報処理装置を適用可能なシステムのハードウェア構成の一例を示す図である。
【0012】
図1において、100はクライアント端末、200はサーバ装置、300は通信ネットワークである。
【0013】
図1に示すように、本システムでは、複数のクライアント端末100a〜100cとサーバ装置200が通信ネットワーク300を介して通信可能に接続されている。
【0014】
クライアント端末100において、102はCPUであり、クライアント端末の中枢となる制御装置であって各種制御を行う。103はRAM(Random Access Memory)であって、プログラムのワークエリアや一時的に保持するデータのバッファとして利用する。
【0015】
104はROM(Read Only Memory)であって、CPU102が実行するプログラムの保存等を行う。105は外部メモリであって、CPU102が実行する各種プログラムや各データの保持を行うものであり、具体的にはハードディスクドライブやDVDドライブ等である。
【0016】
106は入力装置であって、この装置を通じてCPU102にデータなどの入力を行うためのものであり、具体的には、キーボードやマウスである。
【0017】
107は表示装置であって、具体的にはディスプレイ等である。108は通信インターフェースであって、LANなどの伝送路と端末とを接続する部分である。
【0018】
サーバ装置200において、202はCPUであり、サーバ装置の中枢となる制御装置であって各種制御を行う。203はRAM(Random Access Memory)であって、プログラムのワークエリアや一時的に保持するデータのバッファとして利用する。
【0019】
204はROM(Read Only Memory)であって、CPU202が実行するプログラムの保存等を行う。205は外部メモリであって、CPU202が実行する各種プログラムや各データの保持を行うものであり、具体的にはハードディスクドライブやDVDドライブ等である。
【0020】
206は入力装置であって、この装置を通じてCPU202にデータなどの入力を行うためのものであり、具体的には、キーボードやマウスである。
【0021】
207は表示装置であって、具体的にはディスプレイ等である。208は通信インターフェースであって、LANなどの伝送路と端末とを接続する部分である。
【0022】
201はDBであり、後述するプログラムソース,関数管理テーブル,機能関連ファイル,修正履歴ファイル等を記憶管理するためのものである。なお、DB201は、外部メモリ205内に実装されてもよいし、他の記憶装置内に実装されていてもよい。
【0023】
以下、図2〜図16を参照して、本発明の制御処理について説明する。
【0024】
まず、図2〜図8を参照して新規プログラムソース作成時の処理について説明する。その後、図9〜図14を参照してプログラムソース修正時の処理について説明する。さらにその後、図15,図16を参照してプログラムソース修正時の処理について説明する。
【0025】
図2は、本発明の第1の制御処理の一例を示すシーケンス図であり、プログラムソースを新規作成し、作成後のプログラムを実行することで機能関連ファイルを作成する一連の処理に対応する。なお、図中、S200〜S215はクライアント端末100のCPU102が外部メモリ105からプログラムをRAM103上に読み出して実行することにより実現される処理に対応する。
【0026】
まず、図3に示す作業パネル1300がクライアント端末100の表示装置107に表示されている状態で、ユーザにより新規作成ボタン1305が押下指示されると、クライアント端末100のCPU102は、プログラムソース(ソースコード)の新規作成処理を実行する。この際、クライアント端末100のCPU102は、作業パネル1300のソースコードウィンドウ1303上でのプログラムソースの作成編集操作を受け付ける。
【0027】
図3は、本発明における作業パネルの一例を示す模式図である。
【0028】
図3に示すように、作業パネル1300は、選択した機能の機能関連ツリーを表示する機能関連ツリーウィンドウ1301、修正履歴ツリーを表示する修正履歴ツリーウィンドウ1302、ソースコードを作成・表示・修正するソースコードウィンドウ1303、コンソールを表示するコンソールウィンドウ1304を具備している。
【0029】
なお、ウィンドウ1301,1302,1303は、新規作成モードでは空白表示される。
【0030】
1305は新規作成ボタンであり、ソースコードを新規作成する際にクライアント端末100の入力装置106により押下指示する。1306は開くボタンであり、作成済のソースコードをオープンする際にクライアント端末100の入力装置106により押下指示する。1307は保存ボタンであり、新規作成又は修正したソースコードを保存する際にクライアント端末100の入力装置106により押下指示する。
【0031】
また、1308はトリガ関数選択ボタンであり、このボタンをクライアント端末100の入力装置106により押下指示することにより、トリガ関数を選択することができる。
【0032】
また、1309は作業名設定ボタンであり、後述するプログラムソースの修正処理時に、このボタンをクライアント端末100の入力装置106により押下指示することにより、後述する作業名の設定を行うことができる。
【0033】
また、1310はコンパイルボタンであり、このボタンをクライアント端末100の入力装置106により押下指示することにより、コンパイル処理を実行することができる。
【0034】
また、1311は実行ボタンであり、このボタンをクライアント端末100の入力装置106により押下指示することにより、プログラムを実行することができる。
【0035】
また、1312は検索ボタンであり、トリガ関数名,作業名に基づく検索処理を行う際にクライアント端末100の入力装置106により押下指示する。
【0036】
以下、図2のシーケンス図の説明に戻る。
【0037】
そして、ユーザがこの作業パネル1300のソースコードウィンドウ1303上でプログラムソースを新規作成した後、保存ボタン1307が指示されると、この指示に応じて、クライアント端末100のCPU102は、S200で作成したソースコードを、サーバ装置200のDB201に登録する(S216)。この時、サーバ装置200のCPU202は、クライアント端末100からのソースコードの登録要求に基づいて、クライアント端末100から受け取ったソースコードをDB201に登録する。
【0038】
次に、ユーザよりトリガ関数選択ボタン1308が指示されると、この指示に応じて、クライアント端末100のCPU102は、トリガ関数選択処理を実行する(S201)。
【0039】
この際、クライアント端末100のCPU102は、図4に示す新規作成時のトリガ関数選択パネル800を表示装置107に表示し(S202)、トリガ関数の選択を受け付ける。
【0040】
図4は、本発明においてプログラムソースの新規作成時にトリガ関数を指定するためのトリガ関数選択パネルの一例を示す模式図である。
【0041】
図4に示すように、トリガ関数選択パネル800には、トリガ関数を指定するためのチェックボックス801と、OKボタン802と、キャンセルボタン803を具備している。
【0042】
以下、図2のシーケンス図の説明に戻る。
【0043】
トリガ関数を選択後、ユーザからのコンパイルボタン1310の押下指示(コンパイルまたはビルド指示)に応じて、クライアント端末100のCPU102は、S200で作成したプログラムソースのコンパイル(ビルド)処理を実行する(S203)。この際、クライアント端末100のCPU102は、該コンパイルによってプログラムにエラーコードが無かった場合、プログラムソース作成者のアカウント情報,プログラムソースの全ステップ(行)情報を取得し(S204,S205)、プログラムソース内の全関数にIDを割振り、図6に示す関数管理テーブルを作成する(S206)。
【0044】
図5は、図2のステップS206で作成される関数管理テーブルの一例を示す模式図である。
【0045】
図5に示すように、関数管理テーブル1000は、クラス名1001、ユニークな関数ID1002、引数1003、戻り値1004、新規作成日時1005、関連機能1006をデータとして持っている。
【0046】
以下、図2のシーケンス図の説明に戻る。
【0047】
そして、クライアント端末100のCPU102は、取得した情報や、関数管理テーブルを、S216で登録したプログラムソースに紐付けてサーバ装置200のDB201に登録する(S207)。この時、サーバ装置200のCPU202は、クライアント端末100からの関数管理テーブル等の登録要求に基づいて、クライアント端末100から受け取った関数管理テーブル等をDB201に登録する。
【0048】
次に、ユーザからの実行ボタン1311の押下指示(ステップS203にて生成されたプログラム実行体の実行指示)に応じて、クライアント端末100のCPU102は、該プログラム実行体を実行する(S208)。この際、クライアント端末100のCPU102は、S201のトリガ関数選択処理において設定(選択)された関数以下の動作情報(関数実行順序)を、図6に示す機能関連ファイルとして作成する(S209)。
【0049】
図6は、図2のステップS209で作成される機能関連ファイルの一例を示す模式図である。
【0050】
図6に示すように、機能関連ファイル1100は、例えばXMLのような階層型データ構造を持つことによって、機能関連ツリー1101のようにトリガ関数によって呼び出される関数の階層構造を保持する。
【0051】
以下、図2のシーケンス図の説明に戻る。
【0052】
そして、クライアント端末100のCPU102は、作成した機能関連ファイルを、S216で登録したプログラムソースに紐付けてサーバ装置200のDB201に登録する(S209)。この時、サーバ装置200のCPU202は、クライアント端末100からの機能関連ファイルの登録要求に基づいて、クライアント端末100から受け取った機能関連ファイルをDB201に登録する。
【0053】
次に、クライアント端末100のCPU102は、S216で登録したプログラムソースに対応する関数管理テーブル1000の取得をサーバ装置200のDB201に要求して(S211)、サーバ装置200から返信される関数管理テーブルを取得する(S212)。
【0054】
次に、クライアント端末100のCPU102は、ステップS212で取得した関数管理テーブル1000内の関連機能項目1007に関連機能を登録する(S213)。
【0055】
この関連機能の登録終了後、クライアント端末100のCPU102は、該関連機能が更新された関数管理テーブル1000をDB201に更新登録する(S214)。この時、サーバ装置200のCPU202は、クライアント端末100からの関数管理テーブルの登録要求に基づいて、クライアント端末100から受け取った関数管理テーブルをDB201に更新登録する。
【0056】
次に、クライアント端末100のCPU102は、作成された機能関連ファイルをツリー形式で、図3に示した作業パネル1300の機能関連ツリーウィンドウ1301に表示する(S215)。
【0057】
以下、図7のフローチャートを参照して、図2に示したステップS203のコンパイル時の処理を詳細に説明する。
【0058】
図7は、本発明の第2の制御処理の一例を示すフローチャートであり、図2に示したステップS203のコンパイル時の処理を詳細に説明するフローチャートに対応する。なお、図中、S300〜S312はクライアント端末100のCPU102が外部メモリ105からプログラムをRAM103上に読み出して実行することにより実現される処理に対応する。
【0059】
まず、ステップS300において、クライアント端末100のCPU102は、図2のS216で登録したプログラムソースのコンパイル処理し、ステップS301において、このコンパイル処理で、エラーが無かったか否かを判定する。
【0060】
そして、ステップS301で、エラーが有った(エラーコードが返された)と判定した場合には、クライアント端末100のCPU102は、そのまま処理を終了する。
【0061】
一方、ステップS301で、エラーが無かった(エラーコードを返さなかった)と判定した場合には、クライアント端末100のCPU102は、ステップS302に処理を進める。
【0062】
ステップS302では、クライアント端末100のCPU102は、トリガ関数が設定されているか否かのチェックを行い、トリガ関数が設定されていないと判定した場合には、そのままステップS305に処理を進める。
【0063】
一方、ステップS302でトリガ関数が設定されていると判断した場合には、クライアント端末100のCPU102は、ステップS304において、プログラムソースにロギングコードを挿入する。なお、このロギングコードは、トリガ関数、及び、トリガ関数により呼び出される関数内に、開始位置,終了位置を示す情報(例えば・・・や・・・で示し、ロギング関数又はロギング関数により呼び出される関数であることを示す情報を含む),関数名(・・・で示す),関数ID(・・・で示す)をログ出力するロギングコードとする。
【0064】
次に、ステップS305において、クライアント端末100のCPU102は、プログラムソースをリコンパイルし、ステップS305に処理を進める。
【0065】
ステップS305では、クライアント端末100のCPU102は、プログラムソース作成者のアカウント情報を取得する。
【0066】
次に、ステップS306において、クライアント端末100のCPU102は、プログラムソースのステップ(行)情報を取得する。
【0067】
次に、ステップS307において、クライアント端末100のCPU102は、ステップS306で取得したプログラムソース(1ステップ分)を解析し、ステップS308において、該ステップが関数となるコードであるか否かを判定し、関数となるコードでないと判定した場合には、ステップS306に処理を戻し、次のステップの処理に移行する。
【0068】
一方、ステップS308で、このステップが関数となるコードであると判断した場合には、クライアント端末100のCPU102は、ステップS309に処理を進める。
【0069】
次に、ステップS309において、クライアント端末100のCPU102は、ステップS308で判定された関数に関数ID(ユニークな番号)を割り振り、この関数の情報(クラス名,関数名,引数,戻り値,新規作成日等の情報)とともRAM103内に保持する。
【0070】
次に、ステップS310において、クライアント端末100のCPU102は、プログラムソースの次のステップ(行)がEOFであるか否かを判定し、EOFでないと判定した場合には、ステップS306に処理を戻し、次のステップの処理に移行する。
【0071】
一方、ステップS310で、プログラムソースの次のステップ(行)がEOFであると判定した場合には、クライアント端末100のCPU102は、ステップS311に処理を進める。
【0072】
ステップS311では、クライアント端末100のCPU102は、RAM103内に保持された、関数ID,関数の情報(クラス名,関数名,引数,戻り値,新規作成日等の情報)に基づいて、図5に示した関数管理テーブル1000を作成し、ステップS312において、該関数管理テーブル1000を、S300でコンパイルしたプログラムソース(即ち、図2のS216で登録したプログラムソース)に紐付けて、サーバ装置200のDB201に登録処理し、本コンパイル処理を終了する。
【0073】
以下、図8のフローチャートを参照して、図2に示したステップS208のプログラム実行時の処理を詳細に説明する。
【0074】
図8は、本発明の第3の制御処理の一例を示すフローチャートであり、図2に示したステップS208のプログラム実行時の処理を詳細に説明するフローチャートに対応する。なお、図中、S500〜S503はクライアント端末100のCPU102が外部メモリ105からプログラムをRAM103上に読み出して実行することにより実現される処理に対応する。
【0075】
まず、ステップS500において、クライアント端末100のCPU102は、図2のS203でコンパイルしたプログラム実行体を実行し、このプログラム実行時に、ロギングコードから機能関連ファイル1100(図6)を外部メモリ105内に生成する(S501)。
【0076】
そして、ステップS502において、クライアント端末100のCPU102は、ステップS501で生成された機能関連ファイル1100を、S500で実行したプログラム実行体のプログラムソースに紐付けて、サーバ装置200のDB201に登録する。
【0077】
次に、ステップS503において、クライアント端末100のCPU102は、関数管理テーブル1000を更新する。詳細には、まずサーバ装置200のDB201から関数管理テーブル1000(図5)を取得する。そして、クライアント端末100のCPU102は、ステップS501で生成した機能関連ファイル1100(図6)内の各関数ID(・・・で示す)と一致する関数管理テーブル1000内の関連機能項目1007に、トリガ関数のID番号を追加する。そして、クライアント端末100のCPU102は、上記関数管理テーブル1000を再びDB201に更新登録する。そして、本プログラム実行時の処理を終了する。
【0078】
次に、図9〜図16を参照してプログラムソース修正時の処理について説明する。
【0079】
図9A,図9Bは、本発明の第4の制御処理の一例を示すシーケンス図であり、プログラムソースを修正し、該修正情報及び関数管理テーブル1000及び機能関連ファイル1100から機能毎の修正履歴をプログラム実行順序に沿って表示する一連の処理に対応する。なお、図中、S600〜S625はクライアント端末100のCPU102が外部メモリ105からプログラムをRAM103上に読み出して実行することにより実現される処理に対応する。
【0080】
まず、図3に示す作業パネル1300がクライアント端末100の表示装置107に表示されている状態で、ユーザにより開くボタン1306が押下指示されオープンするプログラムソースが選択されると、クライアント端末100のCPU102は、プログラムソースの新規作成処理を実行する。この際、クライアント端末100のCPU102は、クライアント端末100のCPU102は、修正者であるユーザのアカウント情報をシステムから取得する(S601)。そして、クライアント端末100のCPU102は、選択されたプログラムソースの取得をサーバ装置200のDB201に要求して(S623)、サーバ装置200から返信されるプログラムソースを取得する(S624)。ここで、関数管理テーブル1000,機能関連ファイル1100も一緒に取得するようにしてもよい。そして、クライアント端末100のCPU102は、取得したプログラムソース等を開き作業パネル1300のソースコードウィンドウ1303上に表示する。
【0081】
次に、ユーザからのトリガ関数選択ボタン1308の押下指示に応じて、クライアント端末100のCPU102は、トリガ関数選択処理を実行する(S602)。
【0082】
この際、クライアント端末100のCPU102は、図10に示す修正時のトリガ関数選択パネル1700を表示装置107に表示し(S603)、トリガ関数の選択を受け付ける。
【0083】
図10は、本発明においてプログラムソースの修正時にトリガ関数を指定するためのトリガ関数選択パネルの一例を示す模式図である。
【0084】
図10に示すように、トリガ関数選択パネル1700には、トリガ関数を指定するためのチェックボックス1701と、OKボタン1702と、キャンセルボタン1703を具備している。なお、チェックボックス1701でチェック可能な関数は、図2に示したプログラムソース新規作成時にS201でトリガ関数選択パネル800(図4)でトリガ関数として選択された関数に絞られるようにCPU102により制御されているものとする。なお、図2に示したプログラムソース新規作成時にトリガ関数として選択された関数は、機能関連ファイル1100より取得可能である。
【0085】
以下、図9のシーケンス図の説明に戻る。
【0086】
トリガ関数を選択後、ユーザからの作業名設定ボタン1309の押下指示に応じて、クライアント端末100のCPU102は、作業名設定処理を実行する(604)。この際、クライアント端末100のCPU102は、図11に示す作業名選択パネル900を表示装置107に表示し(S605)、作業名の設定を受け付ける。
【0087】
図11は、本発明における作業名選択パネル900の一例を示す模式図である。
【0088】
作業名選択パネル900において、901はコンボボックスであり、プログラムソース修正時に過去の作業名、又は、新規の作業名をクライアント端末100の入力装置106により入力するためのものである。
【0089】
902は新規作成ボタンであり、このボタンをクライアント端末100の入力装置106により押下指示することにより、プログラムソースの修正処理に新規の作業名を設定することができる。
【0090】
903はOKボタンであり、このボタンをクライアント端末100の入力装置106により押下指示することにより、プログラムソースの修正処理に過去の作業名を選択設定することができる。
【0091】
904はキャンセルボタンであり、このボタンをクライアント端末100の入力装置106により押下指示することにより、作業名の設定をキャンセルすることができる。
【0092】
以下、図9のシーケンス図の説明に戻る。
【0093】
作業名設定後、設定された作業名をRAM103内に保持し、クライアント端末100のCPU102は、作業パネル1300のソースコードウィンドウ1303上でのプログラムソースの修正操作を受け付け、ユーザはソースコードの編集(修正作業)を行う(S606)。この際、クライアント端末100のCPU102は、内部的に修正箇所情報(ステップS604で設定された作業名,修正後のステップ情報(行番号),修正日時,アカウント情報,バージョン情報,コメント,修正前ソースコード)を修正ラベルとしてプログラムソースの修正箇所に挿入するものとする。
【0094】
そして、ユーザがこの作業パネル1300のソースコードウィンドウ1303上でプログラムソースを修正した後、保存ボタン1307が指示されると、この指示に応じて、クライアント端末100のCPU102は、S606で修正したソースコードを、サーバ装置200のDB201に更新登録する(S625)。即ち、ソースコードに対する機能(トリガ関数)毎の一連の修正を一つの作業単位として、該作業単位を識別可能に修正情報を蓄積する(S602で設定した作業名とともにプログラムソース内に蓄積する)。また、これらの情報を、関数名に対応つけてプログラムソース外に蓄積させるように構成してもよい。
【0095】
なお、S606で、図2に示したプログラムソース新規作成時にS201でトリガ関数として選択された関数が実行された際に呼び出される関数が新たに作成された場合には、CPU102は、その関数に関数IDを付与するとともに、その関数内にロギングコードを挿入する。このロギングコードには、開始位置,終了位置を示す情報,関数名,関数IDをログ出力するロギングコードとする。なお、図2に示したプログラムソース新規作成時にトリガ関数として選択された関数は、機能関連ファイル1100より取得可能である。
【0096】
次に、ユーザからのコンパイルボタン1310の押下指示(コンパイルまたはビルド指示)に応じて、クライアント端末100のCPU102は、コンパイル(ビルド)処理を実行する(S607)。この際、クライアント端末100のCPU102は、該コンパイルによってプログラムにエラーコードがあった場合、エラーメッセージをウィンドウ1304に表示し、ユーザにソースコードを再編集させてエラーの修正を行わせる。
【0097】
一方、該コンパイルによってプログラムにエラーコードが無かった場合、クライアント端末100のCPU102は、関数管理テーブル1000の取得をサーバ装置200のDB201に要求して(S608)、サーバ装置200から返信される関数管理テーブル1000を取得する(S609)。
【0098】
次に、クライアント端末100のCPU102は、ステップS606で修正されたプログラムソースに基づいて、ステップS609で取得した関数管理テーブル1000を更新し(S610)、該更新した関数管理テーブルを、サーバ装置200のDB201に更新登録する(S611)。この時、サーバ装置200のCPU202は、クライアント端末100からの関数管理テーブル等の登録要求に基づいて、クライアント端末100から受け取った関数管理テーブル等をDB201に更新登録する。
【0099】
次に、ユーザからの実行ボタン1311の押下指示(ステップS607にて生成されたプログラム実行体の実行指示)に応じて、クライアント端末100のCPU102は、S607でコンパイルしたプログラム実行体を実行する(S612)。この際、クライアント端末100のCPU102は、機能関連ファイル1100の取得をサーバ装置200のDB201に要求して(S613)、サーバ装置200から返信される機能関連ファイル1100を取得する(S614)。
【0100】
そして、クライアント端末100のCPU102は、S602,S603の処理において設定した関数以下の動作情報に変更があった場合、該変更に基づいてS614で取得した機能関連ファイル1100を更新する(S615)。
【0101】
次に、クライアント端末100のCPU102は、S615で更新した機能関連ファイル1100を、サーバ装置200のDB201に更新登録する(S616)。この時、サーバ装置200のCPU202は、クライアント端末100からの機能関連ファイル1100の登録要求に基づいて、クライアント端末100から受け取った機能関連ファイル1100をDB201に更新登録する。
【0102】
次に、クライアント端末100のCPU102は、関数管理テーブル1000の取得をサーバ装置200のDB201に要求して(S617)、サーバ装置200から返信される関数管理テーブル1000を取得する(S618)。
【0103】
そして、クライアント端末100のCPU102は、S618で取得した関数管理テーブル1000内関連機能項目1007に変更があった場合、該関数管理テーブル1000内の関連機能項目1007の関連機能を更新・登録する。
【0104】
そして、クライアント端末100のCPU102は、機能関連ファイル1100に書き込まれた関数のプログラムソースを調べ、プログラムソース内に挿入された修正箇所情報(作業名,修正後のステップ情報(行番号),修正日時,アカウント情報,バージョン情報,コメント,修正前ソースコード)を、作業名毎に修正履歴ファイル1200(図12)に順次書き込むことによって、修正履歴ファイル1200を作成する(S619)。即ち、修正履歴ファイル1200内の修正情報は、機能(トリガ関数)毎に、各機能内では作業毎に、各作業内ではその機能での関数実行順に並べられた情報として生成される。なお、ここで、修正履歴ファイル1200に書き込まれる修正情報は、S602で選択されたトリガ関数に対応するもののみとする。
【0105】
そして、クライアント端末100のCPU102は、S619で作成した修正履歴ファイル1200を、S612で実行したプログラム実行体のプログラムソース及びS603で選択された対応するトリガ関数(機能)に紐付けて、サーバ装置200のDB201に登録する(S620)。この時、サーバ装置200のCPU202は、クライアント端末100からの修正履歴ファイル1200の登録要求に基づいて、クライアント端末100から受け取った修正履歴ファイル1200をDB201に登録する。
【0106】
図12は、図9のステップS619で作成される修正履歴ファイル1200の一例を示す模式図である。
【0107】
図12に示すように、修正履歴ファイル1200には、作業名(・・・で示し、複数記載可)毎に、関数毎の修正履歴(・・・で示し、複数記載可)が記載される。
【0108】
この関数毎の修正履歴には、関数名(・・・で示す),関数ID(・・・で示す),ステップ(行)毎の修正情報(・・・で示し、複数記載可)が記載される。
【0109】
ステップ毎の修正情報には、行番号(・・・で示す),修正日時(・・・で示す),アカウント情報(・・・で示す),バージョン情報(・・・で示す),コメント(・・・で示す),修正前ソースコード(・・・で示す)が記載される。
【0110】
なお、アカウント情報(・・・で示す)には、ユーザ名(・・・で示す)が記載される。
【0111】
以下、図9のシーケンス図の説明に戻る。
【0112】
次に、クライアント端末100のCPU102は、ステップS621において、機能ごとの修正履歴を、図12の1201に示すように、関数管理テーブル1000および機能関連ファイル1100に関連付け、ツリー形式で作業パネル1300内の修正履歴ツリーウィンドウ1302に表示する(S622)。そして、プログラムソース修正時の処理を終了する。
【0113】
以下、図13のフローチャートを参照して、図9に示したステップS619,S620の修正履歴ファイル作成処理を詳細に説明する。
【0114】
図13は、本発明の第5の制御処理の一例を示すフローチャートであり、図9に示したステップS619,S620の修正履歴ファイル作成処理を詳細に説明するフローチャートに対応する。なお、図中、S700〜S704はクライアント端末100のCPU102が外部メモリ105からプログラムをRAM103上に読み出して実行することにより実現される処理に対応する。
【0115】
まず、ステップS700において、クライアント端末100のCPU102は、プログラム実行の操作後、機能関連ファイル1100(図6)を参照し、図9のS602で選択されたトリガ関数及びトリガ関数から呼び出される関数毎に、図9のS606で修正したプログラムソース内の修正ラベルの有無のチェックを行う。
【0116】
次に、ステップS701において、いずれの関数内に修正ラベルが無いと判定した場合には、クライアント端末100のCPU102は、そのまま処理を終了する。
【0117】
一方、ステップS701で、関数内に修正ラベルが有ると判定した場合には、ステップS702において、クライアント端末100のCPU102は、修正ラベルの有る関数毎に、修正ラベルとしての修正箇所情報(ステップ情報(行番号),修正日時,アカウント情報,バージョン情報,コメント,修正前ソースコード)を、設定された作業情報とともに修正履歴ファイル1200(図12)に順次書き込む。
【0118】
次に、ステップS703において、クライアント端末100のCPU102は、他の機能で使用されている関数の処理を実行する。なお、この処理の詳細は、後述する図14に示す。
【0119】
そして、ステップS704において、クライアント端末100のCPU102は、ステップS702,S703で作成した各トリガ関数(機能)に対応する各修正履歴ファイル1200(図12)をサーバ装置200のDB201にそれぞれ更新登録する。
【0120】
以下、図14のフローチャートを参照して、図13のステップS703の他の機能で使用されている関数の処理を詳細に説明する。
【0121】
図14は、本発明の第6の制御処理の一例を示すフローチャートであり、図13のステップS703の他の機能で使用されている関数の処理を詳細に説明するフローチャートに対応する。なお、図中、S1601〜1604はクライアント端末100のCPU102が外部メモリ105からプログラムをRAM103上に読み出して実行することにより実現される処理に対応する。
【0122】
まず、ステップS1601において、クライアント端末100のCPU102は、修正部分が関数内か否かを判定し、関数内でないと判定した場合には、そのまま図13のフローチャートに処理を戻す。
【0123】
一方、ステップS1601で、修正部分が関数内と判断した場合には、ステップS1602において、クライアント端末100のCPU102は、修正を含む関数の関数IDを取得する。
【0124】
次に、ステップS1603において、クライアント端末100のCPU102は、関数管理テーブル1000を参照し、ステップS1602で取得したIDを用いて、修正した関数が当該機能(図9のS602でトリガ関数として設定された機能)以外で使用されているか否かを判定し、使用されていないと判定した場合には、そのまま図13のフローチャートに処理を戻す。
【0125】
一方、ステップS1603で、修正した関数が当該機能(図9のS602でトリガ関数として設定された機能)以外で使用されていと判定した場合には、ステップS1605に処理を進める。
【0126】
ステップS1605では、クライアント端末100のCPU102は、修正した関数を使用している他の機能(トリガ関数)の修正履歴ファイルをサーバ装置200のDB201から取得し、該取得した他の機能(トリガ関数)の修正履歴ファイルをサーバ装置200に対し、当該修正履歴情報を追加して、図13のフローチャートに処理を戻す。
【0127】
以下、図15,図16を参照して、修正履歴参照処理について説明する。
【0128】
図15は、本発明の第7の制御処理の一例を示すフローチャートであり、修正履歴参照処理に対応する。なお、図中、S1601〜1604はクライアント端末100のCPU102が外部メモリ105からプログラムをRAM103上に読み出して実行することにより実現される処理に対応する。
【0129】
まず、図3に示す作業パネル1300がクライアント端末100の表示装置107に表示されている状態で、ユーザにより検索ボタン1312又は開くボタン1306が押下指示されると、クライアント端末100のCPU102は、本フローチャートの処理を開始する。
【0130】
まず、ステップS1400において、クライアント端末100のCPU102は、ユーザにより検索ボタン1312押下による関数・作業名検索指示があったか否かを判定し、関数・作業名検索指示があったと判定した場合には、クライアント端末100のCPU102は、ステップS1401に処理を進める。
【0131】
ステップS1401では、クライアント端末100のCPU102は、図16に示す修正履歴検索パネル1500を表示装置107に表示し、ユーザから入力を受け付ける。
【0132】
図16は、本発明における修正履歴検索パネル1500の一例を示す模式図である。
【0133】
図16に示すように、修正履歴を参照したいトリガ関数を選択するためのリストボックス1501、作業名を選択するためのリストボックス1502、検索を開始するための検索開始ボタン1503を具備する。なお、修正履歴を検索する際は、トリガ関数または作業名のみでも検索可能である。
【0134】
以下、図15のフローチャートの説明に戻る。
【0135】
そして、ユーザがリストボックス1501,1502から修正したい機能名(トリガ関数名),過去に修正した作業名の両方又はいずれかを選択し、検索開始ボタン1503を押下指示すると、クライアント端末100のCPU102は、この指示に応じて、入力されたトリガ関数名,作業名をキーにして、サーバ装置200内のDB201に登録されている修正履歴ファイル1200(図12),プログラムソース,関数管理テーブル1000(図5),機能関連ファイル(図6)を検索して取得する(S1401)。
【0136】
そして、ステップS1402において、クライアント端末100のCPU102は、ステップS1401で検索して取得した修正履歴ファイル1200(図12),プログラムソース,関数管理テーブル1000(図5),機能関連ファイル(図6)に基づいて、該当する機能のプログラムソース,機能関連ツリー,修正履歴ツリーを、機能関連ツリーウィンドウ1301,修正履歴ツリーウィンドウ1302,プログラムソースウィンドウ1303に表示する。そして、ステップS1405に処理を進める。
【0137】
一方、ステップS1400で、ユーザにより検索ボタン1312押下による関数・作業名検索指示がなかった、即ち、開くボタン1306押下によるファイルオープン指示があったと判定した場合には、クライアント端末100のCPU102は、ステップS1403に処理を進める。
【0138】
ステップS1403では、クライアント端末100のCPU102は、図示しないダイアログによりオープンするプログラムソースを選択させて、該選択されたプログラムソース、及び、該プログラムソースに紐付けられて登録されている関数管理テーブル1000(図5),機能関連ファイル(図6)をサーバ装置200内のDB201から取得し、該取得した修正履歴ファイル1200(図12),プログラムソース,関数管理テーブル1000(図5),機能関連ファイル(図6)に基づいて、該当する機能のプログラムソース,機能関連ツリー,修正履歴ツリーを、機能関連ツリーウィンドウ1301,修正履歴ツリーウィンドウ1302,プログラムソースウィンドウ1303に表示する。この際、修正履歴ツリーウィンドウ1302には、図17に示すように、修正情報が、機能(トリガ関数)毎に、各機能内では作業毎に、各作業内ではその機能での関数実行順に、ツリー構造に並べて表示出力される。また、各修正情報には、修正後の修正行番号,修正日時情報,修正者情報,バージョン情報,修正時にソース内に記載されたコメント,修正前のソースコードが含まれるものとする。
【0139】
次に、クライアント端末100のCPU102は、ステップS1405に処理を進める。
【0140】
ステップS1405では、クライアント端末100のCPU102は、ユーザが修正履歴ツリーウィンドウ1302上の修正ツリー上で修正履歴を選択したことを検知すると、ステップS1406に処理を進める。なお、修正履歴の選択は、作業名を選択してもよいし、関数名,行番号,修正日時等を選択してもよい。修正履歴として、修正日時を選択した様子を後述する図17の1390に示す。
【0141】
ステップS1406において、クライアント端末100のCPU102は、現行プログラムソースの修正前ソースコードを修正履歴ファイル1200から取得する。次に、ステップS1407において、クライアント端末100のCPU102は、S1406で取得した修正前ソースコードを現行プログラムソースへ反映し、現行プログラムソースを1つ前の状態に戻す(ロールバックする)。
【0142】
次に、ステップS1408において、クライアント端末100のCPU102は、目的の修正履歴(S1405で選択された修正履歴)の状態まで現行プログラムソースが戻った(ロールバックした)か否かを判定し、まだ、戻っていないと判定した場合には、ステップS1406に処理を戻し、S1406,S1407の処理を繰り返す。
【0143】
一方、ステップS1408で、目的の修正履歴(S1405で選択された修正履歴)の状態まで現行プログラムソースが戻った(ロールバックした)と判定した場合には、クライアント端末100のCPU102は、ステップS1409に処理を進める。
【0144】
ステップS1409では、クライアント端末100のCPU102は、その時点でのプログラムソース(現行プログラムソース)をプログラムソースウィンドウ1303に表示する。
【0145】
そして、ステップS1410において、クライアント端末100のCPU102は、S1407で反映した修正箇所を全て強調表示(例えば、太字、斜体、異なる書体、アンダーライン、マーカー表示、点滅表示等の強調表示)し、処理を終了する。この様子を、修正履歴を選択した様子を後述する図17の1399に示す。
【0146】
図17は、図3に示した作業パネル1300において修正履歴を参照している様子を示した模式図である。
【0147】
以上示したように、プログラムソースで修正されたステップの修正情報に加え、修正者情報および修正日時も含めて修正履歴として蓄積するので、詳細な修正履歴を管理できる。
【0148】
これにより、複数人での作業の際、プログラムソースを誰がいつ、どのステップを修正したかを管理することができるので、作業状況を共有することができる。
【0149】
また、過去の修正履歴を表示する際に、修正履歴をシステムの機能のトリガとなる関数ごとに関連名によって視覚的に表示することにより、参照したい過去の修正履歴の探索を速やかに行うことができる。
【0150】
さらに修正履歴を表示する際に、複数のモジュール、ソースファイル、関数にまたがった修正コードをプログラムで実行される順に時系列に並べ替えて表示するので、プログラムの修正手順および修正内容の把握が容易になる。これにより、過去の修正と同様の修正を行う場合に、該当する過去の修正箇所を速やかに検索して次の修正に役立てることができる。この結果、プログラムの修正を行う場合に、過去の修正内容の理解とプログラム修正の効率化を図ることができる等の効果を奏する。
【0151】
また、バージョン毎に全てのプログラムソースを保存しておく必要もなく、ソース管理が容易になる等の効果を奏する。
【0152】
なお、上記実施形態では、サーバ装置200を設け、サーバ装置200内のDB201により、各種データを管理する構成について説明した。しかし、サーバ装置200を設けることなく、クライアント端末100内にDB201を実装して、各種データを管理するように構成してもよい。
【0153】
また、上記実施形態では、図2に示したプログラムソース作成時の処理,図9に示したプログラムソース修正時の処理において、ソースコードの履歴を管理するトリガ関数(機能)を選択する構成合について説明したが、トリガ関数を選択することなく、全てのトリガ関数(機能)を対象にしてプログラムソース作成時の処理,プログラムソース修正時の処理を行うように構成してもよい。
【0154】
また、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【0155】
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【0156】
以下、図18に示すメモリマップを参照して本発明に係るソースコード修正履歴管理装置としての情報処理装置で読み取り可能なデータ処理プログラムの構成について説明する。
【0157】
図18は、本発明に係るソースコード修正履歴管理装置としての情報処理装置(クライアント端末100)で読み取り可能な各種データ処理プログラムを格納する記録媒体(記憶媒体)のメモリマップを説明する図である。
【0158】
なお、特に図示しないが、記録媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等も記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【0159】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、インストールするプログラムやデータが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【0160】
本実施形態における図2,図7,図8,図9A,図9B,図13,図14,図15に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、CD−ROMやフラッシュメモリやFD等の記録媒体により、あるいはネットワークを介して外部の記録媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【0161】
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0162】
この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【0163】
プログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,DVD−ROM,磁気テープ,不揮発性のメモリカード,ROM,EEPROM,シリコンディスク等を用いることができる。
【0164】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0165】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0166】
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0167】
さらに、本発明を達成するためのソフトウェアによって表されるプログラムをネットワーク上のサーバ,データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0168】
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【図面の簡単な説明】
【0169】
【図1】本発明の一実施形態を示すソースコード修正履歴管理装置としての情報処理装置を適用可能なシステムのハードウェア構成の一例を示す図である。
【図2】本発明の第1の制御処理の一例を示すシーケンス図である。
【図3】本発明における作業パネルの一例を示す模式図である。
【図4】本発明においてプログラムソースの新規作成時にトリガ関数を指定するためのトリガ関数選択パネルの一例を示す模式図である。
【図5】図2のステップS206で作成される関数管理テーブルの一例を示す模式図である。
【図6】図2のステップS209で作成される機能関連ファイルの一例を示す模式図である。
【図7】本発明の第2の制御処理の一例を示すフローチャートである。 フローチャートである。
【図8】本発明の第3の制御処理の一例を示すフローチャートである。
【図9A】本発明の第4の制御処理の一例を示すシーケンス図である。
【図9B】本発明の第4の制御処理の一例を示すシーケンス図である。
【図10】本発明においてプログラムソースの修正時にトリガ関数を指定するためのトリガ関数選択パネルの一例を示す模式図である。
【図11】本発明における作業名選択パネル900の一例を示す模式図である。
【図12】図9のステップS619で作成される修正履歴ファイル1200の一例を示す模式図である。
【図13】本発明の第5の制御処理の一例を示すフローチャートである。 フローチャートである。
【図14】本発明の第6の制御処理の一例を示すフローチャートである。 フローチャートである。
【図15】本発明の第7の制御処理の一例を示すフローチャートである。
【図16】本発明における修正履歴検索パネル1500の一例を示す模式図である。
【図17】図3に示した作業パネル1300において修正履歴を参照している様子を示した模式図である。
【図18】本発明に係るソースコード修正履歴管理装置としての情報処理装置(クライアント端末100)で読み取り可能な各種データ処理プログラムを格納する記録媒体(記憶媒体)のメモリマップを説明する図である。
【符号の説明】
【0170】
100 クライアント端末
102 CPU
105 外部メモリ
106 入力装置
107 表示装置
110 機能関連ファイル
200 サーバ装置
200 サーバ装置
201 DB
300 通信ネットワーク
900 作業名選択パネル
1000 関数管理テーブル
1100 機能関連ファイル
1200 修正履歴ファイル

【特許請求の範囲】
【請求項1】
ソースコードの修正が行われた際に、該修正情報を蓄積する記憶手段と、
前記記憶手段に記憶される修正履歴を、前記修正されたソースコードに基づいたプログラムにより実行される順に並べた修正履歴情報として生成する生成手段と、
を有することを特徴とするソースコード修正履歴管理装置。
【請求項2】
前記生成手段は、前記記憶手段に記憶される修正履歴を、前記修正情報を機能毎に、関数実行順に並べて出力するための情報を生成する、ことを特徴とする請求項1に記載のソースコード修正履歴管理装置。
【請求項3】
前記記憶手段は、ソースコードに対する機能毎の一連の修正を一つの作業単位として、該作業単位を識別可能に修正情報を蓄積するものであり、
前記生成手段は、前記記憶手段に記憶される修正履歴を、前記修正情報を機能毎に、各機能内では作業毎に、各作業内ではその機能での関数実行順に並べて出力するための情報を生成する、ことを特徴とする請求項1又は2に記載のソースコード修正履歴管理装置。
【請求項4】
前記生成手段は、前記修正情報を関数実行順に、ツリー構造に並べて出力するための情報を生成する、ことを特徴とする請求項2又は3に記載のソースコード修正履歴管理装置。
【請求項5】
複数の機能毎の修正情報の中から、1または複数の機能を選択する機能選択手段を設け、
前記生成手段は、前記機能選択手段に選択された機能に対応する機能に対して、機能毎に、前記修正情報を各機能内では作業毎に、各作業内ではその機能での関数実行順に、ツリー構造に並べて出力するための情報を生成する、ことを特徴とする請求項2乃至4のいずれかに記載のソースコード修正履歴管理装置。
【請求項6】
前記修正情報は、作業単位名,関数名,修正行番号,修正日時情報,修正者情報,バージョン情報,修正時にソース内に記載されたコメント,修正前のソースコードの少なくとも1つを含むことを特徴とする請求項2乃至4のいずれかに記載のソースコード修正履歴管理装置。
【請求項7】
前記修正情報は、修正前のコードを含むものであり、
前記生成手段により生成された修正履歴情報を表示する表示手段と、
前記表示手段により表示された修正履歴情報からいずれかの修正情報を選択させる選択手段と、
前記選択手段により選択された修正情報に対応する修正前の状態まで順次遡って修正情報内の修正前のコードを前記修正されたソースコードに対して適用するロールバック手段と、
を有することを特徴とする請求項1乃至6のいずれかに記載のソースコード修正履歴管理装置。
【請求項8】
前記表示手段は、前記ロールバック手段により適用された修正前のコードを強調表示する、ことを特徴とする請求項7に記載のソースコード修正履歴管理装置。
【請求項9】
作成されたソースコード内に、該ソースコードに記述された関数の実行開示時に該関数を識別するための関数識別情報をログ出力するためのロギングコードを追加する追加手段と、
前記追加手段によりロギングコードが追加されたソースコードから生成されるプログラムの実行時に、前記ロギングコードによりログ出力される関数識別情報の出力順を関数の実行順序として取得する実行順序取得手段と、を有し、
前記生成手段は、前記記憶手段に記憶される修正履歴を、前記実行順序取得手段により取得されたプログラムの実行順に並べた修正履歴情報として生成する、ことを特徴とする請求項1乃至8のいずれかに記載のソースコード修正履歴管理装置。
【請求項10】
前記記憶手段は、ソースコードの修正が行われた際に、該修正情報を該ソースコード内に蓄積する、ことを特徴とする請求項1乃至9のいずれかに記載のソースコード修正履歴管理装置。
【請求項11】
ソースコードの修正が行われた際に、該修正情報を記憶手段に蓄積する蓄積ステップと、
前記記憶手段に記憶される修正履歴を、前記修正されたソースコードに基づいたから取得されるプログラム内の関数実行順に並べた修正履歴情報として生成する生成ステップと、
を有することを特徴とするソースコード修正履歴管理方法。
【請求項12】
請求項1乃至10のいずれかに記載されたソースコード修正履歴管理装置としてコンピュータを機能させるための、又は、請求項11に記載されたソースコード修正履歴管理方法をコンピュータに実行させるためのプログラム。
【請求項13】
請求項1乃至10のいずれかに記載されたソースコード修正履歴管理装置としてコンピュータを機能させるためのプログラム、又は、請求項11に記載されたソースコード修正履歴管理方法をコンピュータに実行させるためのプログラムをコンピュータが読み取り可能に記憶した記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9A】
image rotate

【図9B】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate


【公開番号】特開2008−134900(P2008−134900A)
【公開日】平成20年6月12日(2008.6.12)
【国際特許分類】
【出願番号】特願2006−321682(P2006−321682)
【出願日】平成18年11月29日(2006.11.29)
【出願人】(301015956)キヤノンソフトウェア株式会社 (364)
【Fターム(参考)】