(57)【特許請求の範囲】
【請求項１】
複数のタスクの実行順序、及び各タスクのロールの情報を含むビジネスプロセスを生成するためのコンピュータに、
タスクの実行順序を示すシーケンスフローを入力するシーケンスフロー入力ステップと、
各アクタが属するロールを示すロール情報を入力するロール情報入力ステップと、
各タスクを実行するアクタの情報を含むシステムの実行ログを入力する実行ログ入力ステップと、
前記ロール情報と前記実行ログとに基づいて、各タスクを実行するロールを特定するロール・タスク情報を生成し、当該ロール・タスク情報と前記シーケンスフローとに基づいて、前記ビジネスプロセスを生成するビジネスプロセス生成ステップと、
前記実行ログに基づいて、タスク実行ルートのパターン毎の実行頻度を抽出する重要プロセス抽出ステップと、
を実行させるためのビジネスプロセス生成プログラム。
【請求項２】
前記ビジネスプロセス生成ステップは、
前記ロール・タスク情報において、あるタスクに複数のロールが対応する場合に、当該タスクが、当該複数のロールにより実行されていることを示す情報を含む前記ビジネスプロセスを生成するステップを有する
ことを特徴とする請求項１に記載のビジネスプロセス生成プログラム。
【請求項３】
前記コンピュータに、
前記実行ログに基づき、アクタによるタスクの実行頻度を、タスク毎及びアクタ毎に抽出する重要パーソン抽出ステップ、
を更に実行させることを特徴とする請求項１又は２に記載のビジネスプロセス生成プログラム。
【請求項４】
複数のタスクの実行順序、及び各タスクのロールの情報を含むビジネスプロセスを生成するコンピュータが実行するビジネスプロセス生成方法であって、
タスクの実行順序を示すシーケンスフローを入力するシーケンスフロー入力ステップと、
各アクタが属するロールを示すロール情報を入力するロール情報入力ステップと、
各タスクを実行するアクタの情報を含むシステムの実行ログを入力する実行ログ入力ステップと、
前記ロール情報と前記実行ログとに基づいて、各タスクを実行するロールを特定するロール・タスク情報を生成し、当該ロール・タスク情報と前記シーケンスフローとに基づいて、前記ビジネスプロセスを生成するビジネスプロセス生成ステップと、
前記実行ログに基づいて、タスク実行ルートのパターン毎の実行頻度を抽出する重要プロセス抽出ステップと、
を備えることを特徴とするビジネスプロセス生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のタスクの実行順序を含むシーケンスフローを生成する技術に関連するものである。
【背景技術】
【０００２】
ビジネス向けソフトウエアの設計においては、ソフトウェアを実際に使われる環境に適合させることが重要である。そのため、企業等における組織間をまたいで使用されるソフトウェア、例えば、決裁承認ソフトウェアの場合、どのような順番でどの部門のどの役職の方が承認をしていくか、といった企業毎のビジネス環境を解析することが必要である。この解析はヒアリング等で実施されているため、大変な稼働がかかっている。
【０００３】
上記の課題に関連する従来技術として、タスクの実行情報に基づいて、ワークフローのモデル（シーケンスフロー）を生成する技術が存在する（非特許文献１）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】「データ分析による現状業務の可視化」FUJITSU 59.1. p26-32（01.2008）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、シーケンスフローの生成に留まり、ロール（例：組織、担当）の情報も付与したモデルであるビジネスプロセスの生成までには至っていない。
【０００６】
また、ソフトウェア開発において開発したソフトウェアの最終的な振る舞いを検証する試験（総合試験）では、業務上想定し得るビジネスプロセスの実行ルートをテストすることは非効率であるため、業務の中でメインストリームを想定したシナリオでテストを行うことが一般的である。ここでメインストリームとは、ビジネスプロセスを構成するタスクの中で実行頻度が高いタスクの繋がり（高頻度実行ルート）を意味する。
【０００７】
一方で、既存のビジネスプロセスの構造を再現・把握するだけでは、どのルートがメインストリームであるかを把握することはできない。同様に、ソフトウェアのプログラムを解析したとしても、メインストリームを決めることはできない。このように単純にビジネスプロセスやプログラムを分析しただけではメインストリームの把握はできない。
【０００８】
通常のソフトウェア開発では、業務に精通した人（重要パーソン）にヒアリングを行い、メインストリームを特定することも実施されている。しかしながら、そもそも誰が当該業務に精通しているのかを特定する（重要パーソンを選定する）ためにも、ヒアリングや現場調査が必要となる。
【０００９】
上記のようにソフトウェア開発における業務上のメインストリーム、及び重要パーソンの特定は、現状は顧客や有識者頼りになっており、実際には大変な稼働がかかっている。
【００１０】
本発明は上記の点に鑑みてなされたものであり、複数のタスクの実行順序、及び各タスクを実行するロールの情報を含むビジネスプロセスの生成において、業務上のメインストリーム、及び重要パーソンの特定を行うことを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の実施の形態によれば、複数のタスクの実行順序、及び各タスクのロールの情報を含むビジネスプロセスを生成するためのコンピュータに、
タスクの実行順序を示すシーケンスフローを入力するシーケンスフロー入力ステップと、
各アクタが属するロールを示すロール情報を入力するロール情報入力ステップと、
各タスクを実行するアクタの情報を含むシステムの実行ログを入力する実行ログ入力ステップと、
前記ロール情報と前記実行ログとに基づいて、各タスクを実行するロールを特定するロール・タスク情報を生成し、当該ロール・タスク情報と前記シーケンスフローとに基づいて、前記ビジネスプロセスを生成するビジネスプロセス生成ステップと、
前記実行ログに基づいて、タスク実行ルートのパターン毎の実行頻度を抽出する重要プロセス抽出ステップと、
を実行させるためのビジネスプロセス生成プログラムが提供される。
【００１２】
前記ビジネスプロセス生成プログラムは、前記コンピュータに、
前記実行ログに基づき、アクタによるタスクの実行頻度を、タスク毎及びアクタ毎に抽出する重要パーソン抽出ステップ、を更に実行させることとしてもよい。
【発明の効果】
【００１３】
本発明の実施の形態によれば、複数のタスクの実行順序、及び各タスクを実行するロールの情報を含むビジネスプロセスの生成において、業務上のメインストリーム、及び重要パーソンの特定を行うことが可能となる。
【図面の簡単な説明】
【００１４】
【図１】用語の定義を説明するための図である。
【図２】本発明の実施の形態におけるビジネスプロセス生成装置１００の構成図である。
【図３】本発明の実施の形態におけるビジネスプロセス生成装置１００の動作手順を示すフローチャートである。
【図４】対応関係を識別する処理のフローチャートである。
【図５】シーケンスフロー行列（ＳＦＭ）の例を示す図である。
【図６】システムログデータの例を示す図である。
【図７】ユーザ・ロール行列の例を示す図である。
【図８】ロール・タスク行列の例を示す図である。
【図９】出力例を説明するための図である。
【図１０】シーケンスフローを再構築する処理のフローチャートである。
【図１１】ロール・タスク行列（ＲＴＭ）の列の追加・内容の修正を説明するための図である。
【図１２】シーケンスフロー行列（ＳＦＭ）の行・列の追加・内容の修正を説明するための図である。
【図１３】同一タスクの実行ロールが複数存在する場合の出力例を説明するための図である。
【図１４】ビジネスプロセスに対するシーケンスフロー行列の例を示す図である。
【図１５】実行ルートのパターンと実行ルート行列の例を示す図である。
【図１６】重要プロセス抽出処理を説明するための図である。
【図１７】出力例を説明するための図である。
【図１８】重要パーソン抽出処理を説明するための図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照して本発明の実施の形態（本実施の形態）を説明する。以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。
【００１６】
（用語定義）
以下では、本実施の形態の説明にあたり、本明細書で使用する主な用語である、シーケンスフロー、ビジネスプロセス、ケース、実行ログについての定義を説明する。
【００１７】
「シーケンスフロー」とは、複数タスクの実行順序を表現した情報である。図１（ａ）にシーケンスフローの例を示す。図１（ａ）に示すとおり、シーケンスフローでは、開始イベントから終了イベントまでのタスクの実行順序が、各タスク間をフロー（矢印）でつないだ有向グラフとして表現される。
【００１８】
「ビジネスプロセス」とは、複数のタスクの実行順序、及び各タスクを実行するロール（例：組織、担当）を表現した情報である。ロールには複数のユーザが所属する。
【００１９】
図１（ｂ）に、ビジネスプロセスの例を示す。図１（ｂ）に示すように、ビジネスプロセスでは、ロール数分だけスイムレーンが用意される。各タスクは、当該タスクを実行するロールに対応するスイムレーン上に設置される。図１（ｂ）の例において、例えば、ロールＲ１は、タスクＡ、Ｂを実行するので、タスクＡ、Ｂは、ロールＲ１に対応するスイムレーンに設置されている。シーケンスフローと同様に、開始イベントから終了イベントまでのタスクの実行順序は、各タスク間をフロー（矢印）でつないだ有向グラフとして表現される。
【００２０】
「ケース（Ｃａｓｅ）」とは、ビジネスプロセスを実行する上で、意味のある一連のタスクのまとまり（仕事の単位）である。例えば、図１（ｂ）におけるビジネスプロセスでは、ある仕事（ケース１）はＡ→Ｂ→Ｄとタスクが実行され、他の仕事（ケース２）はＡ→Ｃ→Ｄとタスクが実行される。また、各ケースにおけるタスクは、当該タスクに対応するロールに属するユーザにより実行される。なお、ユーザを「アクタ」と称してもよい。
【００２１】
「実行ログ」とは、ケースの各タスクが、いつ、誰によって実行されたのかの情報が記録されたログである。本実施の形態では、「実行ログ」の例として「システムログ」を用いている。
【００２２】
（装置構成）
図２は、本実施の形態におけるビジネスプロセス生成装置１００の構成図である。図２に示すとおり、本実施の形態におけるビジネスプロセス生成装置１００は、シーケンスフローを入力するシーケンスフロー入力部１０１、システムログを入力するシステムログ入力部１０２、ユーザ・ロール情報を入力するロール情報入力部１０３、対応関係の識別を行う対応関係識別部１０４、シーケンスフロー修正を行うシーケンスフロー修正部１１４、重要プロセスを抽出する重要プロセス抽出部１２１、重要パーソンを抽出する重要パーソン抽出部１２２、ビジネスプロセスを出力するビジネスプロセス出力部１０５を有する。各機能部の動作の詳細説明は後述する動作説明のところで行う。
【００２３】
本実施の形態におけるビジネスプロセス生成装置１００は、コンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、ビジネスプロセス生成装置１００が有する機能は、当該コンピュータに内蔵されるＣＰＵやメモリ等のハードウェア資源を用いて、当該装置で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体（可搬メモリ等）に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メール等、ネットワークを通して提供することも可能である。
【００２４】
（ビジネスプロセス生成装置１００の動作）
次に、図２に示したビジネスプロセス生成装置１００の動作を、図３のフローチャート等を参照しながら詳細に説明する。
【００２５】
図３のステップＳ１１０において、シーケンスフロー入力部１０１は、ユーザ１０により入力されるシーケンスフローを読み込み、シーケンスフロー行列（ＳＦＭ：Sequence Flow Matrix）を対応関係識別部１０４に出力する。
【００２６】
図５は、シーケンスフロー行列の例を示す図である。図５に示すように、シーケンスフロー行列は、シーケンスフローの情報を行列で表現したものである。図５に示すように、例えば、タスクＢからタスクＤへのフローは、行列のＢ‐Ｄのセルに１が立てられることにより表現される。なお、ユーザ１０により入力されるシーケンスフローが、シーケンスフロー行列になっていてもよいし、ユーザ１０により入力されるシーケンスフローが図５右側に示すように図で表現されていて、シーケンスフロー入力部１０１が当該図の情報からシーケンスフロー行列を生成することとしてもよい。また、システムの実行ログの情報をシーケンスフロー入力部１０１に与えて、シーケンスフロー入力部１０１が、当該情報からシーケンスフロー行列を生成することとしてもよい。また、ここで入力されるシーケンスフローの一例としては、決裁システムの履歴情報における、だれがどのような順番で決裁をしているかを示す情報がある。
【００２７】
図３のステップＳ１２０では、システムログ入力部１０２が、システムログ２０を保持するサーバやクライアント等からシステムログ（実行ログ）を読み込み、システムログデータを対応関係識別部１０４に出力する。
【００２８】
図６は、システムログデータの例を示す図である。図６に示すように、この例のシステムログデータは、ケース、タスク、該当タスクの実行された時刻、及び、該当タスクを実行したユーザのユーザＩＤ（アクタＩＤと称してもよい）からなるデータである。例えば、図６には、ケースＷ１はタスクＡ、Ｂ、Ｄからなり、これらのうちのタスクＡは時刻ＴＳ１にＩＤが００１のユーザにより実行されたことが示されている。
【００２９】
図３のステップＳ１３０では、ロール情報入力部１０３が、ロール情報３０を保持するサーバやクライアント等からロール情報を読み込み、ユーザ・ロール行列（ＵＲＭ：User Role Matrix）を対応関係識別部１０４に出力する。
【００３０】
図７は、ユーザ・ロール行列の例を示す図である。図７に示すように、ユーザ・ロール行列は、ユーザＩＤとロールとの対応関係を行列で表現するものである。図７に示すように、例えば、ＩＤ＝００３のユーザがＲ２に属することが、行列の０００３−Ｒ２のセルに１が立てられることにより表現されている。なお、ロール情報３０を保持するサーバ等から取得されるロール情報が、ユーザ・ロール行列になっていてもよいし、ロール情報入力部１０３が、ロール情報のサーバ等から取得される任意の形式のロール情報からユーザ・ロール行列を生成してもよい。
【００３１】
図３のステップＳ１４０において、対応関係識別部１０４が、ロールとタスクとの間の対応関係を識別する。具体的には、シーケンスフロー行列（ＳＦＭ）と、システムログデータと、ユーザ・ロール行列（ＵＲＭ）とから、ロール・タスク行列（ＲＴＭ：Role Task Matrix）を構築する。
【００３２】
ここでは、対応関係識別部１０４は、まず、ユーザ・ロール行列（ＵＲＭ）とシーケンスフロー行列（ＳＦＭ）の内容から、行列の値が全てＮｕｌｌであるロール・タスク行列（ＲＴＭ）を構築する。そして、システムログデータの内容（各タスクを実行するユーザＩＤ）と、ユーザ・ロール行列（ＵＲＭ）の内容（各ユーザＩＤの属するロール）を対応させ、各タスクを実行するロールを特定し、構築したロール・タスク行列（ＲＴＭ）に結果を格納する。
【００３３】
ロール・タスク行列（ＲＴＭ）の例を図８に示す。図８に示す例は、図５、図６、図７に示した入力データから得られたロール・タスク行列（ＲＴＭ）である。図８に示すように、ロール・タスク行列（ＲＴＭ）は、ロールとタスクとの対応関係を行列で表現するものである。図８に示すように、例えば、ロールＲ３がタスクＤを実行することは、行列のＲ３−Ｄのセルに１が立てられることにより表現される。
【００３４】
ロールとタスクの対応関係を識別した結果、同一タスクを複数のロールが実行していた場合において、図３のステップＳ１５０で、シーケンスフロー修正部１１４がシーケンスフローを再構築する。この処理の詳細は後述する。また、図３のステップＳ１６０において、重要プロセス抽出部１２１が重要プロセスの抽出を行うとともに、図３のステップＳ１７０において、重要パーソン抽出部１２２が重要パーソンの抽出を行う。これらについても詳細は後述する。なお、重要プロセス抽出部１２１による重要プロセスの抽出処理、及び、重要パーソン抽出部１２２による重要パーソンの抽出処理は、図３に示すステップの順番で行う必要はなく、システムログ（実行ログ）の読み込みの後、任意の時点で行うことができる。例えば、ビジネスプロセスの出力の後に、重要プロセスの抽出処理、及び、重要パーソンの抽出処理を行うこととしてもよい。また、重要プロセスの抽出処理と重要パーソンの抽出処理の順番も任意であり、どちらを先に行ってもよいし、同時に行ってもよい。
【００３５】
以下、ビジネスプロセス生成のための基本的な動作を分かり易く説明する観点から、まずは、シーケンスフローの再構築、重要プロセス抽出、重要パーソン抽出を除いた例を示し、その後に、シーケンスフローの再構築、重要プロセス抽出、重要パーソン抽出について、順次詳細に説明する。
【００３６】
図３のステップＳ１８０では、ビジネスプロセス出力部１０５が、シーケンスフロー行列（ＳＦＭ）の内容とロール・タスク行列（ＲＴＭ）の内容を統合し、ビジネスプロセスを出力する。図９に出力例を示す。図９の例において、例えば、ロール・タスク行列（ＲＴＭ）におけるロールＲ１のタスクはＡとＢであり、シーケンスフロー行列（ＳＦＭ）において、Ａ→Ｂのフローが示されているから、これらを統合して、図９に示すビジネスプロセスのＲ１のスイムレーンが得られる。また、ロール・タスク行列（ＲＴＭ）において、ロールＲ２のタスクがＣであり、シーケンスフロー行列（ＳＦＭ）において、Ａ→Ｃのフローが示されているから、これらを統合して、図９に示すビジネスプロセスのＲ１のスイムレーンから、Ｒ２のスイムレーンへのフローが得られる。
【００３７】
なお、ビジネスプロセス出力部１０５は、ビジネスプロセスの画面をユーザに表示することとしてもよいし、ビジネスプロセスの画面を表示するために必要な情報（例：ＨＴＭＬ情報）を他の装置に送信し、他の装置にビジネスプロセスの画面を表示させることとしてもよい。
【００３８】
＜ステップＳ１４０の詳細＞
図４のフローチャートを参照して、ステップＳ１４０において対応関係識別部１０４が実行する処理内容をより詳細に説明する。
【００３９】
ステップＳ２１０では、ロール・タスク行列（ＲＴＭ）を構築する。ここでは、まず、ユーザ・ロール行列（ＵＲＭ）の列（ロール）の内容を取得し、シーケンスフロー行列（ＳＦＭ）の内容（タスク）を取得する。例えば、図５、図７の例であれば、ユーザ・ロール行列（ＵＲＭ）からＲ１、Ｒ２、Ｒ３が取得され、シーケンスフロー行列（ＳＦＭ）からＡ、Ｂ、Ｃ、Ｄが取得される。そして、行がロール、列がタスクに対応した、ロール・タスク行列（ＲＴＭ）（行列の値は全てＮｕｌｌ）を作成する。これは、図８に示した例においては、いずれの行列の値が全て空であるものに相当する。
【００４０】
以下のステップＳ２２０、Ｓ２３０の処理は、システムログデータの全てのレコードに対して行われる。
【００４１】
ステップＳ２２０では、タスク実施ロールを識別する。具体的には、システムログデータのレコードと、ユーザ・ロール行列（ＵＲＭ）の内容を対応させて、当該レコードのタスクを実施するロールを特定する。例えば、図６のシステムログデータの２番目のレコードに着目すると、タスクＢはＩＤ＝００１のユーザが実行することが示されている。また、図７のユーザ・ロール行列（ＵＲＭ）を参照すると、ＩＤ＝００１のユーザは、ロールＲ１に属するから、システムログデータの２番目のレコードにおけるタスクＢは、ロールＲ１が実施することがわかる。
【００４２】
ステップＳ２３０では、ロール・タスク行列（ＲＴＭ）に結果を付与する。すなわち、ステップＳ２２０で特定したロールとタスクに対応する、ロール・タスク行列（ＲＴＭ）のセル（行：ロール、列：タスク）に、値１を格納する。既に当該セルに値１が格納されていても上書きする。
【００４３】
例えば、図６、図７について上述したように、システムログデータの２番目のレコードにおけるタスクＢを、ロールＲ１が実施する場合、図８に示すように、ロール・タスク行列（ＲＴＭ）のＲ１−Ｂのセルに１が入る。
【００４４】
以上、説明したように、対応関係識別部１０４において、システムログデータを参照し、各タスクを実行したユーザを特定した上で、当該ユーザの属する組織（ロール）を選択し、ロールとタスクの対応関係を識別するので、タスクの実行順序（シーケンスフロー）に対して、ロールの情報を付与した、ビジネスプロセスを生成することができる。
【００４５】
より詳細には、システムの全ての実行ログを参照（全集調査）し、タスクを実行したユーザと、各タスクを実行するロールを特定しているため、出力結果（ロールとタスクの対応関係）は、調査の抜け漏れがなく（＝網羅的）、人手によるミスがない（＝正しい）ことを保証できる。すなわち、各タスクを実行するロールを完全に（網羅的、且つ正しく）特定することが可能となる。
【００４６】
また、タスクの実行順序の情報（シーケンスフロー）と、組織の情報（ユーザとロールの関係）を対応付けた内容（ロールとタスクの関係）を、システムの実行ログに基づいて、自動生成することができる。これにより、人手による対応付け作業（例：インタビューや現場観察）よりも、ビジネスプロセスの高速な作成が可能となる。
【００４７】
＜シーケンスフローの再構築の動作について＞
次に、図３のステップＳ１５０において、シーケンスフロー修正部１１４により実行されるシーケンスフローの再構築の動作について説明する。
【００４８】
図３のステップＳ１５０におけるシーケンスフローの再構築において、シーケンスフロー修正部１１４には、まず、対応関係識別部１０４からシーケンスフロー行列（ＳＦＭ）とロール・タスク行列（ＲＴＭ）が入力される。シーケンスフロー修正部１１４は、ロール・タスク行列（ＲＴＭ）の内容において、１つのタスクに対して実行するロールが複数存在する場合には、その数分だけ当該タスクの複製を作成する。作成結果を、ロール・タスク行列（ＲＴＭ）及びシーケンスフロー行列（ＳＦＭ）に反映し、行列の内容の修正を行う。そして、修正済みのシーケンスフロー行列（ＳＦＭ）と修正済みのロール・タスク行列（ＲＴＭ）を出力する。
【００４９】
図１０のフローチャートを参照して、ステップＳ１５０においてシーケンスフロー修正部１１４が実行する処理内容をより詳細に説明する。
【００５０】
ステップＳ３１０では、ロール・タスク行列（ＲＴＭ）の内容において、複数のロールが実行しているタスク（群）を選択する。例えば、図１１の左側に示すロール・タスク行列（ＲＴＭ）の場合、ロールＲ１とＲ２がタスクＣを実行しているので、この場合はタスクＣが選択される。
【００５１】
以下のステップＳ３２０〜Ｓ３７０は選択された全てのタスクについて実行される。
【００５２】
ステップＳ３２０では、選択されたタスクと、ロール・タスク行列（ＲＴＭ）とに基づき実行ロールリストを作成する。具体的には、選択されたタスクを実行するロールの情報を、ロール・タスク行列（ＲＴＭ）から取得し、その内容を実行ロールリストとして作成する。図１１の例では、実行ロールリストは｛Ｒ２，Ｒ３｝となる。
【００５３】
ステップＳ３３０において、選択されたタスクの複製を、（実行ロールリストの要素総数−１）個分作成し、ロール・タスク行列（ＲＴＭ）の列として追加する。
【００５４】
図１１に示す例では、上述したように選択されたタスクＣの実行ロールリストが｛Ｒ２，Ｒ３｝であり、この場合、複製を１個（＝２−１）作成する。そして、ロール・タスク行列（ＲＴＭ）には、複製タスク（名称をＣ'とする）の列が新規に追加される。
【００５５】
ステップＳ３４０では、選択されたタスク及び実行ロールリストに基づいて、シーケンスフロー行列（ＳＦＭ）の行・列を追加する。具体的には、選択されたタスクの複製を、（実行ロールリストの要素総数−１）個分作成し、シーケンスフロー行列（ＳＦＭ）の行及び列として追加する。
【００５６】
図１１、図１２に示す例の場合、選択されたタスクＣの実行ロールリストが｛Ｒ２，Ｒ３｝であり、この場合、複製タスクＣ'を１個（＝２−１）作成する。そして、図１２に示すとおり、シーケンスフロー行列（ＲＴＭ）の行と列のそれぞれに複製タスクＣ'が追加される。
【００５７】
以下のステップＳ３５０、Ｓ３６０、Ｓ３７０は、追加された全ての列に対して実行される。
【００５８】
ステップＳ３５０では、選択されたタスク、実行ロールリストに基づいて、ロール・タスク行列（ＲＴＭ）の内容を修正する。すなわち、追加された列において、実行ロールリストの２番目に記載のロールに対応する行のセルに、値１を格納する。次に、選択されたタスクに対応する列において、当該ロールに対応するセルの値を、１から０に修正する。
【００５９】
図１１に示す例では、追加されたＣ'の列において、実行ロールリスト｛Ｒ２，Ｒ３｝の２番目に記載のロールＲ３に対応する行のセルに１が格納される。また、選択されたタスクＣに対応する列において、当該ロールＲ３に対応するセルの値を、１から０に修正している。
【００６０】
ステップＳ３６０では、選択されたタスク、実行ロールリストに基づいて、シーケンスフロー行列（ＳＦＭ）の内容を修正する。具体的には、選択されたタスクの列において、値が１と記載のセルに対応する行（シーケンスフローの中で、選択されたタスクの直前に実行されるタスク）を特定する。特定された行において、追加された列に対応するセルに値１を格納する。次に、選択されたタスクの行において、値が１と記載のセルに対応する列（シーケンスフローの中で、選択されたタスクの直後に実行されるタスク）を特定し、特定された列において、追加された行に対応するセルに値１を格納する。
【００６１】
図１２に示す例では、選択されたタスクＣの列において、値が１と記載のセルに対応する行（タスクＡの行）を特定する。特定されたタスクＡの行において、追加されたＣ'の列に対応するセルに値１を格納する。また、選択されたタスクＣの行において、値が１と記載のセルに対応する列（タスクＤの例）を特定し、特定されたタスクＤの列において、追加された行（Ｃ'）に対応するセルに値１を格納する。
【００６２】
ステップＳ３７０では、実行ロールリストの消込をする。具体的には、２番目に記載のロールを実行ロールリストから消去する処理を行う。図１１、図１２の例では、実行ロールリスト｛Ｒ２，Ｒ３｝の２番目に記載のロールＲ３が消去される。
【００６３】
図１３は、シーケンスフローの再構築を行う場合における出力例を示す図である。ここでは、ビジネスプロセス出力部１０５は、上述した処理により修正されたロール・タスク行列（ＲＴＭ）と、修正されたシーケンスフロー行列（ＳＦＭ）とを統合することで、図１３の右側に示すように、タスクＣが、ロールＲ２とＲ３の双方により実行されていることを表現したビジネスプロセスが生成、出力される。
【００６４】
以上、説明したように、シーケンスフローの再構築により、同一タスクを複数のロールが実行していることを特定することが可能となる。すなわち、システムの全ての実行ログを参照（全数調査）し、同一タスクを過去に一度でも実行したことがあるロールを抽出することで、同一タスクを複数ロールが実行していた場合には、それを確実に検知できる。
【００６５】
また、同一タスクを複数ロールが実行していた場合のシーケンスフローを、自動生成することができる。これにより、同一タスクを複数のロールが実行している場合でも、ビジネスプロセスの高速な作成が可能となる。
【００６６】
＜重要プロセス抽出処理＞
次に、図３のステップＳ１６０において、重要プロセス抽出部１２１が実行する重要プロセス抽出処理について説明する。以下、図１３に示したようなタスクＡ、Ｂ、Ｃ、Ｃ'、Ｄから構成されるビジネスプロセスにおいて、メインストリームを特定する実施例を説明する。なお、前述したように、メインストリームとは、ビジネスプロセスを構成するタスクの中で実行頻度が高いタスクの繋がり（高頻度実行ルート）を意味する。
【００６７】
タスクＡ、Ｂ、Ｃ、Ｃ'、Ｄから構成される当該ビジネスプロセスにおけるタスクの流れ（シーケンスフロー）の内容は、図１４に示すシーケンスフロー行列（ＳＦＭ）のように表せる。
【００６８】
次に、このビジネスプロセスにおける実行ルートの１つとして、Ａ→Ｂ→Ｄを考える。この実行ルートをパターン（１）とする。当該パターン（１）は、図１５（ａ）において、「パターン（１）」の網掛けしたタスク群として示されている。
【００６９】
また、パターン（１）の実行ルートを表現するための行列（実行ルート行列（ＥＲＭ：Ｅｘｅｃｕｔｉｏｎ  Ｒｏｕｔｅ  Ｍａｔｒｉｘ））は、図１５（ｂ）において、「パターン（１）の実行ルート行列」として表わすことができる。
【００７０】
なお、図１５（ｂ）には、参考として、パターン（１）の他、図１５（ａ）に示すパターン（２）〜（４）のそれぞれについての実行ルート行列も示されている。パターン（１）〜（４）は、後述する図１６におけるパターン（１）〜（４）に対応する。
【００７１】
重要プロセスの抽出ステップでは、重要プロセス抽出部１２１が、システムログ入力部１０２により入力されたシステムの実行ログから、実行ルートのパターンを識別し、それぞれのパターンの実行回数を測定する。その上で、例えば、最も実行回数が多い実行ルートを、当該業務のメインストリーム（高頻度実行ルート）であると判断する。以下、具体例を説明する。
【００７２】
システムの実行ログは、例えば、図６に示したものであり、１つの仕事（Ｗｏｒｋ）の単位（例：決裁承認ソフトウェアにおける１伝票）について、どのタスクが、いつ、だれが実行されたのかが記録されたログである。
【００７３】
本具体例では、実行ログとして、図１６に示す実行ログを使用する。図１６に示す実行ログの例では、左から、Ｗｏｒｋ−ＩＤ、タスク名、タスクの実行時間が記録されている。実行時間は簡略化のため、全てｔｉｍｅｓｔａｍｐと記載しているが、実際にはレコードの上から下に向かって、時刻が進んでいる値となっている。なお本来は実行者の情報であるアクタＩＤも記録されるが、図１６には図示していない。なお、アクタＩＤをユーザＩＤと称してもよい。
【００７４】
また、図１６に示すように、重要プロセス抽出部１２１により、実行ルート頻度テーブルが生成され、値の更新等がなされる。実行ルート頻度テーブルは、ビジネスプロセス生成装置１００におけるメモリ等の記憶手段に格納されるテーブルである。実行ルート頻度テーブルは、"実行ルートパターン"カラムと"実行頻度"カラムを有する。
【００７５】
図１６に示す実行ログの例では、Ｗｏｒｋ‐ＩＤがＣａｓｅ１の場合、タスクがＡ→Ｂ→Ｄと実行されていることが示されている。重要プロセス抽出部１２１は、Ｗｏｒｋ‐ＩＤ毎に、実行ログの各レコードをｔｉｍｅｓｔａｍｐの時刻の順に確認し、このような実行ルートをパターン（Ａ→Ｂ→Ｄはパターン（１））として識別し、実行ルート頻度テーブルの情報を更新する。
【００７６】
より具体的には、重要プロセス抽出部１２１は、パターン（１）を検出した場合、実行ルート頻度テーブルにおける"実行ルートパターン"カラムが（１）となる新規のレコードを追加し、当該レコードの"実行頻度"カラムに１（＝実行回数）を入力する。
【００７７】
このようにして、重要プロセス抽出部１２１は、Ｗｏｒｋ‐ＩＤ毎にタスクの実行状況を確認し、検出したパターンが実行ルート頻度テーブルに存在すれば、当該パターンのレコードにおける"実行頻度"カラムの値をインクリメント（＋１）させる。過去にないパターンであれば、実行パターンを増やす。すなわち、実行ルート頻度テーブルにレコードを追加する。
【００７８】
図１６に示す例では、Ｗｏｒｋ‐ＩＤがＣａｓｅ１，Ｃａｓｅ２，Ｃａｓｅ３，Ｃａｓｅ４においてそれぞれ新規の実行ルートが識別されたので、都度、実行ルート頻度テーブルにレコードを追加し、実行頻度を１と設定していく。Ｗｏｒｋ‐ＩＤがＣａｓｅ５で初めて過去にあるパターン（実行ルートパターン（１））が識別されたので、当該レコードの"実行頻度"カラムは２にインクリメントされている。
【００７９】
重要プロセス抽出部１２１は、上記の処理を実行ログ全体に対して行って得られた実行ルート頻度テーブルから、実行頻度が最大のパターンを取得し、当該パターンの実行ルートをメインストリームと判断する。なお、実行頻度が最大のパターンのみを取得することの他、実行頻度の上位Ｎ番目（Ｎは２以上の整数）までのパターンを取得することとしてもよい。
【００８０】
重要プロセス抽出部１２１は、処理結果（例：実行頻度が最大のパターンの情報）を、ビジネスプロセス生成装置１００の外部へ出力してもよいし、処理結果をビジネスプロセス出力部１０５に渡してもよい。また、重要プロセス抽出部１２１は、実行ルート頻度テーブル作成までの処理を行って、作成された実行ルート頻度テーブルの情報をビジネスプロセス生成装置１００の外部へ出力してもよい。
【００８１】
実行頻度が最大のパターンがパターン（４）（Ａ→Ｃ'→Ｄ）である場合において、当該パターン（４）をビジネスプロセス出力部１０５に渡し、ビジネスプロセス出力部１０５が、ビジネスプロセスの出力を行う場合における出力例を図１７（ｂ）に示す。図１７（ａ）には、比較のために、従来技術で想定される出力例を示している。
【００８２】
図１７（ｂ）に示すように、パターン（４）（Ａ→Ｃ'→Ｄ）であるメインストリーム（太線で表示）が、分かり易くビジネスプロセス上に示される。すなわち、ロールを加味したビジネスプロセスの生成結果と、実行ログの分析結果を重ねあわせることで、真のメインストリームの特定を行うことができる。この真のメインストリームは、図１７（ａ）の従来技術では発見できないものである。
【００８３】
また、図１７（ｂ）に示すように、タスクＣは、ロールＲ２とＲ３の双方が実行しているため、両者は別ルートとして識別される。そして、重要プロセス抽出処理により、真のメインストリームはＡ→Ｃ'→Ｄであることがわかる。つまり、このメインストリームを試験すべきであることがわかる。
【００８４】
上記のように、重要プロセス抽出処理を行うことで、例えば、タスクＣがロールＲ２とＲ３の双方が実行していたというビジネスプロセスであったとしても、それぞれのロール情報を反映させて重要度の高い実行パターン（メインストリーム）を抽出することができるため、網羅的、且つ詳しい（ロールのレベルまで加味した）ビジネスプロセスの分析・把握を実現することができる。
【００８５】
なお、ここで説明した具体例では、同一タスクを複数のロールが実行している場合を例に説明しているが、同一タスクを複数のロールが実行していない場合でも、同様にして、重要プロセス抽出処理を行って、メインストリームの表示を行うことが可能である。
【００８６】
＜重要パーソン抽出処理＞
次に、図３のステップＳ１７０において、重要パーソン抽出部１２２が実行する重要パーソン抽出処理について説明する。重要パーソン抽出処理においては、図１８に示す実行ログを使用するとともに、アクタ実行頻度マトリクスが生成される。
【００８７】
図１８に示す実行ログは、図１６に示す実行ログと同じものであるが、図１８には、アクタＩＤが示されている。すなわち、図１８に示す実行ログでは、左から、Ｗｏｒｋ‐ＩＤ、タスク名、タスクの実行時間、実行者の情報であるアクタＩＤが記録されている。
【００８８】
重要パーソン抽出ステップにおいて、重要パーソン抽出部１２２は、システムログ入力部１０２により入力された実行ログから、アクタ実行頻度マトリクスを作成する。アクタ実行頻度マトリクスは、ビジネスプロセス生成装置１００におけるメモリ等の記憶手段に格納されるマトリクスである。
【００８９】
図１８に示すとおり、アクタ実行頻度マトリクスの行にはアクタＩＤが並び、列にはタスクが並ぶ。アクタ実行頻度マトリクスの各セルには、セルの行に対応するアクタが、セルの列に対応するタスクを実行した回数が格納される。例えば、図１８のアクタ実行頻度マトリクスにおける第１行・第１列のセルは、アクタＩＤが１０００１の人物が、タスクＡを４回実行している、という意味になる。
【００９０】
重要パーソン抽出部１２２は、実行ログの各レコードについて、タスクとアクタＩＤの組を確認し、当該組に対応する、アクタ実行頻度マトリクスのセルにおける値をインクリメントする（＋１する）処理を行うことでアクタ実行頻度マトリクスを完成させる。
【００９１】
そして、例えば、重要パーソン抽出部１２２は、タスク毎に、実行頻度が最大のアクタを取得する。なお、実行頻度が最大のアクタのみを取得することの他、実行頻度の上位Ｎ番目（Ｎは２以上の整数）までのアクタを取得することとしてもよい。
【００９２】
重要パーソン抽出部１２２は、処理結果（例：タスク毎の実行頻度が最大のアクタの情報）を、ビジネスプロセス生成装置１００の外部へ出力してもよいし、処理結果をビジネスプロセス出力部１０５に渡してもよい。また、重要パーソン抽出部１２２は、アクタ実行頻度マトリクス作成までの処理を行って、作成されたアクタ実行頻度マトリクスの情報をビジネスプロセス生成装置１００の外部へ出力してもよい。
【００９３】
処理結果をビジネスプロセス出力部１０５に渡す場合、例えば、ビジネスプロセス出力部１０５は、ビジネスプロセスの各タスク上（あるいはその近傍）に、実行頻度が最大のアクタの情報を表示することができる。
【００９４】
上記のように、アクタ実行頻度マトリクスを完成することで、各タスクを高い頻度で実行している人物、すなわち、当該タスクの経験や知識を多く有する人物（重要パーソン）が特定できるようになる。
【００９５】
例えば、図１７（ｂ）に示すビジネスプロセスにおいて、図１８のアクタ実行頻度マトリクスが完成した状況を想定する。この場合、タスクＣ'とＤは同じロールＲ３により実行されるタスクであるが、アクタ１０００４のみにヒアリングしたとしても、タスクＤに関する情報しか聞けない。
【００９６】
重要パーソン抽出処理を行う本実施の形態では、それぞれのタスクについて、タスクＣ'は１０００５が全て実施、タスクＤは１０００４が全て実施、ということが分かるようになるため、タスクＤに関する情報を取得するには、アクタ１０００５にも聞く必要がある、と認識できるようになる。このように、タスクの粒度で重要パーソンを特定することができるようになる。
【００９７】
（実施の形態のまとめ）
以上、説明したように、本実施の形態により、複数のタスクの実行順序、及び各タスクのロールの情報を含むビジネスプロセスを生成するためのコンピュータに、タスクの実行順序を示すシーケンスフローを入力するシーケンスフロー入力ステップと、各アクタが属するロールを示すロール情報を入力するロール情報入力ステップと、各タスクを実行するアクタの情報を含むシステムの実行ログを入力する実行ログ入力ステップと、前記ロール情報と前記実行ログとに基づいて、各タスクを実行するロールを特定するロール・タスク情報を生成し、当該ロール・タスク情報と前記シーケンスフローとに基づいて、前記ビジネスプロセスを生成するビジネスプロセス生成ステップと、前記実行ログに基づいて、タスク実行ルートのパターン毎の実行頻度を抽出する重要プロセス抽出ステップと、を実行させるためのビジネスプロセス生成プログラムが提供される。
【００９８】
前記ビジネスプロセス生成ステップは、前記ロール・タスク情報において、あるタスクに複数のロールが対応する場合に、当該タスクが、当該複数のロールにより実行されていることを示す情報を含む前記ビジネスプロセスを生成するステップを有することとしてもよい。
【００９９】
前記ビジネスプロセス生成プログラムは、前記コンピュータに、前記実行ログに基づき、アクタによるタスクの実行頻度を、タスク毎及びアクタ毎に抽出する重要パーソン抽出ステップ、を更に実行させることとしてもよい。
【０１００】
また、本実施の形態により、複数のタスクの実行順序、及び各タスクのロールの情報を含むビジネスプロセスを生成するコンピュータが実行するビジネスプロセス生成方法であって、タスクの実行順序を示すシーケンスフローを入力するシーケンスフロー入力ステップと、各アクタが属するロールを示すロール情報を入力するロール情報入力ステップと、各タスクを実行するアクタの情報を含むシステムの実行ログを入力する実行ログ入力ステップと、前記ロール情報と前記実行ログとに基づいて、各タスクを実行するロールを特定するロール・タスク情報を生成し、当該ロール・タスク情報と前記シーケンスフローとに基づいて、前記ビジネスプロセスを生成するビジネスプロセス生成ステップと、前記実行ログに基づいて、タスク実行ルートのパターン毎の実行頻度を抽出する重要プロセス抽出ステップと、を備えることを特徴とするビジネスプロセス生成方法が提供される。
【０１０１】
以上、本実施の形態について説明したが、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【０１０２】
１００  ビジネスプロセス生成装置
１０１  シーケンスフロー入力部
１０２  システムログ入力部
１０３  ロール情報入力部
１０４  対応関係識別部
１０５  ビジネスプロセス出力部
１１４  シーケンスフロー修正部
１２１  重要プロセス抽出部
１２２  重要パーソン抽出部
【図１】
0006577914.tif 000002
【図２】
0006577914.tif 000003
【図３】
0006577914.tif 000004
【図４】
0006577914.tif 000005
【図５】
0006577914.tif 000006
【図６】
0006577914.tif 000007
【図７】
0006577914.tif 000008
【図８】
0006577914.tif 000009
【図９】
0006577914.tif 000010
【図１０】
0006577914.tif 000011
【図１１】
0006577914.tif 000012
【図１２】
0006577914.tif 000013
【図１３】
0006577914.tif 000014
【図１４】
0006577914.tif 000015
【図１５】
0006577914.tif 000016
【図１６】
0006577914.tif 000017
【図１７】
0006577914.tif 000018
【図１８】
0006577914.tif 000019