(57)【要約】【課題】ソースコードを基に、単数または複数からなる機能ブロック間の呼び出しおよび戻りのシーケンスを表現することのできるシーケンス図を作成する。【解決手段】追跡手段４が、ソースコードファイル１からソースコードを読み取り、当該ソースコードに含まれる関数の呼び出しおよび戻りを追跡すると共に、データベースを参照して関数に関係する機能ブロックの情報を含む形で追跡結果を一時ファイル５に書きこみ、当該ファイルに基づき図作成手段６を介して機能ブロック間の呼び出しおよび戻りを表現するシーケンス図を作成する。【選択図】　　　図１
2004094496.tif 000002
【特許請求の範囲】
【請求項１】
ソースコードを基に単数または複数からなる機能ブロック間の呼び出しおよび戻りのシーケンスを表現するシーケンス図を作成するシーケンス図作成装置であって、
前記ソースコードを読み取り、当該ソースコードに含まれる機能ブロックと関数との関係をデータベースに書き込むデータベース作成手段と、
前記ソースコードを読み取り、当該ソースコードに含まれる関数の呼び出しおよび戻りを追跡すると共に、前記データベースを参照して前記関数に関係する機能ブロックの情報を含む形で前記追跡結果をファイルに書きこむ追跡手段と、
前記ファイルに基づき、前記機能ブロック間の呼び出しおよび戻りを表現するシーケンス図を作成する図作成手段と、
を備えることを特徴とするシーケンス図作成装置。
【請求項２】
前記呼び出される関数の情報を呼び出された順番に記憶する記憶装置を備え、
前記追跡手段は、前記関数が呼び出されるコードを検出したときに、当該関数の情報を前記記憶装置に追加して書き込み、前記関数から戻るコードを検出したときに当該関数の情報を前記記憶装置から削除すること、
を特徴とする請求項１に記載のシーケンス図作成装置。
【請求項３】
前記追跡手段は、
あらかじめ設定される前記関数の呼び出しおよび戻りに関するネストの最大深さを監視し、当該最大深さ内における追跡結果を前記ファイルに書きこむことを特徴とする請求項１または２に記載のシーケンス図作成装置。
【請求項４】
前記追跡手段は、
前記追跡した関数の履歴を保持し、一度追跡した関数が再現したときに再度追跡して前記ファイルに書きこむことを禁止することを特徴とする請求項１〜３のいずれか１項に記載のシーケンス図作成装置。
【請求項５】
前記図作成手段は、
ネストの深さによって可変となる機能ブロック間の幅を、あらかじめ設定される機能ブロック間の幅の指定によりコントロールすることを特徴とする請求項１に記載のシーケンス図作成装置。
【請求項６】
前記追跡手段により追跡結果が書き込まれたファイルに修正を施したファイルと、ある試験ケースについてプログラムを実行したときの通過関数、および当該関数が読み出される毎に引数と戻り値の実数が設定される試験結果ファイルを読み込み、前記修正を施したファイルに書き込まれた関数名をキーに当該ファイルの中に、前記試験結果ファイルの中の引き数と戻り値を付与して新規ファイルを生成するファイル作成手段を備え、
前記新規ファイルに基づき、前記機能ブロック間の呼び出しおよび戻りに前記引き数と戻り値の実数を反映させて表現するシーケンス図を作成することを特徴とする請求項１に記載のシーケンス図作成装置。
【請求項７】
ソースコードを基に単数または複数からなる機能ブロック間の呼び出しおよび戻りのシーケンスを表現するシーケンス図を作成するシーケンス図作成方法であって、
前記ソースコードを読み取り、当該ソースコードに含まれる機能ブロックと関数との関係をデータベースに書き込み、
前記ソースコードを読み取り、当該ソースコードに含まれる関数の呼び出しおよび戻りを追跡すると共に、前記データベースを参照して前記関数に関係する機能ブロックの情報を含む形で前記追跡結果をファイルに書き込み、
前記ファイルに基づき、前記機能ブロック間の呼び出しおよび戻りを表現するシーケンス図を作成すること、
を特徴とするシーケンス図作成方法。
【請求項８】
前記追跡結果が書き込まれたファイルに修正を施したファイルと、ある試験ケースについてプログラムを実行したときの通過関数、および当該関数が読み出される毎に引数と戻り値の実数が設定される試験結果ファイルを読み込み、前記修正を施したファイルに書き込まれた関数名をキーに当該ファイルの中に、前記試験結果ファイルの中の引き数と戻り値を付与して新規ファイルを作成し、
前記作成された新規ファイルに基づき、前記機能ブロック間の呼び出しおよび戻りに前記引き数と戻り値の実数を反映させて表現するシーケンス図を作成すること、
を特徴とする請求項７に記載のシーケンス図作成方法。
【請求項９】
ソースコードを基に単数または複数からなる機能ブロック間の呼び出しおよび戻りのシーケンスを表現するシーケンス図を作成するシーケンス図作成装置に用いられるシーケンス図作成プログラムであって、
前記ソースコードを読み取り、当該ソースコードに含まれる機能ブロックと関数との関係をデータベースに書き込むステップと、
前記ソースコードを読み取り、当該ソースコードに含まれる関数の呼び出しおよび戻りを追跡すると共に、前記データベースを参照して前記関数に関係する機能ブロックの情報を含む形で前記追跡結果をファイルに書き込むステップと、
前記ファイルに基づき、前記機能ブロック間の呼び出しおよび戻りを表現するシーケンス図を作成するステップと、
をコンピュータに実行させるシーケンス図作成プログラム。
【請求項１０】
前記追跡結果が書き込まれたファイルに修正を施したファイルと、ある試験ケースについてプログラムを実行したときの通過関数、および当該関数が読み出される毎に引数と戻り値の実数が設定される試験結果ファイルを読み込み、前記修正を施したファイルに書き込まれた関数名をキーに当該ファイルの中に、前記試験結果ファイルの中の引き数と戻り値を付与して新規ファイルを作成するステップと、
前記作成された新規ファイルに基づき、前記機能ブロック間の呼び出しおよび戻りに前記引き数と戻り値の実数を反映させて表現するシーケンス図を作成するステップと、
をコンピュータに実行させる請求項９に記載のシーケンス図作成プログラム。
【請求項１１】
ソースコードを基に単数または複数からなる機能ブロック間の呼び出しおよび戻りのシーケンスを表現するシーケンス図を作成するシーケンス図作成装置に用いられるシーケンス図作成プログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記ソースコードを読み取り、当該ソースコードに含まれる機能ブロックと関数との関係をデータベースに書き込むステップと、
前記ソースコードを読み取り、当該ソースコードに含まれる関数の呼び出しおよび戻りを追跡すると共に、前記データベースを参照して前記関数に関係する機能ブロックの情報を含む形で前記追跡結果をファイルに書き込むステップと、
前記ファイルに基づき、前記機能ブロック間の呼び出しおよび戻りを表現するシーケンス図を作成するステップと、
をコンピュータに実行させるシーケンス図作成プログラムを記録した記録媒体。
【請求項１２】
前記追跡結果が書き込まれたファイルに修正を施したファイルと、ある試験ケースについてプログラムを実行したときの通過関数、および当該関数が読み出される毎に引数と戻り値の実数が設定される試験ファイルを読み込み、前記修正を施したファイルに書き込まれた関数名をキーに当該ファイルの中に、前記試験ファイルの中の引き数と戻り値を付与して新規ファイルを作成するステップと、
前記作成された新規ファイルに基づき、前記機能ブロック間の呼び出しおよび戻りに前記引き数と戻り値の実数を反映させて表現するシーケンス図を作成するステップと、
をコンピュータに実行させるシーケンス図作成プログラムを記録した請求項１１に記載の記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ソースコードを基に、単数または複数からなる機能ブロック間の呼び出しおよび戻りのシーケンスを表現するシーケンス図作成装置、およびその方法、シーケンス図作成プログラム、その記録媒体に関する。
【０００２】
【従来の技術】
構造化プログラミングの構造を記述するためのチャートとして、ＨＣＰ（Ｈｉｅｒａｒｃｈｉｃａｌ・ａｎｄ・ＣｏｍＰａｃｔ・ｄｅｓｃｒｉｐｔｉｏｎ・ｃｈａｒｔ）が知られている。従来は、ソースコードから関数単位の処理構造を表現し、アルゴリズム解析等のためにこのＨＣＰチャートが多用されていた。
【０００３】
但し、ＨＣＰは、関数内における処理、分岐、繰り返し、判定等の流れを記号化して表現するものであり、関数間の流れを表現するシーケンス図を作成するものではない。従って、従来、ある機能の流れを表現するシーケンス図を作成するのに、ソースコードを手作業でトレース（追跡）することが行なわれており、従って、作業者にかかる負担が大きく、非効率的であり、自動化のためのツールの出現が望まれていた。
また、試験工程におけるデバッグ作業においても同様、バグの発見、原因究明を手作業で行なうことになり、作業者にかかる負担が大きく、非効率的であった。
【０００４】
【発明が解決しようとする課題】
ところで、シーケンス図を作成するためのツールを開発するにあたって考えなければならないことは、あるファイルから別のファイルを参照するための関数の呼び出し（コール）の関係を把握するのは比較的簡単であるが、処理の流れを把握するためにその戻り（リターン）を把握するためには、その関数がどの関数によって呼ばれたかを記憶しておくことが必要なことである。このための処理が複雑で面倒であり、そのための仕組み作りを必要としていた。
【０００５】
本発明は上記事情に鑑みてなされたものであり、ソースコードを基に、単数または複数からなる機能ブロック間の呼び出しおよび戻りのシーケンスを表現することのできる、シーケンス図作成装置、およびその方法、シーケンス図作成プログラム、その記録媒体を提供することを目的とする。
また、試験工程におけるデバッグ作業の効率化もはかった、シーケンス図作成装置、およびその方法、シーケンス図作成プログラム、その記録媒体を提供することも目的とする。
【０００６】
【課題を解決するための手段】
上記した課題を解決するために本発明は、ソースコードを基に単数または複数からなる機能ブロック間の呼び出しおよび戻りのシーケンスを表現するシーケンス図を作成するシーケンス図作成装置であって、前記ソースコードを読み取り、当該ソースコードに含まれる機能ブロックと関数との関係をデータベースに書き込むデータベース作成手段と、前記ソースコードを読み取り、当該ソースコードに含まれる関数の呼び出しおよび戻りを追跡すると共に、前記データベースを参照して前記関数に関係する機能ブロックの情報を含む形で前記追跡結果をファイルに書きこむ追跡手段と、前記ファイルに基づき、前記機能ブロック間の呼び出しおよび戻りを表現するシーケンス図を作成する図作成手段と、を備えることを特徴とする。
【０００７】
本発明によれば、追跡手段が、ソースコードを読み取り、当該ソースコードに含まれる関数の呼び出しおよび戻りを追跡すると共に、データベースを参照して関数に関係する機能ブロックの情報を含む形で追跡結果をファイルに書きこみ、当該ファイルに基づき図作成手段を介して機能ブロック間の呼び出しおよび戻りを表現するシーケンス図を作成することにより、機能間の処理の流れを示すシーケンス図を作成することができ、このことにより、機能および機能ブロック間のインタフェースを容易に把握することができる。また、追跡結果が書き込まれるファイルを編集することにより情報の追加、削除が可能であり、このことにより、機能ブロック間のインタフェースを一層容易に把握可能となる。
なお、ここで、「機能ブロック」とは、１以上のソースコードファイルであって、ある特定の機能を実現する関数の集合をいう。
【０００８】
また、本発明において、前記呼び出される関数の情報を呼び出された順番に記憶する記憶装置を備え、前記追跡手段は、前記関数が呼び出されるコードを検出したときに、当該関数の情報を前記記憶装置に追加して書き込み、前記関数から戻るコードを検出したときに当該関数の情報を前記記憶装置から削除すること、を特徴とする。
【０００９】
本発明によれば、追跡手段が、関数が呼び出されるコードを検出したときに、当該関数の情報を、呼び出される関数の情報を呼び出された順番に記憶する記憶装置に追加して書き込み、関数から戻るコードを検出したときに当該関数の情報を記憶装置から削除することにより、あるファイルから別のファイルを参照するための関数の呼び出し（コール）の関係を把握するのは勿論のこと、処理の流れを把握するためにその戻り（リターン）も把握可能なシーケンス図作成装置を提供できる。
【００１０】
また、本発明において、前記追跡手段は、あらかじめ設定される前記関数の呼び出しおよび戻りに関するネストの最大深さを監視し、当該最大深さ内における追跡結果を前記ファイルに書きこむことを特徴とする。
本発明によれば、追跡手段が、設定された関数の呼び出しおよび戻りに関するネストの最大深さを監視し、その深さ内における追跡結果のみファイルに書きこむことで、無駄なファイルを作成せずに済み、処理効率が向上する。
【００１１】
また、本発明において、前記追跡手段は、前記追跡した関数の履歴を保持し、一度追跡した関数が再現したときに再度追跡して前記ファイルに書きこむことを禁止することを特徴とする。
本発明によれば、追跡手段が、一度追跡した関数が再現したときに再度追跡してファイルへの書き込みを禁止することにより、再度追跡する処理を省けるため、無駄なファイルを作成せずに済み、かつ、処理効率が向上する。
【００１２】
また、本発明において、前記図作成手段は、ネストの深さによって可変となる機能ブロック間の幅を、あらかじめ設定される機能ブロック間の幅の指定によりコントロールすることを特徴とする。
本発明によれば、図作成手段が、ネストの深さによって可変となる機能ブロック間の幅を、あらかじめ設定される機能ブロック間の幅の指定によりコントロールすることで、ネストの深さによらない略一定幅で機能ブロック間を表現でき、このことにより、シーケンス図の見映えが良くなる。
【００１３】
また、本発明において、前記追跡手段により追跡結果が書き込まれたファイルに修正を施したファイルと、ある試験ケースについてプログラムを実行したときの通過関数、および当該関数が読み出される毎に引数と戻り値の実数が設定される試験結果ファイルを読み込み、前記修正を施したファイルに書き込まれた関数名をキーに当該ファイルの中に、前記試験結果ファイルの中の引き数と戻り値を付与して新規ファイルを生成するファイル作成手段を備え、前記新規ファイルに基づき、前記機能ブロック間の呼び出しおよび戻りに前記引き数と戻り値の実数を反映させて表現するシーケンス図を作成することを特徴とする。
【００１４】
本発明によれば、ファイル作成手段が、修正を施したファイルに書き込まれた関数名をキーに当該ファイルの中に、試験結果ファイルの中の引き数と戻り値を付与して新規ファイルを生成し、図作成手段が、当該新規ファイルに基づき、機能ブロック間の呼び出しおよび戻りに、その引き数と戻り値の実数を反映させて表現するシーケンス図を作成することにより、引き数誤り、戻り値誤りによるバグの発見が容易になり、従って、試験工程におけるデバッグの効率化がはかれる。
【００１５】
上記した課題を解決するために本発明は、ソースコードを基に単数または複数からなる機能ブロック間の呼び出しおよび戻りのシーケンスを表現するシーケンス図を作成するシーケンス図作成方法であって、前記ソースコードを読み取り、当該ソースコードに含まれる機能ブロックと関数との関係をデータベースに書き込み、前記ソースコードを読み取り、当該ソースコードに含まれる関数の呼び出しおよび戻りを追跡すると共に、前記データベースを参照して前記関数に関係する機能ブロックの情報を含む形で前記追跡結果をファイルに書き込み、前記ファイルに基づき、前記機能ブロック間の呼び出しおよび戻りを表現するシーケンス図を作成すること、を特徴とする。
【００１６】
また、本発明において、前記追跡結果が書き込まれたファイルに修正を施したファイルと、ある試験ケースについてプログラムを実行したときの通過関数、および当該関数が読み出される毎に引数と戻り値の実数が設定される試験結果ファイルを読み込み、前記修正を施したファイルに書き込まれた関数名をキーに当該ファイルの中に、前記試験結果ファイルの中の引き数と戻り値を付与して新規ファイルを作成し、前記作成された新規ファイルに基づき、前記機能ブロック間の呼び出しおよび戻りに前記引き数と戻り値の実数を反映させて表現するシーケンス図を作成すること、を特徴とする。
【００１７】
上記した課題を解決するために本発明は、ソースコードを基に単数または複数からなる機能ブロック間の呼び出しおよび戻りのシーケンスを表現するシーケンス図を作成するシーケンス図作成装置に用いられるシーケンス図作成プログラムであって、前記ソースコードを読み取り、当該ソースコードに含まれる機能ブロックと関数との関係をデータベースに書き込むステップと、前記ソースコードを読み取り、当該ソースコードに含まれる関数の呼び出しおよび戻りを追跡すると共に、前記データベースを参照して前記関数に関係する機能ブロックの情報を含む形で前記追跡結果をファイルに書き込むステップと、前記ファイルに基づき、前記機能ブロック間の呼び出しおよび戻りを表現するシーケンス図を作成するステップと、をコンピュータに実行させることを特徴とする。
【００１８】
また、本発明において、前記追跡結果が書き込まれたファイルに修正を施したファイルと、ある試験ケースについてプログラムを実行したときの通過関数、および当該関数が読み出される毎に引数と戻り値の実数が設定される試験結果ファイルを読み込み、前記修正を施したファイルに書き込まれた関数名をキーに当該ファイルの中に、前記試験結果ファイルの中の引き数と戻り値を付与して新規ファイルを作成するステップと、前記作成された新規ファイルに基づき、前記機能ブロック間の呼び出しおよび戻りに前記引き数と戻り値の実数を反映させて表現するシーケンス図を作成するステップと、をコンピュータに実行させることを特徴とする。
【００１９】
上記した課題を解決するために本発明は、ソースコードを基に単数または複数からなる機能ブロック間の呼び出しおよび戻りのシーケンスを表現するシーケンス図を作成するシーケンス図作成装置に用いられるシーケンス図作成プログラムを記録したコンピュータ読み取り可能な記録媒体であって、前記ソースコードを読み取り、当該ソースコードに含まれる機能ブロックと関数との関係をデータベースに書き込むステップと、前記ソースコードを読み取り、当該ソースコードに含まれる関数の呼び出しおよび戻りを追跡すると共に、前記データベースを参照して前記関数に関係する機能ブロックの情報を含む形で前記追跡結果をファイルに書き込むステップと、前記ファイルに基づき、前記機能ブロック間の呼び出しおよび戻りを表現するシーケンス図を作成するステップと、をコンピュータに実行させるシーケンス図作成プログラムを記録したことを特徴とする。
【００２０】
また、本発明において、前記追跡結果が書き込まれたファイルに修正を施したファイルと、ある試験ケースについてプログラムを実行したときの通過関数、および当該関数が読み出される毎に引数と戻り値の実数が設定される試験結果ファイルを読み込み、前記修正を施したファイルに書き込まれた関数名をキーに当該ファイルの中に、前記試験結果ファイルの中の引き数と戻り値を付与して新規ファイルを作成するステップと、前記作成された新規ファイルに基づき、前記機能ブロック間の呼び出しおよび戻りに前記引き数と戻り値の実数を反映させて表現するシーケンス図を作成するステップと、をコンピュータに実行させるシーケンス図作成プログラムを記録したことを特徴とする。
【００２１】
【発明の実施の形態】
図１は、本発明のシーケンス図作成装置の内部構成を機能展開して示したブロック図である。
本発明のシーケンス図作成装置は、ソースコードを基に単数または複数からなる機能ブロック間の呼び出しおよび戻りのシーケンスを表現するシーケンス図を作成する装置であって、ソースコードファイル１と、データベース（ＤＢ）作成部２と、データベース（ＤＢ）３と、追跡部４と、一時ファイル５と、図作成部６と、記憶装置７と、エディタ８と、修正ファイル９と、試験結果ファイル１０と、ファイル作成部１１で構成される。
【００２２】
ＤＢ作成部２は、ソースコードファイル１のソースコードを読み取り、当該ソースコードに含まれる機能ブロックと関数との関係をＤＢ３に書きこむ。
追跡部４は、ソースコードファイル１に格納されたソースコードを読み取り、当該ソースコードに含まれる関数の呼び出しおよび戻りを追跡すると共に、ＤＢ３に書き込まれた内容を参照して関数に関係する機能ブロックの情報を含む形で先の追跡結果を一時ファイル５として書きこむ機能を持つ。追跡部４はまた、あらかじめパラメータ設定される関数の呼び出しおよび戻りに関するネストの最大深さを監視し、当該最大深さ内における追跡結果を一時ファイル部に書きこむ機能を持つ。追跡部４は更に、追跡した関数の履歴を図示せぬ別の記憶装置に保持し、都度照合することで一度追跡した関数が再現したときに再度追跡して一時ファイル５に書きこむことを禁止する機能も併せ持つ。いずれも無駄な一時ファイルを作らないための配慮である。
【００２３】
図作成部６は、一時ファイル５に書き込まれた内容に基づき、機能ブロック間の呼び出しおよび戻りを表現するシーケンス図を作成する機能を持つ。図作成部６はまた、ネストの深さによって可変となる機能ブロック間の幅を、あらかじめパラメータ設定される機能ブロック間の幅の指定によりコントロールする機能も持つ。
また、本発明のシーケンス図作成装置は、呼び出される関数の情報を呼び出された順番に記憶する記憶装置７を備え、追跡部４は、関数が呼び出されるコードを検出したときに、当該関数の情報を記憶装置７に追加して書き込み、その関数から戻るコードを検出したときに当該関数の情報を記憶装置７から削除する。
【００２４】
一方、ファイル作成部１１は、追跡部４により追跡結果が書き込まれた一時ファイル５にエディタ８を用いて修正を施したファイル（修正ファイル９）と、ある試験ケースについてプログラムを実行したときの通過関数、および当該関数が読み出される毎に引数と戻り値の実数が設定される試験結果ファイル１０の内容を読み込み、先に修正を施した修正ファイル９に書き込まれた関数名をキーに当該修正ファイル９の中に、試験結果ファイル９の中の引き数と戻り値を付与して新規ファイルを生成する機能を持つ。
図作成部６は、ファイル作成部１１により作成された新規ファイルに基づき、機能ブロック間の呼び出しおよび戻りに前記引き数と戻り値の実数を反映させて表現するシーケンス図を作成することができる。
なお、本発明によれば、追跡部４による追跡結果が書き込まれる一時ファイル５の内容を、エディタ８を用いて編集することにより、情報を追加、あるいは削除して全てのルートを網羅したシーケンス図の作成が可能となり、また、必要な部分だけを一時ファイル５上で整形することにより特定機能のシーケンス図の作成が可能であり、機能、および機能ブロック間のインタフェースの把握を可能とさせるものである。
【００２５】
図２は、図１に示すＤＢ部３のデータ構造の一例を示す図であり、図３は、記憶装置７のデータ構造の一例を示す図である。
図２に示されるように、ＤＢ部３には、機能ブロック毎、その機能ブロックに含まれる関数名（１−１〜２−ｎ）と、ソースコードから抽出される関数の概要が記述され蓄積される。また、図３に示されるように、記憶装置７には機能ブロック毎、呼ばれた順（コール順）に関数名が記録される、いわばスタックの役割を実現する。
なお、ここでいう機能ブロックとは、１以上のソースコードファイルであって、ある特定の機能を実現する関数の集合をいう。
【００２６】
図４〜図７は、本発明のシーケンス図作成装置の動作を説明するために引用した図であり、ＤＢ作成部２（図４）、追跡部４（図５）、図作成部６（図６）、ファイル作成部１１（図７）の動作のそれぞれを示し、全体的には本発明のシーケンス図作成プログラムの処理手順を示す。
また、図８、図９は、生成される一時ファイルの一例、図１０、図１１は、シーケンス図の出力フォーマットの一例を示す図である。
以下、図４〜図１１を参照しながら図１〜図３に示す本発明実施形態の動作について詳細に説明する。
【００２７】
まず、図４に示すフローチャートを参照しながらＤＢ作成部２によるＤＢの作成から説明する。
ここでは、ソースコードファイル１から機能ブロック名および関数名を取得し、機能ブロック名および関数名の対応ＤＢ３を生成する。
すなわち、ＤＢ作成部２は、ソースコードファイル１からソースコードを読み取り、当該ソースコードに含まれる全ての機能ブロックから関数名を取得し（Ｓ４０１）、図２にそのデータ構造の一例が示されるＤＢを構築するために、機能ブロックとその中に含まれる関数との関係をデータベースに書き込む（Ｓ４０２）。
【００２８】
次に、図５に示すフローチャートを参照しながら、追跡部４による一時ファイル５の作成について説明する。
ここでは、追跡部４が、ＤＢ３から機能ブロック名および関数名を取得し、処理の流れにネストと戻りを意識した一時ファイル５を作成する。すなわち、追跡部４は、ＤＢ３を参照することにより、パラメータとして、機能ブロック名、関数名を出力し（Ｓ５０１）、それぞれに対応したソースコードファイル１をオープンする（Ｓ５０２）。そして、そのソースコードファイル１を１行ずつ取得して（Ｓ５０４）関数が呼び出されているか否かを追跡（トレース）していく。
ここで、関数が呼び出されていることが確認された場合（Ｓ５０６Ｙｅｓ）、入れ子構造を示すネストを＋１更新し（Ｓ５０７）、ＤＢ３からその関数名を取得する（Ｓ５０８）。関数が呼び出されていない場合は（Ｓ５０６Ｎｏ）、更にソースコードファイル１から続く１行を取得して上記の処理を繰り返す。また、同一関数名が複数機能ブロックにあった場合は（Ｓ５０９Ｙｅｓ）、ファイル名を選択し（Ｓ５１０）、ＤＢ３から機能ブロック名、関数名を取得して記憶装置７に記録し（Ｓ５１１）、Ｓ５０１以降の処理を繰り返す。
【００２９】
一方、関数が終了後（Ｓ５０５Ｙｅｓ）、そのときのネストのみ出力して−１更新し（Ｓ５１２、Ｓ５１３）、記憶装置７に記録された全ての機能ブロック名と関数名を取得し（Ｓ５１４）、その機能ブロック名と関数名に対応したソースコードファイル１をオープンして（Ｓ５０２）、未追跡のソースコードファイルが無くなる迄（Ｓ５０３Ｙｅｓ）、Ｓ５０４以降の処理を繰り返す。
【００３０】
図８、図９に一時ファイルの生成例が示されている。ここでは１行目に機能ブロック名ｍｃｄ、および関数概要が記述され、以降、点線でネストの深さが示されている。また、黒丸（「●」）で記述された部分は、追跡部４により生成される一時ファイル５を、エディタ８を用いて編集することにより追加した情報を示す。
なお、図示していないが、パラメータ設定されるものとして他に、ネストの最大深さがあり、このとき、追跡部４は、あらかじめパラメータ設定される関数の呼び出しおよび戻りに関するネストの最大深さを監視し、当該最大深さ内における追跡結果のみ一時ファイル５に書きこむこととする。
また、記憶装置７とは別の記憶装置（スタックメモリ）を備え、このスタックメモリ内に、追跡した関数の履歴を保持し、追跡の都度照合することで一度追跡した関数が再現したときに再度追跡してその結果を一時ファイル５に書きこむことを禁止している。図８、図９に示す一時ファイル生成例の中で（略）として示されている箇所がこれに相当する。
【００３１】
次に、図６に示すフローチャートを参照しながら図作成部６によるシーケンス図の作成について説明する。
ここでは、一時ファイル５を取得し、機能ブロック名とネストからシーケンス図を作成する。すなわち、まず、一時ファイル５がオープンされる（Ｓ６０１）。図作成部６は、一時ファイル５に記録された全ての機能ブロック名を取得し（Ｓ６０２）、当該取得した機能ブロックに、先に追跡部４によって得られたネストを記録する（Ｓ６０３）。
そして、図１０にシーケンス図が例示されるように、取得した全機能ブロック名（ｍｃｄ／ｍｃｅ／ｃｄａ／ｍｍａ／ｍｃａ／ｃｋｕ／ｃｄｂ）を最上部に印刷し（Ｓ６０４）、一時ファイル５を再オープンする（Ｓ６０５）。
【００３２】
次に、その一時ファイル５から１行取得して（Ｓ６０６）関数名および機能ブロック名をチェックして（Ｓ６０８Ｙｅｓ）今回の機能ブロックを記憶装置７に記録する（Ｓ６０９）。そして、前回の機能ブロックと異なる場合（Ｓ６１０Ｙｅｓ）にのみインタフェース（ＩＦ）線を矢印表示し（Ｓ６１１）、前回の機能ブロックと同じ場合（Ｓ６１０Ｎｏ）、前回の機能ブロックのネストに対応した位置に関数名を表示する（Ｓ６１２）。ここでは、シーケンス図における各機能ブロックの位置決めが行なわれる。
なお、一時ファイルを生成した際にもネスト構造は把握できるが、同じネストでも機能ブロック名が異なる場合があり、ここで機能ブロック名をチェックすることにより、シーケンス図のどの位置に表示すればよいかを識別するものである。
【００３３】
更に、一時ファイル５から取得した特定の行が、ネストが減った行か否かをチェックし（Ｓ６１３）、ネストが減った行であった場合（Ｓ６１３Ｙｅｓ）、今回の機能ブロックを記憶装置７から削除する（Ｓ６１４）。
また、前回と異なる機能ブロックであった場合は（Ｓ６１５Ｙｅｓ）、リターン線を矢印表示する（Ｓ６１６）。以上の動作を一時ファイル５として存在する行が無くなるまで繰り返す（Ｓ６０７）。
なお、図示していないが、パラメータ設定により、印刷されるシーケンス図の機能ブロック間の幅指定が可能となっており、このとき、図作成部６は、ネストの深さによって可変となる機能ブロック間の幅をパラメータ設定によりコントロールすることができ、一方、幅指定がなかった場合はデフォルト設定される幅で印刷される。
【００３４】
最後に、図７に示すフローチャートを参照しながら、ファイル作成部１１による一時ファイル生成の流れについて説明する。
ここでは、ファイル作成部１１は、追跡部４により追跡結果が書き込まれた一時ファイル５にエディタ８を介して修正を施した修正ファイル９と、ある試験ケースについてプログラムを実行したときの通過関数、および当該関数が読み出される毎に引数と戻り値の実数が設定される試験結果ファイル１０を読み込み、修正を施したファイルに書き込まれた関数名をキーに当該ファイルの中に、試験結果ファイル１０の中の引き数と戻り値を付与して新規な一時ファイルを生成する。そして、図作成部６を介して作成された新規一時ファイルに基づき、機能ブロック間の呼び出しおよび戻りに前記引き数と戻り値の実数を反映させて表現するシーケンス図を作成する。
なお、一時ファイル５には、期待されるルートが網羅されているものとし、エディタ８を介して、分岐条件で通らないパスに相当する部分を削除し、あるいはループの場合は、その回数分、関数の呼び出しを追加する等の人的編集が付加されているものとする。以降、一時ファイル５は、修正が施されているものと解釈して説明を継続する。
【００３５】
まず、一時ファイル名と試験結果ファイル名がパラメータ設定されているものとし、ファイル作成部１１は、そのパラメータに基づき、一時ファイル５ならびに試験結果ファイル１０をオープンする（Ｓ７０１、Ｓ７０２）。
そして、その一時ファイル５から１行データを取得し（Ｓ７０３）、行の属性（行種別）をチェックする（Ｓ７０５）。ここで、関数行、戻り行であった場合は、試験結果ファイル１０から１行取得し（Ｓ７０６）、その他の場合は生成される新規一時ファイルに一時ファイル５の内容をそのまま出力する（Ｓ７０７）。
【００３６】
更に、関数行の場合は（Ｓ７０８Ｙｅｓ）、同一関数名かチェックし（Ｓ７０９）、同一関数名であった場合は（Ｓ７０９Ｙｅｓ）、新規作成される一時ファイルに、ネスト、機能ブロック名、関数名、引き数値を出力する（Ｓ７１０）。一方、リターン行であった場合は（Ｓ７１１Ｙｅｓ）、新規作成される一時ファイルに、ネスト、戻り値が出力される（Ｓ７１２）。
なお、試験結果ファイル１０から１行取得した内容が関数行でなかった、あるいは戻り行でなかった場合は、新規作成される一時ファイルにそのエラー種別が出力され（Ｓ７１３）、新規作成される一時ファイルの残りが出力される（Ｓ７１４）。上記した動作は一時ファイル５の最終行まで繰り返し実行される（Ｓ７０４）。
このことにより、図１０、図１１にシーケンス図生成例として示されるように、実際にプログラムを起動させたときの引数、および戻り値を、ＩＦ線、あるいはリターン線に埋め込む（ＩＦ線およびリターン線の部分に引数と戻り値の実数が設定）ことができ、また、実行ルートが期待したルートと比較して異なった場合、異なることがわかるキー情報をシーケンス図として表示することができる。
【００３７】
以上説明のように本発明は、ソースコードを基に、単数または複数からなる機能ブロック間の呼び出しおよび戻りのシーケンスを表現するものであり、また、試験工程におけるデバッグ作業の効率化をはかるものである。
なお、図１に示すＤＢ作成部２、追跡部４、図作成部６、ファイル作成部１１のそれぞれで実行される手順をコンピュータ読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより本発明のシーケンス図作成装置が実現されるものとする。
ここでいうコンピュータシステムとは、ＯＳや周辺機器等のハードウェアを含むものである。
【００３８】
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のシステムやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００３９】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００４０】
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【００４１】
【発明の効果】
以上説明のように本発明によれば、機能および機能ブロック間のインタフェースを容易に把握することができ、あるファイルから別のファイルを参照するための関数呼び出しの関係を把握できることは勿論のこと、処理の流れを把握するためにその戻りも把握可能なシーケンス図を作成できる。また、追跡結果が書き込まれるファイルを編集することにより情報の追加、削除が可能であり、このことにより、機能ブロック間のインタフェースを一層容易に把握可能となる。
更に、修正を施したファイルに書き込まれた関数名をキーに当該ファイルの中に、試験結果ファイルの中の引き数と戻り値を付与して一時ファイルを生成することにより、機能ブロック間の呼び出しおよび戻りに、その引き数と戻り値の実数を反映させて表現するシーケンス図を作成することができ、このことにより、引き数誤り、戻り値誤りによるバグの発見が容易になり、従って、試験工程におけるデバッグの効率化がはかれる。
【図面の簡単な説明】
【図１】本発明のシーケンス図作成装置の内部構成を機能展開して示したブロック図である。
【図２】図１に示すＤＢのデータ構造の一例を示す図である。
【図３】図１に示す記憶装置のデータ構造の一例を示す図である。
【図４】本発明実施形態の動作を説明するために引用したフローチャートである。
【図５】本発明実施形態の動作を説明するために引用したフローチャートである。
【図６】本発明実施形態の動作を説明するために引用したフローチャートである。
【図７】本発明実施形態の動作を説明するために引用したフローチャートである。
【図８】本発明により生成される一時ファイルの一例を示す図である。
【図９】本発明により生成される一時ファイルの一例を示す図である。
【図１０】本発明により生成されるシーケンス図の一例を示す図である。
【図１１】本発明により生成されるシーケンス図の一例を示す図である。
【符号の説明】
１…ソースコードファイル、２…ＤＢ作成部、３…データベース（ＤＢ）、４…追跡部、５…一時ファイル、６…図作成部、７…記憶装置、８…エディタ、９…修正ファイル、１０…試験結果ファイル、１１…ファイル作成部
【図１】
2004094496.tif 000003
【図２】
2004094496.tif 000004
【図３】
2004094496.tif 000005
【図４】
2004094496.tif 000006
【図５】
2004094496.tif 000007
【図６】
2004094496.tif 000008
【図７】
2004094496.tif 000009
【図８】
2004094496.tif 000010
【図９】
2004094496.tif 000011
【図１０】
2004094496.tif 000012
【図１１】
2004094496.tif 000013