(57)【特許請求の範囲】
【請求項１】
既存システムの画面ログから当該既存システムの画面プログラム仕様を抽出する既存システム画面仕様抽出装置であって、
前記画面ログについて、関連する画面の画面ログを複数集約して収集し、収集された複数の画面ログについて、それぞれの関連情報を比較してその差分に関する差分情報を抽出する差分抽出部と、
前記差分情報を解析して、前記画面ログの画面における共通領域と変数領域を切り分ける解析部と、
解析された結果である変数領域に関する情報を、前記画面の画面仕様として特定して出力する画面仕様出力部とを有することを特徴とする既存システム画面仕様抽出装置。
【請求項２】
請求項１に記載された既存システム画面仕様抽出装置であって、
前記差分抽出部は、前記複数の画面ログから当該画面ログの示す画面を生成する画面プログラムの画面構造のバリエーションを、入力された前記複数の画面ログを構成する各画面ログ間の比較処理により抽出し、
前記画面仕様出力部は、前記画面構造のバリエーションに基づき、画面構造のバリエーションが存在する画面種別の一覧および各画面バリエーションの詳細の少なくともいずかを含む画面仕様を出力することを特徴とする既存システム画面仕様抽出装置。
【請求項３】
請求項１に記載の既存システム画面仕様抽出装置であって、
前記差分抽出部は、前記複数の画面ログ各々共通する画面記述コードの差分を計算することにより、画面の変数情報を抽出し、
前記画面仕様出力部は、前記画面の変数情報を出力することを特徴とする既存システ
ム画面仕様抽出装置。
【請求項４】
請求項３に記載の既存システム画面仕様抽出装置であって、
前記解析部は、記録された画面バリエーション乃至変数情報因果関係を分析することにより、各画面バリエーションの表示を決定する因子となる変数およびその変数値を分析して画面バリエーション因子解析結果を算出し、
前記画面仕様出力部は、前記画面バリエーション因子解析結果を前記既存システムの画面仕様として出力することを特徴とする既存システム画面仕様抽出装置。
【請求項５】
既存システムの画面ログから当該既存システムの画面プログラム仕様を抽出する既存システム画面仕様抽出装置による既存システム画面仕様抽出方法であって、
前記画面ログについて、関連する画面の画面ログを複数集約して収集し、収集された複数の画面ログについて、それぞれの関連情報を比較してその差分に関する差分情報を抽出する差分抽出ステップと、
前記差分情報を解析して、前記画面ログの画面における共通領域と変数領域を切り分ける解析ステップと、
解析された結果である変数領域に関する情報を、前記画面の画面仕様として特定して出力する画面仕様出力ステップとを有することを特徴とする既存システム画面仕様抽出方法。
【請求項６】
請求項５に記載された既存システム画面仕様抽出方法であって、
前記差分抽出ステップは、前記複数の画面ログから当該画面ログの示す画面を生成する画面プログラムの画面構造のバリエーションを、入力された前記複数の画面ログを構成する各画面ログ間の比較処理により抽出し、
前記画面仕様出力ステップは、前記画面構造のバリエーションに基づき、画面構造のバリエーションが存在する画面種別の一覧および各画面バリエーションの詳細の少なくともいずかを含む画面仕様を出力することを特徴とする既存システム画面仕様抽出方法。
【請求項７】
請求項５に記載の既存システム画面仕様抽出装方法であって、
前記差分抽出ステップは、前記複数の画面ログ各々共通する画面記述コードの差分を計算することにより、画面の変数情報を抽出し、
前記画面仕様出力ステップは、前記画面の変数情報を出力することを特徴とする既存システム画面仕様抽出方法。
【請求項８】
請求項７に記載の既存システム画面仕様抽出方法であって、
前記解析ステップは、記録された画面バリエーション乃至変数情報因果関係を分析することにより、各画面バリエーションの表示を決定する因子となる変数およびその変数値を分析して画面バリエーション因子解析結果を算出し、
前記画面仕様出力ステップは、前記画面バリエーション因子解析結果を前記既存システムの画面仕様として出力することを特徴とする既存システム画面仕様抽出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、既存の情報システム（既存情報システムないし既存システム）について問題点などを分析するための画面仕様を抽出する技術に関する。
【背景技術】
【０００２】
現在、様々な業務の遂行を、情報システムを用いられている。情報システムは、導入から時間が経過した場合、問題点の解消のために新たなシステムへの置き換え、変更することがなされている。このような置き換えなどにおいては、置き換え前の既存情報システムでの問題点を分析することが行われている。このために、画面仕様の抽出が必要になるが、この本技術分野の背景技術として、特許第５１０８６６０号公報（特許文献１）がある。この公報には「情報収集装置が、通信ネットワークを介してアクセス可能な複数のＷｅｂ文書から、前記Ｗｅｂ文書に含まれるタグに基づいて表形式あるいはデータベース形式の情報を抽出する第１のステップと、抽出した前記表形式あるいはデータベース形式の情報から、前記タグが示す各情報間の従属関係に基づいて、所定の項目に対して従属する関係にある属性及び前記属性の内容を示す属性値の関係を有する情報を抽出する第２のステップと、抽出したＷｅｂ文書毎に、前記項目、属性及び属性値の関係を有する情報を関連付けて、当該関連付けられた複数のＷｅｂ文書毎の情報を、統一した情報として記憶手段に記憶する第３のステップと、を少なくとも実行し、前記第２のステップは、所定の項目に対して、所定の閾値を超える数のＷｅｂ文書において共通して従属する情報を、属性及び属性値として抽出することを特徴とする情報収集方法。」と記載されている（請求項１参照）。
【０００３】
また、特開２００５‐９２８８９公報（特許文献２）がある。この公報には、「１つのウェブページをコヒーレントコンテンツを有する複数の情報ブロックにセグメント化するための情報ブロック抽出方法であって、前記ウェブページの構造情報ブロックツリーを生成する構造情報ブロック抽出ステップと、構造情報ブロックをクラスタリング及びマージングし、結果として得られるブロックの意味にラベル付けする意味情報ブロック抽出ステップと、を含む情報ブロック抽出方法。」と記載されている（請求項１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第５１０８６６０号公報
【特許文献２】特開２００５‐９２８８９公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の課題は、既存業務システムにおいて、同種類の業務処理であってもその処理内容からことなる入力や確認処理を実施しなければならないことに起因する業務画面のバリエーションに関する仕様を抽出し、利用者に提示することである。
【０００６】
前記特許文献１には、Ｗｅｂ文書に含まれるタグ情報に基づき、表もしくはデータベース形式の情報を抽出する方法と、タグに含まれる情報の従属関係によって抽出された情報の内容を示す属性値を抽出する方法が記載されている。しかし本手法は、表やデータベースといった事前に与えられた分析対象のシステム固有の知識に基づき画面上に表示された情報を抽出するにすぎない。例えばＷｅｂページの閲覧者ごとに表示される「こんにちは日立太郎さん」のようなウェルカムメッセージにおける閲覧者名「日立太郎」のように、自然文の中に埋め込まれた変数の値を抽出することはできず、各画面のバリエーションの要因となる値を抽出するには不十分である。
【０００７】
また、前記特許文献２には、ある１つのウェブページに対し、タグで与えられる情報ブロックによって、ウェブページ内の情報ブロックを抽出する方法が記載されている。本手法によれば１ウェブページ内に示される情報について明らかにすることはできるが、他方、処理する業務の流れにおいて生じる入力情報や表示情報の差異、すなわち画面のバリエーションおよびその要因となるデータについては明らかにすることはできない。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明では、画面ログを用いて、任意の画面においてバリエーションがある場合に画面に関する情報の差分を算出することで、これらの仕様を特定するものである。より具体的には、以下の記載の構成を採用する。
本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、既存システムの画面ログから当該既存システムの画面プログラム仕様を抽出する既存システム画面仕様抽出装置であって、前記画面ログについて、関連する画面の画面ログを複数集約して収集し、収集された複数の画面ログについて、それぞれの関連情報を比較してその差分に関する差分情報を抽出する差分抽出部と、前記差分情報を解析して、前記画面ログの画面における共通領域と変数領域を切り分ける解析部と、解析された結果である変数領域に関する情報を、前記画面の画面仕様として特定して出力する画面仕様出力部とを有する。また、この既存システム画面仕様抽出装置を用いた既存画面仕様抽出方法も本発明の一態様である。
【発明の効果】
【０００９】
本発明によれば、業務システム画面の入力情報や表示情報の差異、すなわち画面のバリエーションおよびその要因となるデータについて明らかにすることができる。
【図面の簡単な説明】
【００１０】
【図１】本実施例における既存システム画面仕様抽出装置１００の構成図の例である。
【図２】既存システム画面仕様抽出装置１００が仕様抽出対象とする画面プログラムの入出力関係の概念図の一例である。
【図３】画面バリエーション差分抽出プログラム１２０の構成の一例である。
【図４】既存システム画面ログ記録部１５０に格納される情報構成の一例である。
【図５】画面バリエーション情報記録部１６０に格納される情報構成の一例である。
【図６】画面Ａ実表示コード（４）３５０の一例の説明図である。
【図７】既存システム画面ログ記録部１５０の詳細な構成例である。
【図８】画面表示コード記録部１５１に格納される画面表示コード管理テーブルの一例である。
【図９】画面遷移情報記録部１５２に格納される画面遷移テーブルの一例である。
【図１０】画面バリエーション情報記録部１６０の詳細な構成例である。
【図１１】画面バリエーション差分抽出プログラム１２０の詳細な構成例である。
【図１２】画面構造抽出プログラム１２１により解析された画面Ａ表示コード（１）３２０の説明図の例である。
【図１３】各画面Ａ表示コード（２）３３０の画面表示ツリー３３００の一例である。
【図１４】各画面Ａ表示コード（３）３４０の画面表示ツリー３４００の一例である。
【図１５】各画面Ａ表示コード（４）３５０の画面表示ツリー３５００の一例である。
【図１６】画面構造バリエーション管理情報記録部１６１に格納される画面構造バリエーション管理テーブルの例である。
【図１７】文字列の固定文字列部分および変数文字列部分の分析の説明図の例である。
【図１８】画面構造ツリーの一例の説明図である。
【図１９】画面構造ツリー５２００の説明図の一例である。
【図２０】画面構造ツリー５２００の固定文字列ノードに含まれる値の一覧である。
【図２１】画面構造ツリー５３００の説明図の一例である。
【図２２】画面構造ツリーＩＤが書き込まれた画面構造バリエーション管理情報記録部のテーブルの例である。
【図２３】部分木構造特徴値算出の説明図の一例である。
【図２４】集約構造ツリーの一例である。
【図２５】画面構造ツリー５１００より得られる構造集約ツリーの説明図である。
【図２６】画面構造ツリー５３００より得られる構造集約ツリーの説明図である。
【図２７】構造集約ツリーＩＤ書き込みが書き込まれた画面構造バリエーション管理テーブルの例である。
【図２８】概略構造特徴値の値が書き込まれた画面構造バリエーション管理テーブルの例である。
【図２９】タグノードを分析して得られた結果の例である。
【図３０】構造集約ツリーを分析して得られた結果の例である。
【図３１】テーブルの画面バリエーションＩＤ１６１９が書き込まれた画面バリエーション管理テーブルの例である。
【図３２】画面変数抽出プログラム１２４により抽出され画面変数記録部１６３に書き込まれた、画面変数執着情報の一例である。
【図３３】バリエーション-変数間関連情報の例である。
【図３４】バリエーション-変数間関連情報の因果関係分析および頻度分析の結果の例である。
【図３５】画面バリエーション因子分析結果記録部１７０の画面バリエーション分析結果テーブルの一例である。
【図３６】抽出画面仕様出力プログラム１４０によって提示される画面バリエーション分析結果一覧の表示の例である。
【図３７】抽出画面仕様出力プログラム１４０によって提示される画面バリエーション詳細情報の表示の例である。
【図３８】抽出画面仕様出力プログラム１４０によって提示される画面バリエーション詳細情報の第２の表示例である。
【図３９】抽出画面仕様出力プログラム１４０によって提示される画面バリエーション詳細情報の第３の表示例である。
【図４０】抽出画面仕様出力プログラム１４０によって提示される画面バリエーションの因子情報の表示例である。
【図４１】本装置１００を用いた既存システム画面仕様の抽出の手順の全体を示すフローチャートである。
【図４２】画面バリエーションを抽出する処理の手順を示すフローチャートである。
【図４３】画面構造抽出プログラム１２１の処理の詳細な手順を示すフローチャートである。
【図４４】画面変数部解析プログラム１２２の処理の詳細な手順を示すフローチャートである。
【図４５】画面バリエーション解析プログラム１２３の処理の詳細な手順を示すフローチャートである。
【図４６】画面変数抽出プログラム１２４の処理の詳細な手順を示すフローチャートである。
【図４７】画面バリエーション因子分析プログラム１３０の処理の詳細な手順を示すフローチャートである。
【図４８】抽出画面仕様出力プログラム１４０の処理の詳細な手順を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明の一実施例を図面を用いて説明する。
本実施例では、既存システム画面仕様抽出装置１００の例を説明する。
図１は、本実施例における既存システム画面仕様抽出装置１００の構成図の例である。
既存システム画面仕様抽出装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１、メモリ１０２、外部記憶装置１０３、入力装置１０６、出力装置１０７、通信装置１０８を有し、バス１０４を介してＣＰＵ１０１、メモリ１０２、外部インターフェース１０５が接続されている。また外部インターフェース１０５には、外部記憶装置１０３、入力装置１０６、出力装置１０７、通信装置１０８が接続されている。
【００１２】
外部記憶装置１０３は、ＣＰＵ１０１において実行される処理プログラムとして既存画面ログ格納プログラム１１０、画面バリエーション差分抽出プログラム１２０、画面バリエーション因子分析プログラム１３０、抽出画面仕様出力プログラム１４０を保持している。これらのプログラムは外部記憶装置１０３よりメモリ１０２に読み出されＣＰＵ１０１で実行される。また、外部記憶装置１０３は、既存システム画面ログ記録部１５０と、画面バリエーション情報記録部１６０と、画面バリエーション因子分析結果記録部１７０と、画面記述文法記録部１８０とを有する。
【００１３】
図２は、既存システム画面仕様抽出装置１００が仕様抽出対象とする画面プログラムの入出力関係の概念図の一例である。画面Ａ原始プログラム３０１は、システムの利用者からの要求を受け，画面遷移において画面Ａの前画面で入力された前画面入力データ３１０およびデータベースからのデータ３１１を入力とし，利用者に表示する画面Ａ実表示コードを出力する。図２では例として，画面Ａ実表示コード（１）３２０，画面Ａ実表示コード（２）３３０，画面Ａ実表示コード（３）３４０，画面Ａ実表示コード（４）３５０がそれぞれ出力されるイメージを表している。
【００１４】
図３から図６は、本実施例で説明に用いる、画面Ａ実表示コード群の説明図である。共通の画面種別「返済計画確認画面」に対する画面表示コードの例として以下説明する。
【００１５】
図３は、画面Ａ実表示コード（１）３２０の一例の説明図である。符号３２０ｉに示される図には、氏名「日立太郎」に対する返済計画確認画面の表示イメージを示している。また、符号３２０ｃには、当該表示イメージを表示するための画面表示コードをＨＴＭＬ形式で記述した例を示している
図４は、画面Ａ実表示コード（２）３３０の一例の説明図である。図３同様、符号３３０ｉに示される図は、氏名「横浜花子」に対する返済計画確認画面の表示イメージであり、符号３２０ｃは、当該表示イメージを表示するための画面表示コードをＨＴＭＬ形式で記述した例である。
【００１６】
図５は、画面Ａ実表示コード（３）３４０の一例の説明図である。図３同様、符号３４０ｉに示される図は、氏名「東京みやこ」に対する返済計画確認画面の表示イメージであり、符号３４０ｃは、当該表示イメージを表示するための画面表示コードをＨＴＭＬ形式で記述した例である
図６は、画面Ａ実表示コード（４）３５０の一例の説明図である。図３同様、符号３５０ｉに示される図は、氏名「茨城三郎」に対する返済計画確認画面の表示イメージであり、符号３５０ｃは、当該表示イメージを表示するための画面表示コードをＨＴＭＬ形式で記述した例である。
【００１７】
以上図３から図６により、本実施例で説明に用いる図２の画面Ａ表示コード群の例を示した。なお、画面表示コード３２０ｃ、３３０ｃ、３４０ｃおよび３５０ｃは、本実施例の説明で必要な部分を記述しており、説明に直接関係しない記述は省略している。また、本実施例では図２の画面Ａ表示コードについて４例のみを示しているが、これは説明の簡単のためであり、実際には業務システムの実運用を通じて獲得された、大量の画面表示コードが存在している。
【００１８】
また、図２においては、簡単のため画面Ａ原始プログラム３０１のみを示しているが，実際のシステムにおいては、複数の画面原始プログラムが存在する。本実施例では、名称など識別子の単位で識別される画面原始プログラムを画面種別と呼称し、同一の画面種別の中で出力される画面実表示コードの構造の違いをバリエーションと呼称する。例えば、符号３２０ｉに示される画面イメージと、符号３３０ｉで示される画面イメージは同じ「返済計画確認画面」であり、同一の画面種別である。符号３２１ｉに示されるお客様情報より下３行と、符号３３１ｉに示されるお客様情報の下３行は、表示される値こそ異なるが、氏名、住所、返済方法の項目は共通している。しかしながら、符号３２５ｉに示される今後の返済計画は箇条書き形式で返済日と各回の返済金額が示されているのに対し、符号３３５ｉに示される今後の返済計画は、表形式で示されており、構造が異なっている。このように画面種別が同一であるが、表示される情報の構造が異なっているという例をバリエーションと呼ぶ。この単一画面種別におけるバリエーションの種類を、大量の画面表示コードから自動的に抽出し、頻度が少ないものも含めて明らかにすることが本実施例の目的の一つである。
【００１９】
図７は、既存システム画面ログ記録部１５０の詳細な構成例である。既存システム画面ログ記録部１５０は、画面表示コード記録部１５１と画面遷移情報記録部１５２とを有する。画面表示コード記録部１５１には、画面表示コード自身に加え、これら画面表示コードを管理するテーブルが記録される。
【００２０】
図８は、画面表示コード記録部１５１に格納される画面表示コード管理テーブルの一例である。本実施例において、画面表示コード管理テーブルには、画面種別ＩＤ１５１１、画面種別名１５１２、画面表示コードＩＤ１５１３が含まれる。画面種別ＩＤ１５１１は画面種別名１５１２に対し一意に与えられるＩＤであり、画面表示コードＩＤ１５１３は画面表示コードの実態を参照するための一意に与えられるＩＤである。レコード１５１５は画面Ａ実表示コード（１）３２０を示し、レコード１５１６は画面Ａ実表示コード（２）３３０を示し、レコード１５１７は画面Ａ実表示コード（３）３４０を示し、レコード１５１８は画面Ａ実表示コード（４）３５０を示す。これらの情報は、既存画面ログ格納プログラム１１０により取得された格納される。
【００２１】
図７に戻り、画面遷移情報記録部１５２には、画面遷移情報が記録される。
【００２２】
図９は、画面遷移情報記録部１５２に格納される画面遷移テーブルの一例である。本実施例において、画面遷移テーブルには、画面遷移ＩＤ１５２１、当画面表示コードＩＤ１５２２、前画面表示コードＩＤ１５２３が含まれる。当画面表示コードＩＤ１５２２および前画面表示コードＩＤ１５２３に含まれる値は、画面表示コード記録部１５１に格納された画面表示コードＩＤ１５１３に記録されているものである。例えば、レコード１５２５は、画面Ａ表示コード（１）３２０の前画面は「ＩＲＰ＿９２１」に記録されている画面表示コードで示される画面であることを示す。
【００２３】
図１０は、画面バリエーション情報記録部１６０の詳細な構成例である。本実施例において画面バリエーション情報記録部１６０は、画面構造バリエーション管理情報記録部１６１と、画面構造ツリー記録部１６２と、画面変数記録部１６３とを有する。各部に格納されるデータの詳細は、画面バリエーション差分抽出プログラム１２０の処理とともに後述する。
【００２４】
図１１は、画面バリエーション差分抽出プログラム１２０の詳細な構成例である。本実施例おいて、画面バリエーション差分抽出プログラム１２０は、画面構造抽出プログラム１２１と、画面変数部解析プログラム１２２と、画面バリエーション解析プログラム１２３と、画面変数抽出プログラム１２４から成る。
【００２５】
画面構造抽出プログラム１２１はまず、既存システム画面ログ記録部１５０の画面表示コード記録部１５１に格納されている画面表示コードを読み出し、画面記述文法記録部１８０に記録されている画面表示コードの文法に基づき、各画面表示コードの構造を解析する。
【００２６】
図１２は、画面構造抽出プログラム１２１により解析された画面Ａ表示コード（１）３２０の説明図の例である。画面構造抽出プログラム１２１は、画面表示コード記録部１５１より画面Ａ表示コード（１）３２０を読み出し、画面記述文法記録部１８０に記録されている画面表示コードの文法に従い、構造を解析する。本実施例ではＨＴＭＬの文法に基づき解析し、画面表示ツリー３２００を構築する。画面表示ツリー３２００に示したツリーは本実施例の説明に必要な部分以外は省略している。画面表示ツリーの構築方法については、既存の手法も知られているため本実施例の中での詳細な説明は割愛する。なお、画面表示ツリー３２００内の円形は下位に子構造を持つことを示す根ノード、もしくは中途ノードを表し、矩形は終端ノードを表す。根ノード、中途ノードにはＨＴＭＬタグの情報が格納され、終端ノードには通常画面に表示される文字列が格納される。以降、本実施例では根ノード、中途ノードをタグノードと呼称し、終端ノードを文字列ノードと呼称する。例えば、タグノード３２１０は、画面Ａ表示コード（１）３２０におけるｂｏｄｙタグが付与されたノードであり、親タグノードにｈｔｍｌタグノード３２０５、子ノードにｄｉｖタグノード３２１１および、これとは異なるｄｉｖタグノード３２１２が存在することを示す。また、字句ノードには、一定のルールに従いこの番号を付与する。本実施例では、深さ優先探索した結果登場した順序によって番号を付与している。例えば、字句ノード３２２０の矩形内に示された「１」は表示ツリー３２００の番号１であることを示している。
【００２７】
表３２５０は、画面表示ツリー３２００の字句ノードの値を一覧表示したものである。番号３２５１は、画面表示ツリー３２００の字句ノードに与えられた番号を意味し、文字列３２５２は字句ノードの位置に存在する文字列を意味する。例えば、字句ノード３２２０には矩形内に番号１が示されており、これはレコード３２６１に対応する。すなわち、字句コード３２２０には「お客様情報」という文字列が存在することを表している。なお、本実施例では説明のため字句ノードについては別途表に纏めたが、画面表示ツリーの字句ノードに直接文字列情報を収めてもよい。画面構造抽出プログラム１２１は、解析結果の画面表示ツリー３２００に対し一意にアクセスできるキー３２０１（本例ではＴＲ＿ＣＲＰ＿１００１）を付与する。
【００２８】
次に画面構造抽出プログラム１２１は、画面表示ツリー毎の概略画面特徴値を算出する。概略構造値は、画面表示ツリーの構造およびタグノードの種類に基づき算出される。例えば、ツリーの根タグノードから深さ優先探索でタグノード、字句ノードを巡回し、その際得られるタグノードのタグの種類を文字列として連結した「ｈｔｍｌｈｅａｄｂｏｄｙｄｉｖｈ２・・・・」などの文字列でもよいし、これのハッシュ値を算出した結果でもよい。本実施例では、ハッシュ値を算出した結果を示す。なお、概略画面特徴値を算出する際、字句ノードについては字句ノードが存在することを算出に用い、字句ノードに含まれる文字列そのものは値算出の対象としない。特徴値３２０２は、画面表示ツリー３２００の概略画面特徴値の例である。
【００２９】
以上の処理を終えた場合、画面構造抽出プログラム１２１は、画面表示ツリーへのアクセスキーおよび画面表示ツリーの概略画面特徴値を画面構造バリエーション管理情報記録部１６１に書き込む。また、画面表示ツリーを画面構造ツリー記録部１６２に書き込み制御を画面変数部解析プログラム１２２に移す。
【００３０】
図１３から図１５は、本実施例の説明で用いる各画面Ａ表示コードの解析結果例である。表示ツリーの作成方法や各図の表記は図１２と同様であり、詳細は割愛する。各要素については、後述する画面構造抽出プログラム１２１や画面構造抽出プログラム１２１の動作説明の中で必要に応じて述べる。
【００３１】
図１３は、各画面Ａ表示コード（２）３３０の画面表示ツリー３３００の一例である。画面表示ツリー３３００は、画面構造抽出プログラム１２１による画面Ａ表示コード（２）３３０の解析結果である。表３３５０は、画面表示ツリー３２００の字句ノードの値を一覧表示したものである。
【００３２】
図１４は、各画面Ａ表示コード（３）３４０の画面表示ツリー３４００の一例である。画面表示ツリー３４００は、画面構造抽出プログラム１２１による画面Ａ表示コード（３）３４００の解析結果である。表３４５０は、画面表示ツリー３４００の字句ノードの値を一覧表示したものである。
【００３３】
図１５は、各画面Ａ表示コード（４）３５０の画面表示ツリー３５００の一例である。画面表示ツリー３５００は、画面構造抽出プログラム１２１による画面Ａ表示コード（４）３５００の解析結果である。表３５５０は、画面表示ツリー３５００の字句ノードの値を一覧表示したものである。
【００３４】
図１６は、画面構造バリエーション管理情報記録部１６１に格納される画面構造バリエーション管理テーブルの例である。画面構造バリエーション管理テーブル１６１０は、画面種別ＩＤ１６１１、画面種別名１６１２、画面表示コード１６１３、画面表示ツリーＩＤ１６１４、概略画面特徴値１６１５、画面構造ツリーＩＤ１６１６、繰返構造集約ツリーＩＤ１６１７、構造集約ツリー特徴値１６１８、画面バリエーションＩＤ１６１９を記録するカラムを有するテーブルである。画面種別ＩＤ１６１１、画面種別名１６１２、画面表示コード１６１３には、画面構造抽出プログラム１２１により解析された画面表示コードの画面種別ＩＤ１５１１、画面種別名１５１２、画面表示コード１５１３が書き込まれ、画面表示ツリーＩＤ１６１４には画面構造抽出プログラム１２１によって構築された画面表示ツリーへのアクセスキーが書き込まれ、概略画面特徴値１６１５には画面構造抽出プログラム１２１によって算出された概略画面特徴値が書き込まれる。
【００３５】
図１１に戻り、画面変数部解析プログラム１２２は、画面構造抽出プログラム１２１によって解析され画面構造バリエーション管理情報記録部１６１に書き込まれた画面構造管理テーブルの情報、および画面構造ツリー記録部１６２に書き込まれた画面表示ツリーに基づき、各画面表示コードの変数部分を抽出する。
【００３６】
まず、画面変数部解析プログラム１２２は、画面構造バリエーション管理テーブル１６１０の概略画面特徴値１６１５をキーとして、画面表示ツリーをグルーピングする。例えば、レコード１６２１が示す画面Ａ表示コード（１）３２０（画面表示コードＩＤＣＲＰ＿１００１）と、レコード１６２３が示す画面Ａ表示コード（３）３４０（画面表示コードＩＤＣＲＰ＿１００３）が示す概略画面特徴値１６１５は「ｂｄＸ１Ｑ３３４１」で同値であるため、同一グループとして処理する。レコード１６２２が示す画面Ａ表示コード（２）３３０（画面表示コードＩＤＣＲＰ＿１００２）およびレコード１６２４が示す画面Ａ表示コード（４）３５０（画面表示コードＩＤＣＲＰ＿１００４）は異なる概略画面特徴値を持つため、それぞれ別グループとして処理する。以降、画面Ａ表示コード（１）３２０および画面Ａ表示コード（３）３４０が属する概略画面特徴値「ｂｄＸ１Ｑ３３４１」のグループを例として、画面変数部解析プログラム１２２の動作を説明する。
【００３７】
画面変数部解析プログラム１２２は、画面構造バリエーション管理テーブル１６１０より概略画面特徴値「ｂｄＸ１Ｑ３３４１」の値を持つグループについて、画面表示ツリーＩＤ１６１３をキーとして画面表示ツリーを画面遷移情報記録部１５２より取得する。実際には多数の画面表示ツリーが取得されるが、本実施例の中では簡単のため画面Ａ表示コード（１）３２０の画面表示ツリー３２００および画面Ａ表示コード（４）３５０の画面表示ツリー３５００の２つを代表例として以降の説明に用いる。
【００３８】
前述の通り、概略画面特徴値が同一の画面表示ツリーは同一の構造を持つ。すなわち、各画面表示コードの際は、字句ノード部分に現れる。また、同一の画面種類の中で同一の構造であることから、番号の同じ字句ノードに含まれる文字列は同種の値を示すものと考えられる。画面構造抽出プログラム１２１は、取得した各画面表示ツリーについて、同じ番号を持つ字句ノードの値を集約する。そして、集約された文字列群について、字句の差分を算出し、集約されたすべての文字列に共通する固定文字列部分と、集約されたすべての文字列の中で変化があった変数文字列部分とを分解する。
【００３９】
図１７は、文字列の固定文字列部分および変数文字列部分の分析の説明図の例である。
【００４０】
矩形４１００には、概略画面特徴値「ｂｄＸ１Ｑ３３４１」における番号１の文字列群の分析のイメージを示している。表４１１０は、概略画面特徴値「ｂｄＸ１Ｑ３３４１」グループの各画面表示ツリーの番号１の文字列群を集約した結果の例である。レコード４１１１は、画面表示ツリー３２００における番号１の文字列の値である（図１２レコード３２６１参照）。レコード４１１２は、画面表示ツリー３４００における番号１の文字列の値である（図１４レコード３４６１参照）。本実施例において、表４１１０に「お客様情報」という文字列が集約されたため、結果として固定文字列部分４１１５「お客様情報」のみが得られ、変数文字列部分はないことが得られる。結果、概略画面特徴値「ｂｄＸ１Ｑ３３４１」グループの各画面表示ツリーの番号１は固定文字列部分４１１５「お客様情報」のみから構成されることが得られる。
【００４１】
矩形４２００には、概略画面特徴値「ｂｄＸ１Ｑ３３４１」における番号２の文字列群の分析のイメージを示している。表４２１０は、概略画面特徴値「ｂｄＸ１Ｑ３３４１」グループの各画面表示ツリーの番号２の文字列群を集約した結果の例である。レコード４２１１は、画面表示ツリー３２００における番号２の文字列の値である（図１２レコード３２６２参照）。レコード４２１２は、画面表示ツリー３４００における番号２の文字列の値である（図１４レコード３４６２参照）。本実施例においては表４２１０に格納された文字列は、文字列開始から３字が「氏名：」という共通する文字列から開始する。そこで、当該部分を固定文字列部分４２１５「氏名：」として抽出する。後続の文字列については各画面では共通でないため変数文字列部分４２１６と抽出する。結果、概略画面特徴値「ｂｄＸ１Ｑ３３４１」グループの各画面表示ツリーの番号２は固定文字列部分４２１５「氏名：」とその文字列に後続し変数文字列部分４２１６から構成されることが得られる。
【００４２】
次に、画面変数部解析プログラム１２２は、前述の処理で得られた文字列ノードに含まれる文字列の固定文字列部分および変数文字列部分の分析結果をもとに、画面表示における変数部分を明らかにした画面構造ツリーを構築する。具体的には、各番号の文字列タグを分析の結果得られた固定文字列部分をノードとする固定文字列ノードと、変数文字列部分をノードとする変数文字列ノードに置換した新たなツリー、すなわち画面構造ツリーを構築する。置換された、固定文字列ノードと変数文字列ノードには、新たに画面構造ツリー内で一意となるよう一定のルールでそれぞれ識別番号を振る。
【００４３】
図１８は、画面構造ツリーの一例の説明図である。図に示した画面構造ツリー５１００は、前述の概略画面特徴値「ｂｄＸ１Ｑ３３４１」を持つ画面表示ツリーを画面変数部解析プログラム１２２が分析し、その結果に基づき、文字列ノードを固定文字列ノードと変数文字列ノードに置換した結果である。画面構造ツリーの終端ノードにおいて、矩形で示したノードが固定文字列ノードであり、角丸の矩形で示したノードが変数文字列ノードである。固定文字列ノード５１１０および変数文字列ノード５１１１は、概略画面特徴値「ｂｄＸ１Ｑ３３４１」を持つ画面表示ツリーの番号２の文字列ノード（例えば画面表示ツリー３２００の文字列ノード３２２１）を、分析の結果得られた固定文字列部分４２１５を示すノードと変数文字列部分４２１６を示すノードにそれぞれ置き換えたものである。表５１５０は、画面構造ツリー５１００の固定文字列に含まれる固定文字列の値である。
【００４４】
図１９から図２１では、上記で詳しく述べなかった概略画面特徴値「ａ２ＶＩ３ｆａｋｄ」および、概略画面特徴値「３Ｉｋａｄｊ８ａｇ」（図１６参照）を持つグループの分析結果から得られた画面構造ツリーの例を示す。構築方法及び図の表記方法については図１８と同様であるため詳細は割愛する。
【００４５】
図１９は、画面構造ツリー５２００の説明図の一例である。画面構造ツリー５２００は、概略画面特徴値「ａ２ＶＩ３ｆａｋｄ」を持つ画面表示ツリーを画面変数部解析プログラム１２２が分析して得られた結果である。
図２０は、画面構造ツリー５２００の固定文字列ノードに含まれる値の一覧である。
【００４６】
図２１は、画面構造ツリー５３００の説明図の一例である。画面構造ツリー５３００は、概略画面特徴値「３Ｉｋａｄｊ８ａｇ」を持つ画面表示ツリーを画面変数部解析プログラム１２２が分析して得られた結果である。表５３５０は、画面構造ツリー５３００の固定文字列ノードに含まれる値の一覧である。
【００４７】
以上のように、画面変数部解析プログラム１２２は各概略画面特徴値の画面構造ツリーを構築したのち、各画面構造ツリーに対してアクセスできるＩＤ（例えば５１０１：図１８参照）を付与し、画面構造バリエーション管理情報記録部１６１に画面構造ツリーＩＤを、画面構造ツリー記録部１６２に得られた画面構造ツリー群を各々書き込む。以上が画面変数部解析プログラム１２２の動作である。
【００４８】
図２２は、画面構造ツリーＩＤが書き込まれた画面構造バリエーション管理情報記録部のテーブルの例である。画面構造バリエーションテーブルの例１６１０ａは、上記の処理の結果得られた画面構造ツリーＩＤをテーブル内の画面構造ツリーＩＤカラム１６１６に書き込んだ結果である。
【００４９】
図１１に戻り、画面バリエーション解析プログラム１２３は、画面変数部解析プログラム１２２により画面構造ツリー記録部１６２に書き込まれた画面構造ツリー群を取得し、各画面種類の画面バリエーションを解析する。より具体的には、画面バリエーション解析プログラム１２３は、画面構造ツリーを分析し、構造の繰り返し部を発見し、一つの繰り返し部分として構造上集約することで、精度の高い画面バリエーションを抽出する。例えば、画面表示ツリー３３００と画面表示ツリー３５００とは、保持するノードの個数が異なるため、異なる概略画面特徴量が算出され、別種の画面構造ツリーとして画面構造ツリー記録部１６２に書き込まれている。しかしながら、画面Ａ表示コード（２）３３０（図４参照）および画面Ａ表示コード（２）３５０（図６参照）で示した通り、表形式で表示されている部分のレコード数が異なっているだけで、表している情報としては同じものであり、このレコード数が異なるごとに別種のバリエーションとすると、結果を受ける開発者にとっては多くのノイズを含むことになる。そこで、繰り返し部分の発見、集約により、結果として得られる画面バリエーションの精度を高める。
【００５０】
画面バリエーション解析プログラム１２３は、まず各画面構造ツリーに存在する各タグノードに対して、自身を含む下位の部分木に対し、同一の構造であれば同一の値を持つような特徴値を算出する。これを以降では部分木構造特徴値と呼称する。特徴値の算出に用いられるデータは、部分木に含まれるタグノードの情報と位置、部分木に含まれる固定文字列ノードの文字列情報と位置、部分木に含まれる変数文字列の位置である。変数文字列については、変数内に実際に入る値は可変であるため、部分木構造特徴値の算出には位置を用いる。ここで、変数文字列については、内容について考慮せず、また、位置のみを用いて上記の算出を行ってもよい。
【００５１】
図２３は、部分木構造特徴値算出の説明図の一例である。タグノード５２３０は、画面構造ツリー５２００内のタグノード５２３０と同じものであり（図１９参照）本図は、タグノード５２３０以下の部分木を示す図である。各タグノードには説明の便宜上Ｉｄを付与した。表６２００は、各タグノードから始まる部分木について、巡回して得られた情報を文字列化した情報の一覧である。本例において文字列内で記号「＜」および「＞」で括られている文字列はタグノードの情報、記号「”」および「”」で括られている文字列は固定文字列ノードの情報、文字列「［ｖａｒ］」で示されているのは変数文字列ノードの出現位置である。例えば、ｉｄが１７のレコードは、「ｔｄ」タグノード配下に変数文字列ノード、文字列の値が「／」の固定文字列ノード、変数文字列ノードの順で存在していることを示す。このようにして、各部分木に対して部分木巡回文字列を計算していく。この部分木巡回文字列を部分木構造特徴値として用いても構わないが、画面構造ツリーの根に近い部分木では文字長が長くなりすぎるため、本実施例ではこの文字列のハッシュを計算するなどし、同一の文字列をグルーピング容易な値を付与する。表６２１０は、以上の処理により算出された部分木構造特徴値の一覧の例である。説明のため可読性が高い値を便宜上記述している。
【００５２】
次に、画面バリエーション解析プログラム１２３は、得られた部分木構造特徴値に基づき、各画面構造ツリー内に含まれる繰り返し構造を発見、集約していく。画面バリエーション解析プログラム１２３は、分析対象としている画面構造ツリーの根ノードより順に巡回し、現在のタグノードの子ノードを始点とする部分木の部分木構造特徴値をそれぞれ取得する。取得した部分木構造特徴値が同一の部分木があれば、当該部分木構造の繰り返しと判断し、構造が共通する部分木を１つに集約する。集約したのち、集約結果の部分木の始点タグノードに繰り返しを示すフラグを付与する。以上の処理を終え、画面構造ツリー内の繰り返し構造が集約された繰り返し構造集約ツリー対にし、一意にアクセス可能な繰り返す構造集約ツリーＩＤを付与する。
【００５３】
以下、図２３の部分木構造特徴値が得られた部分木を例として説明する。画面バリエーション解析プログラム１２３は、巡回においてタグノード５２３０に到達した際、タグノード５２３０の子ノードの部分木構造特徴値を参照する。タグノード５２３０の第１の子ノードであるｉｄに１３が割り当てられたタグノードの部分木構造特徴値はＳＵＢＨＡＳＨ＿１３である。タグノード５２３０の第２の子ノードであるｉｄに１６が割り当てられたタグノードの部分木構造特徴値はＳＵＢＨＡＳＨ＿１６である。これら２つのノードは部分木構造特徴値が異なるため、異なる構造を持つと判断する。タグノード５２３０の第３の子ノードであるｉｄに１９が割り当てられたタグノードの部分木構造特徴値はＳＵＢＨＡＳＨ＿１３である。この時、ｉｄに１６が与えられたタグノードと、ｉｄに１９が与えられたタグノードは同一の部分木構造特徴値を持つ。そこで、画面バリエーション解析プログラム１２３は、これら二つのタグノードから始まる部分木を集約可能と判断し、集約する。省略されているが、タグノード５２３０の第４の子ノードであるｉｄに２２が割り当てられたタグノードの部分木構造特徴値も、ｉｄ「１３」およびｉｄ「１９」のタグノードと同じ部分木構造特徴値を持つため、集約する。
【００５４】
図２４は、集約構造ツリーの一例である。上記の処理により、画面構造ツリー５２００の部分木の繰り返し構造が集約された結果である。タグノード７０３０が、図２３におけるタグノード５２３０に相当する。タグノード５２３０の右部分木が集約結果として得られた繰り返し部であり、吹き出し図７０４０に示したように部分木の始点タグノード７０３１は、繰り返しであるフラグがオンになっている。構造集約ツリー７０００を構築後、構造集約ツリー７０００に一意にアクセスできる構造集約ＩＤ７００１を付与する。
【００５５】
図２５は、画面構造ツリー５１００より得られる構造集約ツリーの説明図である。画面構造ツリー５１００には繰り返し構造がないため、構造集約ツリー７１００は画面構造ツリー５１００と同形である。
【００５６】
図２６は画面構造ツリー５３００より得られる構造集約ツリーの説明図である。画面構造ツリー５３００には繰り返し構造がないため、構造集約ツリー７２００は画面構造ツリー５３００と同形である。
【００５７】
以上のように各画面構造ツリーを集約した構造集約ツリーを構築したのち、画面バリエーション解析プログラム１２３は、画面構造バリエーション管理情報記録部１６１のテーブルに集約前の画面構造ツリーＩＤに対応するレコードに得られた繰り返し構造集約ツリーＩＤを書き込み、構造集約ツリーを画面構造ツリー記録部１６２に書き込む。
【００５８】
図２７は、構造集約ツリーＩＤ書き込みが書き込まれた画面構造バリエーション管理テーブルの例である。
【００５９】
次に、画面バリエーション解析プログラム１２３は、得られた構造集約ツリーの各々に対しての概略構造特徴値を算出する。概略構造特徴値は、構造集約ツリーに含まれるタグノードの情報およびその位置、固定文字列ノードの情報およびその位置、変数文字列ノードの位置により算出される、構造を一意に特定できる値である。なお、概略構造特徴値算出に当たっては、繰り返しを示すフラグは含めずに計算する。これは同じ情報を集約するためであり、例えば可変長の表において１レコードしかない表であっても、複数のレコードが存在する表と同様に扱い集約するためである。概略構造特徴値の具体的な算出方法については、前述の概略画面特徴値および部分木特徴値と同様であるため割愛する。
【００６０】
図２８は、概略構造特徴値の値が書き込まれた画面構造バリエーション管理テーブルの例である。
【００６１】
次に、画面バリエーション解析プログラム１２３は、画面構造バリエーション管理情報記録部１６１に書き込まれた画面構造バリエーション管理テーブル１６１０ｃの概略構造特徴値１６１８に基づき、同一の構造集約特徴値を持つ繰返構造集約ツリーを繰返構造集約ツリーＩＤ１６１７をキーに画面構造ツリー記録部１６２より取得する。取得された繰返構造集約ツリー群に対し、画面バリエーション解析プログラム１２３は繰り返しフラグが付与されたタグノードを検索し、得られた繰返構造集約ツリー群において、一つでも繰り返しフラグが付与されたタグノードについて繰り返しフラグを改めて付与したツリーを構築する。これを画面バリエーションツリーと呼ぶ。
【００６２】
例えば、図２４の繰り返し構造集約ツリー７０００（構造集約ツリーＩＤ：ＳＭＴＲ＿１００＿０００２）と、図２６の繰り返し構造集約ツリー７２００（構造集約ツリーＩＤ：ＳＭＴＲ＿１００＿０００３）は同じ構造集約特徴値「ＶＷＸＹＺ１２３」を持つ。これらツリーにおいて、繰り返しフラグがオンになっているタグノードを抽出する。すると、構造集約ツリー７０００のタグノード７０３１は繰り返しフラグがオンになっている。構造集約ツリー７２００では、構造上の同位置にあるタグノード７２３１の繰り返しフラグはオフであるが、構造集約ツリー群の中で１つでも繰り返しフラグがオンであるタグノードが存在することが条件であるため、当該位置の繰り返しフラグをオンにした、画面バリエーションツリーを構築する。
【００６３】
図２９は、同様に他のタグノードを分析して得られた結果の例である。また、図３０は、同様に構造集約特徴値「ＡＢＣＤＥＦ」を持つ繰り返し構造集約ツリーを分析して得られた結果の例である。
【００６４】
画面バリエーション解析プログラム１２３は、こうして得られた画面バリエーションツリーに一意にアクセスでききる画面バリエーションＩＤを付与し、付与した画面バリエーションＩＤを画面構造バリエーション管理情報記録部１６１内のテーブルの画面バリエーションＩＤ１６１９に書き込み、画面バリエーションツリーを画面構造ツリー記録部１６２に書き込む。
【００６５】
図３１は、テーブルの画面バリエーションＩＤ１６１９が書き込まれた画面バリエーション管理テーブルの例である。
【００６６】
以上が画面バリエーション解析プログラム１２３の動作である。画面バリエーション解析プログラム１２３により，各画面種別のバリエーションが画面ログより明らかにされることにより，ユーザは既存画面仕様における画面の分岐について網羅的に把握することができる。
【００６７】
図１１に戻り、画面変数抽出プログラム１２４は、画面構造抽出プログラム１２１、画面変数部解析プログラム１２２および画面バリエーション解析プログラム１２３により解析され、画面構造バリエーション管理情報記録部１６１、画面構造ツリー記録部１６２に格納された画面表示ツリーおよび画面バリエーションツリーに基づき、各画面表示コードに含まれている変数情報を抽出する。これら変数情報は、図２を例とするならば、前画面入力データ３１０もしくは、データベースからのデータ３１１を入力源として画面Ａ原始プログラム３０１により各画面Ａ表示コードへと埋め込まれたものである。
【００６８】
より具体的には、画面変数抽出プログラム１２４は、画面構造バリエーション管理情報記録部１６１に格納される画面構造バリエーション管理テーブル１６１０ｄ（図３１参照）の各レコードについて、画面表示ツリーＩＤ１６１４および画面バリエーションＩＤ１６１９に基づき画面構造ツリー記録部１６２より画面表示ツリーと画面バリエーションツリーを取得する。画面変数抽出プログラム１２４は、双方のツリー構造に基づき、画面表示ツリーの文字列ノードに対して、画面バリエーションツリーの固定文字列ノードおよび変数文字列ノード情報をマッチングすることで、変数文字列ノード部に含まれる具体的な文字列を、画面表示ツリーの字句ノードより取得する。
【００６９】
以下、図３１の画面構造バリエーション管理テーブル１６１０ｄのレコード１６２１を例として説明する。画面バリエーション解析プログラム１２３は、レコード１６２１の画面表示コードＩＤ１６１３「ＣＲＯ＿１００１」および、画面バリエーションＩＤ１６１９「ＶＡＲＴＲ＿１００＿００１」に基づき、画面構造ツリー記録部１６２よりそれぞれ画面表示ツリー３２００（図１２）と画面バリエーションツリー８１００を取得する。そして画面表示ツリーの文字列ノードに対応する、画面バリエーションツリーの固定文字列ノード、変数文字列ノード情報を用い、変数抽出処理を実施する。例えば画面表示ツリー３２００の文字列ノード３２２０に対応する画面バリエーションツリーの要素は、固定文字列ノード８１１１である。よって変数抽出処理を省略できる。画面表示ツリー３２００の文字列ノード３２２１に対応する画面バリエーションツリーの要素は、固定文字列ノード８１１２および変数文字列ノード８１１３である。変数文字列ノードを含むため、変数処理を実施する。文字列ノード３２２１の文字列は「氏名：日立太郎」であり、固定文字列ノード８１１２の文字列は「氏名：」である。よって、これが取り除かれた「日立太郎」が画面表示ツリー３２００の当該位置の変数文字列ノードに含まれる変数値である。
【００７０】
また、これまで述べてきたように同一の画面種類であっても画面バリエーションが生じているため、単純に出現した順序で変数をまとめることはできない。画面バリエーション解析プログラム１２３は、画面バリエーションツリーに付与されている部分木特徴値に基づき、同じ値を持つ部分木に所属している変数文字列ノードを同一のものと判断し、抽出した変数を画面種別単位でまとめた後、画面変数記録部１６３に書き込む。
【００７１】
図３２は、画面変数抽出プログラム１２４により抽出され画面変数記録部１６３に書き込まれた、画面変数執着情報の一例である。テーブル１６２０は少なくとも、画面ＩＤ１６２１、画面表示ＩＤ１６２２および画面上に現れた変数の種類の個数分の変数格納部から構成される。
【００７２】
以上が、画面変数抽出プログラム１２４の処理である。これまでに述べた画面変数抽出プログラム１２４および前段となる画面構造抽出プログラム１２１，画面変数部解析プログラム１２２，画面バリエーション解析プログラム１２３の処理によって画面変数抽出を抽出可能とすることで，画面ログから取得されるデータより変数の統計解析などを容易とし，既存システム仕様把握の容易化，効率化が期待できる。
【００７３】
図１に戻り、画面バリエーション因子分析プログラム１３０は、既存画面ログ格納プログラム１１０により既存システム画面ログ記録部１５０に格納された画面遷移情報、画面バリエーション差分抽出プログラム１２０により抽出され画面バリエーション情報記録部１６０に格納された画面バリエーション情報、同じく画面変数情報に基づき、画面のバリエーションを決定する変数およびその変数値を互いの依存関係分析により算出する。
【００７４】
画面バリエーション因子分析プログラム１３０は、画面バリエーション情報記録部の画面種類を示す画面種別ＩＤ１６１１毎に分析を進める。画面バリエーション情報記録部の各レコードについて、画面表示コードＩＤ１６１３と画面バリエーションＩＤを取得する。次に、画面表示コードＩＤ１６１３に基づき、画面変数記録部１６３を検索し、当該画面表示コードＩＤに該当する画面変数群を取得する。次に、画面変数群の各画面変数に対し、値を取得し、画面表示コードＩＤと、画面変数の値と、先に取得した画面バリエーションＩＤとから成るレコードすなわちバリエーション-変数間関連情報を構成し、画面バリエーション因子分析結果記録部１７０に書き込む。また、取得した画面表示コードＩＤに基づき、画面遷移情報記録部１５２を検索し、当該表示コードＩＤの前画面となる画面表示コードＩＤ（前画面表示コードＩＤ）を取得する。得られた前画面表示コードＩＤに基づき、画面変数記録部１６３を検索し、画面表示コードＩＤに該当する画面変数群を取得する。以降、前述と同様にして表示画面コードＩＤ（前画面表示コードではない）、画面変数の値、画面バリエーションＩＤからバリエーション-変数間関連情報を構成し画面バリエーション因子分析結果記録部１７０に記録する。
【００７５】
図３３は、バリエーション-変数間関連情報の例である。表１７１０は、画面種別ＩＤ「ＳＣ１００」の画面表示コードＩＤ１７１１ごとの変数ｖａｒ１  １７１２の変数値と画面バリエーションＩＤ１７１３の関係を示している。同様に表１７２０は、画面種別ＩＤ「ＳＣ１００」の画面表示コードＩＤ１７２１ごとの変数ｖａｒ２  １７２２の変数値と画面バリエーションＩＤ１７２３の関係を示している。また、表１７３０は、画面種別ＩＤ「ＳＣ１００」の画面表示コードＩＤ１７３１ごとの変数ｖａｒ３  １７３２の変数値と画面バリエーションＩＤ１７３３の関係を示している。
【００７６】
次に画面バリエーション因子分析プログラム１３０は、得られた各バリエーション-変数間関連情報に対して因果関係分析と頻度分析を実施する。因果関係分析とは、バリエーション-変数間関連情報を分析、集約し変数の値に対して取りうる画面バリエーションが何であるかを集計することである。頻度分析とは、その画面種別において各変数の値の出現する割合の算出のことである。
【００７７】
図３４は、バリエーション-変数間関連情報の因果関係分析および頻度分析の結果の例である。バリエーション-変数間関連情報の例である。表１７４０は、表１７１０の分析結果であり、変数ｖａｒ１  １７４１の変数値毎の頻度１７４２、および各変数値の取りうる画面バリエーションＩＤ１７４３を示している。表１７５０は、表１７２０の分析結果であり、変数ｖａｒ２  １７５１の変数値毎の頻度１７５２、および各変数値の取りうる画面バリエーションＩＤ１７５３を示している。表１７６０は、表１７３０の分析結果であり、変数ｖａｒ１  １７６１の変数値毎の頻度１７６２、および各変数値の取りうる画面バリエーションＩＤ１７６３を示している。
【００７８】
次に画面バリエーション因子分析プログラム１３０は、バリエーション-変数間関連情報の因果関係分析および頻度分析の結果に基づき、画面バリエーションの発生要因となる因子を分析する。まず、画面バリエーション因子分析プログラム１３０は、各変数値に対する取りうる画面バリエーションＩＤを分析する。１つの変数値に対し、取りうる画面バリエーションが複数存在するレコードが１件でもあれば、その画面変数を画面バリエーションの発生要因からは除外する。その１値だけではバリエーションが決定されないためである。次に、画面バリエーション因子分析プログラム１３０は各変数値の頻度を分析する。頻度が一定の閾値を超える変数値が一つもない場合は、その画面変数は画面バリエーションの発生要因からは除外する。これは、出現頻度が限りなく０に近ければ、ある変数値は１つのバリエーションしか取りえないためである。本実施例では画面表示コードが十分得られたとして、１％を閾値に以降説明を進めるが、得られた画面表示コードの総数、画面バリエーションＩＤの数、変数値の種類によって適切な値は変動するため、必ずしもこの値に限定するものではない。
【００７９】
図３４に戻り、表１７５０に示される例は、取りうる画面バリエーションＩＤ１７５３が、１つの変数値、例えば「東京都千代田区」に対し２つあるため、画面バリエーション因子分析プログラム１３０は画面バリエーションの発生要因とならないと判断する。表１７４９に示される例は、各変数値に取りうる画面バリエーションＩＤ１７４３が１つであるが、変数値の頻度が１％に満ちていないため、画面バリエーション因子分析プログラム１３０は、は画面バリエーションの発生要因とならないと判断する。表１７６０に示される例は、いずれの条件もクリアしているため、画面バリエーション因子分析プログラム１３０は、これを画面バリエーションの発生要因と判断する。
【００８０】
画面バリエーション因子分析プログラム１３０は、以上で得られた結果を画面バリエーション因子分析結果記録部１７０に書き込む。
【００８１】
図３５は、画面バリエーション因子分析結果記録部１７０の画面バリエーション分析結果テーブルの一例である。画面バリエーション分析結果テーブル１７００は、画面種別ＩＤ１７０１と、変数所属画面種別ＩＤ１７０２と、因子変数候補１７０３と、変数値１７０４と、取りうる画面バリエーションＩＤ１７０５とを有する。
【００８２】
以上が、画面バリエーション因子分析プログラム１３０の処理である。画面バリエーション因子分析プログラム１３０の処理によって画面バリエーションの要因となる変数および変数の具体的な値が自動的に明らかとなり，既存システムのロジック仕様把握の効率化が期待できる。
【００８３】
図２に戻り、抽出画面仕様出力プログラム１４０は、画面バリエーション情報記録部１６０および画面バリエーション因子分析結果記録部１７０に基づき、利用者に画面バリエーション情報を出力装置１０７を通じて提示する。以下、結果の提示については抽出画面仕様出力プログラム１４０の動作として説明する。
【００８４】
画面バリエーション情報記録部１６０は、利用者からの要求に応じ既存システム画面仕様抽出装置１００への分析対象のシステムの画面種別について、画面バリエーションを持つ画面種別を一覧として提示する。この提示は、画面構造バリエーション管理情報記録部１６１のテーブルの情報に基づく。
【００８５】
図３６は、抽出画面仕様出力プログラム１４０によって提示される画面バリエーション分析結果一覧の表示の例である。画面９０００は、利用者に対し画面バリエーションの一覧を提示する例であり、本画面は少なくとも、画面種別名９００２、画面バリエーション数９００３とを有する。また、画面バリエーションを持つ画面種別への通番９００１および、各画面種別毎に画面バリエーションを表示するための詳細リンク９００４を有する。レコード９００５に示した情報は、本実施例でこれまで分析を進めてきた具体例に基づくものであり、例えば、画面構造バリエーション管理情報記録部１６１に格納された画面構造バリエーションテーブル１６１０ｄ（図３１）の画面種別ＩＤ１６１１「ＳＣ１００」について、画面種別名１６１２「返済計画確認画面」が画面種別名９００２に、画面バリエーションＩＤ１６１９の取りうる値を集計した「２」という値が画面バリエーション数９００３に表示されている。
【００８６】
また、画面バリエーション情報記録部１６０は、利用者からの要求に応じ既存システム画面仕様抽出装置１００への分析対象のシステムのある画面種別について、画面バリエーションの詳細を示す。この提示は、画面バリエーション情報記録部１６０に格納されている情報に基づく。また、画面表示コード記録部１５１の情報も場合によって参照する。
【００８７】
図３７は、抽出画面仕様出力プログラム１４０によって提示される画面バリエーション詳細情報の表示の例である。画面９１００は、利用者に対しある画面種別の画面バリエーションを提示する例であり、本実施例で説明に用いてきた画面種別ＩＤ「ＳＣ１００」による表示例である。画面９１００は、画面種別ＩＤ「ＳＣ１００」の画面バリエーションについて、例えば画面バリエーション管理テーブル１６１０ｄよりパターンとして表示する画面バリエーションＩＤ１６１９を持つ画面表示コードＩＤ１６１３をランダムに１つ選択し、選択された画面表示コードＩＤに基づき、画面表示コード記録部１５１から具体の画面表示コードを取得する。取得された画面表示コードを実際に表示のと同様レンダリングし、画面の表示サンプルとして利用者に示す。
【００８８】
図３８は、抽出画面仕様出力プログラム１４０によって提示される画面バリエーション詳細情報の第２の表示例である。画面９１１０は、図３７と同様の方法にて取得した各画面バリエーションのサンプルとなる画面表示コードを、そのまま文字列として利用者に示す形態である。
【００８９】
図３９は、抽出画面仕様出力プログラム１４０によって提示される画面バリエーション詳細情報の第３の表示例である。画面９１００は、画面種別ＩＤ「ＳＣ１００」の画面バリエーションについて、例えば画面バリエーション管理テーブル１６１０ｄよりパターンとして表示する画面バリエーションＩＤ１６１９に対応する画面バリエーションツリーを画面構造ツリー記録部１６２より読み出し、ツリー形状がわかるよう利用者に図示する形態である。
【００９０】
また、抽出画面仕様出力プログラム１４０は、利用者からの要求に応じ既存システム画面仕様抽出装置１００の分析対象のシステムのある画面種別について、画面バリエーションの要因となる変数とその変数値の候補を示す。この提示は、画面構造バリエーション管理情報記録部１６１および画面変数記録部１６３に格納される情報に基づく。
【００９１】
図４０は、抽出画面仕様出力プログラム１４０によって提示される画面バリエーションの因子情報の表示例である。画面９２００は、利用者に対してある画面種別の画面バリエーションの因子変数を示す例であり、本実施例で説明に用いてきた画面種別ＩＤ「ＳＣ１００」による表示例である。画面９２００は、少なくとも画面バリエーションの因子となる画面および画面内の変数情報９２０１と、当該画面変数値の例およびその変数値の際に表示される画面バリエーションパターンとを有する。当該画面変数値の例およびその変数値の際に表示される画面バリエーションパターンの表示例は符号９２０２および符号９２０３に示す。また、これらの情報に加え、具体的な画面表示例を想起させる画面バリエーションサンプルを表示してもよい。例を符９２０３、符号９２０４に示す。
【００９２】
以上で説明したような構成を有する既存システム画面仕様抽出装置１００が処理を実施する際の処理手順について説明する。
【００９３】
図４１は、本装置１００を用いた既存システム画面仕様の抽出の手順の全体を示すフローチャートである。
【００９４】
ステップＳ１００では、既存画面ログ格納プログラム１１０が、本装置１００利用者により入力された画面ログ情報、すなわち画面表示コード情報および画面遷移情報を既存システム画面ログ記録部１５０に格納する。（ステップＳ１００）
ステップＳ２００では、画面バリエーション差分抽出プログラム１２０が、既存システム画面ログ記録部１５０に格納された画面ログ情報を読み出し、画面ログ情報から画面バリエーション情報および画面変数情報を抽出し画面バリエーション情報記録部１６０に書き込む。詳細な処理は後述する。
【００９５】
ステップＳ３００では、画面バリエーション因子分析プログラム１３０が既存システム画面ログ記録部１５０に書き込まれた画面遷移情報および画面バリエーション情報記録部１６０に書き込まれた画面構造バリエーション情報および画面変数情報を読み出し、画面バリエーションの因子となっている画面変数並びにその値を分析し、得られた画面バリエーション因子分析結果を画面バリエーション因子分析結果記録部１７０に書き込む。詳細な処理は後述する。
【００９６】
ステップＳ４００では、抽出画面仕様出力プログラム１４０が、画面バリエーション情報記録部１６０に書き込まれた画面バリエーション情報および画面バリエーション因子分析結果記録部１７０に書き込まれた画面バリエーション因子分析結に基づき、抽出した既存システム画面仕様を本装置１００利用者に提示する。詳細な処理は後述する。
【００９７】
次に、ステップＳ２００の処理を図４２のフローチャートに基づいて説明する。
【００９８】
図４２は、画面バリエーションを抽出する処理の手順を示すフローチャートである。
【００９９】
ステップＳ２１０では、画面構造抽出プログラム１２１が画面表示コード記録部１５１より画面表示コードを逐次取得し、各画面表示コードの構造を抽出する。
【０１００】
ステップＳ２１０の処理を図４３を、用いて詳細に説明する。
図４３は、画面構造抽出プログラム１２１の処理の詳細な手順を示すフローチャートである。
【０１０１】
まず、画面構造抽出プログラム１２１は、画面記述文法記録部１８０より分析対象とするシステムの画面を記述する文法を読み出し以降の処理に備える（ステップＳ２１０１）。
【０１０２】
画面構造抽出プログラム１２１は画面表示コード記録部１５１を検索し、未処理の画面表示コードが存在するか否かを判定する（ステップＳ２１０２）。もし、未処理の画面表示コードが存在すればステップＳ２１０３を実行し、未処理の画面表示コードが存在しなければ処理を終了する。以降では、未処理の画面表示コードが存在した場合を説明する。
【０１０３】
画面構造抽出プログラム１２１は未処理の画面表示コードを１件、画面表示コード記録部１５１より読み込む（ステップＳ２１０３）。
【０１０４】
画面構造抽出プログラム１２１は、読み込んだ画面表示コードに対し、ステップＳ２１０１で取得した画面を記述する文法に基づき、画面表示ツリーを構築する（ステップＳ２１０４）。
【０１０５】
画面構造抽出プログラム１２１は、構築した画面表示ツリーについて、各構造を一意に特定する概略画面特徴値を前述の方法で算出する（ステップＳ２１０５）。
【０１０６】
画面構造抽出プログラム１２１は、構築した画面表示ツリーを画面構造ツリー記録部１６２に、画面表示ツリーへアクセスするＩＤおよび算出した画面表示ツリーの概略画面特徴値を画面構造バリエーション管理情報記録部１６１に書き込む（ステップＳ２１０６）。この書き込み処理が終了したのち、画面構造抽出プログラム１２１は処理をステップＳ２１０２へ移す。
【０１０７】
図４２に戻り、ステップＳ２２０では、画面変数部解析プログラム１２２が画面バリエーション情報記録部１６０より画面表示ツリーを読み出し、各画面表示ツリーの画面上の変数部分を解析する処理し、画面バリエーション情報記録部１６０に書き込む。
【０１０８】
ステップＳ２２０の処理を、図４４を用いて詳細に説明する。
図４４は、画面変数部解析プログラム１２２の処理の詳細な手順を示すフローチャートである。
【０１０９】
まず、画面変数部解析プログラム１２２は、画面バリエーション情報記録部１６０よりステップＳ２１０５で算出した概略画面特徴値群を取得し、同一の概略画面特徴値を持つ画面表示ツリーをグループ化する（ステップＳ２２０１）。
【０１１０】
画面変数部解析プログラム１２２は、グループ化した概略画面特徴値の同値グループについて、未処理のグループが存在するか否かを判定する（ステップＳ２２０２）。もし、未処理の同値グループが存在すれば処理をステップＳ２２０３に移し、未処理の同値グループが存在しなければ処理を終了する。以降では、未処理の同値グループが存在した場合を説明する。
【０１１１】
画面変数部解析プログラム１２２は、未処理の概略画面特徴値を１つ選択し、当該概略画面特徴値を持つ画面表示ツリー群を画面バリエーション情報記録部１６０の画面構造ツリー記録部１６２より取得する（ステップＳ２２０３）。
【０１１２】
画面変数部解析プログラム１２２は、得られた画面表示ツリー群を各々探索し、ツリーの終端位置に存在する文字列すなわち文字列ノードを取得し、ツリー構造上の同位置にある文字列ノードを各々集約する（ステップＳ２２０４）。
【０１１３】
画面変数部解析プログラム１２２は、集約された各文字列ノード群について、未処理の文字列ノード群が存在するか否かを判定する（ステップＳ２２０５）。もし未処理の文字列ノード群が存在すれば処理をステップＳ２２０６に移し、存在しなければ処理をステップＳ２２０８に移す。以降ではまず、未処理の文字列ノード群が存在する場合を説明する。
【０１１４】
画面変数部解析プログラム１２２は、未処理の文字列ノード群を１つ選択し、文字列ノード群に含まれる各文字列の差分を取り、すべての文字列で共通する部分文字列すなわち固定文字列部と、文字列間で変化がみられる部分文字列すなわち変数文字列部を分析する（ステップＳ２２０６）。
【０１１５】
画面変数部解析プログラム１２２は、画面表示ツリーの各文字列ノードを、ステップＳ２２０７で得られた固定文字列部を表す固定文字列ノードおよび、変数文字列部を表す変数文字列ノードに置換した画面構造ツリーを構築する（ステップＳ２２０７）。
【０１１６】
ステップＳ２２０５で、未処理の文字列ノード群がない、すなわちすべての文字列ノードの処理を終えたと判定した後、画面変数部解析プログラム１２２は得られた画面構造ツリーを画面バリエーション情報記録部１６０の画面構造ツリー記録部１６２に、画面構造ツリーのアクセスに必要な情報を画面構造バリエーション管理情報記録部１６１にそれぞれ書き込む（ステップＳ２２０８）。書き込んだ後に、処理をステップＳ２２０２に移す。
【０１１７】
図４２に戻り、ステップＳ２３０では、画面バリエーション解析プログラム１２３が、画面バリエーション情報記録部１６０より画面構造ツリーを読み込み、これを分析して各画面種別ごとの画面バリエーション情報を抽出し画面バリエーション情報記録部１６０に書き込む。
【０１１８】
ステップＳ２３０の処理を、図４５を用いて詳細に説明する。
図４５は、画面バリエーション解析プログラム１２３の処理の詳細な手順を示すフローチャートである。
【０１１９】
まず、画面バリエーション解析プログラム１２３は、画面構造ツリー記録部１６２を検索し、未処理の画面構造ツリーが存在するか否かを判定する（ステップＳ２３０１）。もし、未処理の画面構造ツリーが存在すればステップＳ２３０２へ処理を移し、存在しなければステップＳ２３０８へ処理を移す。以降ではまず、未処理の画面構造ツリーが存在した場合を説明する。
【０１２０】
画面バリエーション解析プログラム１２３は、画面構造ツリー記録部１６２より未処理の画面構造ツリーを１つ選択し取得する（ステップＳ２３０２）。
【０１２１】
次に、画面バリエーション解析プログラム１２３は取得した画面構造ツリーの各部分木に対して、各部分木の構造が一意となる部分木構造特徴値を算出し、部分木の頂点ノードに付与する（ステップＳ２３０３）。
【０１２２】
画面バリエーション解析プログラム１２３は、算出し付与した部分木構造特徴値に基づき、同値の部分木構造特徴値が繰り返す部分を発見することで、画面構造ツリーの繰り返し構造部分を特定する（ステップＳ２３０４）。
【０１２３】
画面バリエーション解析プログラム１２３は、特定した繰り返し構造部分を、繰り返し属性を持つ１つの部分木として集約した構造集約ツリーを構築する（ステップＳ２３０５）。
【０１２４】
その後、画面バリエーション解析プログラム１２３は、得られた構造集約ツリーについて、繰り返し属性を除くツリー構造を一意に特定する概略構造特徴値を算出し、得られた構造ツリーに付与する（ステップＳ２３０６）。
【０１２５】
画面バリエーション解析プログラム１２３は、得られた構造集約ツリーを画面バリエーション情報記録部１６０の画面構造ツリー記録部１６２に、構造集約ツリーへのアクセスＩＤおよび概略構造特徴値を画面バリエーション情報記録部１６０にそれぞれ書き込む（ステップＳ２３０７）。
【０１２６】
ステップＳ２３０１で、未処理の画面構造ツリーが存在しない、すなわち必要なすべての画面構造ツリーへの処理を終えたと判定した後、画面バリエーション解析プログラム１２３は、構造概略特徴値を検索キーとして画面バリエーション情報記録部１６０の構造主役ツリーを検索し、同値の構造集約ツリーを改めて画面バリエーションツリーとして統合する（ステップＳ２３０８）。
【０１２７】
画面バリエーション解析プログラム１２３は、得られた画面バリエーションツリー群を画面バリエーション情報記録部１６０の画面構造ツリー記録部１６２へ、画面バリエーションツリーへのアクセスＩＤを画面構造バリエーション管理情報記録部１６１へそれぞれ書き込む（ステップＳ２３０９）。
【０１２８】
図４２に戻り、ステップＳ２４０では画面変数抽出プログラム１２４が画面バリエーション情報記録部１６０に格納された画面表示ツリーおよび画面バリエーションツリーを用いて、各画面種別ごとの画面コードに表示される画面上変数を抽出し、画面変数記録部１６３へ書き込む処理である。
ステップＳ２４０の処理を、図４６を用いて詳細に説明する。
【０１２９】
図４６は、画面変数抽出プログラム１２４の処理の詳細な手順を示すフローチャートである。
【０１３０】
まず、画面変数抽出プログラム１２４は、画面バリエーション情報記録部１６０の画面構造バリエーション管理情報記録部１６１を検索し、未処理の画面種別が存在するか否かを判定する（ステップＳ２４０１）。もし、未処理の画面種別が存在する場合は、処理をステップＳ２４０２へ移し、存在しない場合は処理を終了する。以降、未処理の画面種別が存在する場合を説明する。
【０１３１】
画面変数抽出プログラム１２４は、未処理である画面種別を１つ選択し取得する（ステップＳ２４０２）。
【０１３２】
画面変数抽出プログラム１２４は、取得した画面種別のＩＤをキーに画面構造バリエーション管理情報記録部１６１を検索し、当該画面種別に未処理の画面バリエーションツリーが存在するか否かを判定する（ステップＳ２４０３）。もし、未処理の画面バリエーションツリーが存在すれば、処理をステップＳ２４０４へ移し、存在しなければ処理をステップＳ２４０７へ移す。以降ではまず、未処理の画面バリエーションツリーが存在する場合を説明する。
【０１３３】
画面変数抽出プログラム１２４は、未処理である画面バリエーションツリーを１つ選択し、画面構造ツリー記録部１６２より取得する（ステップＳ２４０４）。
【０１３４】
画面変数抽出プログラム１２４は、取得した画面バリエーションツリーに関連する画面表示ツリーを画面構造バリエーション管理情報記録部１６１より画面バリエーションツリーＩＤをキーに検索し取得する（ステップＳ２４０５）。
【０１３５】
画面変数抽出プログラム１２４は、取得した画面バリエーションツリーの終端に存在する各固定文字列ノード、変数文字列ノードの情報に基づき、ステップＳ２４０５で取得した各画面表示ツリーの同位置に存在する文字列ノードから変数文字列を抽出し、抽出対象となった変数文字列ノードごとにその値を纏める（ステップＳ２４０６）。この後、処理をステップＳ２４０３へ移す。
【０１３６】
ステップＳ２４０３で未処理の画面バリエーションツリーが存在しない、すなわち必要なすべての画面バリエーションツリーに対する変数抽出処理が完了したと判定したならば、画面変数抽出プログラム１２４は、画面種別に属する画面バリエーションツリーにおいて、部分木特徴値に基づき同一の情報を示す変数文字列ノードを同定し、この結果に基づき同定された各画面バリエーションの変数文字列を１つに集約する（ステップＳ２４０７）。
【０１３７】
画面変数抽出プログラム１２４は、以上の処理で抽出された変数文字列情報群を、画面種別の変数群として画面変数記録部１６３に書き込む（ステップＳ２４０８）。書き込んだのち、処理をステップＳ２４０１へ移す。
【０１３８】
図４１に戻り、次にステップＳ３００の処理を図４７のフローチャートに基づいて詳細に説明する。
【０１３９】
図４７は、画面バリエーション因子分析プログラム１３０の処理の詳細な手順を示すフローチャートである。
【０１４０】
まず、画面バリエーション因子分析プログラム１３０は画面バリエーション情報記録部１６０の画面構造バリエーション管理情報記録部１６１を検索し、未処理の画面種別が存在するか否かを判定する（ステップＳ３１０）。もし、未処理の画面種別が存在すれば処理をステップＳ３２０へ移し、存在しなければ処理を終了する。以降では、未処理の画面種別が存在する場合を説明する。
【０１４１】
画面バリエーション因子分析プログラム１３０は、未処理の画面種別を１つ選択し、当該画面種別に紐付く画面バリエーション情報及び画面変数情報群を取得する（ステップＳ３２０）。
【０１４２】
画面バリエーション因子分析プログラム１３０は、未処理の画面変数が存在するか否かを判定する（ステップＳ３３０）。もし、未処理の画面変数が存在すれば処理をステップＳ３４０に写し、存在しなければ処理をＳ３１０へ移す。以降では、未処理の画面変数が存在する場合の処理を説明する。
【０１４３】
画面バリエーション因子分析プログラム１３０は、未処理の画面変数を１つ選択し、当該変数が取りうる各変数値とどの画面バリエーションが同時に発生しうるのかを因果関係として算出する（ステップＳ３４０）。
【０１４４】
画面バリエーション因子分析プログラム１３０は、算出された因果関係を分析し、複数の画面バリエーションと関連付けられた変数値が存在するか否かを判定する（ステップＳ３５０）。もし、複数の画面バリエーションと関連付いた変数値が１つでも存在すれば、その変数値を含む画面変数は画面バリエーションの決定因子にはならないとして処理をステップＳ３３０に移し、存在しなければ画面バリエーションの決定因子の候補としてステップＳ３６０に処理を進める。
【０１４５】
画面バリエーション因子分析プログラム１３０は、当該画面変数内の各変数値の出現頻度の分布を算出する（ステップＳ３６０）。
【０１４６】
画面バリエーション因子分析プログラム１３０は、得られた各変数値の出現頻度を分析し、既定の閾値を超える出現頻度を持つ変数値が存在するか否かを判定する（ステップＳ３７０）。もし、既定の閾値を超える出現頻度を持つ変数値が存在すれば当該画面変数を画面バリエーションの決定因子候補としてステップＳ３８０へ処理を移し、存在しなければ当該画面変数は画面バリエーションの決定因子にはならないとして処理をステップＳ３３０へ移す。
【０１４７】
画面バリエーション因子分析プログラム１３０は、画面バリエーションの決定因子候補とされた当該画面変数を、画面バリエーションの因子として画面バリエーション因子分析結果記録部１７０書き込む（ステップＳ３８０）。書き込んだのち、処理をステップＳ３３０へ移す。
【０１４８】
図４１に戻り、次にステップＳ４００の処理を図４８のフローチャートに基づいて詳細に説明する。
【０１４９】
図４８は、抽出画面仕様出力プログラム１４０の処理の詳細な手順を示すフローチャートである。
【０１５０】
抽出画面仕様出力プログラム１４０は、ユーザからの抽出画面仕様出力に関する要求を受け付ける（ステップＳ４０１）。
【０１５１】
抽出画面仕様出力プログラム１４０は、受け付けた要求が画面バリエーション一覧出力要求であるか否かを判定する（ステップＳ４０２）。もし、受け付けた要求が画面バリエーション一覧出力要求であれば、ステップＳ４０３へ処理を移し、そうでなければステップＳ４０４へ処理を移す。
【０１５２】
画面バリエーション一覧出力要求を受けた抽出画面仕様出力プログラム１４０は、画面バリエーション情報記録部１６０より画面バリエーションの情報を検索取得し、例えば図３６の画面バリエーション分析結果一覧９０００のように結果を出力する（ステップＳ４０３）。出力した後、処理をステップＳ４０１へ移す。
【０１５３】
抽出画面仕様出力プログラム１４０は、受け付けた要求が画面バリエーション詳細出力要求であるか否かを判定する（ステップＳ４０４）。もし、受け付けた要求が画面バリエーション詳細出力要求であれば、ステップＳ４０５へ処理を移し、そうでなければステップＳ４０６へ処理を移す。
【０１５４】
画面バリエーション一覧出力要求を受けた抽出画面仕様出力プログラム１４０は、画面バリエーション情報記録部１６０より画面バリエーションの情報ならびに画面表示コードの情報を検索して取得し、例えば図３７の画面バリエーション表示画面９１００のように結果を出力する（ステップＳ４０５）。出力した後、処理をステップＳ４０１へ移す。
【０１５５】
抽出画面仕様出力プログラム１４０は、受け付けた要求が画面バリエーション因子出力要求であるか否かを判定する（ステップＳ４０６）。もし、受け付けた要求が画面バリエーション因子出力要求であれば、ステップＳ４０７へ処理を移し、そうでなければステップＳ４０８へ処理を移す。
【０１５６】
画面バリエーション一覧出力要求を受けた抽出画面仕様出力プログラム１４０は、画面バリエーション情報記録部１６０より画面バリエーションの情報ならびに画面表示コードの情報を、画面バリエーション因子分析結果記録部１７０より画面バリエーション因子分析結果情報を検索して取得し、例えば図４０の画面バリエーション表示画面９２００のように結果を出力する（ステップＳ４０７）。出力した後、処理をステップＳ４０１へ移す。
【０１５７】
抽出画面仕様出力プログラム１４０は、受け付けた要求が処理の終了要求であるか否かを判定する（ステップＳ４０８）。もし、受け付けた要求が終了要要求であれば、処理を終了し、そうでなければステップＳ４０１へ処理を移す。
【０１５８】
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれら実施形態のみに限定する趣旨ではない。例えば、上述した実施例は本説明を分かり易く説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。
【０１５９】
また、上述の各構成、機能、処理部、処理手段などは、それらの一部または全部を例えば集積回路で設計する等によりハードウェアで実現しても良い。また、上述の各構成、機能などは、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。下記機能を実現するプログラム、テーブル、ファイルなどの情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記憶媒体に置くことができる。
【０１６０】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報線を示しているとは限らない。実際にはほとんどすべての構成が相互に接続されていると考えてもよい。
【０１６１】
上述の実施例の既存システム画面仕様抽出装置１００において、画面バリエーション差分抽出プログラム１２０の画面変数部解析プログラム１２２が画面上の変数部を解析した結果について、本装置１００の利用者が各変数文字列部を結合、分解、変数文字列範囲の拡張といった補正を施したい場合がある。そこで、実施例の構成に加え、画面変数部解析プログラム１２２の処理の結果を本装置１００利用者に画像表示コードなどをサンプルに用いて提示し、利用者が望む変数文字列を入力させる画面変数部補正プログラム１２５を有する構成としてもよい。
【符号の説明】
【０１６２】
１００  既存システム画面仕様抽出装置
１０１  ＣＰＵ
１０２  メモリ
１０３  外部記憶装置
１０４  バス
１０５  外部インターフェース
１０６  入力装置
１０７  出力装置
１０８  通信装置
１１０  既存画面ログ格納プログラム
１２０  画面バリエーション差分抽出プログラム
１２１  画面構造抽出プログラム
１２２  画面変数部解析プログラム
１２３  画面バリエーション解析プログラム
１２４  画面変数抽出プログラム
１３０  画面バリエーション因子分析プログラム
１４０  抽出画面仕様出力プログラム
１５０  既存システム画面ログ記録部
１５１  画面表示コード記録部
１５２  画面遷移情報記録部
１６０  画面バリエーション情報記録部
１６１  画面構造バリエーション管理情報記録部
１６２  画面構造ツリー記録部
１６３  画面変数記録部
１７０  画面バリエーション因子分析結果記録部
１８０  画面記述文法記録部
【図１】
0006343500.tif 000002
【図２】
0006343500.tif 000003
【図３】
0006343500.tif 000004
【図４】
0006343500.tif 000005
【図５】
0006343500.tif 000006
【図６】
0006343500.tif 000007
【図７】
0006343500.tif 000008
【図８】
0006343500.tif 000009
【図９】
0006343500.tif 000010
【図１０】
0006343500.tif 000011
【図１１】
0006343500.tif 000012
【図１２】
0006343500.tif 000013
【図１３】
0006343500.tif 000014
【図１４】
0006343500.tif 000015
【図１５】
0006343500.tif 000016
【図１６】
0006343500.tif 000017
【図１７】
0006343500.tif 000018
【図１８】
0006343500.tif 000019
【図１９】
0006343500.tif 000020
【図２０】
0006343500.tif 000021
【図２１】
0006343500.tif 000022
【図２２】
0006343500.tif 000023
【図２３】
0006343500.tif 000024
【図２４】
0006343500.tif 000025
【図２５】
0006343500.tif 000026
【図２６】
0006343500.tif 000027
【図２７】
0006343500.tif 000028
【図２８】
0006343500.tif 000029
【図２９】
0006343500.tif 000030
【図３０】
0006343500.tif 000031
【図３１】
0006343500.tif 000032
【図３２】
0006343500.tif 000033
【図３３】
0006343500.tif 000034
【図３４】
0006343500.tif 000035
【図３５】
0006343500.tif 000036
【図３６】
0006343500.tif 000037
【図３７】
0006343500.tif 000038
【図３８】
0006343500.tif 000039
【図３９】
0006343500.tif 000040
【図４０】
0006343500.tif 000041
【図４１】
0006343500.tif 000042
【図４２】
0006343500.tif 000043
【図４３】
0006343500.tif 000044
【図４４】
0006343500.tif 000045
【図４５】
0006343500.tif 000046
【図４６】
0006343500.tif 000047
【図４７】
0006343500.tif 000048
【図４８】
0006343500.tif 000049