(57)【特許請求の範囲】
【請求項１】
コンピュータシステムの稼働状況から業務の流れを表す業務モデルを自動生成する業務モデル生成プログラムにおいて、
コンピュータを、
複数のデータ集合の更新処理を含むデータ更新処理を個々に識別する処理識別情報と、前記データ更新処理によって更新された前記データ集合のデータ集合名と、前記データ集合が更新された更新時刻とが関連付けて記憶された更新情報記憶手段を参照して、前記データ更新処理ごとに、前記データ更新処理によって更新されたすべての前記データ集合の前記データ集合名を前記更新時刻の早い順に並べたフロー情報を作成すると共に、作成したすべての前記フロー情報から、同一の前記フロー情報の出現数をそれぞれ計算する業務フロー抽出手段、
前記業務フロー抽出手段で作成した前記フロー情報で示される業務フローを前記出現数の大きい順に、前記出現数が、予め設定された出現数の閾値条件に該当する出現数である前記業務フローを選択し、選択した前記業務フローを典型業務フローと判定すると共に、選択しなかった前記業務フローを例外業務フローと判定する業務フロー分類手段、
前記業務フロー分類手段で判定したすべての前記典型業務フローの情報から、それぞれの前記データ集合名をノードとする典型業務フロー図を表示すると共に、前記業務フロー分類手段で判定した前記例外業務フローとすべての前記典型業務フローとの情報から、それぞれの前記データ集合名をノードとする例外業務フロー図を表示する業務モデル表示手段、
として機能させることを特徴とする業務モデル生成プログラム。
【請求項２】
前記業務フロー分類手段は、前記典型業務フローの判定において、前記フロー情報で示される前記業務フローを前記出現数の大きい順に整列し、累積の前記出現数が予め設定された閾値に達するまで前記出現数の上位から順に前記業務フローを選択することを特徴とする請求項１記載の業務モデル生成プログラム。
【請求項３】
前記業務モデル表示手段は、前記例外業務フローを示す情報の一覧を表示し、ユーザの操作入力によって１つ以上の前記例外業務フローが選択されると、すべての前記典型業務フローと選択された前記例外業務フローとの情報から、前記例外業務フロー図を表示することを特徴とする請求項１又は２記載の業務モデル生成プログラム。
【請求項４】
前記業務フロー分類手段は、前記典型業務フローの判定の前にユーザの操作によってユーザ指定閾値が入力されると、入力された前記ユーザ指定閾値を前記閾値条件として用いて前記典型業務フローの判定を行うことを特徴とする請求項１乃至３の何れか一項に記載の業務モデル生成プログラム。
【請求項５】
前記業務モデル表示手段は、前記例外業務フローごとに、すべての前記典型業務フローとの間で前記データ集合名の列の乖離度を計算して、最も小さい前記乖離度を前記例外業務フローの代表距離と判定し、前記代表距離が大きい順に整列して前記例外業務フローを示す情報の一覧を表示することを特徴とする請求項３記載の業務モデル生成プログラム。
【請求項６】
前記業務モデル表示手段は、前記例外業務フローごとに、すべての前記典型業務フローとの間で前記データ集合名の列の乖離度を計算して、最も前記乖離度が小さい前記典型業務フローを前記例外業務フローの分類先と判定し、前記分類先に応じて区分して前記例外業務フローを示す情報の一覧を表示することを特徴とする請求項３記載の業務モデル生成プログラム。
【請求項７】
前記業務モデル表示手段は、ユーザの操作入力によって前記データ集合名の列である検索列が指定されると、前記例外業務フローごとに前記検索列の出現回数を計算し、前記出現回数が多い順に整列して前記例外業務フローを示す情報の一覧を表示することを特徴とする請求項３記載の業務モデル生成プログラム。
【請求項８】
前記業務モデル表示手段は、ユーザの操作入力によって事前データ集合名と事後データ集合名とが指定されると、前記事後データ集合名が出現し前記事前データ集合名が出現しない前記例外業務フローを条件不備フローと判定し、前記条件不備フローを区別して前記例外業務フローを示す情報の一覧を表示することを特徴とする請求項３記載の業務モデル生成プログラム。
【請求項９】
前記業務モデル表示手段は、同一の前記データ集合名の列が複数回出現する前記例外業務フローを非効率フローと判定し、前記非効率フローを区別して前記例外業務フローを示す情報の一覧を表示することを特徴とする請求項３記載の業務モデル生成プログラム。
【請求項１０】
前記業務モデル表示手段は、同一の前記データ集合名が連続して出現する前記例外業務フローを非効率フローと判定し、前記非効率フローを区別して前記例外業務フローを示す情報の一覧を表示することを特徴とする請求項３記載の業務モデル生成プログラム。
【請求項１１】
コンピュータシステムの稼働状況から業務の流れを表す業務モデルを自動生成する、コンピュータが実行する業務モデル生成方法において、
前記コンピュータが、複数のデータ集合の更新処理を含むデータ更新処理を個々に識別する処理識別情報と、前記データ更新処理によって更新された前記データ集合のデータ集合名と、前記データ集合が更新された更新時刻とが関連付けて記憶された更新情報記憶手段を参照して、前記データ更新処理ごとに、前記データ更新処理によって更新されたすべての前記データ集合の前記データ集合名を前記更新時刻の早い順に並べたフロー情報を作成すると共に、作成したすべての前記フロー情報から、同一の前記フロー情報の出現数をそれぞれ計算し、
前記コンピュータが、作成した前記フロー情報で示される業務フローを前記出現数の大きい順に、前記出現数が、予め設定された出現数の閾値条件に該当する出現数である前記業務フローを選択し、選択した前記業務フローを典型業務フローと判定すると共に、選択しなかった前記業務フローを例外業務フローと判定し、
前記コンピュータが、判定したすべての前記典型業務フローの情報から、それぞれの前記データ集合名をノードとする典型業務フロー図を表示すると共に、判定した前記例外業務フローとすべての前記典型業務フローとの情報から、それぞれの前記データ集合名をノードとする例外業務フロー図を表示する、
ことを特徴する業務モデル生成方法。
【請求項１２】
前記典型業務フローの判定において、前記コンピュータが、前記フロー情報で示される前記業務フローを前記出現数の大きい順に整列し、累積の前記出現数が予め設定された閾値に達するまで前記出現数の上位から順に前記業務フローを選択することを特徴とする請求項１１記載の業務モデル生成方法。
【請求項１３】
コンピュータシステムの稼働状況から業務の流れを表す業務モデルを自動生成する業務モデル生成装置において、
複数のデータ集合の更新処理を含むデータ更新処理を個々に識別する処理識別情報と、前記データ更新処理によって更新された前記データ集合のデータ集合名と、前記データ集合が更新された更新時刻とが関連付けて記憶された更新情報記憶手段を参照して、前記データ更新処理ごとに、前記データ更新処理によって更新されたすべての前記データ集合の前記データ集合名を前記更新時刻の早い順に並べたフロー情報を作成すると共に、作成したすべての前記フロー情報から、同一の前記フロー情報の出現数をそれぞれ計算する業務フロー抽出手段と、
前記業務フロー抽出手段で作成した前記フロー情報で示される業務フローを前記出現数の大きい順に、前記出現数が、予め設定された出現数の閾値条件に該当する出現数である前記業務フローを選択し、選択した前記業務フローを典型業務フローと判定すると共に、選択しなかった前記業務フローを例外業務フローと判定する業務フロー分類手段と、
前記業務フロー分類手段で判定したすべての前記典型業務フローの情報から、それぞれの前記データ集合名をノードとする典型業務フロー図を表示すると共に、前記業務フロー分類手段で判定した前記例外業務フローとすべての前記典型業務フローとの情報から、それぞれの前記データ集合名をノードとする例外業務フロー図を表示する業務モデル表示手段と、
を有することを特徴とする業務モデル生成装置。
【請求項１４】
前記業務フロー分類手段は、前記典型業務フローの判定において、前記フロー情報で示される前記業務フローを前記出現数の大きい順に整列し、累積の前記出現数が予め設定された閾値に達するまで前記出現数の上位から順に前記業務フローを選択することを特徴とする請求項１３記載の業務モデル生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は業務の流れを表す業務モデルを生成する業務モデル生成プログラム、業務モデル生成方法および業務モデル生成装置に関し、特にコンピュータシステムの稼働状況から業務の流れを表す業務モデルを自動生成する業務モデル生成プログラム、業務モデル生成方法および業務モデル生成装置に関する。
【背景技術】
【０００２】
現在、コンピュータによるデータ処理が普及し、さまざまな業務でコンピュータシステムが利用されている。例えば、顧客へ商品販売を行う企業では、顧客情報の管理、商品の在庫管理、受注管理などの処理を行うコンピュータシステムが利用されている。ここで、コンピュータシステムを利用した業務の流れ（以下、業務フローという）は複雑であるため、業務フローの把握を容易にするために、業務モデルが作成される。業務モデルは、業務フローを人が理解容易な形式で抽象的に記述したものである。業務モデルを用いることで、経営者やシステム管理者は業務フローを直感的に理解することができる。業務モデルは、コンピュータシステムの導入時に設計情報の１つとして作成されることが多い。【０００３】
ところで、業務モデルは１度だけ作成すればよいものではなく、適時作成し直す必要がある。例えば、時間の経過に伴い、業務フローがコンピュータシステムの導入当初と比べて変化する場合も多い。この場合、システム管理者はコンピュータシステムの利用方法が適切か判断するために、現在の業務フローを把握する必要がある。また、経営者は業務内容の見直しやコンピュータシステムの再構築を検討するために、現在の業務フローを把握する必要がある。一方、業務モデルの作成には多大な労力を必要とする。業務モデルは、一般に、システム管理者などが業務担当者にアンケートやヒアリングを行うことによって作成される。したがって、短期間で業務モデルを作成することが困難であるという問題がある。【０００４】
そこで、近年、コンピュータシステムの実際の稼働状況を分析することで、業務モデルを自動生成する技術が注目されている。このような技術の１つとして、データの更新状況や業務担当者の操作入力などの情報を取得し分析することで、コンピュータシステムによる一連の処理の順序関係を判定し、業務モデルを生成する技術がある（例えば、非特許文献１参照）。これにより、業務モデルの作成に要する時間を大幅に短縮することができる。
【非特許文献１】W.M.P van der Aalst、外５名、"Workflow Mining: A Survey of Issues and Approaches"、［online］、［２００６年１１月８日検索］、インターネット〈URL: http://is.tm.tue.nl/research/processmining/papers/wf-min-surv.pdf〉
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、非特許文献１記載の技術は、発生頻度の大きな典型的な業務フローを表現することを目的としており、発生頻度の小さな例外的な業務フローを無視しているという問題がある。【０００６】
すなわち、上記技術では、２つの隣接する処理間のフローの中で、頻度が小さいフローをノイズとして除去している。これにより、生成される業務モデルが過度に複雑になり理解容易性が低下することを防止している。【０００７】
一方、このような例外的な業務フローは、業務内容の見直しやコンピュータシステムの再構築を検討する上で、有用な情報となりうる。例えば、発生頻度が小さい業務フローであっても、コンピュータシステムの運用上好ましくない業務フローである場合、このような業務フローが発生しないようにコンピュータシステムの設計を見直す必要がある。したがって、必要に応じて例外的な業務フローも把握できることが求められている。【０００８】
本発明はこのような点に鑑みてなされたものであり、コンピュータシステムの稼働状況を示す情報として代表的なデータベースの更新情報から、典型的な業務フローと例外的な業務フローとを区別して表現する業務モデルを自動生成する業務モデル生成プログラム、業務モデル生成方法および業務モデル生成装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明では上記課題を解決するために、図１に示すような業務モデル生成プログラムが提供される。本発明に係る業務モデル生成プログラムは、データベースの更新情報から、典型的な業務フローと例外的な業務フローとを区別して表現する業務モデルを生成するものである。この業務モデル生成プログラムを実行するコンピュータ１０は、更新情報記憶手段１１、業務フロー抽出手段１２、業務フロー分類手段１３および業務モデル表示手段１４を有する。更新情報記憶手段１１は、複数のデータ集合の更新処理を含むデータ更新処理を個々に識別する処理識別情報と、データ更新処理によって更新されたデータ集合のデータ集合名と、データ集合が更新された更新時刻とを関連付けて記憶する。業務フロー抽出手段１２は、更新情報記憶手段１１を参照して、データ更新処理ごとに、データ更新処理によって更新されたすべてのデータ集合のデータ集合名を更新時刻の早い順に並べたフロー情報を作成すると共に、作成したすべてのフロー情報から、同一のフロー情報の出現数をそれぞれ計算する。業務フロー分類手段１３は、業務フロー抽出手段１２で作成したフロー情報で示される業務フローを出現数の大きい順に、出現数が、予め設定された出現数の閾値条件に該当する出現数である業務フローを選択し、選択した業務フローを典型業務フローと判定すると共に、選択しなかった業務フローを例外業務フローと判定する。業務モデル表示手段１４は、業務フロー分類手段１３で判定したすべての典型業務フローの情報から、それぞれのデータ集合名をノードとする典型業務フロー図３１を表示すると共に、業務フロー分類手段１３で判定した例外業務フローとすべての典型業務フローとの情報から、それぞれのデータ集合名をノードとする例外業務フロー図３２を表示する。
【００１０】
このような業務モデル生成プログラムを実行するコンピュータによれば、業務フロー抽出手段１２により、データ集合の更新順序を表すフロー情報が作成されると共に、同一のフロー情報の出現数がそれぞれ計算される。次に、業務フロー分類手段１３により、フロー情報の出現数に基づいて、フロー情報で示される業務フローが典型業務フローと例外業務フローのいずれかに分類される。そして、業務モデル表示手段１４により、すべての典型業務フローを表現する典型業務フロー図３１が表示されると共に、すべての典型業務フローに加えて例外業務フローも表現する例外業務フロー図３２が表示される。
【００１１】
また、上記課題を解決するために、コンピュータシステムの稼働状況から業務の流れを表す業務モデルを自動生成する、コンピュータが実行する業務モデル生成方法において、コンピュータが、複数のデータ集合の更新処理を含むデータ更新処理を個々に識別する処理識別情報と、データ更新処理によって更新されたデータ集合のデータ集合名と、データ集合が更新された更新時刻とが関連付けて記憶された更新情報記憶手段を参照して、データ更新処理ごとに、データ更新処理によって更新されたすべてのデータ集合のデータ集合名を更新時刻の早い順に並べたフロー情報を作成すると共に、作成したすべてのフロー情報から、同一のフロー情報の出現数をそれぞれ計算し、コンピュータが、作成したフロー情報で示される業務フローを出現数の大きい順に、出現数が、予め設定された出現数の閾値条件に該当する出現数である業務フローを選択し、選択した業務フローを典型業務フローと判定すると共に、選択しなかった業務フローを例外業務フローと判定し、コンピュータが、判定したすべての典型業務フローの情報から、それぞれのデータ集合名をノードとする典型業務フロー図を表示すると共に、判定した例外業務フローとすべての典型業務フローとの情報から、それぞれのデータ集合名をノードとする例外業務フロー図を表示する、ことを特徴する業務モデル生成方法が提供される。
【００１２】
このような業務モデル生成方法によれば、まず、データ集合の更新順序を表すフロー情報が作成されると共に、同一のフロー情報の出現数がそれぞれ計算される。次に、フロー情報の出現数に基づいて、フロー情報で示される業務フローが典型業務フローと例外業務フローのいずれかに分類される。そして、すべての典型業務フローを表現する典型業務フロー図が表示されると共に、すべての典型業務フローに加えて例外業務フローも表現する例外業務フロー図が表示される。
【発明の効果】
【００１５】
本発明では、業務フローの出現数を用いて業務フローを典型業務フローと例外業務フローとに分類し、典型業務フローを表現する典型業務フロー図と、典型業務フローに加えて例外業務フローも表現する例外業務フロー図とを出力することとした。これにより、経営者やシステム管理者は、典型業務フロー図を用いることで業務フローの全体を直感的に理解できる。一方、経営者やシステム管理者は、さらに例外業務フロー図を用いることで、例外業務フローが業務フロー全体の中でどのように発生しているかを容易に把握することができる。したがって、生成される業務モデルが、業務内容の見直しやコンピュータシステムの再構築を検討するための資料として大変有用となる。【００１６】
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【００１７】
【図１】本実施の形態の概要を示す図である。
【図２】本実施の形態のシステム構成を示す図である。
【図３】業務分析装置のハードウェア構成を示す図である。
【図４】第１の実施の形態の業務分析装置の機能を示すブロック図である。
【図５】第１の実施の形態の更新情報テーブルのデータ構造例を示す図である。
【図６】第１の実施の形態の典型業務フロー情報テーブルおよび例外業務フロー情報テーブルのデータ構造例を示す図である。
【図７】業務フロー抽出処理の手順を示すフローチャートである。
【図８】業務フロー分類処理の手順を示すフローチャートである。
【図９】典型業務フロー図の表示例を示す図である。
【図１０】例外業務フロー図の表示例を示す図である。
【図１１】第２の実施の形態の業務分析装置の機能を示すブロック図である。
【図１２】第２の実施の形態の更新情報テーブルのデータ構造例を示す図である。
【図１３】第２の実施の形態の典型業務フロー情報テーブルおよび例外業務フロー情報テーブルのデータ構造例を示す図である。
【図１４】例外業務フロー整列処理の手順を示すフローチャートである。
【図１５】整列方法選択画面の表示例を示す図である。
【図１６】第１の整列処理の手順を示すフローチャートである。
【図１７】距離計算処理の手順を示すフローチャートである。
【図１８】距離計算処理の流れを示す概念図である。
【図１９】第１の整列処理の例外業務フロー選択画面の表示例を示す図である。
【図２０】第２の整列処理の手順を示すフローチャートである。
【図２１】第２の整列処理の例外業務フロー選択画面の表示例を示す図である。
【図２２】第３の整列処理の手順を示すフローチャートである。
【図２３】第３の整列処理のパラメータ入力画面の表示例を示す図である。
【図２４】第３の整列処理の例外業務フロー選択画面の表示例を示す図である。
【図２５】第４の整列処理の手順を示すフローチャートである。
【図２６】第４の整列処理のパラメータ入力画面の表示例を示す図である。
【図２７】第４の整列処理の例外業務フロー選択画面の表示例を示す図である。
【図２８】第５の整列処理の手順を示すフローチャートである。
【図２９】第５の整列処理の流れを示す概念図である。
【図３０】第５の整列処理の例外業務フロー選択画面の表示例を示す図である。
【図３１】第６の整列処理の手順を示すフローチャートである。
【図３２】第６の整列処理の例外業務フロー選択画面の表示例を示す図である。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施の形態を図面を参照して詳細に説明する。まず、本発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
図１は、本実施の形態の概要を示す図である。図１に示されるコンピュータ１０は、データベース管理システムが出力するデータベースの更新情報から、典型業務フロー図と例外業務フロー図とで構成される業務モデルを生成するものである。コンピュータ１０は、更新情報記憶手段１１、業務フロー抽出手段１２、業務フロー分類手段１３および業務モデル表示手段１４を有する。【００１９】
更新情報記憶手段１１は、データベース管理システム２１，２２，２３が出力したデータベースの更新情報２１ａ，２２ａ，２３ａを記憶する。更新情報２１ａ，２２ａ，２３ａには、コンピュータシステムにおいて実行されたデータ更新処理を一意に識別する識別情報、そのデータ更新処理によって更新されたデータ集合のデータ集合名、および、データ集合が更新された更新時刻が含まれる。１つのデータ更新処理は、１つ以上のデータ集合の更新処理を含んでいる。ここで、データ更新処理の識別情報は、例えば、トランザクションＩＤなどである。また、データ集合は、例えば、関係データベースにおける１つのテーブルなどである。【００２０】
業務フロー抽出手段１２は、更新情報記憶手段１１に記憶された更新情報を分析して、業務フローを抽出する。具体的には、業務フロー抽出手段１２は、データ更新処理ごとに、データ更新処理によって更新されたすべてのデータ集合のデータ集合名を更新時刻の早い順に並べたフロー情報を作成する。そして、業務フロー抽出手段１２は、作成したすべてのフロー情報から、同一のフロー情報の出現数をそれぞれ計算する。ここで、データ集合名の列が業務フローを表すものとみなされる。【００２１】
業務フロー分類手段１３は、業務フロー抽出手段１２で作成したフロー情報で示される業務フローを出現数の大きい順に整列する。次に、業務フロー分類手段１３は、出現数の上位から順に、累積の出現数が予め設定された閾値に達するまで業務フローを選択する。閾値は、例えば、累積出現数を表す固定の整数値でも、出現総数に対する割合を表す値でもよい。そして、業務フロー分類手段１３は、選択した業務フローを典型業務フローと判定すると共に、選択しなかった業務フローを例外業務フローと判定する。【００２２】
業務モデル表示手段１４は、業務フロー分類手段１３で判定したすべての典型業務フローの情報を用いて、それぞれのデータ集合名をノードとする典型業務フロー図３１を表示する。また、業務モデル表示手段１４は、ユーザの操作入力に応答して、すべての典型業務フローと例外業務フローとの情報から、それぞれのデータ集合名をノードとする例外業務フロー図３２を表示する。例外業務フロー図３２では、例えば、ユーザが指定した特定の例外業務フローを表示する。【００２３】
このようなコンピュータ１０によれば、業務フロー抽出手段１２により、データ更新処理ごとに、データ集合の更新順序を表すフロー情報が作成され、同一のフロー情報の出現数がそれぞれ計算される。次に、業務フロー分類手段１３により、フロー情報の出現数に基づいて、フロー情報で示される業務フローが、典型業務フローと例外業務フローのいずれかに分類される。そして、業務モデル表示手段１４により、すべての典型業務フローを表現する典型業務フロー図３１が表示されると共に、ユーザの操作入力に応答して、すべての典型業務フローに加えて例外業務フローも表現する例外業務フロー図３２が表示される。【００２４】
これにより、経営者やシステム管理者は、出力された典型業務フロー図を用いて業務フローの全体を直感的に理解することができる。一方、経営者やシステム管理者は、さらに例外業務フロー図を用いて、例外業務フローが業務フロー全体の中でどのように発生しているかを容易に把握することができる。このように、経営者やシステム管理者は、業務内容の見直しやコンピュータシステムの再構築などを検討するために有用な業務モデルを、必要に応じて短時間で取得することができる。【００２５】
［第１の実施の形態］
以下、第１の実施の形態を図面を参照して詳細に説明する。
図２は、本実施の形態のシステム構成を示す図である。第１の実施の形態の業務分析システムは、データベース管理システムが出力するデータベースの更新情報を分析し、業務モデルを自動生成するものである。【００２６】
本実施の形態の業務分析システムは、業務分析装置１００、業務サーバ２００ａ，２００ｂ、データベースサーバ３００ａ，３００ｂ，３００ｃおよびネットワーク６１，６２で構成される。業務サーバ２００ａ，２００ｂとデータベースサーバ３００ａ，３００ｂ，３００ｃとが、ネットワーク６１を介して接続されている。また、業務分析装置１００とデータベースサーバ３００ａ，３００ｂ，３００ｃとが、ネットワーク６２を介して接続されている。【００２７】
業務サーバ２００ａ，２００ｂでは、それぞれアプリケーションプログラムが実行される。例えば、業務サーバ２００ａで在庫管理プログラムが、業務サーバ２００ｂで受注管理プログラムが実行される。業務サーバ２００ａ，２００ｂで実行されるアプリケーションプログラムは、必要に応じて、ネットワーク６１を通じてデータベースサーバ３００ａ，３００ｂ，３００ｃにアクセスし、データベースサーバ３００ａ，３００ｂ，３００ｃで管理されるデータを利用する。【００２８】
データベースサーバ３００ａ，３００ｂ，３００ｃでは、それぞれデータベース管理システムが実行される。データベース管理システムは、業務サーバ２００ａ，２００ｂで実行されるアプリケーションプログラムが利用するデータを管理する。データベース管理システムは、テーブル形式でデータを管理しており、アプリケーションプログラムからの要求に応じてデータの検索および更新の処理を行う。ここで、データの更新処理が実行されると、データベース管理システムは、ログファイルに更新情報を出力する。ログファイルは、それぞれのデータベースサーバ３００ａ，３００ｂ，３００ｃで管理される。【００２９】
業務分析装置１００は、データベースサーバ３００ａ，３００ｂ，３００ｃから、ネットワーク６２を通じてログファイルを取得する。そして、業務分析装置１００は、取得したログファイルに記述された更新情報を分析することで、業務モデルを自動生成する。【００３０】
なお、本実施の形態では、業務モデルの生成機能を実現する装置として業務分析装置１００を設けたが、業務分析装置１００の機能をデータベースサーバ３００ａ，３００ｂ，３００ｃのいずれかのサーバ上で実現することも可能である。また、業務分析装置１００の機能を業務サーバ２００ａ，２００ｂのいずれかのサーバ上で実現することも可能である。【００３１】
次に、業務分析装置１００、業務サーバ２００ａ，２００ｂおよびデータベースサーバ３００ａ，３００ｂ，３００ｃのハードウェア構成について説明する。ただし、業務分析装置１００、業務サーバ２００ａ，２００ｂおよびデータベースサーバ３００ａ，３００ｂ，３００ｃはそれぞれ同様のハードウェア構成によって実現できるため、以下、代表して業務分析装置１００について説明する。【００３２】
図３は、業務分析装置のハードウェア構成を示す図である。業務分析装置１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０７を介してＲＡＭ（Random Access Memory）１０２、ハードディスクドライブ（ＨＤＤ：Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５および通信インタフェース１０６が接続されている。【００３３】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３には、ＯＳプログラムやアプリケーションプログラムが格納される。【００３４】
グラフィック処理装置１０４には、モニタ５０が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ５０の画面に表示させる。入力インタフェース１０５には、キーボード４１とマウス４２とが接続されている。入力インタフェース１０５は、キーボード４１やマウス４２から送られてくる信号を、バス１０７を介してＣＰＵ１０１に送信する。通信インタフェース１０６は、ネットワーク６２に接続されている。【００３５】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
次に、業務分析装置１００のモジュール構成について説明する。【００３６】
図４は、第１の実施の形態の業務分析装置の機能を示すブロック図である。業務分析装置１００は、更新情報記憶部１１０、業務モデル記憶部１２０、更新情報取得部１３０、業務フロー抽出部１４０、業務フロー分類部１５０および業務モデル表示部１６０を有する。更新情報取得部１３０は、ネットワーク６２を介してデータベースサーバ３００ａ，３００ｂ，３００ｃと通信が可能である。業務フロー抽出部１４０および業務モデル表示部１６０は、キーボード４１およびマウス４２を通じてユーザからの入力を受け取ることができる。また、業務モデル表示部１６０は、モニタ５０の画面に処理結果を表示することができる。【００３７】
更新情報記憶部１１０には、データベース管理システムが出力する更新情報が格納される。更新情報は、１つのテーブルが更新されるごとに作成される。テーブルの更新処理は、具体的には、レコードの追加、更新、削除のいずれかの処理である。アプリケーションプログラムによる１回のデータ更新処理によって、１つ以上のテーブルが更新される。更新情報には、データ更新処理を一意に識別する識別情報、更新されたテーブルのテーブル名および更新時刻が含まれる。【００３８】
業務モデル記憶部１２０には、業務分析装置１００によって生成された業務モデルが格納される。業務モデルとは、業務フローを表す情報の集合である。業務フローは、データ更新処理におけるテーブルの更新順序として定義される。例えば、“テーブルＡ”、“テーブルＢ”、“テーブルＣ”というテーブル列が業務フローを意味する。業務で利用されるコンピュータシステムでは、データの更新順序が業務の流れを最もよく反映していると考えられるからである。【００３９】
なお、業務モデル記憶部１２０では、すべての業務フローの情報が、典型業務フローと例外業務フローのいずれかに分類されて格納される。典型業務フローとは発生頻度が大きい業務フローのことであり、例外業務フローとは発生頻度が小さい業務フローのことである。【００４０】
更新情報取得部１３０は、予め設定された時間間隔で、定期的にデータベースサーバ３００ａ，３００ｂ，３００ｃにアクセスし、データベースサーバ３００ａ，３００ｂ，３００ｃが管理するログファイルをそれぞれ取得する。そして、更新情報記憶部１１０は、取得したログファイルに、前回の取得時から新たに追加された更新情報があるか判断する。新たな更新情報の有無は、前回のログファイル取得時刻と更新情報の中の更新時刻とを比較することで判断する。新たな更新情報がある場合、更新情報取得部１３０は、ログファイルから更新情報を抽出して更新情報記憶部１１０に追加する。【００４１】
業務フロー抽出部１４０は、ユーザからの入力によって業務モデル生成の指示を受け取ると、更新情報記憶部１１０に格納された更新情報を分析して、業務フローを抽出する。具体的には、業務フロー抽出部１４０は、更新情報をデータ更新処理ごとに分類し、それぞれのデータ更新処理について、更新時刻が早い順にテーブル名を並べたテーブル列を定義する。このテーブル列が業務フローを表す情報となる。さらに、業務フロー抽出部１４０は、それぞれの業務フローの出現数を計算する。【００４２】
なお、業務モデル生成の指示には、ユーザ定義の分類割合の情報が含まれる場合がある。分類割合とは、業務フローの出現総数のうち、典型業務フローと判断する割合である。分類割合は、例えば“０．６”（６０パーセント）といった数値で表される。【００４３】
業務フロー分類部１５０は、業務フロー抽出部１４０で抽出した業務フローを、出現数の大きい順に整列する。その上で、業務フロー分類部１５０は、累積の出現数が分類割合に達するまで出現数の上位から順に業務フローを選択する。ここで、分類割合は、ユーザ定義の分類割合が入力された場合にはユーザ定義のものを、入力されなかった場合には予め設定されたものを使用する。業務フロー分類部１５０は、選択した業務フローを典型業務フローと判定し、選択しなかった業務フローを例外業務フローと判定する。そして、業務フロー分類部１５０は、典型業務フローの情報と例外業務フローの情報とを、業務モデル記憶部１２０に格納する。【００４４】
業務モデル表示部１６０は、業務モデル記憶部１２０に格納された情報が更新されると、業務モデル記憶部１２０からすべての典型業務フローの情報を取得して、典型業務フロー図を表示する。典型業務フロー図は、すべての典型業務フローを表現した図である。典型業務フロー図は、１つの開始ノードおよび１つの終了ノードと、それぞれのテーブル名に対応するノードとをもつ。【００４５】
また、業務モデル表示部１６０は、業務モデル記憶部１２０に格納された例外業務フローの情報を参照して、例外業務フローを表す情報の一覧を表示する。ここで、ユーザの操作入力によって１つの例外業務フローが選択されると、業務モデル表示部１６０は、すべての典型業務フローの情報と選択された１つの例外業務フローの情報とを業務モデル記憶部１２０から取得し、例外業務フロー図を表示する。例外業務フロー図は、すべての典型業務フローに加えて１つの例外業務フローを表現した図である。例外業務フロー図は、典型業務フロー図と同様、１つの開始ノードおよび１つの終了ノードと、それぞれのテーブル名に対応するノードとをもつ。【００４６】
なお、本実施の形態では、更新情報取得部１３０は定期的にデータベースサーバ３００ａ，３００ｂ，３００ｃにアクセスすることとしたが、ユーザから業務モデル生成の指示があった際にデータベースサーバ３００ａ，３００ｂ，３００ｃにアクセスするようにしてもよい。【００４７】
更新情報記憶部１１０は、更新情報の一覧を表す更新情報テーブル１１０ａを有している。
図５は、第１の実施の形態の更新情報テーブルのデータ構造例を示す図である。更新情報テーブル１１０ａには、更新情報が１つのテーブルの更新処理ごとにテーブル化されて格納されている。更新情報テーブル１１０ａには、処理ＩＤを示すフィールド１１１、テーブル名を示すフィールド１１２および更新時刻を示すフィールド１１３が設けられている。各フィールドの横方向に並べられた情報同士が互いに関連付けられて、更新情報を構成する。【００４８】
フィールド１１１には、データ更新処理を一意に識別するための識別番号が設定される。処理ＩＤとしては、例えば、トランザクションＩＤを用いることができる。この場合、データベースサーバ３００ａ，３００ｂ，３００ｃで実行されるデータベース管理システムが連携して、データ更新処理ごとに一意なトランザクションＩＤを付与し、更新情報にトランザクションＩＤを含めるようにすればよい。また、業務サーバ２００ａ，２００ｂで実行されるアプリケーションプログラムがデータ更新処理ごとに一意な識別番号を設定し、データベース管理システムが更新情報にこの識別番号を含めるようにしてもよい。【００４９】
フィールド１１２には、フィールド１１１に設定された処理ＩＤで示されるデータ更新処理によって更新されたテーブルのテーブル名が設定される。フィールド１１３には、フィールド１１１に設定された処理ＩＤで示されるデータ更新処理によってフィールド１１２に設定されたテーブル名のテーブルが更新された時刻が設定される。【００５０】
更新情報テーブル１１０ａに格納される更新情報は、更新情報取得部１３０によって登録される。例えば、処理ＩＤが“０００１”、テーブル名が“ｒｅｑｕｅｓｔ＿ｉｎｆｏ”、更新時刻が“２００６／０４／０１  １２：１０：０９”という情報が登録される。【００５１】
業務モデル記憶部１２０は、典型業務フロー情報の一覧を表す典型業務フロー情報テーブル１２０ａおよび例外業務フロー情報の一覧を表す例外業務フロー情報テーブル１２０ｂを有している。【００５２】
図６は、第１の実施の形態の典型業務フロー情報テーブルおよび例外業務フロー情報テーブルのデータ構造例を示す図である。典型業務フロー情報テーブル１２０ａには、典型業務フローと判定された業務フローの情報が業務フローごとにテーブル化されて格納されている。典型業務フロー情報テーブル１２０ａには、出現数を示すフィールド１２１およびテーブル列を示すフィールド１２２が設けられている。各フィールドの横方向に並べられた情報同士が互いに関連付けられ、典型業務フロー情報を構成する。【００５３】
フィールド１２１には、それぞれの典型業務フローの出現数を表す整数値が設定される。すなわち、典型業務フローに沿ったデータ更新処理のそれまでの実行回数が設定される。フィールド１２２には、典型業務フローを表すテーブル名の列が設定される。最も左側に記述されたテーブル名が最初に更新されたテーブルを表し、最も右側に記述されたテーブル名が最後に更新されたテーブルを表す。テーブル名とテーブル名との間は、カンマで区切られる。【００５４】
典型業務フロー情報テーブル１２０ａに格納される典型業務フロー情報は、業務フロー分類部１５０によって登録される。例えば、出現数が“２０００”、テーブル列が“ｒｅｑｕｅｓｔ＿ｉｎｆｏ，ｂｔｒｉｐ＿ｃｎｔｌ，・・・（以下省略）”という情報が登録される。【００５５】
例外業務フロー情報テーブル１２０ｂには、例外業務フローと判定された業務フローの情報が業務フローごとにテーブル化されて格納されている。例外業務フロー情報テーブル１２０ｂには、出現数を示すフィールド１２３およびテーブル列を示すフィールド１２４が設けられている。各フィールドの横方向に並べられた情報同士が互いに関連付けられ、例外業務フロー情報を構成する。【００５６】
フィールド１２３には、それぞれの例外業務フローの出現数を表す整数値が設定される。すなわち、例外業務フローに沿ったデータ更新処理のそれまでの実行回数が設定される。フィールド１２４には、例外業務フローを表すテーブル名の列が設定される。最も左側に記述されたテーブル名が最初に更新されたテーブルを表し、最も右側に記述されたテーブル名が最後に更新されたテーブルを表す。テーブル名とテーブル名との間は、カンマで区切られる。【００５７】
例外業務フロー情報テーブル１２０ｂに格納される例外業務フロー情報は、業務フロー分類部１５０によって登録される。例えば、出現数が“１００”、テーブル列が“ｂｔｒｉｐ＿ｃｎｔｌ＿ｃｈａｎｇｅ，ｔａｐｐｒｏｖａｌ１，・・・（以下省略）”という情報が登録される。【００５８】
次に、以上のような構成およびデータ構造のシステムにおいて実行される処理の詳細を説明する。最初に、更新情報を分析して業務フローを抽出する処理について説明する。
図７は、業務フロー抽出処理の手順を示すフローチャートである。以下、図７に示す処理をステップ番号に沿って説明する。【００５９】
［ステップＳ１１］業務フロー抽出部１４０は、業務モデル生成の指示を受け取ると、更新情報記憶部１１０に格納されたすべての更新情報を、処理ＩＤを基準として整列する。【００６０】
［ステップＳ１２］業務フロー抽出部１４０は、処理ＩＤが同一である複数の更新情報を、さらに更新時刻の早い順に整列する。そして、業務フロー抽出部１４０は、処理ＩＤごとに、更新時刻の早い順にテーブル名を並べたテーブル列を作成する。【００６１】
［ステップＳ１３］業務フロー抽出部１４０は、ステップＳ１２で作成したすべてのテーブル列を集計する。すなわち、同一のテーブル列の個数をそれぞれ計算する。ここで計算された値が、それぞれのテーブル列によって表される業務フローの出現数となる。そして、業務フロー抽出部１４０は、業務フロー分類部１５０に集計結果を通知する。なお、業務モデル生成の指示にユーザ定義分類割合が含まれている場合、ユーザ定義分類割合も併せて通知する。【００６２】
このようにして、業務フロー抽出部１４０は、更新情報記憶部１１０に格納された更新情報を用いて、データ更新処理ごとにテーブル列を作成する。そして、業務フロー抽出部１４０は、作成したすべてのテーブル列を集計し、それぞれの業務フローとその出現数とを特定する。【００６３】
次に、業務フローを典型業務フローと例外業務フローとに分類する処理について説明する。
図８は、業務フロー分類処理の手順を示すフローチャートである。以下、図８に示す処理をステップ番号に沿って説明する。【００６４】
［ステップＳ２１］業務フロー分類部１５０は、業務フロー抽出部１４０から受け取った業務フローの情報を出現数の大きい順に整列する。
［ステップＳ２２］業務フロー分類部１５０は、業務フロー抽出部１４０からユーザ定義分類割合を受け取ったときは、ユーザ定義分類割合を分類割合と決定する。一方、業務フロー抽出部１４０からユーザ定義分類割合の情報を受け取らなかったときは、予め設定された値を分類割合と決定する。【００６５】
［ステップＳ２３］業務フロー分類部１５０は、ステップＳ２１で整列した業務フローの出現数の総数を計算する。そして、業務フロー分類部１５０は、出現総数とステップＳ２２で決定した分類割合との積を閾値と決定する。【００６６】
［ステップＳ２４］業務フロー分類部１５０は、ステップＳ２１で整列した業務フローのうち、まだ分類処理を行っていないものを出現数の上位より１つ選択する。
［ステップＳ２５］業務フロー分類部１５０は、ステップＳ２４で選択した業務フローを典型業務フローに指定する。【００６７】
［ステップＳ２６］業務フロー分類部１５０は、典型業務フローに指定した業務フローの累積出現数を計算する。
［ステップＳ２７］業務フロー分類部１５０は、累積出現数が閾値以上であるか否か判断する。累積出現数が閾値以上である場合、処理がステップＳ２８に進められる。累積出現数が閾値未満である場合、処理がステップＳ２４に進められる。【００６８】
［ステップＳ２８］業務フロー分類部１５０は、ステップＳ２１で整列した業務フローのうち典型業務フローに指定されなかった業務フローを、例外業務フローに指定する。
［ステップＳ２９］業務フロー分類部１５０は、業務モデル記憶部１２０に格納された典型業務フロー情報テーブル１２０ａおよび例外業務フロー情報テーブル１２０ｂに登録されている情報をすべて削除する。そして、業務フロー分類部１５０は、ステップＳ２５で典型業務フローに指定した業務フローのテーブル列および出現数を、典型業務フロー情報として典型業務フロー情報テーブル１２０ａに登録する。また、業務フロー分類部１５０は、ステップＳ２８で例外業務フローに指定した業務フローのテーブル列および出現数を、例外業務フロー情報として例外業務フロー情報テーブル１２０ｂに登録する。【００６９】
このようにして、業務フロー分類部１５０は、分類割合に基づいて業務フローの累積出現数の閾値を決定し、閾値を用いて業務フローを出現頻度の大きい典型業務フローと出現頻度の小さい例外業務フローとに分類する。ここで、業務フロー分類部１５０は、ユーザ指定分類割合が与えられたときはユーザ指定分類割合を分類割合として用い、それ以外の場合は予め設定された値を分類割合として用いる。【００７０】
次に、業務モデル表示部１６０によって表示される典型業務フロー図および例外業務フロー図について説明する。
図９は、典型業務フロー図の表示例を示す図である。業務フロー図表示画面５１は、業務モデル表示部１６０からの出力によってモニタ５０に表示される画面である。業務フロー図表示画面５１には、すべての典型業務フローを表す１つの典型業務フロー図が表示される。【００７１】
業務フロー図表示画面５１には、１つの開始ノード５１ａと１つの終了ノード５１ｅとが記述される。開始ノード５１ａは業務フローの開始点を表し、終了ノード５１ｅは業務フローの終了点を表す。そして、開始ノード５１ａと終了ノード５１ｅとの間に、複数のノードが記述される。開始ノード５１ａおよび終了ノード５１ｅ以外のノードには、それぞれ１つのテーブル名が付される。【００７２】
業務フロー図表示画面５１には、処理の順序関係を表す矢印線がノード間に記述される。例えば、ノード５１ｂからノード５１ｃへの矢印線は、テーブル“ｒｅｑｕｅｓｔ＿ｉｎｆｏ”の更新処理に続いて、テーブル“ｂｔｒｉｐ＿ｃｎｔｌ”の更新処理を実行する典型業務フローが存在することを意味する。【００７３】
１つのノードから複数の矢印線が出ている場合、矢印元の処理の次に、矢印先の処理のうちのいずれか１つが実行されることを意味する。例えば、ノード５１ｂからノード５１ｃおよびノード５１ｄへの矢印線は、テーブル“ｒｅｑｕｅｓｔ＿ｉｎｆｏ”の更新処理に続いて、テーブル“ｂｔｒｉｐ＿ｃｎｔｌ”の更新処理と、テーブル“ｒｅｑｕｅｓｔ＿ｉｎｆｏ＿ｕｐｄａｔｅ”の更新処理のいずれか一方が実行されることを意味する。【００７４】
このようにして、開始ノード５１ａから終了ノード５１ｅへ至る一連の矢印線によって、典型業務フローにおける処理の順序関係が１つの図として表現される。例えば、図６に示した典型業務フロー情報テーブル１２０ａにおいて、出現数が２０００のテーブル列“ｒｅｑｕｅｓｔ＿ｉｎｆｏ，ｂｔｒｉｐ＿ｃｎｔｌ，・・・”で表される典型業務フローが、開始ノード５１ａ、ノード５１ｂ、ノード５１ｃ、・・・、終了ノード５１ｅという一連の矢印線によって表現されている。また、出現数が１６００のテーブル列“ｒｅｑｕｅｓｔ＿ｉｎｆｏ，ｒｅｑｕｅｓｔ＿ｉｎｆｏ＿ｕｐｄａｔｅ，・・・”で表される典型業務フローが、開始ノード５１ａ、ノード５１ｂ、ノード５１ｄ、・・・、終了ノード５１ｅという一連の矢印線によって表現されている。【００７５】
選択領域５１ｆは、業務フロー図の表示を切り替えるための選択領域である。モニタ５０に業務フロー図表示画面５１が表示されているときは、“典型フロー”が選択された状態になっている。これは、モニタ５０に典型業務フローのみが表示されていることを意味する。【００７６】
選択領域５１ｆには、“典型フロー”のほか、それぞれの例外業務フローに対して割り当てられた一意な要素名が、選択可能な要素として表示される。要素名は、出現数の多い例外業務フローから順に、“例外フロー１”、“例外フロー２”、・・・と割り当てられる。例えば、図６に示した例外業務フロー情報テーブル１２０ｂにおいて、出現数が１００のテーブル列“ｂｔｒｉｐ＿ｃｎｔｌ＿ｃｈａｎｇｅ，ｔａｐｐｒｏｖａｌ１，・・・”で表される例外業務フローに対して“例外フロー１”が、出現数が５０のテーブル列“ｒｅｑｕｅｓｔ＿ｉｎｆｏ，ｂｔｒｉｐ＿ｃｎｔｌ＿ｃｈａｎｇｅ，・・・”で表される例外業務フローに対して“例外フロー２”が割り当てられる。【００７７】
ここで、選択領域５１ｆでユーザが“例外フロー１”、“例外フロー２”、・・・のいずれか１つを選択すると、表示画面が切り替わり、典型業務フローに加えて選択された１つの例外業務フローを表す例外業務フロー図が表示される。【００７８】
図１０は、例外業務フロー図の表示例を示す図である。図１０に示した表示画面は、業務フロー図表示画面５１の選択領域５１ｆで、“例外フロー１”が選択されたときにモニタ５０に表示される画面である。業務フロー図表示画面５２には、１つの例外業務フロー図が表示される。【００７９】
業務フロー図表示画面５２には、業務フロー図表示画面５１に記述される要素がすべて記述される。さらに、業務フロー図表示画面５２には、典型業務フローで更新対象となっていないが、選択された例外業務フローで更新対象となっているテーブルを表すノードが記述される。例えば、図９に示した典型業務フロー図に表れないノード５２ｂが記述される。【００８０】
そして、業務フロー図表示画面５２には、選択された１つの例外業務フローを表す矢印線がノード間に記述される。ここで、例外業務フローを表す矢印線は、典型業務フローを表す矢印線と区別可能な線種で記述される。例えば、開始ノード５２ａ、ノード５２ｂ、ノード５２ｄ、ノード５２ｅ、ノード５２ｆ、ノード５２ｃ、ノード５２ｄ、ノード５２ｅ、ノード５２ｆ、・・・、終了ノード５２ｇという一連の矢印線によって例外業務フローが表現されている。【００８１】
選択領域５２ｈは、業務フロー図表示画面５１の選択領域５１ｆと同様に、業務フロー図の表示を切り替えるための選択領域である。
なお、本実施の形態では、１つの例外業務フロー図で１つの例外業務フローを表示することとしたが、１つの例外業務フロー図で１つ以上の例外業務フローを表示するようにしてもよい。この場合、選択領域５１ｆ，５２ｈを、複数の要素を選択できる選択領域に置き換えればよい。【００８２】
このような業務分析装置１００を用いることで、業務で利用するコンピュータシステムが稼働中に出力する更新情報から、自動的に業務モデルを生成し、典型業務フローと例外業務フローとを表示することができる。特に、業務分析装置１００を用いることで、生成される業務モデルの理解容易性を損なうことなく、必要に応じて例外業務フローも表示させることができる。【００８３】
したがって、経営者やシステム管理者は、現在の典型業務フローと例外業務フローとを的確に把握して、現在の業務フローの問題点をいち早く発見し、業務内容の見直しやコンピュータシステムの再構築などを検討することが可能となる。【００８４】
［第２の実施の形態］
次に、第２の実施の形態を図面を参照して詳細に説明する。前述の第１の実施の形態との相違点を中心に説明し、同様の事項については説明を省略する。【００８５】
第２の実施の形態の業務分析システムは、第１の実施の形態の業務分析システムと同様に、データベース管理システムが出力するデータベースの更新情報を分析し、業務モデルを自動生成するものである。加えて、第２の実施の形態の業務分析システムは、ユーザが整列方法を指定すると、指定された整列方法に従って複数の例外業務フローを整列し、一覧情報を表示する。このように、ユーザが整列方法を指定できるようにすることで、単に出現数の多い順に一覧情報を表示する場合と比べ、特定の条件を具備する例外業務フローを発見することが容易となる。【００８６】
第２の実施の形態の業務分析システムは、図２に示した第１の実施の形態の業務分析システムと同様のシステム構成で実現される。ただし、業務分析装置１００に代えて、業務分析装置４００がネットワーク６２に接続される。【００８７】
図１１は、第２の実施の形態の業務分析装置の機能を示すブロック図である。業務分析装置４００は、更新情報記憶部４１０、業務モデル記憶部４２０、更新情報取得部４３０、業務フロー抽出部４４０、業務フロー分類部４５０、業務モデル表示部４６０および業務フロー整列部４７０を有する。【００８８】
更新情報取得部４３０は、ネットワーク６２を介してデータベースサーバ３００ａ，３００ｂ，３００ｃと通信が可能である。業務フロー抽出部４４０および業務モデル表示部４６０は、キーボード４１およびマウス４２を通じてユーザからの入力を受け取ることができる。また、業務モデル表示部４６０は、モニタ５０の画面に処理結果を表示することができる。【００８９】
更新情報記憶部４１０には、第１の実施の形態の更新情報記憶部１１０と同様に、データベース管理システムが出力する更新情報が格納される。ただし、第２の実施の形態の更新情報には、データの更新内容、すなわち、テーブル中の更新対象となった属性および更新後の属性値の情報も含まれる。【００９０】
業務モデル記憶部４２０には、第１の実施の形態の業務モデル記憶部１２０と同様に、典型業務フローおよび例外業務フローの集合である業務モデルが格納される。ただし、例外業務フローについては、テーブル列の情報に加えて、対応する更新後の属性値の列の情報も格納される。【００９１】
更新情報取得部４３０は、第１の実施の形態の更新情報取得部１３０と同様に、データベースサーバ３００ａ，３００ｂ，３００ｃが管理するログファイルをそれぞれ取得し、ログファイルから更新情報を抽出して更新情報記憶部４１０に追加する。ログファイルから抽出する更新情報には、データの更新内容も含まれる。【００９２】
業務フロー抽出部４４０は、第１の実施の形態の業務フロー抽出部１４０と同様に、更新情報記憶部４１０に格納された更新情報を分析して、業務フローを抽出する。業務フローを表す情報には、更新後の属性値の列の情報も含まれる。【００９３】
業務フロー分類部４５０は、第１の実施の形態の業務フロー分類部１５０と同様に、業務フローを典型業務フローと例外業務フローとに分類し、業務フローの情報を業務モデル記憶部４２０に格納する。例外業務フローの情報には、対応する更新後の属性値の列の情報も含まれる。【００９４】
業務モデル表示部４６０は、第１の実施の形態の業務モデル表示部１６０と同様に、すべての典型業務フローの情報に基づいて典型業務フロー図を表示する。また、業務モデル表示部４６０は、例外業務フローを表す情報の一覧を表示し、ユーザの操作入力によって１つの例外業務フローが選択されると、すべての典型業務フローの情報と選択された例外業務フローの情報とに基づいて、例外業務フロー図を表示する。【００９５】
ここで、業務モデル表示部４６０は、ユーザの操作入力によって例外業務フローの整列方法が指定されると、指定された整列方法を業務フロー整列部４７０に通知して、例外業務フローを表す情報の表示順序を決定させる。そして、業務モデル表示部４６０は、業務フロー整列部４７０が決定した表示順序に従って、例外業務フローを表す情報の一覧を表示する。【００９６】
業務フロー整列部４７０は、業務モデル表示部４６０から整列方法の通知を受け取ると、業務モデル記憶部４２０に格納された例外業務フローの情報を参照して、通知された整列方法に従ってすべての例外業務フローの表示順序を決定する。そして、業務フロー整列部４７０は、決定した表示順序の情報を業務モデル表示部４６０に通知する。【００９７】
図１２は、第２の実施の形態の更新情報テーブルのデータ構造例を示す図である。図１２に示す更新情報テーブル４１０ａは、更新情報記憶部４１０に格納されている。
更新情報テーブル４１０ａには、更新情報が１つのテーブルの更新処理ごとにテーブル化されて格納されている。更新情報テーブル４１０ａには、処理ＩＤを示すフィールド４１１、テーブル名を示すフィールド４１２、更新時刻を示すフィールド４１３および属性値を示すフィールド４１４が設けられている。各フィールドの横方向に並べられた情報同士が互いに関連付けられて、更新情報を構成する。【００９８】
フィールド４１１，４１２，４１３の意味は、図５に示した第１の実施の形態のフィールド１１１，１１２，１１３の意味とそれぞれ同じである。
フィールド４１４には、テーブルの属性名と更新後の値との組が設定される。すなわち、フィールド４１１で示されるデータ更新処理によってフィールド４１２で示されるテーブルが更新された際の、更新対象となった属性の属性名と更新後の値との組が設定される。例えば、属性名、“＝”、更新後の値という文字列が設定される。フィールド４１４には、属性名と更新後の値との組が複数個設定される場合もある。【００９９】
更新情報テーブル４１０ａに格納される更新情報は、更新情報取得部４３０によって登録される。例えば、処理ＩＤが“０００１”、テーブル名が“ｒｅｑｕｅｓｔ＿ｉｎｆｏ”、更新時刻が“２００６／０４／０１  １２：１０：０９”、属性値が“ｒｅｑ＝１０１１”という情報が登録される。【０１００】
図１３は、第２の実施の形態の典型業務フロー情報テーブルおよび例外業務フロー情報テーブルのデータ構造例を示す図である。図１３に示す典型業務フロー情報テーブル４２０ａおよび例外業務フロー情報テーブル４２０ｂは、業務モデル記憶部４２０に格納されている。【０１０１】
典型業務フロー情報テーブル４２０ａには、典型業務フローと判定された業務フローの情報が業務フローごとにテーブル化されて格納されている。典型業務フロー情報テーブル４２０ａには、出現数を示すフィールド４２１およびテーブル列を示すフィールド４２２が設けられている。各フィールドの横方向に並べられた情報同士が互いに関連付けられ、典型業務フロー情報を構成する。【０１０２】
フィールド４２１，４２２の意味は、図６に示した第１の実施の形態のフィールド１２１，１２２の意味とそれぞれ同じである。
典型業務フロー情報テーブル４２０ａに格納される典型業務フロー情報は、業務フロー分類部４５０によって登録される。例えば、出現数が“２０００”、テーブル列が“ｒｅｑｕｅｓｔ＿ｉｎｆｏ，ｂｔｒｉｐ＿ｃｎｔｌ，・・・（以下省略）”という情報が登録される。【０１０３】
例外業務フロー情報テーブル４２０ｂには、例外業務フローと判定された業務フローの情報が業務フローごとにテーブル化されて格納されている。例外業務フロー情報テーブル４２０ｂには、出現数を示すフィールド４２３、テーブル列を示すフィールド４２４および属性値列を示すフィールド４２５が設けられている。各フィールドの横方向に並べられた情報同士が互いに関連付けられ、例外業務フロー情報を構成する。【０１０４】
フィールド４２３，４２４の意味は、図６に示した第１の実施の形態のフィールド１２３，１２４の意味とそれぞれ同じである。
フィールド４２５には、フィールド４２４で示されるテーブルの更新順序と対応して、更新された属性値の情報の列が設定される。属性値の情報には、属性名と更新後の値との組が１個以上含まれる。例えば、“（”、属性名、“＝”、更新後の値、“）”という文字列で構成される。属性名と更新後の値との組が複数個ある場合、“（”と“）”との間にカンマ区切りで記述される。【０１０５】
なお、フィールド４２４に設定される情報とフィールド４２５に設定される情報とは、１対多の関係をもつ。これは、テーブルの更新順序が同一であっても、具体的な更新内容が異なるデータ更新処理が複数存在するからである。【０１０６】
例外業務フロー情報テーブル４２０ｂに格納される例外業務フロー情報は、業務フロー分類部４５０によって登録される。例えば、出現数が“１００”、テーブル列が“ｂｔｒｉｐ＿ｃｎｔｌ＿ｃｈａｎｇｅ，ｔａｐｐｒｏｖａｌ１，・・・（以下省略）”、属性値列が“（ｄｅｆ＝１３００），（ｖａｌ＝２３０），・・・（以下省略）”という情報が登録される。【０１０７】
次に、以上のような構成およびデータ構造のシステムにおいて実行される処理の詳細を説明する。業務フロー抽出処理および業務フロー分類処理の手順は、図７，８に示した第１の実施の形態のものと同様である。以下、例外業務フローを表す情報を整列する処理について説明する。【０１０８】
図１４は、例外業務フロー整列処理の手順を示すフローチャートである。以下、図１４に示す処理をステップ番号に沿って説明する。
［ステップＳ３１］業務モデル表示部４６０は、選択可能な整列方法の一覧を表示し、ユーザに整列方法を１つ選択させる。そして、業務モデル表示部４６０は、選択された整列方法を、例外業務フローを表す情報の整列に用いる整列方法と決定する。【０１０９】
［ステップＳ３２］業務モデル表示部４６０は、ステップＳ３１で決定した整列方法に対応するパラメータの値をユーザに入力させる。そして、業務モデル表示部４６０は、入力された値を、整列に用いるパラメータの値と決定する。なお、ステップＳ３１で決定した整列方法がパラメータの指定を必要としない場合、パラメータの値をユーザに入力させる処理は不要である。【０１１０】
［ステップＳ３３］業務モデル表示部４６０は、ステップＳ３１で決定した整列方法とステップＳ３２で決定したパラメータの値とを、業務フロー整列部４７０に通知する。業務フロー整列部４７０は、通知された整列方法とパラメータの値とに従って、業務モデル記憶部４２０に格納された例外業務フローを表す情報の表示順序を決定する。【０１１１】
［ステップＳ３４］業務フロー整列部４７０は、ステップＳ３３で決定した表示順序を業務モデル表示部４６０に通知する。業務モデル表示部４６０は、通知された表示順序に従って、例外業務フローを表す情報の一覧を表示する。【０１１２】
このようにして、業務モデル表示部４６０は、ユーザが指定した整列方法およびパラメータの値の情報を取得する。業務フロー整列部４７０は、取得された整列方法およびパラメータの値に従って例外業務フローを表す情報の表示順序を決定する。そして、業務モデル表示部４６０は、決定された表示順序に従って、例外業務フローを表す情報の一覧を表示する。【０１１３】
図１５は、整列方法選択画面の表示例を示す図である。図１５に示す整列方法選択画面５３は、上記ステップＳ３１で、業務モデル表示部４６０によってモニタ５０に表示される画面である。整列方法選択画面５３には、選択可能な整列方法の一覧が表示される。【０１１４】
整列方法選択画面５３は、選択ボタン５３ａおよび決定ボタン５３ｂを有する。選択ボタン５３ａは、一覧から整列方法を１つ選択するためのボタンである。ユーザは、例えば、マウス４２を操作して選択ボタン５３ａの選択位置を移動することで、整列方法を１つ選択することができる。決定ボタン５３ｂは、選択された整列方法を確定するためのボタンである。決定ボタン５３ｂが押されると、業務モデル表示部４６０は、選択された整列方法を例外業務フローを表す情報の整列方法として決定する。【０１１５】
本実施の形態では、図１５に示すように、ユーザは７つの整列方法の中から１つを選択することができる。“出現頻度昇順”は、出現数が小さい順に並べ替える方法である。上記ステップＳ３１で“出現頻度昇順”が選択された場合、上記ステップＳ３３で業務フロー整列部４７０により出現数が小さい順に並べ替えられる。これにより、稀にしか発生しない例外業務フローを把握することが容易となる。【０１１６】
以下、“典型業務フローからの乖離度降順”、“典型業務フローとの類似度”、“特定のテーブル列を含むフロー”、“テーブル列の条件不備フロー”、“手戻り発生フロー”、“繰り返し発生フロー”の６つの整列方法について、それぞれ詳細に説明する。【０１１７】
図１６は、第１の整列処理の手順を示すフローチャートである。図１６に示す第１の整列処理は、上記ステップＳ３１で整列方法が“典型業務フローからの乖離度降順”に決定された場合に、上記ステップＳ３３で実行される処理である。なお、第１の整列処理は、パラメータの指定が不要である。以下、図１６に示す処理をステップ番号に沿って説明する。【０１１８】
［ステップＳ１１１］業務フロー整列部４７０は、業務モデル記憶部４２０に格納された例外業務フロー情報テーブル４２０ｂを参照して、未選択の例外業務フローを１つ選択する。【０１１９】
［ステップＳ１１２］業務フロー整列部４７０は、変数として代表距離を定義し、初期値を−１に設定する。
［ステップＳ１１３］業務フロー整列部４７０は、業務モデル記憶部４２０に格納された典型業務フロー情報テーブル４２０ａを参照して、未選択の典型業務フローを１つ選択する。【０１２０】
［ステップＳ１１４］業務フロー整列部４７０は、ステップＳ１１１で選択した例外業務フローとステップＳ１１３で選択した典型業務フローとの距離を計算する。距離とは、２つのテーブル列の乖離度を示す０以上の整数値である。２つのテーブル列が完全に一致する場合に距離が０となる。２つのテーブル列の乖離度が大きいほど距離が大きくなる。具体的には、距離としてＬｅｖｅｎｓｈｔｅｉｎ距離を採用する。Ｌｅｖｅｎｓｈｔｅｉｎ距離の計算方法については、後で詳細に説明する。【０１２１】
［ステップＳ１１５］業務フロー整列部４７０は、代表距離が０より小さい場合、すなわち、初期値が設定されたままの場合、ステップＳ１１４で計算した距離を代表距離に設定する。また、業務フロー整列部４７０は、ステップＳ１１４で計算した距離が代表距離より小さい場合、代表距離をステップＳ１１４で計算した距離に更新する。【０１２２】
［ステップＳ１１６］業務フロー整列部４７０は、ステップＳ１１３ですべての典型業務フローを選択したか否か判断する。すべての典型業務フローを選択した場合には、処理がステップＳ１１７に進められる。未選択の典型業務フローがある場合には、処理がステップＳ１１３に進められる。【０１２３】
［ステップＳ１１７］業務フロー整列部４７０は、現在の代表距離をステップＳ１１１で選択した例外業務フローの代表距離として確定する。
［ステップＳ１１８］業務フロー整列部４７０は、ステップＳ１１１ですべての例外業務フローを選択したか否か判断する。すべての例外業務フローを選択した場合には、処理がステップＳ１１９に進められる。未選択の例外業務フローがある場合には、処理がステップＳ１１１に進められる。【０１２４】
［ステップＳ１１９］業務フロー整列部４７０は、すべての例外業務フローを、代表距離が大きい順に整列し、表示順序とする。
例えば、２つの典型業務フローＰ，Ｑと３つの例外業務フローＲ，Ｓ，Ｔがあるとする。そして、距離（Ｐ，Ｒ）＝３、距離（Ｑ，Ｒ）＝４とすると、例外業務フローＲの代表距離は３である。同様に、距離（Ｐ，Ｓ）＝２、距離（Ｑ，Ｓ）＝５とすると、例外業務フローＳの代表距離は２である。距離（Ｐ，Ｔ）＝４、距離（Ｑ，Ｔ）＝４とすると、例外業務フローＴの代表距離は４である。この場合、３つの例外業務フローの表示順序は、Ｔ，Ｒ，Ｓの順となる。【０１２５】
図１７は、距離計算処理の手順を示すフローチャートである。図１７に示す距離計算処理は、上記ステップＳ１１４で実行される処理である。以下、図１７に示す処理をステップ番号に沿って説明する。【０１２６】
［ステップＳ１１４ａ］業務フロー整列部４７０は、上記ステップＳ１１１で選択した例外業務フローの長さ（ｍ）と上記ステップＳ１１３で選択した典型業務フローの長さ（ｎ）とをそれぞれ特定する。ここで、業務フローの長さとは、テーブル列に含まれるテーブル名の個数である。【０１２７】
［ステップＳ１１４ｂ］業務フロー整列部４７０は、大きさがｎ＋１×ｍ＋１の行列を定義する。すなわち、行列の行数は、ステップＳ１１４ａで特定した典型業務フローの長さに１を加えたものである。行列の列数は、ステップＳ１１４ａで特定した例外業務フローの長さに１を加えたものである。【０１２８】
［ステップＳ１１４ｃ］業務フロー整列部４７０は、ステップＳ１１４ｂで定義した行列の０行目および０列目を初期化する。具体的には、業務フロー整列部４７０は、行列の０行目について、位置（０，０）を０、位置（０，１）を１、・・・、位置（０，ｍ）をｍというように、列番号と同じ数値を設定する。また、業務フロー整列部４７０は、行列の０列目について、位置（０，０）を０、位置（１，０）を１、・・・、位置（ｎ，０）をｎと、行番号と同じ数値を設定する。【０１２９】
［ステップＳ１１４ｄ］業務フロー整列部４７０は、行列の１行目からｎ行目まで１行ずつ行を選択し（選択している行の行番号をｉとする）、以下のステップＳ１１４ｅ〜Ｓ１１４ｈの処理を行う。【０１３０】
［ステップＳ１１４ｅ］業務フロー整列部４７０は、ステップＳ１１４ｄで選択した行の１列目からｍ列目まで１つずつ位置を選択し（選択している位置の列番号をｊとする）、以下のステップＳ１１４ｆ，Ｓ１１４ｇの処理を行う。【０１３１】
［ステップＳ１１４ｆ］業務フロー整列部４７０は、典型業務フローのテーブル列のｉ番目のテーブル名と、例外業務フローのテーブル列のｊ番目のテーブル名とを比較し、両者が一致するか判定する。【０１３２】
［ステップＳ１１４ｇ］業務フロー整列部４７０は、行列の位置（ｉ−１，ｊ）、位置（ｉ，ｊ−１）、位置（ｉ−１，ｊ−１）の数値の中で、最も小さい数値を選択する。そして、業務フロー整列部４７０は、ステップＳ１１４ｆで２つのテーブル名が一致すると判定した場合、選択した数値を位置（ｉ，ｊ）の数値に設定する。一方、ステップＳ１１４ｆで２つのテーブル名が一致しないと判定した場合、選択した数値に１を加えたものを位置（ｉ，ｊ）の数値に設定する。【０１３３】
［ステップＳ１１４ｈ］業務フロー整列部４７０は、ステップＳ１１４ｅでｍ列目の位置まで選択が終わると、ステップＳ１１４ｆ，１１４ｇの繰り返し処理を終了する。
［ステップＳ１１４ｉ］業務フロー整列部４７０は、ステップＳ１１４ｄでｎ行目の行まで選択が終わると、ステップＳ１１４ｅ〜Ｓ１１４ｈの繰り返し処理を終了する。【０１３４】
［ステップＳ１１４ｊ］業務フロー整列部４７０は、行列の位置（ｎ，ｍ）の数値を、例外業務フローと典型業務フローとの距離と決定する。
図１８は、距離計算処理の流れを示す概念図である。図１８は、典型業務フローのテーブル列が“Ａ，Ｂ１，Ｃ，Ｄ，Ｅ”、例外業務フローのテーブル列が“Ａ，Ｂ２，Ｃ，Ｄ，Ｅ，Ｆ”の場合の距離計算処理の流れを示している。ここで、典型業務フローの長さが５，例外業務フローの長さが６であるため、６行７列の行列が定義される。【０１３５】
ステップＳＴ１は、上記ステップＳ１１４ｃで初期化が行われた後の状態を示している。前述の通り、最初に、行列の０行目と０列目とが初期化される。具体的には、０行目に０，１，２，３，４，５，６の数値が設定される。また、０列目に０，１，２，３，４，５の数値が設定される。【０１３６】
ステップＳＴ２は、１行目について上記ステップＳ１１４ｅ〜Ｓ１１４ｈの処理が行われた状態を示している。例えば、位置（１，１）には、２つのテーブル名が一致し、位置（０，０）の０が３つの中で最も小さい数値であるため、０が設定される。位置（１，２）には、２つのテーブル名が一致せず、位置（１，１）の０が３つの中で最も小さい数値であるため、１が設定される。【０１３７】
ステップＳＴ３は、距離計算処理が終了した状態を示している。上記ステップＳ１１４ａ〜Ｓ１１４ｊに従って処理が行われると、行列の位置（５，６）に２が設定される。したがって、“Ａ，Ｂ１，Ｃ，Ｄ，Ｅ”と“Ａ，Ｂ２，Ｃ，Ｄ，Ｅ，Ｆ”との距離が２と決定される。【０１３８】
なお、Ｌｅｖｅｎｓｈｔｅｉｎ距離は、直感的には、一方のテーブル列を他方のテーブル列に変換するために必要な置換、挿入、削除の操作回数を意味する。例えば、“Ａ，Ｂ１，Ｃ，Ｄ，Ｅ”の“Ｂ１”を“Ｂ２”に置換し“Ｆ”を追加すると、“Ａ，Ｂ２，Ｃ，Ｄ，Ｅ，Ｆ”に変換できるため、両者のＬｅｖｅｎｓｈｔｅｉｎ距離は２となる。Ｌｅｖｅｎｓｈｔｅｉｎ距離は、機械的には、上記のアルゴリズムで計算することができる。【０１３９】
図１９は、第１の整列処理の例外業務フロー選択画面の表示例を示す図である。図１９に示す例外業務フロー選択画面５４１は、上記ステップＳ３１で整列方法が“典型業務フローからの乖離度降順”に決定された場合に、上記ステップＳ３４で業務モデル表示部４６０によってモニタ５０に表示される画面である。【０１４０】
例外業務フロー選択画面５４１は、選択領域５４１ａおよび選択ボタン５４１ｂを有する。
選択領域５４１ａは、一覧から例外業務フローを選択するための領域である。選択領域５４１ａには、代表距離が大きい順に例外業務フローを表す情報の一覧が表示される。例外業務フローを表す情報には、例外業務フローの代表距離が含まれる。ユーザは、選択領域５４１ａに表示された例外業務フローの中から１つを選択することができる。【０１４１】
選択ボタン５４１ｂは、選択された例外業務フローを確定するためのボタンである。選択ボタン５４１ｂが押されると、業務モデル表示部４６０は、第１の実施の形態と同様に、すべての典型業務フローと選択された例外業務フローとに基づいて、例外業務フロー図をモニタ５０に表示する。【０１４２】
このように、“典型業務フローからの乖離度降順”の整列方法によれば、典型業務フローとの乖離度が大きい例外業務フローに高い表示順序が与えられる。これにより、典型業務フローと大きく異なる異常な例外業務フローの把握が容易となる。【０１４３】
図２０は、第２の整列処理の手順を示すフローチャートである。図２０に示す第２の整列処理は、上記ステップＳ３１で整列方法が“典型業務フローとの類似度”に決定された場合に、上記ステップＳ３３で実行される処理である。なお、第２の整列処理は、パラメータの指定が不要である。以下、図２０に示す処理をステップ番号に沿って説明する。【０１４４】
［ステップＳ１２１］業務フロー整列部４７０は、業務モデル記憶部４２０に格納された例外業務フロー情報テーブル４２０ｂを参照して、未選択の例外業務フローを１つ選択する。【０１４５】
［ステップＳ１２２］業務フロー整列部４７０は、業務モデル記憶部４２０に格納された典型業務フロー情報テーブル４２０ａを参照して、未選択の典型業務フローを１つ選択する。【０１４６】
［ステップＳ１２３］業務フロー整列部４７０は、ステップＳ１２１で選択した例外業務フローとステップＳ１２２で選択した典型業務フローとの距離を計算する。距離の計算方法は、第１の整列処理のステップＳ１１４の方法と同じである。【０１４７】
［ステップＳ１２４］業務フロー整列部４７０は、ステップＳ１２２ですべての典型業務フローを選択したか否か判断する。すべての典型業務フローを選択した場合には、処理がステップＳ１２５に進められる。未選択の典型業務フローがある場合には、処理がステップＳ１２２に進められる。【０１４８】
［ステップＳ１２５］業務フロー整列部４７０は、ステップＳ１２３で計算した距離が最小の典型業務フローを特定する。そして、業務フロー整列部４７０は、ステップＳ１２１で選択した例外業務フローを、特定した典型業務フローに分類する。なお、距離が最小の典型業務フローが複数ある場合には、複数の典型業務フローに分類する。【０１４９】
［ステップＳ１２６］業務フロー整列部４７０は、ステップＳ１２１ですべての例外業務フローを選択したか否か判断する。すべての例外業務フローを選択した場合には、処理がステップＳ１２７に進められる。未選択の例外業務フローがある場合には、処理がステップＳ１２１に進められる。【０１５０】
［ステップＳ１２７］業務フロー整列部４７０は、典型業務フローごとに、その典型業務フローに分類されたすべての例外業務フローを、分類先の典型業務フローとの距離が小さい順に整列し、表示順序とする。【０１５１】
例えば、２つの典型業務フローＰ＝“Ａ１，Ｂ１，Ｃ１”およびＱ＝“Ａ２，Ｂ２，Ｃ２”と、２つの例外業務フローＳ＝“Ａ１，Ｂ１”およびＴ＝“Ａ２，Ｃ２”があるとする。この場合、距離（Ｐ，Ｓ）＝１、距離（Ｑ，Ｓ）＝２であるため、例外業務フローＳは典型業務フローＰに分類される。また、距離（Ｐ，Ｔ）＝２，距離（Ｑ，Ｔ）＝１であるため、例外業務フローＴは典型業務フローＱに分類される。【０１５２】
図２１は、第２の整列処理の例外業務フロー選択画面の表示例を示す図である。図２１に示す例外業務フロー選択画面５４２は、上記ステップＳ３１で整列方法が“典型業務フローとの類似度”に決定された場合に、上記ステップＳ３４で業務モデル表示部４６０によってモニタ５０に表示される画面である。【０１５３】
例外業務フロー選択画面５４２は、選択領域５４２ａ，５４２ｂおよび選択ボタン５４２ｃを有する。
選択領域５４２ａ，５４２ｂは、一覧から例外業務フローを選択するための領域である。選択領域５４２ａには、１つ目の典型業務フローに分類された例外業務フローを表す情報が、１つ目の典型業務フローとの距離が小さい順に表示される。選択領域５４２ｂには、２つ目の典型業務フローに分類された例外業務フローを表す情報が、２つ目の典型業務フローとの距離が小さい順に表示される。例外業務フローを表す情報には、距離が含まれる。ユーザは、選択領域５４２ａ，５４２ｂに表示された例外業務フローの中から１つを選択することができる。【０１５４】
選択ボタン５４２ｃは、選択された例外業務フローを確定するためのボタンである。選択ボタン５４２ｃが押されると、業務モデル表示部４６０は、すべての典型業務フローと選択された例外業務フローとに基づいて、例外業務フロー図をモニタ５０に表示する。【０１５５】
このように、“典型業務フローとの類似度”の整列方法によれば、例外業務フローが最も類似する典型業務フローと関連付けられる。さらに、典型業務フローと類似度がより高い例外業務フローに高い表示順序が与えられる。これにより、特定の典型業務フローと関連性の高い例外業務フローを容易に把握できるようになる。【０１５６】
図２２は、第３の整列処理の手順を示すフローチャートである。図２２に示す第３の整列処理は、上記ステップＳ３１で整列方法が“特定のテーブル列を含むフロー”に決定された場合に、上記ステップＳ３３で実行される処理である。なお、第３の整列処理は、パラメータとして、検索対象のテーブル列の指定を必要とする。以下、図２２に示す処理をステップ番号に沿って説明する。【０１５７】
［ステップＳ１３１］業務フロー整列部４７０は、業務モデル表示部４６０から、パラメータの値として指定テーブル列を取得する。指定テーブル列とは、ユーザによって指定された検索条件である。すなわち、指定テーブル列を含む例外業務フローが検索対象となる。【０１５８】
［ステップＳ１３２］業務フロー整列部４７０は、業務モデル記憶部４２０に格納された例外業務フロー情報テーブル４２０ｂを参照して、未選択の例外業務フローを１つ選択する。【０１５９】
［ステップＳ１３３］業務フロー整列部４７０は、ステップＳ１３２で選択した例外業務フローのテーブル列に、ステップＳ１３１で取得した指定テーブル列が何回出現するか計算する。【０１６０】
［ステップＳ１３４］業務フロー整列部４７０は、ステップＳ１３３で計算した出現回数が０より大きいか判断する。出現回数が０より大きい場合には、処理がステップＳ１３５に進められる。出現回数が０の場合には、処理がステップＳ１３６に進められる。【０１６１】
［ステップＳ１３５］業務フロー整列部４７０は、ステップＳ１３２で選択した例外業務フローを該当フローに分類する。
［ステップＳ１３６］業務フロー整列部４７０は、ステップＳ１３２ですべての例外業務フローを選択したか否か判断する。すべての例外業務フローを選択した場合には、処理がステップＳ１３７に進められる。未選択の例外業務フローがある場合には、処理がステップＳ１３２に進められる。
【０１６２】
［ステップＳ１３７］業務フロー整列部４７０は、ステップＳ１３４で該当フローに分類されたすべての例外業務フローを、出現回数が多い順に整列し、表示順序とする。また、業務フロー整列部４７０は、ステップＳ１３４で該当フローに分類されなかったすべての例外業務フローを非該当フローに分類する。【０１６３】
例えば、３つの例外業務フローＳ＝“Ａ，Ｂ，Ｃ”、Ｔ＝“Ａ，Ｂ，Ｄ”、Ｕ＝“Ａ，Ｂ，Ｃ，Ｂ，Ｃ”があるとする。また、ユーザによって入力された指定テーブル列が“Ｂ，Ｃ”であるとする。この場合、例外業務フローＳにおける出現回数は１、例外業務フローＴにおける出現回数は０、例外業務フローＵにおける出現回数は２であるため、例外業務フローＳ，Ｔ，Ｕが該当フローＳ，Ｕと非該当フローＴとに分類される。また、２つの該当フローの表示順序は、Ｕ，Ｓの順となる。【０１６４】
図２３は、第３の整列処理のパラメータ入力画面の表示例を示す図である。図２３に示すパラメータ入力画面５３１は、図１５に示した整列方法選択画面５３で“特定のテーブル列を含むフロー”が選択された後に、業務モデル表示部４６０によってモニタ５０に表示される画面である。【０１６５】
パラメータ入力画面５３１は、選択領域５３１ａ，５３１ｂ、追加ボタン５３１ｃ、削除ボタン５３１ｄおよび決定ボタン５３１ｅを有する。
選択領域５３１ａは、一覧からテーブル名を選択するための領域である。選択領域５３１ａには、すべてのテーブル名が表示される。また、選択領域５３１ａには、業務フローの開始を意味する“ＩＮＩＴＩＡＬ”と業務フローの終了を意味する“ＦＩＮＡＬ”とが表示される。ユーザは、選択領域５３１ａに表示されたテーブル名の中から１つを選択することができる。【０１６６】
選択領域５３１ｂは、指定テーブル列に含まれるテーブル名を選択するための領域である。選択領域５３１ｂには、指定テーブル列に含まれるテーブル名が順序付けられて表示される。ユーザは、選択領域５３１ｂに表示されたテーブル名の中から１つを選択することができる。【０１６７】
追加ボタン５３１ｃは、指定テーブル列にテーブル名を追加するためのボタンである。選択領域５３１ａでテーブル名が選択されているときに追加ボタン５３１ｃが押されると、選択されているテーブル名が指定テーブル列の最後尾に追加される。【０１６８】
削除ボタン５３１ｄは、指定テーブル列の中のテーブル名を１つ削除するためのボタンである。選択領域５３１ｂでテーブル名が選択されているときに削除ボタン５３１ｄが押されると、選択されているテーブル名が指定テーブル列から削除される。【０１６９】
決定ボタン５３１ｅは、指定テーブル列に含まれるテーブル名を確定するためのボタンである。決定ボタン５３１ｅが押されると、業務モデル表示部４６０は、入力された指定テーブル列をパラメータの値に決定する。【０１７０】
図２４は、第３の整列処理の例外業務フロー選択画面の表示例を示す図である。図２４に示す例外業務フロー選択画面５４３は、上記ステップＳ３１で整列方法が“特定のテーブル列を含むフロー”に決定された場合に、上記ステップＳ３４で業務モデル表示部４６０によってモニタ５０に表示される画面である。【０１７１】
例外業務フロー選択画面５４３は、選択領域５４３ａ，５４３ｂおよび選択ボタン５４３ｃを有する。
選択領域５４３ａ，５４３ｂは、一覧から例外業務フローを選択するための領域である。選択領域５４３ａには、該当フローに分類された例外業務フローを表す情報が、指定テーブル列の出現回数が多い順に表示される。選択領域５４３ｂには、非該当フローに分類された例外業務フローを表す情報が表示される。該当フローに分類された例外業務フローを表す情報には、出現回数が含まれる。ユーザは、選択領域５４３ａ，５４３ｂに表示された例外業務フローの中から１つを選択することができる。【０１７２】
選択ボタン５４３ｃは、選択された例外業務フローを確定するためのボタンである。選択ボタン５４３ｃが押されると、業務モデル表示部４６０は、すべての典型業務フローと選択された例外業務フローとに基づいて、例外業務フロー図をモニタ５０に表示する。【０１７３】
このように、“特定のテーブル列を含むフロー”の整列方法によれば、ユーザが指定したテーブル列を多く含む例外業務フローに高い表示順序が与えられる。これにより、テーブルの更新順序が不適切なデータ更新処理を容易に発見できるようになる。【０１７４】
図２５は、第４の整列処理の手順を示すフローチャートである。図２５に示す第４の整列処理は、上記ステップＳ３１で整列方法が“テーブル列の条件不備フロー”に決定された場合に、上記ステップＳ３３で実行される処理である。なお、第４の整列処理は、パラメータとして、事前テーブル名、事後テーブル名、事前テーブル名に対応する事前条件、および、事後テーブル名に対応する事後条件の指定を必要とする。以下、図２５に示す処理をステップ番号に沿って説明する。【０１７５】
［ステップＳ１４１］業務フロー整列部４７０は、業務モデル表示部４６０から、パラメータの値として事後テーブル名と事後条件とを取得する。事後テーブル名および事後条件は、ユーザによって指定された検索条件である。すなわち、事後テーブル名を含み、かつ、事後条件に適合する属性値が存在する例外業務フローが検索対象となる。なお、事後条件は省略されていてもよい。【０１７６】
［ステップＳ１４２］業務フロー整列部４７０は、業務モデル表示部４６０から、パラメータの値として事前テーブル名と事前条件とを取得する。事前テーブル名および事前条件は、ステップＳ１４１で取得した事後テーブル名および事後条件に合致する例外業務フローが具備すべき必要条件である。すなわち、事後テーブル名および事後条件によって検索対象となる例外業務フローは、事前テーブル名を含み、かつ、事前条件に適合する属性値が存在することが求められる。なお、事前条件は省略されていてもよい。【０１７７】
［ステップＳ１４３］業務フロー整列部４７０は、業務モデル記憶部４２０に格納された例外業務フロー情報テーブル４２０ｂを参照して、未選択の例外業務フローを１つ選択する。【０１７８】
［ステップＳ１４４］業務フロー整列部４７０は、ステップＳ１４３で選択した例外業務フローのテーブル列にステップＳ１４１で取得した事後テーブル名が含まれるか判断する。また、業務フロー整列部４７０は、事後テーブル名に対応するすべての属性値がステップＳ１４１で取得した事後条件を具備するか判断する。事後テーブル名が含まれ、かつ、事後条件を具備する場合には、処理がステップＳ１４６に進められる。少なくとも、事後テーブル名が含まれないか、または、事後条件を具備しない属性値がある場合には、処理がステップＳ１４５に進められる。【０１７９】
［ステップＳ１４５］業務フロー整列部４７０は、ステップＳ１４３で選択した例外業務フローを対象外フローに分類する。
［ステップＳ１４６］業務フロー整列部４７０は、ステップＳ１４３で選択した例外業務フローのテーブル列にステップＳ１４２で取得した事前テーブル名が含まれるか判断する。また、業務フロー整列部４７０は、事前テーブル名に対応するすべての属性値がステップＳ１４２で取得した事前条件を具備するか判断する。事前テーブル名が含まれ、かつ、事前条件を具備する場合には、処理がステップＳ１４７に進められる。少なくとも、事前テーブル名が含まれないか、または、事前条件を具備しない属性値がある場合には、処理がステップＳ１４８に進められる。【０１８０】
［ステップＳ１４７］業務フロー整列部４７０は、ステップＳ１４３で選択した例外業務フローを条件具備フローに分類する。
［ステップＳ１４８］業務フロー整列部４７０は、ステップＳ１４３で選択した例外業務フローを条件不備フローに分類する。【０１８１】
［ステップＳ１４９］業務フロー整列部４７０は、ステップＳ１４３ですべての例外業務フローを選択したか否か判断する。すべての例外業務フローを選択した場合には、処理が終了する。未選択の例外業務フローがある場合には、処理がステップＳ１４３に進められる。【０１８２】
例えば、３つの例外業務フローＳ＝“Ａ，Ｂ，Ｃ，Ｄ”、Ｔ＝“Ａ，Ｃ，Ｄ”、Ｕ＝“Ａ，Ｅ，Ｄ”があるとする。ここで、テーブル名“Ｄ”に対応して、例外業務フローＳでは属性値“ａｍｏｕｎｔ＝１２０”、例外業務フローＴでは属性値“ａｍｏｕｎｔ＝１５０”、例外業務フローＵでは属性値“ａｍｏｕｎｔ＝８０”が存在するとする。また、ユーザによって入力された事後テーブル名が“Ｄ”、事後条件が“ａｍｏｕｎｔ＞＝１００”、事前テーブル名が“Ｂ”であるとする。【０１８３】
この場合、例外業務フローＳは、事後テーブル名がテーブル列に含まれ、事後条件を具備し、事前テーブル名がテーブル列に含まれるため、条件具備フローに分類される。例外業務フローＴは、事後テーブル名がテーブル列に含まれ、事後条件を具備するが、事前テーブル名がテーブル列に含まれないため、条件不備フローに分類される。例外業務フローＵは、事後テーブル名がテーブル列に含まれるが、事後条件を具備しないため、対象外フローに分類される。【０１８４】
図２６は、第４の整列処理のパラメータ入力画面の表示例を示す図である。図２６に示すパラメータ入力画面５３２は、図１５に示した整列方法選択画面５３で“テーブル列の条件不備フロー”が選択された後に、業務モデル表示部４６０によってモニタ５０に表示される画面である。【０１８５】
パラメータ入力画面５３２は、選択領域５３２ａ，５３２ｂ、入力領域５３２ｃ，５３２ｄおよび決定ボタン５３２ｅを有する。
選択領域５３２ａは、一覧から事前テーブル名を選択するための領域である。ユーザは、選択領域５３２ａに表示されたテーブル名の中から１つを選択することができる。選択領域５３２ｂは、一覧から事後テーブル名を選択するための領域である。ユーザは、選択領域５３２ｂに表示されたテーブル名の中から１つを選択することができる。【０１８６】
入力領域５３２ｃは、事前条件を入力するための領域である。ユーザは、数値や文字列などのリテラルおよび等号や不等号などの演算子を用いた論理式を、入力領域５３２ｃ内に記述することができる。入力領域５３２ｄは、事後条件を入力するための領域である。ユーザは、論理式を入力領域５３２ｄ内に記述することができる。【０１８７】
決定ボタン５３２ｅは、事前テーブル名、事後テーブル名、事前条件、事後条件を確定するためのボタンである。決定ボタン５３２ｅが押されると、業務モデル表示部４６０は、入力内容をパラメータの値に決定する。【０１８８】
図２７は、第４の整列処理の例外業務フロー選択画面の表示例を示す図である。図２７に示す例外業務フロー選択画面５４４は、上記ステップＳ３１で整列方法が“テーブル列の条件不備フロー”に決定された場合に、上記ステップＳ３４で業務モデル表示部４６０によってモニタ５０に表示される画面である。【０１８９】
例外業務フロー選択画面５４４は、選択領域５４４ａ，５４４ｂ，５４４ｃおよび選択ボタン５４４ｄを有する。
選択領域５４４ａ，５４４ｂ，５４４ｃは、一覧から例外業務フローを選択するための領域である。選択領域５４４ａには、条件不備フローに分類された例外業務フローを表す情報が表示される。選択領域５４４ｂには、条件具備フローに分類された例外業務フローを表す情報が表示される。選択領域５４４ｃには、対象外フローに分類された例外業務フローを表す情報が表示される。ユーザは、選択領域５４４ａ，５４４ｂ，５４４ｃに表示された例外業務フローの中から１つを選択することができる。【０１９０】
選択ボタン５４４ｄは、選択された例外業務フローを確定するためのボタンである。選択ボタン５４４ｄが押されると、業務モデル表示部４６０は、すべての典型業務フローと選択された例外業務フローとに基づいて、例外業務フロー図をモニタ５０に表示する。【０１９１】
このように、“テーブル列の条件不備フロー”の整列方法によれば、ユーザが指定した事後テーブル名および事後条件に該当する例外業務フローのうち、事前テーブル名および事前条件を具備しない例外業務フローが抽出される。これにより、テーブルの更新内容が不適切なデータ更新処理を容易に発見できるようになる。【０１９２】
図２８は、第５の整列処理の手順を示すフローチャートである。図２８に示す第５の整列処理は、上記ステップＳ３１で整列方法が“手戻り発生フロー”に決定された場合に、上記ステップＳ３３で実行される処理である。なお、第５の整列処理は、パラメータの指定が不要である。以下、図２８に示す処理をステップ番号に沿って説明する。【０１９３】
［ステップＳ１５１］業務フロー整列部４７０は、業務モデル記憶部４２０に格納された例外業務フロー情報テーブル４２０ｂを参照して、未選択の例外業務フローを１つ選択する。【０１９４】
［ステップＳ１５２］業務フロー整列部４７０は、変数としてカウンタを定義し、初期値を０に設定する。
［ステップＳ１５３］業務フロー整列部４７０は、変数として正規テーブル列を定義し、初期値を空配列に設定する。また、変数としてポインタを定義し、初期値を０に設定する。【０１９５】
［ステップＳ１５４］業務フロー整列部４７０は、ステップＳ１５１で選択した例外業務フローのテーブル列の先頭から順に、未選択のテーブル名を１つ選択する。
［ステップＳ１５５］業務フロー整列部４７０は、ステップＳ１５４で選択したテーブル名が正規テーブル列に含まれているか否か判断する。含まれていない場合には、処理がステップＳ１５６に進められる。含まれている場合には、処理がステップＳ１５７に進められる。【０１９６】
［ステップＳ１５６］業務フロー整列部４７０は、正規テーブル列の最後尾にステップＳ１５４で選択したテーブル名を追加する。
［ステップＳ１５７］業務フロー整列部４７０は、正規テーブル列においてステップＳ１５４で選択したテーブル名が格納されている位置を示す数値が、ポインタの値以下であるか否か判断する。ポインタの値以下の場合には、処理がステップＳ１５８に進められる。ポインタの値より大きい場合には、処理がステップＳ１５９に進められる。なお、正規テーブル列における位置を示す数値は、１以上の整数である。【０１９７】
［ステップＳ１５８］業務フロー整列部４７０は、カウンタの値を１だけ増加させる。
［ステップＳ１５９］業務フロー整列部４７０は、ポインタの値を、正規テーブル列においてステップＳ１５４で選択したテーブル名が格納されている位置を示す数値に設定する。【０１９８】
［ステップＳ１６０］業務フロー整列部４７０は、ステップＳ１５４ですべてのテーブル名を選択したか否か判断する。すべてのテーブル名を選択した場合には、処理がステップＳ１６１に進められる。未選択のテーブル名がある場合には、処理がステップＳ１５４に進められる。【０１９９】
［ステップＳ１６１］業務フロー整列部４７０は、現在のカウンタの値を、ステップＳ１５１で選択した例外業務フローの手戻り数として確定する。
［ステップＳ１６２］業務フロー整列部４７０は、ステップＳ１５１ですべての例外業務フローを選択したか否か判断する。すべての例外業務フローを選択した場合には、処理がステップＳ１６３に進められる。未選択の例外業務フローがある場合には、処理がステップＳ１５１に進められる。【０２００】
［ステップＳ１６３］業務フロー整列部４７０は、すべての例外業務フローを、ステップＳ１６１で確定した手戻り数が大きい順に整列し、表示順序とする。
図２９は、第５の整列処理の流れを示す概念図である。図２９は、例外業務フローのテーブル列が“Ａ，Ｂ，Ｃ，Ｄ，Ｂ，Ｃ，Ｅ，Ｃ，Ｄ”の場合における、手戻り数の計算の流れを示している。以下、図２９に示す処理をステップ番号に沿って説明する。【０２０１】
［ステップＳＴ１１］テーブル列から先頭のテーブル名“Ａ”が選択される。このとき、正規テーブル列は空配列である。そこで、正規テーブル列にテーブル名“Ａ”が追加され、ポインタの値が１に設定される。【０２０２】
［ステップＳＴ１２］テーブル列から２番目のテーブル名“Ｂ”が選択される。このとき、正規テーブル列にテーブル名“Ｂ”は含まれていない。そこで、正規テーブル列の最後尾にテーブル名“Ｂ”が追加され、ポインタの値が２に設定される。【０２０３】
［ステップＳＴ１３］テーブル列から３番目のテーブル名“Ｃ”が選択される。このとき、正規テーブル列にテーブル名“Ｃ”は含まれていない。そこで、正規テーブル列の最後尾にテーブル名“Ｃ”が追加され、ポインタの値が３に設定される。【０２０４】
［ステップＳＴ１４］テーブル列から４番目のテーブル名“Ｄ”が選択される。このとき、正規テーブル列にテーブル名“Ｄ”は含まれていない。そこで、正規テーブル列の最後尾にテーブル名“Ｄ”が追加され、ポインタの値が４に設定される。【０２０５】
［ステップＳＴ１５］テーブル列から５番目のテーブル名“Ｂ”が選択される。このとき、正規テーブル列にテーブル名“Ｂ”が含まれており、正規テーブル列におけるテーブル名“Ｂ”の位置が現在のポインタが示す位置（テーブル名“Ｄ”の位置）より前である。そこで、カウンタの値が１に設定され、ポインタの値が２に設定される。【０２０６】
［ステップＳＴ１６］テーブル列から６番目のテーブル名“Ｃ”が選択される。このとき、正規テーブル列にテーブル名“Ｃ”が含まれているが、正規テーブル列におけるテーブル名“Ｃ”の位置が現在のポインタが示す位置（テーブル名“Ｂ”の位置）より後である。そこで、ポインタの値が３に設定される。【０２０７】
［ステップＳＴ１７］テーブル列から７番目のテーブル名“Ｅ”が選択される。このとき、正規テーブル列にテーブル名“Ｅ”が含まれていない。そこで、正規テーブル列の最後尾にテーブル名“Ｅ”が追加され、ポインタの値が５に設定される。【０２０８】
［ステップＳＴ１８］テーブル列から８番目のテーブル名“Ｃ”が選択される。このとき、正規テーブル列にテーブル名“Ｃ”が含まれており、正規テーブル列におけるテーブル名“Ｃ”の位置が現在のポインタが示す位置（テーブル名“Ｅ”の位置）より前である。そこで、カウンタの値が２に設定され、ポインタの値が３に設定される。【０２０９】
［ステップＳＴ１９］テーブル列から９番目のテーブル名“Ｄ”が選択される。このとき、正規テーブル列にテーブル名“Ｄ”が含まれているが、正規テーブル列におけるテーブル名“Ｄ”の位置が現在のポインタが示す位置（テーブル名“Ｃ”の位置）より後である。そこで、ポインタの値が４に設定される。【０２１０】
以上の処理によって、テーブル列が“Ａ，Ｂ，Ｃ，Ｄ，Ｂ，Ｃ，Ｅ，Ｃ，Ｄ”の場合の手戻り数が２と計算される。
図３０は、第５の整列処理の例外業務フロー選択画面の表示例を示す図である。図３０に示す例外業務フロー選択画面５４５は、上記ステップＳ３１で整列方法が“手戻り発生フロー”に決定された場合に、上記ステップＳ３４で業務モデル表示部４６０によってモニタ５０に表示される画面である。【０２１１】
例外業務フロー選択画面５４５は、選択領域５４５ａ，５４５ｂおよび選択ボタン５４５ｃを有する。
選択領域５４５ａ，５４５ｂは、一覧から例外業務フローを選択するための領域である。選択領域５４５ａには、手戻り数が１以上の例外業務フローを表す情報が、手戻り数の大きい順に表示される。選択領域５４５ｂには、手戻り数が０の例外業務フローを表す情報が表示される。手戻り数が１以上の例外業務フローを表す情報には、手戻り数が含まれる。ユーザは、選択領域５４５ａ，５４５ｂに表示された例外業務フローの中から１つを選択することができる。【０２１２】
選択ボタン５４５ｃは、選択された例外業務フローを確定するためのボタンである。選択ボタン５４５ｃが押されると、業務モデル表示部４６０は、すべての典型業務フローと選択された例外業務フローとに基づいて、例外業務フロー図をモニタ５０に表示する。【０２１３】
このように、“手戻り発生フロー”の整列方法によれば、手戻りの回数が多い例外業務フローに高い表示順序が与えられる。これにより、非効率な業務フローの把握が容易となる。【０２１４】
図３１は、第６の整列処理の手順を示すフローチャートである。図３１に示す第６の整列処理は、上記ステップＳ３１で整列方法が“繰り返し発生フロー”に決定された場合に、上記ステップＳ３３で実行される処理である。なお、第６の整列処理は、パラメータの指定が不要である。以下、図３１に示す処理をステップ番号に沿って説明する。【０２１５】
［ステップＳ１７１］業務フロー整列部４７０は、業務モデル記憶部４２０に格納された例外業務フロー情報テーブル４２０ｂを参照して、未選択の例外業務フローを１つ選択する。【０２１６】
［ステップＳ１７２］業務フロー整列部４７０は、変数としてカウンタを定義し、初期値を０に設定する。
［ステップＳ１７３］業務フロー整列部４７０は、ステップＳ１７１で選択した例外業務フローのテーブル列の先頭から順に、隣接する２つのテーブル名の組を選択する。【０２１７】
［ステップＳ１７４］業務フロー整列部４７０は、ステップＳ１７３で選択した２つのテーブル名が同一か否か判断する。同一である場合には、処理がステップＳ１７５に進められる。同一でない場合には、処理がステップＳ１７６に進められる。【０２１８】
［ステップＳ１７５］業務フロー整列部４７０は、カウンタの値を１だけ増加させる。
［ステップＳ１７６］業務フロー整列部４７０は、ステップＳ１７３で隣接するすべてのテーブル名の組を選択したか否か判断する。すべてのテーブル名の組を選択した場合には、処理がステップＳ１７７に進められる。未選択のテーブル名の組がある場合には、処理がステップＳ１７３に進められる。【０２１９】
［ステップＳ１７７］業務フロー整列部４７０は、現在のカウンタの値を、ステップＳ１７１で選択した例外業務フローの繰り返し数として確定する。
［ステップＳ１７８］業務フロー整列部４７０は、ステップＳ１７１ですべての例外業務フローを選択したか否か判断する。すべての例外業務フローを選択した場合には、処理がステップＳ１７９に進められる。未選択の例外業務フローがある場合には、処理がステップＳ１７１に進められる。【０２２０】
［ステップＳ１７９］業務フロー整列部４７０は、すべての例外業務フローを、ステップＳ１７７で確定した繰り返し数が大きい順に整列し、表示順序とする。
例えば、例外業務フローのテーブル列が“Ａ，Ｂ，Ｂ，Ｂ，Ｃ，Ｃ，Ｄ”であるとする。このとき、隣接する６組のテーブル名のうち、（Ａ，Ｂ）、（Ｂ，Ｃ）、（Ｃ，Ｄ）の３組でテーブル名が一致せず、（Ｂ，Ｂ）、（Ｂ，Ｂ）、（Ｃ，Ｃ）の３組でテーブル名が一致する。したがって、テーブル列が“Ａ，Ｂ，Ｂ，Ｂ，Ｃ，Ｃ，Ｄ”の場合における繰り返し数は３となる。【０２２１】
図３２は、第６の整列処理の例外業務フロー選択画面の表示例を示す図である。図３２に示す例外業務フロー選択画面５４６は、上記ステップＳ３１で整列方法が“繰り返し発生フロー”に決定された場合に、上記ステップＳ３４で業務モデル表示部４６０によってモニタ５０に表示される画面である。【０２２２】
例外業務フロー選択画面５４６は、選択領域５４６ａ，５４６ｂおよび選択ボタン５４６ｃを有する。
選択領域５４６ａ，５４６ｂは、一覧から例外業務フローを選択するための領域である。選択領域５４６ａには、繰り返し数が１以上の例外業務フローを表す情報が、繰り返し数の大きい順に表示される。選択領域５４６ｂには、繰り返し数が０の例外業務フローを表す情報が表示される。繰り返し数が１以上の例外業務フローを表す情報には、繰り返し数が含まれる。ユーザは、選択領域５４６ａ，５４６ｂに表示された例外業務フローの中から１つを選択することができる。【０２２３】
選択ボタン５４６ｃは、選択された例外業務フローを確定するためのボタンである。選択ボタン５４６ｃが押されると、業務モデル表示部４６０は、すべての典型業務フローと選択された例外業務フローとに基づいて、例外業務フロー図をモニタ５０に表示する。【０２２４】
このように、“繰り返し発生フロー”の整列方法によれば、連続して同一のテーブルを更新する回数が多い例外業務フローに高い表示順序が与えられる。これにより、非効率な業務フローの把握が容易となる。【０２２５】
なお、本実施の形態では、７つの整列方法の中から１つを選択できるようにしたが、矛盾が生じない範囲で２つ以上の整列方法を組み合わせて使用できるようにしてもよい。
このような業務分析装置４００を用いることで、第１の実施の形態の業務分析装置１００を用いた場合と同様の効果を得られる。さらに、業務分析装置４００を用いることで、例外業務フローの中から特定の条件を具備する業務フローを容易に抽出することができる。例外業務フローは、例外的に発生する業務フローであるため、出現数が少ないものが多種類存在することが多い。したがって、上記の整列処理の機能は、有益な例外業務フローを効率的に発見する上で、大変有用な機能である。【０２２６】
以上、本発明の業務モデル生成プログラム、業務モデル生成方法および業務モデル生成装置を図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は同様の機能を有する任意の構成のものに置換することができる。また、本発明に他の任意の構成物や工程が付加されていてもよい。また、本発明は、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。【０２２７】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、業務分析装置１００，４００が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどが挙げられる。磁気記録装置としては、例えば、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープ（ＭＴ）などが挙げられる。光ディスクとしては、例えば、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などが挙げられる。光磁気記録媒体としては、例えば、ＭＯ（Magneto-Optical disk）などが挙げられる。【０２２８】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。【０２２９】
業務モデル生成プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。【０２３０】
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【０２３１】
１０  コンピュータ
１１  更新情報記憶手段
１２  業務フロー抽出手段
１３  業務フロー分類手段
１４  業務モデル表示手段
２１，２２，２３  データベース管理システム
２１ａ，２２ａ，２３ａ  更新情報
３１  典型業務フロー図
３２  例外業務フロー図
【図１】
0004704461.tif 000002
【図２】
0004704461.tif 000003
【図３】
0004704461.tif 000004
【図４】
0004704461.tif 000005
【図５】
0004704461.tif 000006
【図６】
0004704461.tif 000007
【図７】
0004704461.tif 000008
【図８】
0004704461.tif 000009
【図９】
0004704461.tif 000010
【図１０】
0004704461.tif 000011
【図１１】
0004704461.tif 000012
【図１２】
0004704461.tif 000013
【図１３】
0004704461.tif 000014
【図１４】
0004704461.tif 000015
【図１５】
0004704461.tif 000016
【図１６】
0004704461.tif 000017
【図１７】
0004704461.tif 000018
【図１８】
0004704461.tif 000019
【図１９】
0004704461.tif 000020
【図２０】
0004704461.tif 000021
【図２１】
0004704461.tif 000022
【図２２】
0004704461.tif 000023
【図２３】
0004704461.tif 000024
【図２４】
0004704461.tif 000025
【図２５】
0004704461.tif 000026
【図２６】
0004704461.tif 000027
【図２７】
0004704461.tif 000028
【図２８】
0004704461.tif 000029
【図２９】
0004704461.tif 000030
【図３０】
0004704461.tif 000031
【図３１】
0004704461.tif 000032
【図３２】
0004704461.tif 000033