(57)【要約】【課題】システムを効率よく分析すること。【解決手段】画面遷移入力部が、システムの利用者による操作を受付ける画面のソースコードに含まれる当該画面から他の画面への遷移を示す遷移情報に基づいて、遷移元の画面と遷移先の画面とを関連付けた画面遷移パターンを生成する。トップ画面候補抽出部が、画面遷移入力部によって生成された画面遷移パターンにおいて、利用者による操作が開始される画面であるトップ画面候補を決定する。ユースケース候補切出部が、画面遷移入力部によって生成された画面遷移パターンから、トップ画面候補抽出部によって決定されたトップ画面候補から遷移元の画面と遷移先の画面との関連付けが連続した一連の画面遷移パターンをユースケース候補として抽出する。ユースケース抽出部が、ユースケース候補において、トップ画面候補からの遷移頻度が高い一連の画面遷移パターンをユースケースとして抽出する。【選択図】        図２
2012108607.tif 000002
【特許請求の範囲】
【請求項１】
システムの機能を分析するシステム分析装置に適用されるシステム分析方法であって、
前記システム分析装置が、
前記システムの利用者による操作を受付ける画面のソースコードに含まれる当該画面から他の画面への遷移を示す遷移情報に基づいて、遷移元の画面と遷移先の画面とを関連付けた画面遷移パターンを生成する画面遷移生成ステップと、
前記画面遷移生成ステップによって生成された画面遷移パターンにおいて、前記利用者による操作が開始される画面であるトップ画面候補を決定するトップ画面候補決定ステップと、
前記画面遷移生成ステップによって生成された画面遷移パターンから、前記トップ画面候補決定ステップによって決定されたトップ画面候補から前記遷移元の画面と前記遷移先の画面との関連付けが連続した一連の画面遷移パターンをユースケース候補として抽出するユースケース候補切出ステップと、
前記ユースケース候補切出ステップによって抽出されたユースケース候補において、前記トップ画面候補からの遷移頻度が高い一連の画面遷移パターンを前記ユースケースとして抽出するユースケース抽出ステップと、
を有することを特徴とするシステム分析方法。
【請求項２】
前記画面遷移生成ステップは、前記画面のソースコードに対してフレームワークごとの解析を実行することを特徴とする請求項１に記載のシステム分析方法。
【請求項３】
前記ユースケース候補切出ステップは、トップ画面候補から前記遷移元の画面と前記遷移先の画面との関連付けが非再帰的に連続した一連の画面遷移パターンを前記ユースケース候補として抽出することを特徴とする請求項１に記載のシステム分析方法。
【請求項４】
前記ユースケース抽出ステップは、前記ユースケース候補に含まれる所定の画面に連続する画面を取り出す射影処理を、当該ユースケース候補における下層画面を優先し、かつ、再帰的に実行することにより、前記ユースケース候補から前記ユースケースを抽出することを特徴とする請求項１に記載のシステム分析方法。
【請求項５】
前記ユースケース抽出ステップは、前記トップ画面候補を含めて少なくとも２つ以上の画面が連続した前記ユースケースを抽出し、当該ユースケースを抽出した前記ユースケース候補における最多画面数と前記ユースケースにおける最多出現頻度とを用いて、前記抽出したユースケースを正規化した値により重み付けを実行し、
前記ユースケース抽出ステップによって実行された重み付けに基づいて、ユースケースを表示する順序を制御する制御ステップをさらに有することを特徴とする請求項１又は４に記載のシステム分析方法。
【請求項６】
システムの利用者による操作を受付ける画面のソースコードに含まれる当該画面から他の画面への遷移を示す遷移情報に基づいて、遷移元の画面と遷移先の画面とを関連付けた画面遷移パターンを生成する画面遷移生成部と、
前記画面遷移生成部によって生成された画面遷移パターンにおいて、前記利用者による操作が開始される画面であるトップ画面候補を決定するトップ画面候補決定部と、
前記画面遷移生成部によって生成された画面遷移パターンから、前記トップ画面候補決定部によって決定されたトップ画面候補から前記遷移元の画面と前記遷移先の画面との関連付けが連続した一連の画面遷移パターンをユースケース候補として抽出するユースケース候補切出部と、
前記ユースケース候補切出部によって抽出されたユースケース候補において、前記トップ画面候補からの遷移頻度が高い一連の画面遷移パターンを前記ユースケースとして抽出するユースケース抽出部と、
を有することを特徴とするシステム分析装置。
【請求項７】
システムの機能を分析するシステム分析装置としてのコンピュータに実行させるシステム分析プログラムであって、
前記システムの利用者による操作を受付ける画面のソースコードに含まれる当該画面から他の画面への遷移を示す遷移情報に基づいて、遷移元の画面と遷移先の画面とを関連付けた画面遷移パターンを生成する画面遷移生成手順と、
前記画面遷移生成手順によって生成された画面遷移パターンにおいて、前記利用者による操作が開始される画面であるトップ画面候補を決定するトップ画面候補決定手順と、
前記画面遷移生成手順によって生成された画面遷移パターンから、前記トップ画面候補決定手順によって決定されたトップ画面候補から前記遷移元の画面と前記遷移先の画面との関連付けが連続した一連の画面遷移パターンをユースケース候補として抽出するユースケース候補切出手順と、
前記ユースケース候補切出手順によって抽出されたユースケース候補において、前記トップ画面候補からの遷移頻度が高い一連の画面遷移パターンを前記ユースケースとして抽出するユースケース抽出手順と、
を前記システム分析装置としてのコンピュータに実行させることを特徴とするシステム分析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、システム分析方法、システム分析装置及びシステム分析プログラムに関する。
【背景技術】
【０００２】
従来、企業情報システムなどにおいては、新たな機能の追加等が繰り返し実行されている。このような機能追加が繰り返し実行されると、企業情報システムの設計書に対する追加機能の反映に漏れが生じてしまい、システムの現行の機能と設計書の内容とが乖離する。その結果、システムの管理者が設計書からシステムの内容を正確に把握することができず、システム更改時に不具合が生じる場合がある。
【０００３】
そこで、システムの現行の機能を正しく把握するために、リバースエンジニアリングが用いられている。例えば、オブジェクト指向プログラミング言語で記述されたソースコードに対してリバースエンジニアリングを実行することで、画面遷移やコンポーネントの構造を示すクラス名、属性名、メソッド名、クラス間の関係及び属性とメソッドの依存関係などを明らかにする技術が知られている。
【０００４】
また、リバースエンジニアリングを用いることで、ソースコードからユースケース実装クラス群を出力したり、Ｗｅｂページの内部構造を推定したりする技術も知られている。ここで、ユースケースとは、システムとシステムの外部アクター（例えば、ユーザなど）との協働関係を表現した論理モデルである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−９５９９０号公報
【特許文献２】特開２００３−１８６８８３号公報
【非特許文献】
【０００６】
【非特許文献１】Giuseppe Antonio Di Lucca, Anna Rita Fasolino, Ugo De Carlini, 「Recovering Use Case models from Object-Oriented Code: a Thread-based Approach」 IEEE WCRE 2000
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した従来技術では、システムを効率よく分析することができないという問題があった。
【０００８】
具体的には、上述した従来技術の内、特許文献１では、ソースコードを構文解析するリバースエンジニアリングが用いられることから、分析結果がデータフロー図やコールグラフ図などの物理モデルまでである。すなわち、システムにおけるユースケースなどの論理モデルを理解するためには、管理者が、得られた物理モデルから手作業で論理モデルへ変換し、分析せざるを得ず、システムを効率よく分析することができない。また、非特許文献１のソースコードからユースケース実装クラス群を出力する技術では、ユーザからの入力を保持するメソッドからユーザへの出力を保持するメソッド間のメソッド経路上のクラスをユースケース実装クラス群としていることから、不必要なメソッドが抽出されることにより、出力されるユースケース数が膨大となり、システムを効率よく分析することができない。
【０００９】
そこで、本開示の技術は、上述した従来技術の問題に鑑みて、システムを効率よく分析することを可能とするシステム分析方法、システム分析装置及びシステム分析プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するため、開示の方法は、システムの機能を分析するシステム分析装置に適用されるシステム分析方法であって、画面遷移生成ステップが、前記システムの利用者による操作を受付ける画面のソースコードに含まれる当該画面から他の画面への遷移を示す遷移情報を構文解析することにより、遷移元の画面と遷移先の画面とを関連付けた画面遷移を生成する。そして、トップ画面候補決定ステップが、前記画面遷移生成ステップによって生成された画面遷移において、前記利用者による操作が開始される画面であるトップ画面候補を決定する。そして、ユースケース候補切出ステップが、前記画面遷移生成ステップによって生成された画面遷移から、前記トップ画面候補決定ステップによって決定されたトップ画面候補から遷移元の画面と遷移先の画面との関連付けが連続した一連の画面遷移をユースケース候補として切り出す。そして、ユースケース抽出ステップが、前記ユースケース候補切出ステップによって切り出されたユースケース候補において、前記トップ画面候補からの遷移頻度に基づいた重み付けを実行し、重み付けの値が高い一連の画面遷移をユースケースとして抽出する。
【発明の効果】
【００１１】
開示の方法は、システムを効率よく分析することを可能にする。
【図面の簡単な説明】
【００１２】
【図１】図１は、本願の開示するシステム分析方法の全体像を説明するための図である。
【図２】図２は、実施例１に係るシステム分析装置の構成の一例を説明するための図である。
【図３】図３は、画面遷移入力部による処理の一例を模式的に示す図である。
【図４】図４は、トップ画面候補抽出部による処理の一例を模式的に示す図である。
【図５】図５は、ユースケース候補切出部による画面遷移の有向グラフ化の一例を模式的には示す図である。
【図６】図６は、深さ優先探索を説明するための図である。
【図７】図７は、ユースケース候補切出部による処理の一例を説明するための図である。
【図８】図８は、ユースケース抽出部による出現頻度の算出の手法を説明するための図である。
【図９】図９は、ユースケース抽出部による重み付け処理の一例を説明するための図である。
【図１０】図１０は、ユースケース出力部による表示制御の一例を説明するための図である。
【図１１】図１１は、抽出したユースケースと、ソースコードのトレーサビリティを付与したアウトプット例１を示す図である。
【図１２】図１２は、ユースケースのアウトプット例２を示す図である。
【図１３】図１３は、実施例１に係るシステム分析装置による分析処理の手順を示すフローチャートである。
【図１４】図１４は、実施例１に係るシステム分析装置における処理の流れを示すシーケンス図である。
【図１５】図１５は、システム分析プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照して、本願の開示するシステム分析方法、システム分析装置及びシステム分析プログラムの実施例を詳細に説明する。なお、本願の開示するシステム分析方法、システム分析装置およびシステム分析プログラムは、以下の実施例により限定されるものではない。
【実施例１】
【００１４】
まず、本願の開示するシステム分析方法の全体像について、図１を用いて説明する。図１は、本願の開示するシステム分析方法の全体像を説明するための図である。図１においては、ＲＤＢ（Relational Data Base）及びシステムプロセスそれぞれに対するリバースエンジニアリングを用いた分析について模式的に示している。
【００１５】
図１に示すように、本願の開示するシステム分析方法は、システムプロセスのソースコードを構文解析するリバースエンジニアリングによって出力された物理モデルのコールグラフ、データフロー図等から論理モデルのユースケースを抽出する。上述したように、システムの管理者がシステム要件を正確に把握するためには、データで表現された物理モデルを抽象化し、実体や関連、属性などで表現された論理モデルを用いることが望ましい。
【００１６】
すなわち、本願の開示するシステム分析方法は、従来、手作業で行っていた論理モデルの生成を自動で実行することで、システム更改時などに係るシステムの分析を効率よく行うことを可能にする。例えば、本願の開示するシステム分析方法によって抽出されたユースケースは、図１に示すように、システム要件に反映され、システム更改やメンテナンス等に利用される。なお、システム要件には、ＲＤＢに対するリバースエンジニアリングによって出力されたＥＲ（entity-relationship）図なども反映される。
【００１７】
実施例１に係るシステム分析装置は、外部アクターによってアクセスされる画面の情報に基づいて、システム要件（ユースケース）を抽出する。まず、実施例１に係るシステム分析装置は、画面のソースコードに含まれる画面の遷移情報から画面遷移を生成する。そして、実施例１に係るシステム分析装置は、生成した画面遷移を有向グラフとしてユースケースの候補を抽出する。その後、実施例１に係るシステム分析装置は、抽出したユースケースの候補に対して出現頻度に基づいた重み付けを実行してユースケースを抽出する。
【００１８】
従って、実施例１に係るシステム分析装置は、分析結果として、システムの現行の機能おいて重要な機能を論理モデルで優先的に出力することで、出力するユースケースモデルの選別ができる。すなわち、実施例１に係るシステム分析装置によれば、システムを効率よく分析することを可能にする。例えば、実施例１に係るシステム分析装置は、システム更改における管理者の手間を削減し、分析コストを軽減することが可能である。
【００１９】
［実施例１に係るシステム分析装置の構成］
実施例１に係るシステム分析装置１００の構成について説明する。図２は、実施例１に係るシステム分析装置１００の構成の一例を示す図である。実施例１に係るシステム分析装置１００は、図２に示すように、入出力制御Ｉ／Ｆ部１０と、入力部２０と、表示部３０と、データベース４０と、制御部５０とを有する。なお、実施例１に係るシステム分析装置１００においては、図示しないシステムと接続され、当該システムから画面遷移を生成するためのソースコード群を取得し、取得したソースコード群を用いてシステムを分析する。ここでいうシステムとは、例えば、企業情報システムなどである。また、以下では、実施例１に係るシステム分析装置が、分析用の専用装置である場合について説明するが、開示の技術はこれに限定されるものではなく、例えば、システム内のサーバに開示の技術を適用する場合であってもよい。
【００２０】
入出力制御Ｉ／Ｆ部１０は、図示しないシステム、入力部２０、表示部３０と制御部５０との間での各種情報のやり取りを制御するインタフェースである。入力部２０は、例えば、分析者による種々の情報の入力処理を受付ける。例えば、入力部２０は、キーボードやタッチパネルなどである。表示部３０は、例えば、分析者に対して解析結果を表示出力する。例えば、表示部３０は、ディスプレイなどである。
【００２１】
データベース４０は、後述する制御部５０の処理に用いられる各種情報や、処理結果などを記憶する。データベース４０は、例えば、ＲＡＭ（Random Access Memory）、フラッシュメモリ（Flash Memory）などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。
【００２２】
制御部５０は、図２に示すように、画面遷移入力部５１と、トップ画面候補抽出部５２と、ユースケース候補切出部５３と、ユースケース抽出部５４と、ユースケース出力部５５とを有する。制御部５０は、例えば、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）などの集積回路、または、ＣＰＵ（Central Processing Unit）やＭＰＵ（Micro Processing Unit）などの電子回路である。
【００２３】
画面遷移入力部５１は、図示しないシステムから外部アクターによってアクセスされる画面の情報を取得して、画面オブジェクト間の遷移をモデル化した画面遷移を生成し、生成した画面遷移をデータベース４０に格納する。具体的には、画面遷移入力部５１は、リバースエンジニアリングで用いられるフレームワークごとの解析手法を利用して、構文解析を行うことで、取得したソースコードから画面オブジェクト間の遷移を関連付けした画面遷移を生成する。
【００２４】
ここで、画面遷移入力部５１による処理の一例を説明する。画面遷移入力部５１は、システムからソースコードを取得すると、まず、フレームワークが用いられているか否かを判定する。例えば、画面遷移入力部５１は、ＷＥＢ−ＩＮＦディレクトリ等、ｗｅｂ．ｘｍｌのｃｏｎｆｉｇ初期化パラメータで指定されたパスにｓｔｒｕｔｓ−ｃｏｎｆｉｇ．ｘｍｌが存在するか否かを判定する。そして、画面遷移入力部５１は、ｓｔｒｕｔｓ−ｃｏｎｆｉｇ．ｘｍｌが存在した場合には、Ｓｔｒｕｔｓフレームワークが用いられていると判定して、すべてのｊｓｐファイルとＨＴＭＬファイルとｓｔｒｕｔｓ−ｃｏｎｆｉｇ．ｘｍｌとを読込む。そして、画面遷移入力部５１は、読込んだすべてのｊｓｐファイルとｓｔｒｕｔｓ−ｃｏｎｆｉｇ．ｘｍｌからｊｓｐファイルのｆｏｒｍタグのａｃｔｉｏｎ属性とａｃｔｉｏｎ要素のｐａｔｈ属性のアクション名とを対応付ける。
【００２５】
さらに、画面遷移入力部５１は、ｓｔｒｕｔｓ−ｃｏｎｆｉｇ．ｘｍｌのから上記アクション名で定義されているｆｏｒｗａｒｄ要素のｐａｔｈ属性を抽出して、対応するｊｓｐファイルの間にリンクを付与する。すなわち、画面遷移入力部５１は、ｓｔｒｕｔｓ−ｃｏｎｆｉｇ．ｘｍｌ内のａｃｔｉｏｎ−ｍａｐｐｉｎｇ要素に記述された「ａｃｔｉｏｎ  ｐａｔｈ」を遷移元とし、「ｆｏｒｗｏｒｄ  ｐａｔｈ」を遷移先としたリンクを付与する。そして、画面遷移入力部５１は、すべてのｊｓｐファイルに対して上述した処理を実行することで、ｊｓｐファイルとファイル間リンクを示す画面遷移を生成する。
【００２６】
また、例えば、画面遷移入力部５１は、ｃｌａｓｓファイルとｈｔｍｌファイルが１対１に対応していた場合には、Ｔｅｅｄａフレームワークが用いられていると判定して、すべてのｈｔｍｌファイルを読込み、ｈｔｍｌファイルの中で、戻り値に指定されたクラス名と同名のｈｔｍｌファイルを対応付け、両者の間にリンクを付与する。画面遷移入力部５１は、すべてのｈｔｍｌファイルに対して上述した処理を実行することで、ｈｔｍｌファイルとファイル間リンクを示す画面遷移を生成する。
【００２７】
なお、画面遷移入力部５１は、各ファイルに対して構文解析を行うことにより上述した処理を実行する。図３は、画面遷移入力部５１による処理の一例を模式的に示す図である。図３に示すように、画面遷移入力部５１は、Ａ〜Ｉまでの画面ファイルにおいて遷移元と遷移先とをリンク付けした画面遷移を生成する。そして、画面遷移入力部５１は、生成した画面遷移をデータベース４０に格納する。
【００２８】
図２に戻って、トップ画面候補抽出部５２は、画面遷移入力部５１によって生成された画面遷移において外部アクターの入口となるトップ画面候補を抽出する。具体的には、トップ画面候補抽出部５２は、データベース４０から画面遷移を読み込み、読み込んだ画面遷移における各画面ファイルの中で、ファイル名として使用頻度が高いファイルや使用頻度が高い文字列を含むファイルをトップ画面候補として抽出する。例えば、トップ画面候補抽出部５２は、ｗｅｌｃｏｍｅファイルリスト等に設定されたファイル、或いは、画面ファイル名にｉｎｄｅｘ、ｄｅｆａｕｌｔ、ｈｏｍｅ、ｆｒｏｎｔ、ｔｏｐ、ｅｎｔｒａｎｃｅ等の文字列を含むファイルをトップ画面候補として抽出する。
【００２９】
図４は、トップ画面候補抽出部５２による処理の一例を模式的に示す図である。例えば、トップ画面候補抽出部５２は、図４に示すように、画面ファイル名に「ｉｎｄｅｘ」が含まれている画面をトップ画面候補として抽出する。なお、これらのトップ画面候補を抽出するための文字列は、分析者によって予め任意に決定され、データベース４０に格納されている。
【００３０】
図２に戻って、ユースケース候補切出部５３は、画面遷移入力部５１によって生成された画面遷移からユースケース候補を切り出し、切り出したユースケース候補をデータベース４０に格納する。具体的には、ユースケース候補切出部５３は、まず、画面遷移入力部５１によって生成された画面遷移をデータベース４０から読み込み、トップ画面候補抽出部５２によって抽出されたトップ画面候補を始点とした有向グラフとする。
【００３１】
ユースケース候補切出部５３は、図５に示すように、画面遷移入力部５１によって生成された画面遷移を、トップ画面候補抽出部５２によってトップ画面として抽出された画面ファイルＡを第１階層とし、各画面を第１〜４階層に区分けした有向グラフとする。
【００３２】
そして、ユースケース候補切出部５３は、トップ画面候補の画面ファイルを始点として、グラフ構造解析によるグラフ探索を実行して、画面遷移のパターンを切り出す。ユースケース候補切出部５３は、切り出した画面遷移のパターンをユースケース候補としてデータベース４０に格納する。
【００３３】
ここで、ユースケース候補切出部５３によるグラフ探索について説明する。ユースケース候補切出部５３は、トップ画面候補から再帰構造を持たない深さ優先探索を実行する。図６は、深さ優先探索を説明するための図である。図６に示すように、深さ優先探索では、始点Ａから有向グラフの辺の向きに順次探索する探索方法である。ここで、ユースケース候補切出部５３は再帰構造を持たない深さ優先探索を実行することから、例えば、図６に示すグラフを探索する場合には、「Ａ→Ｂ→Ｄ」と探索した後、図６に示すように再度「Ｂ」に戻ることはせず、「Ａ→Ｂ→Ｄ」を１つのパターンとして切り出し、その後は「Ａ→Ｂ→Ｅ」の探索を行う。
【００３４】
図７は、ユースケース候補切出部５３による処理の一例を説明するための図である。図７においては、ユースケース候補切出部５３が、図５に示す有向グラフからユースケース候補を切り出し、データベース４０に格納したユースケース候補を示している。なお、図７に示す「１〜５」の数字は、ユースケース候補切出部５３によって切り出された画面繊維パターンを一意に識別するための識別番号を示している。なお、識別番号は、ユースケース候補切出部５３が切り出した画面遷移パターンにシーケンシャルに付与する。また、図７に示す「系列」とは、ユースケース候補切出部５３がユースケース候補として切り出した画面遷移パターンを意味している。
【００３５】
例えば、ユースケース候補切出部５３は、図７に示すように、「識別番号：１、系列：Ａ／Ｂ／Ｄ／Ｉ／Ｊ」をユースケース候補として切り出し、切り出したユースケース候補をデータベース４０に格納する。同様に、ユースケース候補切出部５３は、図７に示す識別番号２〜５の系列をユースケース候補として切り出し、切り出したユースケース候補をデータベース４０に格納する。
【００３６】
図２に戻って、ユースケース抽出部５４は、ユースケース候補切出部５３によって切り出された複数のユースケース候補において、画面間を遷移する頻度が高い一連の画面をユースケースとして抽出する。具体的には、ユースケース抽出部５４は、データベース４０からユースケース候補を読み込み、読み込んだユースケース候補に対して出現頻度に基づいた重み付けを実行する。そして、ユースケース抽出部５４は、重み付けを付与したユースケース候補をデータベース４０に格納する。
【００３７】
ここで、まず、ユースケース抽出部５４によって実行されるユースケース候補の出現頻度の算出について説明する。ユースケース抽出部５４は、系列パターン分析の代表的なアルゴリズムであるＰｒｅｆｉｘＳｐａｎを利用して出現頻度を算出する。具体的には、ユースケース抽出部５４は、特定の要素に続く系列を取り出す射影を深さ優先で再帰的に実行する。図８は、ユースケース抽出部５４による出現頻度の算出の手法を説明するための図である。
【００３８】
例えば、図８に示すように、ユースケース候補切出部５３によって識別番号「１〜４」のユースケース候補が切り出されると、ユースケース抽出部５４は、まず、各系列に含まれる画面ファイル（図８においては、Ａ〜Ｄで示している）の出現頻度を計数する。すなわち、ユースケース抽出部５４は、図８に示すように、「Ａ：３、Ｂ：２、Ｃ：１、Ｄ：３」を計数する。
【００３９】
そして、ユースケース抽出部５４は、射影を実行することで、各系列において計数した画面ファイルに続く他の画面ファイルを抽出する。例えば、図８に示すように、ユースケース抽出部５４は、画面ファイル「Ａ」に続く他の画面ファイルを「識別番号：１、画面ファイル：Ｂ  Ｃ  Ｄ」を抽出する。同様に、ユースケース抽出部５４は、図８に示すように、画面ファイル「Ａ」に続く他の画面ファイルを「識別番号：２」及び「識別番号：３」においてそれぞれ抽出する。
【００４０】
ユースケース抽出部５４は、図８に示すように、この射影を画面ファイル「Ｂ」及び「Ｃ」についても実行する。ユースケース抽出部５４は、図８に示すように、上述した処理を繰り返し実行することで、出現頻度が高いパターンを抽出する。例えば、仮に、出現頻度「２回」以上、画面ファイル数２以上を抽出すると設定されていた場合には、ユースケース抽出部５４は、図８に示すように、「ＡＢＤ：２、ＡＢ：２、ＡＤ：３、ＢＤ：２」を抽出する。
【００４１】
ここで、ユースケース抽出部５４は、抽出した画面遷移のパターンに対してさらに処理を実行することで重み付けを行う。具体的には、ユースケース抽出部５４は、トップ画面候補から連続した２つ以上の画面ファイルを対象として、最大画面ファイル数及び最多出現頻度それぞれの最大値を「１」、最小値を「０」として正規化した値の二乗和の平方根の値を算出し、算出した値を各系列の重み付けとする。すなわち、ユースケース抽出部５４は、(自系列の画面ファイル数／最大画面ファイル数)2＋(自系列の出現頻度／最多出現頻度)2の平方根を重み付けとして算出する。
【００４２】
図９は、ユースケース抽出部５４による重み付け処理の一例を説明するための図である。図９においては、ユースケース抽出部５４が、図７に示すユースケース候補に対して重み付けを行った例を示している。例えば、ユースケース候補切出部５３によって図７に示すユースケース候補が切り出されると、ユースケース抽出部５４は、図９に示すように、「系列：Ａ／Ｂ、出現頻度：５」の「重み付け：０．９」と「系列：Ａ／Ｂ／Ｃ／Ｄ／Ｅ／／Ｉ、出現頻度：３」の「重み付け：１．０２」をそれぞれ算出する。
【００４３】
上述した重み付けについて説明すると、ユースケース抽出部５４は、図７に示すユースケース候補に対して射影を実行することによりトップ画面候補から連続した２つ以上の画面ファイルを有し、かつ、出現頻度が「２回」以上の系列である「系列：Ａ／Ｂ」及び「系列：Ａ／Ｂ／Ｃ／Ｄ／Ｅ／／Ｉ」をユースケースとして抽出する。そして、ユースケース抽出部５４は、最大画面ファイル数（図７に示す「Ａ／Ｂ／Ｃ／Ｄ／Ｅ／Ｆ／Ｇ／Ｉ／Ｊ」の数＝９）及び最多出現頻度（系列「Ａ／Ｂ」の出現頻度＝５）に基づいて、「重み付け：０．９」と「重み付け：１．０２」とを算出する。
【００４４】
例えば、ユースケース抽出部５４は、ユースケース「系列：Ａ／Ｂ、出現頻度：５」の重み付けとして、(２／９)2＋(５／５)2の平方根である「０．９」を算出する。同様に、ユースケース抽出部５４は、ユースケース「系列：Ａ／Ｂ／Ｃ／Ｄ／Ｅ／／Ｉ、出現頻度：３」の重み付けとして、(６／９)2＋(３／５)2の平方根である「１．０２」を算出する。そして、ユースケース抽出部５４は、重み付けしたユースケースをデータベース４０に格納する。
【００４５】
図２に戻って、ユースケース出力部５５は、ユースケース抽出部５４によって抽出されたユースケースをデータベース４０から読み込み、表示部３０に表示させるように制御する。具体的には、ユースケース出力部５５は、ユースケース抽出部５４によって算出された重み付けの値が高いユースケースから順に表示部３０に表示させるように制御する。例えば、ユースケース出力部５５は、「重み付け：１．０２」のユースケース「系列：Ａ／Ｂ／Ｃ／Ｄ／Ｅ／／Ｉ」を表示部３０に表示させる。その後、ユースケース出力部５５は、「重み付け：０．９」のユースケース「系列：Ａ／Ｂ」を表示部３０に表示させる。
【００４６】
図１０は、ユースケース出力部５５による表示制御の一例を説明するための図である。図１０においては、１つのユースケースを表示部３０に表示させた状態を示している。例えば、ユースケース出力部５５は、図１０に示すように、画面で表したユースケースにソースコードを対応付けて表示部３０に表示させる。以下では、図１１及び図１２を用いて、抽出したユースケースのアウトプット例について説明する。図１１は、抽出したユースケースと、ソースコードのトレーサビリティを付与したアウトプット例１を示す図である。
【００４７】
例えば、ユースケース出力部５５は、図１１に示すように、ユースケースを構成する各画面に紐づいているｊａｖａソースコードをｄｏｘｙｇｅｎなどのソースコードドキュメンテーションツールによりソースコードの呼出し関係を可視化させている。同様に、画面に紐づいているソースコードのコメントを解析順に時系列に並べることで、処理の流れを表し、画面で表したユースケースに対応付ける。さらに、ユースケース出力部５５は、図１１に示すように、画面のタイトルを１つの機能とし、それらの機能を紐付けた機能一覧を画面で表したユースケースに対応付ける。このようなアウトプットを表示部３０に表示させることによって、分析者はユースケースをより明確に把握しやすくなるとともに、システム更改時の物理モデルの改変も容易に行うことが可能になる。
【００４８】
図１２は、ユースケースのアウトプット例２を示す図である。例えば、ユースケース出力部５５は、図１２に示すように、画面と、処理の内容と、内部処理を表すソースコードとを対応付けたアウトプットを表示部３０に表示させる。このようなアウトプットを表示させることによって、プロセスを可視化することができ、分析者はシステムにおける機能の流れを容易に理解することができる。
【００４９】
なお、上述した実施例では、１つのトップ画面候補の画面遷移を用いて各種処理を説明した。しかしながら、実際には、実施例１に係るシステム分析装置１００は、複数のトップ画面候補の画面遷移を対象として上述した各種処理を実行している。また、上述した実施例１においては、１つのトップ画面候補の画面遷移から抽出したユースケースを重み付けの高い順に表示する場合について説明した。しかしながら、開示の技術はこれに限定されるものではなく、例えば、複数のトップ画面候補の画面遷移から抽出した複数のユースケースにおいて重み付けの高い順にユースケースを表示させる場合であってもよい。
【００５０】
［実施例１に係るシステム分析装置による処理の手順］
次に、実施例１に係るシステム分析装置１００による処理の手順を説明する。以下では、まず、実施例１に係るシステム分析装置１００による分析処理の手順を説明した後、実施例１に係るシステム分析装置１００における処理の流れを説明する。
【００５１】
［実施例１に係る解析システムによる分析処理の手順］
まず、実施例１に係るシステム分析装置１００による分析処理の手順を説明する。図１３は、実施例１に係るシステム分析装置１００による分析処理の手順を示すフローチャートである。図１３に示すように、実施例１に係るシステム分析装置１００においては、分析開始コマンドが実行されると（ステップＳ１０１肯定）、画面遷移入力部５１が、画面のソースコードに基づいて、画面遷移を生成する（ステップＳ１０２）。
【００５２】
そして、トップ画面候補抽出部５２が、画面遷移入力部５１によって生成された画面遷移から、画面ファイル名に含まれる文字列などに基づいてトップ画面候補を抽出する（ステップＳ１０３）。その後、ユースケース候補切出部５３が、トップ画面候補を始点としたグラフ構造解析により画面遷移からユースケース候補を抽出する（ステップＳ１０４）。
【００５３】
続いて、ユースケース抽出部５４が、ユースケース候補の出現頻度に基づいて系列パターンを分析して、重み付けすることにより、ユースケース候補切出部５３によって抽出されたユースケース候補の中から、外部アクターが高頻度で用いる重要なユースケースを抽出する（ステップＳ１０５）。そして、ユースケース出力部５５が、ユースケース抽出部５４によって重み付けされたユースケースの中から、重み付けの高いユースケースから順に表示部３０に出力して（ステップＳ１０６）、処理を終了する。なお、システム分析装置１００は、分析開始コマンドが実行されるまで、待機状態である（ステップ１０１否定）。
【００５４】
［実施例１に係るシステム分析装置における処理の流れ］
次に、実施例１に係るシステム分析装置における処理の流れを説明する。図１４は、実施例１に係るシステム分析装置における処理の流れを示すシーケンス図である。なお、図１４においては、図２に示す各部を機能別に分類した場合の処理の流れを示している。すなわち、図１４に示すように、画面遷移入力部５１とユースケース出力部５５とを入出力を制御するコントローラ工程とし、トップ画面候補抽出部５２と、ユースケース候補切出部５３と、ユースケース抽出部５４とをユースケースを抽出するユースケース抽出工程とした場合のシーケンス図を示している。なお、これらの機能的分類は、図１４に示すものに限られない。
【００５５】
図１４に示すように、実施例１に係るシステム分析装置１００においては、外部アクターであるユーザがシステム内の機能を用いるための画面の遷移情報が入力されると（ステップＳ２０１）、コントローラ工程の画面遷移入力部５１が、画面オブジェクト間の遷移をモデル化した画面遷移を生成し、生成した画面遷移をデータベース４０に格納する（ステップＳ２０２）。遷移画面がデータベース４０に格納されると、ユースケース抽出工程のトップ画面候補抽出部５２がデータベース４０から画面ファイル名を読み込み（ステップＳ２０３）、トップ画面候補を抽出する。
【００５６】
そして、トップ画面候補抽出部５２がトップ画面候補をデータベース４０に格納すると（ステップＳ２０４）、ユースケース候補切出部５３が、データベース４０から画面遷移を読み込み（ステップＳ２０５）、ユースケース候補を切り出す。続いて、ユースケース候補切出部５３が、切り出したユースケース候補をデータベース４０に保存すると（ステップＳ２０６）、ユースケース抽出部５４が、ユースケース候補を読み込み（ステップＳ２０７）、ユースケースを抽出する。そして、ユースケース抽出部５４が、遷移頻度が高いユースケースをデータベース４０に保存すると（ステップＳ２０８）、コントローラ工程のユースケース出力部５５が、遷移頻度の高いユースケースをデータベース４０から出力させ（ステップＳ２０９）、ユーザに提示する（ステップＳ２１０）。
【００５７】
［実施例１の効果］
上述したように、実施例１によれば、画面遷移入力部５１が、システムの利用者による操作を受付ける画面のソースコードに含まれる当該画面から他の画面への遷移を示す遷移情報に基づいて、遷移元の画面と遷移先の画面とを関連付けた画面遷移を生成する。トップ画面候補抽出部５２が、画面遷移入力部５１によって生成された画面遷移において、利用者による操作が開始される画面であるトップ画面候補を決定する。ユースケース候補切出部５３が、画面遷移入力部５１によって生成された画面遷移から、トップ画面候補抽出部５２によって決定されたトップ画面候補から遷移元の画面と遷移先の画面との関連付けが連続した一連の画面遷移パターンをユースケース候補として抽出する。ユースケース抽出部５４が、ユースケース候補切出部５３によって抽出されたユースケース候補において、トップ画面からの遷移頻度が高い一連の画面遷移パターンをユースケースとして抽出する。従って、実施例１に係るシステム分析装置１００は、従来、手作業で行っていた論理モデルの生成を自動で実行することができ、システム更改時などに係るシステムの分析を効率よく行うことを可能にする。
【００５８】
また、実施例１によれば、画面遷移入力部５１は、画面のソースコードに対してフレームワークごとの解析を実行する。従って、実施例１に係るシステム分析装置１００は、種々のフレームワークが用いられているシステムに対しても対応することができ、システムの分析をより効率よく行うことを可能にする。
【００５９】
また、実施例１によれば、ユースケース候補切出部５３は、トップ画面候補から遷移元の画面と遷移先の画面との関連付けが非再帰的に連続した一連の画面遷移パターンをユースケース候補として抽出する。従って、実施例１に係るシステム分析装置１００は、プロセスごとに詳細な分析を行うことを可能にする。
【００６０】
また、実施例１によれば、ユースケース抽出部５４は、ユースケース候補に含まれる所定の画面に連続する画面を取り出す射影処理を、当該ユースケース候補における下層画面を優先し、かつ、再帰的に実行することにより、ユースケース候補からユースケースを抽出する。従って、実施例１に係るシステム分析装置１００は、出現頻度が高いユースケースを効率的に抽出することを可能にする。
【００６１】
また、実施例１によれば、ユースケース抽出部５４は、トップ画面候補を含めて少なくとも２つ以上の画面が連続したユースケースを抽出し、当該ユースケースを抽出したユースケース候補における最多画面数とユースケースにおける最多出現頻度とを用いて、抽出したユースケースを正規化した値により重み付けを実行する。そして、ユースケース出力部５５は、ユースケース抽出部５４によって実行された重み付けに基づいて、ユースケースを表示する順序を制御する。従って、実施例１に係るシステム分析装置１００は、分析結果として、システムの現行の機能おいて重要な機能を論理モデルで優先的に出力することができ、システムをさらに効率よく分析することを可能にする。また、実施例１に係るシステム分析装置１００は、正規化した値によって重み付けすることにより、出現頻度の差を明確にすることが可能となる。
【実施例２】
【００６２】
これまで実施例１を説明したが、本願が開示する技術は実施例１に限定されるものではない。すなわち、開示の技術は、その他の様々な形態で実施されることが可能であり、種々の省略、置き換え、変更を行うことができる。
【００６３】
（１）重み付け
上述した実施例１では、重み付けとして、最大画面ファイル数及び最多出現頻度それぞれの最大値を「１」、最小値を「０」として正規化した値の二乗和の平方根の値を用いる場合について説明した。しかしながら、開示の技術はこれに限定されるものではなく、例えば、ユースケースに含まれる画面ファイル数と出現頻度とを乗算した値を用いる場合であってもよい。
【００６４】
（２）ユースケースの抽出
上述した実施例１では、トップ画面候補から連続した２つ以上の画面ファイルを有し、かつ、出現頻度が「２回」以上の系列をユースケースとして抽出する場合について説明した。しかしながら、開示の技術はこれに限定されるものではなく、画面ファイルの数や出現頻度は、分析者によって任意に設定することができる。例えば、画面ファイルの数及び出現頻度をそれぞれ「３つ」以上、「３回」以上とする場合であってもよい。
【００６５】
（３）システム構成等
例えば、各装置の分散・統合の具体的形態（例えば、図２の形態）は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合することができる。一例を挙げると、トップ画面候補抽出部５２とユースケース候補切出部５３とを一つの処理部として統合してもよく、一方、データベース４０を、画面遷移を記憶する画面遷移用データベースと、処理結果を記憶する処理結果データベースとに分散してもよい。
【００６６】
また、制御部５０をシステム分析装置１００の外部装置としてネットワーク経由で接続するようにしてもよく、或いは、トップ画面候補抽出部５２、ユースケース候補切出部５３を別の装置がそれぞれ有し、ネットワークに接続されて協働することで、上述したシステム分析装置１００の機能を実現するようにしてもよい。
【００６７】
（４）システム分析プログラム
ところで、上述した実施例１では、ハードウェアロジックによって各種の処理を実現する場合を説明したが、開示の技術はこれに限定されるものではなく、予め用意されたプログラムをコンピュータで実行するようにしてもよい。そこで、以下では、図１５を用いて上述した実施例１に示したシステム分析装置１００と同様の機能を有するシステム分析プログラムを実行するコンピュータの一例を説明する。図１５は、システム分析プログラムを実行するコンピュータを示す図である。
【００６８】
図１５に示すように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ（Central  Processing  Unit）１０２０と、ハードディスクドライブインタフェース１０３０とを有する。また、図１０に示すように、コンピュータ１０００は、例えば、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有し、これらの各部はバス１０８０によって接続される。
【００６９】
メモリ１０１０は、図１５に示すように、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ（Random  Access  Memory）１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、図１５に示すように、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、図１５に示すように、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、図１５に示すように、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、図１５に示すように、例えばディスプレイ１１３０に接続される。
【００７０】
ここで、図１５に示すように、ハードディスクドライブ１０９０は、例えば、ＯＳ（Operating  System）１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、システム分析プログラムは、コンピュータ１０００によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクに記憶される。具体的には、上述した実施例で説明した画面遷移入力部５１と同様の情報処理を実行する画面遷移生成手順と、トップ画面候補抽出部５２と同様の情報処理を実行するトップ画面候補決定手順と、ユースケース候補切出部５３と同様の情報処理を実行するユースケース候補切出手順と、ユースケース抽出部５４と同様の情報処理を実行する抽出手順と、ユースケース出力部５５と同様の情報処理を実行する制御手順とが記述されたプログラムモジュールが、ハードディスクに記憶される。
【００７１】
また、上述した実施例で説明したデータベース４０に記憶されるデータのように、システム分析プログラムによる情報処理に用いられるデータは、プログラムデータとして、例えばハードディスクに記憶される。そして、ＣＰＵ１０２０が、ハードディスクに記憶されたプログラムモジュールやプログラムデータを必要に応じてＲＡＭ１０１２に読み込み、画面遷移生成手順、トップ画面候補決定手順、ユースケース候補切出手順、抽出手順、制御手順を実行する。
【００７２】
なお、解析プログラムに係るプログラムモジュールやプログラムデータは、ハードディスクに記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、解析プログラムに係るプログラムモジュールやプログラムデータは、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶され、ネットワークインタフェースを介してＣＰＵ１０２０によって読み出されてもよい。
【００７３】
これらの実施例やその変形は、本願が開示する技術に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００７４】
４０  データベース
５１  画面遷移入力部
５２  トップ画面候補抽出部
５３  ユースケース候補切出部
５４  ユースケース抽出部
５５  ユースケース出力部
１００  システム分析装置
【図１】
2012108607.tif 000003
【図２】
2012108607.tif 000004
【図３】
2012108607.tif 000005
【図４】
2012108607.tif 000006
【図５】
2012108607.tif 000007
【図６】
2012108607.tif 000008
【図７】
2012108607.tif 000009
【図８】
2012108607.tif 000010
【図９】
2012108607.tif 000011
【図１０】
2012108607.tif 000012
【図１１】
2012108607.tif 000013
【図１２】
2012108607.tif 000014
【図１３】
2012108607.tif 000015
【図１４】
2012108607.tif 000016
【図１５】
2012108607.tif 000017