JP2012108607A - システム分析方法、システム分析装置及びシステム分析プログラム - Google Patents
システム分析方法、システム分析装置及びシステム分析プログラム Download PDFInfo
- Publication number
- JP2012108607A JP2012108607A JP2010255114A JP2010255114A JP2012108607A JP 2012108607 A JP2012108607 A JP 2012108607A JP 2010255114 A JP2010255114 A JP 2010255114A JP 2010255114 A JP2010255114 A JP 2010255114A JP 2012108607 A JP2012108607 A JP 2012108607A
- Authority
- JP
- Japan
- Prior art keywords
- screen
- transition
- use case
- candidate
- system analysis
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】システムを効率よく分析すること。
【解決手段】画面遷移入力部が、システムの利用者による操作を受付ける画面のソースコードに含まれる当該画面から他の画面への遷移を示す遷移情報に基づいて、遷移元の画面と遷移先の画面とを関連付けた画面遷移パターンを生成する。トップ画面候補抽出部が、画面遷移入力部によって生成された画面遷移パターンにおいて、利用者による操作が開始される画面であるトップ画面候補を決定する。ユースケース候補切出部が、画面遷移入力部によって生成された画面遷移パターンから、トップ画面候補抽出部によって決定されたトップ画面候補から遷移元の画面と遷移先の画面との関連付けが連続した一連の画面遷移パターンをユースケース候補として抽出する。ユースケース抽出部が、ユースケース候補において、トップ画面候補からの遷移頻度が高い一連の画面遷移パターンをユースケースとして抽出する。
【選択図】 図2
【解決手段】画面遷移入力部が、システムの利用者による操作を受付ける画面のソースコードに含まれる当該画面から他の画面への遷移を示す遷移情報に基づいて、遷移元の画面と遷移先の画面とを関連付けた画面遷移パターンを生成する。トップ画面候補抽出部が、画面遷移入力部によって生成された画面遷移パターンにおいて、利用者による操作が開始される画面であるトップ画面候補を決定する。ユースケース候補切出部が、画面遷移入力部によって生成された画面遷移パターンから、トップ画面候補抽出部によって決定されたトップ画面候補から遷移元の画面と遷移先の画面との関連付けが連続した一連の画面遷移パターンをユースケース候補として抽出する。ユースケース抽出部が、ユースケース候補において、トップ画面候補からの遷移頻度が高い一連の画面遷移パターンをユースケースとして抽出する。
【選択図】 図2
Description
この発明は、システム分析方法、システム分析装置及びシステム分析プログラムに関する。
従来、企業情報システムなどにおいては、新たな機能の追加等が繰り返し実行されている。このような機能追加が繰り返し実行されると、企業情報システムの設計書に対する追加機能の反映に漏れが生じてしまい、システムの現行の機能と設計書の内容とが乖離する。その結果、システムの管理者が設計書からシステムの内容を正確に把握することができず、システム更改時に不具合が生じる場合がある。
そこで、システムの現行の機能を正しく把握するために、リバースエンジニアリングが用いられている。例えば、オブジェクト指向プログラミング言語で記述されたソースコードに対してリバースエンジニアリングを実行することで、画面遷移やコンポーネントの構造を示すクラス名、属性名、メソッド名、クラス間の関係及び属性とメソッドの依存関係などを明らかにする技術が知られている。
また、リバースエンジニアリングを用いることで、ソースコードからユースケース実装クラス群を出力したり、Webページの内部構造を推定したりする技術も知られている。ここで、ユースケースとは、システムとシステムの外部アクター(例えば、ユーザなど)との協働関係を表現した論理モデルである。
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
しかしながら、上述した従来技術では、システムを効率よく分析することができないという問題があった。
具体的には、上述した従来技術の内、特許文献1では、ソースコードを構文解析するリバースエンジニアリングが用いられることから、分析結果がデータフロー図やコールグラフ図などの物理モデルまでである。すなわち、システムにおけるユースケースなどの論理モデルを理解するためには、管理者が、得られた物理モデルから手作業で論理モデルへ変換し、分析せざるを得ず、システムを効率よく分析することができない。また、非特許文献1のソースコードからユースケース実装クラス群を出力する技術では、ユーザからの入力を保持するメソッドからユーザへの出力を保持するメソッド間のメソッド経路上のクラスをユースケース実装クラス群としていることから、不必要なメソッドが抽出されることにより、出力されるユースケース数が膨大となり、システムを効率よく分析することができない。
そこで、本開示の技術は、上述した従来技術の問題に鑑みて、システムを効率よく分析することを可能とするシステム分析方法、システム分析装置及びシステム分析プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するため、開示の方法は、システムの機能を分析するシステム分析装置に適用されるシステム分析方法であって、画面遷移生成ステップが、前記システムの利用者による操作を受付ける画面のソースコードに含まれる当該画面から他の画面への遷移を示す遷移情報を構文解析することにより、遷移元の画面と遷移先の画面とを関連付けた画面遷移を生成する。そして、トップ画面候補決定ステップが、前記画面遷移生成ステップによって生成された画面遷移において、前記利用者による操作が開始される画面であるトップ画面候補を決定する。そして、ユースケース候補切出ステップが、前記画面遷移生成ステップによって生成された画面遷移から、前記トップ画面候補決定ステップによって決定されたトップ画面候補から遷移元の画面と遷移先の画面との関連付けが連続した一連の画面遷移をユースケース候補として切り出す。そして、ユースケース抽出ステップが、前記ユースケース候補切出ステップによって切り出されたユースケース候補において、前記トップ画面候補からの遷移頻度に基づいた重み付けを実行し、重み付けの値が高い一連の画面遷移をユースケースとして抽出する。
開示の方法は、システムを効率よく分析することを可能にする。
以下に添付図面を参照して、本願の開示するシステム分析方法、システム分析装置及びシステム分析プログラムの実施例を詳細に説明する。なお、本願の開示するシステム分析方法、システム分析装置およびシステム分析プログラムは、以下の実施例により限定されるものではない。
まず、本願の開示するシステム分析方法の全体像について、図1を用いて説明する。図1は、本願の開示するシステム分析方法の全体像を説明するための図である。図1においては、RDB(Relational Data Base)及びシステムプロセスそれぞれに対するリバースエンジニアリングを用いた分析について模式的に示している。
図1に示すように、本願の開示するシステム分析方法は、システムプロセスのソースコードを構文解析するリバースエンジニアリングによって出力された物理モデルのコールグラフ、データフロー図等から論理モデルのユースケースを抽出する。上述したように、システムの管理者がシステム要件を正確に把握するためには、データで表現された物理モデルを抽象化し、実体や関連、属性などで表現された論理モデルを用いることが望ましい。
すなわち、本願の開示するシステム分析方法は、従来、手作業で行っていた論理モデルの生成を自動で実行することで、システム更改時などに係るシステムの分析を効率よく行うことを可能にする。例えば、本願の開示するシステム分析方法によって抽出されたユースケースは、図1に示すように、システム要件に反映され、システム更改やメンテナンス等に利用される。なお、システム要件には、RDBに対するリバースエンジニアリングによって出力されたER(entity-relationship)図なども反映される。
実施例1に係るシステム分析装置は、外部アクターによってアクセスされる画面の情報に基づいて、システム要件(ユースケース)を抽出する。まず、実施例1に係るシステム分析装置は、画面のソースコードに含まれる画面の遷移情報から画面遷移を生成する。そして、実施例1に係るシステム分析装置は、生成した画面遷移を有向グラフとしてユースケースの候補を抽出する。その後、実施例1に係るシステム分析装置は、抽出したユースケースの候補に対して出現頻度に基づいた重み付けを実行してユースケースを抽出する。
従って、実施例1に係るシステム分析装置は、分析結果として、システムの現行の機能おいて重要な機能を論理モデルで優先的に出力することで、出力するユースケースモデルの選別ができる。すなわち、実施例1に係るシステム分析装置によれば、システムを効率よく分析することを可能にする。例えば、実施例1に係るシステム分析装置は、システム更改における管理者の手間を削減し、分析コストを軽減することが可能である。
[実施例1に係るシステム分析装置の構成]
実施例1に係るシステム分析装置100の構成について説明する。図2は、実施例1に係るシステム分析装置100の構成の一例を示す図である。実施例1に係るシステム分析装置100は、図2に示すように、入出力制御I/F部10と、入力部20と、表示部30と、データベース40と、制御部50とを有する。なお、実施例1に係るシステム分析装置100においては、図示しないシステムと接続され、当該システムから画面遷移を生成するためのソースコード群を取得し、取得したソースコード群を用いてシステムを分析する。ここでいうシステムとは、例えば、企業情報システムなどである。また、以下では、実施例1に係るシステム分析装置が、分析用の専用装置である場合について説明するが、開示の技術はこれに限定されるものではなく、例えば、システム内のサーバに開示の技術を適用する場合であってもよい。
実施例1に係るシステム分析装置100の構成について説明する。図2は、実施例1に係るシステム分析装置100の構成の一例を示す図である。実施例1に係るシステム分析装置100は、図2に示すように、入出力制御I/F部10と、入力部20と、表示部30と、データベース40と、制御部50とを有する。なお、実施例1に係るシステム分析装置100においては、図示しないシステムと接続され、当該システムから画面遷移を生成するためのソースコード群を取得し、取得したソースコード群を用いてシステムを分析する。ここでいうシステムとは、例えば、企業情報システムなどである。また、以下では、実施例1に係るシステム分析装置が、分析用の専用装置である場合について説明するが、開示の技術はこれに限定されるものではなく、例えば、システム内のサーバに開示の技術を適用する場合であってもよい。
入出力制御I/F部10は、図示しないシステム、入力部20、表示部30と制御部50との間での各種情報のやり取りを制御するインタフェースである。入力部20は、例えば、分析者による種々の情報の入力処理を受付ける。例えば、入力部20は、キーボードやタッチパネルなどである。表示部30は、例えば、分析者に対して解析結果を表示出力する。例えば、表示部30は、ディスプレイなどである。
データベース40は、後述する制御部50の処理に用いられる各種情報や、処理結果などを記憶する。データベース40は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。
制御部50は、図2に示すように、画面遷移入力部51と、トップ画面候補抽出部52と、ユースケース候補切出部53と、ユースケース抽出部54と、ユースケース出力部55とを有する。制御部50は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路、または、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路である。
画面遷移入力部51は、図示しないシステムから外部アクターによってアクセスされる画面の情報を取得して、画面オブジェクト間の遷移をモデル化した画面遷移を生成し、生成した画面遷移をデータベース40に格納する。具体的には、画面遷移入力部51は、リバースエンジニアリングで用いられるフレームワークごとの解析手法を利用して、構文解析を行うことで、取得したソースコードから画面オブジェクト間の遷移を関連付けした画面遷移を生成する。
ここで、画面遷移入力部51による処理の一例を説明する。画面遷移入力部51は、システムからソースコードを取得すると、まず、フレームワークが用いられているか否かを判定する。例えば、画面遷移入力部51は、WEB−INFディレクトリ等、web.xmlのconfig初期化パラメータで指定されたパスにstruts−config.xmlが存在するか否かを判定する。そして、画面遷移入力部51は、struts−config.xmlが存在した場合には、Strutsフレームワークが用いられていると判定して、すべてのjspファイルとHTMLファイルとstruts−config.xmlとを読込む。そして、画面遷移入力部51は、読込んだすべてのjspファイルとstruts−config.xmlからjspファイルのformタグのaction属性とaction要素のpath属性のアクション名とを対応付ける。
さらに、画面遷移入力部51は、struts−config.xmlのから上記アクション名で定義されているforward要素のpath属性を抽出して、対応するjspファイルの間にリンクを付与する。すなわち、画面遷移入力部51は、struts−config.xml内のaction−mapping要素に記述された「action path」を遷移元とし、「forword path」を遷移先としたリンクを付与する。そして、画面遷移入力部51は、すべてのjspファイルに対して上述した処理を実行することで、jspファイルとファイル間リンクを示す画面遷移を生成する。
また、例えば、画面遷移入力部51は、classファイルとhtmlファイルが1対1に対応していた場合には、Teedaフレームワークが用いられていると判定して、すべてのhtmlファイルを読込み、htmlファイルの中で、戻り値に指定されたクラス名と同名のhtmlファイルを対応付け、両者の間にリンクを付与する。画面遷移入力部51は、すべてのhtmlファイルに対して上述した処理を実行することで、htmlファイルとファイル間リンクを示す画面遷移を生成する。
なお、画面遷移入力部51は、各ファイルに対して構文解析を行うことにより上述した処理を実行する。図3は、画面遷移入力部51による処理の一例を模式的に示す図である。図3に示すように、画面遷移入力部51は、A〜Iまでの画面ファイルにおいて遷移元と遷移先とをリンク付けした画面遷移を生成する。そして、画面遷移入力部51は、生成した画面遷移をデータベース40に格納する。
図2に戻って、トップ画面候補抽出部52は、画面遷移入力部51によって生成された画面遷移において外部アクターの入口となるトップ画面候補を抽出する。具体的には、トップ画面候補抽出部52は、データベース40から画面遷移を読み込み、読み込んだ画面遷移における各画面ファイルの中で、ファイル名として使用頻度が高いファイルや使用頻度が高い文字列を含むファイルをトップ画面候補として抽出する。例えば、トップ画面候補抽出部52は、welcomeファイルリスト等に設定されたファイル、或いは、画面ファイル名にindex、default、home、front、top、entrance等の文字列を含むファイルをトップ画面候補として抽出する。
図4は、トップ画面候補抽出部52による処理の一例を模式的に示す図である。例えば、トップ画面候補抽出部52は、図4に示すように、画面ファイル名に「index」が含まれている画面をトップ画面候補として抽出する。なお、これらのトップ画面候補を抽出するための文字列は、分析者によって予め任意に決定され、データベース40に格納されている。
図2に戻って、ユースケース候補切出部53は、画面遷移入力部51によって生成された画面遷移からユースケース候補を切り出し、切り出したユースケース候補をデータベース40に格納する。具体的には、ユースケース候補切出部53は、まず、画面遷移入力部51によって生成された画面遷移をデータベース40から読み込み、トップ画面候補抽出部52によって抽出されたトップ画面候補を始点とした有向グラフとする。
ユースケース候補切出部53は、図5に示すように、画面遷移入力部51によって生成された画面遷移を、トップ画面候補抽出部52によってトップ画面として抽出された画面ファイルAを第1階層とし、各画面を第1〜4階層に区分けした有向グラフとする。
そして、ユースケース候補切出部53は、トップ画面候補の画面ファイルを始点として、グラフ構造解析によるグラフ探索を実行して、画面遷移のパターンを切り出す。ユースケース候補切出部53は、切り出した画面遷移のパターンをユースケース候補としてデータベース40に格納する。
ここで、ユースケース候補切出部53によるグラフ探索について説明する。ユースケース候補切出部53は、トップ画面候補から再帰構造を持たない深さ優先探索を実行する。図6は、深さ優先探索を説明するための図である。図6に示すように、深さ優先探索では、始点Aから有向グラフの辺の向きに順次探索する探索方法である。ここで、ユースケース候補切出部53は再帰構造を持たない深さ優先探索を実行することから、例えば、図6に示すグラフを探索する場合には、「A→B→D」と探索した後、図6に示すように再度「B」に戻ることはせず、「A→B→D」を1つのパターンとして切り出し、その後は「A→B→E」の探索を行う。
図7は、ユースケース候補切出部53による処理の一例を説明するための図である。図7においては、ユースケース候補切出部53が、図5に示す有向グラフからユースケース候補を切り出し、データベース40に格納したユースケース候補を示している。なお、図7に示す「1〜5」の数字は、ユースケース候補切出部53によって切り出された画面繊維パターンを一意に識別するための識別番号を示している。なお、識別番号は、ユースケース候補切出部53が切り出した画面遷移パターンにシーケンシャルに付与する。また、図7に示す「系列」とは、ユースケース候補切出部53がユースケース候補として切り出した画面遷移パターンを意味している。
例えば、ユースケース候補切出部53は、図7に示すように、「識別番号:1、系列:A/B/D/I/J」をユースケース候補として切り出し、切り出したユースケース候補をデータベース40に格納する。同様に、ユースケース候補切出部53は、図7に示す識別番号2〜5の系列をユースケース候補として切り出し、切り出したユースケース候補をデータベース40に格納する。
図2に戻って、ユースケース抽出部54は、ユースケース候補切出部53によって切り出された複数のユースケース候補において、画面間を遷移する頻度が高い一連の画面をユースケースとして抽出する。具体的には、ユースケース抽出部54は、データベース40からユースケース候補を読み込み、読み込んだユースケース候補に対して出現頻度に基づいた重み付けを実行する。そして、ユースケース抽出部54は、重み付けを付与したユースケース候補をデータベース40に格納する。
ここで、まず、ユースケース抽出部54によって実行されるユースケース候補の出現頻度の算出について説明する。ユースケース抽出部54は、系列パターン分析の代表的なアルゴリズムであるPrefixSpanを利用して出現頻度を算出する。具体的には、ユースケース抽出部54は、特定の要素に続く系列を取り出す射影を深さ優先で再帰的に実行する。図8は、ユースケース抽出部54による出現頻度の算出の手法を説明するための図である。
例えば、図8に示すように、ユースケース候補切出部53によって識別番号「1〜4」のユースケース候補が切り出されると、ユースケース抽出部54は、まず、各系列に含まれる画面ファイル(図8においては、A〜Dで示している)の出現頻度を計数する。すなわち、ユースケース抽出部54は、図8に示すように、「A:3、B:2、C:1、D:3」を計数する。
そして、ユースケース抽出部54は、射影を実行することで、各系列において計数した画面ファイルに続く他の画面ファイルを抽出する。例えば、図8に示すように、ユースケース抽出部54は、画面ファイル「A」に続く他の画面ファイルを「識別番号:1、画面ファイル:B C D」を抽出する。同様に、ユースケース抽出部54は、図8に示すように、画面ファイル「A」に続く他の画面ファイルを「識別番号:2」及び「識別番号:3」においてそれぞれ抽出する。
ユースケース抽出部54は、図8に示すように、この射影を画面ファイル「B」及び「C」についても実行する。ユースケース抽出部54は、図8に示すように、上述した処理を繰り返し実行することで、出現頻度が高いパターンを抽出する。例えば、仮に、出現頻度「2回」以上、画面ファイル数2以上を抽出すると設定されていた場合には、ユースケース抽出部54は、図8に示すように、「ABD:2、AB:2、AD:3、BD:2」を抽出する。
ここで、ユースケース抽出部54は、抽出した画面遷移のパターンに対してさらに処理を実行することで重み付けを行う。具体的には、ユースケース抽出部54は、トップ画面候補から連続した2つ以上の画面ファイルを対象として、最大画面ファイル数及び最多出現頻度それぞれの最大値を「1」、最小値を「0」として正規化した値の二乗和の平方根の値を算出し、算出した値を各系列の重み付けとする。すなわち、ユースケース抽出部54は、(自系列の画面ファイル数/最大画面ファイル数)2+(自系列の出現頻度/最多出現頻度)2の平方根を重み付けとして算出する。
図9は、ユースケース抽出部54による重み付け処理の一例を説明するための図である。図9においては、ユースケース抽出部54が、図7に示すユースケース候補に対して重み付けを行った例を示している。例えば、ユースケース候補切出部53によって図7に示すユースケース候補が切り出されると、ユースケース抽出部54は、図9に示すように、「系列:A/B、出現頻度:5」の「重み付け:0.9」と「系列:A/B/C/D/E//I、出現頻度:3」の「重み付け:1.02」をそれぞれ算出する。
上述した重み付けについて説明すると、ユースケース抽出部54は、図7に示すユースケース候補に対して射影を実行することによりトップ画面候補から連続した2つ以上の画面ファイルを有し、かつ、出現頻度が「2回」以上の系列である「系列:A/B」及び「系列:A/B/C/D/E//I」をユースケースとして抽出する。そして、ユースケース抽出部54は、最大画面ファイル数(図7に示す「A/B/C/D/E/F/G/I/J」の数=9)及び最多出現頻度(系列「A/B」の出現頻度=5)に基づいて、「重み付け:0.9」と「重み付け:1.02」とを算出する。
例えば、ユースケース抽出部54は、ユースケース「系列:A/B、出現頻度:5」の重み付けとして、(2/9)2+(5/5)2の平方根である「0.9」を算出する。同様に、ユースケース抽出部54は、ユースケース「系列:A/B/C/D/E//I、出現頻度:3」の重み付けとして、(6/9)2+(3/5)2の平方根である「1.02」を算出する。そして、ユースケース抽出部54は、重み付けしたユースケースをデータベース40に格納する。
図2に戻って、ユースケース出力部55は、ユースケース抽出部54によって抽出されたユースケースをデータベース40から読み込み、表示部30に表示させるように制御する。具体的には、ユースケース出力部55は、ユースケース抽出部54によって算出された重み付けの値が高いユースケースから順に表示部30に表示させるように制御する。例えば、ユースケース出力部55は、「重み付け:1.02」のユースケース「系列:A/B/C/D/E//I」を表示部30に表示させる。その後、ユースケース出力部55は、「重み付け:0.9」のユースケース「系列:A/B」を表示部30に表示させる。
図10は、ユースケース出力部55による表示制御の一例を説明するための図である。図10においては、1つのユースケースを表示部30に表示させた状態を示している。例えば、ユースケース出力部55は、図10に示すように、画面で表したユースケースにソースコードを対応付けて表示部30に表示させる。以下では、図11及び図12を用いて、抽出したユースケースのアウトプット例について説明する。図11は、抽出したユースケースと、ソースコードのトレーサビリティを付与したアウトプット例1を示す図である。
例えば、ユースケース出力部55は、図11に示すように、ユースケースを構成する各画面に紐づいているjavaソースコードをdoxygenなどのソースコードドキュメンテーションツールによりソースコードの呼出し関係を可視化させている。同様に、画面に紐づいているソースコードのコメントを解析順に時系列に並べることで、処理の流れを表し、画面で表したユースケースに対応付ける。さらに、ユースケース出力部55は、図11に示すように、画面のタイトルを1つの機能とし、それらの機能を紐付けた機能一覧を画面で表したユースケースに対応付ける。このようなアウトプットを表示部30に表示させることによって、分析者はユースケースをより明確に把握しやすくなるとともに、システム更改時の物理モデルの改変も容易に行うことが可能になる。
図12は、ユースケースのアウトプット例2を示す図である。例えば、ユースケース出力部55は、図12に示すように、画面と、処理の内容と、内部処理を表すソースコードとを対応付けたアウトプットを表示部30に表示させる。このようなアウトプットを表示させることによって、プロセスを可視化することができ、分析者はシステムにおける機能の流れを容易に理解することができる。
なお、上述した実施例では、1つのトップ画面候補の画面遷移を用いて各種処理を説明した。しかしながら、実際には、実施例1に係るシステム分析装置100は、複数のトップ画面候補の画面遷移を対象として上述した各種処理を実行している。また、上述した実施例1においては、1つのトップ画面候補の画面遷移から抽出したユースケースを重み付けの高い順に表示する場合について説明した。しかしながら、開示の技術はこれに限定されるものではなく、例えば、複数のトップ画面候補の画面遷移から抽出した複数のユースケースにおいて重み付けの高い順にユースケースを表示させる場合であってもよい。
[実施例1に係るシステム分析装置による処理の手順]
次に、実施例1に係るシステム分析装置100による処理の手順を説明する。以下では、まず、実施例1に係るシステム分析装置100による分析処理の手順を説明した後、実施例1に係るシステム分析装置100における処理の流れを説明する。
次に、実施例1に係るシステム分析装置100による処理の手順を説明する。以下では、まず、実施例1に係るシステム分析装置100による分析処理の手順を説明した後、実施例1に係るシステム分析装置100における処理の流れを説明する。
[実施例1に係る解析システムによる分析処理の手順]
まず、実施例1に係るシステム分析装置100による分析処理の手順を説明する。図13は、実施例1に係るシステム分析装置100による分析処理の手順を示すフローチャートである。図13に示すように、実施例1に係るシステム分析装置100においては、分析開始コマンドが実行されると(ステップS101肯定)、画面遷移入力部51が、画面のソースコードに基づいて、画面遷移を生成する(ステップS102)。
まず、実施例1に係るシステム分析装置100による分析処理の手順を説明する。図13は、実施例1に係るシステム分析装置100による分析処理の手順を示すフローチャートである。図13に示すように、実施例1に係るシステム分析装置100においては、分析開始コマンドが実行されると(ステップS101肯定)、画面遷移入力部51が、画面のソースコードに基づいて、画面遷移を生成する(ステップS102)。
そして、トップ画面候補抽出部52が、画面遷移入力部51によって生成された画面遷移から、画面ファイル名に含まれる文字列などに基づいてトップ画面候補を抽出する(ステップS103)。その後、ユースケース候補切出部53が、トップ画面候補を始点としたグラフ構造解析により画面遷移からユースケース候補を抽出する(ステップS104)。
続いて、ユースケース抽出部54が、ユースケース候補の出現頻度に基づいて系列パターンを分析して、重み付けすることにより、ユースケース候補切出部53によって抽出されたユースケース候補の中から、外部アクターが高頻度で用いる重要なユースケースを抽出する(ステップS105)。そして、ユースケース出力部55が、ユースケース抽出部54によって重み付けされたユースケースの中から、重み付けの高いユースケースから順に表示部30に出力して(ステップS106)、処理を終了する。なお、システム分析装置100は、分析開始コマンドが実行されるまで、待機状態である(ステップ101否定)。
[実施例1に係るシステム分析装置における処理の流れ]
次に、実施例1に係るシステム分析装置における処理の流れを説明する。図14は、実施例1に係るシステム分析装置における処理の流れを示すシーケンス図である。なお、図14においては、図2に示す各部を機能別に分類した場合の処理の流れを示している。すなわち、図14に示すように、画面遷移入力部51とユースケース出力部55とを入出力を制御するコントローラ工程とし、トップ画面候補抽出部52と、ユースケース候補切出部53と、ユースケース抽出部54とをユースケースを抽出するユースケース抽出工程とした場合のシーケンス図を示している。なお、これらの機能的分類は、図14に示すものに限られない。
次に、実施例1に係るシステム分析装置における処理の流れを説明する。図14は、実施例1に係るシステム分析装置における処理の流れを示すシーケンス図である。なお、図14においては、図2に示す各部を機能別に分類した場合の処理の流れを示している。すなわち、図14に示すように、画面遷移入力部51とユースケース出力部55とを入出力を制御するコントローラ工程とし、トップ画面候補抽出部52と、ユースケース候補切出部53と、ユースケース抽出部54とをユースケースを抽出するユースケース抽出工程とした場合のシーケンス図を示している。なお、これらの機能的分類は、図14に示すものに限られない。
図14に示すように、実施例1に係るシステム分析装置100においては、外部アクターであるユーザがシステム内の機能を用いるための画面の遷移情報が入力されると(ステップS201)、コントローラ工程の画面遷移入力部51が、画面オブジェクト間の遷移をモデル化した画面遷移を生成し、生成した画面遷移をデータベース40に格納する(ステップS202)。遷移画面がデータベース40に格納されると、ユースケース抽出工程のトップ画面候補抽出部52がデータベース40から画面ファイル名を読み込み(ステップS203)、トップ画面候補を抽出する。
そして、トップ画面候補抽出部52がトップ画面候補をデータベース40に格納すると(ステップS204)、ユースケース候補切出部53が、データベース40から画面遷移を読み込み(ステップS205)、ユースケース候補を切り出す。続いて、ユースケース候補切出部53が、切り出したユースケース候補をデータベース40に保存すると(ステップS206)、ユースケース抽出部54が、ユースケース候補を読み込み(ステップS207)、ユースケースを抽出する。そして、ユースケース抽出部54が、遷移頻度が高いユースケースをデータベース40に保存すると(ステップS208)、コントローラ工程のユースケース出力部55が、遷移頻度の高いユースケースをデータベース40から出力させ(ステップS209)、ユーザに提示する(ステップS210)。
[実施例1の効果]
上述したように、実施例1によれば、画面遷移入力部51が、システムの利用者による操作を受付ける画面のソースコードに含まれる当該画面から他の画面への遷移を示す遷移情報に基づいて、遷移元の画面と遷移先の画面とを関連付けた画面遷移を生成する。トップ画面候補抽出部52が、画面遷移入力部51によって生成された画面遷移において、利用者による操作が開始される画面であるトップ画面候補を決定する。ユースケース候補切出部53が、画面遷移入力部51によって生成された画面遷移から、トップ画面候補抽出部52によって決定されたトップ画面候補から遷移元の画面と遷移先の画面との関連付けが連続した一連の画面遷移パターンをユースケース候補として抽出する。ユースケース抽出部54が、ユースケース候補切出部53によって抽出されたユースケース候補において、トップ画面からの遷移頻度が高い一連の画面遷移パターンをユースケースとして抽出する。従って、実施例1に係るシステム分析装置100は、従来、手作業で行っていた論理モデルの生成を自動で実行することができ、システム更改時などに係るシステムの分析を効率よく行うことを可能にする。
上述したように、実施例1によれば、画面遷移入力部51が、システムの利用者による操作を受付ける画面のソースコードに含まれる当該画面から他の画面への遷移を示す遷移情報に基づいて、遷移元の画面と遷移先の画面とを関連付けた画面遷移を生成する。トップ画面候補抽出部52が、画面遷移入力部51によって生成された画面遷移において、利用者による操作が開始される画面であるトップ画面候補を決定する。ユースケース候補切出部53が、画面遷移入力部51によって生成された画面遷移から、トップ画面候補抽出部52によって決定されたトップ画面候補から遷移元の画面と遷移先の画面との関連付けが連続した一連の画面遷移パターンをユースケース候補として抽出する。ユースケース抽出部54が、ユースケース候補切出部53によって抽出されたユースケース候補において、トップ画面からの遷移頻度が高い一連の画面遷移パターンをユースケースとして抽出する。従って、実施例1に係るシステム分析装置100は、従来、手作業で行っていた論理モデルの生成を自動で実行することができ、システム更改時などに係るシステムの分析を効率よく行うことを可能にする。
また、実施例1によれば、画面遷移入力部51は、画面のソースコードに対してフレームワークごとの解析を実行する。従って、実施例1に係るシステム分析装置100は、種々のフレームワークが用いられているシステムに対しても対応することができ、システムの分析をより効率よく行うことを可能にする。
また、実施例1によれば、ユースケース候補切出部53は、トップ画面候補から遷移元の画面と遷移先の画面との関連付けが非再帰的に連続した一連の画面遷移パターンをユースケース候補として抽出する。従って、実施例1に係るシステム分析装置100は、プロセスごとに詳細な分析を行うことを可能にする。
また、実施例1によれば、ユースケース抽出部54は、ユースケース候補に含まれる所定の画面に連続する画面を取り出す射影処理を、当該ユースケース候補における下層画面を優先し、かつ、再帰的に実行することにより、ユースケース候補からユースケースを抽出する。従って、実施例1に係るシステム分析装置100は、出現頻度が高いユースケースを効率的に抽出することを可能にする。
また、実施例1によれば、ユースケース抽出部54は、トップ画面候補を含めて少なくとも2つ以上の画面が連続したユースケースを抽出し、当該ユースケースを抽出したユースケース候補における最多画面数とユースケースにおける最多出現頻度とを用いて、抽出したユースケースを正規化した値により重み付けを実行する。そして、ユースケース出力部55は、ユースケース抽出部54によって実行された重み付けに基づいて、ユースケースを表示する順序を制御する。従って、実施例1に係るシステム分析装置100は、分析結果として、システムの現行の機能おいて重要な機能を論理モデルで優先的に出力することができ、システムをさらに効率よく分析することを可能にする。また、実施例1に係るシステム分析装置100は、正規化した値によって重み付けすることにより、出現頻度の差を明確にすることが可能となる。
これまで実施例1を説明したが、本願が開示する技術は実施例1に限定されるものではない。すなわち、開示の技術は、その他の様々な形態で実施されることが可能であり、種々の省略、置き換え、変更を行うことができる。
(1)重み付け
上述した実施例1では、重み付けとして、最大画面ファイル数及び最多出現頻度それぞれの最大値を「1」、最小値を「0」として正規化した値の二乗和の平方根の値を用いる場合について説明した。しかしながら、開示の技術はこれに限定されるものではなく、例えば、ユースケースに含まれる画面ファイル数と出現頻度とを乗算した値を用いる場合であってもよい。
上述した実施例1では、重み付けとして、最大画面ファイル数及び最多出現頻度それぞれの最大値を「1」、最小値を「0」として正規化した値の二乗和の平方根の値を用いる場合について説明した。しかしながら、開示の技術はこれに限定されるものではなく、例えば、ユースケースに含まれる画面ファイル数と出現頻度とを乗算した値を用いる場合であってもよい。
(2)ユースケースの抽出
上述した実施例1では、トップ画面候補から連続した2つ以上の画面ファイルを有し、かつ、出現頻度が「2回」以上の系列をユースケースとして抽出する場合について説明した。しかしながら、開示の技術はこれに限定されるものではなく、画面ファイルの数や出現頻度は、分析者によって任意に設定することができる。例えば、画面ファイルの数及び出現頻度をそれぞれ「3つ」以上、「3回」以上とする場合であってもよい。
上述した実施例1では、トップ画面候補から連続した2つ以上の画面ファイルを有し、かつ、出現頻度が「2回」以上の系列をユースケースとして抽出する場合について説明した。しかしながら、開示の技術はこれに限定されるものではなく、画面ファイルの数や出現頻度は、分析者によって任意に設定することができる。例えば、画面ファイルの数及び出現頻度をそれぞれ「3つ」以上、「3回」以上とする場合であってもよい。
(3)システム構成等
例えば、各装置の分散・統合の具体的形態(例えば、図2の形態)は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合することができる。一例を挙げると、トップ画面候補抽出部52とユースケース候補切出部53とを一つの処理部として統合してもよく、一方、データベース40を、画面遷移を記憶する画面遷移用データベースと、処理結果を記憶する処理結果データベースとに分散してもよい。
例えば、各装置の分散・統合の具体的形態(例えば、図2の形態)は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合することができる。一例を挙げると、トップ画面候補抽出部52とユースケース候補切出部53とを一つの処理部として統合してもよく、一方、データベース40を、画面遷移を記憶する画面遷移用データベースと、処理結果を記憶する処理結果データベースとに分散してもよい。
また、制御部50をシステム分析装置100の外部装置としてネットワーク経由で接続するようにしてもよく、或いは、トップ画面候補抽出部52、ユースケース候補切出部53を別の装置がそれぞれ有し、ネットワークに接続されて協働することで、上述したシステム分析装置100の機能を実現するようにしてもよい。
(4)システム分析プログラム
ところで、上述した実施例1では、ハードウェアロジックによって各種の処理を実現する場合を説明したが、開示の技術はこれに限定されるものではなく、予め用意されたプログラムをコンピュータで実行するようにしてもよい。そこで、以下では、図15を用いて上述した実施例1に示したシステム分析装置100と同様の機能を有するシステム分析プログラムを実行するコンピュータの一例を説明する。図15は、システム分析プログラムを実行するコンピュータを示す図である。
ところで、上述した実施例1では、ハードウェアロジックによって各種の処理を実現する場合を説明したが、開示の技術はこれに限定されるものではなく、予め用意されたプログラムをコンピュータで実行するようにしてもよい。そこで、以下では、図15を用いて上述した実施例1に示したシステム分析装置100と同様の機能を有するシステム分析プログラムを実行するコンピュータの一例を説明する。図15は、システム分析プログラムを実行するコンピュータを示す図である。
図15に示すように、コンピュータ1000は、例えば、メモリ1010と、CPU(Central Processing Unit)1020と、ハードディスクドライブインタフェース1030とを有する。また、図10に示すように、コンピュータ1000は、例えば、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有し、これらの各部はバス1080によって接続される。
メモリ1010は、図15に示すように、ROM(Read Only Memory)1011及びRAM(Random Access Memory)1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、図15に示すように、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、図15に示すように、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、図15に示すように、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、図15に示すように、例えばディスプレイ1130に接続される。
ここで、図15に示すように、ハードディスクドライブ1090は、例えば、OS(Operating System)1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、システム分析プログラムは、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクに記憶される。具体的には、上述した実施例で説明した画面遷移入力部51と同様の情報処理を実行する画面遷移生成手順と、トップ画面候補抽出部52と同様の情報処理を実行するトップ画面候補決定手順と、ユースケース候補切出部53と同様の情報処理を実行するユースケース候補切出手順と、ユースケース抽出部54と同様の情報処理を実行する抽出手順と、ユースケース出力部55と同様の情報処理を実行する制御手順とが記述されたプログラムモジュールが、ハードディスクに記憶される。
また、上述した実施例で説明したデータベース40に記憶されるデータのように、システム分析プログラムによる情報処理に用いられるデータは、プログラムデータとして、例えばハードディスクに記憶される。そして、CPU1020が、ハードディスクに記憶されたプログラムモジュールやプログラムデータを必要に応じてRAM1012に読み込み、画面遷移生成手順、トップ画面候補決定手順、ユースケース候補切出手順、抽出手順、制御手順を実行する。
なお、解析プログラムに係るプログラムモジュールやプログラムデータは、ハードディスクに記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、解析プログラムに係るプログラムモジュールやプログラムデータは、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶され、ネットワークインタフェースを介してCPU1020によって読み出されてもよい。
これらの実施例やその変形は、本願が開示する技術に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
40 データベース
51 画面遷移入力部
52 トップ画面候補抽出部
53 ユースケース候補切出部
54 ユースケース抽出部
55 ユースケース出力部
100 システム分析装置
51 画面遷移入力部
52 トップ画面候補抽出部
53 ユースケース候補切出部
54 ユースケース抽出部
55 ユースケース出力部
100 システム分析装置
Claims (7)
- システムの機能を分析するシステム分析装置に適用されるシステム分析方法であって、
前記システム分析装置が、
前記システムの利用者による操作を受付ける画面のソースコードに含まれる当該画面から他の画面への遷移を示す遷移情報に基づいて、遷移元の画面と遷移先の画面とを関連付けた画面遷移パターンを生成する画面遷移生成ステップと、
前記画面遷移生成ステップによって生成された画面遷移パターンにおいて、前記利用者による操作が開始される画面であるトップ画面候補を決定するトップ画面候補決定ステップと、
前記画面遷移生成ステップによって生成された画面遷移パターンから、前記トップ画面候補決定ステップによって決定されたトップ画面候補から前記遷移元の画面と前記遷移先の画面との関連付けが連続した一連の画面遷移パターンをユースケース候補として抽出するユースケース候補切出ステップと、
前記ユースケース候補切出ステップによって抽出されたユースケース候補において、前記トップ画面候補からの遷移頻度が高い一連の画面遷移パターンを前記ユースケースとして抽出するユースケース抽出ステップと、
を有することを特徴とするシステム分析方法。 - 前記画面遷移生成ステップは、前記画面のソースコードに対してフレームワークごとの解析を実行することを特徴とする請求項1に記載のシステム分析方法。
- 前記ユースケース候補切出ステップは、トップ画面候補から前記遷移元の画面と前記遷移先の画面との関連付けが非再帰的に連続した一連の画面遷移パターンを前記ユースケース候補として抽出することを特徴とする請求項1に記載のシステム分析方法。
- 前記ユースケース抽出ステップは、前記ユースケース候補に含まれる所定の画面に連続する画面を取り出す射影処理を、当該ユースケース候補における下層画面を優先し、かつ、再帰的に実行することにより、前記ユースケース候補から前記ユースケースを抽出することを特徴とする請求項1に記載のシステム分析方法。
- 前記ユースケース抽出ステップは、前記トップ画面候補を含めて少なくとも2つ以上の画面が連続した前記ユースケースを抽出し、当該ユースケースを抽出した前記ユースケース候補における最多画面数と前記ユースケースにおける最多出現頻度とを用いて、前記抽出したユースケースを正規化した値により重み付けを実行し、
前記ユースケース抽出ステップによって実行された重み付けに基づいて、ユースケースを表示する順序を制御する制御ステップをさらに有することを特徴とする請求項1又は4に記載のシステム分析方法。 - システムの利用者による操作を受付ける画面のソースコードに含まれる当該画面から他の画面への遷移を示す遷移情報に基づいて、遷移元の画面と遷移先の画面とを関連付けた画面遷移パターンを生成する画面遷移生成部と、
前記画面遷移生成部によって生成された画面遷移パターンにおいて、前記利用者による操作が開始される画面であるトップ画面候補を決定するトップ画面候補決定部と、
前記画面遷移生成部によって生成された画面遷移パターンから、前記トップ画面候補決定部によって決定されたトップ画面候補から前記遷移元の画面と前記遷移先の画面との関連付けが連続した一連の画面遷移パターンをユースケース候補として抽出するユースケース候補切出部と、
前記ユースケース候補切出部によって抽出されたユースケース候補において、前記トップ画面候補からの遷移頻度が高い一連の画面遷移パターンを前記ユースケースとして抽出するユースケース抽出部と、
を有することを特徴とするシステム分析装置。 - システムの機能を分析するシステム分析装置としてのコンピュータに実行させるシステム分析プログラムであって、
前記システムの利用者による操作を受付ける画面のソースコードに含まれる当該画面から他の画面への遷移を示す遷移情報に基づいて、遷移元の画面と遷移先の画面とを関連付けた画面遷移パターンを生成する画面遷移生成手順と、
前記画面遷移生成手順によって生成された画面遷移パターンにおいて、前記利用者による操作が開始される画面であるトップ画面候補を決定するトップ画面候補決定手順と、
前記画面遷移生成手順によって生成された画面遷移パターンから、前記トップ画面候補決定手順によって決定されたトップ画面候補から前記遷移元の画面と前記遷移先の画面との関連付けが連続した一連の画面遷移パターンをユースケース候補として抽出するユースケース候補切出手順と、
前記ユースケース候補切出手順によって抽出されたユースケース候補において、前記トップ画面候補からの遷移頻度が高い一連の画面遷移パターンを前記ユースケースとして抽出するユースケース抽出手順と、
を前記システム分析装置としてのコンピュータに実行させることを特徴とするシステム分析プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010255114A JP2012108607A (ja) | 2010-11-15 | 2010-11-15 | システム分析方法、システム分析装置及びシステム分析プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010255114A JP2012108607A (ja) | 2010-11-15 | 2010-11-15 | システム分析方法、システム分析装置及びシステム分析プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012108607A true JP2012108607A (ja) | 2012-06-07 |
Family
ID=46494175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010255114A Pending JP2012108607A (ja) | 2010-11-15 | 2010-11-15 | システム分析方法、システム分析装置及びシステム分析プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012108607A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016143019A1 (ja) * | 2015-03-09 | 2016-09-15 | 株式会社日立製作所 | 業務仕様再生装置および業務仕様再生方法 |
-
2010
- 2010-11-15 JP JP2010255114A patent/JP2012108607A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016143019A1 (ja) * | 2015-03-09 | 2016-09-15 | 株式会社日立製作所 | 業務仕様再生装置および業務仕様再生方法 |
JPWO2016143019A1 (ja) * | 2015-03-09 | 2017-04-27 | 株式会社日立製作所 | 業務仕様再生装置および業務仕様再生方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10664374B2 (en) | Event analysis device, event analysis system, event analysis method, and event analysis program | |
US10747958B2 (en) | Dependency graph based natural language processing | |
US11281864B2 (en) | Dependency graph based natural language processing | |
JP2007052744A (ja) | 分類ルール作成支援方法 | |
CN109285024B (zh) | 在线特征确定方法、装置、电子设备及存储介质 | |
Solé et al. | Region-based foldings in process discovery | |
JP6309795B2 (ja) | 情報処理装置、情報処理方法およびプログラム | |
KR20150092880A (ko) | 그래픽 사용자 인터페이스 개발의 가변 설정 기반 후설계 방법 및 장치 | |
US20140136152A1 (en) | Analyzing hardware designs based on component re-use | |
JPWO2014064777A1 (ja) | 文書評価支援システム、及び文書評価支援方法 | |
binti Oseman et al. | Data mining in churn analysis model for telecommunication industry | |
JP5875961B2 (ja) | ソースコード類似度評価プログラム、ソースコード類似度評価装置、および、コンピュータ読み取り可能な記憶媒体 | |
Lu et al. | Zen-CC: An automated and incremental conformance checking solution to support interactive product configuration | |
JP5422589B2 (ja) | モジュール解析システム、モジュール解析方法及びモジュール解析プログラム | |
JP2012108607A (ja) | システム分析方法、システム分析装置及びシステム分析プログラム | |
JP2015075876A (ja) | 設計支援装置、設計支援方法、及びプログラム | |
JP2006277282A (ja) | モデル評価解析システムおよびモデル評価解析プログラム | |
JP2008146300A (ja) | 情報処理装置、情報処理方法およびプログラム | |
JP6081609B2 (ja) | データ分析システム及びその方法 | |
JP2012226697A (ja) | Wbs作成システムおよびwbs作成方法 | |
US8775873B2 (en) | Data processing apparatus that performs test validation and computer-readable storage medium | |
JP7439955B2 (ja) | 操作支援装置、操作支援方法および操作支援プログラム | |
KR102449580B1 (ko) | 컴포넌트 네트워크 기반의 분석 시스템을 이용한 비정형 데이터 분석 방법 | |
EP3944127A1 (en) | Dependency graph based natural language processing | |
CN109522340B (zh) | 一种数据统计方法、装置及设备 |