(57)【要約】【課題】プログラムの誤っている部分を適切に検出する。【解決手段】複数の文書構成要素から構成される文書情報を生成する生成プログラムを解析する情報処理システムであって、生成プログラムは、文書情報に含まれる複数の文書構成要素のそれぞれを生成する複数の生成コマンドのそれぞれを有しており、生成プログラムを実行し、複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する対応情報生成部と、利用者からの指示に応じて複数の文書構成要素の何れかを選択する選択部と、選択部により選択された当該文書構成要素を生成した生成コマンドを、対応情報に基づいて選択し、当該生成コマンドを識別する情報を出力するコマンド情報出力部とを備える情報処理システムを提供する。【選択図】  図１
2004341671.tif 000002
【特許請求の範囲】
【請求項１】
複数の文書構成要素から構成される文書情報を生成する生成プログラムを解析する情報処理システムであって、
前記生成プログラムは、前記文書情報に含まれる前記複数の文書構成要素のそれぞれを生成する複数の生成コマンドのそれぞれを有しており、
前記生成プログラムを実行し、前記複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する対応情報生成部と、
利用者からの指示に応じて前記複数の文書構成要素の何れかを選択する選択部と、
前記選択部により選択された当該文書構成要素を生成した生成コマンドを、前記対応情報に基づいて選択し、当該生成コマンドを識別する情報を出力するコマンド情報出力部と
を備える情報処理システム。
【請求項２】
前記文書情報は、前記文書情報の閲覧者に表示する表示情報と、当該表示情報の表示形式を指定するタグ情報とを含むタグ付き文書であり、
前記選択部は、前記文書構成要素として、前記文書情報に含まれる複数の前記表示情報のうち何れかの表示情報又は当該表示情報の表示形式を指示するタグ情報を選択し、
前記コマンド情報出力部は、前記選択部により選択された前記表示情報を生成した生成コマンド又は前記選択部により選択された前記タグ情報を生成した生成コマンドを、前記対応情報に基づいて選択して出力する
請求項１記載の情報処理システム。
【請求項３】
前記タグ情報は、当該タグ情報により表示形式を指定した表示情報内に、更に内側タグ情報を含む外側タグ情報であり、
当該情報処理システムは、
木構造のグラフであって、前記外側タグ情報を根ノードとして表し、前記内側タグ情報を前記根ノードの葉ノードとして表したグラフである、文書構造情報を生成する文書構造情報生成部を更に備え、
前記選択部は、前記文書構造情報における何れかのノードを前記利用者に指示させ、指示させた当該ノードに対応する前記タグ情報を選択する
請求項２記載の情報処理システム。
【請求項４】
前記選択部は、前記文書情報に基づき表示画面上に表示された複数の表示オブジェクトの何れかを前記利用者に指示させ、指示された当該表示オブジェクトを表示させた前記表示情報及び前記タグ情報を選択する
請求項２記載の情報処理システム。
【請求項５】
閲覧者が前記表示画面上に表示された表示オブジェクトを容易に認識できるか否かを示す認識容易条件が予め定められており、
前記表示オブジェクトのうち、前記認識容易条件を満たさない認識困難オブジェクトを検出する表示結果解析検出部を更に備え、
前記選択部は、前記文書情報のうち、前記認識困難オブジェクトを前記表示画面上に表示させた前記表示情報及び前記タグ情報を、前記文書構成要素として選択する
請求項４記載の情報処理システム。
【請求項６】
前記文書情報は、前記生成プログラムに変換されるプログラムであって、前記生成プログラムが生成すべき前記文書構成要素の内容を指示する指示プログラムに更まれ、
当該情報処理システムは、
前記指示プログラムを前記生成プログラムに変換するプログラム変換部を更に備え、
前記対応情報生成部は、前記指示プログラムにおける複数の指示コマンドのそれぞれと、当該指示コマンドにより指示されて前記生成プログラムにより生成された前記文書構成要素とを対応付けた情報を、前記対応情報として更に生成し、
前記コマンド情報出力部は、前記選択部により選択された当該文書構成要素の内容を指示した前記指示コマンドを、前記対応情報に基づいて選択し、当該指示コマンドを識別する情報を更に出力する
請求項２記載の情報処理システム。
【請求項７】
前記生成プログラムにおいて、複数の生成コマンドが順次実行される実行の流れを示す制御フローグラフを生成する制御フローグラフ生成部を更に備え、
前記コマンド情報出力部は、前記制御フローグラフにおける、前記対応情報に基づいて選択した生成コマンドの位置を示す情報を更に出力する
請求項１記載の情報処理システム。
【請求項８】
前記生成プログラムにおいて、一のコマンドにより生成されたデータが、他の何れのコマンドにより使用されるかを示したデータフローグラフを生成するデータフローグラフ生成部を更に備え、
前記コマンド情報出力部は、前記データフローグラフにおける、前記対応情報に基づいて選択した生成コマンドの位置を示す情報を更に出力する
請求項１記載の情報処理システム。
【請求項９】
前記複数のコマンドのそれぞれは、当該生成コマンドが生成した文書構成要素を出力する出力関数を呼び出し、
当該情報処理システムは、
前記文書構成要素のそれぞれを、当該文書構成要素を出力した出力関数及び当該出力関数を呼び出した生成コマンドに対応付けた情報である、関数識別情報を収集する関数識別情報収集部を更に備え、
前記対応情報生成部は、前記関数識別情報に基づいて、前記対応情報を生成する
請求項１記載の情報処理システム。
【請求項１０】
前記コマンド情報出力部が前記生成コマンドを識別する情報を出力するテストモードと、前記コマンド情報出力部が前記生成コマンドを識別する情報の出力を停止した通常モードとを切り替える動作モード切替部を更に備え、
前記動作モード切替部により前記テストモードに設定された場合において、
前記対応情報生成部は、前記生成プログラムを実行することにより前記対応情報を生成し、
前記生成コマンド情報出力部は、前記選択部により選択された当該文書構成要素を生成した生成コマンドを、前記対応情報に基づいて選択し、当該生成コマンドを識別する情報を出力する
請求項１記載の情報処理システム。
【請求項１１】
前記生成プログラムが生成した少なくとも一の文書構成要素を格納し、予め定められたタイミングにより、格納していた前記少なくとも一の文書構成要素を、前記文書情報の一部として出力するバッファ部と、
前記動作モード切替部により前記テストモードに設定された場合に、前記バッファ部による文書構成要素の格納を停止し、前記生成プログラムにより文書構成要素が生成される毎に、当該文書構成要素を前記文書情報の一部として出力させるバッファ停止部と
を更に備える請求項１記載の情報処理システム。
【請求項１２】
複数の文書構成要素から構成される文書情報を生成する生成プログラムを解析する情報処理システムであって、
前記生成プログラムは、前記文書情報における前記複数の文書構成要素のそれぞれを生成する複数の生成コマンドのそれぞれを有しており、
前記生成プログラムを実行し、前記複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する対応情報生成部と、
利用者からの指示に応じて前記複数の生成コマンドの何れかを選択する選択部と、
前記選択部により選択された生成コマンドにより生成される文書構成要素を、前記対応情報に基づいて選択して出力する文書構成要素出力部と
を備える情報処理システム。
【請求項１３】
複数の文書構成要素から構成される文書情報を生成する生成プログラムを解析する情報処理システムを制御する制御方法であって、
前記生成プログラムは、前記文書情報に含まれる前記複数の文書構成要素のそれぞれを生成する複数の生成コマンドのそれぞれを有しており、
前記生成プログラムを実行し、前記複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する対応情報生成段階と、
利用者からの指示に応じて前記複数の文書構成要素の何れかを選択する選択段階と、
前記選択段階において選択された当該文書構成要素を生成した生成コマンドを、前記対応情報に基づいて選択し、当該生成コマンドを識別する情報を出力するコマンド情報出力段階と
を備える制御方法。
【請求項１４】
複数の文書構成要素から構成される文書情報を生成する生成プログラムを解析する情報処理システムを制御する制御方法であって、
前記生成プログラムは、前記文書情報における前記複数の文書構成要素のそれぞれを生成する複数の生成コマンドのそれぞれを有しており、
前記生成プログラムを実行し、前記複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する対応情報生成段階と、
利用者からの指示に応じて前記複数の生成コマンドの何れかを選択する選択段階と、
前記選択段階において選択された生成コマンドにより生成される文書構成要素を、前記対応情報に基づいて選択して出力する文書構成要素出力段階と
を備える制御方法。
【請求項１５】
複数の文書構成要素から構成される文書情報を生成する生成プログラムを解析する情報処理システムを制御する制御プログラムであって、
前記生成プログラムは、前記文書情報に含まれる前記複数の文書構成要素のそれぞれを生成する複数の生成コマンドのそれぞれを有しており、
前記情報処理システムを、
前記生成プログラムを実行し、前記複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する対応情報生成部と、
利用者からの指示に応じて前記複数の文書構成要素の何れかを選択する選択部と、
前記選択部により選択された当該文書構成要素を生成した生成コマンドを、前記対応情報に基づいて選択し、当該生成コマンドを識別する情報を出力するコマンド情報出力部と
して機能させる制御プログラム。
【請求項１６】
複数の文書構成要素から構成される文書情報を生成する生成プログラムを解析する情報処理システムを制御する制御プログラムであって、
前記生成プログラムは、前記文書情報における前記複数の文書構成要素のそれぞれを生成する複数の生成コマンドのそれぞれを有しており、
前記情報処理システムを、
前記生成プログラムを実行し、前記複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する対応情報生成部と、
利用者からの指示に応じて前記複数の生成コマンドの何れかを選択する選択部と、
前記選択部により選択された生成コマンドにより生成される文書構成要素を、前記対応情報に基づいて選択して出力する文書構成要素出力部と
して機能させる制御プログラム。
【請求項１７】
請求項１５又は１６に記載の制御プログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理システム、制御方法、制御プログラム、及び記録媒体に関する。特に本発明は、文書情報を生成する生成プログラムを解析する情報処理システム、制御方法、制御プログラム、及び記録媒体に関する。
【０００２】
【従来の技術】
従来、プログラムの誤り（バグ）を効率的に発見するためのソフトウェアであるデバッガが用いられている（非特許文献１参照。）。デバッガの例としては、インターナショナル・ビジネス・マシーンズ・コーポレーションのＶｉｓｕａｌＡｇｅ  ｆｏｒ  Ｊａｖａ（登録商標）、インターナショナル・ビジネス・マシーンズ・コーポレーションのＷｅｂＳｐｈｅｒｅ  Ｓｔｕｄｉｏ  Ａｐｐｌｉｃａｔｉｏｎ  Ｄｅｖｅｌｏｐｅｒ（登録商標）、ボーランド・ソフトウェア・コーポレーションのＪＢｕｉｌｄｅｒ（登録商標）、及び富士通株式会社のＩｎｔｅｒｓｔａｇｅ  ＡＰＷＯＲＫＳ（登録商標）等がある。これらのデバッガは、プログラム中の複数のコマンドを１ずつ実行し、当該コマンドの実行結果を出力する。これにより、プログラマ等は、プログラムを実行する途中経過を知り、プログラムの修正に役立てることができた。
【０００３】
【非特許文献１】
Ｆ．Ｒｉｃａ及びＰ．Ｔｏｎｅｌｌａ著、「Ｗｅｂ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｌｉｃｉｎｇ」、ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｓｏｆｔｗａｒｅ  Ｍａｉｎｔｅｎａｎｃｅ（ＩＣＳＭ’０１）会議録、１４８ページから１５７ページ、２００１年１１月
【非特許文献２】
Ｂｏｂｂｙ、ホームページＵＲＬ：ｈｔｔｐ：／／ｂｏｂｂｙ．ｗａｔｃｈｆｉｒｅ．ｃｏｍ／、平成１５年５月１２日検索
【０００４】
【発明が解決しようとする課題】
しかしながら、従来のデバッガは、プログラムの動作の詳細を調べる用途には適しているものの、プログラムの誤っている部分を検出する用途には適していない。例えば、従来のデバッガにおいて、プログラムの誤っている部分を検出するには、プログラマは、プログラムの開始部分から順に、プログラムが誤動作するまで、コマンドを１つずつ実行しなければならならず、煩雑である。
また、他の方法として、対象のプログラムが文字を出力するプログラムである場合には、プログラマは、誤っていると推測される部分の付近に、出力処理（例えば、ｐｒｉｎｔ文）を一時的に挿入していた。これにより、プログラマは、当該出力処理の出力結果と、プログラム本来の出力結果とを比較して、誤っている部分を徐々に絞り込んでいた。この方法によれば、プログラマは、実行の毎にプログラムを書き換えなければならず、更に煩雑である。
そこで本発明は、上記の課題を解決することのできる情報処理システム、制御方法、制御プログラム、及び記録媒体を提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【０００５】
【課題を解決するための手段】
即ち、本発明の一形態によると、複数の文書構成要素から構成される文書情報を生成する生成プログラムを解析する情報処理システムであって、生成プログラムは、文書情報に含まれる複数の文書構成要素のそれぞれを生成する複数の生成コマンドのそれぞれを有しており、生成プログラムを実行し、複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する対応情報生成部と、利用者からの指示に応じて複数の文書構成要素の何れかを選択する選択部と、選択部により選択された当該文書構成要素を生成した生成コマンドを、対応情報に基づいて選択し、当該生成コマンドを識別する情報を出力するコマンド情報出力部とを備える情報処理システム、当該情報処理システムを制御する制御方法、制御プログラム、及び制御プログラムを記録した記録媒体を提供する。
なお上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションも又発明となりうる。
【０００６】
【発明の実施の形態】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、又実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図１は、情報処理システム１０の機能ブロック図を示す。情報処理システム１０は、例えば、ワールド・ワイド・ウェブ（ＷＷＷ）システムであり、ＨＴＭＬ文書等の文書情報を生成する生成プログラムを解析することを目的とする。情報処理システム１０は、ＨＴＭＬ文書を生成するウェブサーバ等の装置であるサーバ装置２０と、サーバ装置２０により生成されたＨＴＭＬ文書を閲覧する装置であるクライアント装置３０とを備える。なお、本実施形態において、サーバ装置２０は、クライアント装置３０とは別体に設けられた装置であり、ＬＡＮ、ＷＡＮ、又はインターネット等の電気通信回線を通じてクライアント装置３０と通信する。これに代えて、サーバ装置２０及びクライアント装置３０は、同一の装置内に設けられてもよい。即ち、情報処理システム１０は、一体の装置として利用者に提供されてもよい。
【０００７】
サーバ装置２０は、プログラムデータベース２００と、プログラム変換部２１０と、制御フローグラフ生成部２２０と、データフローグラフ生成部２３０と、バッファ部２３５と、バッファ停止部２４０と、関数識別情報収集部２５０と、対応情報生成部２６０とを備える。プログラムデータベース２００は、複数の文書構成要素から構成される文書情報、例えば、ＨＴＭＬ文書、を生成する生成プログラムを格納している。ＨＴＭＬ文書は、文書情報の閲覧者に表示する表示情報と、当該表示情報の表示形式を指定するタグ情報とを含むタグ付き文書の一例である。これに代えて、文書情報は、ＸＭＬ文書等の他のタグ付き文書であってもよい。
【０００８】
また、生成プログラムは、文書情報に含まれる複数の文書構成要素のそれぞれを生成する複数の生成コマンドのそれぞれを有している。例えば、生成プログラムとは、Ｊａｖａ（登録商標）言語により記載されたサーブレットプログラムであり、複数の生成コマンドのそれぞれは、当該生成コマンドにより生成された文書構成要素を出力する出力関数（例えば、メソッド）を呼び出すことにより、文書情報を出力する。一例として、生成プログラムがＪａｖａ（登録商標）言語で記述されている場合の出力関数とは、例えば、Ｗｒｉｔｅｒクラス、ＯｕｔｐｕｔＳｔｒｅａｍクラス、又はこれらのクラスを拡張・利用したクラス等における出力に関するメソッドである。
【０００９】
更に、プログラムデータベース２００は、生成プログラムに変換されるプログラムであって、生成プログラムが生成すべき文書構成要素の内容を指示する指示プログラム更に格納している。例えば、プログラムデータベース２００は、指示プログラムとして、ＪＳＰ（Ｊａｖａ（登録商標）  Ｓｅｒｖｅｒ  Ｐａｇｅｓ）規格に準拠したＪＳＰプログラムを格納している。
【００１０】
プログラム変換部２１０は、サーバ装置２０が生成プログラムを解析するテストモードと、サーバ装置２０が生成プログラムを解析せず単に実行する通常モードとの、何れの動作モードとして動作するかを示す動作モード設定指示を、動作モード切替部３１０から受け取る。そして、プログラム変換部２１０は、ウェブページ等を表示する旨の表示要求、例えば、ＨＴＴＰリクエストを、クライアント装置３０から受け取ると、当該表示要求の内容に応じて生成プログラム又は指示プログラムをプログラムデータベース２００から取得する。続いて、プログラム変換部２１０は、指示プログラムを、例えばコンパイルすることにより、生成プログラムに変換する。そして、プログラム変換部２１０は、動作モード設定指示と伴に、変換後の生成プログラム及びプログラムデータベース２００から取得した生成プログラムを、バッファ停止部２４０に送る。また、動作モード設定指示がテストモードを指示している場合に、プログラム変換部２１０は、生成プログラムを制御フローグラフ生成部２２０に送る。
【００１１】
制御フローグラフ生成部２２０は、プログラム変換部２１０から受け取った生成プログラムにおいて、複数の生成コマンドが順次実行される実行の流れを示す制御フローグラフを生成し、生成プログラムと伴にデータフローグラフ生成部２３０に送る。データフローグラフ生成部２３０は、制御フローグラフ生成部２２０から受け取った生成プログラムにおいて、一のコマンドにより生成されたデータが多の何れのコマンドにより使用されるかを示したデータフローグラフを生成し、制御フローグラフと伴に対応情報生成部２６０に送る。
【００１２】
バッファ部２３５は、生成プログラムが生成した少なくとも一の文書構成要素を格納する記憶領域を有しており、予め定められたタイミングにより、当該記憶領域に格納していた少なくとも一の文書構成要素を、文書情報の一部として出力する。また、バッファ部２３５は、バッファ停止部２４０からの指示に応じて、文書構成要素の格納を停止する。
【００１３】
バッファ停止部２４０は、動作モード切替部３１０から受け取った動作モード設定指示がテストモードである場合に、バッファ部２３５による文書構成要素の格納の処理を停止する。これにより、バッファ停止部２４０は、生成プログラムにより文書構成要素が生成される毎に、生成された当該文書構成要素を文書情報の一部として出力させる。具体的には、バッファ停止部２４０は、プログラム変換部２１０から受け取った生成プログラムに対して、当該生成プログラムが使用する出力用バッファのサイズを０とする設定を行うことにより、バッファ部２３５による文書構成要素の格納の処理を停止する。そして、バッファ停止部２４０は、生成プログラムを関数識別情報収集部２５０に送る。
【００１４】
関数識別情報収集部２５０は、生成プログラムにおける出力関数が文書構成要素を出力する毎に、当該文書構成要素のそれぞれを、当該文書構成要素を出力した出力関数及び当該出力関数を呼び出した生成コマンドに対応付けた情報である関数識別情報を収集する。
【００１５】
具体的には、まず、関数識別情報収集部２５０は、生成プログラムに対して、生成プログラムが実行される毎に実行されるフィルタ関数を挿入する。そして、関数識別情報収集部２５０は、文書構成要素を出力する出力関数に代えて、文書構成要素を出力すると伴に出力内容を監視する監視関数を実行させる処理を、このフィルタ関数内で実行させる。例えば、関数識別情報収集部２５０は、監視関数として、当該監視関数が呼び出されるまでに呼び出されてきた関数の階層構造を出力する処理を挿入する。これにより、関数識別情報収集部２５０は、監視関数が実行される毎に出力される関数の階層構造に基づいて、当該監視関数が出力する文書構成要素と、当該監視関数を呼び出した生成プログラムとを対応付けて特定する。そして、関数識別情報収集部２５０は、上記フィルタ関数等を挿入した生成プログラムを対応情報生成部２６０に送る。
【００１６】
一例として、生成プログラムがＪａｖａ（登録商標）言語で記述されている場合には、関数識別情報収集部２５０は、監視関数内で例外処理（Ｅｘｃｅｐｔｉｏｎ）を発生させることにより、関数呼び出しに用いられるスタックの状態を示すスタックトレースを、関数の階層構造を示す情報として出力させる。
【００１７】
対応情報生成部２６０は、関数識別情報収集部２５０から受け取った生成プログラムを実行し、文書情報を生成する。そして、対応情報生成部２６０は、複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する。そして、対応情報生成部２６０は、データフローグラフ生成部２３０から受け取った制御フローグラフ、データフローグラフ生成部２３０から受け取ったデータフローグラフ、生成プログラム、文書情報、及び対応情報を表示部３２０及びコマンド情報出力部３５０に送る。
【００１８】
クライアント装置３０は、入力受付部３００と、動作モード切替部３１０と、表示部３２０と、文書構造情報出力部３２２と、表示画面３２５と、表示結果解析検出部３３０と、選択部３４０と、コマンド情報出力部３５０と、文書構成要素出力部３６０とを備える。入力受付部３００は、ウェブページの閲覧者等からウェブページを表示する旨の表示指示を受け付け、動作モード切替部３１０に送る。動作モード切替部３１０は、表示指示の内容に応じて、コマンド情報出力部３５０が生成コマンドを識別する情報を出力するテストモードと、コマンド情報出力部３５０が生成コマンドを識別する情報の出力を停止した通常モードとを切り替える。具体的には、コマンド情報出力部３５０は、サーバ装置２０がテストモード及び通常モードの何れの動作モードとして動作するかを示す動作モード設定指示を、ウェブページを表示する旨を示す表示要求と伴に、サーバ装置２０に送る。
【００１９】
表示部３２０は、サーバ装置２０から受け取った文書情報を表示画面３２５上に表示すると伴に、文書構造情報出力部３２２及び表示結果解析検出部３３０に送る。また、表示部３２０は、サーバ装置２０から受け取った生成プログラムを表示画面３２５上に表示する。更に、表示部３２０は、コマンド情報出力部３５０及び文書構成要素出力部３６０から受け取った情報を、表示画面３２５上に表示する。文書構造情報出力部３２２は、受け取った文書情報、例えば、ＨＴＭＬ文書の構造を示す文書構造情報を生成し、表示画面３２５上に表示する。これに代えて、表示部３２０は、コマンド情報出力部３５０及び文書構成要素出力部３６０から出力された情報を、音声として出力してもよい。即ち、コマンド情報出力部３５０及び文書構成要素出力部３６０のそれぞれが表示部３２０を介して出力する情報は、画像に限定されるものでなく、音声読み上げ技術を利用した音声情報であってもよい。
【００２０】
表示結果解析検出部３３０は、文書情報を表示部３２０から受け取ると、利用者が文書情報により表示される表示オブジェクトを容易に認識できるか否かを解析する。具体的には、閲覧者が表示画面３２５上に表示された表示オブジェクトを容易に認識できるか否かを示す認識容易条件が予め定められており、表示結果解析検出部３３０は、この認識容易条件を満たさない認識困難オブジェクトを検出し、検出結果を選択部３４０に送る。
【００２１】
選択部３４０は、入力受付部３００を介した閲覧者からの指示又は表示結果解析検出部３３０から受け取った検出結果に基づいて、文書情報における複数の文書構成要素の何れかを選択し、選択した文書構成要素をコマンド情報出力部３５０に送る。例えば、文書情報がＨＴＭＬ文書である場合には、選択部３４０は、ＨＴＭＬ文書のうち何れかの表示情報又は当該表示情報の表示形式を指示するタグ情報を選択する。また、選択部３４０は、入力受付部３００を介した利用者からの指示に応じて、生成プログラムにおける複数の生成コマンドの何れかを選択し、選択した当該生成コマンドを文書構成要素出力部３６０に送る。
【００２２】
コマンド情報出力部３５０は、選択部３４０により選択された文書構成要素、例えば、ＨＴＭＬ文書の表示情報又はタグ情報、を生成した生成コマンドを、対応情報生成部２６０から受け取った対応情報に基づいて選択する。そして、コマンド情報出力部３５０は、当該生成コマンドを識別する情報を表示部３２０を介して表示画面３２５に出力する。更に、選択部３４０により選択された文書構成要素がＪＳＰプログラムにより指示されたものである場合には、コマンド情報出力部３５０は、当該文書構成要素の内容を指示した指示コマンドを、対応情報に基づいて選択し、当該指示コマンドを識別する情報を更に出力してもよい。また、文書構成要素出力部３６０は、選択部３４０により選択された生成コマンドにより生成される文書構成要素を、対応情報生成部２６０から受け取った対応情報に基づいて選択して表示画面３２５に出力する。
【００２３】
以上に示したように、サーバ装置２０は、文書情報を生成する生成プログラムを実行し、複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する。そして、クライアント装置３０は、利用者からの指示に応じて文書構成要素を選択し、当該文書構成要素に対応する生成コマンドを出力する。これにより、生成プログラムの作成者は、所望の文書構成要素に対応する生成コマンドを適切に特定することができる。
【００２４】
図２は、情報処理システム１０のフローチャートを示す。動作モード切替部３１０は、利用者から受け取った指示に基づいて、サーバ装置２０をテストモードで動作させるか否かを判断する（Ｓ２００）。サーバ装置２０をテストモードで動作させない場合に（Ｓ２００：ＮＯ）、プログラム変換部２１０は、クライアント装置３０から受け取ったＨＴＴＰリクエストに応じて、ＪＳＰプログラム等の指示プログラムをプログラムデータベース２００から取得し、当該指示プログラムを生成プログラムに変換する（Ｓ２０５）。そして、情報処理システム１０は、生成プログラムにより生成されるＨＴＭＬ文書に基づいて、ウェブブラウザ等の表示画面３２５中に表示オブジェクトを表示する通常処理を行い、処理を終了する（Ｓ２１０）。
【００２５】
一方、サーバ装置２０をテストモードで動作させる場合に（Ｓ２００：ＹＥＳ）、プログラム変換部２１０は、クライアント装置３０から受け取ったＨＴＴＰリクエストに応じて、ＪＳＰプログラム等の指示プログラムをプログラムデータベース２００から取得し、当該指示プログラムを生成プログラムに変換する（Ｓ２２０）。
【００２６】
制御フローグラフ生成部２２０は、変換後の生成プログラムにおいて、複数の生成コマンドが順次実行される実行の流れを示す制御フローグラフを生成する（Ｓ２２５）。また、データフローグラフ生成部２３０は、変換後の生成プログラムにおいて、一のコマンドにより生成されたデータが多の何れのコマンドにより使用されるかを示したデータフローグラフを生成する。
【００２７】
続いて、バッファ停止部２４０は、動作モード切替部３１０により動作モードがテストモードに設定されているので、バッファ部２３５による文書構成要素の格納の処理を停止する（Ｓ２３０）。これにより、バッファ停止部２４０は、生成プログラムにより文書構成要素が生成される毎に、生成された当該文書構成要素を文書情報の一部として出力させる。そして、関数識別情報収集部２５０は、文書構成要素と、出力関数及び生成コマンドとを対応付けた関数識別情報を収集するべく、出力関数にフィルタ関数を挿入する（Ｓ２４０）。
【００２８】
対応情報生成部２６０は、関数識別情報収集部２５０から受け取った生成プログラムを実行し、文書情報を生成する。そして、対応情報生成部２６０は、複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する（Ｓ２５０）。なお、本例において、対応情報生成部２６０は、生成プログラムにより生成される文書構成要素の全てについて、対応情報を生成する。これに代えて、対応情報生成部２６０は、予め定められた条件を満たす文書構成要素について、対応情報を生成してもよい。例えば、予め定められた条件とは、当該文書構成要素が文書情報における予め定められた行数に出力されることであってもよいし、当該文書構成要素が予め定められた文字列と一致することであってもよい。この場合、対応情報生成部２６０は、生成プログラムの実行に要する時間を減らすことができる。
【００２９】
続いて、表示部３２０は、文書情報を表示画面３２５上に表示する（Ｓ２６０）。そして、表示結果解析検出部３３０は、認識容易条件を満たさない認識困難オブジェクトを検出する（Ｓ２７０）。そして、入力受付部３００が、利用者から表示画面３２５上の生成コマンドを指示された場合に（Ｓ２８０：ＹＥＳ）、文書構成要素出力部３６０は、当該生成コマンドにより生成された文書構成要素を、対応情報に基づいて特定し、表示画面３２５に出力する（Ｓ２９５）。また、入力受付部３００が、利用者から表示画面３２５上の文書構成要素を指示された場合に（Ｓ２８０：ＮＯ）、文書構成要素出力部３６０は、当該文書構成要素を生成した生成コマンドを、対応情報に基づいて特定し、表示画面３２５に出力する（Ｓ２９０）。
情報処理システム１０は、上記に示した一連の処理を、クライアント装置３０がサーバ装置２０に対してウェブページの表示要求を送る毎に繰り返す。
【００３０】
図３は、情報処理システム１０の動作の概念図を示す。本図においては、文書構成要素の生成及び文書構成要素の選択の動作をより詳細に説明する。プログラム変換部２１０は、ＪＳＰプログラムをコンパイルすることによりサーブレットプログラムに変換する（Ｓ３００）。そして、プログラム変換部２１０は、ＪＳＰプログラムにおける複数の指示コマンドのそれぞれと、当該指示コマンドを変換した変換先の生成コマンドとを対応付けたＪＳＰ−サーブレット対応情報３６５を生成する（Ｓ３１０）。
【００３１】
制御フローグラフ生成部２２０は、変換後の生成プログラムにおける制御フローグラフを生成する（Ｓ３２０）。また、データフローグラフ生成部２３０は、変換後の生成プログラムにおけるデータフローグラフを生成する。
【００３２】
生成プログラムの準備処理（Ｓ３２５）として、バッファ停止部２４０は、生成プログラムの出力をバッファ部２３５に格納する処理を停止するべく、生成プログラムが使用する出力用バッファのサイズを０に設定する。また、関数識別情報収集部２５０は、文書構成要素と、当該文書構成要素を生成した生成コマンドとを対応付けた関数識別情報を収集するべく、生成プログラムにフィルタ関数を挿入する。
【００３３】
対応情報生成部２６０は、関数識別情報収集部２５０から受け取った生成プログラムを、必要に応じてライブラリ群と伴に実行し、文書情報、例えば、ＨＴＭＬ文書を生成する（Ｓ３３０）。そして、対応情報生成部２６０は、複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する。
【００３４】
一例として、生成プログラムがＪａｖａ（登録商標）言語で記述されている場合には、関数識別情報収集部２５０は、監視関数内に例外処理（Ｅｘｃｅｐｔｉｏｎ）を発生させる処理を予め挿入することにより、文書構成要素が出力された時点における関数の階層構造を示すスタックトレース情報３７０を収集する（Ｓ３４０）。そして、関数識別情報収集部２５０は、スタックトレース情報３７０に含まれる生成コマンドと、当該スタックトレース情報３７０が生成された時点で出力された文書構成要素とを対応付けることにより、関数識別情報を収集する。
【００３５】
これにより、対応情報生成部２６０は、関数識別情報に基づいて、生成コマンド及び文書構成要素の対応を示す対応情報、例えば、サーブレット−ＨＴＭＬ対応情報３８０を生成できる（Ｓ３５０）。更に、好ましくは、対応情報生成部２６０は、ＪＳＰ−サーブレット対応情報３６５及びサーブレット−ＨＴＭＬ対応情報３８０を組み合わせることにより、ＪＳＰプログラムにおける複数の指示コマンドのそれぞれと、当該指示コマンドにより指示されサーブレットプログラムにより生成された文書構成要素とを対応付けた情報を、更に生成する。
【００３６】
選択部３４０は、利用者からの指示に応じて複数の文書構成要素の何れかを選択する。例えば、文書構造情報出力部３２２が、ＨＴＭＬ文書の構造を示す文書構造情報を生成し（Ｓ３５５）、選択部３４０は、当該文書構造情報内の情報の何れかを利用者に指示させることにより、文書構成要素を選択する。
【００３７】
より具体的には、ＨＴＭＬ文書中のタグ情報は、当該タグ情報により表示形式を指定した表示情報内に、更に内側タグ情報を含む外側タグ情報であってもよい。この場合、文書構造情報出力部３２２は、木構造のグラフであって、外側タグ情報を根ノードとして表し、内側タグ情報を根ノードの葉ノードとして表したグラフである、文書構造情報（例えば、ＨＴＭＬ−ＤＯＭ−ＴＲＥＥ）を生成する。更に、文書構造情報出力部３２２は、内側タグ情報により表示形式を指示した表示情報内に、更に内側タグ情報が含まれる場合には、当該内側タグ情報を、葉ノードの葉ノードとして更に表す。一例としては、文書構造情報出力部３２２は、ＨＴＭＬ文書を構文解析することにより、ＨＴＭＬ文書の構文の構造を示す構造情報を生成してもよい。このように生成された文書構造情報における何れかのノードを利用者に指示させることにより、選択部３４０は、指示された当該ノードに対応するタグ情報を選択する。
【００３８】
図４は、プログラム変換部２１０による変換処理の対象となる指示コマンドの詳細を説明する図である。本図は、指示プログラムの一例であるＪＳＰプログラムにおける、指示コマンドの種類と、当該指示コマンドの意味との対応付けの一例を示している。プログラム変換部２１０は、ＨＴＭＬタグのような単なるテキストデータとして記述された文を、指示コマンド「Ｔｅｘｔ」の種類に分類する。また、プログラム変換部２１０は、タグ情報「＜％＝」から始まり、タグ情報「％＞」で終わる文を、指示コマンド「Ｅｘｐｒｅｓｓｉｏｎ」の種類に分類する。
【００３９】
また、プログラム変換部２１０は、タグ情報「＜％」から始まり、タグ情報「％＞」で終わる文を、指示コマンド「Ｓｃｒｉｐｔｌｅｔ」の種類に分類する。また、プログラム変換部２１０は、タグリブ（タグ・ライブラリ）及びエンコード等を指定する宣言文を、指示コマンド「ＪＳＰ  Ｄｉｒｅｃｔｉｖｅ」の種類に分類する。また、プログラム変換部２１０は、Ｊａｖａ（登録商標）  Ｂｅａｎｓ等を操作するタグ情報を、指示コマンド「ＪＳＰ  Ｔａｇ」の種類に分類する。また、プログラム変換部２１０は、タグリブを記述した文を、指示コマンド「Ｔａｇ  Ｌｉｂｒａｒｙ」の種類に分類する。
【００４０】
このように、プログラム変換部２１０は、指示コマンドを所定の規則により分類する。そして、プログラム変換部２１０は、分類した指示コマンド単位で、各指示コマンドが何れの生成コマンドに変換されたかを示すＪＳＰ−サーブレット対応情報３６５を生成する。
【００４１】
図５（ａ）は、関数識別情報収集部２５０がフィルタ関数を挿入する設定ファイルの第１の例を示す。生成プログラムがサーブレットプログラムである場合、関数識別情報収集部２５０は、サーブレットプログラムを実行する実行環境を設定するｗｅｂ．ｘｍｌファイルに、本図の記載を追加することにより、フィルタ関数を挿入する。より詳細には、関数識別情報収集部２５０は、＜ｆｉｌｔｅｒ−ｎａｍｅ＞タグから＜／ｆｉｌｔｅｒ−ｎａｍｅ＞タグの間に、フィルタ関数の名称であって、ｗｅｂ．ｘｍｌファイル内で参照される名称を挿入する処理を行う。
【００４２】
また、関数識別情報収集部２５０は、＜ｆｉｌｔｅｒ−ｃｌａｓｓ＞タグから＜／ｆｉｌｔｅｒ−ｃｌａｓｓ＞タグの間に、フィルタ関数のクラス名を挿入する処理を行う。即ち、この記載は、情報処理システム１０が、生成プログラムの出力関数を実行する毎に、ＯｂｓｅｒｖｅｒＦｉｌｔｅｒクラス内の所定のメソッドを呼び出す旨を示している。
【００４３】
また、関数識別情報収集部２５０は、＜ｓｅｒｖｌｅｔ−ｎａｍｅ＞タグから＜／ｓｅｒｖｌｅｔ−ｎａｍｅ＞タグの間に、フィルタ関数を挿入する対象となる関数名を挿入する処理を行う。例えば、本図の例における「／＊」は、当該ｗｅｂ．ｘｍｌで指定されるｗｅｂアプリケーション内の全てのＪＳＰプログラム及びＳｅｒｖｌｅｔプログラム等に対して、フィルタ関数を挿入することを示している。これに代えて、関数識別情報収集部２５０は、＜ｕｒｌ−ｐａｔｔｅｒｎ＞タグから＜／ｕｒｌ−ｐａｔｔｅｒｎ＞タグの間に、フィルタ関数を挿入する対象となる関数の格納位置（例えば、ＵＲＬ：Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）を挿入してもよい。
【００４４】
このように、関数識別情報収集部２５０は、生成プログラムが実行される毎に実行されるフィルタ関数を、フィルタ関数を挿入する対象となる生成プログラム中の関数に対応付けて挿入する。
【００４５】
図５（ｂ）は、関数識別情報収集部２５０がフィルタ関数を挿入する設定ファイルの第２の例を示す。具体的には、本図は、関数識別情報収集部２５０が、それぞれが独立して動作する複数の表示用プログラムを一のブラウザ画面上に表示する統合プログラムに、フィルタ関数を挿入する設定ファイルを示す。なお、一例としては、これらの統合プログラム及び表示用プログラムは、Ｊａｖａ（登録商標）  Ｐｏｒｔａｌ  ＡＰＩに準拠していてもよく、具体的には、インターナショナル・ビジネス・マシーンズコーポレーションにおけるＷｅｂＳｐｈｅｒｅＰｏｒｔａｌ  Ｓｅｒｖｅｒとして実装されている。この場合、統合プログラムとは、例えば、Ｐｏｒｔａｌプログラムであり、表示用プログラムとは、例えば、Ｐｏｒｔｌｅｔプログラムである。
【００４６】
関数識別情報収集部２５０は、統合プログラムの実行環境を指定する設定ファイルであるＰｏｒｔａｌＦｉｌｔｅｒＳｅｒｖｉｃｅ．ｐｒｏｐｅｒｔｉｅｓに、本図に示した記載を追加する処理を行う。例えば、関数識別情報収集部２５０は、フィルタ関数の名称が「ｈｔｍｌ」である旨を示す設定として、１行目の「ｆｉｌｔｅｒｎａｍｅ４＝ｈｔｍｌ」を挿入する。また、関数識別情報収集部２５０は、フィルタ関数のクラス名を示す設定として、２行目の「ｈｔｍｌ．ｃｌａｓｓｎａｍｅ＝ＰｏｒｔａｌＯｂｓｅｒｖｅｒＦｉｌｔｅｒ」を挿入する。
【００４７】
図５（ｃ）は、関数識別情報収集部２５０がフィルタ関数を挿入する設定ファイルの第３の例を示す。具体的には、本図は、関数識別情報収集部２５０が、上記統合プログラムにより統合されて表示される表示用プログラムに、フィルタ関数を挿入する設定ファイルを示す。
【００４８】
関数識別情報収集部２５０は、表示用プログラムを実行する実行環境を指定する設定ファイルであるＰｏｒｔｌｅｔＦｉｌｔｅｒＳｅｒｖｉｃｅ．ｐｒｏｐｅｒｔｉｅｓに、本図に示した記載を追加する処理を行う。例えば、関数識別情報収集部２５０は、フィルタ関数の名称が「ＯｂｓｅｒｖｅｒＦｉｌｔｅｒ」である旨を示す設定として、１行目の「ｆｉｌｔｅｒｎａｍｅ２＝ＯｂｓｅｒｖｅｒＦｉｌｔｅｒ」を挿入する。また、関数識別情報収集部２５０は、フィルタ関数のクラス名を示す設定として、２行目の「ＯｂｓｅｒｖｅｒＦｉｌｔｅｒ．ｃｌａｓｓｎａｍｅ＝ＰｏｒｔｌｅｔＯｂｓｅｒｖｅｒＦｉｌｔｅｒ」を挿入する。更に、この場合、関数識別情報収集部２５０は、フィルタ関数の挿入対象となる表示用プログラムにおいて、ＦｉｌｔｅｒＣｈａｉｎというパラメータを設け、当該パラメータの値にＯｂｓｅｒｖｅｒＦｉｌｔｅｒを設定する。
【００４９】
このように、関数識別情報収集部２５０は、生成プログラムの具体的な形態に応じて異なる適切な方法により、フィルタ関数を挿入する。そして、関数識別情報収集部２５０は、挿入したフィルタ関数内に、生成プログラムの出力関数に代えて、生成される文書構成要素を監視する監視関数を実行させる処理を記載する。この監視関数は、文書構成要素と生成コマンドとを対応付ける処理を行うので、情報処理システム１０は、生成コマンドが実行される毎に、当該生成コマンドにより生成された文書構成要素を識別することができる。
【００５０】
また、本図の例に代えて、関数識別情報収集部２５０は、利用者からの表示要求を受けて実行の開始点となる生成プログラム又は指示プログラムを特定し、利用者からの表示要求を受けてから特定した当該プログラムが実行される前にフィルタ関数が実行されるようにｗｅｂ．ｘｍｌ等に設定してもよい。具体的には、関数識別情報収集部２５０は、生成プログラム、指示プログラム、及びｗｅｂ．ｘｍｌファイルが配置されるディレクトリの構成を解析することにより、利用者からの表示要求を受けて実行の開始点となる生成プログラム又は指示プログラムを特定する。この場合、情報処理システム１０は、各プログラムの実行を開始する前に所定のプログラムを実行するフィルタ処理機能を有していない場合であっても、出力関数に代えて監視関数を実行させることができる。
【００５１】
更に他の例として、関数識別情報収集部２５０は、生成プログラムにおける出力関数に、監視関数の機能を追加してもよい。例えば、生成プログラムがＪａｖａ（登録商標）言語のプログラムである場合、関数識別情報収集部２５０は、監視関数の機能を追加するべく、ＳｅｒｖｌｅｔＲｅｓｐｏｎｓｅクラス又はＪｓｐＷｒｉｔｅｒクラスの実装を行ってもよい。この場合、情報処理システム１０は、フィルタ処理機能を有しない場合であっても、利用者からの表示要求を受けた実行の開始点の解析を行うことなく、対応情報を生成することができる。
【００５２】
図６（ａ）は、スタックトレース情報３７０の第１の例を示す。具体的には、関数識別情報収集部２５０は、生成プログラムであるサーブレットプログラムが、指示プログラムであるＪＳＰプログラムから変換されたものである場合の、スタックトレース情報３７０の例を示す。関数識別情報収集部２５０は、スタックトレース情報３７０として、Ｊａｖａ（登録商標）言語において例外処理が発生した旨の情報を、１行目に出力する。また、関数識別情報収集部２５０は、当該例外処理が発生した監視関数の名称がＯｂｓｅｒｖｅｄＰｒｉｎｔＷｒｉｔｅｒ．ｗｒｉｔｅであり、かつ当該監視関数がＯｂｓｅｒｖｅｄＰｒｉｎｔＷｒｉｔｅｒ．ｊａｖａのファイルの９４行目に記載されている旨の情報を、２行目に出力する。
【００５３】
更に、関数識別情報収集部２５０は、スタックトレース情報３７０として、監視関数を呼び出している関数名がｏｒｇ．ａｐａｃｈｅ．ｊａｓｐｅｒ．ｒｕｎｔｉｍｅ．ＪｓｐＷｒｉｔｅｒｌｍｐｌ．ｗｒｉｔｅである旨を示す情報を３行目に出力する。また、関数識別情報収集部２５０は、当該関数が記述されたファイルの名称と、当該ファイルにおいて当該関数が記述されている行数の情報とを出力する。
【００５４】
以降同様に、関数識別情報収集部２５０は、監視関数を呼び出すまでに呼び出してきた関数の構造をスタックトレース情報３７０として順次表示する。そして、関数識別情報収集部２５０は、監視関数を呼び出した関数から、生成プログラムを起動する予め定められた関数である、ｏｒｇ．ａｐａｃｈｅ．ｊａｓｐｅｒ．ｒｕｎｔｉｍｅ．ＨｔｔｐＪｓｐＢａｓｅ．ｓｅｒｖｉｃｅに至るまでを、出力関数を呼び出してきた関数の階層構造として特定する。例えば、本図で示したスタックトレース情報３７０によると、関数識別情報収集部２５０は、出力関数を呼び出す生成コマンドが、生成プログラムの一例であるｄａｔｅ＄ｊｓｐ．ｊａｖａの１２４行目に記述されていることを特定できる。
【００５５】
図６（ｂ）は、スタックトレース情報３７０の第２の例を示す。具体的には、生成プログラムであるサーブレットプログラムが、指示プログラムであるＪＳＰプログラムから変換されたものでない場合の、スタックトレース情報３７０の例を示す。関数識別情報収集部２５０は、スタックトレース情報３７０として、Ｊａｖａ（登録商標）言語において例外処理が発生した旨を示す情報を、１行目に出力する。また、関数識別情報収集部２５０は、当該例外処理が発生した監視関数の名称がＯｂｓｅｒｖｅｄＰｒｉｎｔＷｒｉｔｅｒ．ｗｒｉｔｅであり、かつ当該監視関数がＯｂｓｅｒｖｅｄＰｒｉｎｔＷｒｉｔｅｒ．ｊａｖａのファイルの８３行目に記載されている旨の情報を、２行目に出力する。
【００５６】
更に、関数識別情報収集部２５０は、スタックトレース情報３７０として、監視関数を呼び出している関数名がｊａｖａ．ｉｏ．ＰｒｉｎｔＷｒｉｔｅｒ．ｐｒｉｎｔである旨を示す情報を出力する。以降同様に、関数識別情報収集部２５０は、監視関数を呼び出すまでに呼び出してきた関数の階層構造をスタックトレース情報３７０として順次表示する。そして、関数識別情報収集部２５０は、監視関数を呼び出した関数から、生成プログラムを起動する予め定められた関数である、ｊａｖａｘ．ｓｅｒｖｌｅｔ．ｈｔｔｐ．ＨｔｔｐＳｅｒｖｌｅｔ．ｓｅｒｖｉｃｅまでを、出力関数を呼び出してきた関数の階層構造として特定する。例えば、本図で示したスタックトレース情報３７０によると、関数識別情報収集部２５０は、出力関数を呼び出す生成コマンドが、生成プログラムの一例であるＳｎｏｏｐＳｅｒｖｌｅｔ．ｊａｖａの１２５行目において呼び出されていることを特定できる。
【００５７】
図７（ａ）は、文書情報の一例であるＨＴＭＬ文書の例を示す。本図のＨＴＭＬ文書は、タグ付き文書の一例であり、文書情報の閲覧者に表示する表示情報７００と、表示情報７００の表示形式を指定するタグ情報７１０と、文書構成要素７３０とを含む。例えば、表示情報７００は、ウェブブラウザ等の表示画面３２５上に直接表示される情報であり、タグ情報７１０は、表示情報７００を箇条書きとして表示するように、ウェブブラウザ等に指示する情報である。
【００５８】
このように、本図において、タグ情報とは、ＨＴＭＬ文書におけるＨＴＭＬタグである、記号「＜」から始まり記号「＞」に至るまでの文字列である。これに代えて、タグ情報とは、ＨＴＭＬタグの一部であってもよいし、表示情報の表示形式の詳細を制御するＨＴＭＬオプションであってもよい。例えば、「ｐｈｏｔｏ．ｇｉｆ」というファイル名の画像を表示する以下のようなＨＴＭＬ文書を例に説明する。
＜ＩＭＧ  ｓｒｃ＝”ｐｈｏｔｏ．ｇｉｆ”  ａｌｔ＝””＞
この例において、タグ情報とは、画像を表示する旨を示すＨＴＭＬタグである「＜ＩＭＧ」及び「＞」であってもよいし、このＨＴＭＬタグの一部である「＜」であってもよい。また、タグ情報とは、画像のファイルが存在しない場合に画像に代えて表示するべき情報を示すＨＴＭＬオプションである「ａｌｔ＝””」であってもよいし、属性の値である「””」であってもよい。即ち、タグ情報とは、タグ名やタグの属性、属性の値など、ＨＴＭＬのタグ記述の一部を指すものであってもよい。
【００５９】
図７（ｂ）は、図７（ａ）の文書構成要素７３０が生成された時点でのスタックトレース情報３７０の一例を示す。例えば、関数識別情報収集部２５０は、スタックトレース情報３７０に基づいて、文書構成要素７３０を生成する生成コマンドが、ｄａｔｅ＄ｊｓｐ．ｊａｖａファイルの１２４行目のコマンドであることを特定する。
【００６０】
図７（ｃ）は、図７（ａ）の文書構成要素７３０を生成する生成プログラムの一例を示す。ｄａｔｅ＄ｊｓｐ．ｊａｖａファイルの１２４行目では、生成コマンド７４０が呼び出されている。なお、プログラム変換部２１０は、生成コマンド７４０の変換元の指示コマンドを識別する情報を、１２３行目に、生成コマンドとは無関係なコメント文として生成する。例えば、本図は、プログラム変換部２１０がＪａｓｐｅｒ（登録商標）等のＪＳＰコンパイラである場合の生成例を示しており、生成コマンド７４０に変換される指示コマンドが、／ｊｓｐ／ｄａｔｅｓ／ｄａｔａ．ｊｓｐというＪＳＰプログラムの、２０行目６２列目から２１行目１４列目に至る領域に記載されている旨を示している。
【００６１】
図７（ｄ）は、図７（ｃ）の生成コマンドに変換される指示プログラムの一例を示す。指示プログラムの一例であるＪＳＰプログラムは、ＨＴＭＬ文書として表示すべき内容自体を示す指示コマンドである「＜ｌｉ＞  Ｄａｙ：ｉｓ」と、ＨＴＭＬ文書として生成するべき内容を指示する指示コマンド「＜ｊｓｐ：ｇｅｔＰｒｏｐｅｒｔｙ  ｎａｍｅ＝”ｌｏｃｋ”  ｐｒｏｐｅｒｔｙ＝”ｄａｙ”＞」とを有している。このように、ＨＴＭＬ文書として表示すべき内容の少なくとも一部は、ＪＳＰプログラムに含まれていてもよい。
【００６２】
また、ＪＳＰプログラムのおける指示コマンドは、変換先の生成プログラムにおける生成コマンドに比べて、サイズが小さい。例えば、図７（ｄ）において下線を付した「＜ｌｉ＞  Ｄａｔｅ：ｉｓ」は、図７（ｃ）において下線を付した生成コマンド７４０に比べて、サイズが小さい。
【００６３】
また、本図は、／ｊｓｐ／ｄａｔｅｓ／ｄａｔａ．ｊｓｐというＪＳＰプログラムの、２０行目及び２１行目を示している。図７（ｃ）に示したとおり、生成コマンド７４０に変換される指示コマンドは、本図のＪＳＰプログラムにおける２０行目６２列目から２１行目１４列目に至る領域に、記述されている。
【００６４】
本図で示すように、プログラム変換部２１０は、ＪＳＰプログラムの指示コマンドと、サーブレットプログラムの生成コマンドとを対応付けた情報を、サーブレットプログラム中にコメント文として挿入する。これにより、対応情報生成部２６０は、スタックトレース情報３７０及びサーブレットプログラム内のコメント文に基づいて、文書構成要素及び指示コマンドを対応付けた対応情報を出力することができる。
また、これに代えて、関数識別情報収集部２５０は、スタックトレース情報３７０において、文書構成要素と、文書構成要素の内容を指示した指示コマンドとを対応付けて収集してもよい。具体的には、サーブレットプログラムを実行する処理の実現方法及びプログラム変換部２１０の実現方法によっては、スタックトレース情報３７０において、図７（ｂ）のｄａｔｅ＄ｊｓｐ．ｊａｖａ：１２４に代えて、ｄａｔｅ．ｊｓｐ：２１のような指示コマンドの所在を示す情報を得られる場合がある。この場合、プログラム変換部２１０は、図７（ｃ）に示すコメント文を生成しなくともよい。
【００６５】
図８は、表示画面３２５の表示例を示す。表示画面３２５は、生成プログラムが何れの生成コマンドを実行しているかを示す実行状態を表示するトレースウィンドウ８００と、生成プログラムが使用する変数の値を表示するバリューウィンドウ８１０と、生成プログラムに含まれる複数の生成コマンドを表示するエディタウィンドウ８２０と、生成プログラムの実行に伴って用いられるプログラムを格納するファイルのリストを表示するアウトラインウィンドウ８３０と、生成プログラムにより生成されたＨＴＭＬ文書により表示される表示オブジェクトを表示するブラウザウィンドウ８４０と、利用者が認識困難な表示オブジェクトを表示するタスクウィンドウ８５０とを有する。ブラウザウィンドウ８４０は、表示オブジェクトと伴に、更に、ＨＴＭＬ−ＤＯＭ−ＴＲＥＥ又はＨＴＭＬ文書を表示してもよい。
【００６６】
このように、表示部３２０は、生成プログラムと、ＨＴＭＬ文書により表示される表示オブジェクトの双方を、表示画面３２５上に表示する。選択部３４０は、表示画面３２５のブラウザウィンドウ８４０上に表示した表示オブジェクトの何れかを利用者に指示させる。そして、選択部３４０は、指示された当該表示オブジェクトを表示させた表示情報及びタグ情報を選択する。これを受けて、コマンド情報出力部３５０は、選択部３４０により選択された表示情報及びタグ情報を生成した生成コマンドを、例えば、エディタウィンドウ８２０上にハイライトして表示することにより、生成コマンドを識別する情報として出力する。
【００６７】
また、他の例としては、表示結果解析検出部３３０は、ブラウザウィンドウ８４０に表示される表示オブジェクトのうち、所定の認識容易条件を満たさない認識困難オブジェクトを検出し、検出した認識困難オブジェクトを識別する情報をタスクウィンドウ８５０に表示する。
【００６８】
例えば、表示結果解析検出部３３０は、ブラウザウィンドウ８４０に表示オブジェクトを表示させるＨＴＭＬ文書について、当該ＨＴＭＬ文書が、利用者に対して認識し易い表示オブジェクトを表示するものであるか否かを検出するアクセシビリティチェックを行ってもよい。一例としては、表示結果解析検出部３３０は、ＪＳＰプログラム及びサーブレットプログラムにより生成されたＨＴＭＬ文書について、アクセシビリティチェックを行うＢｏｂｂｙプログラムを用いて実現されてもよい（非特許文献２参照）。この場合、表示結果解析検出部３３０は、アクセシビリティチェックの結果、認識困難であると判断された表示オブジェクトについて、認識困難である理由と、当該表示オブジェクトに対応するＨＴＭＬ文書の行数とを対応付けてブラウザウィンドウ８４０に表示する。
【００６９】
そして、選択部３４０は、タスクウィンドウ８５０上に表示した認識困難オブジェクトのうち、利用者から指示された表示オブジェクトについて、当該表示オブジェクトを表示画面３２５のブラウザウィンドウ８４０に表示させた表示情報及びタグ情報を選択する。これを受けて、コマンド情報出力部３５０は、選択部３４０により選択された表示情報及びタグ情報を生成した生成コマンドを識別する情報を、エディタウィンドウ８２０上に出力する。
【００７０】
このように、表示画面３２５は、表示オブジェクト又は文書構成要素が選択される毎に、対応する生成コマンドを同一の画面上に表示する。従って、生成プログラムの作成者は、表示オブジェクトが誤っている部分をブラウザウィンドウ８４０上で指示することにより、生成プログラムのエラー箇所を発見することができる。
【００７１】
図９は、表示画面３２５による表示の概念図である。表示画面３２５が、ブラウザウィンドウ８４０に、表示オブジェクト８４０ｃを表示する場合、選択部３４０は、利用者に、一又は複数の表示オブジェクトを指示させ、当該表示オブジェクトに対応する文書構成要素を選択する。また、表示画面３２５は、表示オブジェクト８４０ｃに代えて、ＨＴＭＬ−ＤＯＭ−ＴＲＥＥ８４０ａをブラウザウィンドウ８４０に表示してもよい。この場合、選択部３４０は、利用者に、ＨＴＭＬ−ＤＯＭ−ＴＲＥＥ８４０ａの各ノードを指示させることにより、当該ノードが示すタグ情報を選択する。
【００７２】
更に、表示画面３２５は、ブラウザウィンドウ８４０に、ＨＴＭＬ−ＤＯＭ−ＴＲＥＥ８４０ａに代えて、ＨＴＭＬ文書８４０ｂを切り替えて表示してもよい。好ましくは、表示画面３２５は、ＨＴＭＬ文書８４０ｂを、出力する表示オブジェクト単位に断片化して表示する。この場合、選択部３４０は、利用者に、ＨＴＭＬ文書８４０ｂにおける表示情報及びタグ情報を指示させることにより、複数の文書構成要素の何れかを選択する。
以上の処理において選択された文書構成要素について、コマンド情報出力部３５０は、当該文書構成要素を生成した生成コマンドを、対応情報に基づいて選択し、例えば、エディタウィンドウ８２０上に出力する。
【００７３】
また、制御フローグラフ生成部２２０は、生成プログラムにおける制御フローグラフ９２０を予め生成している。そして、コマンド情報出力部３５０は、制御フローグラフ９２０における、対応情報に基づいて選択した生成コマンドの位置を示す情報である制御フロー位置情報８２０ａを、エディタウィンドウ８２０上に更に出力する。この場合、好ましくは、コマンド情報出力部３５０は、生成プログラムのうち、選択した生成コマンドに該当する部分と、当該生成コマンドに対して制御が流入する部分とをハイライトして表示する。
【００７４】
また、データフローグラフ生成部２３０は、生成プログラムにおけるデータフローグラフ９３０を予め生成している。そして、コマンド情報出力部３５０は、データフローグラフ９３０における、対応情報に基づいて選択した生成コマンドの位置を示す情報であるデータフロー位置情報８２０ｂを、エディタウィンドウ８２０上に更に出力する。この場合、好ましくは、コマンド情報出力部３５０は、生成プログラムのうち、選択した生成コマンドに該当する部分と、当該生成コマンドが使用するデータを生成するコマンドが記述された部分とをハイライトして表示する。
【００７５】
このように、情報処理システム１０は、生成コマンドのみならず、生成コマンドに影響を与える部分、即ち、生成コマンドにデータを与える他のコマンド及び生成コマンドより前に実行される条件分岐命令を出力する。これにより、情報処理システム１０は、プログラマに対し、コマンド間の依存関係の理解を助けることができる。また、情報処理システム１０は、生成プログラムのうち、生成コマンドに直接関連する部分を限定して出力する。これにより、プログラマは、生成プログラムのうち誤りのある領域を適切に絞り込むことができる。
【００７６】
図１０は、サーバ装置２０のハードウェア構成の一例を示す。サーバ装置２０は、ホストコントローラ１０８２により相互に接続されるＣＰＵ１０００、ＲＡＭ１０２０、グラフィックコントローラ１０７５、及び表示装置１０８０を有するＣＰＵ周辺部と、入出力コントローラ１０８４によりホストコントローラ１０８２に接続される通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を有する入出力部と、入出力コントローラ１０８４に接続されるＲＯＭ１０１０、フレキシブルディスクドライブ１０５０、及び入出力チップ１０７０を有するレガシー入出力部とを備える。
【００７７】
ホストコントローラ１０８２は、ＲＡＭ１０２０と、高い転送レートでＲＡＭ１０２０をアクセスするＣＰＵ１０００及びグラフィックコントローラ１０７５とを接続する。ＣＰＵ１０００は、ＲＯＭ１０１０及びＲＡＭ１０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ１０７５は、ＣＰＵ１０００等がＲＡＭ１０２０内に設けたフレームバッファ上に生成する画像データを取得し、表示装置１０８０上に表示させる。これに代えて、グラフィックコントローラ１０７５は、ＣＰＵ１０００等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。
【００７８】
入出力コントローラ１０８４は、ホストコントローラ１０８２と、比較的高速な入出力装置である通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を接続する。通信インターフェイス１０３０は、ネットワークを介して他の装置と通信する。ハードディスクドライブ１０４０は、サーバ装置２０が使用する制御プログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ１０６０は、ＣＤ−ＲＯＭ１０９５から制御プログラム又はデータを読み取り、ＲＡＭ１０２０を介して入出力チップ１０７０に提供する。
【００７９】
また、入出力コントローラ１０８４には、ＲＯＭ１０１０と、フレキシブルディスクドライブ１０５０や入出力チップ１０７０等の比較的低速な入出力装置とが接続される。ＲＯＭ１０１０は、サーバ装置２０の起動時にＣＰＵ１０００が実行するブートプログラムや、サーバ装置２０のハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ１０５０は、フレキシブルディスク１０９０から制御プログラム又はデータを読み取り、ＲＡＭ１０２０を介して入出力チップ１０７０に提供する。入出力チップ１０７０は、フレキシブルディスク１０９０や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。
【００８０】
サーバ装置２０に提供される制御プログラムは、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。制御プログラムは、記録媒体から読み出され、入出力チップ１０７０を介してサーバ装置２０にインストールされ、サーバ装置２０において実行される。
【００８１】
サーバ装置２０にインストールされて実行される制御プログラムは、プログラム変換モジュールと、制御フローグラフ生成モジュールと、データフローグラフ生成モジュールと、バッファモジュールと、バッファ停止モジュールと、関数識別情報収集モジュールと、対応情報生成モジュールとを含む。各モジュールがサーバ装置２０に働きかけて行わせる動作は、図１から図９において説明したサーバ装置２０における、対応する部材の動作と同一であるから、説明を省略する。
【００８２】
また、サーバ装置２０は、クライアント装置３０を動作させる制御プログラムをクライアント装置３０に送信し、クライアント装置３０において実行してもよい。クライアント装置３０に提供される制御プログラムは、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。制御プログラムは、記録媒体から読み出され、入出力チップ１０７０を介してサーバ装置２０に提供され、クライアント装置３０において実行される。
【００８３】
クライアント装置３０にインストールされて実行される制御プログラムは、入力受付モジュールと、動作モード切替モジュールと、表示モジュールと、文書構造情報出力モジュールと、表示結果解析検出モジュールと、選択モジュールと、コマンド情報出力モジュールと、文書構成要素出力モジュールとを含む。各モジュールがクライアント装置３０に働きかけて行わせる動作は、図１から図９において説明したクライアント装置３０における、対応する部材の動作と同一であるから、説明を省略する。
【００８４】
以上に示した制御プログラム又はモジュールは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５の他に、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介して制御プログラムをサーバ装置２０又はクライアント装置３０に提供してもよい。
【００８５】
上記実施形態から明らかなように、情報処理システム１０は、ＨＴＭＬ文書を生成するサーブレットプログラムを実行し、複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する。そして、情報処理システム１０は、利用者からの指示に応じて文書構成要素を選択し、当該文書構成要素に対応する生成コマンドを出力する。これにより、サーブレットプログラムの作成者等は、所望の文書構成要素に対応する生成コマンドを適切に特定することができる。
【００８６】
また、情報処理システム１０は、サーブレットプログラムに変換されるＪＳＰプログラムについても、ＪＳＰプログラム中の指示コマンドと、当該指示コマンドに対応する文書構成要素との対応付けを示す対応情報を生成する。これにより、ＪＳＰプログラムの作成者等は、所望の文書構成要素に対応する指示コマンドを適切に特定することができる。更に、情報処理システム１０は、特定した生成コマンド及び指示コマンドについて、当該コマンドの、制御フローグラフ又はデータフローグラフ上の位置を示す情報を出力することにより、プログラマの作業を支援する。
【００８７】
また、情報処理システム１０は、ＨＴＭＬ文書をブラウザ画面上に表示し、表示結果の表示オブジェクトを利用者に選択させることにより、文書構成要素を選択する。更に、情報処理システム１０は、ＨＴＭＬ文書の構造を示す文書構造情報（例えば、ＨＴＭＬ−ＤＯＭ−ＴＲＥＥ）を生成し、文書構造情報を示すグラフのノードを選択させることにより、文書構成要素を選択する。これにより、プログラマは、プログラムの修正作業の内容に応じて適切な入力方法を選択することができ、利便である。
【００８８】
以上、本発明を実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。上記実施形態に、多様な変更または改良を加えることができる。そのような変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【００８９】
上記実施形態によれば、以下の各項目に示す情報処理システム、制御方法、制御プログラム、及び記録媒体が実現される。
【００９０】
（項目１）  複数の文書構成要素から構成される文書情報を生成する生成プログラムを解析する情報処理システムであって、前記生成プログラムは、前記文書情報に含まれる前記複数の文書構成要素のそれぞれを生成する複数の生成コマンドのそれぞれを有しており、前記生成プログラムを実行し、前記複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する対応情報生成部と、利用者からの指示に応じて前記複数の文書構成要素の何れかを選択する選択部と、前記選択部により選択された当該文書構成要素を生成した生成コマンドを、前記対応情報に基づいて選択し、当該生成コマンドを識別する情報を出力するコマンド情報出力部とを備える情報処理システム。
（項目２）  前記文書情報は、前記文書情報の閲覧者に表示する表示情報と、当該表示情報の表示形式を指定するタグ情報とを含むタグ付き文書であり、前記選択部は、前記文書構成要素として、前記文書情報に含まれる複数の前記表示情報のうち何れかの表示情報又は当該表示情報の表示形式を指示するタグ情報を選択し、前記コマンド情報出力部は、前記選択部により選択された前記表示情報を生成した生成コマンド又は前記選択部により選択された前記タグ情報を生成した生成コマンドを、前記対応情報に基づいて選択して出力する項目１記載の情報処理システム。
【００９１】
（項目３）  前記タグ情報は、当該タグ情報により表示形式を指定した表示情報内に、更に内側タグ情報を含む外側タグ情報であり、当該情報処理システムは、木構造のグラフであって、前記外側タグ情報を根ノードとして表し、前記内側タグ情報を前記根ノードの葉ノードとして表したグラフである、文書構造情報を生成する文書構造情報生成部を更に備え、前記選択部は、前記文書構造情報における何れかのノードを前記利用者に指示させ、指示させた当該ノードに対応する前記タグ情報を選択する項目２記載の情報処理システム。
（項目４）  前記選択部は、前記文書情報に基づき表示画面上に表示された複数の表示オブジェクトの何れかを前記利用者に指示させ、指示された当該表示オブジェクトを表示させた前記表示情報及び前記タグ情報を選択する項目２記載の情報処理システム。
（項目５）  閲覧者が前記表示画面上に表示された表示オブジェクトを容易に認識できるか否かを示す認識容易条件が予め定められており、前記表示オブジェクトのうち、前記認識容易条件を満たさない認識困難オブジェクトを検出する表示結果解析検出部を更に備え、前記選択部は、前記文書情報のうち、前記認識困難オブジェクトを前記表示画面上に表示させた前記表示情報及び前記タグ情報を、前記文書構成要素として選択する項目４記載の情報処理システム。
【００９２】
（項目６）  前記文書情報は、前記生成プログラムに変換されるプログラムであって、前記生成プログラムが生成すべき前記文書構成要素の内容を指示する指示プログラムに更まれ、当該情報処理システムは、前記指示プログラムを前記生成プログラムに変換するプログラム変換部を更に備え、前記対応情報生成部は、前記指示プログラムにおける複数の指示コマンドのそれぞれと、当該指示コマンドにより指示されて前記生成プログラムにより生成された前記文書構成要素とを対応付けた情報を、前記対応情報として更に生成し、前記コマンド情報出力部は、前記選択部により選択された当該文書構成要素の内容を指示した前記指示コマンドを、前記対応情報に基づいて選択し、当該指示コマンドを識別する情報を更に出力する項目２記載の情報処理システム。
（項目７）  前記生成プログラムにおいて、複数の生成コマンドが順次実行される実行の流れを示す制御フローグラフを生成する制御フローグラフ生成部を更に備え、前記コマンド情報出力部は、前記制御フローグラフにおける、前記対応情報に基づいて選択した生成コマンドの位置を示す情報を更に出力する項目１記載の情報処理システム。
（項目８）  前記生成プログラムにおいて、一のコマンドにより生成されたデータが、他の何れのコマンドにより使用されるかを示したデータフローグラフを生成するデータフローグラフ生成部を更に備え、前記コマンド情報出力部は、前記データフローグラフにおける、前記対応情報に基づいて選択した生成コマンドの位置を示す情報を更に出力する項目１記載の情報処理システム。
【００９３】
（項目９）  前記複数のコマンドのそれぞれは、当該生成コマンドが生成した文書構成要素を出力する出力関数を呼び出し、当該情報処理システムは、前記文書構成要素のそれぞれを、当該文書構成要素を出力した出力関数及び当該出力関数を呼び出した生成コマンドに対応付けた情報である、関数識別情報を収集する関数識別情報収集部を更に備え、前記対応情報生成部は、前記関数識別情報に基づいて、前記対応情報を生成する項目１記載の情報処理システム。
（項目１０）  前記コマンド情報出力部が前記生成コマンドを識別する情報を出力するテストモードと、前記コマンド情報出力部が前記生成コマンドを識別する情報の出力を停止した通常モードとを切り替える動作モード切替部を更に備え、前記動作モード切替部により前記テストモードに設定された場合において、前記対応情報生成部は、前記生成プログラムを実行することにより前記対応情報を生成し、前記生成コマンド情報出力部は、前記選択部により選択された当該文書構成要素を生成した生成コマンドを、前記対応情報に基づいて選択し、当該生成コマンドを識別する情報を出力する項目１記載の情報処理システム。
【００９４】
（項目１１）  前記生成プログラムが生成した少なくとも一の文書構成要素を格納し、予め定められたタイミングにより、格納していた前記少なくとも一の文書構成要素を、前記文書情報の一部として出力するバッファ部と、前記動作モード切替部により前記テストモードに設定された場合に、前記バッファ部による文書構成要素の格納を停止し、前記生成プログラムにより文書構成要素が生成される毎に、当該文書構成要素を前記文書情報の一部として出力させるバッファ停止部とを更に備える項目１記載の情報処理システム。
（項目１２）  複数の文書構成要素から構成される文書情報を生成する生成プログラムを解析する情報処理システムであって、前記生成プログラムは、前記文書情報における前記複数の文書構成要素のそれぞれを生成する複数の生成コマンドのそれぞれを有しており、前記生成プログラムを実行し、前記複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する対応情報生成部と、利用者からの指示に応じて前記複数の生成コマンドの何れかを選択する選択部と、前記選択部により選択された生成コマンドにより生成される文書構成要素を、前記対応情報に基づいて選択して出力する文書構成要素出力部とを備える情報処理システム。
【００９５】
（項目１３）  複数の文書構成要素から構成される文書情報を生成する生成プログラムを解析する情報処理システムを制御する制御方法であって、前記生成プログラムは、前記文書情報に含まれる前記複数の文書構成要素のそれぞれを生成する複数の生成コマンドのそれぞれを有しており、前記生成プログラムを実行し、前記複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する対応情報生成段階と、利用者からの指示に応じて前記複数の文書構成要素の何れかを選択する選択段階と、前記選択段階において選択された当該文書構成要素を生成した生成コマンドを、前記対応情報に基づいて選択し、当該生成コマンドを識別する情報を出力するコマンド情報出力段階とを備える制御方法。
（項目１４）  複数の文書構成要素から構成される文書情報を生成する生成プログラムを解析する情報処理システムを制御する制御方法であって、前記生成プログラムは、前記文書情報における前記複数の文書構成要素のそれぞれを生成する複数の生成コマンドのそれぞれを有しており、前記生成プログラムを実行し、前記複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する対応情報生成段階と、利用者からの指示に応じて前記複数の生成コマンドの何れかを選択する選択段階と、前記選択段階において選択された生成コマンドにより生成される文書構成要素を、前記対応情報に基づいて選択して出力する文書構成要素出力段階とを備える制御方法。
【００９６】
（項目１５）  複数の文書構成要素から構成される文書情報を生成する生成プログラムを解析する情報処理システムを制御する制御プログラムであって、前記生成プログラムは、前記文書情報に含まれる前記複数の文書構成要素のそれぞれを生成する複数の生成コマンドのそれぞれを有しており、前記情報処理システムを、前記生成プログラムを実行し、前記複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する対応情報生成部と、利用者からの指示に応じて前記複数の文書構成要素の何れかを選択する選択部と、前記選択部により選択された当該文書構成要素を生成した生成コマンドを、前記対応情報に基づいて選択し、当該生成コマンドを識別する情報を出力するコマンド情報出力部として機能させる制御プログラム。
（項目１６）  複数の文書構成要素から構成される文書情報を生成する生成プログラムを解析する情報処理システムを制御する制御プログラムであって、前記生成プログラムは、前記文書情報における前記複数の文書構成要素のそれぞれを生成する複数の生成コマンドのそれぞれを有しており、前記情報処理システムを、前記生成プログラムを実行し、前記複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する対応情報生成部と、利用者からの指示に応じて前記複数の生成コマンドの何れかを選択する選択部と、前記選択部により選択された生成コマンドにより生成される文書構成要素を、前記対応情報に基づいて選択して出力する文書構成要素出力部として機能させる制御プログラム。
【００９７】
【発明の効果】
上記説明から明らかなように、本発明によればプログラムの誤っている部分を適切に検出することができる。
【図面の簡単な説明】
【図１】図１は、情報処理システム１０の機能ブロック図を示す。
【図２】図２は、情報処理システム１０のフローチャートを示す。
【図３】図３は、情報処理システム１０の動作の概念図を示す。
【図４】図４は、プログラム変換部２１０による変換処理の対象となる指示コマンドの詳細を説明する図である。
【図５】図５（ａ）は、関数識別情報収集部２５０がフィルタ関数を挿入する設定ファイルの第１の例を示す。
図５（ｂ）は、関数識別情報収集部２５０がフィルタ関数を挿入する設定ファイルの第２の例を示す。
図５（ｃ）は、関数識別情報収集部２５０がフィルタ関数を挿入する設定ファイルの第３の例を示す。
【図６】図６（ａ）は、スタックトレース情報３７０の第１の例を示す。
図６（ｂ）は、スタックトレース情報３７０の第２の例を示す。
【図７】図７（ａ）は、文書情報の一例であるＨＴＭＬ文書の例を示す。
図７（ｂ）は、図７（ａ）の文書構成要素７３０が生成された時点でのスタックトレース情報３７０の一例を示す。
図７（ｃ）は、図７（ａ）の文書構成要素７３０を生成する生成プログラムの一例を示す。
図７（ｄ）は、図７（ｃ）の生成コマンドに変換される指示プログラムの一例を示す。
【図８】図８は、表示画面３２５の表示例を示す。
【図９】図９は、表示画面３２５による表示の概念図である。
【図１０】図１０は、サーバ装置２０のハードウェア構成の一例を示す。
【符号の説明】
１０  情報処理システム
２０  サーバ装置
３０  クライアント装置
２００  プログラムデータベース
２１０  プログラム変換部
２２０  制御フローグラフ生成部
２３０  データフローグラフ生成部
２３５  バッファ部
２４０  バッファ停止部
２５０  関数識別情報収集部
２６０  対応情報生成部
３００  入力受付部
３１０  動作モード切替部
３２０  表示部
３２２  文書構造情報出力部
３２５  表示画面
３３０  表示結果解析検出部
３４０  選択部
３５０  コマンド情報出力部
３６０  文書構成要素出力部
３６５  ＪＳＰ−サーブレット対応情報
３７０  スタックトレース情報
３８０  サーブレット−ＨＴＭＬ対応情報
７００  表示情報
７１０  タグ情報
７３０  文書構成要素
７４０  生成コマンド
８００  トレースウィンドウ
８１０  バリューウィンドウ
８２０  エディタウィンドウ
８３０  アウトラインウィンドウ
８４０  ブラウザウィンドウ
８５０  タスクウィンドウ
９００  ＨＴＭＬ−ＤＯＭ−ＴＲＥＥ
９２０  制御フローグラフ
９３０  データフローグラフ
【図１】
2004341671.tif 000003
【図２】
2004341671.tif 000004
【図３】
2004341671.tif 000005
【図４】
2004341671.tif 000006
【図５】
2004341671.tif 000007
【図６】
2004341671.tif 000008
【図７】
2004341671.tif 000009
【図８】
2004341671.tif 000010
【図９】
2004341671.tif 000011
【図１０】
2004341671.tif 000012