(57)【特許請求の範囲】
【請求項１】
特定の案件について複数のイベントが時系列に並べられた複数のプロセスインスタンスのデータを格納するプロセスインスタンス格納部に格納されているプロセスインスタンスに含まれるイベントの間の遷移であるイベント間遷移から抽出条件に従って該当するイベント間遷移を抽出し、イベント間遷移リスト格納部に格納する第１ステップと、
前記プロセスインスタンス格納部に格納されている前記複数のプロセスインスタンスのデータに含まれる前記複数のイベントの時刻データを用いて、前記イベント間遷移リスト格納部に格納されている各イベント間遷移について、前記プロセスインスタンス格納部に格納されている前記複数のプロセスインスタンスのうち当該イベント間遷移を含むプロセスインスタンスにおける遷移時間を算出し、データ格納部に格納する第２ステップと、
前記イベント間遷移リスト格納部に格納されている各イベント間遷移について、前記データ格納部に格納されている前記遷移時間の統計量を算出し、当該統計量が前記イベント間遷移に係る業務がコンピュータにより実行されたことを表す判定条件を満たしているか判定し、当該判定条件を満たしているイベント間遷移についてのデータをコンピュータ実行イベント間遷移リスト格納部に格納する第３ステップと、
前記コンピュータ実行イベント間遷移リスト格納部に格納されているイベント間遷移を含み且つ前記プロセスインスタンス格納部に格納されているプロセスインスタンスについて、イベント数を減少させる所定のルールに従った修正を行い、修正後のプロセスインスタンスのデータを、修正後プロセスインスタンス格納部に格納する第４ステップと、
を含み、コンピュータにより実行されるプロセスインスタンス処理方法。
【請求項２】
データベースに格納されている複数のレコードから生成された複数のプロセスインスタンスを格納するデータ格納部から、出現するイベントの種類及び当該イベントの出現順番が同一であるプロセスインスタンスのグループであるフロー種別のうち主要フローとして外部から指定されたフロー種別に属するという条件又は前記プロセスインスタンスに含まれる前記複数のイベントのいずれかの属性の属性値が指定属性値に合致するという条件を満たすプロセスインスタンスを読み出して、前記プロセスインスタンス格納部に格納するステップ
をさらに含む請求項１記載のプロセスインスタンス処理方法。
【請求項３】
前記抽出条件が、
全てのイベント間遷移であるという条件と、前記プロセスインスタンス格納部に格納されており且つ当該イベント間遷移を含むプロセスインスタンスの数が所定の閾値以上であるという条件とのうちいずれかを含む
請求項１又は２記載のプロセスインスタンス処理方法。
【請求項４】
前記所定のルールが、
前記プロセスインスタンスにおいて前記コンピュータ実行イベント間遷移リスト格納部に格納されているイベント間遷移の前後のイベントのうち前のイベント又は後のイベントを削除する方法と、前記プロセスインスタンスにおいて前記コンピュータ実行イベント間遷移リスト格納部に格納されているイベント間遷移の前後のイベントを統合する方法と、前記プロセスインスタンスにおいて前記コンピュータ実行イベント間遷移リスト格納部に格納されているイベント間遷移の前後のイベントを当該イベント間遷移に対応して予め登録されている又はユーザから指示されたイベントに置換する方法とのいずれかである
請求項１乃至３のいずれか１つ記載のプロセスインスタンス処理方法。
【請求項５】
前記所定のルールが、
前記コンピュータ実行イベント間遷移リスト格納部に格納されているイベント間遷移である該当イベント間遷移が連続して出現するプロセスインスタンスの場合、当該プロセスインスタンスにおいて連続する該当イベント間遷移の最前のイベント又は最後のイベントのみを残し他を削除する方法と、当該プロセスインスタンスにおいて連続する該当イベント間遷移に係るイベントを統合する方法と、当該プロセスインスタンスにおいて連続する該当イベント間遷移に係るイベントを当該連続する該当イベント間遷移に対応して予め登録されている又はユーザから指示されたイベントに置換する方法とのいずれかである
請求項１乃至３のいずれか１つ記載のプロセスインスタンス処理方法。
【請求項６】
特定の案件について複数のイベントが時系列に並べられた複数のプロセスインスタンスのデータを格納するプロセスインスタンス格納部に格納されているプロセスインスタンスに含まれるイベントの間の遷移であるイベント間遷移から抽出条件に従って該当するイベント間遷移を抽出し、イベント間遷移リスト格納部に格納するイベント間遷移抽出部と、
前記プロセスインスタンス格納部に格納されている前記複数のプロセスインスタンスのデータに含まれる前記複数のイベントの時刻データを用いて、前記イベント間遷移リスト格納部に格納されている各イベント間遷移について、前記プロセスインスタンス格納部に格納されている前記複数のプロセスインスタンスのうち当該イベント間遷移を含むプロセスインスタンスにおける遷移時間を算出し、データ格納部に格納し、前記イベント間遷移リスト格納部に格納されている各イベント間遷移について、前記データ格納部に格納されている前記遷移時間の統計量を算出し、当該統計量が前記イベント間遷移に係る業務がコンピュータにより実行されたことを表す判定条件を満たしているか判定し、当該判定条件を満たしているイベント間遷移についてのデータをコンピュータ実行イベント間遷移リスト格納部に格納する判定部と、
前記コンピュータ実行イベント間遷移リスト格納部に格納されているイベント間遷移を含み且つ前記プロセスインスタンス格納部に格納されているプロセスインスタンスについて、イベント数を減少させる所定のルールに従った修正を行い、修正後のプロセスインスタンスのデータを、修正後プロセスインスタンス格納部に格納する修正部と、
を有するプロセスインスタンス処理装置。
【請求項７】
特定の案件について複数のイベントが時系列に並べられた複数のプロセスインスタンスのデータを格納するプロセスインスタンス格納部に格納されているプロセスインスタンスに含まれるイベントの間の遷移であるイベント間遷移から抽出条件に従って該当するイベント間遷移を抽出し、イベント間遷移リスト格納部に格納する第１ステップと、
前記プロセスインスタンス格納部に格納されている前記複数のプロセスインスタンスのデータに含まれる前記複数のイベントの時刻データを用いて、前記イベント間遷移リスト格納部に格納されている各イベント間遷移について、前記プロセスインスタンス格納部に格納されている前記複数のプロセスインスタンスのうち当該イベント間遷移を含むプロセスインスタンスにおける遷移時間を算出し、データ格納部に格納する第２ステップと、
前記イベント間遷移リスト格納部に格納されている各イベント間遷移について、前記データ格納部に格納されている前記遷移時間の統計量を算出し、当該統計量が前記イベント間遷移に係る業務がコンピュータにより実行されたことを表す判定条件を満たしているか判定し、当該判定条件を満たしているイベント間遷移についてのデータをコンピュータ実行イベント間遷移リスト格納部に格納する第３ステップと、
前記コンピュータ実行イベント間遷移リスト格納部に格納されているイベント間遷移を含み且つ前記プロセスインスタンス格納部に格納されているプロセスインスタンスについて、イベント数を減少させる所定のルールに従った修正を行い、修正後のプロセスインスタンスのデータを、修正後プロセスインスタンス格納部に格納する第４ステップと、
を、コンピュータに実行させるためのプロセスインスタンス処理プログラム。
【請求項８】
特定の案件について複数のイベントが時系列に並べられた複数のプロセスインスタンスのデータを格納するプロセスインスタンス格納部に格納されているプロセスインスタンスに含まれるイベントの間の遷移であるイベント間遷移から抽出条件に従って該当するイベント間遷移を抽出し、イベント間遷移リスト格納部に格納する第１ステップと、
前記プロセスインスタンス格納部に格納されている前記複数のプロセスインスタンスのデータに含まれる前記複数のイベントの時刻データを用いて、前記イベント間遷移リスト格納部に格納されている各イベント間遷移について、前記プロセスインスタンス格納部に格納されている前記複数のプロセスインスタンスのうち当該イベント間遷移を含むプロセスインスタンスにおける遷移時間を算出し、データ格納部に格納する第２ステップと、
前記イベント間遷移リスト格納部に格納されている各イベント間遷移について、前記データ格納部に格納されている前記遷移時間の統計量を算出し、前記統計量を閾値と比較する第３ステップと、
前記統計量が前記閾値未満のイベント間遷移を含み且つ前記プロセスインスタンス格納部に格納されているプロセスインスタンスについて、イベント数を減少させる所定のルールに従った修正を行い、修正後のプロセスインスタンスのデータを、修正後プロセスインスタンス格納部に格納する第４ステップと、
を、コンピュータに実行させるためのプロセスインスタンス処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、業務プロセス分析のための技術に関する。
【背景技術】
【０００２】
業務システムに改変を加えず、業務実行に不要な負荷を与えることなく、業務システムのデータベースのバックアップデータや業務ログデータ等を用いて業務プロセスを分析するための技術が存在している。具体的には、データベースから、１つのイベントＩＤ（すなわちイベントの識別子）を共通して有するレコード群、又は複数の関連するイベントＩＤのうち少なくともいずれかを含むレコード群を抽出する。そして、抽出されたレコード群中の各レコードに含まれるタイムスタンプ（時刻データ）で各レコードを時系列に並べることによって、特定の案件のイベントを時系列に並べたプロセスインスタンスが生成される。
【０００３】
また、データベースに格納されているレコードを分析して、典型的な業務フローである主要フローと例外的な業務フローである例外フローとを区別して表示するような技術も存在している。具体的には、出現するイベントの種類が同一であり且つ当該イベントの出現順番が同一であるプロセスインスタンスのグループをフロー種とすると、複数のフロー種のうち、所属するプロセスインスタンスの出現頻度が閾値を超えていれば、当該プロセスインスタンスのフロー種を主要フローと判定する。一方、所属するプロセスインスタンスの出現頻度が閾値以下であれば、当該プロセスインスタンスのフロー種は例外フローと判定する。
【０００４】
このような技術を用いることで、実際に運用中の業務システムのデータから、現状の業務プロセスの遂行実態を業務フロー図（単にフロー図とも呼ぶ）として可視化することが可能となり、業務プロセスの問題点等の分析が容易となる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２７０７２号公報
【特許文献２】ＷＯ２００７／１３２５４７号公報
【特許文献３】ＷＯ２００９／１０４２７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上で述べた技術によれば、業務システムにおいて収集されてデータベースに登録されたイベントから業務フローは得られるが、この業務フローと、実際に業務を遂行する人間側から見た業務フローとは一対一で対応しているわけではない。業務プロセスの改善を行う場合などでは、データベースから自動的に生成された業務フローと、実際に業務を遂行する人間側から見た業務フローとの対応付けを行うことが有効である。しかし、両者の業務フローに含まれるイベント（ノードとも呼ぶ）の数が合わない、構造が異なっているといった理由から、精度良く対応付けを行うことが難しい場合がある。
【０００７】
従って、本技術の目的は、一側面では、データベースから自動的に生成された業務フローを表すフロー図と実際に業務を遂行する人間側から見た業務フローを表すワークフロー図との対応付けを容易にするための技術を提供することである。
【課題を解決するための手段】
【０００８】
本プロセスインスタンス処理方法は、（Ａ）特定の案件について複数のイベントが時系列に並べられた複数のプロセスインスタンスのデータを格納するプロセスインスタンス格納部に格納されているプロセスインスタンスに含まれるイベントの間の遷移であるイベント間遷移から抽出条件に従って該当するイベント間遷移を抽出し、イベント間遷移リスト格納部に格納する第１ステップと、（Ｂ）プロセスインスタンス格納部に格納されている複数のプロセスインスタンスのデータに含まれる複数のイベントの時刻データを用いて、イベント間遷移リスト格納部に格納されている各イベント間遷移について、プロセスインスタンス格納部に格納されている複数のプロセスインスタンスのうち当該イベント間遷移を含むプロセスインスタンスにおける遷移時間を算出し、データ格納部に格納する第２ステップと、（Ｃ）イベント間遷移リスト格納部に格納されている各イベント間遷移について、データ格納部に格納されている遷移時間の統計量を算出し、当該統計量がイベント間遷移に係る業務がコンピュータにより実行されたことを表す判定条件を満たしているか判定し、当該判定条件を満たしているイベント間遷移についてのデータをコンピュータ実行イベント間遷移リスト格納部に格納する第３ステップと、（Ｄ）コンピュータ実行イベント間遷移リスト格納部に格納されているイベント間遷移を含み且つプロセスインスタンス格納部に格納されているプロセスインスタンスについて、イベント数を減少させる所定のルールに従った修正を行い、修正後のプロセスインスタンスのデータを、修正後プロセスインスタンス格納部に格納する第４ステップとを含む。
【発明の効果】
【０００９】
データベースから自動的に生成された業務フローを表すフロー図と実際に業務を遂行する人間側から見た業務フローを表すワークフロー図との対応付けが容易になる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施の形態に係るシステムの概要を示す図である。
【図２】図２は、プロセスインスタンスの例を示す図である。
【図３】図３は、プロセスインスタンス格納部に格納されるデータの一例を示す図である。
【図４】図４は、フロー種について説明するための図である。
【図５】図５は、主要フローと例外フローとを説明するための図である。
【図６】図６は、主要フローと例外フローとを説明するための図である。
【図７】図７は、イベント間遷移判定部の機能ブロック図である。
【図８】図８は、本実施の形態におけるメインの処理フローを示す図である。
【図９】図９は、解析処理の処理フローを示す図である。
【図１０】図１０は、プロセスインスタンス選別処理の処理フローを示す図である。
【図１１】図１１は、第１イベント間遷移抽出処理の処理フローを示す図である。
【図１２】図１２は、第１イベント間遷移抽出処理において生成されるイベント間遷移リストの一例を示す図である。
【図１３】図１３は、第１判定処理の処理フローを示す図である。
【図１４】図１４は、第１判定処理において生成される判定表の一例を示す図である。
【図１５】図１５は、第２イベント間遷移抽出処理の処理フローを示す図である。
【図１６】図１６は、第２イベント間遷移抽出処理において生成されるイベント間遷移リストの一例を示す図である。
【図１７】図１７は、第２イベント間遷移抽出処理の処理フローを示す図である。
【図１８】図１８は、第２判定処理の処理フローを示す図である。
【図１９】図１９は、第２判定処理において生成される判定表の一例を示す図である。
【図２０】図２０は、修正処理の処理フローを示す図である。
【図２１】図２１は、修正処理において生成されるリストの一例を示す図である。
【図２２】図２２は、修正処理の処理フローを示す図である。
【図２３】図２３は、修正処理において用いられるルールを説明するための図である。
【図２４】図２４は、修正処理において用いられるルールを説明するための図である。
【図２５】図２５は、ワークフロー図格納部に格納されるデータの一例を示す図である。
【図２６】図２６は、プロセスインスタンスから得られるフロー図の一例を示す図である。
【図２７】図２７は、対応付け処理における表示例を示す図である。
【図２８】図２８は、対応付け処理における他の表示例を示す図である。
【図２９】図２９は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１１】
図１に、本技術の実施の形態に係るシステムの概要を示す。解析対象の業務システム２００には各種データベース（ＤＢ）が含まれており、当該ＤＢに格納されているデータを用いて業務プロセスの分析を行う業務プロセス分析装置１００が、ＬＡＮ（Local Area Network）などのネットワークを介して接続されている。業務プロセス分析装置１００は、プロセスインスタンス生成部１１０と、プロセスインスタンス格納部１２０と、表示処理部１３０と、イベント間遷移判定部１４０と、選別条件格納部１５０と、修正後プロセスインスタンス格納部１６０と、対応付け処理部１７０と、ワークフロー図格納部１９０と、出力部１８０とを有する。
【００１２】
プロセスインスタンス生成部１１０は、解析対象の業務システム２００の各種ＤＢ又はそのレプリカに格納されているデータを用いて、プロセスインスタンスを生成し、そのデータをプロセスインスタンス格納部１２０に格納する。プロセスインスタンスの生成方法は、例えば背景技術で述べたように既に知られている方法であるから、ここでは詳しく述べない。
【００１３】
プロセスインスタンスは、模式的に書けば、例えば図２に示すようなデータである。図２（ａ）乃至（ｄ）は、各々プロセスインスタンスの例を示している。プロセスインスタンスは、特定の案件について発生した複数のイベント（受注、生産、手配、配送など）をそのイベントの発生時刻（実際には記録時刻）で時系列に並べたものである。なお、プロセスインスタンスの先頭に、初期状態を表す「Initial State」を付加したり、プロセスインスタンスの末尾に、終了状態を表す「Final State」を付加する場合もある。
【００１４】
図２の例では、イベント名が１段目に示されており、イベント発生時刻が２段目に示されている。さらに、特定の案件に係るイベントであるか否かを判断するために用いられた識別子（ＩＤ）が、３段目及び４段目に示されている。例えば図２（ａ）のプロセスインスタンスであれば、ＪＴ０１とＴＨ０１、ＴＨ０２及びＴＨ０３とが関連するＩＤとして特定されて、これらのＩＤを含むデータベースのレコードが、特定の案件に係るイベントとして特定されている。
【００１５】
なお、上で述べたようにイベントはデータベースのレコードに対応しており、例えば図３に示すように、データベースには、図２に示した属性以外のデータも含まれている。図３の第１レコードは、図２（ａ）の２番目のイベントに対応するレコードを示しており、この例では、日時、生産番号、受注番号については、図２（ａ）にもその属性値が示されている。また、この例では、イベント名「生産」は、生産ＤＢのレコードであることに由来する。そのほか、品番及び納期については、図２（ａ）には示されていないが、それらの属性値は、プロセスインスタンス格納部１２０に格納されているものとする。
【００１６】
但し、プロセスインスタンス格納部１２０には、各プロセスインスタンスについて、イベント名と当該イベントの元となるデータベースのレコードへのポインタ等を格納しておき、データベースのレプリカなどを業務プロセス分析装置１００に備えるようにしても良い。
【００１７】
また、表示処理部１３０は、ユーザからの指示などに応じて、例えばプロセスインスタンス格納部１２０に格納されているデータを用いて、表示すべき業務フロー等のデータを生成し、出力部１８０に出力する。表示処理部１３０は、例えば背景技術で述べたように、主要フローと例外フローとを分別するような機能を有する。この機能は、例えば、プロセスインスタンスを、出現するイベントの種類及び当該イベントの出現順番が同一であるプロセスインスタンスのグループ（フロー種と呼ぶ）に分類して、各フロー種について所属するプロセスインスタンスの数を計数する。このプロセスインスタンスの数が、所定数以上であれば主要フローと判定し、所定数未満であれば例外フローと判定する。なお、所定数は、全プロセスインスタンス数の割合などによって指定される。
【００１８】
例えば、図４のような３種類のフロー種が存在しており、各フロー種に属するプロセスインスタンスの数が計数値として計数されている場合を考える。例えば、閾値が「３」（全体の３０％）とすると、１番目のフロー種と２番目のフロー種とが主要フローとして判定され、３番目のフロー種は例外フローと判定される。表示処理部１３０は、例えば図５に示すように、主要フローと判定されたフロー種と例外フローとして判定されたフロー種とをそれぞれ別に表示するためのデータを生成するようにしても良い。また、主要フローのフロー種については重ね合わせてしまい、図６に示すように、２つのフローを示すような表示データを生成するようにしてもよい。なお、ユーザが主要フローとすべきフロー種を選択するようにしても良い。
【００１９】
また、表示処理部１３０は、ユーザなどによって指定された属性が、同じく指定された属性値を有するようなイベントを含むプロセスインスタンスを抽出するような処理をも行う。
【００２０】
表示処理部１３０は、以下で述べるイベント間遷移判定部１４０と連携する場合があり、その場合には、上で述べた主要フロー又は主要フロー及び例外フローを特定するためのデータ、ユーザが指定した属性及びその属性値のデータを、プロセスインスタンスの選別条件として選別条件格納部１５０に格納する。また、表示処理部１３０は、イベント間遷移判定部１４０の処理結果である修正後プロセスインスタンスのデータを格納する修正後プロセスインスタンス格納部１６０に格納されているデータを用いて上でも述べたような処理を行う場合もある。
【００２１】
イベント間遷移判定部１４０は、以下で述べるように、本実施の形態に係る主要な処理を実施し、処理結果を修正後プロセスインスタンス格納部１６０に格納する。なお、イベント間遷移判定部１４０は、その途中の処理結果についても、ユーザからの指示等に応じて出力する場合があり、その場合には出力部１８０に出力データを出力する。
【００２２】
対応付け処理部１７０は、修正後プロセスインスタンス格納部１６０に格納されているプロセスインスタンス（又はフロー種）と、ワークフロー図格納部１９０に格納されているワークフロー図との対応付けを、半自動的に又はユーザからの指示に応じて実施する。対応付け処理部１７０は、対応付け結果を、出力部１８０に出力する。
【００２３】
ワークフロー図格納部１９０は、例えば実際に業務を行っている人間側から見た業務フローを表すワークフロー図のデータを格納する。
【００２４】
出力部１８０は、表示処理部１３０、対応付け処理部１７０及びイベント間遷移判定部１４０等からの出力データを、例えば表示装置などの出力装置に出力する。
【００２５】
次に、図７に、イベント間遷移判定部１４０の機能ブロック図を示す。イベント間遷移判定部１４０は、選別処理部１４１と、選別後プロセスインスタンス格納部１４２と、イベント間遷移抽出部１４３と、イベント間遷移リスト格納部１４４と、判定部１４５と、判定表格納部１４６と、修正部１４７と、ルール格納部１４８と、イベント間遷移時間格納部１４９とを有する。
【００２６】
選別処理部１４１は、選別条件格納部１５０に格納されている選別条件などに従って、プロセスインスタンス格納部１２０に格納されているプロセスインスタンスを選別して、選別後プロセスインスタンス格納部１４２に格納する。イベント間遷移抽出部１４３は、選別後プロセスインスタンス格納部１４２に格納されているプロセスインスタンスから、処理すべきイベント間遷移を抽出し、イベント間遷移リスト格納部１４４に格納する。判定部１４５は、選別後プロセスインスタンス格納部１４２及びイベント間遷移リスト格納部１４４に格納されているデータを用いて処理を行い、処理結果を判定表として判定表格納部１４６に格納する。なお、判定部１４５は、処理途中のデータを例えばイベント間遷移時間格納部１４９に格納する。修正部１４７は、選別後プロセスインスタンス格納部１４２（又はプロセスインスタンス格納部１２０）に格納されているプロセスインスタンスに対して、ルール格納部１４８に格納されているルールに従って処理を行い、処理結果を修正後プロセスインスタンス格納部１６０に格納する。
【００２７】
次に、図８乃至図２８を用いて、イベント間遷移判定部１４０及び対応付け処理部１７０の処理内容について説明する。まず、図８に、大まかな処理の流れを示す。
【００２８】
まず、イベント間遷移判定部１４０は、解析処理を実施する（図８：ステップＳ１）。この解析処理については、図９乃至図１９を用いて説明する。
【００２９】
解析処理において最初に、選別処理部１４１は、プロセスインスタンス選別処理を実施する（図９：ステップＳ１１）。このプロセスインスタンス選別処理については、図１０を用いて説明する。
【００３０】
選別処理部１４１は、例えば事前の設定又はユーザからの指示等に応じて、選別を行うか判断する（図１０：ステップＳ３１）。例えば、メインメモリその他の記憶装置に当該選別についての設定を格納しておき、ステップＳ３１で用いるようにしても良い。選別を行わない場合には、プロセスインスタンス格納部１２０に格納されている全てのプロセスインスタンスのデータを読み出して、選別後プロセスインスタンス格納部１４２に格納する（ステップＳ３３）。そして元の処理に戻る。なお、データの移し替えを行うことなくイベント間遷移抽出部１４３、判定部１４５、修正部１４７にプロセスインスタンス格納部１２０からデータを読み出すように指示してもよい。
【００３１】
一方、選別を行う場合には、選別処理部１４１は、選別条件を選別条件格納部１５０から読み出す（ステップＳ３５）。選別条件は、上でも述べたように、主要フローとして選択されたフロー種のデータの場合もあれば、指定属性及びその属性値の場合もある。場合によっては、例外フローとして選択されたフロー種の場合もある。
【００３２】
選別処理部１４１は、選別条件に合致するプロセスインスタンスをプロセスインスタンス格納部１２０から抽出し、選別後プロセスインスタンス格納部１４２に格納する（ステップＳ３７）。フロー種が指定されていれば、そのフロー種に属するプロセスインスタンスか否かを判断する。属性及びその属性値が指定されていれば、当該属性及びその属性値が含まれるレコードについてのイベントを含むプロセスインスタンスであるか否かを判断する。そして元の処理に戻る。なお、選別後プロセスインスタンス格納部１４２には、プロセスインスタンスの識別子のみを格納し、その他の属性等のデータの移し替えを行うことなくイベント間遷移抽出部１４３、判定部１４５、修正部１４７にプロセスインスタンス格納部１２０から、逐次、その他の属性等のデータを読み出すように指示してもよい。
【００３３】
図９の処理の説明に戻って、次に、イベント間遷移抽出部１４３は、フロー種毎に処理を行うという設定又はユーザからの指示がなされているか判断する（ステップＳ１３）。フロー種毎に処理を行う場合には、ステップＳ１５に移行する。一方、フロー種毎ではなくフロー種に依存せずに処理を行う場合にはステップＳ１９に移行する。フロー種毎にイベント間遷移の性質が異なると考えられる場合には、フロー種毎に以下の処理を実施した方が好ましいこともある。
【００３４】
フロー種毎に処理を行う場合には、イベント間遷移抽出部１４３は、第１イベント間遷移抽出処理を実施する（ステップＳ１５）。この第１イベント間遷移抽出処理については、図１１及び図１２を用いて説明する。
【００３５】
イベント間遷移抽出部１４３は、選別後プロセスインスタンス格納部１４２に格納されているプロセスインスタンスからフロー種を抽出し、フロー種のデータを例えばメインメモリなどの記憶装置に格納する（図１１：ステップＳ４１）。例えば、プロセスインスタンスをフロー種毎に分類する処理を実施すれば、フロー種を抽出できる。このステップでは計数値は計数されないが、図４に示すようなデータが得られる。そして、イベント間遷移抽出部１４３は、抽出されたフロー種のうち未処理のフロー種を特定する（ステップＳ４３）。また、イベント間遷移抽出部１４３は、特定されたフロー種におけるイベント間遷移を特定し、イベント間遷移リスト格納部１４４に格納する（ステップＳ４５）。図４の１行目のフロー種の場合には、「Initial State」及び「Final State」を除き、「契約−伝票作成」「伝票作成−請求」「請求−回収」「回収−回収」「回収−契約満了」といったようにイベント間の遷移を切り出す。
【００３６】
例えば、図１２に示すようなイベント間遷移リストを生成する。図１２の例では、フロー種毎に、特定されたイベント間遷移が登録されるようになっている。
【００３７】
その後、イベント間遷移抽出部１４３は、ステップＳ４１で特定された全てのフロー種について処理したか判断する（ステップＳ４７）。未処理のフロー種が存在する場合には、ステップＳ４３に戻る。
【００３８】
このようにすれば、フロー種毎に、出現するイベント間遷移が特定されるようになる。
【００３９】
図９の処理の説明に戻って、判定部１４５は、イベント間遷移リスト格納部１４４に格納されているイベント間遷移リストを用いて第１判定処理を実施する（ステップＳ１７）。第１判定処理については、図１３及び図１４を用いて説明する。
【００４０】
まず、判定部１４５は、イベント間遷移リストにおける未処理のフロー種を特定する（図１３：ステップＳ５１）。また、判定部１４５は、特定されたフロー種についての未処理のイベント間遷移を特定する（ステップＳ５３）。
【００４１】
そして、判定部１４５は、特定されたイベント間遷移の遷移時間を、処理対象のフロー種に属するプロセスインスタンスについて算出し、イベント間遷移時間格納部１４９に格納する（ステップＳ５５）。選別後プロセスインスタンス格納部１４２には、プロセスインスタンスに含まれるイベントの発生時刻が格納されているので、後のイベントの発生時刻−前のイベントの発生時刻で遷移時間を算出する。該当プロセスインスタンスが複数あれば、それら全てについて計算を行う。
【００４２】
その後、判定部１４５は、遷移時間の平均値及び標準偏差を算出し、イベント間遷移時間格納部１４９に格納する（ステップＳ５７）。ここでは平均値及び標準偏差を算出するようにしているが、平均値の代わりに例えば中央値、最頻値などの代表値を採用したり、標準偏差の代わりに分散などを採用するようにしても良い。
【００４３】
そして、判定部１４５は、算出された平均値及び標準偏差が予め設定されている閾値未満であるかを判断する（ステップＳ５９）。
【００４４】
イベント間遷移の遷移時間の平均値及び標準偏差が共に所定の閾値（例えば１０分）未満となる場合には、イベント間遷移の前又は後のイベント（イベントの発生時刻が、イベントに係る業務の開始時刻なのか終了時刻なのかは一般的には不明であるから、前のイベントなのか後のイベントなのかははっきりしない）に係る業務が、業務システム２００で実行されているプログラムによって実施されているものと推定される。すなわち、プログラムによる実施であるから処理時間が比較的短く、処理時間のばらつきも少ないためである。一方、プログラムと人間の両方で実施されている場合や人間によって実施されている場合には、遷移時間の平均値又は標準偏差が所定の閾値を超えてしまうものと推定される。実際には、プログラムのみで実施されている業務についての処理時間の平均値及び標準偏差を算出して、閾値を適切に設定する。なお、状況によって、平均値などの代表値のみを閾値に用いたり、標準偏差のようなばらつきについての指標のみを閾値に用いたりする場合もある。
【００４５】
このような前提に従って、遷移時間の平均値及び標準偏差が共に閾値未満である場合には、判定部１４５は、処理に係るイベント間遷移のデータとプログラム実行を表すデータとを対応付けて、本フロー種についての判定表に登録する（ステップＳ６１）。そしてステップＳ６５に移行する。一方、遷移時間の平均値又は標準偏差が閾値以上となっている場合には、判定部１４５は、処理に係るイベント間遷移のデータとプログラム以外による実行を表すデータとを対応付けて本フロー種の判定表に登録する（ステップＳ６３）。そしてステップＳ６５に移行する。
【００４６】
判定表格納部１４６に格納される判定表の一例を図１４に示す。図１４の例では、フロー種と、当該フロー種に含まれるイベント間遷移と、プログラム実行フラグとが登録されるようになっている。プログラム実行フラグについては、遷移時間の平均値及び標準偏差が共に閾値未満であればプログラム実行を表す「１」が登録され、遷移時間の平均値又は標準偏差が閾値以上であればプログラム以外による実行を表す「０」が登録されるようになっている。プログラム実行と判定されたイベント間遷移についてのデータのみを登録するようにしてもよい。
【００４７】
なお、判定表には、遷移時間の平均値及び標準偏差が共に閾値未満であると判定されたイベント間遷移だけを登録するようにしても良い。
【００４８】
その後、判定部１４５は、イベント間遷移リストにおける全てのイベント間遷移について処理したか判断し（ステップＳ６５）、未処理のイベント間遷移が存在する場合にはステップＳ５３に戻る。一方、イベント間遷移リストにおける全てのイベント間遷移を処理した場合には、判定部１４５は、イベント間遷移リストにおける全てのフロー種について処理したか判断し（ステップＳ６７）、未処理のフロー種が存在する場合にはステップＳ５１に戻る。イベント間遷移リストにおける全てのフロー種を処理した場合には、元の処理に戻る。
【００４９】
第１判定処理においては、図１４に示したような判定表がフロー種毎に生成されるようになる。
【００５０】
なお、図９の処理に戻ると、さらに元の処理である図８の処理に戻る。
【００５１】
一方、ステップＳ１３（図９）において、フロー種毎に処理するわけではない場合には、イベント間遷移抽出部１４３は、選別後プロセスインスタンス格納部１４２に格納されているデータを用いて、第２イベント間遷移抽出処理を実施する（ステップＳ１９）。第２イベント間遷移抽出処理については、図１５乃至図１７を用いて説明する。
【００５２】
イベント間遷移抽出部１４３は、選別後プロセスインスタンス格納部１４２に格納されているプロセスインスタンスをフロー種毎に分類し、所属プロセスインスタンス数を計数し、メインメモリなどの記憶装置に格納する（図１５：ステップＳ７１）。例えば、図４に示すようなデータを生成する。
【００５３】
そして、イベント間遷移抽出部１４３は、未処理のフロー種を特定し（ステップＳ７３）、特定されたフロー種におけるイベント間遷移を特定し、当該イベント間遷移をイベント間遷移リスト格納部１４４に格納する（ステップＳ７５）。基本的にはステップＳ４５（図１１）の処理と同じである。そして、イベント間遷移抽出部１４３は、ステップＳ７１で特定された全てのフロー種について処理したか判断する（ステップＳ７７）。未処理のフロー種が存在する場合には、ステップＳ７３に戻る。
【００５４】
このような処理を行うと、フロー種は異なるが同一のイベント間遷移が複数回抽出される場合がある。
【００５５】
一方、ステップＳ７１で特定された全てのフロー種について処理した場合には、イベント間遷移抽出部１４３は、イベント間遷移リスト格納部１４４に格納されているイベント間遷移群における同一イベント間遷移をマージして、選別後プロセスインスタンス格納部１４２における全てのプロセスインスタンスにおいて出現するイベント間遷移の種類を網羅するイベント間遷移リストを生成し、イベント間遷移リスト格納部１４４に格納する（ステップＳ７９）。
【００５６】
例えば、図１６に示すようなイベント間遷移リストがイベント間遷移リスト格納部１４４に格納される。図１６の例では、イベント間遷移と、採用フラグとを登録するようになっている。ステップＳ７９では、採用フラグは、登録されるイベント間遷移について全てセットされていない状態にする。
【００５７】
そして、イベント間遷移抽出部１４３は、イベント間遷移リストにおいて未処理のイベント間遷移を１つ特定する（ステップＳ８１）。その後端子Ａを介して図１７の処理に移行する。
【００５８】
図１７の処理の説明に移行して、イベント間遷移抽出部１４３は、特定されたイベント間遷移を含む１又は複数のフロー種を特定し、当該フロー種に含まれるプロセスインスタンスの数の総和を算出して、例えばメインメモリなどの記憶装置に格納する（ステップＳ８３）。そして、イベント間遷移抽出部１４３は、総プロセスインスタンス数が予め設定されている閾値を超えているか判断する（ステップＳ８５）。総プロセスインスタンス数が閾値を超えている場合には、イベント間遷移抽出部１４３は、当該イベント間遷移の採用フラグをセットする（ステップＳ８７）。例えば、図１６の１行目のように「１」をセットする。そしてステップＳ８９に移行する。一方、総プロセスインスタンス数が閾値以下であれば、ステップＳ８９に移行する。
【００５９】
そして、イベント間遷移抽出部１４３は、イベント間遷移リストにおいて全てのイベント間遷移を処理したか判断し（ステップＳ８９）、未処理のイベント間遷移が存在する場合には端子Ｂを介してステップＳ８１に戻る。一方、イベント間遷移リストにおいて全てのイベント間遷移を処理した場合には、元の処理に戻る。
【００６０】
このようにすれば、選別後プロセスインスタンス格納部１４２に格納されているプロセスインスタンスにおいて出現頻度の高いイベント間遷移を抽出することができるようになる。
【００６１】
なお、図１５及び図１７で示した処理は一例であって、フロー種毎にプロセスインスタンスを分類せずにイベント間遷移を抽出し、さらに当該イベント間遷移と各プロセスインスタンスとのマッチングを行いながら該当するプロセスインスタンス数を計数するようにしても良い。
【００６２】
図９の処理フローに戻り、次に、判定部１４５は、イベント間遷移リスト格納部１４４及び選別後プロセスインスタンス格納部１４２に格納されているデータを用いて、第２判定処理を実施する（ステップＳ２１）。第２判定処理については、図１８及び図１９を用いて説明する。
【００６３】
まず、判定部１４５は、イベント間遷移リストにおいて採用フラグがセットされた未処理のイベント間遷移を１つ特定する（図１８：ステップＳ９１）。
【００６４】
そして、判定部１４５は、特定されたイベント間遷移を含み且つ選別後プロセスインスタンス格納部１４２に格納されているプロセスインスタンスを特定し、当該プロセスインスタンスにおけるそのイベント間遷移の遷移時間を計算し、イベント間遷移時間格納部１４９に格納する（ステップＳ９３）。選別後プロセスインスタンス格納部１４２には、プロセスインスタンスに含まれるイベントの発生時刻が格納されているので、後のイベントの発生時刻−前のイベントの発生時刻で遷移時間を算出する。
【００６５】
特定されたイベント間遷移を含むプロセスインスタンスについては、第２イベント間遷移抽出処理におけるプロセスインスタンスの分類結果を用いるようにしても良い。すなわち、特定されたイベント間遷移を含むフロー種を特定して、そのフロー種に属するプロセスインスタンスを特定するようにしても良い。
【００６６】
その後、判定部１４５は、遷移時間の平均値及び標準偏差を算出し、イベント間遷移時間格納部１４９に格納する（ステップＳ９５）。第１判定処理と同じように、ここでは平均値及び標準偏差を算出するようにしているが、平均値の代わりに例えば中央値、最頻値などの代表値を採用したり、標準偏差の代わりに分散などを採用するようにしても良い。
【００６７】
そして、判定部１４５は、算出された平均値及び標準偏差が予め設定されている閾値未満であるかを判断する（ステップＳ９７）。
【００６８】
第１判定処理において述べた前提に従って、遷移時間の平均値及び標準偏差が共に閾値未満である場合には、判定部１４５は、処理に係るイベント間遷移のデータとプログラム実行を表すデータとを対応付けて、判定表に登録する（ステップＳ９９）。そしてステップＳ１０３に移行する。一方、遷移時間の平均値又は標準偏差が閾値以上となっている場合には、判定部１４５は、処理に係るイベント間遷移のデータとプログラム以外による実行を表すデータとを対応付けて判定表に登録する（ステップＳ１０１）。そしてステップＳ１０３に移行する。
【００６９】
判定表格納部１４６に格納される判定表の一例を図１９に示す。図１９の例では、採用フラグがセットされたイベント間遷移と、プログラム実行フラグとが登録されるようになっている。プログラム実行フラグについては、遷移時間の平均値及び標準偏差が共に閾値未満であればプログラム実行を表す「１」が登録され、遷移時間の平均値又は標準偏差が閾値以上であればプログラム以外による実行を表す「０」が登録されるようになっている。プログラム実行と判定されたイベント間遷移についてのデータのみを登録するようにしてもよい。
【００７０】
なお、判定表には、遷移時間の平均値及び標準偏差が共に閾値未満であると判定されたイベント間遷移のみを登録するようにしても良い。
【００７１】
その後、判定部１４５は、イベント間遷移リストにおいて採用フラグがセットされている全てのイベント間遷移について処理したか判断し（ステップＳ１０３）、未処理のイベント間遷移が存在する場合にはステップＳ９１に戻る。一方、イベント間遷移リストにおいて採用フラグがセットされている全てのイベント間遷移を処理した場合には、元の処理に戻る。
【００７２】
第２判定処理においては、図１９に示したような判定表が１つ生成されるようになる。
【００７３】
なお、図９の処理に戻ると、さらに元の処理である図８の処理に戻る。
【００７４】
図８の処理の説明に戻って、修正部１４７は、ルール格納部１４８に格納されているルール及び判定表格納部１４６に格納されている判定表に従って、選別後プロセスインスタンス格納部１４２（場合によってはプロセスインスタンス格納部１２０）に格納されているプロセスインスタンスに対して、修正処理を実施する（ステップＳ３）。この修正処理については、図２０乃至図２４を用いて説明する。
【００７５】
修正部１４７は、選別後プロセスインスタンス格納部１４２において未処理のプロセスインスタンスを１つ特定する（図２０：ステップＳ１１１）。そして、修正部１４７は、特定されたプロセスインスタンス内のイベント間遷移を抽出し、リストを生成する（ステップＳ１１５）。リストについては例えばメインメモリなどの記憶装置に格納する。例えば図２１に示すようなリストが生成される。図２１の例では、イベント間遷移と、修正フラグとが登録されるようになっている。なお、ステップＳ１１５ではまだ修正フラグはセットされないが、初期値として例えばセットされていないことを表す「０」が登録される。
【００７６】
そして、修正部１４７は、リストにおいて未処理のイベント間遷移を１つ特定する（ステップＳ１１７）。そして、修正部１４７は、適用すべき判定表（フロー種別毎の判定表の場合には、ステップＳ１１１で特定されたプロセスインスタンスのフロー種についての判定表（図１４）又は全体についての図１９）には、特定されたイベント間遷移に対応付けてプログラム実行を表すデータ（例えばプログラム実行フラグ）が登録されているか確認する（ステップＳ１１９）。特定されたイベント間遷移に対応付けてプログラム実行を表すデータが登録されていない場合にはステップＳ１２３に移行する。
【００７７】
一方、特定されたイベント間遷移に対応付けてプログラム実行を表すデータが登録されている場合には、修正部１４７は、ステップＳ１１５で生成したリストにおいて、処理対象のイベント間遷移に対応付けて修正フラグをセットする（ステップＳ１２１）。そしてステップＳ１２３に移行する。修正フラグは、以下で述べるルールに従って、１又は複数の連続するイベント間遷移を修正するために用いる。
【００７８】
その後、修正部１４７は、リスト内の全てのイベント間遷移を処理したか判断し（ステップＳ１２３）、未処理のイベント間遷移が存在する場合にはステップＳ１１７に戻る。一方、リスト内の全てのイベント間遷移を処理した場合には端子Ｃを介して図２２の処理に移行する。
【００７９】
なお、フロー種毎に判定表を生成した場合には、ステップＳ１１１で特定されたプロセスインスタンスのフロー種に応じた判定表が特定できれば、判定表のプログラム実行フラグをそのまま修正フラグとして用いることができる。
【００８０】
図２２の処理の説明に移行して、修正部１４７は、リストにおいて、１つの修正フラグが存在している部分プロセス及び修正フラグが連続する部分プロセスを特定する（ステップＳ１２５）。１つのプロセスインスタンスにおいて複数箇所部分プロセスが抽出される場合もあれば、１つも部分プロセスが抽出されない場合もある。
【００８１】
そして、修正部１４７は、ステップＳ１２５で部分プロセスが１つでも特定されたか判断し（ステップＳ１２６）、１つも部分プロセスが特定されない場合には、特定されたプロセスインスタンスをそのまま修正後プロセスインスタンス格納部１６０に登録する（ステップＳ１２８）。そしてステップＳ１３１に移行する。
【００８２】
一方、１以上の部分プロセスが特定された場合には、修正部１４７は、未処理の部分プロセスを１つ特定し（ステップＳ１２７）、ルール格納部１４８に格納されているルールに従って、特定されたプロセスインスタンスにおけるイベントを修正し、修正後のプロセスインスタンスのデータを、修正後プロセスインスタンス格納部１６０に格納する（ステップＳ１２９）。
【００８３】
ルール格納部１４８に格納されているルールについて図２３及び図２４を用いて説明する。例えば図２３の最上段に修正前のプロセスインスタンスの一例を示す。図２３では、１つのイベント間遷移、例えば「生産−手配」が、修正フラグがセットされたイベント間遷移であるものとする。
【００８４】
イベント間遷移の前又は後のイベントに係る業務をプログラムが実行している場合、そのようなイベント間遷移は、人間が実際に遂行する業務についてのワークフロー図には現れてこない可能性が高い。すなわち、業務システムで記録されるイベントの数は、実際に人間が遂行する業務のイベントの数よりも多くなっている場合が多く、このことがワークフロー図との対応付けを難しくしている。
【００８５】
従って、本実施の形態では、このようなイベント間遷移を削除するものとする。但し、イベント間遷移を削除するとしても、どのようにイベント間遷移を削除してプロセスインスタンスを再構築するかについては、図２３（ａ）乃至（ｄ）に示すような４つのバリエーションが存在する。すなわち、図２３（ａ）に示すように、削除するイベント間遷移の前後のイベントを削除し、削除するイベント間遷移の前後のイベントの名称を合成した名称を有するイベントを新設する。そして、さらに前のイベントと新設したイベントとを接続すると共に、新設したイベントとさらに後ろのイベントとを接続する。また、図２３（ｂ）に示すように、削除するイベント間遷移の後のイベントを削除し、さらに後ろのイベントと削除するイベント間遷移の前のイベントとを接続する。さらに、図２３（ｃ）に示すように、削除するイベント間遷移の前のイベントを削除し、さらに前のイベントと削除するイベント間遷移の後のイベントとを接続する。さらに、図２３（ｄ）に示すように、予めイベント間遷移に対応付けて新規のイベントを例えばルール格納部１４８に対応表等として用意しておき又はユーザからの指示を受け付け、イベント間遷移の前後のイベントを削除すると共に例えば指定の「製造」といったイベントを新設する。そして、削除するイベント間遷移のさらに前のイベントと新設イベントとを接続すると共に新設イベントとさらに後ろのイベントとを接続する。
【００８６】
ルール格納部１４８には、例えば上で述べた４つのルールのうちいずれを採用するかが登録されている。（ｄ）の手法を採用する場合には、ルール格納部１４８には、可能性のあるイベント間遷移に対応付けて新設すべきイベントのイベント名を格納しておく。
【００８７】
また、複数のイベント間遷移に対して修正フラグがセットされた場合についてのルールもルール格納部１４８に用意しておく。例えば、図２４の最上段に修正前のプロセスインスタンスの一例を示す。図２４では、複数のイベント間遷移、例えば「生産−手配」「手配−配送」が、修正フラグがセットされたイベント間遷移であるものとする。
【００８８】
このように連続する複数のイベント間遷移について修正フラグがセットされる場合には、図２３と同じような４つのバリエーションが存在する。すなわち、図２４（ａ）に示すように、削除する複数のイベント間遷移に係るイベントを削除し、削除する複数のイベント間遷移に係るイベントのイベント名を合成した名称を有するイベントを新設する。そして、さらに前のイベントと新設したイベントとを接続すると共に、新設したイベントとさらに後のイベントとを接続する。また、図２４（ｂ）に示すように、削除する複数のイベント間遷移に係る最先のイベントを除き当該複数のイベント間遷移に係る他のイベントを削除し、さらに後ろのイベントと削除するイベント間遷移の最先のイベントとを接続する。さらに、図２４（ｃ）に示すように、削除する複数のイベント間遷移に係る最後のイベントのみを残し当該複数のイベント間遷移に係る他のイベントを削除し、さらに前のイベントと削除する複数のイベント間遷移の最後のイベントとを接続する。さらに、図２４（ｄ）に示すように、連続するイベント間遷移に対応付けて新規のイベントを予め用意しておき又はユーザからの指示を受け付け、削除する複数のイベント間遷移に係るイベントを削除すると共に例えば指定の「納品」といったイベントを新設する。そして、削除する複数のイベント間遷移のさらに前のイベントと新設イベントとを接続すると共に新設イベントとさらに後ろのイベントとを接続する。
【００８９】
このようなルールに従ってプロセスインスタンスの修正を行う。
【００９０】
そして、修正部１４７は、ステップＳ１２５で特定された全ての部分プロセスを処理したか判断する（ステップＳ１３１）。未処理の部分プロセスが存在する場合にはステップＳ１２６に戻る。一方、ステップＳ１２５で特定された全ての部分プロセスについて処理した場合には、修正部１４７は、選別後プロセスインスタンス格納部１４２における全てのプロセスインスタンスを処理したか判断する（ステップＳ１３３）。未処理のプロセスインスタンスが存在する場合には、端子Ｄを介して図２０のステップＳ１１１に戻る。一方、選別後プロセスインスタンス格納部１４２における全てのプロセスインスタンスについて処理した場合には、元の処理に戻る。
【００９１】
このような処理を行えば、修正フラグがセットされているイベント間遷移を含むプロセスインスタンスについて修正が行われるようになる。
【００９２】
なお、同一フロー種に属するプロセスインスタンスについては同一の修正が行われるので、プロセスインスタンスをフロー種毎に分類した上で自動的に同一フロー種に属するプロセスインスタンスについては同様の修正を行うようにすることも可能である。
【００９３】
図８の処理の説明に戻って、対応付け処理部１７０は、ワークフロー図格納部１９０に格納されているワークフロー図と、修正後プロセスインスタンス格納部１６０に格納されているプロセスインスタンスから得られるフロー図との対応付け処理を実施し、対応付け処理の結果を出力部１８０に出力し、出力部１８０は対応付け処理の結果を表示装置などに出力する（ステップＳ５）。
【００９４】
例えば、対応付け処理部１７０は、修正後プロセスインスタンス格納部１６０に格納されているプロセスインスタンス（場合によっては主要フローを特定して当該主要フローのプロセスインスタンス）を重ね合わせてフロー図を生成する。任意のプロセスインスタンスからフロー図を生成するようにしても良い。また、フロー図を生成する際には表示処理部１３０と連携して表示処理部１３０に生成させるようにしても良い。その後、ワークフロー図とフロー図との対応付け処理を、半自動的に又はユーザからの指示に従って行う。
【００９５】
半自動的に対応付けを行う手法については、例えば以下のような手法が存在している。
【００９６】
各プロセスインスタンスについて、当該プロセスインスタンス内における各イベントの出現位置を当該プロセスインスタンス内のイベントの出現回数に基づき決定し、各イベントに対応付けて出現位置を記憶装置に格納する。この記憶装置から、イベント種別毎にイベントのデータを抽出し、当該イベント種別に属する各イベントの出現位置が、予め定められた複数の位置区間のいずれに属するか判断すると共に、イベント種別毎に当該イベント種別の最頻出現位置区間を特定し、当該最頻出現位置区間と当該イベント種別とを対応付けて記憶装置に格納する。その後、ワークフロー図に含まれる各ノードと上記複数の位置区間と同一数の区分けがなされている複数の出現位置区間のうち当該ノードの出現位置区間とを対応付けて格納している第２の記憶装置に格納されている、ワークフロー図に含まれる各ノードと当該ノードの出現位置区間とを関連付けて表示すると共に、記憶装置に格納されている、イベントの種類と当該イベントの種類の最頻出現位置区間とを関連付けて表示する。さらに、この後、区間毎に文字列マッチングを行ったりして、対応付けを行う。また、ユーザが、このような出現位置の関係及びイベントの意味などから、さらなる対応付けや対応付けの修正を行う。このような技術については、特願２００９−０５６１９０号に詳細に述べられている。
【００９７】
例えば、図２５に示すようなワークフロー図がワークフロー図格納部１９０に格納されており、修正後プロセスインスタンス格納部１６０に格納されているプロセスインスタンスの重ね合わせで図２６に示すようなフロー図が得られたものとする。そして、修正後プロセスインスタンス格納部１６０に格納されているプロセスインスタンスを用いて上で述べたようなイベント種別毎に最頻出現位置などを抽出すると、図２７に示すような表示がなされる。図２７の例では、序盤、中盤、終盤という３つの区間に分け、それぞれの区間に該当する、ワークフロー図のノードとフロー図のイベントを対応付けて示している。なお、文字列マッチングも行っているため、例えばノード「基盤製造」にはイベント「部品製造１」「部品製造２」が対応付けられている。このようなテーブル表示ではなく、図２８に示すように、ワークフロー図及びフロー図を左右に並べた上で、対応関係が認められたノードとイベントを点線で結ぶ等の表示形態を採用するようにしても良い。さらに、このような表示に基づいて、文字列マッチングでは対応付けることができないノードとイベントとの対応付けをユーザが指示するようにしても良い。対応付け修正をユーザが行っても良い。当然ながら、対応付け処理についてはこれに限定されず他の手法を用いても良い。
【００９８】
上で述べたように、フロー図の元となるプロセスインスタンスについては、プログラム実行によると考えられるイベント間遷移については削除されてその分イベント数が削減されている。従って、フロー図はほぼ人間又は人間とプログラムとで実施されている業務についてのイベントに絞り込まれているので、ワークフロー図との対応付けがし易くなっている。
【００９９】
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。上でも述べたように、プロセスインスタンスの選別や、イベント間遷移の抽出、判定処理には様々な処理方法が可能であるため、上で述べたアルゴリズムに限定されるものではない。
【０１００】
さらに、上で述べた機能ブロック図は一例であって、実際のプログラムモジュール構成と一致しない場合もある。処理フローについても結果が変化しない限り、処理順番を入れ替えたり、並列実行することも可能である。さらに、上で述べたデータ保持方法は一例に過ぎず、他のフォーマットでデータを保持するようにしても良い。
【０１０１】
また、出力データについては、フロー図とワークフロー図の対応付けだけではなく、例えばイベント間遷移毎に、算出した遷移時間をヒストグラムなどの形で出力した上で、ユーザが当該イベント間遷移を削除するか否かの入力を行うようにしても良い。その他、処理途中で得られたデータについても、ユーザに提示するようにしても良い。
【０１０２】
なお、上で述べた業務プロセス分析装置１００は、コンピュータ装置であって、図２９に示すように、メモリ２５０１とＣＰＵ２５０３とハードディスク・ドライブ（ＨＤＤ）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０１０３】
以上述べた本実施の形態をまとめると、以下のようになる。
【０１０４】
本実施の形態に係るプロセスインスタンス処理方法は、（Ａ）特定の案件について複数のイベントが時系列に並べられた複数のプロセスインスタンスのデータを格納するプロセスインスタンス格納部に格納されているプロセスインスタンスに含まれるイベントの間の遷移であるイベント間遷移から抽出条件に従って該当するイベント間遷移を抽出し、イベント間遷移リスト格納部に格納する第１ステップと、（Ｂ）プロセスインスタンス格納部に格納されている複数のプロセスインスタンスのデータに含まれる複数のイベントの時刻データを用いて、イベント間遷移リスト格納部に格納されている各イベント間遷移について、プロセスインスタンス格納部に格納されている複数のプロセスインスタンスのうち当該イベント間遷移を含むプロセスインスタンスにおける遷移時間を算出し、データ格納部に格納する第２ステップと、（Ｃ）イベント間遷移リスト格納部に格納されている各イベント間遷移について、データ格納部に格納されている遷移時間の統計量を算出し、当該統計量がイベント間遷移に係る業務がコンピュータにより実行されたことを表す判定条件を満たしているか判定し、当該判定条件を満たしているイベント間遷移についてのデータをコンピュータ実行イベント間遷移リスト格納部に格納する第３ステップと、（Ｄ）コンピュータ実行イベント間遷移リスト格納部に格納されているイベント間遷移を含み且つプロセスインスタンス格納部に格納されているプロセスインスタンスについて、イベント数を減少させる所定のルールに従った修正を行い、修正後のプロセスインスタンスのデータを、修正後プロセスインスタンス格納部に格納する第４ステップとを含む。
【０１０５】
このようにすれば、コンピュータにより実行されたと推定される業務に係るイベントを削除するようにプロセスインスタンスが修正されるので、プロセスインスタンスに含まれるイベントは、人間又は人間とプログラムにより実行された業務に係るイベントに絞り込まれる。従って、人間が実際に遂行する業務についてのワークフロー図との対応付けが容易になることが期待される。
【０１０６】
また、上で述べた方法は、出現するイベントの種類及び当該イベントの出現順番が同一であるプロセスインスタンスのグループであるフロー種別のうち主要フローとして外部から指定されたフロー種別に属するという条件又はプロセスインスタンスに含まれる複数のイベントのいずれかの属性の属性値が指定属性値に合致するという条件を満たすプロセスインスタンスを第６データ格納部から読み出して、プロセスインスタンス格納部に格納するステップをさらに含むようにしても良い。このようにプロセスインスタンス自体を選別するようにしても良い。
【０１０７】
さらに、上で述べた本方法は、プロセスインスタンス格納部に格納されている複数のプロセスインスタンスを、出現するイベントの種類及び当該イベントの出現順番が同一であるプロセスインスタンスのグループであるフロー種別毎に分類するステップをさらに含むようにしてもよい。この場合、第１、第２及び第４ステップを、フロー種別毎に実施するようにしてもよい。フロー種毎にイベント間遷移の意味合いが異なる場合があり、フロー種毎に処理する方が好ましい場合もあるためである。
【０１０８】
また、上で述べた抽出条件が、全てのイベント間遷移であるという条件と、プロセスインスタンス格納部に格納されており且つ当該イベント間遷移を含むプロセスインスタンスの数が所定の閾値以上であるという条件とのうちいずれかを含むようにしてもよい。イベント間遷移が出現するプロセスインスタンスの数が少ないと、第３ステップにおける判定などが統計的に正しくない場合も生ずるためである。
【０１０９】
さらに、上で述べた判定条件が、上記統計量がばらつきを表す統計量であれば第１の閾値以下であるという第１の条件と、上記統計量が統計的な代表値であれば第２の閾値以下であるという第２の条件である場合もある。また、このような場合、第１の条件と第２の条件とのうち少なくともいずれかを用いるようにしてもよい。一般的に、プログラム実行される場合には、遷移時間は短く且つそのばらつきは小さくなりやすいため、このような条件を採用するのが適切な場合が多くなる。
【０１１０】
さらに、上で述べた所定のルールが、プロセスインスタンスにおいてコンピュータ実行イベント間遷移リスト格納部に格納されているイベント間遷移の前後のイベントのうち前のイベント又は後のイベントを削除する方法と、プロセスインスタンスにおいてコンピュータ実行イベント間遷移リスト格納部に格納されているイベント間遷移の前後のイベントを統合する方法と、プロセスインスタンスにおいてコンピュータ実行イベント間遷移リスト格納部に格納されているイベント間遷移の前後のイベントを当該イベント間遷移に対応して予め登録されている又はユーザから指示されたイベントに置換する方法とのいずれかである場合もある。イベントの発生時刻が処理開始時刻であるのか処理終了時刻であるのかは解析対象の業務システムによるので、ユーザなどが適切な手法を選択する。
【０１１１】
また、上で述べた所定のルールが、コンピュータ実行イベント間遷移リスト格納部に格納されているイベント間遷移である該当イベント間遷移が連続して出現するプロセスインスタンスの場合、当該プロセスインスタンスにおいて連続する該当イベント間遷移の最前のイベント又は最後のイベントのみを残し他を削除する方法と、当該プロセスインスタンスにおいて連続する該当イベント間遷移に係るイベントを統合する方法と、当該プロセスインスタンスにおいて連続する該当イベント間遷移に係るイベントを当該連続する該当イベント間遷移に対応して予め登録されている又はユーザから指示されたイベントに置換する方法とのいずれかである場合もある。判定条件を満たすイベント間遷移が連続する場合には、このようなルールのいずれかを採用することによって、適切にプロセスインスタンスを修正することができる。
【０１１２】
なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭなどの光ディスク、光磁気ディスク、半導体メモリ（例えばＲＯＭ）、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、ＲＡＭ等の記憶装置に一時保管される。
【０１１３】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１１４】
（付記１）
特定の案件について複数のイベントが時系列に並べられた複数のプロセスインスタンスのデータを格納するプロセスインスタンス格納部に格納されているプロセスインスタンスに含まれるイベントの間の遷移であるイベント間遷移から抽出条件に従って該当するイベント間遷移を抽出し、イベント間遷移リスト格納部に格納する第１ステップと、
前記プロセスインスタンス格納部に格納されている前記複数のプロセスインスタンスのデータに含まれる前記複数のイベントの時刻データを用いて、前記イベント間遷移リスト格納部に格納されている各イベント間遷移について、前記プロセスインスタンス格納部に格納されている前記複数のプロセスインスタンスのうち当該イベント間遷移を含むプロセスインスタンスにおける遷移時間を算出し、データ格納部に格納する第２ステップと、
前記イベント間遷移リスト格納部に格納されている各イベント間遷移について、前記データ格納部に格納されている前記遷移時間の統計量を算出し、当該統計量が前記イベント間遷移に係る業務がコンピュータにより実行されたことを表す判定条件を満たしているか判定し、当該判定条件を満たしているイベント間遷移についてのデータをコンピュータ実行イベント間遷移リスト格納部に格納する第３ステップと、
前記コンピュータ実行イベント間遷移リスト格納部に格納されているイベント間遷移を含み且つ前記プロセスインスタンス格納部に格納されているプロセスインスタンスについて、イベント数を減少させる所定のルールに従った修正を行い、修正後のプロセスインスタンスのデータを、修正後プロセスインスタンス格納部に格納する第４ステップと、
を含み、コンピュータにより実行されるプロセスインスタンス処理方法。
【０１１５】
（付記２）
出現するイベントの種類及び当該イベントの出現順番が同一であるプロセスインスタンスのグループであるフロー種別のうち主要フローとして外部から指定されたフロー種別に属するという条件又は前記プロセスインスタンスに含まれる前記複数のイベントのいずれかの属性の属性値が指定属性値に合致するという条件を満たすプロセスインスタンスを第６データ格納部から読み出して、前記プロセスインスタンス格納部に格納するステップ
をさらに含む付記１記載のプロセスインスタンス処理方法。
【０１１６】
（付記３）
前記プロセスインスタンス格納部に格納されている前記複数のプロセスインスタンスを、出現するイベントの種類及び当該イベントの出現順番が同一であるプロセスインスタンスのグループであるフロー種別毎に分類するステップ
をさらに含み、
前記第１、第２及び第４ステップを、フロー種別毎に実施する
付記１又は２記載のプロセスインスタンス処理方法。
【０１１７】
（付記４）
前記抽出条件が、
全てのイベント間遷移であるという条件と、前記プロセスインスタンス格納部に格納されており且つ当該イベント間遷移を含むプロセスインスタンスの数が所定の閾値以上であるという条件とのうちいずれかを含む
付記１乃至３のいずれか１つ記載のプロセスインスタンス処理方法。
【０１１８】
（付記５）
前記判定条件が、
前記統計量がばらつきを表す統計量であれば第１の閾値以下であるという第１の条件と、
前記統計量が統計的な代表値であれば第２の閾値以下であるという第２の条件であり、
前記第１の条件と前記第２の条件とのうち少なくともいずれかを用いる
付記１乃至４のいずれか１つ記載のプロセスインスタンス処理方法。
【０１１９】
（付記６）
前記所定のルールが、
前記プロセスインスタンスにおいて前記コンピュータ実行イベント間遷移リスト格納部に格納されているイベント間遷移の前後のイベントのうち前のイベント又は後のイベントを削除する方法と、前記プロセスインスタンスにおいて前記コンピュータ実行イベント間遷移リスト格納部に格納されているイベント間遷移の前後のイベントを統合する方法と、前記プロセスインスタンスにおいて前記コンピュータ実行イベント間遷移リスト格納部に格納されているイベント間遷移の前後のイベントを当該イベント間遷移に対応して予め登録されている又はユーザから指示されたイベントに置換する方法とのいずれかである
付記１乃至５のいずれか１つ記載のプロセスインスタンス処理方法。
【０１２０】
（付記７）
前記所定のルールが、
前記コンピュータ実行イベント間遷移リスト格納部に格納されているイベント間遷移である該当イベント間遷移が連続して出現するプロセスインスタンスの場合、当該プロセスインスタンスにおいて連続する該当イベント間遷移の最前のイベント又は最後のイベントのみを残し他を削除する方法と、当該プロセスインスタンスにおいて連続する該当イベント間遷移に係るイベントを統合する方法と、当該プロセスインスタンスにおいて連続する該当イベント間遷移に係るイベントを当該連続する該当イベント間遷移に対応して予め登録されている又はユーザから指示されたイベントに置換する方法とのいずれかである
付記１乃至６のいずれか１つ記載のプロセスインスタンス処理方法。
【０１２１】
（付記８）
特定の案件について複数のイベントが時系列に並べられた複数のプロセスインスタンスのデータを格納するプロセスインスタンス格納部に格納されているプロセスインスタンスに含まれるイベントの間の遷移であるイベント間遷移から抽出条件に従って該当するイベント間遷移を抽出し、イベント間遷移リスト格納部に格納するイベント間遷移抽出部と、
前記プロセスインスタンス格納部に格納されている前記複数のプロセスインスタンスのデータに含まれる前記複数のイベントの時刻データを用いて、前記イベント間遷移リスト格納部に格納されている各イベント間遷移について、前記プロセスインスタンス格納部に格納されている前記複数のプロセスインスタンスのうち当該イベント間遷移を含むプロセスインスタンスにおける遷移時間を算出し、データ格納部に格納し、前記イベント間遷移リスト格納部に格納されている各イベント間遷移について、前記データ格納部に格納されている前記遷移時間の統計量を算出し、当該統計量が前記イベント間遷移に係る業務がコンピュータにより実行されたことを表す判定条件を満たしているか判定し、当該判定条件を満たしているイベント間遷移についてのデータをコンピュータ実行イベント間遷移リスト格納部に格納する判定部と、
前記コンピュータ実行イベント間遷移リスト格納部に格納されているイベント間遷移を含み且つ前記プロセスインスタンス格納部に格納されているプロセスインスタンスについて、イベント数を減少させる所定のルールに従った修正を行い、修正後のプロセスインスタンスのデータを、修正後プロセスインスタンス格納部に格納する修正部と、
を有するプロセスインスタンス処理装置。
【０１２２】
（付記９）
特定の案件について複数のイベントが時系列に並べられた複数のプロセスインスタンスのデータを格納するプロセスインスタンス格納部に格納されているプロセスインスタンスに含まれるイベントの間の遷移であるイベント間遷移から抽出条件に従って該当するイベント間遷移を抽出し、イベント間遷移リスト格納部に格納する第１ステップと、
前記プロセスインスタンス格納部に格納されている前記複数のプロセスインスタンスのデータに含まれる前記複数のイベントの時刻データを用いて、前記イベント間遷移リスト格納部に格納されている各イベント間遷移について、前記プロセスインスタンス格納部に格納されている前記複数のプロセスインスタンスのうち当該イベント間遷移を含むプロセスインスタンスにおける遷移時間を算出し、データ格納部に格納する第２ステップと、
前記イベント間遷移リスト格納部に格納されている各イベント間遷移について、前記データ格納部に格納されている前記遷移時間の統計量を算出し、当該統計量が前記イベント間遷移に係る業務がコンピュータにより実行されたことを表す判定条件を満たしているか判定し、当該判定条件を満たしているイベント間遷移についてのデータをコンピュータ実行イベント間遷移リスト格納部に格納する第３ステップと、
前記コンピュータ実行イベント間遷移リスト格納部に格納されているイベント間遷移を含み且つ前記プロセスインスタンス格納部に格納されているプロセスインスタンスについて、イベント数を減少させる所定のルールに従った修正を行い、修正後のプロセスインスタンスのデータを、修正後プロセスインスタンス格納部に格納する第４ステップと、
を、コンピュータに実行させるためのプロセスインスタンス処理プログラム。
【符号の説明】
【０１２３】
２００  業務システム
１００  業務プロセス分析装置
１１０  プロセスインスタンス生成部
１２０  プロセスインスタンス格納部
１３０  表示処理部    １４０  イベント間遷移判定部
１５０  選別条件格納部    
１６０  修正後プロセスインスタンス格納部
１７０  対応付け処理部    １８０  出力部
１９０  ワークフロー図格納部
１４１  選別処理部    
１４２  選別後プロセスインスタンス格納部
１４３  イベント間遷移抽出部
１４４  イベント間遷移リスト格納部    １４５  判定部    
１４６  判定表格納部    １４７  修正部
１４８  ルール格納部    １４９  イベント間遷移時間格納部
【図１】
0005565202.tif 000002
【図２】
0005565202.tif 000003
【図３】
0005565202.tif 000004
【図４】
0005565202.tif 000005
【図５】
0005565202.tif 000006
【図６】
0005565202.tif 000007
【図７】
0005565202.tif 000008
【図８】
0005565202.tif 000009
【図９】
0005565202.tif 000010
【図１０】
0005565202.tif 000011
【図１１】
0005565202.tif 000012
【図１２】
0005565202.tif 000013
【図１３】
0005565202.tif 000014
【図１４】
0005565202.tif 000015
【図１５】
0005565202.tif 000016
【図１６】
0005565202.tif 000017
【図１７】
0005565202.tif 000018
【図１８】
0005565202.tif 000019
【図１９】
0005565202.tif 000020
【図２０】
0005565202.tif 000021
【図２１】
0005565202.tif 000022
【図２２】
0005565202.tif 000023
【図２３】
0005565202.tif 000024
【図２４】
0005565202.tif 000025
【図２５】
0005565202.tif 000026
【図２６】
0005565202.tif 000027
【図２７】
0005565202.tif 000028
【図２８】
0005565202.tif 000029
【図２９】
0005565202.tif 000030