以下に本実施形態について図面を用いて詳細に説明する。なお、本実施形態では、企業内で業務システムを用いながら行う、顧客へ販売する商品やサービスの決裁依頼業務を一例として説明する。しかし、企業における業務システムに限らず、学校、病院等の社会一般において、様々な端末操作者によって操作されるシステムに適用可能であり、端末等の操作が伴うあらゆる種類の業務やサービスに適用が可能である。
図1は、本実施形態の業務プロセス分析装置100の構成例を示す図である。図1に示す業務プロセス分析装置100は、業務システムの操作ログを用いて、業務システムを用いてユーザが実施した操作の流れを、操作間の分岐関係と合流関係を含めて、フロー形式で提示することを可能とするパソコンやタブレット端末などの情報処理端末である。操作間の分岐関係とは、分析対象業務のプロセス(例えば、分析対象業務の主要なプロセス(正常終了時によく実施される流れ))において、いずれかの操作を実行すればよい操作間の関係である。また、操作間の合流関係とは、上記分析対象業務のプロセスにおいて、いずれの操作が順不同で実行される操作間の関係である。
上述のごとき業務プロセス分析装置100は、装置自体の統括制御を行うとともに各種判定、演算及び制御処理を行うCPU(Central Processing Unit)などの演算部101、SSD(Solid State Drive)やハードディスクドライブなど適宜な不揮発性記憶素子で構成される記憶部102、RAM(Random Access Memory)など揮発性記憶素子で構成されるメモリ103、記憶部102に保持されるプログラムをメモリ103に読み出すなどして実行し、ユーザからキーの入力や音声入力を受け付ける入力部104、処理データの表示を行うディスプレイなどの出力部105を備える。
また、記憶部102内には、演算部101が業務プロセス分析装置100として必要な機能(ログ整形部110、分岐関係抽出部111、業務フロー生成部112)を実装するためのプログラムの他、各種テーブル(操作ログテーブル121、開始・終了操作テーブル122、各操作の実施案件率テーブル123、必須操作の実施順序テーブル124、オプション操作の実施順序テーブル125、サブ操作ログテーブル126、操作間の共起関係テーブル127、合流関係テーブル128、同一共起関係テーブル129、非共起関係テーブル130)が少なくとも記憶されている。テーブル121〜130の詳細については後述する。
なお、記憶部102に記憶されるプログラムは、業務プロセス分析装置100に事前に格納されていてもよいし、例えばサーバマシンのような別の情報処理端末に格納されており、分析者がダウンロードして利用する形態としてもよい。また、業務プロセス分析装置100がサーバマシンであり、分析者がパソコンやタブレット端末などの別の情報処理端末から、例えばリモート接続機能を用いてサーバマシンに接続し、業務プロセス分析の実行指示や分析結果の閲覧を実施する利用形態としてもよい。また、上記プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク、CD−R、DVD等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
次に、本実施形態の業務プロセス分析装置100が用いるテーブルのデータ構成例について説明する。
図2は、本実施形態の操作ログテーブル121のデータ構成例を示す図である。本実施形態における操作ログテーブル121は、業務システムが提供する各機能や画面を用いて各ユーザが実施した操作の履歴を格納したテーブルである。具体的には、各操作を一意に識別する操作IDと、その操作の実施日時と、その操作を実施したユーザのユーザIDと、その操作により特定される業務の案件IDとが対応付けて格納されている。図2では、例えば、ユーザIDが「100」で識別されるユーザが、2015年9月1日の午前9時00分00秒に、案件IDが「1」で識別される案件の新規申請画面を操作したことを示している。また、その後、2015年9月1日の午前9時20分00秒に、そのユーザは、同じ案件IDの商品選択操作を実施したことを示している。通常は、業務プロセス分析装置100は、このようなデータを一括して業務システムから取得し、装置内に格納する。なお、案件IDとユーザIDについては、分析対象業務を特定可能であれば、どちらか一方のみが格納されていればよい。本実施形態では、案件IDを用いて分析対象業務を特定するが、例えば、分析対象業務がユーザ1名で完結する場合、案件IDの代わりにユーザIDを用いて分析対象業務を特定してもよい。
また、図3は、本実施形態の開始・終了操作テーブル122のデータ構成例を示す図である。本実施形態における開始・終了操作テーブル122は、分析対象業務の案件が正常に開始または終了されたか否かの判定に用いるテーブルである。具体的には、業務の開始時または終了時に実施される操作IDと、その操作IDが開始操作か終了操作かを示す開始/終了区分と、その開始操作または終了操作が実施された場合に業務が正常に開始または終了されたか否かを示す開始/終了状態とが対応付けて格納されている。図3では、例えば、新規申請画面に対する操作が実施され、その業務が正常に開始されたことを示している。また、追加申請画面に対する操作が実施されたものの、その業務が正常に開始されていない(異常である)ことを示している。なお、分析対象業務は複数フェーズで構成される場合は、各フェーズの開始操作と終了操作を開始・終了操作テーブル122に登録してもよい。例えば、分析対象業務が決裁承認業務であり、決裁承認依頼フェーズと決裁フェーズの2フェーズ構成である場合、決裁承認依頼フェーズの終了操作として、承認依頼(終了状態=正常)と引戻し(終了状態=異常)を登録し、決裁フェーズの終了操作として、承認(終了状態=正常)と差戻し(終了状態=異常)を登録してもよい。
また、図4は、本実施形態の各操作の実施案件率テーブル123のデータ構成例を示す図である。本実施形態における各操作の実施案件率テーブル123は、分析対象業務にて基本的に必ず実施される必須操作と、それ以外のオプション操作を判定するために用いるテーブルである。具体的には、操作IDと、その操作IDの実施案件数と、その操作IDの実施案件率と、その操作が必須操作かオプション操作かを示す必須/オプション区分とが対応付けて格納される。図4では、例えば、新規申請画面に対する操作を実施する案件数は107であり、その実施案件率は1.00、すなわち107のすべての案件で実施される操作であることを示している。また、当該操作は、実施案件率がある閾値以上であるため必須操作であることを示している。なお、実施案件率とは、ある操作を実施した案件数を全案件数で除算した値である。また、必須操作かオプション操作かの判定は、実施案件率に閾値を設定して、ある操作の実施案件率が閾値以上であれば、その操作は必須操作とみなす。閾値は、プログラムに事前に設定しておいてもよいし、分析者が分析時に入力部104から設定してもよい。
また、図5は、本実施形態の必須操作の実施順序テーブル124のデータ構成例を示す図である。本実施形態における必須操作の実施順序テーブル124は、必須操作の実施順序、および、必須操作間の合流関係の有無を分析するために用いるテーブルである。具体的には、必須操作(縦軸)と、各必須操作が分析対象業務の開始から終了までの何番目に実施されたかを示す実施順序(横軸)とのマトリクスであり、各必須操作の各実施順序における実施案件率が格納される。図5では、例えば、新規申請画面に対する操作は実施順序「1」で実施案件率が「1.00」であるため、当該操作がすべての案件で最初に実施されていることを示している。
また、図6は、本実施形態のオプション操作の実施順序テーブル125のデータ構成例を示す図である。本実施形態におけるオプション操作の実施順序テーブル125は、どの必須操作の前または後に実施されているかという切り口で、オプション操作の実施順序を分析するために用いるテーブルである。具体的には、オプション操作(縦軸)と、各オプション操作がどの必須操作の前または後に実施されたかを示す実施順序(横軸)とのマトリクスであり、各オプション操作の各実施順序における実施案件率が格納される。図6では、例えば、商品選択に対する操作と新規申請画面に対する操作との間の商品選択に対する操作の実施案件率は「0.87」である、すなわち商品選択に対する操作が新規申請画面に対する操作の後に実施される割合が0.87であることを示している。
また、図7は、本実施形態のサブ操作ログテーブル126のデータ構成例を示す図である。本実施形態におけるサブ操作ログテーブル126は、オプション操作間の分岐関係や合流関係を分析するために必要な操作ログを、操作ログテーブル121から切り出して、格納したテーブルである。具体的なデータ構成例は、操作ログテーブル121と同様であるため、説明は省略する。
また、図8は、本実施形態の操作間の共起関係テーブル127のデータ構成例を示す図である。本実施形態における操作間の共起関係テーブル127は、案件間における共起の有無をもとに、オプション操作間の分岐関係の有無を分析するために用いるテーブルである。具体的には、オプション操作(縦軸)とオプション操作(横軸)のマトリクスであり、各操作(縦軸)について、その他操作(横軸)との案件間における共起回数が格納される。図8では、例えば、商品選択に対する操作と数量入力に対する操作とが50回共起し、商品選択に対する操作と納期入力に対する操作とが10回共起していることを示している。
また、図9は、本実施形態の合流関係テーブル128のデータ構成例を示す図である。本実施形態における合流関係テーブル128は、操作間の合流関係を分析した結果を格納するテーブルである。具体的には、操作IDと、どのような操作群を対象として合流関係の有無を分析したかを示す操作群区分と、その操作群の中での実施順序と、その操作群の中で合流関係にある操作(2つ以上)の実施順序の組合せを示す合流関係とを対応付けて格納する。図9では、例えば、新規申請画面に対する操作、販売内容登録に対する操作、顧客情報登録に対する操作、決済内容確定に対する操作、承認依頼に対する操作は、必須操作の中ではこの順序で実施され、顧客情報登録に対する操作と決済内容確定に対する操作とは合流関係にあることを示している。また、例えば、βに対する操作、納期入力に対する操作はオプション操作の中ではこの順序に実施され、いずれも販売内容登録に対する操作の前に実施されることを示している。
また、図10は、本実施形態の同一共起関係テーブル129のデータ構成例を示す図である。本実施形態における同一共起関係テーブル129は、共起関係が同じ操作群を分析した結果を格納するテーブルである。具体的には、共起関係が同じ操作の操作IDと、共起関係が同じ操作群に対して採番した仮操作IDと、その操作群の中での実施順序とを対応付けて格納する。図10では、例えば、同じ回数だけ共起している商品選択に対する操作と数量入力に対する操作とに共通の仮操作IDは「α」であり、仮操作IDが「α」である操作群の中ではこの順序で実施されることを示している。なお、共起関係が同じ操作群とは、共起する操作の組合せと共起しない操作の組合せが一致する操作で構成される操作群である。
また、図11は、本実施形態の非共起関係テーブル130のデータ構成例を示す図である。本実施形態における非共起関係テーブル130は、案件間で共起しない非共起関係にある操作群、つまり、分岐関係にある操作群を分析した結果を格納するテーブルである。具体的には、案件間で共起しない操作の操作IDと、共起しない操作群に対して採番した仮操作IDとを対応付けて格納する。図11では、例えば、互いに分岐関係にある操作αとサービス選択に対する操作とに共通の仮操作IDは「β」であることを示している。
続いて、本実施形態の業務プロセス分析装置100が備える機能について説明する。上述したように、以下に説明する機能は、例えば業務プロセス分析装置100が備えるプログラムを実行することで演算部101において処理される機能と言える。
この場合、業務プロセス分析装置100は、記憶部102の操作ログテーブル121が保持する業務システムの操作ログから、分析対象業務が正常に終了した案件の操作ログ一式に絞り込み、さらに、1案件内で同一操作が複数回実施されていた場合に、業務として意味のある操作を推定し、その操作ログのみに絞り込む機能を備えている。この機能は図1で例示したログ整形部110が実現する。
また、業務プロセス分析装置100は、上述で絞り込んだ操作ログから、操作の実施順序、ならびに、操作間の合流関係と分岐関係を抽出する機能を備えている。この機能は図1で例示した分岐関係抽出部111が実現する。
また、業務プロセス分析装置100は、操作ログ、ならびに、上述で抽出した操作間の合流関係と分岐関係をもとに、分析対象業務の業務フローを生成して提示する機能を備えている。この機能は図1で例示した業務フロー生成部112が実現する。
以下、本実施形態における業務プロセス分析の実施手順について図に基づき説明する。以下で説明する業務プロセス分析に対応する各種動作は、業務プロセス分析装置100がメモリ103などに読み出して実行するプログラムによって実現される。そして、このプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。
まず、ログ整形部110における処理について図に基づき説明する。
図12は、本実施形態のログ整形部110の処理フロー例を示す図である。図12に示すように、まず、ログ整形部110は、開始・終了操作テーブル122から、開始/終了状態=正常である操作IDを全て取り出す(S101)。
続いて、ログ整形部110は、案件IDをキーにして、操作ログテーブル121から1案件分の操作ログ一式を取り出し(S102)、S101で取り出した全ての操作IDがそれぞれ1つのみ含まれているか判定し(S103)、含まれていない場合(S103;No)、S102で取り出した操作ログ一式を操作ログテーブル121から削除して(S104)、S105に進む。このような判定を行う理由は、操作が引戻しされた場合には開始/終了状態=正常である操作IDが重複するため、そのようなイレギュラーな操作を含む案件を除くためである。一方、ログ整形部110は、S101で取り出した全ての操作IDがそれぞれ1つのみ含まれている場合(S103;Yes)、S105に進む。
なお、ログ整形部110は、S103に記載の判定処理(S101で取り出した全ての操作IDがそれぞれ1つのみ含まれているか判定)のあとに、開始・終了操作テーブル122に登録されている開始/終了状態=異常である操作IDを1つも含まない案件であるか否かを判定し、1つも含まない案件であると判定した場合はS104に進み、1つも含まない案件でないと判定した場合はS105に進む、という判定処理を実施してもよい。さらに、開始・終了操作テーブル101には、分析対象業務の開始操作と終了操作に加えて、業務の途中に実施される操作のなかに、その操作が実施された場合は分析対象業務が正常に終了されなかったと判定できる操作が存在する場合、その操作の操作IDと、開始/終了操作=途中と、開始/終了状態=異常とを登録してもよい。
次に、ログ整形部110は、全ての案件に対してS103〜S104の処理が終了したか否かを判定し(S105)、全ての案件に対して処理が終了していないと判定した場合(S105;No)、S102に戻って以降の処理を繰り返す。一方、ログ整形部110は、全ての案件に対して処理が終了したと判定した場合(S105;Yes)、S106に進む。
ログ整形部110は、操作ログテーブル121から、操作ログテーブル121に含まれる全ての操作IDを抽出して、操作IDのリストを生成する(S106)。
続いて、ログ整形部110は、S106で生成した操作IDのリストから、操作IDを1つ取り出し(S107)、S107で取り出した操作IDの、1案件内での実施回数と、各実施回数の実施案件率を集計する。具体的には、操作ログテーブル121から、案件IDをキーにして1案件分の操作ログ一式を順次取り出し、S107で取り出した操作IDの1案件内での実施回数、ならびに、その実施回数の出現回数を集計する。全ての案件に対して集計後、各実施回数の出現回数を、全案件数で除算して、各実施回数の実施案件率を算出する(S108)。
そして、ログ整形部110は、S108で集計した、各実施回数の実施案件率のなかに、実施案件率≧閾値となる実施回数が存在するか否かを判定し(S109)、存在しない場合(S109;No)、S115に進む。一方、ログ整形部110は、実施案件率≧閾値となる実施回数が存在する場合(S109;Yes)、S110に進む。
ログ整形部110は、案件IDをキーにして、操作ログテーブル121から1案件分の操作ログ一式を取り出し(S110)、S107で取り出した操作IDを、S109で実施案件率≧閾値となる実施回数だけ実施した案件か否かを判定し(S111)、S109で実施案件率≧閾値となる実施回数だけ実施した案件でないと判定した場合(S111;No)、S110で取り出した操作ログ一式を操作ログテーブル121から削除して(S112)、S114に進む。一方、ログ整形部110は、S109で実施案件率≧閾値となる実施回数だけ実施した案件であると判定した場合(S111;Yes)、S109で実施案件率≧閾値となる実施回数が2以上(複数回の実施)か否かを判定し、2以上の場合、S107で取り出した操作IDの操作ログ(2つ以上)を異なる操作IDに変更し、操作ログテーブル121を上書きして、S114に進む。例えば、操作Aが2回実施されていた場合、1回目の操作Aを操作A−1に、2回目の操作Aを操作A−2に変更する(S113)。一方、ログ整形部110は、S109で実施案件率≧閾値となる実施回数が2未満の場合、S114に進む。
ログ整形部110は、全ての案件に対してS111〜S113の処理が終了したか否かを判定し(S114)、全ての案件に対して処理が終了していないと判定した場合(S114;No)、S110に戻って以降の処理を繰り返す。一方、ログ整形部110は、全ての案件に対して処理が終了したと判定した場合(S114;Yes)、S115に進む。
最後に、ログ整形部110は、S106で生成した操作IDのリストに含まれる全ての操作IDに対してS108〜S114の処理が終了したか否かを判定し(S115)、全ての案件に対して処理が終了していないと判定した場合(S115;No)、S107に戻って以降の処理を繰り返す。一方、ログ整形部110は、全ての案件に対して処理が終了したと判定した場合(S115;Yes)、本ログ整形処理を終了する。
次に、分岐関係抽出部111における処理について図に基づき説明する。
図13〜図16は、本実施形態の分岐関係抽出部111の処理フロー例を示す図である。図13に示すように、まず、分岐関係抽出部111は、操作ログテーブル121に含まれる各操作IDの実施案件率を集計し、各操作の実施案件率テーブル123に登録する。具体的には、分岐関係抽出部111は、操作ログテーブル121から、案件IDをキーにして1案件分の操作ログ一式を順次取り出し、取り出した操作ログ一式に対して、操作ログ一式に含まれる操作IDを抽出する。さらに分岐関係抽出部111は、抽出した操作IDが各操作の実施案件率テーブル123に既に登録されているか判定し、既に登録されている操作IDが存在する場合は、その操作IDの実施案件数に1を加算し、既に登録されている操作IDが存在しない場合は、その操作IDを各操作の実施案件率テーブル123に登録し、その操作IDの実施案件数に1を設定する。次に、分岐関係抽出部111は、各操作の実施案件率テーブル123に登録されている全ての操作IDに対して、各操作IDの実施案件数を全案件数で除算し、実施案件率として登録する(S201)。
続いて、分岐関係抽出部111は、各操作の実施案件率テーブル123に登録されている全ての操作IDに対して、実施案件率≧閾値となる操作IDか否かを判定し、実施案件率≧閾値の場合、その操作IDの必須/オプション区分に「必須」を登録し、実施案件率<閾値の場合、その操作IDの必須/オプション区分に「オプション」を登録する。なお、本実施形態では、必須操作を示す情報として「必須」を、オプション操作を示す情報として「オプション」を登録するが、これに限定するものではない(S202)。
次に、分岐関係抽出部111は、案件IDをキーにして、操作ログテーブル121から1案件分の操作ログ一式を取り出し(S203)、S202で判定した必須操作を全て含む案件か否かを判定し(S204)、必須操作を全て含む案件でないと判定した場合(S204;No)、S203で取り出した操作ログ一式を操作ログテーブル121から削除して(S205)、S206に進む。一方、分岐情報抽出部111は、必須操作を全て含む案件であると判定した場合(S204;Yes)、その案件を分析対象とし、S206に進む。
分岐関係抽出部111は、全ての案件に対してS204〜S205の処理が終了したか否かを判定し(S206)、全ての案件に対して処理が終了していないと判定した場合(S206;No)、S203に戻って以降の処理を繰り返す。一方、分岐関係抽出部111は、全ての案件に対して処理が終了したと判定した場合(S206;Yes)、S207に進む。
分岐関係抽出部111は、必須操作の実施案件率テーブル124の操作ID欄(縦軸)に、S202で判定した必須操作の操作IDを全て登録し、必須操作の実施案件率テーブル124の実施順序欄(横軸)に、1〜Nの整数値(Nは必須操作の個数)を設定する(S207)。
次に、分岐関係抽出部111は、必須操作の実施案件率テーブル124に登録されている、各操作IDの各実施順序における実施案件率を集計する。具体的には、まず、分岐関係抽出部111は、必須操作の実施案件率テーブル124(操作IDと実施順序のマトリクス)の全ての要素に0を設定する。そして、分岐関係抽出部111は、操作ログテーブル121から案件IDをキーにして1案件分の操作ログ一式を順次取り出し、取り出した操作ログ一式に対して、操作ログの実施日時を用いて操作ログを時系列順に並び替えた上で、必須操作のみを対象に、各必須操作が何番目に実施されたかを集計し、必須操作の実施案件率テーブル124の該当する項目である要素の値を1加算する。このとき、1案件内で同じ必須操作が2回以上実施されていた場合は、最後に実施された必須操作を集計対象とする。なお、最後でなく、最初の操作を集計対象としてもよい。また、最後か最後かを分析者が必須操作ごとに設定してもよい。また、各操作の実施回数と実施案件数を集計し、実施回数を案件数で除算した値が閾値以上の場合は最初の操作を、それ以外は最後の操作を集計対象としてもよい(S208)。
続いて、分岐関係抽出部111は、必須操作の実施案件率テーブル124に登録されている全ての操作IDに対して、実施案件率≧閾値となる実施順序を有する必須操作が存在するか否か判定し、存在すると判定した場合、その実施順序をその必須操作の実施順序とみなして、合流関係テーブル128に操作IDと実施順序を登録し、操作群区分には「必須操作のみ」を設定して、S201に進む。一方、分岐関係抽出部111は、実施案件率≧閾値となる実施順序を有する必須操作が存在しないと判定した場合、S201に進む(S209)。
分岐関係抽出部111は、必須操作の実施案件率テーブル124に登録されている必須操作と実施順序のうち、S209で合流関係テーブル128に登録されなかった必須操作と実施順序を対象に、実施案件率>0となる実施順序(2つ以上)が同じで、かつ、その実施順序(1〜N。Nは必須操作の個数)が連続している操作群のみが存在するか否かを判定し、存在しないと判定した場合、S211に進む。一方、分岐関係抽出部111は、実施案件率>0となる実施順序(2つ以上)が同じで、かつ、その実施順序が連続している操作群のみが存在すると判定した場合、その操作群は合流関係にあるとみなして、合流関係テーブル128に、操作群の各操作IDを登録する。また、分岐関係抽出部111は、登録した各操作IDの実施順序欄に、実施案件率>0となる実施順序(2つ以上)ごとに、必須操作の実施案件率テーブル124の実施案件率を操作間で比較し、実施案件率が最も高い操作にその実施順序を設定する。また、分岐関係抽出部111は、登録した各操作IDの合流関係欄に、合流関係にある操作群の全ての操作の実施順序を登録する。また、分岐関係抽出部111は、登録した各操作IDの操作群区分欄に、「必須操作のみ」を設定する。最後に、分岐関係抽出部111は、S211に進む(S210)。
続いて、分岐関係抽出部111は、必須操作の実施案件率テーブル124に登録されている必須操作と実施順序のうち、S209およびS210で合流関係テーブル128に登録されなかった必須操作と実施順序を対象に、各必須操作に対して、必須操作の実施案件率テーブル124の実施案件率が最も高い実施順序を、その必須操作の実施順序とみなして、合流関係テーブル128に操作IDと実施順序を登録し、操作群区分には「必須操作のみ」を設定して(S211)、S300に進む。
次に、分岐関係抽出部111は、オプション操作間の実施順序と分岐関係、合流関係の抽出を行う(S300)。この抽出処理は、図14を用いて説明する。
図14に示すように、まず、分岐関係抽出部111は、案件IDをキーにして、操作ログテーブル121から1案件分の操作ログ一式を取り出す(S301)。分岐関係抽出部111は、操作ログの実施日時を用いて操作ログ一式を時系列順に並び替えた上で、S202で判定した必須操作を対象に、合流関係テーブル128に登録されている必須操作の実施順序および合流関係と一致する案件か否かを判定し(S302)、一致しないと判定した場合(S302;No)、S301で取り出した操作ログ一式を操作ログテーブル121から削除して(S303)、S304に進む。一方、分岐関係抽出部111は、合流関係テーブル128に登録されている必須操作の実施順序および合流関係と一致すると判定した場合(S302;No)、S304に進む。
分岐関係抽出部111は、全ての案件に対してS302〜S303の処理が終了したか否かを判定し(S304)、全ての案件に対して処理が終了していないと判定した場合(S304;No)、S301に戻って以降の処理を繰り返す。一方、分岐関係抽出部111は、全ての案件に対して処理が終了したと判定した場合(S304;Yes)、S305に進む。
分岐関係抽出部111は、オプション操作の実施案件率テーブル125の操作ID欄(縦軸)に、S202で判定したオプション操作の操作IDを全て登録し、オプション操作の実施案件率テーブル125の実施順序欄(横軸)に、「必須操作の操作IDの前」と「必須操作の操作IDの後」を、全ての必須操作分、設定する(S305)。
続いて、分岐関係抽出部111は、オプション操作の実施案件率テーブル125に登録されている、各操作IDの各実施順序における実施案件率を集計する。具体的には、まず、分岐関係抽出部111は、オプション操作の実施案件率テーブル125(操作IDと実施順序のマトリクス)の全ての要素に0を設定する。そして、分岐関係抽出部111は、操作ログテーブル121から案件IDをキーにして1案件分の操作ログ一式を順次取り出し、取り出した操作ログ一式に対して、操作ログの実施日時を用いて操作ログを時系列順に並び替えた上で、オプション操作がどの必須操作の前および後で実施されたかを集計し、オプション操作の実施案件率テーブル125の該当する項目である要素の値を1加算する。最後に、分岐関係抽出部111は、オプション操作の実施案件率テーブル125に登録されているオプション操作ごとに、そのオプション操作の各要素の値(各必須操作の前または後に実施された回数)を、各要素の値をそのオプション操作の実施案件数で除算した値に上書きする(S306)。
次に、分岐関係抽出部111は、各オプション操作について、実施案件率が最も高い実施順序を、そのオプション操作の実施順序とみなして、オプション操作の実施順序テーブル125から、1つの実施順序(ある必須操作の前または後)と、その実施順序で実施されたオプション操作を取り出す(S307)。
そして、分岐関係抽出部111は、S307で取り出したオプション操作が2つ以上か否かを判定し(S308)、2つ未満(1つ)と判定した場合(S308;No)、合流関係テーブル128に、操作IDを登録する。また、登録した操作IDの実施順序欄には、1を設定する。また、登録した操作IDの操作群区分欄には、S307で取り出した実施順序(ある必須操作の前または後)を登録する。そして、分岐関係抽出部111は、S310に進む。一方、分岐関係抽出部111は、S307で取り出したオプション操作が2つ以上と判定した場合(S308;Yes)、オプション間の分岐関係と合流関係を抽出する(S400)。この抽出処理は、図15を用いて説明する。
図15に示すように、まず、分岐関係抽出部111は、S307で取り出した実施順序が、ある必須操作の「前」か「後」かを判定し(S401)、「前」と判定した場合(S401;前)、終了操作=S307で取り出した実施順序に登録されている必須操作、開始操作=その必須操作の1つ前に実施された必須操作、分析対象操作=S307で取り出したオプション操作、を設定する(S402)。一方、部に関係抽出部111は、S307で取り出した実施順序が、ある必須操作の「後」と判定した場合(S401;後)、開始操作=S307で取り出した実施順序に登録されている必須操作、終了操作=その必須操作の1つ後に実施された必須操作、分析対象操作=S307で取り出したオプション操作、を設定する(S403)。
次に、分岐関係抽出部111は、案件IDをキーにして操作ログテーブル121から1案件分の操作ログ一式を取り出し、さらに、操作ログの実施日時を用いて時系列順に操作ログ一式を並び替えた上で、先頭から操作ログを検索し(S404)、S402またはS403で設定した開始操作で始まり終了操作で終わる操作ログ一式が存在するか否かを判定する(S405)。分岐関係抽出部111は、判定した結果、S402またはS403で設定した開始操作で始まり終了操作で終わる操作ログ一式が存在しなかったと判定した場合(S405;No)、分岐関係抽出部111はS408に進む。一方、分岐関係抽出部111は、S402またはS403で設定した開始操作で始まり終了操作で終わる操作ログ一式が存在したと判定した場合(S405;Yes)、分岐関係抽出部111は、その操作ログ一式の中に、S402またはS403で設定した分析対象操作を少なくとも1つ含むか否かを判定し(S406)、1つも含まないと判定した場合(S406;No)、S408に進む。一方、分岐関係抽出部111は、S402またはS403で設定した分析対象操作を少なくとも1つ含むと判定した場合(S406;Yes)、S402またはS403で設定した開始操作で始まり終了操作で終わる操作ログ一式を、サブ操作ログテーブル126にコピーする。このとき、分岐関係抽出部111は、コピーする操作ログの案件IDは1から採番しなおす(S407)。
分岐関係抽出部111は、S404で取り出した1案件分の操作ログ一式に含まれる全ての操作ログに対してS405〜S407の検索処理が終了したか否かを判定し(S408)、全ての操作ログに対して検索処理が終了していないと判定した場合(S408;No)、まだ検索していない残りの操作ログに対して、S405に戻って以降の処理を繰り返す。一方、分岐関係抽出部111は、S404で取り出した1案件分の操作ログ一式に含まれる全ての操作ログに対して検索処理が終了したと判定した場合(S408;Yes)、S409に進む。
分岐関係抽出部111は、全ての案件に対してS404〜S408の処理が終了したか否かを判定し(S409)、全ての案件に対して処理が終了していないと判定した場合(S409;No)、S404に戻って以降の処理を繰り返す。一方、分岐関係抽出部111は、全ての案件に対して処理が終了したと判定した場合(S409;Yes)、S500に進む。S409が終了すると、上記操作ログ一式に含まれるS402またはS403で設定した開始操作で始まり終了操作で終わるオプション操作の実施順序を決めるため、以降の処理を実行する。
分岐関係抽出部111は、S402またはS403で設定した分析対象操作(オプション操作)間の分岐関係の抽出を行う(S500)。この抽出処理は、図16を用いて説明する。
図16に示すように、まず、分岐関係抽出部111は、S402またはS403で設定した分析対象操作を対象に、各操作について、その他操作との案件間における共起回数を集計し、操作間の共起関係テーブル127に登録する。具体的には、まず、分岐関係抽出部111は、操作間の共起関係テーブル127の縦軸と横軸に分析対象操作を登録する。次に、分岐関係抽出部111は、操作間の共起関係テーブル127(各分析対象業務(縦軸)と、縦軸に登録した分析対象操作以外のその他の分析対象操作(横軸)とのマトリクス)の各要素に0を設定する。そして、分岐関係抽出部111は、操作間の共起関係テーブル127の縦軸に登録した各分析対象操作に対して、サブ操作ログテーブル126から案件IDをキーにして1案件分の操作ログ一式を順次取り出し、その分析対象操作(縦軸)を含む案件か否かを判定し、その分析対象操作を含むと判定した場合、さらに、上記その他の分析対象操作がその案件に含まれるか否かを判定し、上記その他の分析対象操作を含む(横軸)と判定した場合、これらの分析対象業務は案件間において共起関係にあるとみなして、操作間の共起関係テーブル127の該当する要素の値に1を加算する(S501)。
続いて、分岐関係抽出部111は、操作間の共起関係テーブル127を用いて、共起関係が同じ操作群(共起する操作の組合せと、共起しない操作の組合せの両方が一致する、2つ以上の操作)が存在するか否かを判定し(S502)、存在しないと判定した場合(S502;No)、S506に進む。一方、分岐関係抽出部111は、共起関係が同じ操作群が存在すると判定した場合(S502;Yes)、同一共起関係テーブル129に、その操作群の各操作IDを登録する。また、登録した各操作IDの仮操作ID欄には、同じ仮操作IDを採番して設定する。また、登録した各操作IDの実施順序欄には、S307で取り出した実施順序=ある必須操作の「前」の場合、オプション操作の実施順序テーブル125の実施案件率が低い順に、実施順序を1から採番して設定する。一方、S307で取り出した実施順序=ある必須操作の「後」の場合、オプション操作の実施順序テーブル125の実施案件率が高い順に、実施順序を1から採番して設定する(S503)。
なお、分岐関係抽出部111は、S503の処理において、オプション操作の実施順序テーブル125の実施案件率を用いて、同一共起関係テーブル129の実施順序欄に実施順序を設定する代わりに、サブ操作ログテーブル126から、分析対象操作を全て含む案件の操作ログ一式を、全ての案件分取り出した上で、分析対象操作を必須操作とみなしてS207〜S208の処理を実施して必須操作の実施順序テーブル124を別途生成し、別途生成した必須操作の実施順序テーブル124の実施案件率を用いて、同一共起関係テーブル129の実施順序欄に実施順序を設定してもよい。
次に、分析関係抽出部111は、S503で採番した仮操作IDを、サブ操作ログテーブル126へ反映する。具体的には、分析関係抽出部111は、サブ操作ログテーブル126に含まれる全ての操作ログの操作IDに対して、操作間の共起関係テーブル127に登録されている操作IDと一致する場合は、その操作IDに対応付けられた仮操作IDに変換する処理を行う(S504)。
そして、分岐関係抽出部111は、S402またはS403で設定した分析対象操作に、S503で採番した仮操作IDを反映した上で、再度、分析対象操作を対象に、操作間の共起関係テーブル127を生成しなおし、S506に進む。なお、操作間の共起関係テーブル127を生成しなおす処理は、S501と同様であるため、説明は省略する(S505)。
分岐関係抽出部111は、N=分析対象操作の操作数を設定し(S506)、操作間の共起関係テーブル127を用いて、非共起となるN個の操作群が存在するか否かを判定する(S507)。分岐関係抽出部111は、存在しないと判定した場合(S507;No)、Nから1を減算して(S510)、さらにN=1か否かを判定し(S511)、N≠1と判定した場合(S511;No)はS507に戻り、N=1と判定した場合(S511;Yes)はS512に進む。一方、分岐関係抽出部111は、非共起となるN個の操作群が存在すると判定した場合(S507;Yes)、さらに、非共起となるN個の操作群に含まれる各操作の実施案件数の合計値が、全案件数と一致するか否かを判定し(S508)、一致しないと判定した場合(S508;No)はS507へ戻り、一致すると判定した場合(S508;Yes)は、非共起となる操作群は排他的分岐関係にあるとみなして、非共起関係テーブル130に、その操作群の各操作IDを登録する。また、登録した各操作IDの仮操作ID欄には、同じ仮操作IDを採番して設定する。さらに、分岐関係抽出部111は、採番した仮操作IDを、サブ操作ログテーブル126へ反映して(S509)、S507に戻る。なお、採番した仮操作IDをサブ操作ログテーブル126へ反映する処理は、S504と同様であるため、説明は省略する。
分岐関係抽出部111は、分析対象操作に、非共起関係テーブル130に登録された全ての仮操作IDを反映(非共起となる操作群の各操作IDを、紐付けられた仮操作IDに置換)する(S512)。なお、分岐関係抽出部111は、S512において、共起関係が同じ操作の操作ID(例えば、図10に示した仮操作ID「α」)が非共起関係テーブル130の操作IDとして登録されているか否かを判定し、共起関係が同じ操作の操作IDが非共起関係テーブル130の操作IDとして登録されていないと判定した場合、S504、S503の処理とは逆の手順でサブ操作ログテーブル126を戻してもよい。具体的には、分岐関係抽出部111は、サブ操作ログテーブル126に含まれるS504で変換した仮操作IDを変換前の操作IDに戻し、さらに、同一共起関係テーブル129に含まれるS503で登録した上記変換した仮操作IDを削除してもよい。
S512の処理終了後、分岐関係抽出部111は、図15のS410に進む。S410以降の処理は、図15に戻って説明する。
図15に示すように、分岐関係抽出部111は、案件IDをキーにして、サブ操作ログテーブル126から1案件分の操作ログ一式を取り出し(S410)、分析対象操作を全て含む案件か否かを判定し(S411)、必須操作を全て含む案件でないと判定した場合(S411;No)、S410で取り出した操作ログ一式をサブ操作ログテーブル126から削除して(S4112)、S413に進む。一方、分岐情報抽出部111は、必須操作を全て含む案件であると判定した場合(S411;Yes)、S413に進む。
分岐関係抽出部111は、全ての案件に対してS411〜S412の処理が終了したか否かを判定し(S411)、全ての案件に対して処理が終了していないと判定した場合(S411;No)、S410に戻って以降の処理を繰り返す。一方、分岐関係抽出部111は、全ての案件に対して処理が終了したと判定した場合(S411;Yes)、S414に進む。
分岐関係抽出部111は、分析対象操作を必須操作とみなして、S207〜S211の処理を実施し、分析対象操作の実施順序と合流関係を抽出する。ただし、S209〜S211の処理において、合流関係テーブル128の操作群区分欄には、「必須操作のみ」の代わりに、S307で取り出した実施順序(ある必須操作の前または後)を登録する(S414)。
S414の処理終了後、分岐関係抽出部111は、図14のS310に進む。S310以降の処理は、図14に戻って説明する。
図14に示すように、分岐関係抽出部111は、オプション操作の実施順序テーブル125に登録されている、全ての実施順序(各必須操作の前または後)に対して、S308〜S309またはS400の処理が終了したか否かを判定し(S310)、終了していないと判定した場合(S310;No)、S307に戻って以降の処理を繰り返す。一方、分岐関係抽出部111は、全ての実施順序に対して処理が終了したと判定した場合(S310;Yes)、図13に戻り、本分岐関係抽出処理を終了する。
次に、業務フロー生成部112における処理について図に基づき説明する。
図17は、本実施形態の業務フロー生成部112の処理フロー例を示す図である。図17に示すように、まず、業務フロー生成部112は、合流関係テーブル128に登録されている操作IDと実施順序と操作群区分をもとに、1つの操作IDを1つのノードとして並べたフローを生成する。具体的には、業務フロー生成部112は、まず、操作群区分=「必須操作のみ」の操作群のフローを生成し、次に、操作群区分=「各必須操作IDの前または後」に従い、各必須操作の前後にフローを追加する。このとき、業務フロー生成部112は、合流関係にある操作群(合流関係テーブル128の合流関係欄に同じ値が設定されている操作群)が存在する場合、合流関係を示す合流ノードを2つ追加し、1つ目の合流ノードから合流関係にある各操作ノードへ矢印が分岐して、各操作ノードから2つ目の合流ノードへ矢印が合流するようにフローを生成する(S601)。
続いて、業務フロー生成部112は、非共起関係テーブル130に仮操作IDが登録されているか否かを判定し、登録されていると判定した場合、S601で生成したフロー上の仮操作IDの操作ノードを、その仮操作IDに対応付けられた操作ID(2つ以上)の操作ノードに置換する。このとき、業務フロー生成部112は、分岐関係にあることを示す分岐ノードを2つ追加し、1つ目の分岐ノードから置換する各操作ノードへ矢印が分岐して、各操作ノードから2つ目の分岐ノードへ矢印が合流するようにフローを生成する(S602)。
次に、業務フロー生成部112は、同一共起関係テーブル129に仮操作IDが登録されているか否かを判定し、登録されていると判定した場合、S602で生成したフロー上の仮操作IDの操作ノードを、その仮操作IDに対応付けられた操作ID(2つ以上)の操作ノードに置換する。このとき、業務フロー生成部112は、置換する各操作ノードを、同一共起関係テーブル129に登録されている実施順序で並ぶようにフローを生成する。最後に、業務フロー生成部112は、生成したフローを、出力部105に表示して、本業務フロー生成処理を終了する(S603)。
図18は、業務フロー生成部112が表示する業務フローの表示イメージ1000を示す図である。分岐ノード1001が分岐関係にあることを示すノードであり、合流ノード1002が合流関係にあることを示すノードであり、それ以外のノードが操作ノードである。なお、各種ノードの表記方法は、図18に限定するものではなく、操作ノードと分岐ノードと合流ノードを区別できれば、どのように表記してもよい。
以上、本実施形態について具体的に説明したが、これに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。例えば、上述した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。
例えば、分析対象業務の全体プロセスでなく、ある特定の操作間のプロセスを分析したい場合、分岐関係抽出部111にて図15に記載のS401〜SS414までの処理を実施し、業務フロー生成部112にてフローを提示する、としてもよい。このとき、分岐関係抽出部111は、S401〜S403の処理の代わりに、開始操作=分析したいプロセスの開始操作、終了操作=分析したプロセスの終了操作、分析対象操作=開始操作と終了操作の間に実施される全ての操作、を設定して、S404以降の処理を実施する。
また、例えば、分岐関係抽出部111が、図13に記載のS202にて必須操作とオプション操作を設定するために、実施案件率の閾値=80%を利用した場合、必須操作と分岐関係になる操作が存在する可能性がある。分析者が、この必須操作と分岐関係になる操作も含めたプロセスを把握したいと考えた場合、分岐関係抽出部111にて、S202の処理を実施後に、必須操作と分岐関係になる操作を抽出する処理として、図16に記載のS501とS506〜S511までの処理を実施した上で、S203に進む、としてもよい。このとき、まず、分岐関係抽出部111は、サブ操作ログテーブル126の代わりに、操作ログテーブル121を対象として、開始操作=分析対象業務の開始操作、終了操作=分析対象業務の終了操作、分析対象操作=開始操作と終了操作の間に実施される全ての操作、を設定して、S501の処理を実施する。そして、分岐関係抽出部111は、S509の処理は必須操作と非共起関係となる操作群が抽出された場合のみ実施するという条件付きで、S506〜S511までの処理を実施する。
このように、本実施例では、分析対象業務のプロセスについて、操作間の合流関係と分岐関係を区別可能なフローとして提示することができる。さらに、業務システムの操作ログを、分析対象業務が正常終了した案件や、その案件内で業務上意味があると推定される操作に絞り込むことで、操作間の合流関係や分岐関係を精度良く特定できる。また、本実施例により抽出した分析対象業務のプロセスと、正常終了時のバリエーションや異常終了時の流れとを比較することにより、分析対象とする業務システムの利用実態を把握しやすくなる。
なお、図16のS503の別方法として、前記分岐関係抽出部は、前記分岐関係となる操作群を同一操作とみなして前記合流関係となる操作群の特定において、共起する操作の組合せが同じ操作群に含まれる操作の実施順序を、前記オプション操作の実施順序と実施案件率とに基づき、前記実施順序が前記必須操作の前である場合には実施案件率が低い順に前記オプション操作の実施順序を定め、前記実施順序が前記必須操作の後である場合には実施案件率が高い順に前記オプション操作の実施順序を定める、ことを特徴とする業務プロセス分析装置として構成してもよい。
また、図17のS601〜S602において、前記業務フロー生成部は、前記合流関係にある操作群が存在する場合、前記合流関係を示す第1の合流ノードと第2の合流ノードとを追加し、前記第1の合流ノードから前記合流関係にある操作ノードへ矢印が分岐して、前記操作ノードから前記第2の合流ノードへ矢印が合流するフローを生成し、前記分岐関係にある操作群が存在する場合、前記分岐関係を示す第1の分岐ノードと第2の分岐ノードとを追加し、前記第1の分岐ノードから前記分岐関係にある各操作ノードへ矢印が分岐して、前記操作ノードから前記第2の分岐ノードへ矢印が合流するフローを生成する、ことを特徴とする業務プロセス分析装置として構成してもよい。