JP5605233B2 - 解析装置、解析プログラム及び解析方法 - Google Patents

解析装置、解析プログラム及び解析方法 Download PDF

Info

Publication number
JP5605233B2
JP5605233B2 JP2011007329A JP2011007329A JP5605233B2 JP 5605233 B2 JP5605233 B2 JP 5605233B2 JP 2011007329 A JP2011007329 A JP 2011007329A JP 2011007329 A JP2011007329 A JP 2011007329A JP 5605233 B2 JP5605233 B2 JP 5605233B2
Authority
JP
Japan
Prior art keywords
execution
business
unit
execution unit
event
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.)
Expired - Fee Related
Application number
JP2011007329A
Other languages
English (en)
Other versions
JP2012150575A (ja
Inventor
光幾 加藤
剛 金井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2011007329A priority Critical patent/JP5605233B2/ja
Publication of JP2012150575A publication Critical patent/JP2012150575A/ja
Application granted granted Critical
Publication of JP5605233B2 publication Critical patent/JP5605233B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本件は、解析装置、解析プログラム及び解析方法に関する。
企業内に存在する業務システム(業務アプリケーション)においては、保守を行う際に、新規機能の追加や保守工数の削減などを目的として業務システムの作り直しを行うことがある。この場合、作業工数やコストの低減を図るため、業務システムのすべてを一律に作り直すのではなく、作り直すかの判断や作り直す場合の方式検討を部分単位で行うことが好ましい。
ここで、部分単位に分割する基準としては、業務の実行単位が挙げられる。しかるに、長期にわたって業務システムのプログラムを改良・変更すると、当初の構造とは異なる構造になることがある。また、一つの業務が複数の業務システムに跨って実行されたり、一つの業務システムで複数の業務が実行されたりすることもある。このため、業務と当該業務を実行するためのプログラムソース(以下、「ソース」と呼ぶ)の対応関係が不明になることがある。
これに対し、業務に関係するソースの範囲が明らかになれば、保守作業においてソースを変更するときに、影響がある範囲や詳細に検討すべき範囲を推定するのに有用である。また、業務システムの部分的な再構築などのために、業務システム内で独立性の高い部分を切り出しやすくなる。
業務システムで用いられる複数のソース(ソース群)を分割する方法には、ディレクトリ単位で分割する方法や、ソース内のメソッドの呼び出し関係をたどり、関係の強さを用いて分割する方法が挙げられる(静的解析と呼ばれる)。しかしながら、このような静的解析では、ソースは業務と関係なく分割・分類される。
一方、業務システムで用いられるソース群を分割する別の方法としては、ソースに加え、業務フロー情報を用いる方法がある。なお、業務フロー情報とは、業務の処理の流れ(業務の実行単位(イベントやタスクなどと呼ばれる)の実行順)を図などで記述したものである。この場合、業務フローと、業務フローにおいて実行されるイベントに対応するソースの範囲との対応が分かれば、業務に対応するソースの範囲を把握することができる。しかしながら、正確に記述した業務フロー情報が必要であり、またイベントに対応するソースの範囲を別途指定する必要がある。
これに対し、業務フローを業務データから抽出する手法として、process miningが知られている。このprocess miningを用いることで、業務フローの種別とその実行量、業務フローを構成するイベントの各情報が得られる(例えば、非特許文献1、2参照)。また、ソースにおいてイベントに対応する業務データを生成する箇所を抽出する技術も知られている(例えば、特許文献1参照)。そのため、これらを組み合わせることで、業務とソースの関係づけが可能である。
また、業務フローの種別に含まれるイベント種別の組み合わせを業務の特徴とする場合に、どのようなイベントの組み合わせが業務を特徴付けるかを求める方法として、アソシエーション分析技術が知られている。アソシエーション分析技術の代表例として、Aprioriアルゴリズム(非特許文献3)がある。
国際公開第2008/146341号
M. Dumasなど編, Process-Aware Information Systems: Bridging People and Software Through Process Technology, Wiley-Interscience, 2005年9月, ISBN: 978-0-471-66306-5. W. M. P. van der Aalstなど, Workflow mining: A survey of issues and approaches, Data & Knowledge Engineering, Vol. 47, Issue 2, 2003年11月. 金 明哲, Rによるデータサイエンス, 森北出版, 2007年10月, ISBN: 978-4-627-09601-1.
しかしながら、上述した特許文献1の方法や、Aprioriアルゴリズムを用いた(組み合わせた)としても、変更・修正された業務システムにおいて、業務フロー及びこれに関連するメソッドを適切に分類・分割することができない可能性がある。
そこで本件は上記の課題に鑑みてなされたものであり、プログラムソースの呼び出し単位を適切に分類・分割することが可能な解析装置、解析プログラム及び解析方法を提供することを目的とする。
本明細書に記載の解析装置は、業務システムが実行した複数種類の業務の実行履歴データを取得する取得部と、前記業務の実行履歴データから、前記業務の種類ごとに当該業務に含まれる実行単位の実行履歴を抽出する履歴抽出部と、前記履歴抽出部により抽出された実行単位の実行履歴において、所定の頻度で実行された実行単位を共通実行単位として抽出する共通実行単位抽出部と、前記複数種類の業務の各々について、該業務に含まれる実行単位のうち、該実行単位を含む第1の業務よりも実行量の多い第2の業務において実行されていない実行単位をまとめて、固有実行単位群を抽出する固有実行単位群抽出部と、前記実行単位と前記業務で実行するプログラムソースの呼び出し単位との関係を示す第1のデータに基づいて、前記共通実行単位及び前記固有実行単位群に含まれる実行単位を当該実行単位に対応する呼び出し単位で置き換え、呼び出し単位間の呼び出し関係を示す第2のデータに基づいて、前記置き換えた呼び出し単位と呼び出し関係にある呼び出し単位を、前記共通実行単位又は前記固有実行単位群のいずれかに対して関連付ける関連付け部と、を備えている。
本明細書に記載の解析プログラムは、業務システムが実行した複数種類の業務の実行履歴データを取得し、前記業務の実行履歴データから、前記業務の種類ごとに当該業務に含まれる実行単位の実行履歴を抽出し、前記抽出された実行単位の実行履歴において所定の頻度で実行された実行単位を共通実行単位として抽出し、前記複数種類の業務の各々について、該業務に含まれる実行単位のうち、該実行単位を含む第1の業務よりも実行量の多い第2の業務において実行されていない実行単位をまとめて、固有実行単位群を抽出し、前記実行単位と前記業務で実行するプログラムソースの呼び出し単位との関係を示す第1のデータに基づいて、前記共通実行単位及び前記固有実行単位群に含まれる実行単位を当該実行単位に対応する呼び出し単位で置き換え、呼び出し単位間の呼び出し関係を示す第2のデータに基づいて、前記置き換えた呼び出し単位と呼び出し関係にある呼び出し単位を、前記共通実行単位又は前記固有実行単位群のいずれかに対して関連付ける処理を、コンピュータに実行させる解析プログラムである。
本明細書に記載の解析方法は、コンピュータが、業務システムが実行した複数種類の業務の実行履歴データを取得する取得工程と、前記業務の実行履歴データから、前記業務の種類ごとに当該業務に含まれる実行単位の実行履歴を抽出する履歴抽出工程と、前記履歴抽出工程により抽出された実行単位の実行履歴において、所定の頻度で実行された実行単位を共通実行単位として抽出する共通実行単位抽出工程と、前記複数種類の業務の各々について、該業務に含まれる実行単位のうち、該実行単位を含む第1の業務よりも実行量の多い第2の業務において実行されていない実行単位をまとめて、固有実行単位群を抽出する固有実行単位群抽出工程と、前記実行単位と前記業務で実行するプログラムソースの呼び出し単位との関係を示す第1のデータに基づいて、前記共通実行単位及び前記固有実行単位群に含まれる実行単位を当該実行単位に対応する呼び出し単位で置き換え、呼び出し単位間の呼び出し関係を示す第2のデータに基づいて、前記置き換えた呼び出し単位と呼び出し関係にある呼び出し単位を、前記共通実行単位又は前記固有実行単位群のいずれかに対して関連付ける関連付け工程と、を実行する解析方法である。
本明細書に記載の解析装置、解析プログラム及び解析方法は、プログラムソースの呼び出し単位を適切に分類・分割することができるという効果を奏する。
一実施形態に係る解析装置の解析対象である業務遂行システムの構成を概略的に示す図である。 解析装置と業務遂行システムとの間のデータのやり取りを模式的に示す図である。 解析装置のハードウェア構成を示す図である。 解析装置の機能ブロック図である。 解析装置による一連の処理を示すフローチャートである。 図5のステップS14の具体的内容を示すフローチャート(その1)である。 図5のステップS14の具体的内容を示すフローチャート(その2)である。 図5のステップS16の具体的内容を示すフローチャートである。 テーブルt1のデータ例を示す図である。 対象業務フロー種別と実行量を示す図である。 対象業務フロー種別と実行量(実行量でソート後)を示す図である。 イベント種別とそれを含むフロー種別数を示す図である。 検出した共通イベントと、イベント群を格納する記憶域Sを示す図である。 図14(a)は、イベント群G7に対するカウンタCを示す図であり、図14(b)は、記憶域Zを示す図である。 図15(a)は、イベント群G5に対するカウンタCを示す図であり、図15(b)は、記憶域Zを示す図である。 イベント群G4に対するカウンタCを示す図である。 記憶域S(最終結果)を示す図である。 図18(a)は、process miningの定義情報テーブル例を示す図であり、図14(b)は、process miningの対応情報テーブル例を示す図である。 ソースのメソッド間の呼び出し関係を示す図である。 書き込みメソッドの一例を示す図である。 呼び出しメソッドの一例を示す図である。 表示イベント名と対応するメソッドを関連付けたデータを示す図である。 図23(a)は、記憶域M(イベント群に対応するメソッドのみを記録した状態)を示す図であり、図23(b)は、記憶域M(メソッド呼び出し元のメソッド情報を追加した状態)を示す図である。 記憶域M(メソッド呼び出し先のメソッド情報を追加した状態)を示す図である。 図24の記憶域Mを図に表した状態を示す図である。 図25のメソッドを分類した状態を示す図である。
以下、一実施形態について、図1〜図26に基づいて詳細に説明する。図1には、本実施形態の解析装置20(図2参照)が解析を行う企業内の業務遂行システム100の構成が概略的に示されている。本実施形態の業務遂行システム100は、図1に示すように、1又は複数(図1では2つ)の業務システム10A,10Bを備える。業務システム10A,10Bでは、様々な業務が行われ、各業務においては、業務システム10A,10B上においてプログラムソース(ソース)が実行される。業務システム10A,10Bは、ネットワーク14を介して接続されており、業務を業務システム間で分担したり、データを共有したりする。
業務システム10A、10Bにおける業務の実行履歴データ(業務の実行単位(イベント)の実行履歴)等は、業務システム10A、10Bそれぞれが有する業務DB12A、12Bに格納される。業務DB12A、12Bは、例えば、図9のようなテーブルt1を有するものとする。なお、図9のテーブルt1は、業務の識別子である項目「id」と、業務の実行単位であるイベントのタイプ(イベント種別)である項目「type」と、業務実行時刻の項目「datetime」と、を含む。
本実施形態の解析装置20は、図2に示すように、業務システム10A、10Bからイベントの実行履歴データを取得し、解析を行う。なお、業務システム10A,10Bから解析装置20へのデータの受け渡しは、記憶媒体(CD−ROMやUSBメモリなど)やネットワーク(インターネットなど)を介して行うものとする。また、本解析では、業務において実行されるイベント間の関連等に基づいて、関連するプログラムソースを塊として分類する。
図3には、解析装置20のハードウェア構成が示されている。図3に示すように、解析装置20は、コンピュータとしてのCPU90、ROM92、RAM94、記憶部(ここではHDD(Hard Disk Drive))96、入出力部97、可搬型記憶媒体用ドライブ99等を備えており、解析装置20の構成各部は、バス98に接続されている。入出力部97には、表示部や入力部等が接続されている。解析装置20では、ROM92あるいはHDD96に格納されているプログラム(解析プログラム)又は可搬型記憶媒体用ドライブ99が可搬型記憶媒体91から読み出したプログラム(解析プログラム)をCPU90が実行することにより、図4の各部の機能が実現される。
図4は解析装置20の機能ブロック図である。図4に示すように、解析装置20は、process mining定義情報格納部30、取得部としての業務データ蓄積部32、履歴抽出部としてのprocess mining実行部34、共通実行単位抽出部及び固有実行単位群抽出部としてのイベント分類部36、関連付け部としてのソース分割部38、及び、ソース蓄積部40、として機能する。
process mining定義情報格納部30は、process mining実行部34がprocess miningを実行する際に用いる定義情報を格納する。なお、定義情報は、公知のprocess miningにおいて用いられる定義情報と同一又は同等の情報である(図18(a)参照)。業務データ蓄積部32は、業務システムの業務DB12A,12Bから業務データを抽出して、蓄積する。業務データは、process mining実行部34がprocess miningを実行する際に用いるデータ(図9のデータ)である。
process mining実行部34は、process mining処理を実行する。イベント分類部36は、process mining処理の結果を用いて、共通実行単位としての共通イベントと、固有実行単位群としてのイベント群とを抽出する。なお、イベント分類部36は、所定の頻度で実行されたイベントを共通イベントとして抽出し、複数種類の業務の各々について、該業務に含まれるイベントのうち、該イベントを含む業務(第1の業務)よりも実行量の多い業務(第2の業務)において実行されていないイベントをまとめて、イベント群とする。
ソース分割部38は、イベント分類部36で抽出された共通イベント又はイベント群と、ソース蓄積部40に蓄積されているプログラムソース(ソース)の情報とに基づいて、ソースを関連するソースの塊として分類・分割する。また、ソース分割部38は、分類・分割結果を、表示部への表示や、紙媒体への印刷、あるいはデータとして、出力する。
次に、上記のように構成される解析装置20による処理について、図5〜図26に基づいて詳細に説明する。
図5には、解析装置20の一連の処理がフローチャートにて示されている。また、図6、図7には、図5のステップS14の具体的な処理内容、図8には、図5のステップS16の具体的な処理内容が示されている。なお、解析装置20の処理は、図1、図2の業務遂行システム100を稼動している企業等からの解析依頼を受けて、実行されるものとする。
図5の処理では、まず、ステップS10において、業務データ蓄積部32が、業務システム10A,10Bの業務DB12A,12Bから業務データ(図9のテーブルt1参照)を抽出して、蓄積する。なお、業務データの抽出は、前述したようにネットワークや記憶媒体を介して行われる。
次いで、ステップS12では、process mining実行部34が、業務データに対して既存のprocess mining技術を適用し、複数の業務フロー種別とそれらの実行量を得る。この場合、process mining実行部34は、process mining技術により、図9に示すようなテーブルt1に基づいて、図10に示すような対象業務フロー種別と実行量のデータを得ることができる。なお、図10のデータは、項目「フロー種別No.」、実行回数を表す項目「実行量」、業務の実行単位であるイベント(イベント種別)の実行順を記述した項目「業務フロー種別」を含んでいる。ここで、業務フロー種別に含まれる「INIT」、「A1」、「A2」などはイベント種別を表し、イベント種別間に記述されている「→」はイベントの実行順を表している。なお、業務においては、手戻り等により、同一の業務内において同一のイベント種別が複数回行われる場合もある。このような場合であっても、一の業務においては、同一のイベント種別を1回のみカウントすることとする。
次いで、ステップS14では、イベント分類部36が、各業務フロー種別に特有のイベント種別の組み合わせを抽出する処理を実行する。具体的には、イベント分類部36は、図6、図7に示す処理を実行する。
図6のステップS20では、イベント分類部36が、process mining技術を用いて抽出した業務フロー種別とその実行量のデータを読み込む。次いで、ステップS22では、イベント分類部36が、読み込んだ業務フロー種別を実行量の多い順にソートする。なお、ステップS20でイベント分類部36が読み込むデータが、図10に示すようなデータであり、ステップS22でソートされた後のデータが、図11のようなデータである。
次いで、ステップS24では、イベント分類部36が、イベント群Giを格納する記憶域Sを用意する(図13参照)。なお、図13の記憶域Sのうち、該当フロー種別No.の列は、結果を分かりやすく示すためのものであり、実際の処理では不要である。
次いで、ステップS26では、イベント分類部36が、イベント種別ごとに、フロー種別数に対する当該イベント種別を含むフロー種別数の割合が閾値以上の場合、そのイベント種別を共通イベントと判断する。すなわち、ステップS26では、イベント分類部36が、各イベント種別(A1,A2…)を抽出するとともに、各イベント種別を含むフロー種別の数を、図12のように抽出する。そして、イベント分類部36は、次式(1)を満たすイベント種別を、共通イベントと判断する。
(イベント種別を含む業務フロー種別の個数/全体の業務フロー種別数)≧閾値
…(1)
より具体的には、図11の業務フロー種別からイベント種別(A1,A2…)とそれを含む業務フロー種別の個数を抽出し、業務フロー種別数全体に対するイベント種別を含むフロー種別数の割合を計算すると、図12のようになる。このとき、全体の業務フロー種別数は11である。また、閾値を例えば0.8とすると、図12のうち、イベント種別「INIT」と「FINAL」が上式(1)を満たす。したがって、ステップS26では、イベント分類部36は、イベント種別「INIT」と「FINAL」を、共通イベントと判断する。そして、これらを図13に示すように、G0(共通イベント)として記憶域Sに登録する。
次いで、ステップS28では、イベント分類部36が、業務フロー種別をソート順に抽出する。ここでは、例えば、図11の1つ目の業務フロー(フロー種別No.=11の業務フロー種別)が抽出されることになる。
次いで、ステップS30では、イベント分類部36が、抽出した業務フロー種別に含まれているイベント種別のうち、まだどのイベント群にも含まれていないイベント種別があるか否かを参照する。そして、イベント分類部36は、そのようなイベント種別があれば、新たなイベント群Gxとして記憶域Sに登録する。
例えば、フロー種別No.=11の業務フロー種別の場合、共通イベントとして抽出された「INIT」と「FINAL」を除いたイベントの組み合わせを抽出すると、イベント種別「A1、X、A3、A4」が得られる。これらはまだどのイベント群にも含まれていないので、イベント分類部36は、新たなイベント群G1としてイベント種別「A1、X、A3、A4」の組を、記憶域Sに登録する(図13参照)。
次いで、ステップS32では、イベント分類部36が、全てのフロー種別を抽出したか否かを判断する。ここでの判断が否定された場合には、ステップS28に戻る。ステップS28に戻ると、イベント分類部36は、次の業務フロー種別を抽出する。ここでは、例えば、図11の2つ目の業務フロー(フロー種別No.=9の業務フロー種別)が抽出されることになる。
次いで、ステップS30では、イベント分類部36が、共通イベントとして抽出された「INIT」と「FINAL」を除いたイベント種別の組み合わせを抽出する。この場合、イベント種別「A1、A2、A3、A4」が抽出され、これらのイベント種別のうち、イベント種別「A2」は、どのイベント群にも含まれていない。したがって、本ステップS30では、イベント分類部36は、新たなイベント群G2として、イベント種別「A2」のみを、図13の記憶域Sに登録する。
その後、ステップS32の判断が肯定されるまで、ステップS28、S30を繰り返す。これにより、図13のように、記憶域Sにイベント群G1〜G7を登録することができる。そして、ステップS32の判断が肯定されると、ステップS34に移行する。
ステップS34では、イベント分類部36が、イベント群の移動先を記憶する記憶域Zを用意する(図14(b)参照)。その後は、図7の処理に移行する。なお、これまでの処理で記憶域Sに登録されたイベント群は、実際は、他のイベント群と同時に出現することが多い場合もある。したがって、そのようなイベント群同士を併合して、より大きな塊として捉えるべき場合もある。図7の処理では、このようなイベント群の併合処理を行うこととしている。なお、併合すべきイベント群は、後の方で抽出されたイベント群(実行回数が少ないイベント群)である可能性が高いと考えられる。
図7の処理では、まず、ステップS36において、イベント分類部36が、最後に加えたイベント群から(図13の下側から順に)イベント群を抽出する。ここでは、イベント群G1〜G7のうち、最後に記憶域Sに登録されたイベント群G7を抽出する。
次いで、ステップS38では、イベント分類部36が、イベント群の個数分のカウンタCを用意する(図14(a)参照)。次いで、ステップS40では、イベント分類部36が、未抽出の業務フロー種別を1つ抽出する。ここでは、図10のフロー種別No.=1〜11のうちのいずれかの業務フロー種別(例えば、フロー種別No.が最も小さい、フロー種別No.=1の業務フロー種別とする)を抽出する。
次いで、ステップS42では、イベント分類部36が、ステップS40で抽出した業務フロー種別が、ステップS36で抽出したイベント群(G7)のイベント種別(C3)を全て含んでいるか否かを判断する。ここでは、含んでいないので、ステップS42の判断が否定され、ステップS46に移行する。そして、ステップS46では、全ての業務フロー種別を抽出したか否かを判断する。ここでの判断が否定された場合には、ステップS40に戻り、未抽出のフロー種別を1つ(例えば、フロー種別No.=2のフロー種別)抽出する。
このように、イベント群G7に対して、業務フロー種別のうちG7のイベントを全て含んでいるものを調べると、ステップS40でフロー種別No.=10の業務フロー種別が抽出されているときにステップS42の判断が肯定される。この場合、ステップS44に移行する。ステップS44では、イベント分類部36は、抽出したフロー種別が、抽出したイベント群より先に登録したk番目の(すなわち、抽出したフロー種別よりも実行量の多いフロー種別に含まれる)イベント群(Gk)の全イベントを含む場合に、k番目のイベントのカウンタCに、抽出したフロー種別の実行量を加算する。この場合、イベント群G1からG6のイベント種別のうち、フロー種別No.=10にすべて含まれているイベント種別はG6であるので、カウンタCの値は、図14(a)のようになる。
その後、ステップS46の判断が肯定されると、ステップS48に移行する。ステップS48では、イベント分類部36は、カウンタの合計値(CSUM)に対する最大カウンタ値(Cmax)の割合が閾値(例えば、0.8とする)以上の場合、当該イベント群の移動先を最大カウンタ値に対応するイベント群に設定する。
ここでは、図14(a)に示すように、Cmax=21であり、カウンタの合計値(CSUM)は21である。したがって、Cmax/CSUM=21/21>0.8より、記憶域Zにおいては、イベント群G7の移動先としてイベント群G6が設定されることになる(図14(b)参照)。
次いで、ステップS50では、イベント分類部36が、全てのイベント群を抽出したか否かを判断する。ここでは、まだ、イベント群G7を抽出したのみであるので、ステップS50の判断は、否定され、ステップS40に戻る。その後、イベント分類部36は、上記と同様の処理を、イベント群G6→G5→…→G1について実行する。
例えば、イベント群G5について上記と同様の処理を実行した場合のカウンタCの値は、図15(a)のようになる。したがって、記憶域Zにおいては、イベント群G5の移動先として、イベント群G3が設定されることになる。
また、例えば、イベント群G4について上記と同様の処理を実行した場合のカウンタCの値は、図16に示すようになる。この場合、Cmax/CSUM=54/(54+52)≒0.51となり、閾値(0.8)を超えない。したがって、イベント群G4の移動先としては、何も設定されない。
なお、その他のイベントについても移動先は設定されない。このため、最終的に移動先が設定されるイベント群は、図15(b)に示すようにイベント群G5とイベント群G7となる。
図7に戻り、上述したようなステップS36〜S50の繰り返し処理が行われ、ステップS50の判断が肯定されると、ステップS52に移行する。ステップS52では、イベント分類部36が、最後に加えたイベント群から順に、当該イベント群に対応する移動先が設定されているかを確認し、設定されている場合は、当該イベント群を移動先イベント群に併合する。このステップS52の処理の結果、記憶域Sの最終結果(併合結果)は、図17のようになる。なお、図17では、イベント群に新たに併合されたイベント種別に下線を付して示している。
以上の処理では、イベント分類部36は、抽出されたイベント群のうちのあるイベント群を含む業務(第1の業務)に、そのイベントよりも実行量の多い業務(第2の業務)に含まれるイベント群の全てのイベントが含まれる場合に、両イベント群をまとめることとしており、これにより、イベント群は、共通イベント(G0)と、5個のイベント群(G1、G2,G3,G4,G6)に分類されることになる。これ以降は、図5のステップS16に移行する。
図5に戻り、ステップS16では、ソース分割部38が、イベントの組に対応するコードを抽出し、それを業務に対応するコードの範囲とする処理を実行する。具体的には、図8のフローチャートに沿った処理が実行される。なお、本実施形態では、プログラムソースの記述言語がJava(登録商標)であるものとする。ただし、これに限らず、メソッドのように何らかのコードの塊があり、当該コードの塊を呼び出し単位とする言語で記述されていれば、他の記述言語を採用してもよい。また、業務データ(図9参照)は、RDB(Relational Database)に格納されており、RDBに対するアクセスには、SQLを用いると仮定する。
図8の処理では、まず、ステップS60において、ソース分割部38が、共通イベントおよびイベント群それぞれに対応する呼び出し単位(メソッド)を記録する記憶域M(図23(a)参照)を作成する。具体的には、後の処理で抽出する共通イベントG0に対応するメソッドを格納する記憶域M0と、n個のイベント群Gi(i=1、2、…、n)に対応するメソッドを記録する記憶域Miを作成する。
次いで、ステップS62では、ソース分割部38が、process mining実行時の定義ファイルから、イベントに対応するテーブル名とカラム名を取得する。ここで、process miningの定義ファイルは、実装によって異なるが、例えば、図18(a)に示すような、業務データが格納されているテーブル名、そのテーブルにおける業務案件の識別子が格納されるカラム名、イベントのタイプを表すカラム名、イベントが発生した時刻が格納されるカラム名、のようなイベントを生成するための定義情報テーブルを含む。また、process miningの定義ファイルは、図18(b)に示すような、process miningが生成したイベント種別識別子と表示イベント名との対応情報テーブルを含む。ここで、図18(b)の表示イベント名は、表示時に利用者に分かりやすく表示するためのものである。したがって、ソース分割部38は、上述した定義情報を入力として、業務フロー種別に含まれるイベント名(ここでは、表示イベント名)に対応するテーブル名、タイプが格納されるカラム名、時刻のカラム名を抽出する。
なお、本実施形態では、第2のデータとしてのソースのメソッド間の呼び出し関係が図19のようになっているとする。ここで、楕円はメソッド1個を表し、楕円と楕円を結ぶ矢印は呼び出し関係(始点が呼出元メソッド、終点が呼び出し先メソッド)を表しているものとする。このような呼び出し関係は、例えば開発環境であるEclipse(http://www.eclipse.org/)に含まれる構文解析木AST(Abstract Syntax Tree)を用いて取得することができる。
図19では、ソースは、クラスMainのメソッドmain(以下ではMain#mainと記述する)から実行を開始し、Main#initDbやMain#goを呼び出し、更にMain#goからはAmodel#goなどを呼び出す。実際のSQL文の組み立てはSqlAccess#execUtilで行われ、実行はPreparedStatement#executeで行われるが、その際に実行されるSQL文に設定されるイベント種別を識別する情報は呼出元のメソッドで設定される。
図8に戻り、次のステップS64では、ソース分割部38が、ソースから、イベントに対応するテーブル名とカラム名に対して、書き込みアクセス(INSERT又はUPDATE)を行うSQL文を生成するメソッド(イベント生成メソッド)を検索し、イベントと対応づける(対応表Tに記録する)。
ここで、例えば、ある業務フロー種別にイベント種別「A1」が存在し、イベント名として表示イベント名を使用している場合、図18(b)に示すイベント種別識別子と表示イベント名の対応定義からイベント種別「A1」のイベント種別識別子は「t1.A1.datetime」となる。また、process miningがイベント種別識別子を「テーブル名.タイプ名.時刻名」という規則で表現しているとすると、イベント「A1」に対応するテーブル名は「t1」で、タイプ名は「A1」、時刻のカラム名はdatetimeであることが分かる。さらに、図18(a)の定義情報から、テーブルt1においてタイプ名が格納されるカラム名がtypeであることが分かる。
一方、ソース分割部38は、ソースに対して構文解析を行うことで、SQL文を生成するメソッドを検出する。具体的には、図9に示すテーブルt1に書き込むSQLはINSERT文か、UPDATE文のいずれかなので、ソース分割部38は、構文解析で得られるノードのうち「INSERT」ないし「UPDATE」の文字列が含まれているものを検索する。そして、ソース分割部38は、当該文字列でSQLの文法に合致しており、かつテーブルt1を処理対象としカラムtypeに値「A1」を設定し、カラムdatetimeに値を設定しているものを検索する。このときSQL文を構成する要素がメソッドの引数などで与えられる場合がある。例えば、図20に示すメソッドSqlAccess#execUtilにはINSERT文が存在するが、その値は引数で与えられ、その値は図21に示すA1#execA1で生成され与えられる。このような場合は、SQL文を直接生成するメソッドSqlAccess#execUtilではなく、その値を渡すA1#execA1のほうをイベントA1に対応するメソッドとして用いる。このようにして対応づけた結果として対応表T(図22)を得ることが可能となる。
図8に戻り、次のステップS66では、ソース分割部38が、共通イベント及び各イベント群が包含するイベント種別に対応するイベント生成メソッドを、第1のデータとしての対応表Tを参照して取得し、イベント群に対応する記憶域Miに追加する。この結果として得られる記憶域Miの状態が、図23(a)に示されている。
次いで、ステップS68では、ソース分割部38が、共通イベントを先頭に、フロー種別に対応するイベント群で実行量の多い順に、対応するイベント生成メソッドを呼び出すメソッドを再帰的に探索する。そして、それらをイベント群に対応するメソッドとして追加する。ただし、登録済みのメソッドにたどり着いたら探索を中止するものとする。この結果として得られる記憶域Miが、図23(b)に示されている。
次いで、ステップS70では、ソース分割部38が、共通イベントを先頭に、フロー種別に対応するイベント群で実行量の多い順に、イベント種別に対応するメソッドとして記録したメソッドから呼び出すメソッドを検索する。そして、呼び出すメソッドを、イベントに対応するメソッドとして追加する。ただし、登録済みのメソッドにたどり着いたら探索を中止する。このようにして、得られる記憶域Miが、図24に示されている。
次いで、ステップS72では、ソース分割部38が、イベント群それぞれに対応するメソッドの集合(図24参照)を、フロー種別に対応するソース範囲として得る。
次いで、ステップS74では、ソース分割部38が、これまでの処理で登録されなかったメソッド群を、業務とは直接関係のないメソッドとして記録する。
以下、ステップS68〜S74の処理についてより詳細かつ具体的に説明する。
まず、ソース分割部38が、記憶域に関し、対応するメソッドの呼出元メソッドを、構文解析(Eclipce)を用いて再帰的に求める場合(ステップS68)について説明する。図19に示すように、メソッドInit#execの呼出元メソッドはAmodel#go、Bmodel#go、Cmodel#goであり、さらにAmodel#goの呼出元はMain#goであり、さらにMain#goの呼出元がMain#mainである。同様にBmodel#goとCmodel#goの呼出元はMain#goである。またFinal#execの呼出元もAmodel#go、Bmodel#go、Cmodel#goである。したがって、ソース分割部38は、ステップS68において、これらのメソッドのうち、まだ記憶域Miに出現していないメソッドをM0に追加する。
また、記憶域M1の場合、記憶域M1に対応するメソッドに対して、メソッドA1#execA1の呼出元メソッドはAmodel#goであるが、これは既に記憶域M0に出現している。したがって、ソース分割部38は、記憶域M1には追加せず、それ以上の再帰的な探索を中止する。その他も同様に処理すると、記憶域M1に追加するメソッドがないことが分かる。同様にして、記憶域M2以降も処理すると、図23(b)に示すメソッド呼出元のメソッド情報を追加した状態の記憶域M2以降の結果が得られる。
次に、ソース分割部38が、記憶域M0から順に、対応するメソッドが呼び出すメソッドを、構文解析を用いて再帰的に求める場合(ステップS70)について説明する。図19に示すように、メソッドInit#execの呼び出し先はSqlAccess#execUtilであり、更にSqlAccess#execUtilはPreparedStatement#executeを呼び出す。Final#execも同様である。また、Main#goの呼び出し先はUtil#getNewId、Amodel#go、Bmodel#go、Cmodel#goである。さらにMain#mainの呼び出し先はMain#goとMain#initDbである。したがって、ステップS70では、ソース分割部38が、記憶域Mにまだ出現していないSqlAccess#execUtil、SqlAccess#execUtil、Util#getNewId、Main#initDbを記憶域M0に追加する。同様に記憶域M1以降も処理すると、結果として図24に示す記憶域の内容を得る。
次に、ステップS72、S74について説明する。ステップS72では、ソース分割部38が、イベント群それぞれに対応するメソッドの集合を、フロー種別に対応するソース範囲として得、ステップS74では、未登録のメソッド群を、業務とは直接関係のないメソッドとして記録する。この結果、図24の記憶域Mは、図25のように図示することができる。なお、図25では説明のため呼出元方向探索((G0)などと表記)と呼び出し先探索([G0]などと表記)を区別して表示しているが、これらの差異は記憶域Mの情報からは得られない。なお、図25では、楕円で示すメソッドの左上に、メソッドが属するイベント群を示している。また、ハッチングを付して示す楕円は、イベント種別に対応するメソッドを表している。
以上の処理により、ソース分割部38では、共通イベントに含まれるイベントに対応するメソッドに、これと呼び出し関係にあるメソッドを関連付け、ソース分割部38は、イベントの実行量が多い順に、イベント群に含まれるイベントに対応するメソッドに、これと呼び出し関係にあり、かつ、まだ他のイベントに関連付けていないメソッドを関連付けるので、共通イベントおよび業務の特徴を表すイベント群それぞれに対応するメソッドを取得できる(図26:解析結果)。具体的には、図26に示すように、例えばイベントA2を含む業務と関係するソースは、太い実線で囲んだ範囲のメソッド群(G1)であり、共通的に用いられているメソッド群(G0)は破線で囲んだ範囲のメソッド群である。このため、当該業務を変更する場合には、これらの業務に直接関与するメソッドと共通メソッドに注目すればよいことになる。図26の解析結果は、解析依頼先の企業などに納入したりすることで、業務システム10A、10Bのメンテナンスの際に利用されることになる。
以上、詳細に説明したように、本実施形態によると、業務データ蓄積部32が、業務システム10A,10Bが実行した複数種類の業務の実行履歴データを業務DB12A,12Bから取得し(ステップS10)、process mining実行部34が、業務の実行履歴データから、業務の種類ごとに当該業務に含まれるイベントの実行履歴を抽出し(ステップS12)、イベント分類部36が、抽出されたイベントの実行履歴のうち、所定の頻度で実行されたイベントを共通イベントとして抽出する(ステップS26)。また、イベント分類部36は、複数種類の業務の各々について、該業務に含まれるイベントのうち、該イベントを含む業務よりも実行量の多い業務において実行されていないイベントをまとめて、イベント群とする(ステップS30)。そして、ソース分割部38は、第1のデータとしての対応表T(図22)に基づいて、共通イベント及びイベント群に含まれるイベントをメソッドで置き換え、第2のデータとしてのソースのメソッド間の呼び出し関係(図19)に基づいて、置き換えたメソッドと呼び出し関係にあるメソッドを、共通イベント又はイベント群に関連付ける(図24)。このように、本実施形態では、業務システムのメソッドを、各業務で共通に用いられる部分と、各業務特有の部分とに分類することができる。このような分類結果を業務システムの保守を行う際に利用することで、業務特有のメソッドについては、他の業務とは独立に変更・修正することが可能となる。また、共通部分については、他の業務への影響を考慮して変更する必要があることが明確となる。更に、業務単位で他システムへの移行を行う場合等においては、移行元システムで不要になったメソッド部分を保守対象から正しく除くのに有用である。また、移行元システムで他業務と共通に使われていたメソッドは保守対象のままにし、業務固有のメソッド部分のみ保守対象から外すことができるため、適切な保守コストを維持することが可能となる。
また、本実施形態では、ソース分割部38は、共通イベントに含まれるイベントに対応するメソッドに、これと呼び出し関係にあるメソッドを関連付ける。そして、ソース分割部38は、イベントの実行量が多い順に、イベント群に含まれるイベントに対応するメソッドに、これと呼び出し関係にあり、かつ、まだ他のイベントに関連付けていないメソッドを関連付ける。このように、呼び出し関係にある部分が変更されることによる影響の大きいイベント群(又は共通イベント)に対する関連付けを行うことで、適切な分類が可能となる。
また、本実施形態では、イベント分類部36は、抽出されたイベント群のうちのあるイベント群を含む業務(第1の業務)に、そのイベントよりも実行量の多い業務(第2の業務)に含まれるイベント群の全てのイベントが含まれる場合に、両イベント群をまとめる。これにより、本来まとめるべきイベント群をまとめることができるので、適切なメソッドの分類が可能であり、かつ、業務システムの保守をより適切に行うことが可能となる。
この場合、イベント分類部36は、ある業務(第1の業務)に、当該業務よりも実行量の多い業務(第2の業務)に含まれるイベント群が複数含まれる場合には、当該イベント群を含む複数の業務の各々毎に、当該イベント群を含む複数の業務の実行量の合計に対する、当該業務の実行量の割合をそれぞれ算出し、その割合が所定の割合(例えば、0.8)よりも高いイベント群と、第1の業務のイベント群とをまとめる。したがって、適切にイベント群をまとめることが可能となる。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD(Digital Versatile Disc)、CD−ROM(Compact Disc Read Only Memory)などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
なお、以上の説明に関して更に以下の付記を開示する。
(付記1) 業務システムが実行した複数種類の業務の実行履歴データを取得する取得部と、前記業務の実行履歴データから、前記業務の種類ごとに当該業務に含まれる実行単位の実行履歴を抽出する履歴抽出部と、前記履歴抽出部により抽出された実行単位の実行履歴において、所定の頻度で実行された実行単位を共通実行単位として抽出する共通実行単位抽出部と、前記複数種類の業務の各々について、該業務に含まれる実行単位のうち、該実行単位を含む第1の業務よりも実行量の多い第2の業務において実行されていない実行単位をまとめて、固有実行単位群を抽出する固有実行単位群抽出部と、前記実行単位と前記業務で実行するプログラムソースの呼び出し単位との関係を示す第1のデータに基づいて、前記共通実行単位及び前記固有実行単位群に含まれる実行単位を当該実行単位に対応する呼び出し単位で置き換え、呼び出し単位間の呼び出し関係を示す第2のデータに基づいて、前記置き換えた呼び出し単位と呼び出し関係にある呼び出し単位を、前記共通実行単位又は前記固有実行単位群のいずれかに対して関連付ける関連付け部と、を備える解析装置。
(付記2) 前記関連付け部は、前記共通実行単位に含まれる実行単位に対応する呼び出し単位に該呼び出し単位と呼び出し関係にある呼び出し単位を関連付け、前記業務の実行量が多い順に、前記固有実行単位群に含まれる実行単位に対応する呼び出し単位に、該呼び出し単位と呼び出し関係にあり、且つ、まだ他の実行単位に関連付けていない呼び出し単位を関連付けることを特徴とする付記1に記載の解析装置。
(付記3) 前記固有実行単位群抽出部は、前記抽出された固有実行単位群のうちの第1の固有実行単位群を含む第1の業務に、当該第1の業務よりも実行量の多い第2の業務に含まれる第2の固有実行単位群の全ての実行単位が含まれる場合に、前記第1の固有実行単位群と前記第2の固有実行単位群とをまとめることを特徴とする付記1又は2に記載の解析装置。
(付記4) 前記固有実行単位群抽出部は、前記第1の業務に、当該第1の業務よりも実行量の多い第2の業務に含まれる第2の固有実行単位群が複数含まれる場合には、当該第2の固有実行単位群を含む複数の業務の各々毎に、当該第2の固有実行単位を含む複数の業務の実行量の合計に対する、当該業務の実行量の割合をそれぞれ算出し、前記割合が所定の割合よりも高い前記第2の固有実行単位群と、前記第1の固有実行単位群とをまとめることを特徴とする付記3に記載の解析装置。
(付記5) 業務システムが実行した複数種類の業務の実行履歴データを取得し、前記業務の実行履歴データから、前記業務の種類ごとに当該業務に含まれる実行単位の実行履歴を抽出し、前記抽出された実行単位の実行履歴において所定の頻度で実行された実行単位を共通実行単位として抽出し、前記複数種類の業務の各々について、該業務に含まれる実行単位のうち、該実行単位を含む第1の業務よりも実行量の多い第2の業務において実行されていない実行単位をまとめて、固有実行単位群を抽出し、前記実行単位と前記業務で実行するプログラムソースの呼び出し単位との関係を示す第1のデータに基づいて、前記共通実行単位及び前記固有実行単位群に含まれる実行単位を当該実行単位に対応する呼び出し単位で置き換え、呼び出し単位間の呼び出し関係を示す第2のデータに基づいて、前記置き換えた呼び出し単位と呼び出し関係にある呼び出し単位を、前記共通実行単位又は前記固有実行単位群のいずれかに対して関連付ける処理を、コンピュータに実行させることを特徴とする解析プログラム。
(付記6) 前記関連付ける処理では、前記共通実行単位に含まれる実行単位に対応する呼び出し単位に該呼び出し単位と呼び出し関係にある呼び出し単位を関連付け、前記業務の実行量が多い順に、前記固有実行単位群に含まれる実行単位に対応する呼び出し単位に、該呼び出し単位と呼び出し関係にあり、且つ、まだ他の実行単位に関連付けていない呼び出し単位を関連付ける処理を、コンピュータに実行させることを特徴とする付記5に記載の解析プログラム。
(付記7) 前記固有実行単位群を抽出する処理では、前記抽出された固有実行単位群のうちの第1の固有実行単位群を含む第1の業務に、当該第1の業務よりも実行量の多い第2の業務に含まれる第2の固有実行単位群の全ての実行単位が含まれる場合に、前記第1の固有実行単位群と前記第2の固有実行単位群とをまとめる処理を、コンピュータに実行させることを特徴とする付記5又は6に記載の解析プログラム。
(付記8) 前記固有実行単位群を抽出する処理では、前記第1の業務に、当該第1の業務よりも実行量の多い第2の業務に含まれる第2の固有実行単位群が複数含まれる場合には、当該第2の固有実行単位群を含む複数の業務の各々毎に、当該第2の固有実行単位を含む複数の業務の実行量の合計に対する、当該業務の実行量の割合をそれぞれ算出し、前記割合が所定の割合よりも高い前記第2の固有実行単位群と、前記第1の固有実行単位群とをまとめる処理を、コンピュータに実行させることを特徴とする付記7に記載の解析プログラム。
(付記9)コンピュータが、業務システムが実行した複数種類の業務の実行履歴データを取得する取得工程と、前記業務の実行履歴データから、前記業務の種類ごとに当該業務に含まれる実行単位の実行履歴を抽出する履歴抽出工程と、前記履歴抽出部により抽出された実行単位の実行履歴において、所定の頻度で実行された実行単位を共通実行単位として抽出する共通実行単位抽出工程と、前記複数種類の業務の各々について、該業務に含まれる実行単位のうち、該実行単位を含む第1の業務よりも実行量の多い第2の業務において実行されていない実行単位をまとめて、固有実行単位群を抽出する固有実行単位群抽出工程と、前記実行単位と前記業務で実行するプログラムソースの呼び出し単位との関係を示す第1のデータに基づいて、前記共通実行単位及び前記固有実行単位群に含まれる実行単位を当該実行単位に対応する呼び出し単位で置き換え、呼び出し単位間の呼び出し関係を示す第2のデータに基づいて、前記置き換えた呼び出し単位と呼び出し関係にある呼び出し単位を、前記共通実行単位又は前記固有実行単位群のいずれかに対して関連付ける関連付け工程と、を実行することを特徴とする解析方法。
(付記10) 前記関連付け工程では、前記共通実行単位に含まれる実行単位に対応する呼び出し単位に該呼び出し単位と呼び出し関係にある呼び出し単位を関連付け、前記業務の実行量が多い順に、前記固有実行単位群に含まれる実行単位に対応する呼び出し単位に、該呼び出し単位と呼び出し関係にあり、且つ、まだ他の実行単位に関連付けていない呼び出し単位を関連付けることを特徴とする付記9に記載の解析方法。
(付記11) 前記固有実行単位群抽出工程では、前記抽出された固有実行単位群のうちの第1の固有実行単位群を含む第1の業務に、当該第1の業務よりも実行量の多い第2の業務に含まれる第2の固有実行単位群の全ての実行単位が含まれる場合に、前記第1の固有実行単位群と前記第2の固有実行単位群とをまとめることを特徴とする付記9又は10に記載の解析方法。
(付記12) 前記固有実行単位群抽出工程では、前記第1の業務に、当該第1の業務よりも実行量の多い第2の業務に含まれる第2の固有実行単位群が複数含まれる場合には、当該第2の固有実行単位群を含む複数の業務の各々毎に、当該第2の固有実行単位を含む複数の業務の実行量の合計に対する、当該業務の実行量の割合をそれぞれ算出し、前記割合が所定の割合よりも高い前記第2の固有実行単位群と、前記第1の固有実行単位群とをまとめることを特徴とする付記11に記載の解析方法。
10A,10B 業務システム
20 解析装置
32 業務データ蓄積部(取得部)
34 process mining実行部(履歴抽出部)
36 イベント分類部(共通実行単位抽出部、固有実行単位群抽出部)
38 ソース分割部(関連付け部)
90 CPU(コンピュータ)

Claims (6)

  1. 業務システムが実行した複数種類の業務の実行履歴データを取得する取得部と、
    前記業務の実行履歴データから、前記業務の種類ごとに当該業務に含まれる実行単位の実行履歴を抽出する履歴抽出部と、
    前記履歴抽出部により抽出された実行単位の実行履歴において、所定の頻度で実行された実行単位を共通実行単位として抽出する共通実行単位抽出部と、
    前記複数種類の業務の各々について、該業務に含まれる実行単位のうち、該実行単位を含む第1の業務よりも実行量の多い第2の業務において実行されていない実行単位をまとめて、固有実行単位群を抽出する固有実行単位群抽出部と、
    前記実行単位と前記業務で実行するプログラムソースの呼び出し単位との関係を示す第1のデータに基づいて、前記共通実行単位及び前記固有実行単位群に含まれる実行単位を当該実行単位に対応する呼び出し単位で置き換え、呼び出し単位間の呼び出し関係を示す第2のデータに基づいて、前記置き換えた呼び出し単位と呼び出し関係にある呼び出し単位を、前記共通実行単位又は前記固有実行単位群のいずれかに対して関連付ける関連付け部と、を備える解析装置。
  2. 前記関連付け部は、前記共通実行単位に含まれる実行単位に対応する呼び出し単位に該呼び出し単位と呼び出し関係にある呼び出し単位を関連付け、前記業務の実行量が多い順に、前記固有実行単位群に含まれる実行単位に対応する呼び出し単位に、該呼び出し単位と呼び出し関係にあり、且つ、まだ他の実行単位に関連付けていない呼び出し単位を関連付けることを特徴とする請求項1に記載の解析装置。
  3. 前記固有実行単位群抽出部は、
    前記抽出された固有実行単位群のうちの第1の固有実行単位群を含む第1の業務に、当該第1の業務よりも実行量の多い第2の業務に含まれる第2の固有実行単位群の全ての実行単位が含まれる場合に、
    前記第1の固有実行単位群と前記第2の固有実行単位群とをまとめることを特徴とする請求項1又は2に記載の解析装置。
  4. 前記固有実行単位群抽出部は、
    前記第1の業務に、当該第1の業務よりも実行量の多い第2の業務に含まれる第2の固有実行単位群が複数含まれる場合には、当該第2の固有実行単位群を含む複数の業務の各々毎に、当該第2の固有実行単位を含む複数の業務の実行量の合計に対する、当該業務の実行量の割合をそれぞれ算出し、
    前記割合が所定の割合よりも高い前記第2の固有実行単位群と、前記第1の固有実行単位群とをまとめることを特徴とする請求項3に記載の解析装置。
  5. 業務システムが実行した複数種類の業務の実行履歴データを取得し、
    前記業務の実行履歴データから、前記業務の種類ごとに当該業務に含まれる実行単位の実行履歴を抽出し、
    前記抽出された実行単位の実行履歴において所定の頻度で実行された実行単位を共通実行単位として抽出し、
    前記複数種類の業務の各々について、該業務に含まれる実行単位のうち、該実行単位を含む第1の業務よりも実行量の多い第2の業務において実行されていない実行単位をまとめて、固有実行単位群を抽出し、
    前記実行単位と前記業務で実行するプログラムソースの呼び出し単位との関係を示す第1のデータに基づいて、前記共通実行単位及び前記固有実行単位群に含まれる実行単位を当該実行単位に対応する呼び出し単位で置き換え、呼び出し単位間の呼び出し関係を示す第2のデータに基づいて、前記置き換えた呼び出し単位と呼び出し関係にある呼び出し単位を、前記共通実行単位又は前記固有実行単位群のいずれかに対して関連付ける処理を、コンピュータに実行させることを特徴とする解析プログラム。
  6. コンピュータが、
    業務システムが実行した複数種類の業務の実行履歴データを取得する取得工程と、
    前記業務の実行履歴データから、前記業務の種類ごとに当該業務に含まれる実行単位の実行履歴を抽出する履歴抽出工程と、
    前記履歴抽出工程により抽出された実行単位の実行履歴において、所定の頻度で実行された実行単位を共通実行単位として抽出する共通実行単位抽出工程と、
    前記複数種類の業務の各々について、該業務に含まれる実行単位のうち、該実行単位を含む第1の業務よりも実行量の多い第2の業務において実行されていない実行単位をまとめて、固有実行単位群を抽出する固有実行単位群抽出工程と、
    前記実行単位と前記業務で実行するプログラムソースの呼び出し単位との関係を示す第1のデータに基づいて、前記共通実行単位及び前記固有実行単位群に含まれる実行単位を当該実行単位に対応する呼び出し単位で置き換え、呼び出し単位間の呼び出し関係を示す第2のデータに基づいて、前記置き換えた呼び出し単位と呼び出し関係にある呼び出し単位を、前記共通実行単位又は前記固有実行単位群のいずれかに対して関連付ける関連付け工程と、を実行することを特徴とする解析方法。
JP2011007329A 2011-01-17 2011-01-17 解析装置、解析プログラム及び解析方法 Expired - Fee Related JP5605233B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011007329A JP5605233B2 (ja) 2011-01-17 2011-01-17 解析装置、解析プログラム及び解析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011007329A JP5605233B2 (ja) 2011-01-17 2011-01-17 解析装置、解析プログラム及び解析方法

Publications (2)

Publication Number Publication Date
JP2012150575A JP2012150575A (ja) 2012-08-09
JP5605233B2 true JP5605233B2 (ja) 2014-10-15

Family

ID=46792776

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011007329A Expired - Fee Related JP5605233B2 (ja) 2011-01-17 2011-01-17 解析装置、解析プログラム及び解析方法

Country Status (1)

Country Link
JP (1) JP5605233B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109582526A (zh) * 2017-09-28 2019-04-05 北京国双科技有限公司 一种数据获取方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008234260A (ja) * 2007-03-20 2008-10-02 Fujitsu Ltd 想定動作条件分析プログラム、想定動作条件分析装置および想定動作条件分析方法
JP5246031B2 (ja) * 2009-05-20 2013-07-24 富士通株式会社 業務フロー処理プログラム、方法及び装置

Also Published As

Publication number Publication date
JP2012150575A (ja) 2012-08-09

Similar Documents

Publication Publication Date Title
Robbes et al. How program history can improve code completion
JP6505123B2 (ja) ビッグ・データ・リポジトリにおけるデータ・セットの処理
US9129002B2 (en) Dividing device, dividing method, and recording medium
US7886028B2 (en) Method and system for system migration
US9645843B2 (en) Image instance mapping
US8352414B2 (en) System for discovering business processes from noisy activities logs
KR20170031750A (ko) 계보 정보의 관리
JP6239004B2 (ja) 最適化されたデータサブセット化のための方法、装置及びコンピュータ読み取り可能媒体
JPWO2012131927A1 (ja) 計算機システム及びデータ管理方法
CN104424360A (zh) 用于访问源数据库中的一组数据表格的方法和系统
JP2012069098A5 (ja) ネットワーク化されたビジネスプロセスのネットワーク参加者に関するサービス品質を管理するための方法、および管理するための動作をコンピュータに実行させることができる命令を格納するコンピュータ読み取り可能な記録媒体
JP5535062B2 (ja) ウェブログの時系列分析のためのデータ格納および照会方法及びその方法を実行するシステム
CN110134663B (zh) 组织结构数据处理方法、装置、电子设备
US20230029278A1 (en) Efficient explorer for recorded meetings
JP2019530121A (ja) データ統合ジョブ変換
KR101975272B1 (ko) 협업 의존성 기반 컴포넌트 재사용 추천 시스템 및 방법
CN112433888B (zh) 数据处理方法及装置、存储介质和电子设备
JP5605233B2 (ja) 解析装置、解析プログラム及び解析方法
CN110851515A (zh) 一种基于Spark分布式环境下的大数据ETL模型执行方法及介质
JP2021056570A (ja) データベースの分割システム、データベースの分割方法、及びデータベースの分割プログラム
US8195604B2 (en) System and method for verifying IMS databases on a mainframe computer
Munir et al. A cost-based storage format selector for materialization in big data frameworks
JP2018181121A (ja) 分析装置、分析プログラム及び分析方法
WO2013162011A1 (ja) 文書成分分析装置およびプログラム
RU2751580C1 (ru) Программа специфицирования, устройство обработки информации и способ специфицирования

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131007

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140430

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140513

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140623

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140729

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140811

R150 Certificate of patent or registration of utility model

Ref document number: 5605233

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees