(57)【要約】【課題】設計フローと設計フローとを対応付けを行う。【解決手段】同一案件について発生するイベントを時系列に並べたプロセスインスタンスに含まれるイベントの種別と設計フローに含まれるノードとをそのまま対応付けるのは難しいが、プロセスインスタンスから抽出された主要フローに含まれるイベントの種別と設計フローから抽出された代表フローに含まれるノードとを対比して対応付け、さらに残りを対応付ければ、対応付けが容易になる。【選択図】図１
2010267229.tif 000002
【特許請求の範囲】
【請求項１】
特定のシステムにおいて発生した複数のイベントが時系列に並べられた複数のプロセスインスタンスのデータを格納するプロセスインスタンスデータ格納部に格納されている前記プロセスインスタンスから、特定のイベントを含む主要フローを抽出する主要フロー抽出ステップと、
複数のノードを含む、前記特定のシステムについての設計フローのデータを格納している設計フローデータ格納部に格納されている前記設計フローのデータから、特定のノードを含む代表フローを抽出する代表フロー抽出ステップと、
前記主要フローと前記代表フローとを対比可能な態様で出力し、前記主要フローに含まれる前記特定のイベントと前記代表フローに含まれる前記特定のノードとの対応付けの入力を促し、入力された対応付けのデータを対応付けデータ格納部に格納するステップと、
前記複数のイベントのうち前記特定のイベント以外の第２のイベントと、前記複数のノードのうち前記特定のノード以外の第２のノードとを対比可能な態様で出力し、前記第２のイベントと前記第２のノードとの対応付けの入力を促し、入力された対応付けの第２のデータを前記対応付けデータ格納部に格納する第２対応付けステップと、
を含み、コンピュータに実行されるフロー対応付け処理方法。
【請求項２】
前記主要フロー抽出ステップが、
前記複数のプロセスインスタンスのうち最も多く実施されたプロセスインスタンス、又は全プロセスインスタンスを重ね合わせた上で最も多く実施されたイベント間遷移を含むプロセスインスタンス種別のうち最も実行回数の多いプロセスインスタンス種別を前記主要フローとして特定するステップ
を含む請求項１記載のフロー対応付け処理方法。
【請求項３】
前記代表フロー抽出ステップが、
前記設計フローにおける各ノード間遷移の始点から終点までを結ぶ線の角度を算出し、当該角度から所定のルールに従って代表角度を算出するステップと、
前記設計フローから分岐先が異なるルートを特定し、前記代表角度についての条件を含む所定の条件に基づき、前記ルートの中から代表フローを特定するステップと、
を含む請求項１又は２記載のフロー対応付け処理方法。
【請求項４】
前記代表フロー抽出ステップが、
前記設計フローに含まれるノード毎に、当該ノードの名称に含まれる単語で、単語毎に点数が登録された単語点数データ格納部を検索し、各前記ノードの点数を特定するステップと、
前記設計フローから分岐先が異なるルートを特定し、各前記ルートについて当該ルート上のノードの点数を累積し、前記ルートの中から点数が最大となるルートを代表フローとして特定するステップと、
を含む請求項１又は２記載のフロー対応付け処理方法。
【請求項５】
前記第２対応付けステップが、
前記プロセスインスタンスデータ格納部に格納されている各前記プロセスインスタンスについて、当該プロセスインスタンス内における各イベントの出現位置を当該プロセスインスタンス内のイベントの出現回数に基づき決定し、各イベントに対応付けて出現位置を第１データ格納部に格納するステップと、
前記第１データ格納部から、イベント種別毎に前記イベントのデータを抽出し、当該イベント種別に属する各前記イベントの出現位置が、予め定められた複数の位置区間のいずれに属するか判断すると共に、前記イベント種別毎に当該イベント種別の最頻出現位置区間を特定し、予め定められた複数のグループのうち前記最頻出現位置区間が属する最頻出現グループと前記イベント種別とを対応付けて前記第１データ格納部に格納するステップと、
前記設計フローデータ格納部に格納されている前記設計フローに含まれる前記複数のノードとノード間遷移とから、始点及び終点を除く各前記ノードについて、前記始点からの最短距離と前記終点からの最短距離とを算出し、第２データ格納部に格納するステップと、
前記第２データ格納部に格納されている前記終点からの最短距離と前記始点からの最短距離との差を各前記ノードについて算出し、予め定められた閾値に従って、各前記ノードについて、前記複数のグループと同数の区分けがなされている複数の出現位置区間のうち当該ノードの出現位置区間を特定し、前記第２データ格納部に格納するステップと、
前記複数のイベントの種別のうち前記主要フローに含まれるイベント種別以外のイベント種別について、前記第１データ格納部に格納されている、前記イベントの種別と当該イベントの種別の前記最頻出現グループとを関連付けて表示し、前記代表フローに含まれるノード以外のノードについて、前記第２データ格納部に格納されている、前記ノードと当該ノードの出現位置区間とを関連付けて表示するステップと、
を含む請求項１乃至４のいずれか１つ記載のフロー対応付け処理方法。
【請求項６】
請求項１乃至５のいずれか１つ記載のフロー対応付け処理方法をコンピュータに実行させるためのプログラム。
【請求項７】
特定のシステムにおいて発生した複数のイベントが時系列に並べられた複数のプロセスインスタンスのデータを格納するプロセスインスタンスデータ格納部に格納されている前記プロセスインスタンスから、特定のイベントを含む主要フローを抽出する主要フロー抽出手段と、
複数のノードを含む、前記特定のシステムについての設計フローのデータを格納している設計フローデータ格納部に格納されている前記設計フローのデータから、特定のノードを含む代表フローを抽出する代表フロー抽出手段と、
前記主要フローと前記代表フローとを対比可能な態様で出力し、前記主要フローに含まれる前記特定のイベントと前記代表フローに含まれる前記特定のノードとの対応付けの入力を促し、入力された対応付けのデータを対応付けデータ格納部に格納し、前記複数のイベントのうち前記特定のイベント以外の第２のイベントと、前記複数のノードのうち前記特定のノード以外の第２のノードとを対比可能な態様で出力し、前記第２のイベントと前記第２のノードとの対応付けの入力を促し、入力された対応付けの第２のデータを前記対応付けデータ格納部に格納する対応付け手段と、
を有するフロー比較処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、複数のフローに含まれる要素の対応付けを行うための技術に関する。
【背景技術】
【０００２】
フロー図による業務プロセス可視化の大きな目的のひとつは、可視化によって現状の業務プロセスの問題点を把握し、業務改善に繋げることである。
【０００３】
この業務プロセス可視化のために、業務システムのデータベースに蓄積された処理レコードから、関連を有する一連の業務イベントを抽出して業務プロセスとしてまとめて、フロー図として可視化する技術が存在している。
【０００４】
また、２つの状態遷移図間の違いを状態遷移情報の論理的な差分で計算する技術、ダイアグラムの中の特定の構成要素の間を結ぶ複数の経路の中から主要な経路を判定する技術などが存在しているが、実際にシステムを用いて行われている実態業務のフローと設計フローとの対応付けを行うのには十分な機能を有していない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２７０７２号公報
【特許文献２】特開平１０−１１１８８８号公報
【特許文献３】特開平６−１２４１９８号公報
【特許文献４】特開平５−１２７８８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上で述べたように現状の業務プロセスの問題点を把握するためには、現状の業務プロセスのフロー図単体ではなく、その業務プロセスが本来どうあるべきかを示したフロー図と比較した方が有効な分析が可能となる。
【０００７】
しかしながら、本来あるべきフロー（すなわち設計フロー）とは、システム設計時又は見直し時などに設計者や分析者が作成するものであるのに対し、現状の業務プロセスのフローとは出自が異なるために、同じ業務システムを対象としているにもかかわらず、多くの場合表現が異なるフロー図となる。ここでフローの表現が異なるとは、（ａ）フロー図を構成するノードの名称が異なる場合や、（ｂ）ノードの粒度が異なり、数が合わない又は構造が異なっている場合や、（ｃ）始点及び終点の数が異なっている場合である。
【０００８】
また、設計フローについては、設計時の考慮漏れ、設計時の仕様書記載漏れ、仕様追加又は変更の際の仕様書反映漏れという問題から実態に合わないような設計フローとなっている場合もある。同様に、業務実績フロー（実態フローとも呼ぶ）についても、動作環境による時刻不整合やログ記録の不備などによって不正確な業務実績フローが生成されている可能性がある。
【０００９】
これらの問題により、ノード名でのマッチングやトポロジでのマッチングは困難になり、本来の目的である両図の比較による業務プロセスの問題点抽出も難しくなる。
【００１０】
従って、本技術の目的は、異なるフロー図に含まれる要素間の対応付けを可能にするための新規な技術を提供することである。
【課題を解決するための手段】
【００１１】
本フロー対応付け処理方法は、特定のシステムにおいて発生した複数のイベントが時系列に並べられた複数のプロセスインスタンスのデータを格納するプロセスインスタンスデータ格納部に格納されているプロセスインスタンスから、特定のイベントを含む主要フローを抽出する主要フロー抽出ステップと、複数のノードを含む、特定のシステムについての設計フローのデータを格納している設計フローデータ格納部に格納されている設計フローのデータから、特定のノードを含む代表フローを抽出する代表フロー抽出ステップと、主要フローと代表フローとを対比可能な態様で出力し、主要フローに含まれる特定のイベントと代表フローに含まれる特定のノードとの対応付けの入力を促し、入力された対応付けのデータを対応付けデータ格納部に格納するステップと、複数のイベントのうち特定のイベント以外の第２のイベントと、複数のノードのうち特定のノード以外の第２のノードとを対比可能な態様で出力し、第２のイベントと前記第２のノードとの対応付けの入力を促し、入力された対応付けの第２のデータを対応付けデータ格納部に格納する第２対応付けステップとを含む。
【発明の効果】
【００１２】
異なるフロー図に含まれる要素間の対応付けが可能となる。
【図面の簡単な説明】
【００１３】
【図１】図１は、本技術の実施の形態におけるフロー比較処理装置の機能ブロック図である。
【図２】図２は、本実施の形態におけるメインの処理フローを示す図である。
【図３】図３は、データベースＡ及びＢに格納されているテーブルａ、ｂ及びｃの一例を示す図である。
【図４】図４は、イベントインスタンスのデータを示す図である。
【図５】図５は、実態フローについての第１の最多実行フロー抽出処理の処理フローを示す図である。
【図６】図６は、プロセスインスタンスの実行回数のカウント例を示す図である。
【図７】図７は、実態フローにおける最多実行フローの第１の例を示すための図である。
【図８】図８は、実態フローについての第２の最多実行フロー抽出処理の処理フローを示す図である。
【図９】図９は、実態フローにおける最多実行フローの第２の例を示すための図である。
【図１０】図１０は、第２の例についてのプロセスインスタンス種別毎の実行回数の一例を示す図である。
【図１１】図１１は、設計フローについての第１の代表フロー抽出処理の処理フローを示す図である。
【図１２】図１２は、設計フロー図の一例を示す図である。
【図１３】図１３は、ノード間接続線の角度を説明するための図である。
【図１４Ａ】図１４Ａは、代表角度算出処理の処理フローを示す図である。
【図１４Ｂ】図１４Ｂは、ノード間接続線毎の角度について説明するための図である。
【図１５】図１５は、ノード間接続線の角度の補正について説明するための図である。
【図１６】図１６は、角度レンジ及び各角度レンジについてのポイント値の一例を示す図である。
【図１７】図１７は、第１ルート抽出処理の処理フローを示す図である。
【図１８】図１８は、第２ルート抽出処理の処理フローを示す図である。
【図１９Ａ】図１９Ａは、第３ルート抽出処理の処理フローを示す図である。
【図１９Ｂ】図１９Ｂは、特定された代表フローの一例を示す図である。
【図２０】図２０は、設計フローについての第２の代表フロー抽出処理の処理フローを示す図である。
【図２１】図２１は、単語データ格納部に格納されるポイントテーブルの一例を示す図である。
【図２２】図２２は、ノード毎の点数計算結果の一例を示す図である。
【図２３】図２３は、設計フロー上にノードの点数を示した上で、選択される代表フローを太線で示した図である。
【図２４】図２４は、最多実行フローと代表フローとの対応付け処理の処理フローを示す図である。
【図２５】図２５は、最多実行フローと代表フローとの対比表示の一例を示す図である。
【図２６】図２６は、対応付けデータ格納部に格納されるデータの一例を示す図である。
【図２７】図２７は、イベントＩＤとイベントとの対応関係を示す図である。
【図２８】図２８は、ノードＩＤとノードとの対応関係を示す図である。
【図２９】図２９は、最多実行フローと代表フローとの対応付け結果の表示例を示す図である。
【図３０】図３０は、従来技術の問題を説明するための図である。
【図３１】図３１は、本実施の形態における効果を説明するための図である。
【図３２】図３２は、残余イベント及びノードの対応付け処理の処理フローを示す図である。
【図３３】図３３は、実態フローについてのグループ分けの一例を示す図である。
【図３４】図３４は、設計フローについてのグループ分けの一例を示す図である。
【図３５】図３５は、残余イベント及びノードの対応付けのための表示例を示す図である。
【図３６】図３６は、対応付けデータ格納部に格納されるデータの一例を示す図である。
【図３７】図３７は、実態フローと設計フローとの対応付けの一例を示す図である。
【図３８】図３８は、イベント出現区間特定処理の処理フローを示す図である。
【図３９】図３９は、プロセスインスタンス群の一例を示す図である。
【図４０】図４０は、イベントの出現位置の算出を説明するための図である。
【図４１】図４１は、出現位置管理テーブルの一例を示す図である。
【図４２】図４２は、イベント出現区間特定処理の処理フローを示す図である。
【図４３】図４３は、出現位置管理テーブルから特定のイベント種のレコードを抽出した例を示す図である。
【図４４】図４４は、各区間についての出現頻度を登録するテーブルの一例を示す図である。
【図４５】図４５は、各イベント種についての最頻出現区間のデータを登録するテーブルの一例を示す図である。
【図４６】図４６は、ノード出現区間特定処理の処理フローを示す図である。
【図４７】図４７は、最短距離の算出を説明するための模式図である。
【図４８】図４８は、ノード間遷移行列の一例を示す図である。
【図４９】図４９は、始点からの距離及び終点からの距離のためのテーブル例を示す図である。
【図５０】図５０は、ノード出現区間特定処理の処理フローを示す図である。
【図５１】図５１は、ノードのグループ分けの一例を示す図である。
【図５２】図５２は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１４】
図１に、本技術の実施の形態に係るフロー比較処理装置１００のシステム概要図を示す。本実施の形態に係るフロー比較処理装置１００は、例えばデータベースＡ及びＢといった業務システムにおけるデータベース（又はそのレプリカ）からプロセスインスタンスを生成するプロセスインスタンス生成部１０１と、プロセスインスタンス生成部１０１により生成されたプロセスインスタンスのデータを格納するプロセスインスタンスデータ格納部１０２と、プロセスインスタンスデータ格納部１０２に格納されているデータを用いて最多実行フローを抽出する処理を実施する最多実行フロー抽出部１０３と、最多実行フロー抽出部１０３の処理結果を格納する最多実行フローデータ格納部１０４と、プロセスインスタンスデータ格納部１０２に格納されているデータを用いて各イベント種別（イベント種又はイベントクラスとも呼ぶ）について実態フローの中でどのあたりに出現するのかを特定する処理を実施するイベント所属区間決定処理部１０５と、イベント所属区間決定処理部１０５の処理結果を格納するイベント所属区間データ格納部１０７と、例えばネットワークを介して又は指定された記憶装置等から設計フロー図のデータを取得するフロー図データ取得部１０８と、フロー図データ取得部１０８が取得したフロー図データを格納するフロー図データ格納部１０９と、フロー図データ格納部１０９に格納されているデータを用いて代表フローを抽出する処理を実施する代表フロー抽出部１１０と、代表フロー抽出部１１０の処理結果を格納する代表フローデータ格納部１１１と、フロー図データ格納部１０９に格納されているデータを用いてフロー図の各ノードが当該フロー図中どのあたりに出現するのかを特定する処理を実施するノード所属区間決定処理部１１２と、ノード所属区間決定処理部１１２の処理結果を格納するノード所属区間データ格納部１１３と、プロセスインスタンスデータ格納部１０２とフロー図データ格納部１０９と最多実行フローデータ格納部１０４とイベント所属区間データ格納部１０７と代表フローデータ格納部１１１とノード所属区間データ格納部１１３とに格納されているデータを用いて以下で述べる対応付け処理を実施する対応付け処理部１１６と、対応付け処理部１１６の処理結果を格納する対応付けデータ格納部１１５と、入力部１１４と、表示装置１１７とを有する。
【００１５】
なお、入力部１１４は、フロー図データ取得部１０８と、代表フロー抽出部１１０と、ノード所属区間決定処理部１１２と、対応付け処理部１１６と連携する。また、表示装置１１７は、ノード所属区間決定処理部１１２と対応付け処理部１１６との指示に基づきデータを表示する。入力部１１４及び表示装置１１７は、他の処理部と連携する場合もある。
【００１６】
また、以下で述べるような処理によっては、代表フロー抽出部１１０は、単語データ格納部１０６に格納されているデータを用いて処理を行う場合もある。
【００１７】
次に、図２乃至図５１を用いて図１に示したフロー比較処理装置１００の処理内容を説明する。まず、プロセスインスタンス生成部１０１は、データベースＡ及びＢなどのデータベース群に蓄積されているデータからプロセスインスタンス群を生成し、プロセスインスタンスデータ格納部１０２に格納する（図２：ステップＳ１）。この処理は、特開２００８−２７０７２号公報などにも開示されている周知の処理である。
【００１８】
例えば、図３に模式的に示すが、データベースＡにはテーブルａ及びｂが格納されており、プロセスインスタンス生成部１０１は、テーブルａからそれぞれ識別子と処理種別と処理時刻とを含む業務レコードを抽出し、同様にテーブルｂからそれぞれ識別子と処理種別と処理時刻とを含む業務レコードを抽出する。また、データベースＢにはテーブルｃが格納されており、テーブルｃからそれぞれ識別子と処理種別と処理時刻とを含む業務レコードを抽出する。なお、テーブルａ乃至ｃの１レコードに、識別子と処理種別と処理時刻とのうちいずれかの列が含まれない場合には、プロセスインスタンス生成部１０１が、例えば処理種別をテーブル名から取得するなどして、図３の右側に示すように、識別子と処理種別と処理時刻とを含む業務レコードを構成して、例えばプロセスインスタンスデータ格納部１０２に格納する。
【００１９】
そして、プロセスインスタンス生成部１０１は、プロセスインスタンスデータ格納部１０２に格納されている業務レコードを、識別子及び処理時刻でソートし、ソート結果をプロセスインスタンスデータ格納部１０２に格納する。識別子が同じということは、同じ案件についての一連の業務であることを意味しており、識別子で業務レコードをグループ化し、処理時刻で業務レコードをソートすることによって業務の実施の順番を特定する。図３の例では、星印の付いた、識別子がＩＤ００１の業務レコードでグループ化し、処理時刻を早い順に並べると、図４に示すようなデータが生成され、プロセスインスタンスデータ格納部１０２に格納される。なお、識別子ＩＤ００１以外の業務レコードについても同様にグループ化されソートされて、プロセスインスタンスデータ格納部１０２に格納される。図４に格納された各レコードがイベント（イベントインスタンスとも呼ぶ）であり、時系列に並べられたこれらのレコード群をプロセスインスタンスと呼ぶ。
【００２０】
その後、最多実行フロー抽出部１０３は、プロセスインスタンスデータ格納部１０２に格納されているデータを用いて、実態フローについての最多実行フロー抽出処理を実施する（ステップＳ３）。この最多実行ルート抽出処理については、例として２つのやり方を以下で述べる。但し、これらに限定されるものではない。また、ステップＳ１及びＳ３は、ステップＳ４及びＳ５と互いに無関係なので、順番を入れ替えたり、並列実行したりしてもよい。
【００２１】
まず第１の最多実行フロー抽出処理について、図５乃至図７を用いて説明する。まず、最多実行フロー抽出部１０３は、プロセスインスタンスデータ格納部１０２に格納されているプロセスインスタンスを分類する（図５：ステップＳ２１）。そして、プロセスインスタンスの実行回数を、プロセスインスタンスの種類（すなわち分類の結果。プロセスクラスとも呼ぶ。）毎にカウントし、例えばメインメモリなどの記憶装置に格納する（ステップＳ２３）。最後に、最多実行回数のプロセスインスタンスの種類を、最多実行フローとして特定し、当該最多実行フローのデータを最多実行フローデータ格納部１０４に格納する（ステップＳ２５）。そして元の処理に戻る。
【００２２】
図６に、プロセスインスタンスの種類毎のカウント値の一例を示す。図６の例では、「登録」「通知」「審議依頼」「了解」「回送」「承認依頼」「承認」「採番」という順番のフロー種別についてのカウント値（すなわち実行回数）が最も多いことが分かる。例えば、このようなイベント列のデータが最多実行フローデータ格納部１０４に格納される。プロセスインスタンス全体で表される実態フローは、図６に示したようなプロセスインスタンスを重ね合わせることにより図７に示すようなフローで表される。図７においては、各イベント間遷移には当該イベント間遷移の実行回数が示されており、太線で示されたフローが最多実行フローである。このようにプロセスインスタンスの種別をベースに実行回数で最多実行フローを特定する。
【００２３】
また、第２の最多実行フロー抽出処理について、図８乃至図１０を用いて説明する。最多実行フロー抽出部１０３は、プロセスインスタンスデータ格納部１０２に格納されている各プロセスインスタンスの各イベント間遷移について、実行回数をカウントして例えばメインメモリなどの記憶装置に格納する（図８：ステップＳ３１）。そして、プロセスインスタンスを全て重ね合わせて（ステップＳ３３）、重ね合わせ後のフロー（このフローのデータは例えばプロセスインスタンスデータ格納部１０２に格納される）において、最多実行イベント間遷移を含むプロセスインスタンス種別のうち、実行回数が最多であるものを最多実行フローとして特定し、最多実行フローデータ格納部１０４に格納する（ステップＳ３５）。最多実行イベント間遷移が複数種存在する場合、それらを最も多く含むプロセスインスタンス種別のうちから最多実行フローを特定する。そして元の処理に戻る。
【００２４】
例えば、図９に示すように、プロセスインスタンスの重ね合わせ結果が得られ、各イベント間遷移の実行回数がカウントされたとする。このような場合には、２８０回実行されている４種の遷移が最多実行イベント間遷移となり、これらを最も多く含んだ「業務１」「業務２」「業務３：部門Ａ」及び「業務４」を含むフローと、「業務１」「業務２」「業務３：部門Ｂ」及び「業務４」を含むフローと、及び「業務１」「業務２」「業務３：部門Ｃ」及び「業務４」を含むフローとの３種のフローが最多実行フローの候補となる。この３種のうち、実行回数が最多なのは、図１０の通り「業務１」「業務２」「業務３：部門Ｂ」及び「業務４」を含むフローなので、これが最多実行フローとなる。例えば、このようなイベント列のデータが最多実行フローデータ格納部１０４に格納される。このように図８の処理フローで選択される最多実行フローは、図９において太線で示されている。一方、図５の処理フローで図９のフローを評価すると、図１０に示すような結果が得られる。図１０に示すように、「業務ｘ」「業務ｙ」「業務ｚ」という順番で実行されるフローが最多実行フローとして選択される。このように、イベント間遷移の実行回数をベースに最多実行フローを選択する場合と、フロー全体の実行回数をベースに最多実行フローを選択する場合では、結果が異なる場合がある。図９の例のように、「業務２」から「業務３：部門Ａ」「業務３：部門Ｂ」又は「業務３：部門Ｃ」に分岐するようにバリエーションが多い場合には、特に影響が大きくなる。
【００２５】
図２の処理の説明に戻って、例えば入力部１１４の指示に応じて、フロー図データ取得部１０８は、外部のリソースからフローの構造を表すデータ（例えばフロー図のイメージデータ又はＸＰＤＬ（XML Process Definition Language。ワークフロー製品間（モデリングエンジンやワークフローエンジン）でビジネスプロセス定義を交換するために定義された標準形式。）などによって記述されたコンピュータ読み取り可能なフロー構造の定義データなど）を取得し、フロー図データ格納部１０９に格納する（ステップＳ４）。
【００２６】
そして、代表フロー抽出部１１０は、フロー図データ格納部１０９に格納されている設計フローのフロー図のデータを用いて、設計フローについての代表フロー抽出処理を実施する（ステップＳ５）。代表フロー抽出処理については、以下に２つのやり方を述べるが、これらに限定されるものではない。
【００２７】
まず第１の代表フロー抽出処理について図１１乃至図１９Ｂを用いて説明する。まず、代表フロー抽出部１１０は、フロー図データ格納部１０９に格納されている設計フローのデータを用いて代表角度算出処理を実施する（ステップＳ４１）。この処理については、図１２乃至図１６を用いて説明する。
【００２８】
ここでは図１２に示すような設計フローが得られたものとする。この設計フローでは、始点が最上部に設けられ、菱形のブロックで示される分岐が２つ含まれ、そのため２つの終点が存在している。また、四角のブロックで示された業務を実施する部門又はシステム（ここでは稟議申請部門、関係部門、稟議管理システム）毎に、列（以下、スイムレーンと呼ぶ）が設けられている。ここではスイムレーン方向は、時間経過方向（上から下）と並行な方向である。本実施の形態では、始点及び終点並びに業務についてのノード間の接続、業務名（ノード名とも呼ぶ）、分岐における要否又は可否などの判断結果などを自動的に読み込むことができるものとする。但し、必要があれば、例えばフロー図データ取得部１０８がユーザからの支援によりこれらの情報を取得して、フロー図データ格納部１０９に格納する。
【００２９】
本実施の形態では、図１２において太線で強調しているように、ノード間の接続線に着目する。具体的には、図１３に示すように、ノード間の接続線Ｌの始点と終点を結ぶ直線Ｐと、設計フローにおける時間経過方向を示す直線Ｙとの間の角度θを算出して、これに対して以下で述べるような加工を行って代表角度を算出する。
【００３０】
まず、代表フロー抽出部１１０は、設計フローの各ノード間接続線の始点−終点間を結ぶ直線の角度を算出し、例えばメインメモリなどの記憶装置に格納する（図１４Ａ：ステップＳ６１）。図１３に示したように、各ノード間接続線の角度θを図１４Ｂに示すように格納しておく。
【００３１】
このような角度θをそのまま用いるには問題がある。具体的には、設計フローは主に人間が作成するものであり、ノード間遷移の矢印を描画する際には、以下のような傾向があるものと考えられる。（Ａ）重要な遷移、すなわち代表フローを構成する可能性が高い遷移ほど直線性が高い。（Ｂ）重要度の低い遷移は、記述優先度が低いため、重要度の高い構成要素を回避するなどして相対的に折れや曲りが多い線となる。（Ｃ）各遷移の太さに差がある場合、重要度の高い遷移ほど太くなる。（Ｄ）各ノードについての業務の実施者又は実施部門などを表すスイムレーンが表記される場合、遷移方向はスイムレーンに影響を受ける。
【００３２】
従って、代表フロー抽出部１１０は、上で述べた傾向に対処するため、ステップＳ６１で算出された各ノード間接続線の角度θを補正し、例えばメインメモリなどの記憶装置に格納する（ステップＳ６３）。このステップでは、スイムレーンの方向に近づくように角度αを加算する。αについては、スイムレーンの幅などに応じてユーザが入力部１１４により指定された値（図１２の例では＋３０°）を用いる。ステップＳ６３の処理を図１５に模式的に示す。図１５で分かるように、ノード間の接続線Ｌの始点と終点を結ぶ直線Ｐと直線Ｙとの間の角度θに対して、スイムレーン方向（ここでは直線Ｙと同じ）に基づき決定される角度αを加算して、補正後角度θmodifiedを算出する。但し、元の角度θがスイムレーンと水平・垂直な場合、補正なしとする。また、補正後の角度についてはスイムレーン方向が上限となるようにする。
【００３３】
さらに、代表フロー抽出部１１０は、各ノード間接続線について重み付け条件に合致するか否かを判断し、この判断結果に基づきポイント値を決定し、例えばメインメモリなどの記憶装置に格納する（ステップＳ６５）。重み付け条件とは、ノード間接続線の折れ回数が閾値（例えば３）以上の場合、そのノード間接続線のポイント値は１より小さい正の値として設定する。すなわち１本分の遷移に値しないものとする。図１２の例では、いずれも折れ回数は「２」であり、この条件では減点されない。また、ノード間接続線の太さの平均が閾値以上太い又は細い場合、太ければ重要と判断して所定値（例えば０．３など）だけ加点し、細ければ重要ではないと判断して所定値（例えば０．３など）だけ減点する。図１２の例では、ノード間接続線を強調しているので太線になっているが、そうでなくとも全て同じ太さであれば、この条件では調整されない。
【００３４】
そして、代表フロー抽出部１１０は、予め定められている角度レンジ毎に、該当するノード間接続線のポイント値を累計して、例えばメインメモリなどの記憶装置に格納する（ステップＳ６７）。このステップＳ６７の処理を図１６を用いて説明する。図１６の例では、３６０°を３０°毎の角度レンジに分けている。各角度レンジの中心角を、０°、３０°、６０°、９０°、１２０°、１５０°、１８０°、２１０°、２４０°、２７０°、３００°、３３０°、３６０°に設定している。図１２の例では、このような角度レンジの各々についてポイント値を累積すると、中心角１８０°のレンジが６ポイント、中心角１５０°のレンジが５ポイント、中心角２１０°のレンジが３ポイント、中心角３０°のレンジが１ポイントとなる。
【００３５】
最後に、代表フロー抽出部１１０は、ポイント値の累計値から支配方向を特定し、支配方向から代表角度を算出し、例えば代表フローデータ格納部１１１に格納する（ステップＳ６９）。本実施の形態では、１以上のポイント値が確認された角度レンジのうち上位半数の角度レンジを支配方向として特定し、その中心角をポイント値で重み付けして代表角度を算出する。具体的には、図１６から分かるように、中心角１８０°のレンジと中心角１５０°のレンジとが支配方向として特定され、（１８０＊６＋１５０°＊５）／（６＋５）≒１６６°と代表角度が算出される。そして元の処理に戻る。
【００３６】
このようにすれば、設計フローの作図上の特性を踏まえた上で、フロー全体としてのノード間遷移の代表的角度を算出できるようになる。
【００３７】
図１１の説明に戻って、代表フロー抽出部１１０は、設計フローからルートを特定し、例えばメインメモリなどの記憶装置に格納する（ステップＳ４３）。ルートについては、分岐があれば、分岐先毎にルートが特定される。もし、分岐した結果元の分岐点に戻ってしまう場合には同じ分岐先は選択しないようにする。図１２の例では、「始点」「稟議依頼」「審議開始」「審議」と辿った後に分岐が存在する。最初は「可」の分岐先を選んで、「審議完了」「決裁依頼」「決裁」「決裁完了」「終点」となる。すなわち、「始点」「稟議依頼」「審議開始」「審議」「審議完了」「決裁依頼」「決裁」「決裁完了」「終点」というノードを経由する第１のルートが特定される。また、「審議」の後で「否」を選択すると、「再依頼判断」を経由して再度分岐に到達する。この２番目の分岐において「不要」を選択すると、「稟議取下」「終点」となる。すなわち、「始点」「稟議依頼」「審議開始」「審議」「再依頼判断」「審議取下」「終点」というノードを経由する第２のルートが特定される。さらに、２番目の分岐において「要」を選択すると、「再依頼」「審議開始」「審議」と経由して、１番目の分岐に到達する。上で述べたように、同じ分岐先は選択しないので「可」を選択することになり、「審議完了」「決裁依頼」「決裁」「決裁完了」「終点」となる。すなわち、「始点」「稟議依頼」「審議開始」「審議」「再依頼判断」「再依頼」「審議開始」「審議」「審議完了」「決裁依頼」「決裁」「決裁完了」「終点」というノードを経由する第３のルートが特定される。
【００３８】
そして、代表フロー抽出部１１０は、始点及び終点に基づき、特定されたルートを分類する（ステップＳ４５）。具体的に類型化すると、（Ａ）始点も終点も同じ、（Ｂ）始点が同じで終点が異なる、（Ｃ）始点が異なり終点が同じ、（Ｄ）始点も終点も異なる、といったような類型が得られる。本実施の形態では、（Ａ）から最初に処理するので、（Ａ）に該当するルートを、始点及び終点の組み合わせで分類する。なお、始点及び終点が複数存在する場合には、ルートの集合が複数になる場合もある。
【００３９】
図１２の例では、第１のルートと第３のルートは始点も終点も同じなので、ステップＳ４５では類型（Ａ）として特定される。なお、第２ルートはＡグループに属するルートとは、始点が同じで終点が異なるので後の処理に回される。
【００４０】
ステップＳ４５の結果に基づき、代表フロー抽出部１１０は、始点も終点も同一のルートが存在するか判断する（ステップＳ４７）。始点も終点も同一のルートが存在しなければ、ステップＳ５１に移行する。一方、始点も終点も同一のルートが存在すれば、代表フロー抽出部１１０は、第１ルート抽出処理を実施する（ステップＳ４９）。第１ルート抽出処理については、図１７を用いて説明する。
【００４１】
まず、代表フロー抽出部１１０は、該当するルートについて各ノード間接続線の角度を特定する（ステップＳ７１）。例えば図１４Ｂに示すようなデータを用いて角度を特定する。そして、代表角度と該当ノード間接続線の角度の差が閾値未満のノード間接続線のみに係るルートを特定する（ステップＳ７３）。図１２の例では、第１のルートの場合、代表角度から大きく外れるような角度θは存在していない。すなわち、第１のルートは、代表角度との差が閾値未満のノード間接続線のみに係るルートである。一方、第３のルートは、「再依頼」から「審議開始」へのノード間接続線の角度は、代表角度１６６°から大きく異なる角度であり、第３のルートは、所定の閾値を超えたノード間接続線を含むルートである。これによって第３のルートは除外される。
【００４２】
そして、代表フロー抽出部１１０は、ステップＳ７３で特定されたルートが複数であるか判断する（ステップＳ７５）。ルートの数が単数又は０である場合には、元の処理に戻る。なお、ルートの数が０である場合には、例えばノード間接続線の角度の平均値が代表角度に最も近いルートを選択するようにしても良い。
【００４３】
一方、特定されたルートが複数である場合には、代表フロー抽出部１１０は、ステップＳ７３で特定されたルートのうち、共通部分から相違部分へ移行する分岐点から終点までのノード数が最も少ないルートを選択する（ステップＳ７７）。例えば、図１２の例で第１のルートと第３のルートと共にステップＳ７３で特定されたと仮定すると、共通部分から相違部分へ移行する分岐点である「審議」より後ろのノード数は、第１のルートであれば「４」であり、第３のルートであれば「８」である。このように、仮に第１及び第３のルートがステップＳ７３で特定されたとしても、第３のルートはステップＳ７７では特定されない。そして処理は元に戻る。
【００４４】
図１１の処理の説明に戻って、代表フロー抽出部１１０は、始点及び終点に基づき、ステップＳ４９で除外されたルートを除き、再度ルートを分類する（ステップＳ５１）。図１２の場合、第１のルートと第２のルートとを分類することになるが、この場合、第１のルートと第２のルートは、始点が同じで終点が異なるという類型Ｂとなる。
【００４５】
そして、代表フロー抽出部１１０は、始点が同じで終点が異なるルートが除外されずに残っているか判断する（ステップＳ５３）。図１２の例では、第１のルートと第２のルートが該当する。始点が同じで終点が異なるルートが存在しない場合にはステップＳ５７に移行する。一方、始点が同じで終点が異なるルートが存在する場合には、代表フロー抽出部１１０は、第２ルート抽出処理を実施する（ステップＳ５５）。第２ルート抽出処理については図１８を用いて説明する。
【００４６】
最初に、代表フロー抽出部１１０は、該当するルートについて始点から終点を結ぶ直線の角度を算出する（ステップＳ８１）。そして、代表角度と、該当するルートの角度との差が閾値未満のルートを特定する（ステップＳ８３）。図１２の例では、第１のルートも第２のルートもあまり角度は変わらず、代表角度との差は閾値未満と判断される。
【００４７】
ここで代表フロー抽出部１１０は、差が閾値未満のルートが複数であるか判断し（ステップＳ８５）、ルート数が０又は１の場合には元の処理に戻る。なお、ルート数が０である場合には、例えば始点から終点を結ぶ直線の角度が代表角度に最も近いルートを選択するようにしても良い。
【００４８】
一方、差が閾値未満のルートが複数存在する場合には、代表フロー抽出部１１０は、共通部分から相違部分に移行する分岐点でルートを分割し、始点から分岐点までのノード数と、分岐点から終点までのノード数とを、該当するルート毎にカウントする（ステップＳ８７）。図１２の例では、「審議」の後の分岐点でルートを分割する。第１のルートの場合、前半のノード数は「３」であり、後半のノード数は「４」である。一方、第２のルートの場合、前半のノード数は「３」であり、後半のノード数は「２」である。
【００４９】
ステップＳ８７の結果に基づき、代表フロー抽出部１１０は、分岐点から終点までのノード数の割合が所定閾値未満のルートを除外する（ステップＳ８９）。分岐点がルートの終盤に位置している場合、処理の中断ルートであるとみなし、候補から除外する。図１２の例では、第１のルートの場合、４／７＝０．５７であり、第２のルートの場合、２／５＝０．４である。ここで０．５を閾値とすると、第２のルートは本ステップで除外される。
【００５０】
その後、代表フロー抽出部１１０は、ステップＳ８９の後に１つのルートだけが候補として残ったか判断し（ステップＳ９１）、１つのルートだけが候補であれば元の処理に戻る。一方、複数のルートが候補として残っている場合には、その複数の候補のルートのうちステップＳ８１で特定され、角度が最も代表角度に近いルートを特定する（ステップＳ９３）。そして元の処理に戻る。
【００５１】
このような処理を実施することによって候補となるルートが絞り込まれる。
【００５２】
図１１の処理の説明に戻って、代表フロー抽出部１１０は、これまでの処理で候補となるルートが１つであるか判断する（ステップＳ５６）。ルートが１つであれば、そのルートが代表フローであるので、当該代表フローのデータを代表フローデータ格納部１１１に格納して、元の処理に戻る。すなわち、該当するノード列のデータが格納される。一方、候補となるルートが複数であれば、第３ルート抽出処理を実施する（ステップＳ５７）。なお、第３ルート抽出処理が完了すれば、元の処理に戻る。
【００５３】
第３ルート抽出処理については、図１９Ａを用いて説明する。ここまでで、ひとつの始点にはひとつの終点のみが対応するようになっている。始点が異なるルート間の比較については、内容面での比較は困難なので、以下の基準で最も代表フローの可能性が高いものを決定する。
【００５４】
まず、代表フロー抽出部１１０は、全てのルートのノード数を計数し、その平均値を算出して、例えばメインメモリなどの記憶装置に格納する（ステップＳ１０１）。そして、該当するルートのうち、ノード数と平均値との差が所定値以上であるルートがあれば、そのルートを候補から除外する（ステップＳ１０３）。ここで１つのルートのみが特定されたか判断し（ステップＳ１０３）、１つのルートのみが特定された場合には、そのルートが代表フローであるので、当該代表フローのデータ（すなわち該当するノード列のデータ）を代表フローデータ格納部１１１に格納して、元の処理に戻る。一方、複数のルートが特定されたか又は１つも候補のルートが無くなった場合には、始点から終点までの接続線の角度が代表角度に最も近いルートを、代表フローとして特定し、代表フローデータ格納部１１１に格納する（ステップＳ１０７）。そして元の処理に戻る。
【００５５】
以上のような処理を実施することによって、代表フローの可能性の高いルートを特定することができるようになる。第１の代表フロー抽出処理の処理結果として図１２の例では、図１９Ｂに太線で表すように第１のルートが代表フローとして特定される。
【００５６】
次に、まず第２の代表フロー抽出処理について図２０乃至図２３を用いて説明する。まず、代表フロー抽出部１１０は、各ノードの名称に対して、単語データ格納部１０６に格納されているポイントテーブルをベースに点数を付与して、例えばメインメモリなどの記憶装置に格納する（ステップＳ１１１）。単語データ格納部１０６に格納されているポイントテーブルは、例えば図２１に示すようなテーブルである。図２１の例では、単語毎に、点数が予め登録されるようになっている。図２１に示すように、「完了」「承認」「了承」「了解」「決定」「成功」などのポジティブな意味の単語には、正の値を設定する。一方、「取下」「中断」「中止」「否決」「差戻」「再」などのネガティブな意味の単語には、負の値を設定する。その他ニュートラルな単語については「０」点が設定される。
【００５７】
このようなポイントテーブルを採用する場合、各ノードの点数は、図２２に示すようなものになる。図２２の例では、ノードの名称毎に、点数が登録されており、各語の評価の列には、単語毎の点数が記載されている。各語の評価の列は注釈であり、実際には必要ない。このようにノードの名称が複数の単語を含む場合には、最も値が小さい点数を採用する。但し、０点と正の値とが特定された場合には正の値をそのノードの名称の点数として用いる。また、算出された点数を設計フロー上に示すと図２３のようになる。
【００５８】
次に、代表フロー抽出部１１０は、設計フローからルートを特定し、例えばメインメモリなどの記憶装置に格納する（ステップＳ１１３）。この処理は、ステップＳ４３と同じであり、説明については省略する。図１２の例であれば、３つのルートが特定される。
【００５９】
そして、代表フロー抽出部１１０は、各ルートについてノードの点数を集計し、例えばメインメモリなどの記憶装置に格納する（ステップＳ１１５）。第１のルートであれば、所属ノードを辿って「１」「２」「０」「３」「１」「３」「３」が得られるので、合計すると１３点が得られる。第２のルートであれば、所属ノードを辿って「１」「２」「０」「−１」「−１」「３」「１」「３」「３」が得られるので、合計すると１１点が得られる。第３のルートであれば、所属ノードを辿って「１」「２」「０」「−１」「−３」が得られるので、合計すると−１点が得られる。なお、同じノードを複数回通過する場合には、２回目以降は点数を加算しないものとする。
【００６０】
最後に、代表フロー抽出部１１０は、合計点数が最も高いルートを最もポジティブなフローである代表フローとして特定し、代表フローデータ格納部１１１に格納する（ステップＳ１１７）。該当するノード列が、代表フローデータ格納部１１１に格納される。図１２の例では、第１のルートが代表フローとして特定されるので、図２３で太線で示すようなルートが代表フローとして特定される。以上のような処理を実施した後、元の処理に戻る。
【００６１】
このように適切なポイントテーブルを用意すれば、代表フローの可能性の高いルートを代表フローとして特定できる。
【００６２】
図２の処理の説明に戻って、対応付け処理部１１６は、最多実行フローデータ格納部１０４と代表フローデータ格納部１１１に格納されているデータを用いて、最多実行フローと代表フローとの対応付け処理を実施する（ステップＳ７）。なお、以下でも述べるように、イベント所属区間決定処理部１０５による処理結果を格納するイベント所属区間データ格納部１０７に格納されているデータと、ノード所属区間決定処理部１１２による処理結果を格納するノード所属区間データ格納部１１３に格納されているデータとを用いて処理する場合もある。
【００６３】
最多実行フローと代表フローとの対応付け処理については、図２４乃至図３１を用いて説明する。対応付け処理部１１６は、最多実行フローデータ格納部１０４に格納されている最多実行フローと、代表フローデータ格納部１１１に格納されている代表フローとを、表示装置１１７に対して対比可能な態様で表示させる（ステップＳ１２１）。例えば、図２５のような表示を行う。図２５の例では、左側に実態フローの最多実行フローを提示し、右側には設計フローの代表フローを提示して、対比可能となっている。ユーザは、表示装置１１７上に表示されている２つのフローを対比して検討し、自らの知識に基づきイベントとノードの対応関係について検討する。そして、対応付けすべきイベントとノードとを選択して、イベントとノードとを選択状態にして、図２５に示していない例えば確定ボタンをクリックすることにより、対応付けを行う。
【００６４】
入力部１１４は、ユーザから、イベントとノードの対応付け入力を受け付け、対応付け処理部１１６に出力し、対応付け処理部１１６は、対応付けデータを受け取り、対応付けデータ格納部１１５に登録する（ステップＳ１２３）。また、対応付け処理部１１６は、対応付け結果を表示装置１１７に表示する（ステップＳ１２５）。対応付けデータ格納部１１５には、例えば図２６に示すようなデータが格納される。なお、図２６では、図２７に示すような各イベントのイベントＩＤと、図２８に示すような各ノードのノードＩＤとを用い、対応付けをグループとして、グループ毎に所属イベントＩＤ及び所属ノードＩＤが登録されるようになっている。このようなデータを基に対応付け結果を表示すると、図２９に示すようになる。図２９では、点線で対応付けされたイベント及びノードが結び付けられている。なお、「了解」イベント及び「回送」イベントが「審議完了」ノードに対応付けられているように、多対１の対応付け、１対多の対応付けも可能である。処理は、元の処理に戻る。
【００６５】
このようにすれば、ユーザも対応付けすべきノード及びイベントの数が全体よりも少ないため容易に対応付けを判断することができる。すなわち、図３０に示すように、左側の実態フローに含まれるイベントと右側の設計フローに含まれるノードとを対応付ける場合には、１つのイベントからノードの数だけ対応付けの可能性がある。従って業務に精通していないとなかなか正確な対応付けが難しい。しかし、最多実行フロー及び代表フローが特定されており、実行順番などを考慮すれば、対応付けられるイベント及びノードの可能性は絞り込むことが容易になる。図３１では、太線で最多実行フロー及び代表フローが示されており、ほぼ実行順番に従って対応付けを行えば良い。必ずしも実行順番だけで決定されるものではないが、対応付けの可能性は絞り込まれているので、難易度が非常に低くなっている。図３１のように全体のフローを表示する場合には、プロセスインスタンスデータ格納部１０２とフロー図データ格納部１０９に格納されているデータを用いる。
【００６６】
図２の処理の説明に戻って、対応付け処理部１１６は、プロセスインスタンスデータ格納部１０２と最多実行フローデータ格納部１０４とフロー図データ格納部１０９と代表フローデータ格納部１１１とに格納されているデータを用いて、残余イベント及びノードの対応付け処理を実施する（ステップＳ９）。残余イベント及びノードの対応付け処理については、図３２を用いて説明する。
【００６７】
まず、イベント所属区間決定処理部１０５は、実態フローの各イベントを、複数の区間（例えば、序盤、中盤及び終盤）のいずれかに分類し、イベント所属区間データ格納部１０７に格納する（ステップＳ１３１）。この処理については、後に詳細に説明する。例えば、図７のような実態フローが得られた場合には、図３３に示すような分類結果が得られる。図３３の例では、序盤グループには、「登録」「通知」「審議依頼」イベントが属する。また、中盤グループには、「却下」「再依頼」「了解」「回送」イベントが属する。さらに、終盤グループには、「承認依頼」「承認」「採番」「取下」イベントが属する。
【００６８】
次に、ノード所属区間決定処理部１１２は、設計フローの各ノードを、イベントについて規定されている複数の区間のいずれかに分類し、ノード所属区間データ格納部１１３に格納する（ステップＳ１３３）。この処理については、後に詳細に説明する。例えば、図１２のような設計フローが得られた場合には、図３４に示すような分類結果が得られる。図３４の例では、序盤グループには、「稟議依頼」「審議開始」ノードが属する。また、中盤グループには、「審議」「再依頼」「審議完了」「再依頼判断」「決裁依頼」ノードが属する。さらに、終盤グループには、「稟議却下」「決裁」「決裁完了」ノードが属する。
【００６９】
そして、対応付け処理部１１６は、最多実行フローデータ格納部１０４に登録されているイベント及び代表フローデータ格納部１１１に格納されているノードを除外することにより、グループ毎に、最多実行フローに含まれないイベント及び代表フローに含まれないノードを、表示装置１１７に表示する（ステップＳ１３５）。例えば図３５に示すようなデータを表示する。図３５の例では、上段に図３３に示した実態フローについての分類結果のうち最多実行フローに含まれるイベントについては選択不可状態で示し、含まれないイベントについては選択可能状態で示したテーブルを含み、下段に図３４に示した設計フローについての分類結果のうち代表フローに含まれるノードについては選択不可状態で示し、含まれないノードについては選択可能状態で示したテーブルを含む。選択可能状態を表すために、文字を点線で囲っている。このように、実態フローについては３つのイベントが残っており、設計フローについても３つのノードが残っている。但し、上でも述べたように対応付けの可能性は非常に絞られており、さらに出現区間についての情報も提示されているので、この状態での対応付けの難易度は非常に下がっている。
【００７０】
ユーザは、このような表示に基づき、対応付けすべきイベントとノードとを選択し、例えば確定ボタンをクリックすることにより、対応付け入力を実施する。例えば、「却下」イベントを「再依頼判断」ノードに対応付け、「再依頼」イベントを「再依頼」ノードに対応付け、「却下」イベントを「稟議却下」ノードに対応付けたものとする。
【００７１】
入力部１１４は、ユーザからのイベントとノードの対応付け入力を受け付け、対応付け処理部１１６に出力し、対応付け処理部１１６は、対応付け入力のデータを受け取り、対応付けデータ格納部１１５に登録する（ステップＳ１３７）。例えば、図３６に示すようなデータが、対応付け処理部１１６に登録されることになる。図２６との差異は、グループＨ乃至Ｊが、上で述べた３つの対応付けに対応している。
【００７２】
そして、対応付け処理部１１６は、対応付け結果を表示装置１１７に表示する（ステップＳ１３９）。対応付けの確認のためである。この表示は、図３５のようなデータについて同一の色を付すなどで対応付けを表示したり、実態フローと設計フローを並列に表示して、点線その他の線によりイベントとノードの対応付けについて表示するようにしても良い。そして元の処理に戻る。
【００７３】
図２の処理フローの説明に戻って、対応付け処理部１１６は、プロセスインスタンスデータ格納部１０２とフロー図データ格納部１０９と対応付けデータ格納部１１５に格納されているデータに従って、最終的な対応付けデータを表示装置１１７に表示する（ステップＳ１１）。例えば、図３７に示すようなデータが表示される。図３７では、左側に実態フロー（プロセスインスタンスの重ね合わせ結果）を含み、右側に設計フローを含む。そして、イベントとノードとの対応付けが点線で示されている。なお、色分けなどを行えば分かりやすくなる。このように煩雑な図にはなるが、イベントとノードとの対応関係が明らかになると共に、実態フローと設計フローとの違いを認識できるようになる。すなわち、設計フローでは、「審議」ノードからの分岐は「審議完了」ノードと「再依頼判断」ノードとの２つに分岐するが、実態フローでは「審議」ノードに対応付けられている「審議依頼」イベントから、「却下」イベント、「了解」イベント及び「取下」イベントに分岐するようになっており、「審議依頼」イベントから「取下」イベントへの遷移が追加されていることが分かる。同様に、「再依頼」イベントから「審議依頼」イベントへの遷移、「承認依頼」イベントから「取下」イベントへの遷移についても、設計フローには相当する接続線が存在しないことが分かる。
【００７４】
このようにして実態フローと設計フローを比較して、その相違点などを検討することが容易になる。
【００７５】
［イベントの出現区間の特定処理］
図３２のステップＳ１３１は、図３２のタイミングで実施する必要はなく、ステップＳ３以降に他の処理と並行して実施することが可能である。このステップＳ１３１の処理については、図３８乃至図４５を用いて説明する。
【００７６】
まず、イベント所属区間決定処理部１０５は、プロセスインスタンスデータ格納部１０２に格納されているプロセスインスタンス群から、未処理のプロセスインスタンスを１つ特定する（図３８：ステップＳ１５１）。また、特定されたプロセスインスタンスに含まれるイベント数をカウントし、当該カウント値に基づき各イベントの出現位置を算出する（ステップＳ１５３）。
【００７７】
例えば、図３９に示すように、プロセスインスタンスデータ格納部１０２には、４種類のプロセスインスタンス、すなわち「見積」-＞「受注」-＞「検収」という順番でイベントが発生する第１のプロセスクラスと、「受注」-＞「取消」という順番でイベントが発生する第２のプロセスクラスと、「見積」-＞「受注」-＞「変更」-＞「受注」-＞「検収」という順番でイベントが発生する第３のプロセスクラスと、「見積」-＞「変更」-＞「見積」-＞「取消」という順番にイベントが発生する第４のプロセスクラスとが生成されたものとする。なお、図３９に示すように、それぞれの実行回数も特定されているものとする。
【００７８】
このような場合、ステップＳ１５３では、図４０に示すような方法で、出現位置を算出する。すなわち、最初のイベントを位置０％、最後のイベントを位置１００％と設定して、その間に発生したイベントの間隔が均等になるように各イベントの位置を決定する。第１のプロセスクラスの場合、図４０の第１行目に示すように、最初と最後のイベントの間には受注イベントのみが発生している。従って、間隔は２つであるから、１００％／２＝５０％が受注イベントの位置となる。第２のプロセスクラスの場合、図４０の第２行目に示すように、イベントが２つしかないので、位置を決定すべき中間のイベントはない。第３のプロセスクラスの場合、図４０の第３行目に示すように、最初と最後のイベントの間には受注イベント、変更イベント及び２回目の受注イベントが発生している。従って、間隔は４つであるから、受注イベントは１００％／４＊１＝２５％が出現位置であり、変更イベントは１００％／４＊２＝５０％が出現位置であり、２回目の受注イベントは１００％／４＊３＝７５％が出現位置である。第４のプロセスクラスの場合、図４０の第４行目に示すように最初と最後のイベントの間には変更イベント及び見積イベントが発生している。従って、間隔は３であり、変更イベントは１００％／３＊１＝３３．３％が出現位置であり、見積イベントは１００％／３＊２＝６６．６％が出現位置である。
【００７９】
なお、度数分布を生成する際には、各イベント種について、各出現位置の回数を、そのプロセスインスタンスの当該実行回数分カウントアップする。
【００８０】
以上のような手順にてステップＳ１５１で特定されたプロセスインスタンスに含まれる各イベントの出現位置を算出する。このように各プロセスインスタンスにおいて正規化した形で出現位置を算出するので、粒度の差に起因するフロー図間のノード数又はイベント数の相違の影響を抑えて対比できるようになる。
【００８１】
そして、イベント所属区間決定処理部１０５は、未処理のイベントを１つ特定し（ステップＳ１５５）、イベント名（イベント種又はイベント種別とも呼ぶ）及び出現位置を、イベント所属区間データ格納部１０７の出現位置管理テーブルに登録する（ステップＳ１５７）。出現位置管理テーブルは、例えば図４１に示すようなテーブルである。図４１の例では、イベント種と出現位置とが登録されるようになっている。ステップＳ１５７では、１つのレコードがこのような出現位置管理テーブルに登録される。
【００８２】
そして、イベント所属区間決定処理部１０５は、全てのイベントを処理したか判断する（ステップＳ１５９）。未処理のイベントが存在する場合にはステップＳ１５５に戻る。未処理のイベントが存在しない場合には、プロセスインスタンスデータ格納部１０２に格納されている全てのプロセスインスタンスについて処理したか判断し（ステップＳ１６１）、未処理のプロセスインスタンスが存在する場合にはステップＳ１５１に戻る。一方、全てのプロセスインスタンスを処理した場合には、端子Ｂを介して図４２の処理に移行する。
【００８３】
図４２の処理の説明に移行して、イベント所属区間決定処理部１０５は、出現位置管理テーブルにおいて未処理のイベント種を１つ特定する（ステップＳ１６３）。そして、特定されたイベント種に該当するレコードを、出現位置管理テーブルから抽出し、所定の位置区間毎に出現回数をカウントし、イベント所属区間データ格納部１０７に格納する（ステップＳ１６５）。例えば、図３９のような出現位置管理テーブルから、図３８でハッチングが付されている「受注」イベントのレコードを抽出すると、図４３に示すようなデータが得られる。すなわち、イベント種が全て「受注」で、その出現位置が列挙される。そして、例えば図４４に示すように、０％から１００％を１０区間に均等に分けてそれぞれの区間について、該当件数をカウントする。図４３に現れているレコードだけを集計すれば、５０％が５回、３３．３％が１回、０％が２回で、図４４に示されているような分布が得られる。
【００８４】
そして、イベント所属区間決定処理部１０５は、図４４に示されているような分布から、最頻出現区間（一般的には最も出現回数が多い区間であるが、他の統計的な特徴値の区間を採用するようにしても良い。場合によってはユーザに指定させるようにしてもよい。）を特定し、当該最頻出現区間を特定するデータ（区間にＩＤが振られている場合には、当該区間ＩＤ。０以上１０未満といったデータであっても良い。）とイベント種とを対応付けてイベント所属区間データ格納部１０７に格納する（ステップＳ１６７）。そして、全てのイベント種について処理したか判断する（ステップＳ１６９）。未処理のイベント種が存在する場合にはステップＳ１６３に戻る。
【００８５】
一方、全てのイベント種について処理した場合には、イベント所属区間決定処理部１０５は、第１のプロセスインスタンス群の各イベント種を最頻出現区間からグループ分けし、グループ分けデータをイベント所属区間データ格納部１０７に格納する（ステップＳ１７０）。例えば、「序盤」「中盤」「終盤」といったように３つのグループに分ける場合には、「０以上１０未満」「１０以上２０未満」「２０以上３０未満」を最頻出現区間とするイベント種を、序盤グループに属するイベント種として特定する。また、「３０以上４０未満」「４０以上５０未満」「５０以上６０未満」「６０以上７０未満」を最頻出現区間とするイベント種を、中盤グループに属するイベント種として特定する。
【００８６】
以上のような処理を実施すれば、例えば図４５に示すように、「見積」イベントは０以上１０未満の区間、「受注」イベントは５０以上６０未満の区間、「変更」イベントは５０以上６０未満の区間、「検収」イベントは９０以上１００以下の区間、「取消」イベントは９０以上１００以下の区間が最頻出現区間として特定される。
【００８７】
このような処理を実施することによって、出現頻度の低い例外的なフロー経路の影響を抑えて、適切な出現区間及びグループが特定されるようになる。
【００８８】
［ノードの出現区間の特定処理］
図３２のステップＳ１３３は、図３２のタイミングで実施する必要はなく、ステップＳ３以降に他の処理と並行して実施することが可能である。このステップＳ１３３の処理については、図４６乃至図５１を用いて説明する。
【００８９】
ノード所属区間決定処理部１１２は、入力された設計フロー図に始点及び終点が明示されているか判断する（ステップＳ１７１）。例えば、コンピュータ読み取り可能な言語で記述されている場合には、「開始」「終了」といった文言の他予め定められたキーワードをノード所属区間決定処理部１１２に登録しておき、当該キーワードに合致するノードが規定されているか否かによって始点及び終点が明示されているかを判断する。一方、イメージデータなどであっても、ＯＣＲ（Optical Character Recognition）の技術等で上記のようなキーワードを抽出するようにしてもよい。
【００９０】
入力された設計フロー図に始点及び終点が明示されていない場合（実際に明示されていない場合又はノード所属区間決定処理部１１２が認識できなかった場合）には、ノード所属区間決定処理部１１２は、例えば始点及び終点の入力をユーザに対して促す表示を表示装置１１７に対して行い、始点及び終点の入力がなければ（ステップＳ１７３：Ｎｏルート）、処理不可能を出力して以降の処理を終了する（ステップＳ１８７）。なお、始点及び終点が接続されるノードの指定が必要である。
【００９１】
一方、入力部１１４を介して始点及び終点の入力がなされた場合には（ステップＳ１７３：Ｙｅｓルート）、ノード所属区間決定処理部１１２は、入力部１１４から始点及び終点の入力を受け取り、例えばメインメモリなどの記憶装置に格納する（ステップＳ１７５）。
【００９２】
ステップＳ１７５の後に、又は入力された設計フロー図に始点及び終点が明示されている場合には、ノード所属区間決定処理部１１２は、入力されたフロー図のデータが、フロー構造を自動的に読み取り可能なデータ（例えばＸＰＤＬ等で記述されたデータ）であるかを判断する（ステップＳ１７７）。イメージデータのように正確にフロー構造を読み取れないようなデータでフロー図が入力されている場合には、ノード所属区間決定処理部１１２は、表示装置１１７にノードの種類及びノード間の接続間の情報の入力を促す表示を行い、入力部１１４を介してユーザからの入力データを取得し、例えばメインメモリなどの記憶装置に格納する（ステップＳ１７９）。そして、ステップＳ１８３に移行する。
【００９３】
入力された設計フロー図のデータが、フロー構造を自動的に読み取り可能なデータ（例えばＸＰＤＬ等で記述されたデータ）である場合には、ノード所属区間決定処理部１１２は、例えば周知のパーサ機能で設計フロー図データをパースし、ノードの種類及びノード間の接続関係の情報を抽出する（ステップＳ１８１）。このパーサ機能については、ＸＭＬ（eXtensible Markup Language）のパーサの技術を用いれば実現できるのでここではこれ以上述べない。
【００９４】
そして、ノード所属区間決定処理部１１２は、ノードの種類及びノード間の接続関係から、ノード間遷移を表す隣接行列を生成し、例えばメインメモリなどの記憶装置に格納する（ステップＳ８３）。なお、処理は端子Ｄを介して図５０の処理に移行する。
【００９５】
例えば図４７のようなフロー図を想定する。図４７のフロー図では、始点である「ＩＮＩＴＩＡＬ」から「見積」及び「受注」への遷移と、「見積」から「受注」への遷移と、「受注」から「取消」「検収」「変更」への遷移と、「変更」から「受注」への遷移と、「検収」から終点である「ＦＩＮＡＬ」への遷移と、「取消」から「ＦＩＮＡＬ」への遷移とが含まれている。このようなノードの種類とノード間の接続関係を、ノード間遷移を表す隣接行列に変換すると、図４８に示すような行列となる。行列の中で「０」は、遷移無しを表し、「１」は遷移有りを表す。
【００９６】
そして、ノード所属区間決定処理部１１２は、ワーシャル・フロイド法などの、有向グラフの最短経路についての周知の解法に従って、各ノードについて、始点からの最短距離及び終点からの最短距離（終点への最短距離と同じ）を算出し、ノード所属区間データ格納部１１３に格納する（ステップＳ１８５）。図４７に示すように、例えば「見積」に着目すると、「ＩＮＩＴＩＡＬ」からの最短距離は「１」であり、「ＦＩＮＡＬ」からの最短距離は「３」である。また、「受注」に着目すると、「ＩＮＩＴＩＡＬ」からの最短距離は「１」であり、「ＦＩＮＡＬ」からの最短距離は「２」である。このような最短距離の計算については、周知の手法にて隣接行列から算出することができ、例えばその計算結果は、例えば図１８に示すようなデータとなる。すなわち、各ノードについて、ＩＮＩＴＩＡＬからの最短距離Ａと、ＦＩＮＡＬからの最短距離Ｂ（ＦＩＮＡＬへの最短距離としても同じ。）とが算出される。なお、図４９の例では、後に算出されるＢ−Ａについても計算結果が示されている。
【００９７】
図５０の処理の説明に移行して、ノード所属区間決定処理部１１２は、未処理のノードを１つ特定し（ステップＳ１８７）、特定されたノードについて、終点からの最短距離から始点からの最短距離を引くことによって差分値（距離差とも呼ぶ）を算出し、ノード所属区間データ格納部１１３に格納する（ステップＳ１８９）。図４９に示したように、Ｂ−Ａを算出して、登録する。なお、差分値が大きいほどＩＮＩＴＩＡＬに近く、差分値が小さければＦＩＮＡＬに近いので、始点又は終点にどの程度寄っているのかの指標として算出している。そして、未処理のノードが存在するか判断し（ステップＳ１９１）、未処理のノードが存在すればステップＳ１８７に戻る。
【００９８】
一方、未処理のノードが存在しなければ、ノード所属区間決定処理部１１２は、算出された差分値に基づき、各ノードをプロセスインスタンスのグループと同一数のグループにグループ分けし、グループ分けデータをノード所属区間データ格納部１１３に格納する（ステップＳ１９３）。図４９に示すようなデータを得た場合には、例えば差分値ｘが１より大きく２以下であれば序盤グループとし、差分値ｘが１以下で０より大きい場合には中盤グループとし、差分値ｘが０以下で−１以上の場合には終盤グループと定義して、各ノードの差分値に基づきいずれのグループに属するかを判断する。図４９の例では、図５１に示すように、序盤グループには「見積」が含まれ、中盤グループには「受注」及び「変更」が含まれ、終盤グループには「取消」及び「検収」が含まれる。グループについての閾値は、ノード数や差分値の範囲（最高値と最小値との差）などから予め決定して設定しておく。
【００９９】
このような処理を実施することによって、設計フロー図が与えられた場合にも、以下で行われるノードのグループ分けのベースとなるデータが得られるようになる。
【０１００】
なお、上で述べたイベント出現区間特定処理及びノード出現区間特定処理については、一例であって他の処理を採用しても良い。さらに、ユーザが各イベント及び各ノードについて区間を指定するようにしても良い。
【０１０１】
以上本技術の実施の形態について説明したが、本技術はこれに限定されるものではない。例えば、図１に示した機能ブロック図は一例であって、必ずしも実際のプログラム・モジュール構成とは一致しない場合もある。また、上で述べたように、一部の機能についてはオプションであり、必ず持たなければならない機能ではない場合がある。
【０１０２】
さらに、処理フローについても、処理結果が変わらない限り、ステップの順番を入れ替えたり、並列に実行したりできる場合もある。
【０１０３】
また、フロー比較処理装置１００をネットワークに接続して、当該ネットワークに接続されている他の端末装置からの指示に基づき処理を実施する場合もある。その場合、例えばＷｅｂ（ウェブ）サーバ部を導入して、対応付け処理部１１６は、当該Ｗｅｂサーバ部と連携して他の端末装置のＷｅｂブラウザ等と通信を行うようにしても良い。
【０１０４】
なお、上で述べたフロー比較処理装置１００は、コンピュータ装置であって、図５２に示すように、メモリ２５０１とＣＰＵ２５０３とハードディスク・ドライブ（ＨＤＤ）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。必要に応じてＣＰＵ２５０３は、表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ２５０１に格納され、必要があればＨＤＤ２５０５に格納される。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０１０５】
以上本実施の形態をまとめると以下のようになる。
【０１０６】
本フロー対応付け処理方法は、特定のシステムにおいて発生した複数のイベントが時系列に並べられた複数のプロセスインスタンスのデータを格納するプロセスインスタンスデータ格納部に格納されているプロセスインスタンスから、特定のイベントを含む主要フロー（例えば実施の形態における最多実行フロー。但し、最多実行であるか否か、最多実行の特定方法については任意。）を抽出する主要フロー抽出ステップと、複数のノードを含む、特定のシステムについての設計フローのデータを格納している設計フローデータ格納部に格納されている設計フローのデータから、特定のノードを含む代表フローを抽出する代表フロー抽出ステップと、主要フローと代表フローとを対比可能な態様で出力し、主要フローに含まれる特定のイベントと代表フローに含まれる特定のノードとの対応付けの入力を促し、入力された対応付けのデータを対応付けデータ格納部に格納するステップと、複数のイベントのうち特定のイベント以外の第２のイベントと、複数のノードのうち特定のノード以外の第２のノードとを対比可能な態様で出力し、第２のイベントと前記第２のノードとの対応付けの入力を促し、入力された対応付けの第２のデータを対応付けデータ格納部に格納する第２対応付けステップとを含む。
【０１０７】
プロセスインスタンスに含まれるイベントと設計フローに含まれるノードとをそのまま対応付けるのは難しいが、プロセスインスタンスから抽出された主要フローに含まれるイベントと設計フローから抽出された代表フローに含まれるノードとを対比して対応付け、さらに残りを対応付ければ、対応付けが容易になる。
【０１０８】
また、上で述べた主要フロー抽出ステップが、複数のプロセスインスタンスのうち最も多く実施されたプロセスインスタンス、又は全プロセスインスタンスを重ね合わせた上で最も多く実施されたイベント間遷移を含むプロセスインスタンス種別のうち最も実行回数の多いプロセスインスタンス種別を主要フローとして特定するステップを含むようにしても良い。多数のプロセスインスタンスが得られれば統計的に主要フローを特定することができる。
【０１０９】
さらに、上で述べた代表フロー抽出ステップが、設計フローにおける各ノード間遷移の始点から終点までを結ぶ線の角度を算出し、当該角度から所定のルールに従って代表角度を算出するステップと、設計フローから分岐先が異なるルートを特定し、代表角度についての条件を含む所定の条件に基づき、ルートの中から代表フローを特定するステップとを含むようにしても良い。設計フローについては、代表フローを抽出する手法には様々なものが考えられるが、例えば上で述べた代表角度を１つの要素として用いれば比較的実態に即した代表フローが自動的に得られるようになる。
【０１１０】
また、上で述べた代表フロー抽出ステップが、設計フローに含まれるノード毎に、当該ノードの名称に含まれる単語で、単語毎に点数が登録された単語点数データ格納部を検索し、各ノードの点数を特定するステップと、設計フローから分岐先が異なるルートを特定し、各ルートについて当該ルート上のノードの点数を累積し、ルートの中から点数が最大となるルートを代表フローとして特定するステップとを含むようにしてもよい。通常代表フローは、始点からある程度正の意味合いの高いノードを経由して終点に至るものである。従って、単語が有する正又は負の意味合いの度合いに応じた点数を登録しておき、ルート上のノードの点数の累積値が最高になるルートを選択すれば、比較的実態に即した代表フローが自動的に得られるようになる。
【０１１１】
さらに、上で述べた第２対応付けステップが、（Ａ）プロセスインスタンスデータ格納部に格納されている各プロセスインスタンスについて、当該プロセスインスタンス内における各イベントの出現位置を当該プロセスインスタンス内のイベントの出現回数に基づき決定し、各イベントに対応付けて出現位置を第１データ格納部に格納するステップと、（Ｂ）第１データ格納部から、イベント種別毎に前記イベントのデータを抽出し、当該イベント種別に属する各イベントの出現位置が、予め定められた複数の位置区間のいずれに属するか判断すると共に、イベント種別毎に当該イベント種別の最頻出現位置区間を特定し、予め定められた複数のグループのうち最頻出現位置区間が属する最頻出現グループとイベント種別とを対応付けて第１データ格納部に格納するステップと、（Ｃ）設計フローデータ格納部に格納されている設計フローに含まれる複数のノードとノード間遷移とから、始点及び終点を除く各ノードについて、始点からの最短距離と終点からの最短距離とを算出し、第２データ格納部に格納するステップと、（Ｅ）第２データ格納部に格納されている終点からの最短距離と始点からの最短距離との差を各ノードについて算出し、予め定められた閾値に従って、各ノードについて、複数のグループと同数の区分けがなされている複数の出現位置区間のうち当該ノードの出現位置区間を特定し、第２データ格納部に格納するステップと、（Ｆ）複数のイベントの種別のうち主要フローに含まれるイベント種別以外のイベント種別について、第１データ格納部に格納されている、イベントの種別と当該イベントの種別の最頻出現グループとを関連付けて表示し、代表フローに含まれるノード以外のノードについて、第２データ格納部に格納されている、ノードと当該ノードの出現位置区間とを関連付けて表示するステップとを含むようにしても良い。
【０１１２】
このように出現位置区間毎に区切ってノード及びイベント種別を提示することによってより対応付けが容易になる。
【０１１３】
なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、コンピュータのメモリ等の記憶装置に一時保管される。
【０１１４】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１１５】
（付記１）
特定のシステムにおいて発生した複数のイベントが時系列に並べられた複数のプロセスインスタンスのデータを格納するプロセスインスタンスデータ格納部に格納されている前記プロセスインスタンスから、特定のイベントを含む主要フローを抽出する主要フロー抽出ステップと、
複数のノードを含む、前記特定のシステムについての設計フローのデータを格納している設計フローデータ格納部に格納されている前記設計フローのデータから、特定のノードを含む代表フローを抽出する代表フロー抽出ステップと、
前記主要フローと前記代表フローとを対比可能な態様で出力し、前記主要フローに含まれる前記特定のイベントと前記代表フローに含まれる前記特定のノードとの対応付けの入力を促し、入力された対応付けのデータを対応付けデータ格納部に格納するステップと、
前記複数のイベントのうち前記特定のイベント以外の第２のイベントと、前記複数のノードのうち前記特定のノード以外の第２のノードとを対比可能な態様で出力し、前記第２のイベントと前記第２のノードとの対応付けの入力を促し、入力された対応付けの第２のデータを前記対応付けデータ格納部に格納する第２対応付けステップと、
を含み、コンピュータに実行されるフロー対応付け処理方法。
【０１１６】
（付記２）
前記主要フロー抽出ステップが、
前記複数のプロセスインスタンスのうち最も多く実施されたプロセスインスタンス、又は全プロセスインスタンスを重ね合わせた上で最も多く実施されたイベント間遷移を含むプロセスインスタンス種別のうち最も実行回数の多いプロセスインスタンス種別を前記主要フローとして特定するステップ
を含む付記１記載のフロー対応付け処理方法。
【０１１７】
（付記３）
前記代表フロー抽出ステップが、
前記設計フローにおける各ノード間遷移の始点から終点までを結ぶ線の角度を算出し、当該角度から所定のルールに従って代表角度を算出するステップと、
前記設計フローから分岐先が異なるルートを特定し、前記代表角度についての条件を含む所定の条件に基づき、前記ルートの中から代表フローを特定するステップと、
を含む付記１又は２記載のフロー対応付け処理方法。
【０１１８】
（付記４）
前記代表フロー抽出ステップが、
前記設計フローに含まれるノード毎に、当該ノードの名称に含まれる単語で、単語毎に点数が登録された単語点数データ格納部を検索し、各前記ノードの点数を特定するステップと、
前記設計フローから分岐先が異なるルートを特定し、各前記ルートについて当該ルート上のノードの点数を累積し、前記ルートの中から点数が最大となるルートを代表フローとして特定するステップと、
を含む付記１又は２記載のフロー対応付け処理方法。
【０１１９】
（付記５）
前記第２対応付けステップが、
前記プロセスインスタンスデータ格納部に格納されている各前記プロセスインスタンスについて、当該プロセスインスタンス内における各イベントの出現位置を当該プロセスインスタンス内のイベントの出現回数に基づき決定し、各イベントに対応付けて出現位置を第１データ格納部に格納するステップと、
前記第１データ格納部から、イベント種別毎に前記イベントのデータを抽出し、当該イベント種別に属する各前記イベントの出現位置が、予め定められた複数の位置区間のいずれに属するか判断すると共に、前記イベント種別毎に当該イベント種別の最頻出現位置区間を特定し、予め定められた複数のグループのうち前記最頻出現位置区間が属する最頻出現グループと前記イベント種別とを対応付けて前記第１データ格納部に格納するステップと、
前記設計フローデータ格納部に格納されている前記設計フローに含まれる前記複数のノードとノード間遷移とから、始点及び終点を除く各前記ノードについて、前記始点からの最短距離と前記終点からの最短距離とを算出し、第２データ格納部に格納するステップと、
前記第２データ格納部に格納されている前記終点からの最短距離と前記始点からの最短距離との差を各前記ノードについて算出し、予め定められた閾値に従って、各前記ノードについて、前記複数のグループと同数の区分けがなされている複数の出現位置区間のうち当該ノードの出現位置区間を特定し、前記第２データ格納部に格納するステップと、
前記複数のイベントの種別のうち前記主要フローに含まれるイベント種別以外のイベント種別について、前記第１データ格納部に格納されている、前記イベントの種別と当該イベントの種別の前記最頻出現グループとを関連付けて表示し、前記代表フローに含まれるノード以外のノードについて、前記第２データ格納部に格納されている、前記ノードと当該ノードの出現位置区間とを関連付けて表示するステップと、
を含む付記１乃至４のいずれか１つ記載のフロー対応付け処理方法。
【０１２０】
（付記６）
付記１乃至５のいずれか１つ記載のフロー対応付け処理方法をコンピュータに実行させるためのプログラム。
【０１２１】
（付記７）
特定のシステムにおいて発生した複数のイベントが時系列に並べられた複数のプロセスインスタンスのデータを格納するプロセスインスタンスデータ格納部に格納されている前記プロセスインスタンスから、特定のイベントを含む主要フローを抽出する主要フロー抽出手段と、
複数のノードを含む、前記特定のシステムについての設計フローのデータを格納している設計フローデータ格納部に格納されている前記設計フローのデータから、特定のノードを含む代表フローを抽出する代表フロー抽出手段と、
前記主要フローと前記代表フローとを対比可能な態様で出力し、前記主要フローに含まれる前記特定のイベントと前記代表フローに含まれる前記特定のノードとの対応付けの入力を促し、入力された対応付けのデータを対応付けデータ格納部に格納し、前記複数のイベントのうち前記特定のイベント以外の第２のイベントと、前記複数のノードのうち前記特定のノード以外の第２のノードとを対比可能な態様で出力し、前記第２のイベントと前記第２のノードとの対応付けの入力を促し、入力された対応付けの第２のデータを前記対応付けデータ格納部に格納する対応付け手段と、
を有するフロー比較処理装置。
【符号の説明】
【０１２２】
１０１  プロセスインスタンス生成部    １０２  プロセスインスタンスデータ格納部
１０３  最多実行フロー抽出部    １０４  最多実行フローデータ格納部
１０５  イベント所属区間決定処理部    １０７  イベント所属区間データ格納部
１０６  単語データ格納部    １０８  フロー図データ取得部
１０９  フロー図データ格納部    １１０  代表フロー抽出部
１１１  代表フローデータ格納部    １１２  ノード所属区間決定処理部
１１３  ノード所属区間データ格納部    １１４  入力部
１１５  対応付けデータ格納部    １１６  対応付け処理部
１１７  表示装置
【図１】
2010267229.tif 000003
【図２】
2010267229.tif 000004
【図３】
2010267229.tif 000005
【図４】
2010267229.tif 000006
【図５】
2010267229.tif 000007
【図６】
2010267229.tif 000008
【図７】
2010267229.tif 000009
【図８】
2010267229.tif 000010
【図９】
2010267229.tif 000011
【図１０】
2010267229.tif 000012
【図１１】
2010267229.tif 000013
【図１２】
2010267229.tif 000014
【図１３】
2010267229.tif 000015
【図１４Ａ】
2010267229.tif 000016
【図１４Ｂ】
2010267229.tif 000017
【図１５】
2010267229.tif 000018
【図１６】
2010267229.tif 000019
【図１７】
2010267229.tif 000020
【図１８】
2010267229.tif 000021
【図１９Ａ】
2010267229.tif 000022
【図１９Ｂ】
2010267229.tif 000023
【図２０】
2010267229.tif 000024
【図２１】
2010267229.tif 000025
【図２２】
2010267229.tif 000026
【図２３】
2010267229.tif 000027
【図２４】
2010267229.tif 000028
【図２５】
2010267229.tif 000029
【図２６】
2010267229.tif 000030
【図２７】
2010267229.tif 000031
【図２８】
2010267229.tif 000032
【図２９】
2010267229.tif 000033
【図３０】
2010267229.tif 000034
【図３１】
2010267229.tif 000035
【図３２】
2010267229.tif 000036
【図３３】
2010267229.tif 000037
【図３４】
2010267229.tif 000038
【図３５】
2010267229.tif 000039
【図３６】
2010267229.tif 000040
【図３７】
2010267229.tif 000041
【図３８】
2010267229.tif 000042
【図３９】
2010267229.tif 000043
【図４０】
2010267229.tif 000044
【図４１】
2010267229.tif 000045
【図４２】
2010267229.tif 000046
【図４３】
2010267229.tif 000047
【図４４】
2010267229.tif 000048
【図４５】
2010267229.tif 000049
【図４６】
2010267229.tif 000050
【図４７】
2010267229.tif 000051
【図４８】
2010267229.tif 000052
【図４９】
2010267229.tif 000053
【図５０】
2010267229.tif 000054
【図５１】
2010267229.tif 000055
【図５２】
2010267229.tif 000056