(57)【要約】  入力データ項目の値域の変更がアプリケーションの保守に与える影響の分析作業を支援するために、構文解析部（４）がソースプログラム（１）、レコード情報（２）およびジョブ制御情報（３）を解析して解析結果を構文木テーブル（５）、ファイル・ＤＢレイアウトテーブル（６）、プログラム−ファイル・ＤＢ関連テーブル（７）に格納し、プログラムロジック解析部（８）が構文木テーブル（５）、ファイル・ＤＢレイアウトテーブル（６）、プログラム−ファイル・ＤＢ関連テーブル（７）を参照して対象項目に対応する対象変数および関連する文を抽出し、想定要件集約部（９）がプログラムロジック解析部（８）によって抽出された対象変数および文に基づき想定要件表（１０）を作成して出力するよう構成する。
2009011057.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションのソース情報を解析することによって保守を支援する情報を提供するアプリケーション解析プログラムであって、
アプリケーションを構成する複数のソースプログラム、アプリケーションが使用するデータベースのレコード情報およびアプリケーションの実行制御情報を解析し、特定の入力データ項目に対応する変数および該変数の値に関する情報を抽出する変数情報抽出手順と、
前記変数情報抽出手順により抽出された変数および該変数の値に関する情報に基づいて前記入力データ項目に対して想定されている値に関する情報を想定要件情報として出力する想定要件情報出力手順と、
をコンピュータに実行させることを特徴とするアプリケーション解析プログラム。
【請求項２】
前記変数情報抽出手順は、抽出した変数がループ処理の制御に関係するか否かの情報をさらに抽出し、
前記想定要件情報出力手順は、入力データ項目がループ処理の制御に関係する場合には、入力データ項目の値域の変更が処理時間に影響を与える可能性があることを警告として出力することを特徴とする請求項１に記載のアプリケーション解析プログラム。
【請求項３】
前記入力データ項目の値域の変更にともなうプログラムの修正内容を前記想定要件情報出力手順により出力された想定要件情報に基づいて値域に対応させて見積る修正内容見積手順をさらにコンピュータに実行させることを特徴とする請求項１または２に記載のアプリケーション解析プログラム。
【請求項４】
前記修正内容見積手順により見積られた修正内容の修正を行う時期を前記入力データ項目の値の増加率に基づいて推定して出力する修正時期推定手順をさらにコンピュータに実行させることを特徴とする請求項３に記載のアプリケーション解析プログラム。
【請求項５】
アプリケーションのソース情報を解析することによって保守を支援する情報を提供するアプリケーション解析方法であって、
アプリケーションを構成する複数のソースプログラム、アプリケーションが使用するデータベースのレコード情報およびアプリケーションの実行制御情報を解析し、特定の入力データ項目に対応する変数および該変数の値に関する情報を抽出する変数情報抽出ステップと、
前記変数情報抽出ステップにより抽出された変数および該変数の値に関する情報に基づいて前記入力データ項目に対して想定されている値に関する情報を想定要件情報として出力する想定要件情報出力ステップと、
を含んだことを特徴とするアプリケーション解析方法。
【請求項６】
アプリケーションのソース情報を解析することによって保守を支援する情報を提供するアプリケーション解析装置であって、
アプリケーションを構成する複数のソースプログラム、アプリケーションが使用するデータベースのレコード情報およびアプリケーションの実行制御情報を解析し、特定の入力データ項目に対応する変数および該変数の値に関する情報を抽出する変数情報抽出手段と、
前記変数情報抽出手段により抽出された変数および該変数の値に関する情報に基づいて前記入力データ項目に対して想定されている値に関する情報を想定要件情報として出力する想定要件情報出力手段と、
を備えたことを特徴とするアプリケーション解析装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションのソース情報を解析することによって保守を支援する情報を提供するアプリケーション解析プログラム、アプリケーション解析方法およびアプリケーション解析装置に関し、特に、入力データ項目についてアプリケーションが想定している値域を解析し、入力データ項目の値域の変更に伴うアプリケーションの改修内容や改修時期の分析を支援することによって、アプリケーションの計画的な保守を支援することができるアプリケーション解析プログラム、アプリケーション解析方法およびアプリケーション解析装置に関するものである。
【背景技術】
【０００２】
企業の基幹業務をシステム化したアプリケーションは、プログラムの規模が大きく、多くの人月を費やして開発されている。また長期に渡って保守・運用されており、高い品質が要求されると同時に、業務の変更などによる修正が頻繁に入るという特徴を持っている。【０００３】
このような業務アプリケーションの保守に関する課題として、業務上の変更に伴うプログラムの改修規模の見積もりが困難であるという点が挙げられる。例えば、支店数が増えるという業務上の変更に対して、プログラムを修正する必要があるか、もしくはデータベースの項目を変換する必要がある場合、保守に大きな工数を必要とし、システム対応の遅れによってビジネスが遅れてしまうことにもなりかねず、大きな問題ともなりかねない。【０００４】
従来、業務アプリケーション保守の場面において、プログラム開発時の仕様書は必ずしも現状に即していない場合が多いため、プログラムをツールによって分析し、セクション構造図やサブルーチン呼出し関係図などのドキュメントを自動生成したり、影響検索ツールによって特定の変数に影響を受ける文や変数を検索する手法はよく用いられている。【０００５】
例えば、図１６に示すような４つのプログラムから構成されるアプリケーションが、支店数は５０以下という要件を想定して開発されていたとする。このときの各プログラムのソースの例を図１７に示す。支店数が今後増えるという業務上の変化に対して、従来の影響検索ツールを用いた場合、プログラムそれぞれに対して追跡の起点項目を指定することで、図１８のように、支店コードの値を格納する変数「ＳＨＩＴＥＮ」、およびその変数が使用されている行がリストアップされる。【０００６】
なお、プログラムを解析する技術としては、単一のプログラムを解析し、エラー処理部への分岐とＩＦ文が対になった箇所を抽出し、そこでの判定条件から変数の制約条件を求める技術が特許文献１に記載されている。【０００７】
【特許文献１】特開平９−２７４５６２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、自動生成されるドキュメントはプログラムの静的な構造だけであったり、特定の変数に影響を受ける文や変数の一覧が抽出できるだけであり、この結果を見ても、アプリケーションがどのような入力データを想定しており、その変化に対してどう影響を受けるのかを判断することができないという問題がある。【０００９】
例えば、図１８に示した結果だけを見ても、プログラムが支店コードに対してどのような想定をしているのかを理解するには人間が内容を確認する必要があり、この影響箇所すべてを改修する必要があるのかどうかも、膨大な検索結果の各行を個々に確認する必要がある。したがって、改修作業量の正確な見積もりはこれだけではできず、業務知識を持った担当者が図１９のような想定要件表を別途作成する必要があるが、想定要件表の作成は担当者にとって大きな負担となる。ここで、想定要件表とは、アプリケーションが入力データに想定している値の一覧表である。【００１０】
さらに改修内容を判断する際にも、同じ支店コードの変更であっても、図２０に示すように、その大きさによって改修内容が異なり、作業量に大きな違いが生じてしまう。そこで改修内容の判断を人手で行う必要があるが、改修内容の判断も保守現場における大きな負担となっている。【００１１】
本発明は、上記に鑑みてなされたものであって、入力データ項目についてアプリケーションが想定している値域を解析し、入力データ項目の値域の変更に伴うアプリケーションの改修内容や改修時期の分析を支援することによって、アプリケーションの計画的な保守を支援することができるアプリケーション解析プログラム、アプリケーション解析方法およびアプリケーション解析装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するため、請求項１に係る発明は、アプリケーションのソース情報を解析することによって保守を支援する情報を提供するアプリケーション解析プログラムであって、アプリケーションを構成する複数のソースプログラム、アプリケーションが使用するデータベースのレコード情報およびアプリケーションの実行制御情報を解析し、特定の入力データ項目に対応する変数および該変数の値に関する情報を抽出する変数情報抽出手順と、前記変数情報抽出手順により抽出された変数および該変数の値に関する情報に基づいて前記入力データ項目に対して想定されている値に関する情報を想定要件情報として出力する想定要件情報出力手順と、をコンピュータに実行させることを特徴とする。【００１３】
この請求項１の発明によれば、アプリケーションを構成する複数のソースプログラム、アプリケーションが使用するデータベースのレコード情報およびアプリケーションの実行制御情報を解析し、特定の入力データ項目に対応する変数および該変数の値に関する情報を抽出し、抽出した変数および該変数の値に関する情報に基づいて特定の入力データ項目に対して想定されている値に関する情報を想定要件情報として出力するよう構成したので、入力データ項目の値域の変更に伴うアプリケーションの改修内容や改修時期の分析を支援することができる。【００１４】
また、請求項２に係る発明は、上記発明において、前記変数情報抽出手順は、抽出した変数がループ処理の制御に関係するか否かの情報をさらに抽出し、前記想定要件情報出力手順は、入力データ項目がループ処理の制御に関係する場合には、入力データ項目の値域の変更が処理時間に影響を与える可能性があることを警告として出力することを特徴とする。【００１５】
この請求項２の発明によれば、抽出した変数がループ処理の制御に関係するか否かの情報をさらに抽出し、入力データ項目がループ処理の制御に関係する場合には、入力データ項目の値域の変更が処理時間に影響を与える可能性があることを警告として出力するよう構成したので、担当者は改修に伴う処理時間の増大を事前に認識することができる。【００１６】
また、請求項３に係る発明は、上記発明において、前記入力データ項目の値域の変更にともなうプログラムの修正内容を前記想定要件情報出力手順により出力された想定要件情報に基づいて値域に対応させて見積る修正内容見積手順をさらにコンピュータに実行させることを特徴とする。【００１７】
この請求項３の発明によれば、入力データ項目の値域の変更にともなうプログラムの修正内容を想定要件情報に基づいて値域に対応させて見積るよう構成したので、修正作業の見積りを支援することができる。【００１８】
また、請求項４に係る発明は、上記発明において、前記修正内容見積手順により見積られた修正内容の修正を行う時期を前記入力データ項目の値の増加率に基づいて推定して出力する修正時期推定手順をさらにコンピュータに実行させることを特徴とする。【００１９】
この請求項４の発明によれば、見積った修正内容の修正を行う時期を入力データ項目の値の増加率に基づいて推定して出力するよう構成したので、保守計画の作成を支援することができる。【００２０】
また、請求項５に係る発明は、アプリケーションのソース情報を解析することによって保守を支援する情報を提供するアプリケーション解析方法であって、アプリケーションを構成する複数のソースプログラム、アプリケーションが使用するデータベースのレコード情報およびアプリケーションの実行制御情報を解析し、特定の入力データ項目に対応する変数および該変数の値に関する情報を抽出する変数情報抽出ステップと、前記変数情報抽出ステップにより抽出された変数および該変数の値に関する情報に基づいて前記入力データ項目に対して想定されている値に関する情報を想定要件情報として出力する想定要件情報出力ステップと、を含んだことを特徴とする。【００２１】
この請求項５の発明によれば、アプリケーションを構成する複数のソースプログラム、アプリケーションが使用するデータベースのレコード情報およびアプリケーションの実行制御情報を解析し、特定の入力データ項目に対応する変数および該変数の値に関する情報を抽出し、抽出した変数および該変数の値に関する情報に基づいて特定の入力データ項目に対して想定されている値に関する情報を想定要件情報として出力するよう構成したので、入力データ項目の値域の変更に伴うアプリケーションの改修内容や改修時期の分析を支援することができる。【００２２】
また、請求項６に係る発明は、アプリケーションのソース情報を解析することによって保守を支援する情報を提供するアプリケーション解析装置であって、アプリケーションを構成する複数のソースプログラム、アプリケーションが使用するデータベースのレコード情報およびアプリケーションの実行制御情報を解析し、特定の入力データ項目に対応する変数および該変数の値に関する情報を抽出する変数情報抽出手段と、前記変数情報抽出手段により抽出された変数および該変数の値に関する情報に基づいて前記入力データ項目に対して想定されている値に関する情報を想定要件情報として出力する想定要件情報出力手段と、を備えたことを特徴とする。【００２３】
この請求項６の発明によれば、アプリケーションを構成する複数のソースプログラム、アプリケーションが使用するデータベースのレコード情報およびアプリケーションの実行制御情報を解析し、特定の入力データ項目に対応する変数および該変数の値に関する情報を抽出し、抽出した変数および該変数の値に関する情報に基づいて特定の入力データ項目に対して想定されている値に関する情報を想定要件情報として出力するよう構成したので、入力データ項目の値域の変更に伴うアプリケーションの改修内容や改修時期の分析を支援することができる。
【発明の効果】
【００２４】
本発明によれば、入力データ項目の値域の変更に伴うアプリケーションの改修内容や改修時期の分析を支援するので、アプリケーションの計画的な保守を支援することができるという効果を奏する。【００２５】
また、本発明によれば、担当者は、改修に伴う処理時間の増大を事前に認識することができるので、処理時間の増大への対応を事前に検討することができるという効果を奏する。【００２６】
また、本発明によれば、修正作業の見積りを支援するので、アプリケーションの運用保守負担を軽減することができるという効果を奏する。【００２７】
また、本発明によれば、保守計画の作成を支援するので、アプリケーションの運用保守負担を軽減することができるという効果を奏する。
【図面の簡単な説明】
【００２８】
【図１】図１は、本実施例１に係るアプリケーション解析装置が出力する想定要件表を示す図である。
【図２】図２は、本実施例１に係るアプリケーション解析装置の構成を示す機能ブロック図である。
【図３】図３は、構文木テーブルが記憶する構文木の一例を示す図である。
【図４】図４は、ファイル・ＤＢレイアウトテーブルの一例を示す図である。
【図５】図５は、プログラム−ファイル・ＤＢ関連テーブルの一例を示す図である。
【図６】図６は、プログラムロジック解析部の処理手順を示すフローチャートである。
【図７】図７は、想定要件集約部の処理手順を示すフローチャートである。
【図８】図８は、不整合項目の出力例を示す図である。
【図９】図９は、ループ処理使用項目の出力例を示す図である。
【図１０】図１０は、入力データ項目の値域の変更に伴うアプリケーション改修見積りの一例を示す図である。
【図１１】図１１は、本実施例２に係るアプリケーション解析装置の構成を示す機能ブロック図である。
【図１２】図１２は、修正内容見積表の一例を示す図である。
【図１３】図１３は、修正内容見積部の処理手順を示すフローチャートである。
【図１４】図１４は、修正必要時期の推定結果を追加した修正内容見積表の一例を示す図である。
【図１５】図１５は、本実施例１および２に係るアプリケーション解析プログラムを実行するコンピュータの構成を示す機能ブロック図である。
【図１６】図１６は、複数のプログラムから構成されるアプリケーションの一例を示す図である。
【図１７】図１７は、アプリケーションを構成するソースプログラム、レコード定義およびＪＣＬ記述の一例を示す図である。
【図１８】図１８は、従来の影響解析ツールによる解析結果の一例を示す図である。
【図１９】図１９は、アプリケーション内での支店コードに対する想定例を示す図である。
【図２０】図２０は、支店数増加に伴うアプリケーションの修正内容の変化の一例を示す図である。
【符号の説明】
【００２９】
１    ソースプログラム
２    レコード情報
３    ジョブ制御情報
４    構文解析部
５    構文木テーブル
６    ファイル・ＤＢレイアウトテーブル
７    プログラム−ファイル・ＤＢ関連テーブル
８    プログラムロジック解析部
９    想定要件集約部
１０    想定要件表
１１    分析対象項目名
１２    修正内容見積部
１３    修正内容見積表
４１    プログラム構文解析部
４２    スキーマ構文解析部
４３    ジョブ制御構文解析部
８１    関連プログラム抽出部
８２    関連文検索部
８３    関連項目検索部
８４    ループ終了条件検索部
９１    比較定数抽出部
９２    項目定義抽出部
９３    要件表整形部
１００，２００    アプリケーション解析装置
１２１    型定義確認部
１２２    比較範囲確認部
１２３    繰り返し処理確認部
３００    コンピュータ
３１０    ＲＡＭ
３１１    アプリケーション解析プログラム
３２０    ＣＰＵ
３３０    ＨＤＤ
３４０    ＬＡＮインタフェース
３５０    入出力インタフェース
３６０    ＤＶＤドライブ
【発明を実施するための最良の形態】
【００３０】
以下に、本発明に係るアプリケーション解析プログラム、アプリケーション解析方法およびアプリケーション解析装置の実施例を図面に基づいて詳細に説明する。なお、ここでは、本発明をＣＯＢＯＬで作成されたアプリケーションに適用した場合を中心に説明するが、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００３１】
まず、本実施例１に係るアプリケーション解析装置が出力する想定要件表について説明する。本実施例１に係るアプリケーション解析装置は、注目する入力データ項目（以下「対象項目」という）を格納するファイルやデータベースを読み込むプログラムを抽出し、各プログラムに対して、各対象項目に対応する入力レコード中の変数を起点として影響検索を行う。その際に、単に波及先の変数を追跡するのではなく、波及元・波及先の変数のデータ型や桁数、比較・代入されている定数、それらの変数をインデックスとして使用している配列変数、ループ処理制御やループからの脱出条件に使用している箇所を抽出する。【００３２】
そして、それらの情報を対象項目ごとに集約し、システム全体に渡る想定要件表として出力する。図１は、本実施例１に係るアプリケーション解析装置が出力する想定要件表を示す図である。同図に示すように、この想定要件表は、対象項目ごとに、型定義と、ループ処理使用有無、配列使用有無、下限値、上限値および比較値を示す表である。ここで、ループ処理使用有無は、ループ処理制御の変数としての使用またはループ脱出条件文での使用の有無を示し、配列使用有無は、配列のインデックスとしての使用の有無を示し、インデックスとして使用されている場合には、その配列の大きさを示す。【００３３】
この想定要件表と、今後の入力データの変化の予測（例えば３年後に支店数を２００程度まで増加させる計画があるなど）から、プログラムの改修が今後必要になるかどうかを担当者が判断することが可能となり、計画的な保守が可能となる。【００３４】
また、この想定要件表により、担当者は、転記されている変数の型定義にばらつきがあるかどうかも容易に把握することができ、転記の際の桁落ちなど、潜在的な障害となりうる問題を発見することが可能である。さらに、担当者は、ループ処理の制御に使用されている変数の値域を変更する場合など、値の変化に対して急に処理時間が増加するような場合がないかを判断することも可能となる。【００３５】
次に、本実施例１に係るアプリケーション解析装置の構成について説明する。図２は、本実施例１に係るアプリケーション解析装置の構成を示す機能ブロック図である。同図に示すように、このアプリケーション解析装置１００は、構文解析部４と、構文木テーブル５と、ファイル・ＤＢレイアウトテーブル６と、プログラム−ファイル・ＤＢ関連テーブル７と、プログラムロジック解析部８と、想定要件集約部９とを有する。【００３６】
構文解析部４は、アプリケーションを構成するソース情報すなわちソースプログラム１、レコード情報２およびジョブ制御情報３を解析し、解析結果を構文木テーブル５、ファイル・ＤＢレイアウトテーブル６およびプログラム−ファイル・ＤＢ関連テーブル７に格納する処理部であり、プログラム構文解析部４１と、スキーマ構文解析部４２と、ジョブ制御構文解析部４３とを有する。【００３７】
プログラム構文解析部４１は、ソースプログラム１の構文解析を行って構文木を作成し、作成した構文木を構文木テーブル５に格納する処理部である。スキーマ構文解析部４２は、ファイルのレコード情報２を解析してファイル中のレコードレイアウトをファイル・ＤＢレイアウトテーブル６に格納する。ジョブ制御構文解析部４３は、ジョブ制御情報３を解析してプログラムとファイルの関係をプログラム−ファイル・ＤＢ関連テーブル７に格納する。【００３８】
構文木テーブル５は、プログラム構文解析部４１が作成した構文木を記憶するテーブルである。図３は、構文木テーブル５が記憶する構文木の一例を示す図である。同図は、ＣＯＢＯＬプログラムの構文木を示し、プログラムの構造を木構造で表現している。【００３９】
ファイル・ＤＢレイアウトテーブル６は、スキーマ構文解析部４２が作成したレコードレイアウトを記憶するテーブルである。図４は、ファイル・ＤＢレイアウトテーブル６の一例を示す図である。同図に示すように、このファイル・ＤＢレイアウトテーブル６は、データ項目ごとに、ファイル名、レベル、項目名、開始位置、サイズ、型定義、親項目名を記憶する。【００４０】
プログラム−ファイル・ＤＢ関連テーブル７は、ジョブ制御構文解析部４３が解析したプログラムとファイルの関係を記憶するテーブルである。図５は、プログラム−ファイル・ＤＢ関連テーブル７の一例を示す図である。同図に示すように、このプログラム−ファイル・ＤＢ関連テーブル７は、プログラムとファイルとの入出力関係を記憶する。【００４１】
プログラムロジック解析部８は、構文木テーブル５、ファイル・ＤＢレイアウトテーブル６およびプログラム−ファイル・ＤＢ関連テーブル７を参照し、対象項目に対応する変数を抽出するとともに、抽出した変数がループ処理の制御やループ脱出の条件に使用されているか否かの情報を抽出する処理部であり、関連プログラム抽出部８１と、関連文検索部８２と、関連項目検索部８３と、ループ終了条件検索部８４とを有する。【００４２】
関連プログラム抽出部８１は、対象項目を含むファイルを入力するプログラムをプログラム−ファイル・ＤＢ関連テーブル７を参照して抽出する処理部である。関連文検索部８２は、ファイル・ＤＢレイアウトテーブル６を参照し、対象項目の位置を求め、その位置に対応する変数を関連プログラム抽出部８１によって抽出されたプログラムの構文木から求めて対象変数とし、その対象変数を起点としてその対象変数の値が関係する文を構文木から検索する処理部である。【００４３】
関連項目検索部８３は、関連文検索部８２によって検索された文が他の変数への代入効果を持つ場合、代入先の変数を関連文検索部８２が構文木から文を検索する対象変数として追加する処理部である。また、この関連項目検索部８３は、対象変数の値が出力レコードに転記されている場合、そのレコードに対応するファイルを求め、関連プログラム抽出部８１がプログラムを抽出する対象のファイルとする。【００４４】
ループ終了条件検索部８４は、関連文検索部８２によって検索された文がループ処理の制御文かループ脱出条件文であるか否かを判定し、ループ処理の制御文かループ脱出条件文である場合に、対象項目のループ処理使用フラグを「あり」とする処理部である。このループ終了条件検索部８４が、関連文検索部８２によって検索された文がループ処理の制御文かループ脱出条件文である場合に、対象項目のループ処理使用フラグを「あり」とすることによって、想定要件表１０でループ処理使用有無を示すことができる。【００４５】
想定要件集約部９は、プログラムロジック解析部８で解析された情報に基づき想定要件表１０を作成して出力する処理部であり、比較定数抽出部９１と、項目定義抽出部９２と、要件表整形部９３とを有する。【００４６】
比較定数抽出部９１は、プログラムロジック解析部８で抽出された文に関して、対象項目と大小比較、等値比較を行っている定数、すなわち対象変数と大小比較、等値比較を行っている定数を検索して抽出する処理部である。【００４７】
項目定義抽出部９２は、対象項目の型定義、すなわち対象変数の型定義を抽出する処理部である。また、この項目定義抽出部９２は、対象項目、すなわち対象変数が配列のインデックス値として使われている文を検索し、その配列の定義情報より配列のサイズを抽出する。【００４８】
要件表整形部９３は、比較定数抽出部９１および項目定義抽出部９２が抽出した情報やループ処理使用フラグに基づいて、図１に示した想定要件表１０を作成して出力する処理部である。【００４９】
次に、プログラムロジック解析部８の処理手順について説明する。図６は、プログラムロジック解析部８の処理手順を示すフローチャートである。同図に示すように、まず、関連プログラム抽出部８１が、対象項目を含むファイルを入力とするプログラムをプログラム−ファイル・ＤＢ関連テーブル７から抽出する（ステップＳ１０１）。【００５０】
そして、関連文検索部８２が、対象項目それぞれに対して、レコードレイアウトの位置をファイル・ＤＢレイアウトテーブル６から求め、その位置に対応するプログラム中の変数を対象変数として構文木から求める（ステップＳ１０２）。そして、関連文検索部８２は、求めた対象変数の値が関係する文を構文木から検索する（ステップＳ１０３）。【００５１】
そして、関連項目検索部８３が、関連文検索部８２により検索された文が他の変数への代入効果があるか否かを判定し（ステップＳ１０４）、代入効果がある場合には、代入先の変数に対しても同様な検索を行うために、代入先の変数を対象変数として追加し（ステップＳ１０５）、ステップＳ１０３に戻る。【００５２】
一方、代入効果のある文を全て処理すると、関連項目検索部８３は、対象変数の値が出力レコードに転記されているか否かを判定し（ステップＳ１０６）、転記されている場合には、対応するファイルおよびデータ項目を求めて解析の対象に追加し（ステップＳ１０７）、追加したデータ項目を対象項目として解析するためにステップＳ１０１に戻る。【００５３】
一方、対象変数の値を出力レコードに転記している文を全て処理すると、ループ終了条件検索部８４が、関連文検索部８２により検索された文がループ処理の制御文またはループ脱出条件文であるか否かを判定し、ループ処理の制御文またはループ脱出条件文である場合には、対象項目のループ処理使用フラグを「あり」と設定する（ステップＳ１０８）。そして、プログラムロジック解析部８は、対象項目の一覧、対象変数の一覧、検索した文の一覧およびループ処理使用フラグを想定要件集約部９へ出力する（ステップＳ１０９）。【００５４】
このように、プログラムロジック解析部８が、対象項目に関連する文を検索するとともに、検索した文がループ処理の制御文またはループ脱出条件文である場合には、対象項目のループ処理使用フラグを「あり」と設定することによって、想定要件表１０にループ処理使用有無を示すことができる。【００５５】
次に、想定要件集約部９の処理手順について説明する。図７は、想定要件集約部９の処理手順を示すフローチャートである。同図に示すように、まず、比較定数抽出部９１が、プログラムロジック解析部８が出力した対象変数および文の一覧を用いて、対象項目と大小比較および等号比較している定数をそれぞれ上限・下限値および比較値として抽出する（ステップＳ２０１〜ステップＳ２０２）。【００５６】
そして、項目定義抽出部９２が、構文木テーブル５およびプログラムロジック解析部８が出力した対象変数を用いて対象項目の型定義情報を構文木から抽出する（ステップＳ２０３）。また、項目定義抽出部９２は、プログラムロジック解析部８が出力した対象変数および文を用いて、対象項目を配列のインデックスとしている文を抽出し、その配列のサイズを構文木から抽出する（ステップＳ２０４）。【００５７】
そして、要件表整形部９３が、比較定数抽出部９１により抽出された上下限値および比較値、項目定義抽出部９２により抽出された型定義情報および配列のサイズ、ならびに、プログラムロジック解析部８が出力したループ処理使用フラグを対象項目ごとにまとめて想定要件表１０として出力する（ステップＳ２０５）。【００５８】
このように、想定要件集約部９が想定要件表１０を出力することによって、対象項目の値域の変更がアプリケーションに与える影響の分析を支援することができる。【００５９】
上述してきたように、本実施例１では、構文解析部４がソースプログラム１、レコード情報２およびジョブ制御情報３を解析して解析結果を構文木テーブル５、ファイル・ＤＢレイアウトテーブル６、プログラム−ファイル・ＤＢ関連テーブル７に格納し、プログラムロジック解析部８が構文木テーブル５、ファイル・ＤＢレイアウトテーブル６、プログラム−ファイル・ＤＢ関連テーブル７を参照して対象項目に対応する対象変数および関連する文を抽出し、想定要件集約部９がプログラムロジック解析部８によって抽出された対象変数および文に基づき想定要件表１０を作成して出力することとしたので、対象項目の値域の変更がアプリケーションに与える影響の分析を支援し、アプリケーションの計画的な保守を支援することができる。【００６０】
また、本実施例１では、ループ終了条件検索部８４が、関連文検索部８２によって検索された文がループ処理の制御文かループ脱出条件文であるか否かを判定し、ループ処理の制御文かループ脱出条件文である場合に、対象項目のループ処理使用フラグを「あり」とし、要件表整形部９３が、ループ処理使用フラグが「あり」である対象項目のループ処理使用有無を「あり」として想定要件表１０に示すこととしたので、担当者は、対象項目の値域の変更がループ処理に関連して処理時間の増加を招くか否かを容易に推定することができる。【００６１】
なお、図１に示した想定要件表１０では、項目定義抽出部９２が抽出した型定義情報がそのまま示されているが、対象項目に対応する対象変数間で型定義が異なる場合には、プログラムの誤りである可能性がある。そこで、項目定義抽出部９２が抽出した型定義情報のうち同一対象項目に対して異なる型定義がある場合には、不整合項目として別途出力するようにすることもできる。図８は、不整合項目の出力例を示す図である。同図は、対象項目「ＳＨＩＴＥＮ」および「ＺＡＩＫＯ」の型定義に不整合がある場合を示している。【００６２】
また、図１に示した想定要件表１０において、ループ処理使用有無が「あり」である入力データ項目は、値域の変更が処理時間に大きく影響する可能性が高い。したがって、ループ処理使用有無が「あり」である入力データ項目の情報だけを別途ループ処理使用項目として出力するようにすることもできる。図９は、ループ処理使用項目の出力例を示す図である。同図は、ループ処理使用項目「ＳＨＩＴＥＮ」および「ＳＯＵＫＯＮＯ」を現在の上限値とともに出力した場合を示している。
【実施例２】
【００６３】
ところで、上記実施例１では、想定要件表を出力する場合について説明したが、保守現場では、想定要件表を参照して入力データ項目の値域の変更に伴うアプリケーション修正の見積りが行われる。図１０は、入力データ項目の値域の変更に伴うアプリケーション修正見積りの一例を示す図である。同図に示すように、アプリケーション修正の見積りでは、入力データ項目の変化量に対応して、データ定義の再設計が必要になるような大規模な修正か、比較定数の書き換え程度の中規模な修正か、基本的に書き換えが不要で動作確認程度で済む小規模な修正なのかが見積もられる。【００６４】
このような見積りは、想定要件表から人手によって行われているが、この見積りをアプリケーション解析装置が行うようにすることもできる。そこで、本実施例２では、想定要件表を用いてアプリケーション修正の見積りを行うアプリケーション解析装置について説明する。【００６５】
まず、本実施例２に係るアプリケーション解析装置の構成について説明する。図１１は、本実施例２に係るアプリケーション解析装置の構成を示す機能ブロック図である。なお、ここでは説明の便宜上、図２に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。【００６６】
図１１に示すように、このアプリケーション解析装置２００は、アプリケーション解析装置１００が有する機能部に加えて、修正内容見積部１２を有する。修正内容見積部１２は、想定要件表１０および分析対象項目名１１を入力し、修正内容見積表１３を出力する処理部であり、型定義確認部１２１と、比較範囲確認部１２２と、繰り返し処理確認部１２３とを有する。ここで、分析対象項目名１１は、修正内容の見積り対象とする入力データ項目（以下「分析対象項目」という）の名前である。【００６７】
型定義確認部１２１は、分析対象項目の型定義の桁数情報を参照し、分析対象項目に格納できる値の範囲を計算する処理部である。【００６８】
比較範囲確認部１２２は、型定義確認部１２１が計算した値の範囲を小規模修正範囲、中規模修正範囲および大規模修正範囲に分割する処理部である。この比較範囲確認部１２２は、分析対象項目の上限値・下限値の範囲外を大規模修正が必要となる範囲とする。ただし、配列のインデックスで使用されている項目の場合、０から配列サイズの範囲と、桁数から計算される範囲の重なりを求めて、その範囲外を大規模修正が必要な範囲とする。また、大規模修正が不要な範囲で、分析対象項目の上限値・下限値の範囲外となる範囲、および比較値として使われている値を、中規模修正が必要な範囲とする。また、大規模、中規模の範囲に該当しない範囲を、小規模修正が必要な範囲とする。【００６９】
繰り返し処理確認部１２３は、比較範囲確認部１２２による分割結果に基づいて修正内容見積表１３を出力する処理部である。また、この繰り返し処理確認部１２３は、分析対象項目が繰り返し処理で使用されている場合には、値の増加に対する処理時間の増加がありうることの警告を修正内容見積表１３に含める。【００７０】
図１２は、修正内容見積表１３の一例を示す図である。この修正内容見積表１３は、分析対象項目「ＳＨＩＴＥＮ」の値範囲と修正規模とを対応させて示している。また、分析対象項目「ＳＨＩＴＥＮ」は繰り返し処理で使用されているので、この修正内容見積表１３には、値の増加に対する処理時間の増加がありうることの警告として「ループ処理で使用」が含まれている。【００７１】
次に、修正内容見積部１２の処理手順について説明する。図１３は、修正内容見積部１２の処理手順を示すフローチャートである。同図に示すように、まず、型定義確認部１２１が、分析対象項目名を入力し（ステップＳ３０１）、型定義の桁数情報から格納可能範囲すなわち分析対象項目に格納できる値の範囲を計算する（ステップＳ３０２）。【００７２】
そして、比較範囲確認部１２２が、分析対象項目が配列のインデックスとして使用されているか否かを判定し（ステップＳ３０３）、配列のインデックスとして使用されている場合には、０から配列サイズまでの範囲と、格納可能範囲の重なりを計算する（ステップＳ３０４）。【００７３】
そして、比較範囲確認部１２２は、計算した範囲の外を大規模修正範囲とし（ステップＳ３０５）、分析対象項目の上限値の最低値および下限値の最高値を計算して、その範囲を小規模修正範囲とする（ステップＳ３０６）。【００７４】
そして、比較範囲確認部１２２は、分析対象項目に対する等号比較値があるか否かを判定し（ステップＳ３０７）、等号比較値がある場合には、小規模修正範囲から等号比較値を除外する（ステップＳ３０８）。そして、比較範囲確認部１２２は、大規模修正範囲でも小規模修正範囲でもない範囲を中規模修正範囲とする（ステップＳ３０９）。【００７５】
そして、繰り返し処理確認部１２３が、分析対象項目のループ処理使用有無が「あり」である場合には、処理時間が増大する可能性があるとの警告を加えて（ステップＳ３１０）、修正内容見積表１３を出力する（ステップＳ３１１）。【００７６】
このように、型定義確認部１２１が、分析対象項目の格納可能範囲を計算し、比較範囲確認部１２２が、分析対象項目の大規模修正範囲、中規模修正範囲および小規模修正範囲を計算し、繰り返し処理確認部１２３が、修正内容見積表１３を出力することによって、修正内容の見積りを支援することができる。【００７７】
上述してきたように、本実施例２では、修正内容見積部１２が修正内容見積表１３を出力することとしたので、担当者は、入力データ項目の値域の変更に伴うアプリケーションの修正規模を簡単に見積ることができる。【００７８】
なお、本実施例２では、入力データ項目の値域の変更に伴って必要な修正規模を見積ることとしたが、さらに、入力データ項目の値の現在の増加傾向から、中規模修正や大規模修正が必要となる時期を推定して出力するようにすることもできる。中規模修正の必要時期の推定値としては、小規模修正の境界値と現在の値の差を求め、この差を年間増加数で割り、正の値となるものを使用する。大規模修正についても同様に計算することができる。【００７９】
図１４は、修正必要時期の推定結果を追加した修正内容見積表の一例を示す図である。同図は、入力データ項目「ＳＨＩＴＥＮ」の現在の上限値が４０で年間の増加率が８０である場合に、中規模修正が必要となる時期を１２×（９０−４０）／８０＝７．５ヶ月後と推定した結果を示している。【００８０】
また、本実施例１および２では、アプリケーション解析装置について説明したが、アプリケーション解析装置が有する構成をソフトウェアによって実現することで、同様の機能を有するアプリケーション解析プログラムを得ることができる。そこで、このアプリケーション解析プログラムを実行するコンピュータの構成について説明する。【００８１】
図１５は、本実施例１および２に係るアプリケーション解析プログラムを実行するコンピュータの構成を示す機能ブロック図である。同図に示すように、このコンピュータ３００は、ＲＡＭ３１０と、ＣＰＵ３２０と、ＨＤＤ３３０と、ＬＡＮインタフェース３４０と、入出力インタフェース３５０と、ＤＶＤドライブ３６０とを有する。【００８２】
ＲＡＭ３１０は、プログラムやプログラムの実行途中結果などを記憶するメモリであり、ＣＰＵ３２０は、ＲＡＭ３１０からプログラムを読み出して実行する中央処理装置である。ＨＤＤ３３０は、プログラムやデータを格納するディスク装置であり、ＬＡＮインタフェース３４０は、コンピュータ３００をＬＡＮ経由で他のコンピュータに接続するためのインタフェースである。入出力インタフェース３５０は、マウスやキーボードなどの入力装置および表示装置を接続するためのインタフェースであり、ＤＶＤドライブ３６０は、ＤＶＤの読み書きを行う装置である。【００８３】
そして、このコンピュータ３００において実行されるアプリケーション解析プログラム３１１は、ＤＶＤに記憶され、ＤＶＤドライブ３６０によってＤＶＤから読み出されてコンピュータ３００にインストールされる。あるいは、このアプリケーション解析プログラム３１１は、ＬＡＮインタフェース３４０を介して接続された他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読み出されてコンピュータ３００にインストールされる。そして、インストールされたアプリケーション解析プログラム３１１は、ＨＤＤ３３０に記憶され、ＲＡＭ３１０に読み出されてＣＰＵ３２０によって実行される。
【産業上の利用可能性】
【００８４】
以上のように、本発明に係るアプリケーション解析プログラム、アプリケーション解析方法およびアプリケーション解析装置は、アプリケーションプログラムの運用・保守に有用であり、特に、入力データ項目の値域が運用とともに増大していくようなアプリケーションの運用・保守に適している。
【図１】
2009011057.tif 000003
【図２】
2009011057.tif 000004
【図３】
2009011057.tif 000005
【図４】
2009011057.tif 000006
【図５】
2009011057.tif 000007
【図６】
2009011057.tif 000008
【図７】
2009011057.tif 000009
【図８】
2009011057.tif 000010
【図９】
2009011057.tif 000011
【図１０】
2009011057.tif 000012
【図１１】
2009011057.tif 000013
【図１２】
2009011057.tif 000014
【図１３】
2009011057.tif 000015
【図１４】
2009011057.tif 000016
【図１５】
2009011057.tif 000017
【図１６】
2009011057.tif 000018
【図１７】
2009011057.tif 000019
【図１８】
2009011057.tif 000020
【図１９】
2009011057.tif 000021
【図２０】
2009011057.tif 000022
【手続補正書】
【提出日】平成21年10月27日(2009.10.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
アプリケーションのソース情報を解析することによって保守を支援する情報を提供するアプリケーション解析プログラムであって、
アプリケーションを構成する複数のソースプログラム、アプリケーションが使用するデータベースのレコード情報およびアプリケーションの実行制御情報を解析し、特定の入力データ項目に対応する変数および該変数の値に関する情報を抽出する変数情報抽出手順と、
前記変数情報抽出手順により抽出された変数および該変数の値に関する情報に基づいて前記入力データ項目に対して想定されている値に関する情報を想定要件情報として出力する想定要件情報出力手順と、
をコンピュータに実行させることを特徴とするアプリケーション解析プログラム。
【請求項２】
前記変数情報抽出手順は、抽出した変数がループ処理の制御に関係するか否かの情報をさらに抽出し、
前記想定要件情報出力手順は、入力データ項目がループ処理の制御に関係する場合には、入力データ項目の値域の変更が処理時間に影響を与える可能性があることを警告として出力することを特徴とする請求項１に記載のアプリケーション解析プログラム。
【請求項３】
前記入力データ項目の値域の変更にともなうプログラムの修正内容を前記想定要件情報出力手順により出力された想定要件情報に基づいて値域に対応させて見積る修正内容見積手順をさらにコンピュータに実行させることを特徴とする請求項１または２に記載のアプリケーション解析プログラム。
【請求項４】
アプリケーションのソース情報を解析することによって保守を支援する情報を提供するアプリケーション解析方法であって、
アプリケーションを構成する複数のソースプログラム、アプリケーションが使用するデータベースのレコード情報およびアプリケーションの実行制御情報を解析し、特定の入力データ項目に対応する変数および該変数の値に関する情報を抽出する変数情報抽出ステップと、
前記変数情報抽出ステップにより抽出された変数および該変数の値に関する情報に基づいて前記入力データ項目に対して想定されている値に関する情報を想定要件情報として出力する想定要件情報出力ステップと、
を含んだことを特徴とするアプリケーション解析方法。
【請求項５】
アプリケーションのソース情報を解析することによって保守を支援する情報を提供するアプリケーション解析装置であって、
アプリケーションを構成する複数のソースプログラム、アプリケーションが使用するデータベースのレコード情報およびアプリケーションの実行制御情報を解析し、特定の入力データ項目に対応する変数および該変数の値に関する情報を抽出する変数情報抽出手段と、
前記変数情報抽出手段により抽出された変数および該変数の値に関する情報に基づいて前記入力データ項目に対して想定されている値に関する情報を想定要件情報として出力する想定要件情報出力手段と、
を備えたことを特徴とするアプリケーション解析装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションのソース情報を解析することによって保守を支援する情報を提供するアプリケーション解析プログラム、アプリケーション解析方法およびアプリケーション解析装置に関し、特に、入力データ項目についてアプリケーションが想定している値域を解析し、入力データ項目の値域の変更に伴うアプリケーションの改修内容や改修時期の分析を支援することによって、アプリケーションの計画的な保守を支援することができるアプリケーション解析プログラム、アプリケーション解析方法およびアプリケーション解析装置に関するものである。
【背景技術】
【０００２】
企業の基幹業務をシステム化したアプリケーションは、プログラムの規模が大きく、多くの人月を費やして開発されている。また長期に渡って保守・運用されており、高い品質が要求されると同時に、業務の変更などによる修正が頻繁に入るという特徴を持っている。
【０００３】
このような業務アプリケーションの保守に関する課題として、業務上の変更に伴うプログラムの改修規模の見積もりが困難であるという点が挙げられる。例えば、支店数が増えるという業務上の変更に対して、プログラムを修正する必要があるか、もしくはデータベースの項目を変換する必要がある場合、保守に大きな工数を必要とし、システム対応の遅れによってビジネスが遅れてしまうことにもなりかねず、大きな問題ともなりかねない。
【０００４】
従来、業務アプリケーション保守の場面において、プログラム開発時の仕様書は必ずしも現状に即していない場合が多いため、プログラムをツールによって分析し、セクション構造図やサブルーチン呼出し関係図などのドキュメントを自動生成したり、影響検索ツールによって特定の変数に影響を受ける文や変数を検索する手法はよく用いられている。
【０００５】
例えば、図１６に示すような４つのプログラムから構成されるアプリケーションが、支店数は５０以下という要件を想定して開発されていたとする。このときの各プログラムのソースの例を図１７に示す。支店数が今後増えるという業務上の変化に対して、従来の影響検索ツールを用いた場合、プログラムそれぞれに対して追跡の起点項目を指定することで、図１８のように、支店コードの値を格納する変数「ＳＨＩＴＥＮ」、およびその変数が使用されている行がリストアップされる。
【０００６】
なお、プログラムを解析する技術としては、単一のプログラムを解析し、エラー処理部への分岐とＩＦ文が対になった箇所を抽出し、そこでの判定条件から変数の制約条件を求める技術が特許文献１に記載されている。
【０００７】
【特許文献１】特開平９−２７４５６２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、自動生成されるドキュメントはプログラムの静的な構造だけであったり、特定の変数に影響を受ける文や変数の一覧が抽出できるだけであり、この結果を見ても、アプリケーションがどのような入力データを想定しており、その変化に対してどう影響を受けるのかを判断することができないという問題がある。
【０００９】
例えば、図１８に示した結果だけを見ても、プログラムが支店コードに対してどのような想定をしているのかを理解するには人間が内容を確認する必要があり、この影響箇所すべてを改修する必要があるのかどうかも、膨大な検索結果の各行を個々に確認する必要がある。したがって、改修作業量の正確な見積もりはこれだけではできず、業務知識を持った担当者が図１９のような想定要件表を別途作成する必要があるが、想定要件表の作成は担当者にとって大きな負担となる。ここで、想定要件表とは、アプリケーションが入力データに想定している値の一覧表である。
【００１０】
さらに改修内容を判断する際にも、同じ支店コードの変更であっても、図２０に示すように、その大きさによって改修内容が異なり、作業量に大きな違いが生じてしまう。そこで改修内容の判断を人手で行う必要があるが、改修内容の判断も保守現場における大きな負担となっている。
【００１１】
本発明は、上記に鑑みてなされたものであって、入力データ項目についてアプリケーションが想定している値域を解析し、入力データ項目の値域の変更に伴うアプリケーションの改修内容や改修時期の分析を支援することによって、アプリケーションの計画的な保守を支援することができるアプリケーション解析プログラム、アプリケーション解析方法およびアプリケーション解析装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するため、請求項１に係る発明は、アプリケーションのソース情報を解析することによって保守を支援する情報を提供するアプリケーション解析プログラムであって、アプリケーションを構成する複数のソースプログラム、アプリケーションが使用するデータベースのレコード情報およびアプリケーションの実行制御情報を解析し、特定の入力データ項目に対応する変数および該変数の値に関する情報を抽出する変数情報抽出手順と、前記変数情報抽出手順により抽出された変数および該変数の値に関する情報に基づいて前記入力データ項目に対して想定されている値に関する情報を想定要件情報として出力する想定要件情報出力手順と、をコンピュータに実行させることを特徴とする。
【００１３】
この請求項１の発明によれば、アプリケーションを構成する複数のソースプログラム、アプリケーションが使用するデータベースのレコード情報およびアプリケーションの実行制御情報を解析し、特定の入力データ項目に対応する変数および該変数の値に関する情報を抽出し、抽出した変数および該変数の値に関する情報に基づいて特定の入力データ項目に対して想定されている値に関する情報を想定要件情報として出力するよう構成したので、入力データ項目の値域の変更に伴うアプリケーションの改修内容や改修時期の分析を支援することができる。
【００１４】
また、請求項２に係る発明は、上記発明において、前記変数情報抽出手順は、抽出した変数がループ処理の制御に関係するか否かの情報をさらに抽出し、前記想定要件情報出力手順は、入力データ項目がループ処理の制御に関係する場合には、入力データ項目の値域の変更が処理時間に影響を与える可能性があることを警告として出力することを特徴とする。
【００１５】
この請求項２の発明によれば、抽出した変数がループ処理の制御に関係するか否かの情報をさらに抽出し、入力データ項目がループ処理の制御に関係する場合には、入力データ項目の値域の変更が処理時間に影響を与える可能性があることを警告として出力するよう構成したので、担当者は改修に伴う処理時間の増大を事前に認識することができる。
【００１６】
また、請求項３に係る発明は、上記発明において、前記入力データ項目の値域の変更にともなうプログラムの修正内容を前記想定要件情報出力手順により出力された想定要件情報に基づいて値域に対応させて見積る修正内容見積手順をさらにコンピュータに実行させることを特徴とする。
【００１７】
この請求項３の発明によれば、入力データ項目の値域の変更にともなうプログラムの修正内容を想定要件情報に基づいて値域に対応させて見積るよう構成したので、修正作業の見積りを支援することができる。
【００１８】
また、請求項４に係る発明は、アプリケーションのソース情報を解析することによって保守を支援する情報を提供するアプリケーション解析方法であって、アプリケーションを構成する複数のソースプログラム、アプリケーションが使用するデータベースのレコード情報およびアプリケーションの実行制御情報を解析し、特定の入力データ項目に対応する変数および該変数の値に関する情報を抽出する変数情報抽出ステップと、前記変数情報抽出ステップにより抽出された変数および該変数の値に関する情報に基づいて前記入力データ項目に対して想定されている値に関する情報を想定要件情報として出力する想定要件情報出力ステップと、を含んだことを特徴とする。
【００１９】
この請求項４の発明によれば、アプリケーションを構成する複数のソースプログラム、アプリケーションが使用するデータベースのレコード情報およびアプリケーションの実行制御情報を解析し、特定の入力データ項目に対応する変数および該変数の値に関する情報を抽出し、抽出した変数および該変数の値に関する情報に基づいて特定の入力データ項目に対して想定されている値に関する情報を想定要件情報として出力するよう構成したので、入力データ項目の値域の変更に伴うアプリケーションの改修内容や改修時期の分析を支援することができる。
【００２０】
また、請求項５に係る発明は、アプリケーションのソース情報を解析することによって保守を支援する情報を提供するアプリケーション解析装置であって、アプリケーションを構成する複数のソースプログラム、アプリケーションが使用するデータベースのレコード情報およびアプリケーションの実行制御情報を解析し、特定の入力データ項目に対応する変数および該変数の値に関する情報を抽出する変数情報抽出手段と、前記変数情報抽出手段により抽出された変数および該変数の値に関する情報に基づいて前記入力データ項目に対して想定されている値に関する情報を想定要件情報として出力する想定要件情報出力手段と、を備えたことを特徴とする。
【００２１】
この請求項５の発明によれば、アプリケーションを構成する複数のソースプログラム、アプリケーションが使用するデータベースのレコード情報およびアプリケーションの実行制御情報を解析し、特定の入力データ項目に対応する変数および該変数の値に関する情報を抽出し、抽出した変数および該変数の値に関する情報に基づいて特定の入力データ項目に対して想定されている値に関する情報を想定要件情報として出力するよう構成したので、入力データ項目の値域の変更に伴うアプリケーションの改修内容や改修時期の分析を支援することができる。
【発明の効果】
【００２２】
本発明によれば、入力データ項目の値域の変更に伴うアプリケーションの改修内容や改修時期の分析を支援するので、アプリケーションの計画的な保守を支援することができるという効果を奏する。
【００２３】
また、本発明によれば、担当者は、改修に伴う処理時間の増大を事前に認識することができるので、処理時間の増大への対応を事前に検討することができるという効果を奏する。
【００２４】
また、本発明によれば、修正作業の見積りを支援するので、アプリケーションの運用保守負担を軽減することができるという効果を奏する。
【発明を実施するための最良の形態】
【００２５】
以下に、本発明に係るアプリケーション解析プログラム、アプリケーション解析方法およびアプリケーション解析装置の実施例を図面に基づいて詳細に説明する。なお、ここでは、本発明をＣＯＢＯＬで作成されたアプリケーションに適用した場合を中心に説明するが、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００２６】
まず、本実施例１に係るアプリケーション解析装置が出力する想定要件表について説明する。本実施例１に係るアプリケーション解析装置は、注目する入力データ項目（以下「対象項目」という）を格納するファイルやデータベースを読み込むプログラムを抽出し、各プログラムに対して、各対象項目に対応する入力レコード中の変数を起点として影響検索を行う。その際に、単に波及先の変数を追跡するのではなく、波及元・波及先の変数のデータ型や桁数、比較・代入されている定数、それらの変数をインデックスとして使用している配列変数、ループ処理制御やループからの脱出条件に使用している箇所を抽出する。
【００２７】
そして、それらの情報を対象項目ごとに集約し、システム全体に渡る想定要件表として出力する。図１は、本実施例１に係るアプリケーション解析装置が出力する想定要件表を示す図である。同図に示すように、この想定要件表は、対象項目ごとに、型定義と、ループ処理使用有無、配列使用有無、下限値、上限値および比較値を示す表である。ここで、ループ処理使用有無は、ループ処理制御の変数としての使用またはループ脱出条件文での使用の有無を示し、配列使用有無は、配列のインデックスとしての使用の有無を示し、インデックスとして使用されている場合には、その配列の大きさを示す。
【００２８】
この想定要件表と、今後の入力データの変化の予測（例えば３年後に支店数を２００程度まで増加させる計画があるなど）から、プログラムの改修が今後必要になるかどうかを担当者が判断することが可能となり、計画的な保守が可能となる。
【００２９】
また、この想定要件表により、担当者は、転記されている変数の型定義にばらつきがあるかどうかも容易に把握することができ、転記の際の桁落ちなど、潜在的な障害となりうる問題を発見することが可能である。さらに、担当者は、ループ処理の制御に使用されている変数の値域を変更する場合など、値の変化に対して急に処理時間が増加するような場合がないかを判断することも可能となる。
【００３０】
次に、本実施例１に係るアプリケーション解析装置の構成について説明する。図２は、本実施例１に係るアプリケーション解析装置の構成を示す機能ブロック図である。同図に示すように、このアプリケーション解析装置１００は、構文解析部４と、構文木テーブル５と、ファイル・ＤＢレイアウトテーブル６と、プログラム−ファイル・ＤＢ関連テーブル７と、プログラムロジック解析部８と、想定要件集約部９とを有する。
【００３１】
構文解析部４は、アプリケーションを構成するソース情報すなわちソースプログラム１、レコード情報２およびジョブ制御情報３を解析し、解析結果を構文木テーブル５、ファイル・ＤＢレイアウトテーブル６およびプログラム−ファイル・ＤＢ関連テーブル７に格納する処理部であり、プログラム構文解析部４１と、スキーマ構文解析部４２と、ジョブ制御構文解析部４３とを有する。
【００３２】
プログラム構文解析部４１は、ソースプログラム１の構文解析を行って構文木を作成し、作成した構文木を構文木テーブル５に格納する処理部である。スキーマ構文解析部４２は、ファイルのレコード情報２を解析してファイル中のレコードレイアウトをファイル・ＤＢレイアウトテーブル６に格納する。ジョブ制御構文解析部４３は、ジョブ制御情報３を解析してプログラムとファイルの関係をプログラム−ファイル・ＤＢ関連テーブル７に格納する。
【００３３】
構文木テーブル５は、プログラム構文解析部４１が作成した構文木を記憶するテーブルである。図３は、構文木テーブル５が記憶する構文木の一例を示す図である。同図は、ＣＯＢＯＬプログラムの構文木を示し、プログラムの構造を木構造で表現している。
【００３４】
ファイル・ＤＢレイアウトテーブル６は、スキーマ構文解析部４２が作成したレコードレイアウトを記憶するテーブルである。図４は、ファイル・ＤＢレイアウトテーブル６の一例を示す図である。同図に示すように、このファイル・ＤＢレイアウトテーブル６は、データ項目ごとに、ファイル名、レベル、項目名、開始位置、サイズ、型定義、親項目名を記憶する。
【００３５】
プログラム−ファイル・ＤＢ関連テーブル７は、ジョブ制御構文解析部４３が解析したプログラムとファイルの関係を記憶するテーブルである。図５は、プログラム−ファイル・ＤＢ関連テーブル７の一例を示す図である。同図に示すように、このプログラム−ファイル・ＤＢ関連テーブル７は、プログラムとファイルとの入出力関係を記憶する。
【００３６】
プログラムロジック解析部８は、構文木テーブル５、ファイル・ＤＢレイアウトテーブル６およびプログラム−ファイル・ＤＢ関連テーブル７を参照し、対象項目に対応する変数を抽出するとともに、抽出した変数がループ処理の制御やループ脱出の条件に使用されているか否かの情報を抽出する処理部であり、関連プログラム抽出部８１と、関連文検索部８２と、関連項目検索部８３と、ループ終了条件検索部８４とを有する。
【００３７】
関連プログラム抽出部８１は、対象項目を含むファイルを入力するプログラムをプログラム−ファイル・ＤＢ関連テーブル７を参照して抽出する処理部である。関連文検索部８２は、ファイル・ＤＢレイアウトテーブル６を参照し、対象項目の位置を求め、その位置に対応する変数を関連プログラム抽出部８１によって抽出されたプログラムの構文木から求めて対象変数とし、その対象変数を起点としてその対象変数の値が関係する文を構文木から検索する処理部である。
【００３８】
関連項目検索部８３は、関連文検索部８２によって検索された文が他の変数への代入効果を持つ場合、代入先の変数を関連文検索部８２が構文木から文を検索する対象変数として追加する処理部である。また、この関連項目検索部８３は、対象変数の値が出力レコードに転記されている場合、そのレコードに対応するファイルを求め、関連プログラム抽出部８１がプログラムを抽出する対象のファイルとする。
【００３９】
ループ終了条件検索部８４は、関連文検索部８２によって検索された文がループ処理の制御文かループ脱出条件文であるか否かを判定し、ループ処理の制御文かループ脱出条件文である場合に、対象項目のループ処理使用フラグを「あり」とする処理部である。このループ終了条件検索部８４が、関連文検索部８２によって検索された文がループ処理の制御文かループ脱出条件文である場合に、対象項目のループ処理使用フラグを「あり」とすることによって、想定要件表１０でループ処理使用有無を示すことができる。
【００４０】
想定要件集約部９は、プログラムロジック解析部８で解析された情報に基づき想定要件表１０を作成して出力する処理部であり、比較定数抽出部９１と、項目定義抽出部９２と、要件表整形部９３とを有する。
【００４１】
比較定数抽出部９１は、プログラムロジック解析部８で抽出された文に関して、対象項目と大小比較、等値比較を行っている定数、すなわち対象変数と大小比較、等値比較を行っている定数を検索して抽出する処理部である。
【００４２】
項目定義抽出部９２は、対象項目の型定義、すなわち対象変数の型定義を抽出する処理部である。また、この項目定義抽出部９２は、対象項目、すなわち対象変数が配列のインデックス値として使われている文を検索し、その配列の定義情報より配列のサイズを抽出する。
【００４３】
要件表整形部９３は、比較定数抽出部９１および項目定義抽出部９２が抽出した情報やループ処理使用フラグに基づいて、図１に示した想定要件表１０を作成して出力する処理部である。
【００４４】
次に、プログラムロジック解析部８の処理手順について説明する。図６は、プログラムロジック解析部８の処理手順を示すフローチャートである。同図に示すように、まず、関連プログラム抽出部８１が、対象項目を含むファイルを入力とするプログラムをプログラム−ファイル・ＤＢ関連テーブル７から抽出する（ステップＳ１０１）。
【００４５】
そして、関連文検索部８２が、対象項目それぞれに対して、レコードレイアウトの位置をファイル・ＤＢレイアウトテーブル６から求め、その位置に対応するプログラム中の変数を対象変数として構文木から求める（ステップＳ１０２）。そして、関連文検索部８２は、求めた対象変数の値が関係する文を構文木から検索する（ステップＳ１０３）。
【００４６】
そして、関連項目検索部８３が、関連文検索部８２により検索された文が他の変数への代入効果があるか否かを判定し（ステップＳ１０４）、代入効果がある場合には、代入先の変数に対しても同様な検索を行うために、代入先の変数を対象変数として追加し（ステップＳ１０５）、ステップＳ１０３に戻る。
【００４７】
一方、代入効果のある文を全て処理すると、関連項目検索部８３は、対象変数の値が出力レコードに転記されているか否かを判定し（ステップＳ１０６）、転記されている場合には、対応するファイルおよびデータ項目を求めて解析の対象に追加し（ステップＳ１０７）、追加したデータ項目を対象項目として解析するためにステップＳ１０１に戻る。
【００４８】
一方、対象変数の値を出力レコードに転記している文を全て処理すると、ループ終了条件検索部８４が、関連文検索部８２により検索された文がループ処理の制御文またはループ脱出条件文であるか否かを判定し、ループ処理の制御文またはループ脱出条件文である場合には、対象項目のループ処理使用フラグを「あり」と設定する（ステップＳ１０８）。そして、プログラムロジック解析部８は、対象項目の一覧、対象変数の一覧、検索した文の一覧およびループ処理使用フラグを想定要件集約部９へ出力する（ステップＳ１０９）。
【００４９】
このように、プログラムロジック解析部８が、対象項目に関連する文を検索するとともに、検索した文がループ処理の制御文またはループ脱出条件文である場合には、対象項目のループ処理使用フラグを「あり」と設定することによって、想定要件表１０にループ処理使用有無を示すことができる。
【００５０】
次に、想定要件集約部９の処理手順について説明する。図７は、想定要件集約部９の処理手順を示すフローチャートである。同図に示すように、まず、比較定数抽出部９１が、プログラムロジック解析部８が出力した対象変数および文の一覧を用いて、対象項目と大小比較および等号比較している定数をそれぞれ上限・下限値および比較値として抽出する（ステップＳ２０１〜ステップＳ２０２）。
【００５１】
そして、項目定義抽出部９２が、構文木テーブル５およびプログラムロジック解析部８が出力した対象変数を用いて対象項目の型定義情報を構文木から抽出する（ステップＳ２０３）。また、項目定義抽出部９２は、プログラムロジック解析部８が出力した対象変数および文を用いて、対象項目を配列のインデックスとしている文を抽出し、その配列のサイズを構文木から抽出する（ステップＳ２０４）。
【００５２】
そして、要件表整形部９３が、比較定数抽出部９１により抽出された上下限値および比較値、項目定義抽出部９２により抽出された型定義情報および配列のサイズ、ならびに、プログラムロジック解析部８が出力したループ処理使用フラグを対象項目ごとにまとめて想定要件表１０として出力する（ステップＳ２０５）。
【００５３】
このように、想定要件集約部９が想定要件表１０を出力することによって、対象項目の値域の変更がアプリケーションに与える影響の分析を支援することができる。
【００５４】
上述してきたように、本実施例１では、構文解析部４がソースプログラム１、レコード情報２およびジョブ制御情報３を解析して解析結果を構文木テーブル５、ファイル・ＤＢレイアウトテーブル６、プログラム−ファイル・ＤＢ関連テーブル７に格納し、プログラムロジック解析部８が構文木テーブル５、ファイル・ＤＢレイアウトテーブル６、プログラム−ファイル・ＤＢ関連テーブル７を参照して対象項目に対応する対象変数および関連する文を抽出し、想定要件集約部９がプログラムロジック解析部８によって抽出された対象変数および文に基づき想定要件表１０を作成して出力することとしたので、対象項目の値域の変更がアプリケーションに与える影響の分析を支援し、アプリケーションの計画的な保守を支援することができる。
【００５５】
また、本実施例１では、ループ終了条件検索部８４が、関連文検索部８２によって検索された文がループ処理の制御文かループ脱出条件文であるか否かを判定し、ループ処理の制御文かループ脱出条件文である場合に、対象項目のループ処理使用フラグを「あり」とし、要件表整形部９３が、ループ処理使用フラグが「あり」である対象項目のループ処理使用有無を「あり」として想定要件表１０に示すこととしたので、担当者は、対象項目の値域の変更がループ処理に関連して処理時間の増加を招くか否かを容易に推定することができる。
【００５６】
なお、図１に示した想定要件表１０では、項目定義抽出部９２が抽出した型定義情報がそのまま示されているが、対象項目に対応する対象変数間で型定義が異なる場合には、プログラムの誤りである可能性がある。そこで、項目定義抽出部９２が抽出した型定義情報のうち同一対象項目に対して異なる型定義がある場合には、不整合項目として別途出力するようにすることもできる。図８は、不整合項目の出力例を示す図である。同図は、対象項目「ＳＨＩＴＥＮ」および「ＺＡＩＫＯ」の型定義に不整合がある場合を示している。
【００５７】
また、図１に示した想定要件表１０において、ループ処理使用有無が「あり」である入力データ項目は、値域の変更が処理時間に大きく影響する可能性が高い。したがって、ループ処理使用有無が「あり」である入力データ項目の情報だけを別途ループ処理使用項目として出力するようにすることもできる。図９は、ループ処理使用項目の出力例を示す図である。同図は、ループ処理使用項目「ＳＨＩＴＥＮ」および「ＳＯＵＫＯＮＯ」を現在の上限値とともに出力した場合を示している。
【実施例２】
【００５８】
ところで、上記実施例１では、想定要件表を出力する場合について説明したが、保守現場では、想定要件表を参照して入力データ項目の値域の変更に伴うアプリケーション修正の見積りが行われる。図１０は、入力データ項目の値域の変更に伴うアプリケーション修正見積りの一例を示す図である。同図に示すように、アプリケーション修正の見積りでは、入力データ項目の変化量に対応して、データ定義の再設計が必要になるような大規模な修正か、比較定数の書き換え程度の中規模な修正か、基本的に書き換えが不要で動作確認程度で済む小規模な修正なのかが見積もられる。
【００５９】
このような見積りは、想定要件表から人手によって行われているが、この見積りをアプリケーション解析装置が行うようにすることもできる。そこで、本実施例２では、想定要件表を用いてアプリケーション修正の見積りを行うアプリケーション解析装置について説明する。
【００６０】
まず、本実施例２に係るアプリケーション解析装置の構成について説明する。図１１は、本実施例２に係るアプリケーション解析装置の構成を示す機能ブロック図である。なお、ここでは説明の便宜上、図２に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。
【００６１】
図１１に示すように、このアプリケーション解析装置２００は、アプリケーション解析装置１００が有する機能部に加えて、修正内容見積部１２を有する。修正内容見積部１２は、想定要件表１０および分析対象項目名１１を入力し、修正内容見積表１３を出力する処理部であり、型定義確認部１２１と、比較範囲確認部１２２と、繰り返し処理確認部１２３とを有する。ここで、分析対象項目名１１は、修正内容の見積り対象とする入力データ項目（以下「分析対象項目」という）の名前である。
【００６２】
型定義確認部１２１は、分析対象項目の型定義の桁数情報を参照し、分析対象項目に格納できる値の範囲を計算する処理部である。
【００６３】
比較範囲確認部１２２は、型定義確認部１２１が計算した値の範囲を小規模修正範囲、中規模修正範囲および大規模修正範囲に分割する処理部である。この比較範囲確認部１２２は、分析対象項目の上限値・下限値の範囲外を大規模修正が必要となる範囲とする。ただし、配列のインデックスで使用されている項目の場合、０から配列サイズの範囲と、桁数から計算される範囲の重なりを求めて、その範囲外を大規模修正が必要な範囲とする。また、大規模修正が不要な範囲で、分析対象項目の上限値・下限値の範囲外となる範囲、および比較値として使われている値を、中規模修正が必要な範囲とする。また、大規模、中規模の範囲に該当しない範囲を、小規模修正が必要な範囲とする。
【００６４】
繰り返し処理確認部１２３は、比較範囲確認部１２２による分割結果に基づいて修正内容見積表１３を出力する処理部である。また、この繰り返し処理確認部１２３は、分析対象項目が繰り返し処理で使用されている場合には、値の増加に対する処理時間の増加がありうることの警告を修正内容見積表１３に含める。
【００６５】
図１２は、修正内容見積表１３の一例を示す図である。この修正内容見積表１３は、分析対象項目「ＳＨＩＴＥＮ」の値範囲と修正規模とを対応させて示している。また、分析対象項目「ＳＨＩＴＥＮ」は繰り返し処理で使用されているので、この修正内容見積表１３には、値の増加に対する処理時間の増加がありうることの警告として「ループ処理で使用」が含まれている。
【００６６】
次に、修正内容見積部１２の処理手順について説明する。図１３は、修正内容見積部１２の処理手順を示すフローチャートである。同図に示すように、まず、型定義確認部１２１が、分析対象項目名を入力し（ステップＳ３０１）、型定義の桁数情報から格納可能範囲すなわち分析対象項目に格納できる値の範囲を計算する（ステップＳ３０２）。
【００６７】
そして、比較範囲確認部１２２が、分析対象項目が配列のインデックスとして使用されているか否かを判定し（ステップＳ３０３）、配列のインデックスとして使用されている場合には、０から配列サイズまでの範囲と、格納可能範囲の重なりを計算する（ステップＳ３０４）。
【００６８】
そして、比較範囲確認部１２２は、計算した範囲の外を大規模修正範囲とし（ステップＳ３０５）、分析対象項目の上限値の最低値および下限値の最高値を計算して、その範囲を小規模修正範囲とする（ステップＳ３０６）。
【００６９】
そして、比較範囲確認部１２２は、分析対象項目に対する等号比較値があるか否かを判定し（ステップＳ３０７）、等号比較値がある場合には、小規模修正範囲から等号比較値を除外する（ステップＳ３０８）。そして、比較範囲確認部１２２は、大規模修正範囲でも小規模修正範囲でもない範囲を中規模修正範囲とする（ステップＳ３０９）。
【００７０】
そして、繰り返し処理確認部１２３が、分析対象項目のループ処理使用有無が「あり」である場合には、処理時間が増大する可能性があるとの警告を加えて（ステップＳ３１０）、修正内容見積表１３を出力する（ステップＳ３１１）。
【００７１】
このように、型定義確認部１２１が、分析対象項目の格納可能範囲を計算し、比較範囲確認部１２２が、分析対象項目の大規模修正範囲、中規模修正範囲および小規模修正範囲を計算し、繰り返し処理確認部１２３が、修正内容見積表１３を出力することによって、修正内容の見積りを支援することができる。
【００７２】
上述してきたように、本実施例２では、修正内容見積部１２が修正内容見積表１３を出力することとしたので、担当者は、入力データ項目の値域の変更に伴うアプリケーションの修正規模を簡単に見積ることができる。
【００７３】
なお、本実施例２では、入力データ項目の値域の変更に伴って必要な修正規模を見積ることとしたが、さらに、入力データ項目の値の現在の増加傾向から、中規模修正や大規模修正が必要となる時期を推定して出力するようにすることもできる。中規模修正の必要時期の推定値としては、小規模修正の境界値と現在の値の差を求め、この差を年間増加数で割り、正の値となるものを使用する。大規模修正についても同様に計算することができる。
【００７４】
図１４は、修正必要時期の推定結果を追加した修正内容見積表の一例を示す図である。同図は、入力データ項目「ＳＨＩＴＥＮ」の現在の上限値が４０で年間の増加率が８０である場合に、中規模修正が必要となる時期を１２×（９０−４０）／８０＝７．５ヶ月後と推定した結果を示している。
【００７５】
また、本実施例１および２では、アプリケーション解析装置について説明したが、アプリケーション解析装置が有する構成をソフトウェアによって実現することで、同様の機能を有するアプリケーション解析プログラムを得ることができる。そこで、このアプリケーション解析プログラムを実行するコンピュータの構成について説明する。
【００７６】
図１５は、本実施例１および２に係るアプリケーション解析プログラムを実行するコンピュータの構成を示す機能ブロック図である。同図に示すように、このコンピュータ３００は、ＲＡＭ３１０と、ＣＰＵ３２０と、ＨＤＤ３３０と、ＬＡＮインタフェース３４０と、入出力インタフェース３５０と、ＤＶＤドライブ３６０とを有する。
【００７７】
ＲＡＭ３１０は、プログラムやプログラムの実行途中結果などを記憶するメモリであり、ＣＰＵ３２０は、ＲＡＭ３１０からプログラムを読み出して実行する中央処理装置である。ＨＤＤ３３０は、プログラムやデータを格納するディスク装置であり、ＬＡＮインタフェース３４０は、コンピュータ３００をＬＡＮ経由で他のコンピュータに接続するためのインタフェースである。入出力インタフェース３５０は、マウスやキーボードなどの入力装置および表示装置を接続するためのインタフェースであり、ＤＶＤドライブ３６０は、ＤＶＤの読み書きを行う装置である。
【００７８】
そして、このコンピュータ３００において実行されるアプリケーション解析プログラム３１１は、ＤＶＤに記憶され、ＤＶＤドライブ３６０によってＤＶＤから読み出されてコンピュータ３００にインストールされる。あるいは、このアプリケーション解析プログラム３１１は、ＬＡＮインタフェース３４０を介して接続された他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読み出されてコンピュータ３００にインストールされる。そして、インストールされたアプリケーション解析プログラム３１１は、ＨＤＤ３３０に記憶され、ＲＡＭ３１０に読み出されてＣＰＵ３２０によって実行される。
【産業上の利用可能性】
【００７９】
以上のように、本発明に係るアプリケーション解析プログラム、アプリケーション解析方法およびアプリケーション解析装置は、アプリケーションプログラムの運用・保守に有用であり、特に、入力データ項目の値域が運用とともに増大していくようなアプリケーションの運用・保守に適している。
【図面の簡単な説明】
【００８０】
【図１】図１は、本実施例１に係るアプリケーション解析装置が出力する想定要件表を示す図である。
【図２】図２は、本実施例１に係るアプリケーション解析装置の構成を示す機能ブロック図である。
【図３】図３は、構文木テーブルが記憶する構文木の一例を示す図である。
【図４】図４は、ファイル・ＤＢレイアウトテーブルの一例を示す図である。
【図５】図５は、プログラム−ファイル・ＤＢ関連テーブルの一例を示す図である。
【図６】図６は、プログラムロジック解析部の処理手順を示すフローチャートである。
【図７】図７は、想定要件集約部の処理手順を示すフローチャートである。
【図８】図８は、不整合項目の出力例を示す図である。
【図９】図９は、ループ処理使用項目の出力例を示す図である。
【図１０】図１０は、入力データ項目の値域の変更に伴うアプリケーション改修見積りの一例を示す図である。
【図１１】図１１は、本実施例２に係るアプリケーション解析装置の構成を示す機能ブロック図である。
【図１２】図１２は、修正内容見積表の一例を示す図である。
【図１３】図１３は、修正内容見積部の処理手順を示すフローチャートである。
【図１４】図１４は、修正必要時期の推定結果を追加した修正内容見積表の一例を示す図である。
【図１５】図１５は、本実施例１および２に係るアプリケーション解析プログラムを実行するコンピュータの構成を示す機能ブロック図である。
【図１６】図１６は、複数のプログラムから構成されるアプリケーションの一例を示す図である。
【図１７】図１７は、アプリケーションを構成するソースプログラム、レコード定義およびＪＣＬ記述の一例を示す図である。
【図１８】図１８は、従来の影響解析ツールによる解析結果の一例を示す図である。
【図１９】図１９は、アプリケーション内での支店コードに対する想定例を示す図である。
【図２０】図２０は、支店数増加に伴うアプリケーションの修正内容の変化の一例を示す図である。
【符号の説明】
【００８１】
１    ソースプログラム
２    レコード情報
３    ジョブ制御情報
４    構文解析部
５    構文木テーブル
６    ファイル・ＤＢレイアウトテーブル
７    プログラム−ファイル・ＤＢ関連テーブル
８    プログラムロジック解析部
９    想定要件集約部
１０    想定要件表
１１    分析対象項目名
１２    修正内容見積部
１３    修正内容見積表
４１    プログラム構文解析部
４２    スキーマ構文解析部
４３    ジョブ制御構文解析部
８１    関連プログラム抽出部
８２    関連文検索部
８３    関連項目検索部
８４    ループ終了条件検索部
９１    比較定数抽出部
９２    項目定義抽出部
９３    要件表整形部
１００，２００    アプリケーション解析装置
１２１    型定義確認部
１２２    比較範囲確認部
１２３    繰り返し処理確認部
３００    コンピュータ
３１０    ＲＡＭ
３１１    アプリケーション解析プログラム
３２０    ＣＰＵ
３３０    ＨＤＤ
３４０    ＬＡＮインタフェース
３５０    入出力インタフェース
３６０    ＤＶＤドライブ
【国際調査報告】
2009011057.tif 000023
2009011057.tif 000024