JP2004341671A - 情報処理システム、制御方法、制御プログラム、及び記録媒体 - Google Patents

情報処理システム、制御方法、制御プログラム、及び記録媒体 Download PDF

Info

Publication number
JP2004341671A
JP2004341671A JP2003135413A JP2003135413A JP2004341671A JP 2004341671 A JP2004341671 A JP 2004341671A JP 2003135413 A JP2003135413 A JP 2003135413A JP 2003135413 A JP2003135413 A JP 2003135413A JP 2004341671 A JP2004341671 A JP 2004341671A
Authority
JP
Japan
Prior art keywords
information
generation
document
command
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003135413A
Other languages
English (en)
Inventor
Kentaro Fukuda
福田 健太郎
Takuya Nakaike
仲池 卓也
▲高▼木 啓伸
Hironobu Takagi
Takashi Ito
伊藤 隆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2003135413A priority Critical patent/JP2004341671A/ja
Priority to US10/845,732 priority patent/US7519956B2/en
Publication of JP2004341671A publication Critical patent/JP2004341671A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]

Abstract

【課題】プログラムの誤っている部分を適切に検出する。
【解決手段】複数の文書構成要素から構成される文書情報を生成する生成プログラムを解析する情報処理システムであって、生成プログラムは、文書情報に含まれる複数の文書構成要素のそれぞれを生成する複数の生成コマンドのそれぞれを有しており、生成プログラムを実行し、複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する対応情報生成部と、利用者からの指示に応じて複数の文書構成要素の何れかを選択する選択部と、選択部により選択された当該文書構成要素を生成した生成コマンドを、対応情報に基づいて選択し、当該生成コマンドを識別する情報を出力するコマンド情報出力部とを備える情報処理システムを提供する。
【選択図】 図1

Description

