"業務システムが実行した複数種類の業務の実行履歴データを取得する取得部と、前記業務の実行履歴データから、前記業務の種類ごとに当該業務に含まれる実行単位の実行履歴を抽出する履歴抽出部と、前記履歴抽出部により抽出された実行単位の実行履歴において、所定の頻度で実行された実行単位を共通実行単位として抽出する共通実行単位抽出部と、前記複数種類の業務の各々について、該業務に含まれる実行単位のうち、該実行単位を含む第1の業務よりも実行量の多い第2の業務において実行されていない実行単位をまとめて、固有実行単位群を抽出する固有実行単位群抽出部と、前記実行単位と前記業務で実行するプログラムソースの呼び出し単位との関係を示す第1のデータに基づいて、前記共通実行単位及び前記固有実行単位群に含まれる実行単位を当該実行単位に対応する呼び出し単位で置き換え、呼び出し単位間の呼び出し関係を示す第2のデータに基づいて、前記置き換えた呼び出し単位と呼び出し関係にある呼び出し単位を、前記共通実行単位又は前記固有実行単位群のいずれかに対して関連付ける関連付け部と、を備える解析装置。前記関連付け部は、前記共通実行単位に含まれる実行単位に対応する呼び出し単位に該呼び出し単位と呼び出し関係にある呼び出し単位を関連付け、前記業務の実行量が多い順に、前記固有実行単位群に含まれる実行単位に対応する呼び出し単位に、該呼び出し単位と呼び出し関係にあり、且つ、まだ他の実行単位に関連付けていない呼び出し単位を関連付けることを特徴とする請求項1に記載の解析装置。前記固有実行単位群抽出部は、前記抽出された固有実行単位群のうちの第1の固有実行単位群を含む第1の業務に、当該第1の業務よりも実行量の多い第2の業務に含まれる第2の固有実行単位群の全ての実行単位が含まれる場合に、前記第1の固有実行単位群と前記第2の固有実行単位群とをまとめることを特徴とする請求項1又は2に記載の解析装置。前記固有実行単位群抽出部は、前記第1の業務に、当該第1の業務よりも実行量の多い第2の業務に含まれる第2の固有実行単位群が複数含まれる場合には、当該第2の固有実行単位群を含む複数の業務の各々毎に、当該第2の固有実行単位を含む複数の業務の実行量の合計に対する、当該業務の実行量の割合をそれぞれ算出し、前記割合が所定の割合よりも高い前記第2の固有実行単位群と、前記第1の固有実行単位群とをまとめることを特徴とする請求項3に記載の解析装置。業務システムが実行した複数種類の業務の実行履歴データを取得し、前記業務の実行履歴データから、前記業務の種類ごとに当該業務に含まれる実行単位の実行履歴を抽出し、前記抽出された実行単位の実行履歴において所定の頻度で実行された実行単位を共通実行単位として抽出し、前記複数種類の業務の各々について、該業務に含まれる実行単位のうち、該実行単位を含む第1の業務よりも実行量の多い第2の業務において実行されていない実行単位をまとめて、固有実行単位群を抽出し、前記実行単位と前記業務で実行するプログラムソースの呼び出し単位との関係を示す第1のデータに基づいて、前記共通実行単位及び前記固有実行単位群に含まれる実行単位を当該実行単位に対応する呼び出し単位で置き換え、呼び出し単位間の呼び出し関係を示す第2のデータに基づいて、前記置き換えた呼び出し単位と呼び出し関係にある呼び出し単位を、前記共通実行単位又は前記固有実行単位群のいずれかに対して関連付ける処理を、コンピュータに実行させることを特徴とする解析プログラム。コンピュータが、業務システムが実行した複数種類の業務の実行履歴データを取得する取得工程と、前記業務の実行履歴データから、前記業務の種類ごとに当該業務に含まれる実行単位の実行履歴を抽出する履歴抽出工程と、前記履歴抽出部により抽出された実行単位の実行履歴において、所定の頻度で実行された実行単位を共通実行単位として抽出する共通実行単位抽出工程と、前記複数種類の業務の各々について、該業務に含まれる実行単位のうち、該実行単位を含む第1の業務よりも実行量の多い第2の業務において実行されていない実行単位をまとめて、固有実行単位群を抽出する固有実行単位群抽出工程と、前記実行単位と前記業務で実行するプログラムソースの呼び出し単位との関係を示す第1のデータに基づいて、前記共通実行単位及び前記固有実行単位群に含まれる実行単位を当該実行単位に対応する呼び出し単位で置き換え、呼び出し単位間の呼び出し関係を示す第2のデータに基づいて、前記置き換えた呼び出し単位と呼び出し関係にある呼び出し単位を、前記共通実行単位又は前記固有実行単位群のいずれかに対して関連付ける関連付け工程と、を実行することを特徴とする解析方法。しかしながら、上述した特許文献1の方法や、Aprioriアルゴリズムを用いた組み合わせたとしても、変更修正された業務システムにおいて、業務フロー及びこれに関連するメソッドを適切に分類分割することができない可能性がある。そこで本件は上記の課題に鑑みてなされたものであり、プログラムソースの呼び出し単位を適切に分類分割することが可能な解析装置、解析プログラム及び解析方法を提供することを目的とする。本明細書に記載の解析装置は、業務システムが実行した複数種類の業務の実行履歴データを取得する取得部と、前記業務の実行履歴データから、前記業務の種類ごとに当該業務に含まれる実行単位の実行履歴を抽出する履歴抽出部と、前記履歴抽出部により抽出された実行単位の実行履歴において、所定の頻度で実行された実行単位を共通実行単位として抽出する共通実行単位抽出部と、前記複数種類の業務の各々について、該業務に含まれる実行単位のうち、該実行単位を含む第1の業務よりも実行量の多い第2の業務において実行されていない実行単位をまとめて、固有実行単位群を抽出する固有実行単位群抽出部と、前記実行単位と前記業務で実行するプログラムソースの呼び出し単位との関係を示す第1のデータに基づいて、前記共通実行単位及び前記固有実行単位群に含まれる実行単位を当該実行単位に対応する呼び出し単位で置き換え、呼び出し単位間の呼び出し関係を示す第2のデータに基づいて、前記置き換えた呼び出し単位と呼び出し関係にある呼び出し単位を、前記共通実行単位又は前記固有実行単位群のいずれかに対して関連付ける関連付け部と、を備えている。本明細書に記載の解析プログラムは、業務システムが実行した複数種類の業務の実行履歴データを取得し、前記業務の実行履歴データから、前記業務の種類ごとに当該業務に含まれる実行単位の実行履歴を抽出し、前記抽出された実行単位の実行履歴において所定の頻度で実行された実行単位を共通実行単位として抽出し、前記複数種類の業務の各々について、該業務に含まれる実行単位のうち、該実行単位を含む第1の業務よりも実行量の多い第2の業務において実行されていない実行単位をまとめて、固有実行単位群を抽出し、前記実行単位と前記業務で実行するプログラムソースの呼び出し単位との関係を示す第1のデータに基づいて、前記共通実行単位及び前記固有実行単位群に含まれる実行単位を当該実行単位に対応する呼び出し単位で置き換え、呼び出し単位間の呼び出し関係を示す第2のデータに基づいて、前記置き換えた呼び出し単位と呼び出し関係にある呼び出し単位を、前記共通実行単位又は前記固有実行単位群のいずれかに対して関連付ける処理を、コンピュータに実行させる解析プログラムである。本明細書に記載の解析方法は、コンピュータが、業務システムが実行した複数種類の業務の実行履歴データを取得する取得工程と、前記業務の実行履歴データから、前記業務の種類ごとに当該業務に含まれる実行単位の実行履歴を抽出する履歴抽出工程と、前記履歴抽出部により抽出された実行単位の実行履歴において、所定の頻度で実行された実行単位を共通実行単位として抽出する共通実行単位抽出工程と、前記複数種類の業務の各々について、該業務に含まれる実行単位のうち、該実行単位を含む第1の業務よりも実行量の多い第2の業務において実行されていない実行単位をまとめて、固有実行単位群を抽出する固有実行単位群抽出工程と、前記実行単位と前記業務で実行するプログラムソースの呼び出し単位との関係を示す第1のデータに基づいて、前記共通実行単位及び前記固有実行単位群に含まれる実行単位を当該実行単位に対応する呼び出し単位で置き換え、呼び出し単位間の呼び出し関係を示す第2のデータに基づいて、前記置き換えた呼び出し単位と呼び出し関係にある呼び出し単位を、前記共通実行単位又は前記固有実行単位群のいずれかに対して関連付ける関連付け工程と、を実行する解析方法である。本明細書に記載の解析装置、解析プログラム及び解析方法は、プログラムソースの呼び出し単位を適切に分類分割することができるという効果を奏する。以下、一実施形態について、図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、記憶部ここではHDDHardDiskDrive96、入出力部97、可搬型記憶媒体用ドライブ99等を備えており、解析装置20の構成各部は、バス98に接続されている。入出力部97には、表示部や入力部等が接続されている。解析装置20では、ROM92あるいはHDD96に格納されているプログラム解析プログラム又は可搬型記憶媒体用ドライブ99が可搬型記憶媒体91から読み出したプログラム解析プログラムをCPU90が実行することにより、図4の各部の機能が実現される。図4は解析装置20の機能ブロック図である。図4に示すように、解析装置20は、processmining定義情報格納部30、取得部としての業務データ蓄積部32、履歴抽出部としてのprocessmining実行部34、共通実行単位抽出部及び固有実行単位群抽出部としてのイベント分類部36、関連付け部としてのソース分割部38、及び、ソース蓄積部40、として機能する。processmining定義情報格納部30は、processmining実行部34がprocessminingを実行する際に用いる定義情報を格納する。なお、定義情報は、公知のprocessminingにおいて用いられる定義情報と同一又は同等の情報である図18a参照。業務データ蓄積部32は、業務システムの業務DB12A,12Bから業務データを抽出して、蓄積する。業務データは、processmining実行部34がprocessminingを実行する際に用いるデータ図9のデータである。processmining実行部34は、processmining処理を実行する。イベント分類部36は、processmining処理の結果を用いて、共通実行単位としての共通イベントと、固有実行単位群としてのイベント群とを抽出する。なお、イベント分類部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では、processmining実行部34が、業務データに対して既存のprocessmining技術を適用し、複数の業務フロー種別とそれらの実行量を得る。この場合、processmining実行部34は、processmining技術により、図9に示すようなテーブルt1に基づいて、図10に示すような対象業務フロー種別と実行量のデータを得ることができる。なお、図10のデータは、項目フロー種別No.、実行回数を表す項目実行量、業務の実行単位であるイベントイベント種別の実行順を記述した項目業務フロー種別を含んでいる。ここで、業務フロー種別に含まれるINIT、A1、A2などはイベント種別を表し、イベント種別間に記述されている→はイベントの実行順を表している。なお、業務においては、手戻り等により、同一の業務内において同一のイベント種別が複数回行われる場合もある。このような場合であっても、一の業務においては、同一のイベント種別を1回のみカウントすることとする。次いで、ステップS14では、イベント分類部36が、各業務フロー種別に特有のイベント種別の組み合わせを抽出する処理を実行する。具体的には、イベント分類部36は、図6、図7に示す処理を実行する。図6のステップS20では、イベント分類部36が、processmining技術を用いて抽出した業務フロー種別とその実行量のデータを読み込む。次いで、ステップ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を用意する図14b参照。その後は、図7の処理に移行する。なお、これまでの処理で記憶域Sに登録されたイベント群は、実際は、他のイベント群と同時に出現することが多い場合もある。したがって、そのようなイベント群同士を併合して、より大きな塊として捉えるべき場合もある。図7の処理では、このようなイベント群の併合処理を行うこととしている。なお、併合すべきイベント群は、後の方で抽出されたイベント群実行回数が少ないイベント群である可能性が高いと考えられる。図7の処理では、まず、ステップS36において、イベント分類部36が、最後に加えたイベント群から図13の下側から順にイベント群を抽出する。ここでは、イベント群G1~G7のうち、最後に記憶域Sに登録されたイベント群G7を抽出する。次いで、ステップS38では、イベント分類部36が、イベント群の個数分のカウンタCを用意する図14a参照。次いで、ステップ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の値は、図14aのようになる。その後、ステップS46の判断が肯定されると、ステップS48に移行する。ステップS48では、イベント分類部36は、カウンタの合計値CSUMに対する最大カウンタ値Cmaxの割合が閾値例えば、0.8とする以上の場合、当該イベント群の移動先を最大カウンタ値に対応するイベント群に設定する。ここでは、図14aに示すように、Cmax=21であり、カウンタの合計値CSUMは21である。したがって、Cmax/CSUM=21/21>0.8より、記憶域Zにおいては、イベント群G7の移動先としてイベント群G6が設定されることになる図14b参照。次いで、ステップS50では、イベント分類部36が、全てのイベント群を抽出したか否かを判断する。ここでは、まだ、イベント群G7を抽出したのみであるので、ステップS50の判断は、否定され、ステップS40に戻る。その後、イベント分類部36は、上記と同様の処理を、イベント群G6→G5→...→G1について実行する。例えば、イベント群G5について上記と同様の処理を実行した場合のカウンタCの値は、図15aのようになる。したがって、記憶域Zにおいては、イベント群G5の移動先として、イベント群G3が設定されることになる。また、例えば、イベント群G4について上記と同様の処理を実行した場合のカウンタCの値は、図16に示すようになる。この場合、Cmax/CSUM=54/5452≒0.51となり、閾値0.8を超えない。したがって、イベント群G4の移動先としては、何も設定されない。なお、その他のイベントについても移動先は設定されない。このため、最終的に移動先が設定されるイベント群は、図15bに示すようにイベント群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参照は、RDBRelationalDatabaseに格納されており、RDBに対するアクセスには、SQLを用いると仮定する。図8の処理では、まず、ステップS60において、ソース分割部38が、共通イベントおよびイベント群それぞれに対応する呼び出し単位メソッドを記録する記憶域M図23a参照を作成する。具体的には、後の処理で抽出する共通イベントG0に対応するメソッドを格納する記憶域M0と、n個のイベント群Gii=1、2、...、nに対応するメソッドを記録する記憶域Miを作成する。次いで、ステップS62では、ソース分割部38が、processmining実行時の定義ファイルから、イベントに対応するテーブル名とカラム名を取得する。ここで、processminingの定義ファイルは、実装によって異なるが、例えば、図18aに示すような、業務データが格納されているテーブル名、そのテーブルにおける業務案件の識別子が格納されるカラム名、イベントのタイプを表すカラム名、イベントが発生した時刻が格納されるカラム名、のようなイベントを生成するための定義情報テーブルを含む。また、processminingの定義ファイルは、図18bに示すような、processminingが生成したイベント種別識別子と表示イベント名との対応情報テーブルを含む。ここで、図18bの表示イベント名は、表示時に利用者に分かりやすく表示するためのものである。したがって、ソース分割部38は、上述した定義情報を入力として、業務フロー種別に含まれるイベント名ここでは、表示イベント名に対応するテーブル名、タイプが格納されるカラム名、時刻のカラム名を抽出する。なお、本実施形態では、第2のデータとしてのソースのメソッド間の呼び出し関係が図19のようになっているとする。ここで、楕円はメソッド1個を表し、楕円と楕円を結ぶ矢印は呼び出し関係始点が呼出元メソッド、終点が呼び出し先メソッドを表しているものとする。このような呼び出し関係は、例えば開発環境であるEclipsehttpwwweclipseorgに含まれる構文解析木ASTを用いて取得することができる。図19では、ソースは、クラスMainのメソッドmain以下ではMainmainと記述するから実行を開始し、MaininitDbやMaingoを呼び出し、更にMaingoからはAmodelgoなどを呼び出す。実際のSQL文の組み立てはSqlAccessexecUtilで行われ、実行はPreparedStatementexecuteで行われるが、その際に実行されるSQL文に設定されるイベント種別を識別する情報は呼出元のメソッドで設定される。図8に戻り、次のステップS64では、ソース分割部38が、ソースから、イベントに対応するテーブル名とカラム名に対して、書き込みアクセスを行うSQL文を生成するメソッドを検索し、イベントと対応づける対応表Tに記録する。ここで、例えば、ある業務フロー種別にイベント種別A1が存在し、イベント名として表示イベント名を使用している場合、図18bに示すイベント種別識別子と表示イベント名の対応定義からイベント種別A1のイベント種別識別子はt1A1datetimeとなる。また、processminingがイベント種別識別子をテーブル名タイプ名時刻名という規則で表現しているとすると、イベントA1に対応するテーブル名はt1で、タイプ名はA1、時刻のカラム名はdatetimeであることが分かる。さらに、図18aの定義情報から、テーブルt1においてタイプ名が格納されるカラム名がtypeであることが分かる。一方、ソース分割部38は、ソースに対して構文解析を行うことで、SQL文を生成するメソッドを検出する。具体的には、図9に示すテーブルt1に書き込むSQLはINSERT文か、UPDATE文のいずれかなので、ソース分割部38は、構文解析で得られるノードのうちINSERTないしUPDATEの文字列が含まれているものを検索する。そして、ソース分割部38は、当該文字列でSQLの文法に合致しており、かつテーブルt1を処理対象としカラムtypeに値A1を設定し、カラムdatetimeに値を設定しているものを検索する。このときSQL文を構成する要素がメソッドの引数などで与えられる場合がある。例えば、図20に示すメソッドSqlAccessexecUtilにはINSERT文が存在するが、その値は引数で与えられ、その値は図21に示すA1execA1で生成され与えられる。このような場合は、SQL文を直接生成するメソッドSqlAccessexecUtilではなく、その値を渡すA1execA1のほうをイベントA1に対応するメソッドとして用いる。このようにして対応づけた結果として対応表Tを得ることが可能となる。図8に戻り、次のステップS66では、ソース分割部38が、共通イベント及び各イベント群が包含するイベント種別に対応するイベント生成メソッドを、第1のデータとしての対応表Tを参照して取得し、イベント群に対応する記憶域Miに追加する。この結果として得られる記憶域Miの状態が、図23aに示されている。次いで、ステップS68では、ソース分割部38が、共通イベントを先頭に、フロー種別に対応するイベント群で実行量の多い順に、対応するイベント生成メソッドを呼び出すメソッドを再帰的に探索する。そして、それらをイベント群に対応するメソッドとして追加する。ただし、登録済みのメソッドにたどり着いたら探索を中止するものとする。この結果として得られる記憶域Miが、図23bに示されている。次いで、ステップS70では、ソース分割部38が、共通イベントを先頭に、フロー種別に対応するイベント群で実行量の多い順に、イベント種別に対応するメソッドとして記録したメソッドから呼び出すメソッドを検索する。そして、呼び出すメソッドを、イベントに対応するメソッドとして追加する。ただし、登録済みのメソッドにたどり着いたら探索を中止する。このようにして、得られる記憶域Miが、図24に示されている。次いで、ステップS72では、ソース分割部38が、イベント群それぞれに対応するメソッドの集合図24参照を、フロー種別に対応するソース範囲として得る。次いで、ステップS74では、ソース分割部38が、これまでの処理で登録されなかったメソッド群を、業務とは直接関係のないメソッドとして記録する。以下、ステップS68~S74の処理についてより詳細かつ具体的に説明する。まず、ソース分割部38が、記憶域に関し、対応するメソッドの呼出元メソッドを、構文解析Eclipceを用いて再帰的に求める場合ステップS68について説明する。図19に示すように、メソッドInitexecの呼出元メソッドはAmodelgo、Bmodelgo、Cmodelgoであり、さらにAmodelgoの呼出元はMaingoであり、さらにMaingoの呼出元がMainmainである。同様にBmodelgoとCmodelgoの呼出元はMaingoである。またFinalexecの呼出元もAmodelgo、Bmodelgo、Cmodelgoである。したがって、ソース分割部38は、ステップS68において、これらのメソッドのうち、まだ記憶域Miに出現していないメソッドをM0に追加する。また、記憶域M1の場合、記憶域M1に対応するメソッドに対して、メソッドA1execA1の呼出元メソッドはAmodelgoであるが、これは既に記憶域M0に出現している。したがって、ソース分割部38は、記憶域M1には追加せず、それ以上の再帰的な探索を中止する。その他も同様に処理すると、記憶域M1に追加するメソッドがないことが分かる。同様にして、記憶域M2以降も処理すると、図23bに示すメソッド呼出元のメソッド情報を追加した状態の記憶域M2以降の結果が得られる。次に、ソース分割部38が、記憶域M0から順に、対応するメソッドが呼び出すメソッドを、構文解析を用いて再帰的に求める場合ステップS70について説明する。図19に示すように、メソッドInitexecの呼び出し先はSqlAccessexecUtilであり、更にSqlAccessexecUtilはPreparedStatementexecuteを呼び出す。Finalexecも同様である。また、Maingoの呼び出し先はUtilgetNewId、Amodelgo、Bmodelgo、Cmodelgoである。さらにMainmainの呼び出し先はMaingoとMaininitDbである。したがって、ステップS70では、ソース分割部38が、記憶域Mにまだ出現していないSqlAccessexecUtil、SqlAccessexecUtil、UtilgetNewId、MaininitDbを記憶域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、processmining実行部34が、業務の実行履歴データから、業務の種類ごとに当該業務に含まれるイベントの実行履歴を抽出しステップS12、イベント分類部36が、抽出されたイベントの実行履歴のうち、所定の頻度で実行されたイベントを共通イベントとして抽出するステップS26。また、イベント分類部36は、複数種類の業務の各々について、該業務に含まれるイベントのうち、該イベントを含む業務よりも実行量の多い業務において実行されていないイベントをまとめて、イベント群とするステップS30。そして、ソース分割部38は、第1のデータとしての対応表T図22に基づいて、共通イベント及びイベント群に含まれるイベントをメソッドで置き換え、第2のデータとしてのソースのメソッド間の呼び出し関係図19に基づいて、置き換えたメソッドと呼び出し関係にあるメソッドを、共通イベント又はイベント群に関連付ける図24。このように、本実施形態では、業務システムのメソッドを、各業務で共通に用いられる部分と、各業務特有の部分とに分類することができる。このような分類結果を業務システムの保守を行う際に利用することで、業務特有のメソッドについては、他の業務とは独立に変更修正することが可能となる。また、共通部分については、他の業務への影響を考慮して変更する必要があることが明確となる。更に、業務単位で他システムへの移行を行う場合等においては、移行元システムで不要になったメソッド部分を保守対象から正しく除くのに有用である。また、移行元システムで他業務と共通に使われていたメソッドは保守対象のままにし、業務固有のメソッド部分のみ保守対象から外すことができるため、適切な保守コストを維持することが可能となる。また、本実施形態では、ソース分割部38は、共通イベントに含まれるイベントに対応するメソッドに、これと呼び出し関係にあるメソッドを関連付ける。そして、ソース分割部38は、イベントの実行量が多い順に、イベント群に含まれるイベントに対応するメソッドに、これと呼び出し関係にあり、かつ、まだ他のイベントに関連付けていないメソッドを関連付ける。このように、呼び出し関係にある部分が変更されることによる影響の大きいイベント群又は共通イベントに対する関連付けを行うことで、適切な分類が可能となる。また、本実施形態では、イベント分類部36は、抽出されたイベント群のうちのあるイベント群を含む業務第1の業務に、そのイベントよりも実行量の多い業務第2の業務に含まれるイベント群の全てのイベントが含まれる場合に、両イベント群をまとめる。これにより、本来まとめるべきイベント群をまとめることができるので、適切なメソッドの分類が可能であり、かつ、業務システムの保守をより適切に行うことが可能となる。この場合、イベント分類部36は、ある業務第1の業務に、当該業務よりも実行量の多い業務第2の業務に含まれるイベント群が複数含まれる場合には、当該イベント群を含む複数の業務の各々毎に、当該イベント群を含む複数の業務の実行量の合計に対する、当該業務の実行量の割合をそれぞれ算出し、その割合が所定の割合例えば、0.8よりも高いイベント群と、第1の業務のイベント群とをまとめる。したがって、適切にイベント群をまとめることが可能となる。なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVDDigitalVersatileDisc、CD-ROMCompactDiscReadOnlyMemoryなどの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。なお、以上の説明に関して更に以下の付記を開示する。付記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に記載の解析方法。"