【0001】
【発明の属する技術分野】
本発明は、情報処理システム、制御方法、制御プログラム、及び記録媒体に関する。特に本発明は、文書情報を生成する生成プログラムを解析する情報処理システム、制御方法、制御プログラム、及び記録媒体に関する。
【0002】
【従来の技術】
従来、プログラムの誤り(バグ)を効率的に発見するためのソフトウェアであるデバッガが用いられている(非特許文献1参照。)。デバッガの例としては、インターナショナル・ビジネス・マシーンズ・コーポレーションのVisualAge for Java(登録商標)、インターナショナル・ビジネス・マシーンズ・コーポレーションのWebSphere Studio Application Developer(登録商標)、ボーランド・ソフトウェア・コーポレーションのJBuilder(登録商標)、及び富士通株式会社のInterstage APWORKS(登録商標)等がある。これらのデバッガは、プログラム中の複数のコマンドを1ずつ実行し、当該コマンドの実行結果を出力する。これにより、プログラマ等は、プログラムを実行する途中経過を知り、プログラムの修正に役立てることができた。
【0003】
【非特許文献1】
F.Rica及びP.Tonella著、「Web Application Slicing」、IEEE International Conference on Software Maintenance(ICSM’01)会議録、148ページから157ページ、2001年11月
【非特許文献2】
Bobby、ホームページURL:http://bobby.watchfire.com/、平成15年5月12日検索
【0004】
【発明が解決しようとする課題】
しかしながら、従来のデバッガは、プログラムの動作の詳細を調べる用途には適しているものの、プログラムの誤っている部分を検出する用途には適していない。例えば、従来のデバッガにおいて、プログラムの誤っている部分を検出するには、プログラマは、プログラムの開始部分から順に、プログラムが誤動作するまで、コマンドを1つずつ実行しなければならならず、煩雑である。
また、他の方法として、対象のプログラムが文字を出力するプログラムである場合には、プログラマは、誤っていると推測される部分の付近に、出力処理(例えば、print文)を一時的に挿入していた。これにより、プログラマは、当該出力処理の出力結果と、プログラム本来の出力結果とを比較して、誤っている部分を徐々に絞り込んでいた。この方法によれば、プログラマは、実行の毎にプログラムを書き換えなければならず、更に煩雑である。
そこで本発明は、上記の課題を解決することのできる情報処理システム、制御方法、制御プログラム、及び記録媒体を提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【0005】
【課題を解決するための手段】
即ち、本発明の一形態によると、複数の文書構成要素から構成される文書情報を生成する生成プログラムを解析する情報処理システムであって、生成プログラムは、文書情報に含まれる複数の文書構成要素のそれぞれを生成する複数の生成コマンドのそれぞれを有しており、生成プログラムを実行し、複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する対応情報生成部と、利用者からの指示に応じて複数の文書構成要素の何れかを選択する選択部と、選択部により選択された当該文書構成要素を生成した生成コマンドを、対応情報に基づいて選択し、当該生成コマンドを識別する情報を出力するコマンド情報出力部とを備える情報処理システム、当該情報処理システムを制御する制御方法、制御プログラム、及び制御プログラムを記録した記録媒体を提供する。
なお上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションも又発明となりうる。
【0006】
【発明の実施の形態】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、又実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、情報処理システム10の機能ブロック図を示す。情報処理システム10は、例えば、ワールド・ワイド・ウェブ(WWW)システムであり、HTML文書等の文書情報を生成する生成プログラムを解析することを目的とする。情報処理システム10は、HTML文書を生成するウェブサーバ等の装置であるサーバ装置20と、サーバ装置20により生成されたHTML文書を閲覧する装置であるクライアント装置30とを備える。なお、本実施形態において、サーバ装置20は、クライアント装置30とは別体に設けられた装置であり、LAN、WAN、又はインターネット等の電気通信回線を通じてクライアント装置30と通信する。これに代えて、サーバ装置20及びクライアント装置30は、同一の装置内に設けられてもよい。即ち、情報処理システム10は、一体の装置として利用者に提供されてもよい。
【0007】
サーバ装置20は、プログラムデータベース200と、プログラム変換部210と、制御フローグラフ生成部220と、データフローグラフ生成部230と、バッファ部235と、バッファ停止部240と、関数識別情報収集部250と、対応情報生成部260とを備える。プログラムデータベース200は、複数の文書構成要素から構成される文書情報、例えば、HTML文書、を生成する生成プログラムを格納している。HTML文書は、文書情報の閲覧者に表示する表示情報と、当該表示情報の表示形式を指定するタグ情報とを含むタグ付き文書の一例である。これに代えて、文書情報は、XML文書等の他のタグ付き文書であってもよい。
【0008】
また、生成プログラムは、文書情報に含まれる複数の文書構成要素のそれぞれを生成する複数の生成コマンドのそれぞれを有している。例えば、生成プログラムとは、Java(登録商標)言語により記載されたサーブレットプログラムであり、複数の生成コマンドのそれぞれは、当該生成コマンドにより生成された文書構成要素を出力する出力関数(例えば、メソッド)を呼び出すことにより、文書情報を出力する。一例として、生成プログラムがJava(登録商標)言語で記述されている場合の出力関数とは、例えば、Writerクラス、OutputStreamクラス、又はこれらのクラスを拡張・利用したクラス等における出力に関するメソッドである。
【0009】
更に、プログラムデータベース200は、生成プログラムに変換されるプログラムであって、生成プログラムが生成すべき文書構成要素の内容を指示する指示プログラム更に格納している。例えば、プログラムデータベース200は、指示プログラムとして、JSP(Java(登録商標) Server Pages)規格に準拠したJSPプログラムを格納している。
【0010】
プログラム変換部210は、サーバ装置20が生成プログラムを解析するテストモードと、サーバ装置20が生成プログラムを解析せず単に実行する通常モードとの、何れの動作モードとして動作するかを示す動作モード設定指示を、動作モード切替部310から受け取る。そして、プログラム変換部210は、ウェブページ等を表示する旨の表示要求、例えば、HTTPリクエストを、クライアント装置30から受け取ると、当該表示要求の内容に応じて生成プログラム又は指示プログラムをプログラムデータベース200から取得する。続いて、プログラム変換部210は、指示プログラムを、例えばコンパイルすることにより、生成プログラムに変換する。そして、プログラム変換部210は、動作モード設定指示と伴に、変換後の生成プログラム及びプログラムデータベース200から取得した生成プログラムを、バッファ停止部240に送る。また、動作モード設定指示がテストモードを指示している場合に、プログラム変換部210は、生成プログラムを制御フローグラフ生成部220に送る。
【0011】
制御フローグラフ生成部220は、プログラム変換部210から受け取った生成プログラムにおいて、複数の生成コマンドが順次実行される実行の流れを示す制御フローグラフを生成し、生成プログラムと伴にデータフローグラフ生成部230に送る。データフローグラフ生成部230は、制御フローグラフ生成部220から受け取った生成プログラムにおいて、一のコマンドにより生成されたデータが多の何れのコマンドにより使用されるかを示したデータフローグラフを生成し、制御フローグラフと伴に対応情報生成部260に送る。
【0012】
バッファ部235は、生成プログラムが生成した少なくとも一の文書構成要素を格納する記憶領域を有しており、予め定められたタイミングにより、当該記憶領域に格納していた少なくとも一の文書構成要素を、文書情報の一部として出力する。また、バッファ部235は、バッファ停止部240からの指示に応じて、文書構成要素の格納を停止する。
【0013】
バッファ停止部240は、動作モード切替部310から受け取った動作モード設定指示がテストモードである場合に、バッファ部235による文書構成要素の格納の処理を停止する。これにより、バッファ停止部240は、生成プログラムにより文書構成要素が生成される毎に、生成された当該文書構成要素を文書情報の一部として出力させる。具体的には、バッファ停止部240は、プログラム変換部210から受け取った生成プログラムに対して、当該生成プログラムが使用する出力用バッファのサイズを0とする設定を行うことにより、バッファ部235による文書構成要素の格納の処理を停止する。そして、バッファ停止部240は、生成プログラムを関数識別情報収集部250に送る。
【0014】
関数識別情報収集部250は、生成プログラムにおける出力関数が文書構成要素を出力する毎に、当該文書構成要素のそれぞれを、当該文書構成要素を出力した出力関数及び当該出力関数を呼び出した生成コマンドに対応付けた情報である関数識別情報を収集する。
【0015】
具体的には、まず、関数識別情報収集部250は、生成プログラムに対して、生成プログラムが実行される毎に実行されるフィルタ関数を挿入する。そして、関数識別情報収集部250は、文書構成要素を出力する出力関数に代えて、文書構成要素を出力すると伴に出力内容を監視する監視関数を実行させる処理を、このフィルタ関数内で実行させる。例えば、関数識別情報収集部250は、監視関数として、当該監視関数が呼び出されるまでに呼び出されてきた関数の階層構造を出力する処理を挿入する。これにより、関数識別情報収集部250は、監視関数が実行される毎に出力される関数の階層構造に基づいて、当該監視関数が出力する文書構成要素と、当該監視関数を呼び出した生成プログラムとを対応付けて特定する。そして、関数識別情報収集部250は、上記フィルタ関数等を挿入した生成プログラムを対応情報生成部260に送る。
【0016】
一例として、生成プログラムがJava(登録商標)言語で記述されている場合には、関数識別情報収集部250は、監視関数内で例外処理(Exception)を発生させることにより、関数呼び出しに用いられるスタックの状態を示すスタックトレースを、関数の階層構造を示す情報として出力させる。
【0017】
対応情報生成部260は、関数識別情報収集部250から受け取った生成プログラムを実行し、文書情報を生成する。そして、対応情報生成部260は、複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する。そして、対応情報生成部260は、データフローグラフ生成部230から受け取った制御フローグラフ、データフローグラフ生成部230から受け取ったデータフローグラフ、生成プログラム、文書情報、及び対応情報を表示部320及びコマンド情報出力部350に送る。
【0018】
クライアント装置30は、入力受付部300と、動作モード切替部310と、表示部320と、文書構造情報出力部322と、表示画面325と、表示結果解析検出部330と、選択部340と、コマンド情報出力部350と、文書構成要素出力部360とを備える。入力受付部300は、ウェブページの閲覧者等からウェブページを表示する旨の表示指示を受け付け、動作モード切替部310に送る。動作モード切替部310は、表示指示の内容に応じて、コマンド情報出力部350が生成コマンドを識別する情報を出力するテストモードと、コマンド情報出力部350が生成コマンドを識別する情報の出力を停止した通常モードとを切り替える。具体的には、コマンド情報出力部350は、サーバ装置20がテストモード及び通常モードの何れの動作モードとして動作するかを示す動作モード設定指示を、ウェブページを表示する旨を示す表示要求と伴に、サーバ装置20に送る。
【0019】
表示部320は、サーバ装置20から受け取った文書情報を表示画面325上に表示すると伴に、文書構造情報出力部322及び表示結果解析検出部330に送る。また、表示部320は、サーバ装置20から受け取った生成プログラムを表示画面325上に表示する。更に、表示部320は、コマンド情報出力部350及び文書構成要素出力部360から受け取った情報を、表示画面325上に表示する。文書構造情報出力部322は、受け取った文書情報、例えば、HTML文書の構造を示す文書構造情報を生成し、表示画面325上に表示する。これに代えて、表示部320は、コマンド情報出力部350及び文書構成要素出力部360から出力された情報を、音声として出力してもよい。即ち、コマンド情報出力部350及び文書構成要素出力部360のそれぞれが表示部320を介して出力する情報は、画像に限定されるものでなく、音声読み上げ技術を利用した音声情報であってもよい。
【0020】
表示結果解析検出部330は、文書情報を表示部320から受け取ると、利用者が文書情報により表示される表示オブジェクトを容易に認識できるか否かを解析する。具体的には、閲覧者が表示画面325上に表示された表示オブジェクトを容易に認識できるか否かを示す認識容易条件が予め定められており、表示結果解析検出部330は、この認識容易条件を満たさない認識困難オブジェクトを検出し、検出結果を選択部340に送る。
【0021】
選択部340は、入力受付部300を介した閲覧者からの指示又は表示結果解析検出部330から受け取った検出結果に基づいて、文書情報における複数の文書構成要素の何れかを選択し、選択した文書構成要素をコマンド情報出力部350に送る。例えば、文書情報がHTML文書である場合には、選択部340は、HTML文書のうち何れかの表示情報又は当該表示情報の表示形式を指示するタグ情報を選択する。また、選択部340は、入力受付部300を介した利用者からの指示に応じて、生成プログラムにおける複数の生成コマンドの何れかを選択し、選択した当該生成コマンドを文書構成要素出力部360に送る。
【0022】
コマンド情報出力部350は、選択部340により選択された文書構成要素、例えば、HTML文書の表示情報又はタグ情報、を生成した生成コマンドを、対応情報生成部260から受け取った対応情報に基づいて選択する。そして、コマンド情報出力部350は、当該生成コマンドを識別する情報を表示部320を介して表示画面325に出力する。更に、選択部340により選択された文書構成要素がJSPプログラムにより指示されたものである場合には、コマンド情報出力部350は、当該文書構成要素の内容を指示した指示コマンドを、対応情報に基づいて選択し、当該指示コマンドを識別する情報を更に出力してもよい。また、文書構成要素出力部360は、選択部340により選択された生成コマンドにより生成される文書構成要素を、対応情報生成部260から受け取った対応情報に基づいて選択して表示画面325に出力する。
【0023】
以上に示したように、サーバ装置20は、文書情報を生成する生成プログラムを実行し、複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する。そして、クライアント装置30は、利用者からの指示に応じて文書構成要素を選択し、当該文書構成要素に対応する生成コマンドを出力する。これにより、生成プログラムの作成者は、所望の文書構成要素に対応する生成コマンドを適切に特定することができる。
【0024】
図2は、情報処理システム10のフローチャートを示す。動作モード切替部310は、利用者から受け取った指示に基づいて、サーバ装置20をテストモードで動作させるか否かを判断する(S200)。サーバ装置20をテストモードで動作させない場合に(S200:NO)、プログラム変換部210は、クライアント装置30から受け取ったHTTPリクエストに応じて、JSPプログラム等の指示プログラムをプログラムデータベース200から取得し、当該指示プログラムを生成プログラムに変換する(S205)。そして、情報処理システム10は、生成プログラムにより生成されるHTML文書に基づいて、ウェブブラウザ等の表示画面325中に表示オブジェクトを表示する通常処理を行い、処理を終了する(S210)。
【0025】
一方、サーバ装置20をテストモードで動作させる場合に(S200:YES)、プログラム変換部210は、クライアント装置30から受け取ったHTTPリクエストに応じて、JSPプログラム等の指示プログラムをプログラムデータベース200から取得し、当該指示プログラムを生成プログラムに変換する(S220)。
【0026】
制御フローグラフ生成部220は、変換後の生成プログラムにおいて、複数の生成コマンドが順次実行される実行の流れを示す制御フローグラフを生成する(S225)。また、データフローグラフ生成部230は、変換後の生成プログラムにおいて、一のコマンドにより生成されたデータが多の何れのコマンドにより使用されるかを示したデータフローグラフを生成する。
【0027】
続いて、バッファ停止部240は、動作モード切替部310により動作モードがテストモードに設定されているので、バッファ部235による文書構成要素の格納の処理を停止する(S230)。これにより、バッファ停止部240は、生成プログラムにより文書構成要素が生成される毎に、生成された当該文書構成要素を文書情報の一部として出力させる。そして、関数識別情報収集部250は、文書構成要素と、出力関数及び生成コマンドとを対応付けた関数識別情報を収集するべく、出力関数にフィルタ関数を挿入する(S240)。
【0028】
対応情報生成部260は、関数識別情報収集部250から受け取った生成プログラムを実行し、文書情報を生成する。そして、対応情報生成部260は、複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する(S250)。なお、本例において、対応情報生成部260は、生成プログラムにより生成される文書構成要素の全てについて、対応情報を生成する。これに代えて、対応情報生成部260は、予め定められた条件を満たす文書構成要素について、対応情報を生成してもよい。例えば、予め定められた条件とは、当該文書構成要素が文書情報における予め定められた行数に出力されることであってもよいし、当該文書構成要素が予め定められた文字列と一致することであってもよい。この場合、対応情報生成部260は、生成プログラムの実行に要する時間を減らすことができる。
【0029】
続いて、表示部320は、文書情報を表示画面325上に表示する(S260)。そして、表示結果解析検出部330は、認識容易条件を満たさない認識困難オブジェクトを検出する(S270)。そして、入力受付部300が、利用者から表示画面325上の生成コマンドを指示された場合に(S280:YES)、文書構成要素出力部360は、当該生成コマンドにより生成された文書構成要素を、対応情報に基づいて特定し、表示画面325に出力する(S295)。また、入力受付部300が、利用者から表示画面325上の文書構成要素を指示された場合に(S280:NO)、文書構成要素出力部360は、当該文書構成要素を生成した生成コマンドを、対応情報に基づいて特定し、表示画面325に出力する(S290)。
情報処理システム10は、上記に示した一連の処理を、クライアント装置30がサーバ装置20に対してウェブページの表示要求を送る毎に繰り返す。
【0030】
図3は、情報処理システム10の動作の概念図を示す。本図においては、文書構成要素の生成及び文書構成要素の選択の動作をより詳細に説明する。プログラム変換部210は、JSPプログラムをコンパイルすることによりサーブレットプログラムに変換する(S300)。そして、プログラム変換部210は、JSPプログラムにおける複数の指示コマンドのそれぞれと、当該指示コマンドを変換した変換先の生成コマンドとを対応付けたJSP−サーブレット対応情報365を生成する(S310)。
【0031】
制御フローグラフ生成部220は、変換後の生成プログラムにおける制御フローグラフを生成する(S320)。また、データフローグラフ生成部230は、変換後の生成プログラムにおけるデータフローグラフを生成する。
【0032】
生成プログラムの準備処理(S325)として、バッファ停止部240は、生成プログラムの出力をバッファ部235に格納する処理を停止するべく、生成プログラムが使用する出力用バッファのサイズを0に設定する。また、関数識別情報収集部250は、文書構成要素と、当該文書構成要素を生成した生成コマンドとを対応付けた関数識別情報を収集するべく、生成プログラムにフィルタ関数を挿入する。
【0033】
対応情報生成部260は、関数識別情報収集部250から受け取った生成プログラムを、必要に応じてライブラリ群と伴に実行し、文書情報、例えば、HTML文書を生成する(S330)。そして、対応情報生成部260は、複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する。
【0034】
一例として、生成プログラムがJava(登録商標)言語で記述されている場合には、関数識別情報収集部250は、監視関数内に例外処理(Exception)を発生させる処理を予め挿入することにより、文書構成要素が出力された時点における関数の階層構造を示すスタックトレース情報370を収集する(S340)。そして、関数識別情報収集部250は、スタックトレース情報370に含まれる生成コマンドと、当該スタックトレース情報370が生成された時点で出力された文書構成要素とを対応付けることにより、関数識別情報を収集する。
【0035】
これにより、対応情報生成部260は、関数識別情報に基づいて、生成コマンド及び文書構成要素の対応を示す対応情報、例えば、サーブレット−HTML対応情報380を生成できる(S350)。更に、好ましくは、対応情報生成部260は、JSP−サーブレット対応情報365及びサーブレット−HTML対応情報380を組み合わせることにより、JSPプログラムにおける複数の指示コマンドのそれぞれと、当該指示コマンドにより指示されサーブレットプログラムにより生成された文書構成要素とを対応付けた情報を、更に生成する。
【0036】
選択部340は、利用者からの指示に応じて複数の文書構成要素の何れかを選択する。例えば、文書構造情報出力部322が、HTML文書の構造を示す文書構造情報を生成し(S355)、選択部340は、当該文書構造情報内の情報の何れかを利用者に指示させることにより、文書構成要素を選択する。
【0037】
より具体的には、HTML文書中のタグ情報は、当該タグ情報により表示形式を指定した表示情報内に、更に内側タグ情報を含む外側タグ情報であってもよい。この場合、文書構造情報出力部322は、木構造のグラフであって、外側タグ情報を根ノードとして表し、内側タグ情報を根ノードの葉ノードとして表したグラフである、文書構造情報(例えば、HTML−DOM−TREE)を生成する。更に、文書構造情報出力部322は、内側タグ情報により表示形式を指示した表示情報内に、更に内側タグ情報が含まれる場合には、当該内側タグ情報を、葉ノードの葉ノードとして更に表す。一例としては、文書構造情報出力部322は、HTML文書を構文解析することにより、HTML文書の構文の構造を示す構造情報を生成してもよい。このように生成された文書構造情報における何れかのノードを利用者に指示させることにより、選択部340は、指示された当該ノードに対応するタグ情報を選択する。
【0038】
図4は、プログラム変換部210による変換処理の対象となる指示コマンドの詳細を説明する図である。本図は、指示プログラムの一例であるJSPプログラムにおける、指示コマンドの種類と、当該指示コマンドの意味との対応付けの一例を示している。プログラム変換部210は、HTMLタグのような単なるテキストデータとして記述された文を、指示コマンド「Text」の種類に分類する。また、プログラム変換部210は、タグ情報「<%=」から始まり、タグ情報「%>」で終わる文を、指示コマンド「Expression」の種類に分類する。
【0039】
また、プログラム変換部210は、タグ情報「<%」から始まり、タグ情報「%>」で終わる文を、指示コマンド「Scriptlet」の種類に分類する。また、プログラム変換部210は、タグリブ(タグ・ライブラリ)及びエンコード等を指定する宣言文を、指示コマンド「JSP Directive」の種類に分類する。また、プログラム変換部210は、Java(登録商標) Beans等を操作するタグ情報を、指示コマンド「JSP Tag」の種類に分類する。また、プログラム変換部210は、タグリブを記述した文を、指示コマンド「Tag Library」の種類に分類する。
【0040】
このように、プログラム変換部210は、指示コマンドを所定の規則により分類する。そして、プログラム変換部210は、分類した指示コマンド単位で、各指示コマンドが何れの生成コマンドに変換されたかを示すJSP−サーブレット対応情報365を生成する。
【0041】
図5(a)は、関数識別情報収集部250がフィルタ関数を挿入する設定ファイルの第1の例を示す。生成プログラムがサーブレットプログラムである場合、関数識別情報収集部250は、サーブレットプログラムを実行する実行環境を設定するweb.xmlファイルに、本図の記載を追加することにより、フィルタ関数を挿入する。より詳細には、関数識別情報収集部250は、<filter−name>タグから</filter−name>タグの間に、フィルタ関数の名称であって、web.xmlファイル内で参照される名称を挿入する処理を行う。
【0042】
また、関数識別情報収集部250は、<filter−class>タグから</filter−class>タグの間に、フィルタ関数のクラス名を挿入する処理を行う。即ち、この記載は、情報処理システム10が、生成プログラムの出力関数を実行する毎に、ObserverFilterクラス内の所定のメソッドを呼び出す旨を示している。
【0043】
また、関数識別情報収集部250は、<servlet−name>タグから</servlet−name>タグの間に、フィルタ関数を挿入する対象となる関数名を挿入する処理を行う。例えば、本図の例における「/*」は、当該web.xmlで指定されるwebアプリケーション内の全てのJSPプログラム及びServletプログラム等に対して、フィルタ関数を挿入することを示している。これに代えて、関数識別情報収集部250は、<url−pattern>タグから</url−pattern>タグの間に、フィルタ関数を挿入する対象となる関数の格納位置(例えば、URL:Uniform Resource Locator)を挿入してもよい。
【0044】
このように、関数識別情報収集部250は、生成プログラムが実行される毎に実行されるフィルタ関数を、フィルタ関数を挿入する対象となる生成プログラム中の関数に対応付けて挿入する。
【0045】
図5(b)は、関数識別情報収集部250がフィルタ関数を挿入する設定ファイルの第2の例を示す。具体的には、本図は、関数識別情報収集部250が、それぞれが独立して動作する複数の表示用プログラムを一のブラウザ画面上に表示する統合プログラムに、フィルタ関数を挿入する設定ファイルを示す。なお、一例としては、これらの統合プログラム及び表示用プログラムは、Java(登録商標) Portal APIに準拠していてもよく、具体的には、インターナショナル・ビジネス・マシーンズコーポレーションにおけるWebSpherePortal Serverとして実装されている。この場合、統合プログラムとは、例えば、Portalプログラムであり、表示用プログラムとは、例えば、Portletプログラムである。
【0046】
関数識別情報収集部250は、統合プログラムの実行環境を指定する設定ファイルであるPortalFilterService.propertiesに、本図に示した記載を追加する処理を行う。例えば、関数識別情報収集部250は、フィルタ関数の名称が「html」である旨を示す設定として、1行目の「filtername4=html」を挿入する。また、関数識別情報収集部250は、フィルタ関数のクラス名を示す設定として、2行目の「html.classname=PortalObserverFilter」を挿入する。
【0047】
図5(c)は、関数識別情報収集部250がフィルタ関数を挿入する設定ファイルの第3の例を示す。具体的には、本図は、関数識別情報収集部250が、上記統合プログラムにより統合されて表示される表示用プログラムに、フィルタ関数を挿入する設定ファイルを示す。
【0048】
関数識別情報収集部250は、表示用プログラムを実行する実行環境を指定する設定ファイルであるPortletFilterService.propertiesに、本図に示した記載を追加する処理を行う。例えば、関数識別情報収集部250は、フィルタ関数の名称が「ObserverFilter」である旨を示す設定として、1行目の「filtername2=ObserverFilter」を挿入する。また、関数識別情報収集部250は、フィルタ関数のクラス名を示す設定として、2行目の「ObserverFilter.classname=PortletObserverFilter」を挿入する。更に、この場合、関数識別情報収集部250は、フィルタ関数の挿入対象となる表示用プログラムにおいて、FilterChainというパラメータを設け、当該パラメータの値にObserverFilterを設定する。
【0049】
このように、関数識別情報収集部250は、生成プログラムの具体的な形態に応じて異なる適切な方法により、フィルタ関数を挿入する。そして、関数識別情報収集部250は、挿入したフィルタ関数内に、生成プログラムの出力関数に代えて、生成される文書構成要素を監視する監視関数を実行させる処理を記載する。この監視関数は、文書構成要素と生成コマンドとを対応付ける処理を行うので、情報処理システム10は、生成コマンドが実行される毎に、当該生成コマンドにより生成された文書構成要素を識別することができる。
【0050】
また、本図の例に代えて、関数識別情報収集部250は、利用者からの表示要求を受けて実行の開始点となる生成プログラム又は指示プログラムを特定し、利用者からの表示要求を受けてから特定した当該プログラムが実行される前にフィルタ関数が実行されるようにweb.xml等に設定してもよい。具体的には、関数識別情報収集部250は、生成プログラム、指示プログラム、及びweb.xmlファイルが配置されるディレクトリの構成を解析することにより、利用者からの表示要求を受けて実行の開始点となる生成プログラム又は指示プログラムを特定する。この場合、情報処理システム10は、各プログラムの実行を開始する前に所定のプログラムを実行するフィルタ処理機能を有していない場合であっても、出力関数に代えて監視関数を実行させることができる。
【0051】
更に他の例として、関数識別情報収集部250は、生成プログラムにおける出力関数に、監視関数の機能を追加してもよい。例えば、生成プログラムがJava(登録商標)言語のプログラムである場合、関数識別情報収集部250は、監視関数の機能を追加するべく、ServletResponseクラス又はJspWriterクラスの実装を行ってもよい。この場合、情報処理システム10は、フィルタ処理機能を有しない場合であっても、利用者からの表示要求を受けた実行の開始点の解析を行うことなく、対応情報を生成することができる。
【0052】
図6(a)は、スタックトレース情報370の第1の例を示す。具体的には、関数識別情報収集部250は、生成プログラムであるサーブレットプログラムが、指示プログラムであるJSPプログラムから変換されたものである場合の、スタックトレース情報370の例を示す。関数識別情報収集部250は、スタックトレース情報370として、Java(登録商標)言語において例外処理が発生した旨の情報を、1行目に出力する。また、関数識別情報収集部250は、当該例外処理が発生した監視関数の名称がObservedPrintWriter.writeであり、かつ当該監視関数がObservedPrintWriter.javaのファイルの94行目に記載されている旨の情報を、2行目に出力する。
【0053】
更に、関数識別情報収集部250は、スタックトレース情報370として、監視関数を呼び出している関数名がorg.apache.jasper.runtime.JspWriterlmpl.writeである旨を示す情報を3行目に出力する。また、関数識別情報収集部250は、当該関数が記述されたファイルの名称と、当該ファイルにおいて当該関数が記述されている行数の情報とを出力する。
【0054】
以降同様に、関数識別情報収集部250は、監視関数を呼び出すまでに呼び出してきた関数の構造をスタックトレース情報370として順次表示する。そして、関数識別情報収集部250は、監視関数を呼び出した関数から、生成プログラムを起動する予め定められた関数である、org.apache.jasper.runtime.HttpJspBase.serviceに至るまでを、出力関数を呼び出してきた関数の階層構造として特定する。例えば、本図で示したスタックトレース情報370によると、関数識別情報収集部250は、出力関数を呼び出す生成コマンドが、生成プログラムの一例であるdate$jsp.javaの124行目に記述されていることを特定できる。
【0055】
図6(b)は、スタックトレース情報370の第2の例を示す。具体的には、生成プログラムであるサーブレットプログラムが、指示プログラムであるJSPプログラムから変換されたものでない場合の、スタックトレース情報370の例を示す。関数識別情報収集部250は、スタックトレース情報370として、Java(登録商標)言語において例外処理が発生した旨を示す情報を、1行目に出力する。また、関数識別情報収集部250は、当該例外処理が発生した監視関数の名称がObservedPrintWriter.writeであり、かつ当該監視関数がObservedPrintWriter.javaのファイルの83行目に記載されている旨の情報を、2行目に出力する。
【0056】
更に、関数識別情報収集部250は、スタックトレース情報370として、監視関数を呼び出している関数名がjava.io.PrintWriter.printである旨を示す情報を出力する。以降同様に、関数識別情報収集部250は、監視関数を呼び出すまでに呼び出してきた関数の階層構造をスタックトレース情報370として順次表示する。そして、関数識別情報収集部250は、監視関数を呼び出した関数から、生成プログラムを起動する予め定められた関数である、javax.servlet.http.HttpServlet.serviceまでを、出力関数を呼び出してきた関数の階層構造として特定する。例えば、本図で示したスタックトレース情報370によると、関数識別情報収集部250は、出力関数を呼び出す生成コマンドが、生成プログラムの一例であるSnoopServlet.javaの125行目において呼び出されていることを特定できる。
【0057】
図7(a)は、文書情報の一例であるHTML文書の例を示す。本図のHTML文書は、タグ付き文書の一例であり、文書情報の閲覧者に表示する表示情報700と、表示情報700の表示形式を指定するタグ情報710と、文書構成要素730とを含む。例えば、表示情報700は、ウェブブラウザ等の表示画面325上に直接表示される情報であり、タグ情報710は、表示情報700を箇条書きとして表示するように、ウェブブラウザ等に指示する情報である。
【0058】
このように、本図において、タグ情報とは、HTML文書におけるHTMLタグである、記号「<」から始まり記号「>」に至るまでの文字列である。これに代えて、タグ情報とは、HTMLタグの一部であってもよいし、表示情報の表示形式の詳細を制御するHTMLオプションであってもよい。例えば、「photo.gif」というファイル名の画像を表示する以下のようなHTML文書を例に説明する。
<IMG src=”photo.gif” alt=””>
この例において、タグ情報とは、画像を表示する旨を示すHTMLタグである「<IMG」及び「>」であってもよいし、このHTMLタグの一部である「<」であってもよい。また、タグ情報とは、画像のファイルが存在しない場合に画像に代えて表示するべき情報を示すHTMLオプションである「alt=””」であってもよいし、属性の値である「””」であってもよい。即ち、タグ情報とは、タグ名やタグの属性、属性の値など、HTMLのタグ記述の一部を指すものであってもよい。
【0059】
図7(b)は、図7(a)の文書構成要素730が生成された時点でのスタックトレース情報370の一例を示す。例えば、関数識別情報収集部250は、スタックトレース情報370に基づいて、文書構成要素730を生成する生成コマンドが、date$jsp.javaファイルの124行目のコマンドであることを特定する。
【0060】
図7(c)は、図7(a)の文書構成要素730を生成する生成プログラムの一例を示す。date$jsp.javaファイルの124行目では、生成コマンド740が呼び出されている。なお、プログラム変換部210は、生成コマンド740の変換元の指示コマンドを識別する情報を、123行目に、生成コマンドとは無関係なコメント文として生成する。例えば、本図は、プログラム変換部210がJasper(登録商標)等のJSPコンパイラである場合の生成例を示しており、生成コマンド740に変換される指示コマンドが、/jsp/dates/data.jspというJSPプログラムの、20行目62列目から21行目14列目に至る領域に記載されている旨を示している。
【0061】
図7(d)は、図7(c)の生成コマンドに変換される指示プログラムの一例を示す。指示プログラムの一例であるJSPプログラムは、HTML文書として表示すべき内容自体を示す指示コマンドである「<li> Day:is」と、HTML文書として生成するべき内容を指示する指示コマンド「<jsp:getProperty name=”lock” property=”day”>」とを有している。このように、HTML文書として表示すべき内容の少なくとも一部は、JSPプログラムに含まれていてもよい。
【0062】
また、JSPプログラムのおける指示コマンドは、変換先の生成プログラムにおける生成コマンドに比べて、サイズが小さい。例えば、図7(d)において下線を付した「<li> Date:is」は、図7(c)において下線を付した生成コマンド740に比べて、サイズが小さい。
【0063】
また、本図は、/jsp/dates/data.jspというJSPプログラムの、20行目及び21行目を示している。図7(c)に示したとおり、生成コマンド740に変換される指示コマンドは、本図のJSPプログラムにおける20行目62列目から21行目14列目に至る領域に、記述されている。
【0064】
本図で示すように、プログラム変換部210は、JSPプログラムの指示コマンドと、サーブレットプログラムの生成コマンドとを対応付けた情報を、サーブレットプログラム中にコメント文として挿入する。これにより、対応情報生成部260は、スタックトレース情報370及びサーブレットプログラム内のコメント文に基づいて、文書構成要素及び指示コマンドを対応付けた対応情報を出力することができる。
また、これに代えて、関数識別情報収集部250は、スタックトレース情報370において、文書構成要素と、文書構成要素の内容を指示した指示コマンドとを対応付けて収集してもよい。具体的には、サーブレットプログラムを実行する処理の実現方法及びプログラム変換部210の実現方法によっては、スタックトレース情報370において、図7(b)のdate$jsp.java:124に代えて、date.jsp:21のような指示コマンドの所在を示す情報を得られる場合がある。この場合、プログラム変換部210は、図7(c)に示すコメント文を生成しなくともよい。
【0065】
図8は、表示画面325の表示例を示す。表示画面325は、生成プログラムが何れの生成コマンドを実行しているかを示す実行状態を表示するトレースウィンドウ800と、生成プログラムが使用する変数の値を表示するバリューウィンドウ810と、生成プログラムに含まれる複数の生成コマンドを表示するエディタウィンドウ820と、生成プログラムの実行に伴って用いられるプログラムを格納するファイルのリストを表示するアウトラインウィンドウ830と、生成プログラムにより生成されたHTML文書により表示される表示オブジェクトを表示するブラウザウィンドウ840と、利用者が認識困難な表示オブジェクトを表示するタスクウィンドウ850とを有する。ブラウザウィンドウ840は、表示オブジェクトと伴に、更に、HTML−DOM−TREE又はHTML文書を表示してもよい。
【0066】
このように、表示部320は、生成プログラムと、HTML文書により表示される表示オブジェクトの双方を、表示画面325上に表示する。選択部340は、表示画面325のブラウザウィンドウ840上に表示した表示オブジェクトの何れかを利用者に指示させる。そして、選択部340は、指示された当該表示オブジェクトを表示させた表示情報及びタグ情報を選択する。これを受けて、コマンド情報出力部350は、選択部340により選択された表示情報及びタグ情報を生成した生成コマンドを、例えば、エディタウィンドウ820上にハイライトして表示することにより、生成コマンドを識別する情報として出力する。
【0067】
また、他の例としては、表示結果解析検出部330は、ブラウザウィンドウ840に表示される表示オブジェクトのうち、所定の認識容易条件を満たさない認識困難オブジェクトを検出し、検出した認識困難オブジェクトを識別する情報をタスクウィンドウ850に表示する。
【0068】
例えば、表示結果解析検出部330は、ブラウザウィンドウ840に表示オブジェクトを表示させるHTML文書について、当該HTML文書が、利用者に対して認識し易い表示オブジェクトを表示するものであるか否かを検出するアクセシビリティチェックを行ってもよい。一例としては、表示結果解析検出部330は、JSPプログラム及びサーブレットプログラムにより生成されたHTML文書について、アクセシビリティチェックを行うBobbyプログラムを用いて実現されてもよい(非特許文献2参照)。この場合、表示結果解析検出部330は、アクセシビリティチェックの結果、認識困難であると判断された表示オブジェクトについて、認識困難である理由と、当該表示オブジェクトに対応するHTML文書の行数とを対応付けてブラウザウィンドウ840に表示する。
【0069】
そして、選択部340は、タスクウィンドウ850上に表示した認識困難オブジェクトのうち、利用者から指示された表示オブジェクトについて、当該表示オブジェクトを表示画面325のブラウザウィンドウ840に表示させた表示情報及びタグ情報を選択する。これを受けて、コマンド情報出力部350は、選択部340により選択された表示情報及びタグ情報を生成した生成コマンドを識別する情報を、エディタウィンドウ820上に出力する。
【0070】
このように、表示画面325は、表示オブジェクト又は文書構成要素が選択される毎に、対応する生成コマンドを同一の画面上に表示する。従って、生成プログラムの作成者は、表示オブジェクトが誤っている部分をブラウザウィンドウ840上で指示することにより、生成プログラムのエラー箇所を発見することができる。
【0071】
図9は、表示画面325による表示の概念図である。表示画面325が、ブラウザウィンドウ840に、表示オブジェクト840cを表示する場合、選択部340は、利用者に、一又は複数の表示オブジェクトを指示させ、当該表示オブジェクトに対応する文書構成要素を選択する。また、表示画面325は、表示オブジェクト840cに代えて、HTML−DOM−TREE840aをブラウザウィンドウ840に表示してもよい。この場合、選択部340は、利用者に、HTML−DOM−TREE840aの各ノードを指示させることにより、当該ノードが示すタグ情報を選択する。
【0072】
更に、表示画面325は、ブラウザウィンドウ840に、HTML−DOM−TREE840aに代えて、HTML文書840bを切り替えて表示してもよい。好ましくは、表示画面325は、HTML文書840bを、出力する表示オブジェクト単位に断片化して表示する。この場合、選択部340は、利用者に、HTML文書840bにおける表示情報及びタグ情報を指示させることにより、複数の文書構成要素の何れかを選択する。
以上の処理において選択された文書構成要素について、コマンド情報出力部350は、当該文書構成要素を生成した生成コマンドを、対応情報に基づいて選択し、例えば、エディタウィンドウ820上に出力する。
【0073】
また、制御フローグラフ生成部220は、生成プログラムにおける制御フローグラフ920を予め生成している。そして、コマンド情報出力部350は、制御フローグラフ920における、対応情報に基づいて選択した生成コマンドの位置を示す情報である制御フロー位置情報820aを、エディタウィンドウ820上に更に出力する。この場合、好ましくは、コマンド情報出力部350は、生成プログラムのうち、選択した生成コマンドに該当する部分と、当該生成コマンドに対して制御が流入する部分とをハイライトして表示する。
【0074】
また、データフローグラフ生成部230は、生成プログラムにおけるデータフローグラフ930を予め生成している。そして、コマンド情報出力部350は、データフローグラフ930における、対応情報に基づいて選択した生成コマンドの位置を示す情報であるデータフロー位置情報820bを、エディタウィンドウ820上に更に出力する。この場合、好ましくは、コマンド情報出力部350は、生成プログラムのうち、選択した生成コマンドに該当する部分と、当該生成コマンドが使用するデータを生成するコマンドが記述された部分とをハイライトして表示する。
【0075】
このように、情報処理システム10は、生成コマンドのみならず、生成コマンドに影響を与える部分、即ち、生成コマンドにデータを与える他のコマンド及び生成コマンドより前に実行される条件分岐命令を出力する。これにより、情報処理システム10は、プログラマに対し、コマンド間の依存関係の理解を助けることができる。また、情報処理システム10は、生成プログラムのうち、生成コマンドに直接関連する部分を限定して出力する。これにより、プログラマは、生成プログラムのうち誤りのある領域を適切に絞り込むことができる。
【0076】
図10は、サーバ装置20のハードウェア構成の一例を示す。サーバ装置20は、ホストコントローラ1082により相互に接続されるCPU1000、RAM1020、グラフィックコントローラ1075、及び表示装置1080を有するCPU周辺部と、入出力コントローラ1084によりホストコントローラ1082に接続される通信インターフェイス1030、ハードディスクドライブ1040、及びCD−ROMドライブ1060を有する入出力部と、入出力コントローラ1084に接続されるROM1010、フレキシブルディスクドライブ1050、及び入出力チップ1070を有するレガシー入出力部とを備える。
【0077】
ホストコントローラ1082は、RAM1020と、高い転送レートでRAM1020をアクセスするCPU1000及びグラフィックコントローラ1075とを接続する。CPU1000は、ROM1010及びRAM1020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ1075は、CPU1000等がRAM1020内に設けたフレームバッファ上に生成する画像データを取得し、表示装置1080上に表示させる。これに代えて、グラフィックコントローラ1075は、CPU1000等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。
【0078】
入出力コントローラ1084は、ホストコントローラ1082と、比較的高速な入出力装置である通信インターフェイス1030、ハードディスクドライブ1040、及びCD−ROMドライブ1060を接続する。通信インターフェイス1030は、ネットワークを介して他の装置と通信する。ハードディスクドライブ1040は、サーバ装置20が使用する制御プログラム及びデータを格納する。CD−ROMドライブ1060は、CD−ROM1095から制御プログラム又はデータを読み取り、RAM1020を介して入出力チップ1070に提供する。
【0079】
また、入出力コントローラ1084には、ROM1010と、フレキシブルディスクドライブ1050や入出力チップ1070等の比較的低速な入出力装置とが接続される。ROM1010は、サーバ装置20の起動時にCPU1000が実行するブートプログラムや、サーバ装置20のハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ1050は、フレキシブルディスク1090から制御プログラム又はデータを読み取り、RAM1020を介して入出力チップ1070に提供する。入出力チップ1070は、フレキシブルディスク1090や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。
【0080】
サーバ装置20に提供される制御プログラムは、フレキシブルディスク1090、CD−ROM1095、又はICカード等の記録媒体に格納されて利用者によって提供される。制御プログラムは、記録媒体から読み出され、入出力チップ1070を介してサーバ装置20にインストールされ、サーバ装置20において実行される。
【0081】
サーバ装置20にインストールされて実行される制御プログラムは、プログラム変換モジュールと、制御フローグラフ生成モジュールと、データフローグラフ生成モジュールと、バッファモジュールと、バッファ停止モジュールと、関数識別情報収集モジュールと、対応情報生成モジュールとを含む。各モジュールがサーバ装置20に働きかけて行わせる動作は、図1から図9において説明したサーバ装置20における、対応する部材の動作と同一であるから、説明を省略する。
【0082】
また、サーバ装置20は、クライアント装置30を動作させる制御プログラムをクライアント装置30に送信し、クライアント装置30において実行してもよい。クライアント装置30に提供される制御プログラムは、フレキシブルディスク1090、CD−ROM1095、又はICカード等の記録媒体に格納されて利用者によって提供される。制御プログラムは、記録媒体から読み出され、入出力チップ1070を介してサーバ装置20に提供され、クライアント装置30において実行される。
【0083】
クライアント装置30にインストールされて実行される制御プログラムは、入力受付モジュールと、動作モード切替モジュールと、表示モジュールと、文書構造情報出力モジュールと、表示結果解析検出モジュールと、選択モジュールと、コマンド情報出力モジュールと、文書構成要素出力モジュールとを含む。各モジュールがクライアント装置30に働きかけて行わせる動作は、図1から図9において説明したクライアント装置30における、対応する部材の動作と同一であるから、説明を省略する。
【0084】
以上に示した制御プログラム又はモジュールは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク1090、CD−ROM1095の他に、DVDやPD等の光学記録媒体、MD等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、ネットワークを介して制御プログラムをサーバ装置20又はクライアント装置30に提供してもよい。
【0085】
上記実施形態から明らかなように、情報処理システム10は、HTML文書を生成するサーブレットプログラムを実行し、複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する。そして、情報処理システム10は、利用者からの指示に応じて文書構成要素を選択し、当該文書構成要素に対応する生成コマンドを出力する。これにより、サーブレットプログラムの作成者等は、所望の文書構成要素に対応する生成コマンドを適切に特定することができる。
【0086】
また、情報処理システム10は、サーブレットプログラムに変換されるJSPプログラムについても、JSPプログラム中の指示コマンドと、当該指示コマンドに対応する文書構成要素との対応付けを示す対応情報を生成する。これにより、JSPプログラムの作成者等は、所望の文書構成要素に対応する指示コマンドを適切に特定することができる。更に、情報処理システム10は、特定した生成コマンド及び指示コマンドについて、当該コマンドの、制御フローグラフ又はデータフローグラフ上の位置を示す情報を出力することにより、プログラマの作業を支援する。
【0087】
また、情報処理システム10は、HTML文書をブラウザ画面上に表示し、表示結果の表示オブジェクトを利用者に選択させることにより、文書構成要素を選択する。更に、情報処理システム10は、HTML文書の構造を示す文書構造情報(例えば、HTML−DOM−TREE)を生成し、文書構造情報を示すグラフのノードを選択させることにより、文書構成要素を選択する。これにより、プログラマは、プログラムの修正作業の内容に応じて適切な入力方法を選択することができ、利便である。
【0088】
以上、本発明を実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。上記実施形態に、多様な変更または改良を加えることができる。そのような変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0089】
上記実施形態によれば、以下の各項目に示す情報処理システム、制御方法、制御プログラム、及び記録媒体が実現される。
【0090】
(項目1) 複数の文書構成要素から構成される文書情報を生成する生成プログラムを解析する情報処理システムであって、前記生成プログラムは、前記文書情報に含まれる前記複数の文書構成要素のそれぞれを生成する複数の生成コマンドのそれぞれを有しており、前記生成プログラムを実行し、前記複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する対応情報生成部と、利用者からの指示に応じて前記複数の文書構成要素の何れかを選択する選択部と、前記選択部により選択された当該文書構成要素を生成した生成コマンドを、前記対応情報に基づいて選択し、当該生成コマンドを識別する情報を出力するコマンド情報出力部とを備える情報処理システム。
(項目2) 前記文書情報は、前記文書情報の閲覧者に表示する表示情報と、当該表示情報の表示形式を指定するタグ情報とを含むタグ付き文書であり、前記選択部は、前記文書構成要素として、前記文書情報に含まれる複数の前記表示情報のうち何れかの表示情報又は当該表示情報の表示形式を指示するタグ情報を選択し、前記コマンド情報出力部は、前記選択部により選択された前記表示情報を生成した生成コマンド又は前記選択部により選択された前記タグ情報を生成した生成コマンドを、前記対応情報に基づいて選択して出力する項目1記載の情報処理システム。
【0091】
(項目3) 前記タグ情報は、当該タグ情報により表示形式を指定した表示情報内に、更に内側タグ情報を含む外側タグ情報であり、当該情報処理システムは、木構造のグラフであって、前記外側タグ情報を根ノードとして表し、前記内側タグ情報を前記根ノードの葉ノードとして表したグラフである、文書構造情報を生成する文書構造情報生成部を更に備え、前記選択部は、前記文書構造情報における何れかのノードを前記利用者に指示させ、指示させた当該ノードに対応する前記タグ情報を選択する項目2記載の情報処理システム。
(項目4) 前記選択部は、前記文書情報に基づき表示画面上に表示された複数の表示オブジェクトの何れかを前記利用者に指示させ、指示された当該表示オブジェクトを表示させた前記表示情報及び前記タグ情報を選択する項目2記載の情報処理システム。
(項目5) 閲覧者が前記表示画面上に表示された表示オブジェクトを容易に認識できるか否かを示す認識容易条件が予め定められており、前記表示オブジェクトのうち、前記認識容易条件を満たさない認識困難オブジェクトを検出する表示結果解析検出部を更に備え、前記選択部は、前記文書情報のうち、前記認識困難オブジェクトを前記表示画面上に表示させた前記表示情報及び前記タグ情報を、前記文書構成要素として選択する項目4記載の情報処理システム。
【0092】
(項目6) 前記文書情報は、前記生成プログラムに変換されるプログラムであって、前記生成プログラムが生成すべき前記文書構成要素の内容を指示する指示プログラムに更まれ、当該情報処理システムは、前記指示プログラムを前記生成プログラムに変換するプログラム変換部を更に備え、前記対応情報生成部は、前記指示プログラムにおける複数の指示コマンドのそれぞれと、当該指示コマンドにより指示されて前記生成プログラムにより生成された前記文書構成要素とを対応付けた情報を、前記対応情報として更に生成し、前記コマンド情報出力部は、前記選択部により選択された当該文書構成要素の内容を指示した前記指示コマンドを、前記対応情報に基づいて選択し、当該指示コマンドを識別する情報を更に出力する項目2記載の情報処理システム。
(項目7) 前記生成プログラムにおいて、複数の生成コマンドが順次実行される実行の流れを示す制御フローグラフを生成する制御フローグラフ生成部を更に備え、前記コマンド情報出力部は、前記制御フローグラフにおける、前記対応情報に基づいて選択した生成コマンドの位置を示す情報を更に出力する項目1記載の情報処理システム。
(項目8) 前記生成プログラムにおいて、一のコマンドにより生成されたデータが、他の何れのコマンドにより使用されるかを示したデータフローグラフを生成するデータフローグラフ生成部を更に備え、前記コマンド情報出力部は、前記データフローグラフにおける、前記対応情報に基づいて選択した生成コマンドの位置を示す情報を更に出力する項目1記載の情報処理システム。
【0093】
(項目9) 前記複数のコマンドのそれぞれは、当該生成コマンドが生成した文書構成要素を出力する出力関数を呼び出し、当該情報処理システムは、前記文書構成要素のそれぞれを、当該文書構成要素を出力した出力関数及び当該出力関数を呼び出した生成コマンドに対応付けた情報である、関数識別情報を収集する関数識別情報収集部を更に備え、前記対応情報生成部は、前記関数識別情報に基づいて、前記対応情報を生成する項目1記載の情報処理システム。
(項目10) 前記コマンド情報出力部が前記生成コマンドを識別する情報を出力するテストモードと、前記コマンド情報出力部が前記生成コマンドを識別する情報の出力を停止した通常モードとを切り替える動作モード切替部を更に備え、前記動作モード切替部により前記テストモードに設定された場合において、前記対応情報生成部は、前記生成プログラムを実行することにより前記対応情報を生成し、前記生成コマンド情報出力部は、前記選択部により選択された当該文書構成要素を生成した生成コマンドを、前記対応情報に基づいて選択し、当該生成コマンドを識別する情報を出力する項目1記載の情報処理システム。
【0094】
(項目11) 前記生成プログラムが生成した少なくとも一の文書構成要素を格納し、予め定められたタイミングにより、格納していた前記少なくとも一の文書構成要素を、前記文書情報の一部として出力するバッファ部と、前記動作モード切替部により前記テストモードに設定された場合に、前記バッファ部による文書構成要素の格納を停止し、前記生成プログラムにより文書構成要素が生成される毎に、当該文書構成要素を前記文書情報の一部として出力させるバッファ停止部とを更に備える項目1記載の情報処理システム。
(項目12) 複数の文書構成要素から構成される文書情報を生成する生成プログラムを解析する情報処理システムであって、前記生成プログラムは、前記文書情報における前記複数の文書構成要素のそれぞれを生成する複数の生成コマンドのそれぞれを有しており、前記生成プログラムを実行し、前記複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する対応情報生成部と、利用者からの指示に応じて前記複数の生成コマンドの何れかを選択する選択部と、前記選択部により選択された生成コマンドにより生成される文書構成要素を、前記対応情報に基づいて選択して出力する文書構成要素出力部とを備える情報処理システム。
【0095】
(項目13) 複数の文書構成要素から構成される文書情報を生成する生成プログラムを解析する情報処理システムを制御する制御方法であって、前記生成プログラムは、前記文書情報に含まれる前記複数の文書構成要素のそれぞれを生成する複数の生成コマンドのそれぞれを有しており、前記生成プログラムを実行し、前記複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する対応情報生成段階と、利用者からの指示に応じて前記複数の文書構成要素の何れかを選択する選択段階と、前記選択段階において選択された当該文書構成要素を生成した生成コマンドを、前記対応情報に基づいて選択し、当該生成コマンドを識別する情報を出力するコマンド情報出力段階とを備える制御方法。
(項目14) 複数の文書構成要素から構成される文書情報を生成する生成プログラムを解析する情報処理システムを制御する制御方法であって、前記生成プログラムは、前記文書情報における前記複数の文書構成要素のそれぞれを生成する複数の生成コマンドのそれぞれを有しており、前記生成プログラムを実行し、前記複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する対応情報生成段階と、利用者からの指示に応じて前記複数の生成コマンドの何れかを選択する選択段階と、前記選択段階において選択された生成コマンドにより生成される文書構成要素を、前記対応情報に基づいて選択して出力する文書構成要素出力段階とを備える制御方法。
【0096】
(項目15) 複数の文書構成要素から構成される文書情報を生成する生成プログラムを解析する情報処理システムを制御する制御プログラムであって、前記生成プログラムは、前記文書情報に含まれる前記複数の文書構成要素のそれぞれを生成する複数の生成コマンドのそれぞれを有しており、前記情報処理システムを、前記生成プログラムを実行し、前記複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する対応情報生成部と、利用者からの指示に応じて前記複数の文書構成要素の何れかを選択する選択部と、前記選択部により選択された当該文書構成要素を生成した生成コマンドを、前記対応情報に基づいて選択し、当該生成コマンドを識別する情報を出力するコマンド情報出力部として機能させる制御プログラム。
(項目16) 複数の文書構成要素から構成される文書情報を生成する生成プログラムを解析する情報処理システムを制御する制御プログラムであって、前記生成プログラムは、前記文書情報における前記複数の文書構成要素のそれぞれを生成する複数の生成コマンドのそれぞれを有しており、前記情報処理システムを、前記生成プログラムを実行し、前記複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する対応情報生成部と、利用者からの指示に応じて前記複数の生成コマンドの何れかを選択する選択部と、前記選択部により選択された生成コマンドにより生成される文書構成要素を、前記対応情報に基づいて選択して出力する文書構成要素出力部として機能させる制御プログラム。
【0097】
【発明の効果】
上記説明から明らかなように、本発明によればプログラムの誤っている部分を適切に検出することができる。
【図面の簡単な説明】
【図1】図1は、情報処理システム10の機能ブロック図を示す。
【図2】図2は、情報処理システム10のフローチャートを示す。
【図3】図3は、情報処理システム10の動作の概念図を示す。
【図4】図4は、プログラム変換部210による変換処理の対象となる指示コマンドの詳細を説明する図である。
【図5】図5(a)は、関数識別情報収集部250がフィルタ関数を挿入する設定ファイルの第1の例を示す。
図5(b)は、関数識別情報収集部250がフィルタ関数を挿入する設定ファイルの第2の例を示す。
図5(c)は、関数識別情報収集部250がフィルタ関数を挿入する設定ファイルの第3の例を示す。
【図6】図6(a)は、スタックトレース情報370の第1の例を示す。
図6(b)は、スタックトレース情報370の第2の例を示す。
【図7】図7(a)は、文書情報の一例であるHTML文書の例を示す。
図7(b)は、図7(a)の文書構成要素730が生成された時点でのスタックトレース情報370の一例を示す。
図7(c)は、図7(a)の文書構成要素730を生成する生成プログラムの一例を示す。
図7(d)は、図7(c)の生成コマンドに変換される指示プログラムの一例を示す。
【図8】図8は、表示画面325の表示例を示す。
【図9】図9は、表示画面325による表示の概念図である。
【図10】図10は、サーバ装置20のハードウェア構成の一例を示す。
【符号の説明】
10 情報処理システム
20 サーバ装置
30 クライアント装置
200 プログラムデータベース
210 プログラム変換部
220 制御フローグラフ生成部
230 データフローグラフ生成部
235 バッファ部
240 バッファ停止部
250 関数識別情報収集部
260 対応情報生成部
300 入力受付部
310 動作モード切替部
320 表示部
322 文書構造情報出力部
325 表示画面
330 表示結果解析検出部
340 選択部
350 コマンド情報出力部
360 文書構成要素出力部
365 JSP−サーブレット対応情報
370 スタックトレース情報
380 サーブレット−HTML対応情報
700 表示情報
710 タグ情報
730 文書構成要素
740 生成コマンド
800 トレースウィンドウ
810 バリューウィンドウ
820 エディタウィンドウ
830 アウトラインウィンドウ
840 ブラウザウィンドウ
850 タスクウィンドウ
900 HTML−DOM−TREE
920 制御フローグラフ
930 データフローグラフ

Claims (17)

  1. 複数の文書構成要素から構成される文書情報を生成する生成プログラムを解析する情報処理システムであって、
    前記生成プログラムは、前記文書情報に含まれる前記複数の文書構成要素のそれぞれを生成する複数の生成コマンドのそれぞれを有しており、
    前記生成プログラムを実行し、前記複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する対応情報生成部と、
    利用者からの指示に応じて前記複数の文書構成要素の何れかを選択する選択部と、
    前記選択部により選択された当該文書構成要素を生成した生成コマンドを、前記対応情報に基づいて選択し、当該生成コマンドを識別する情報を出力するコマンド情報出力部と
    を備える情報処理システム。
  2. 前記文書情報は、前記文書情報の閲覧者に表示する表示情報と、当該表示情報の表示形式を指定するタグ情報とを含むタグ付き文書であり、
    前記選択部は、前記文書構成要素として、前記文書情報に含まれる複数の前記表示情報のうち何れかの表示情報又は当該表示情報の表示形式を指示するタグ情報を選択し、
    前記コマンド情報出力部は、前記選択部により選択された前記表示情報を生成した生成コマンド又は前記選択部により選択された前記タグ情報を生成した生成コマンドを、前記対応情報に基づいて選択して出力する
    請求項1記載の情報処理システム。
  3. 前記タグ情報は、当該タグ情報により表示形式を指定した表示情報内に、更に内側タグ情報を含む外側タグ情報であり、
    当該情報処理システムは、
    木構造のグラフであって、前記外側タグ情報を根ノードとして表し、前記内側タグ情報を前記根ノードの葉ノードとして表したグラフである、文書構造情報を生成する文書構造情報生成部を更に備え、
    前記選択部は、前記文書構造情報における何れかのノードを前記利用者に指示させ、指示させた当該ノードに対応する前記タグ情報を選択する
    請求項2記載の情報処理システム。
  4. 前記選択部は、前記文書情報に基づき表示画面上に表示された複数の表示オブジェクトの何れかを前記利用者に指示させ、指示された当該表示オブジェクトを表示させた前記表示情報及び前記タグ情報を選択する
    請求項2記載の情報処理システム。
  5. 閲覧者が前記表示画面上に表示された表示オブジェクトを容易に認識できるか否かを示す認識容易条件が予め定められており、
    前記表示オブジェクトのうち、前記認識容易条件を満たさない認識困難オブジェクトを検出する表示結果解析検出部を更に備え、
    前記選択部は、前記文書情報のうち、前記認識困難オブジェクトを前記表示画面上に表示させた前記表示情報及び前記タグ情報を、前記文書構成要素として選択する
    請求項4記載の情報処理システム。
  6. 前記文書情報は、前記生成プログラムに変換されるプログラムであって、前記生成プログラムが生成すべき前記文書構成要素の内容を指示する指示プログラムに更まれ、
    当該情報処理システムは、
    前記指示プログラムを前記生成プログラムに変換するプログラム変換部を更に備え、
    前記対応情報生成部は、前記指示プログラムにおける複数の指示コマンドのそれぞれと、当該指示コマンドにより指示されて前記生成プログラムにより生成された前記文書構成要素とを対応付けた情報を、前記対応情報として更に生成し、
    前記コマンド情報出力部は、前記選択部により選択された当該文書構成要素の内容を指示した前記指示コマンドを、前記対応情報に基づいて選択し、当該指示コマンドを識別する情報を更に出力する
    請求項2記載の情報処理システム。
  7. 前記生成プログラムにおいて、複数の生成コマンドが順次実行される実行の流れを示す制御フローグラフを生成する制御フローグラフ生成部を更に備え、
    前記コマンド情報出力部は、前記制御フローグラフにおける、前記対応情報に基づいて選択した生成コマンドの位置を示す情報を更に出力する
    請求項1記載の情報処理システム。
  8. 前記生成プログラムにおいて、一のコマンドにより生成されたデータが、他の何れのコマンドにより使用されるかを示したデータフローグラフを生成するデータフローグラフ生成部を更に備え、
    前記コマンド情報出力部は、前記データフローグラフにおける、前記対応情報に基づいて選択した生成コマンドの位置を示す情報を更に出力する
    請求項1記載の情報処理システム。
  9. 前記複数のコマンドのそれぞれは、当該生成コマンドが生成した文書構成要素を出力する出力関数を呼び出し、
    当該情報処理システムは、
    前記文書構成要素のそれぞれを、当該文書構成要素を出力した出力関数及び当該出力関数を呼び出した生成コマンドに対応付けた情報である、関数識別情報を収集する関数識別情報収集部を更に備え、
    前記対応情報生成部は、前記関数識別情報に基づいて、前記対応情報を生成する
    請求項1記載の情報処理システム。
  10. 前記コマンド情報出力部が前記生成コマンドを識別する情報を出力するテストモードと、前記コマンド情報出力部が前記生成コマンドを識別する情報の出力を停止した通常モードとを切り替える動作モード切替部を更に備え、
    前記動作モード切替部により前記テストモードに設定された場合において、
    前記対応情報生成部は、前記生成プログラムを実行することにより前記対応情報を生成し、
    前記生成コマンド情報出力部は、前記選択部により選択された当該文書構成要素を生成した生成コマンドを、前記対応情報に基づいて選択し、当該生成コマンドを識別する情報を出力する
    請求項1記載の情報処理システム。
  11. 前記生成プログラムが生成した少なくとも一の文書構成要素を格納し、予め定められたタイミングにより、格納していた前記少なくとも一の文書構成要素を、前記文書情報の一部として出力するバッファ部と、
    前記動作モード切替部により前記テストモードに設定された場合に、前記バッファ部による文書構成要素の格納を停止し、前記生成プログラムにより文書構成要素が生成される毎に、当該文書構成要素を前記文書情報の一部として出力させるバッファ停止部と
    を更に備える請求項1記載の情報処理システム。
  12. 複数の文書構成要素から構成される文書情報を生成する生成プログラムを解析する情報処理システムであって、
    前記生成プログラムは、前記文書情報における前記複数の文書構成要素のそれぞれを生成する複数の生成コマンドのそれぞれを有しており、
    前記生成プログラムを実行し、前記複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する対応情報生成部と、
    利用者からの指示に応じて前記複数の生成コマンドの何れかを選択する選択部と、
    前記選択部により選択された生成コマンドにより生成される文書構成要素を、前記対応情報に基づいて選択して出力する文書構成要素出力部と
    を備える情報処理システム。
  13. 複数の文書構成要素から構成される文書情報を生成する生成プログラムを解析する情報処理システムを制御する制御方法であって、
    前記生成プログラムは、前記文書情報に含まれる前記複数の文書構成要素のそれぞれを生成する複数の生成コマンドのそれぞれを有しており、
    前記生成プログラムを実行し、前記複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する対応情報生成段階と、
    利用者からの指示に応じて前記複数の文書構成要素の何れかを選択する選択段階と、
    前記選択段階において選択された当該文書構成要素を生成した生成コマンドを、前記対応情報に基づいて選択し、当該生成コマンドを識別する情報を出力するコマンド情報出力段階と
    を備える制御方法。
  14. 複数の文書構成要素から構成される文書情報を生成する生成プログラムを解析する情報処理システムを制御する制御方法であって、
    前記生成プログラムは、前記文書情報における前記複数の文書構成要素のそれぞれを生成する複数の生成コマンドのそれぞれを有しており、
    前記生成プログラムを実行し、前記複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する対応情報生成段階と、
    利用者からの指示に応じて前記複数の生成コマンドの何れかを選択する選択段階と、
    前記選択段階において選択された生成コマンドにより生成される文書構成要素を、前記対応情報に基づいて選択して出力する文書構成要素出力段階と
    を備える制御方法。
  15. 複数の文書構成要素から構成される文書情報を生成する生成プログラムを解析する情報処理システムを制御する制御プログラムであって、
    前記生成プログラムは、前記文書情報に含まれる前記複数の文書構成要素のそれぞれを生成する複数の生成コマンドのそれぞれを有しており、
    前記情報処理システムを、
    前記生成プログラムを実行し、前記複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する対応情報生成部と、
    利用者からの指示に応じて前記複数の文書構成要素の何れかを選択する選択部と、
    前記選択部により選択された当該文書構成要素を生成した生成コマンドを、前記対応情報に基づいて選択し、当該生成コマンドを識別する情報を出力するコマンド情報出力部と
    して機能させる制御プログラム。
  16. 複数の文書構成要素から構成される文書情報を生成する生成プログラムを解析する情報処理システムを制御する制御プログラムであって、
    前記生成プログラムは、前記文書情報における前記複数の文書構成要素のそれぞれを生成する複数の生成コマンドのそれぞれを有しており、
    前記情報処理システムを、
    前記生成プログラムを実行し、前記複数の生成コマンドのそれぞれと、当該生成コマンドを実行した結果生成された文書構成要素との対応付けを示す対応情報を生成する対応情報生成部と、
    利用者からの指示に応じて前記複数の生成コマンドの何れかを選択する選択部と、
    前記選択部により選択された生成コマンドにより生成される文書構成要素を、前記対応情報に基づいて選択して出力する文書構成要素出力部と
    して機能させる制御プログラム。
  17. 請求項15又は16に記載の制御プログラムを記録した記録媒体。
JP2003135413A 2003-05-14 2003-05-14 情報処理システム、制御方法、制御プログラム、及び記録媒体 Pending JP2004341671A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003135413A JP2004341671A (ja) 2003-05-14 2003-05-14 情報処理システム、制御方法、制御プログラム、及び記録媒体
US10/845,732 US7519956B2 (en) 2003-05-14 2004-05-14 Method for generating document components and managing same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003135413A JP2004341671A (ja) 2003-05-14 2003-05-14 情報処理システム、制御方法、制御プログラム、及び記録媒体

Publications (1)

Publication Number Publication Date
JP2004341671A true JP2004341671A (ja) 2004-12-02

Family

ID=33410707

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003135413A Pending JP2004341671A (ja) 2003-05-14 2003-05-14 情報処理システム、制御方法、制御プログラム、及び記録媒体

Country Status (2)

Country Link
US (1) US7519956B2 (ja)
JP (1) JP2004341671A (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060092454A1 (en) * 2004-10-29 2006-05-04 Seiko Epson Corporation Printing device and printing method
US20060195732A1 (en) * 2005-02-11 2006-08-31 Joerg Deutschle Method and system for executing test cases for a device under verification
US20070239746A1 (en) * 2006-03-29 2007-10-11 International Business Machines Corporation Visual merge of portlets
US20070245325A1 (en) * 2006-04-04 2007-10-18 Microsoft Corporation Type inference for optimized XSLT implementation
US8074166B2 (en) * 2006-04-04 2011-12-06 Microsoft Corporation XSLT/XPATH focus inference for optimized XSLT implementation
US8751946B2 (en) * 2006-04-05 2014-06-10 International Business Machines Corporation Enhanced display of properties for a program object
US7716653B2 (en) * 2006-04-06 2010-05-11 International Business Machines Corporation Configurable importers and resource writers for converting data into another format
US8812556B2 (en) * 2006-04-06 2014-08-19 International Business Machines Corporation Storing modification data for recreating modifications
US8996979B2 (en) * 2006-06-08 2015-03-31 West Services, Inc. Document automation systems
US9122762B2 (en) * 2007-07-18 2015-09-01 Ebay, Inc. Method and system to maintain a web page
JP5455321B2 (ja) * 2008-05-02 2014-03-26 キヤノン株式会社 文書処理装置及び文書処理方法
CN101661425B (zh) 2008-08-26 2012-03-21 国际商业机器公司 测试覆盖分析方法和装置
WO2014064830A1 (ja) * 2012-10-26 2014-05-01 株式会社安川電機 開発支援装置及び開発支援プログラム
CN103605639A (zh) * 2013-11-28 2014-02-26 厦门市乐创信息科技有限公司 一种基于epub格式电子书籍制作的方法
CN104503958B (zh) * 2014-11-19 2017-09-26 百度在线网络技术(北京)有限公司 文档摘要的生成方法及装置
US9940411B2 (en) 2015-04-17 2018-04-10 Salesforce.Com, Inc. Systems and methods of bypassing suppression of event bubbling for popup controls
US10031730B2 (en) * 2015-04-22 2018-07-24 Salesforce.Com, Inc. Systems and methods of implementing extensible browser executable components
CN104915402A (zh) * 2015-06-01 2015-09-16 小米科技有限责任公司 电子书封面设置方法及装置
US11113478B2 (en) * 2018-05-15 2021-09-07 Patomatic LLC Responsive document generation
US10628286B1 (en) 2018-10-18 2020-04-21 Denso International America, Inc. Systems and methods for dynamically identifying program control flow and instrumenting source code

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5911145A (en) * 1996-07-29 1999-06-08 Rae Technology, Inc. Hierarchical structure editor for web sites
US5953731A (en) * 1997-03-31 1999-09-14 International Business Machines Coporation HTML integration utility for a program development environment
US6311327B1 (en) * 1998-03-02 2001-10-30 Applied Microsystems Corp. Method and apparatus for analyzing software in a language-independent manner
US6330566B1 (en) * 1998-06-22 2001-12-11 Microsoft Corporation Apparatus and method for optimizing client-state data storage
US6558431B1 (en) * 1998-09-11 2003-05-06 Macromedia, Inc. Storing valid and invalid markup language in strict and relaxed tables respectively
US7194680B1 (en) * 1999-12-07 2007-03-20 Adobe Systems Incorporated Formatting content by example
US7191405B1 (en) * 2000-11-22 2007-03-13 Adobe Systems Incorporated System and method for editing information
US7174536B1 (en) * 2001-02-12 2007-02-06 Iowa State University Research Foundation, Inc. Integrated interactive software visualization environment
US7110936B2 (en) * 2001-02-23 2006-09-19 Complementsoft Llc System and method for generating and maintaining software code
JP2002342262A (ja) * 2001-05-11 2002-11-29 Fujitsu Ltd ダイレクトメモリアクセス制御装置およびダイレクトメモリアクセス制御方法
US20040049530A1 (en) * 2001-06-11 2004-03-11 Simon Lok Distributed computer system using a graphical user interface toolkit
US7316003B1 (en) * 2002-12-18 2008-01-01 Oracle International Corp. System and method for developing a dynamic web page
US7000184B2 (en) * 2003-01-24 2006-02-14 The Cobalt Group, Inc. Remote web site editing in a standard web browser without external software

Also Published As

Publication number Publication date
US20040230890A1 (en) 2004-11-18
US7519956B2 (en) 2009-04-14

Similar Documents

Publication Publication Date Title
JP2004341671A (ja) 情報処理システム、制御方法、制御プログラム、及び記録媒体
US20230367559A1 (en) Development environment for real-time dataflow programming language
US7508985B2 (en) Pattern-matching system
JP4395761B2 (ja) プログラムテスト支援装置およびその方法
US9122762B2 (en) Method and system to maintain a web page
KR100692172B1 (ko) 종합 문자열 분석기 및 그 분석 방법
JP2007141173A (ja) コンパイルシステム、デバッグシステムおよびプログラム開発システム
US20080034288A1 (en) Text-Driven Macros Integrated with a Help System of a Computer Program
JP2012529093A (ja) スクリーンキャプチャに関する方法、システムおよびコンピュータ・プログラム
JPH1063511A (ja) ジョブスクリプト実行装置
CN109240700B (zh) 关键代码定位方法与系统
JP2005332146A (ja) 動的コンテンツ作成プログラムの生成装置、動的コンテンツ作成プログラムを生成するためのプログラム、及び動的コンテンツ作成プログラムの生成方法
JP2008276735A (ja) プログラムコード変換装置及びプログラムコード変換方法
CN111913741A (zh) 对象拦截方法、装置、介质及电子设备
JP2004185508A (ja) プログラム解析装置およびプログラム
CN109062784B (zh) 接口参数约束代码入口定位方法与系统
CN113641594B (zh) 跨端自动化测试方法以及相关装置
CN110110299B (zh) 文本变换方法、装置以及服务器
CN109062785B (zh) 接口参数约束代码定位方法与系统
JP5399601B2 (ja) 実装コード開発システム、及び実装コード開発プログラム
JP5476867B2 (ja) マッシュアッププログラム、マッシュアップ装置及びマッシュアップ方法
JP2007213487A (ja) アスペクト生成方法及び装置
JP4207992B2 (ja) 構造化文書処理システム及び構造化文書処理方法
JP2007279795A (ja) プログラムによって表示される画面が仕様を満たすか判断するシステム
Freeman et al. Understanding React Projects

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050711

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050726

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051004

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051115

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20051219

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060509