(57)【要約】【課題】業務プロセスを実現するために複数のプログラムが実行されるトランザクションにおける、プログラムの呼び出し関係情報を含む業務に関するログデータを分析し、分析結果の冗長性を低減した、より有用な分析結果を提供できるようにする。【解決手段】分析装置１を、業務プロセスを実現するために複数のプログラムが実行されるトランザクションにおける、プログラムの呼び出し関係情報を含む業務に関するログデータを分析する分析部３０と、分析部３０によって分析された情報に基づいて、直前に実行されたプログラムと直後に実行されたプログラムが一つずつであるプログラムを除いて、トランザクションにおける複数のプログラムの実行順序を示す情報を生成する生成部３２とを備えるものとする。【選択図】図１
2014049031.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
業務プロセスを実現するために複数のプログラムが実行されるトランザクションにおける、プログラムの呼び出し関係情報を含む業務に関するログデータを分析し、
分析された情報に基づいて、直前に実行されたプログラムと直後に実行されたプログラムが一つずつであるプログラムを除いて、前記トランザクションにおける前記複数のプログラムの実行順序を示す情報を生成する、
処理を実行させることを特徴とする分析プログラム。
【請求項２】
前記分析された情報は、属性情報を含み、
前記実行順序を示す情報を生成する処理において、直前に実行されたプログラムと直後に実行されたプログラムが一つずつである前記プログラムのうち、直前に実行されたプログラムと属性情報が変わっているプログラムは残して、前記実行順序を示す情報を生成する処理を前記コンピュータに実行させることを特徴とする、請求項１に記載の分析プログラム。
【請求項３】
前記実行順序を示す情報を生成する処理において、前記トランザクションの最初に実行されたプログラム、及び、直前に実行されたプログラムがなく、かつ、直後に実行されたプログラムがないプログラムを残して、前記実行順序を示す情報を生成する処理を前記コンピュータに実行させることを特徴とする、請求項１又は２に記載の分析プログラム。
【請求項４】
コンピュータが、
業務プロセスを実現するために複数のプログラムが実行されるトランザクションにおける、プログラムの呼び出し関係情報を含む業務に関するログデータを分析し、
分析された情報に基づいて、直前に実行されたプログラムと直後に実行されたプログラムが一つずつであるプログラムを除いて、前記トランザクションにおける前記複数のプログラムの実行順序を示す情報を生成する、
処理を実行することを特徴とする分析方法。
【請求項５】
業務プロセスを実現するために複数のプログラムが実行されるトランザクションにおける、プログラムの呼び出し関係情報を含む業務に関するログデータを分析する分析部と、
前記分析部によって分析された情報に基づいて、直前に実行されたプログラムと直後に実行されたプログラムが一つずつであるプログラムを除いて、前記トランザクションにおける前記複数のプログラムの実行順序を示す情報を生成する生成部とを備えることを特徴とする分析装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分析プログラム、分析方法及び分析装置に関する。
【背景技術】
【０００２】
近年、多くの業務プロセスはＩＴ（Information Technology）システム上で動作している。この業務プロセスを実現するＩＴシステムを業務システムという。
業務プロセスは、複数のアクティビティによって構成されている。この業務プロセスを構成する各アクティビティは、業務システムを構成するコンピュータで実行される一連の処理によって構成される。このコンピュータによって実行される一連の処理をトランザクションと呼ぶ。
【０００３】
このトランザクションでは、複数のプログラムが順番に呼び出されてコンピュータによって実行されることになる。そして、複数のプログラムが順番に呼び出されてコンピュータによって実行される際に、複数のプログラム間の呼び出し関係情報を含むログデータが出力されるようになっている。
また、複数のプログラムが順番に呼び出されてコンピュータによって実行される際に出力されるログデータは、例えば業務システム又は業務システムに接続されたログデータ収集装置によって収集され、格納されるようになっている。なお、ログデータを、トランザクションログデータともいう。また、ログデータ収集装置を、トランザクションログデータ収集装置ともいう。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−４３４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、例えば図３７に示すような受注後プロセス（Order to Cache）を実現する業務システムでは、順番に呼び出されるプログラムの数は膨大となり、複雑な処理となることが多い。この場合、トランザクションにおける複数のプログラムの実行順序を示す情報を生成すると、分析結果が冗長なものとなるため、注目すべき部分を特定することが困難で、業務プロセスを分析するという観点では有用な分析結果を得ることが難しい。
【０００６】
また、例えば、上述のようにして収集され、格納されているログデータには、例えばＩＴシステムのインフラやミドルウェアなどが出力したログデータなどの業務に関するログデータ以外のログデータも含まれている場合がある。このようなログデータに基づいて、トランザクションにおける複数のプログラムの実行順序を示す情報を生成すると、本来的な業務プロセスに関係のない情報が含まれてしまい、分析結果が冗長なものとなってしまうため、業務プロセスを分析するという観点では有用な分析結果を得ることが難しい。
【０００７】
そこで、１つの側面では、本発明は、業務プロセスを実現するために複数のプログラムが実行されるトランザクションにおける、プログラムの呼び出し関係情報を含む業務に関するログデータを分析し、分析結果の冗長性を低減した、より有用な分析結果を提供できるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
本分析プログラムは、コンピュータに、業務プロセスを実現するために複数のプログラムが実行されるトランザクションにおける、プログラムの呼び出し関係情報を含む業務に関するログデータを分析し、分析された情報に基づいて、直前に実行されたプログラムと直後に実行されたプログラムが一つずつであるプログラムを除いて、トランザクションにおける複数のプログラムの実行順序を示す情報を生成する、処理を実行させることを要件とする。
【０００９】
本分析方法は、コンピュータが、業務プロセスを実現するために複数のプログラムが実行されるトランザクションにおける、プログラムの呼び出し関係情報を含む業務に関するログデータを分析し、分析された情報に基づいて、直前に実行されたプログラムと直後に実行されたプログラムが一つずつであるプログラムを除いて、トランザクションにおける複数のプログラムの実行順序を示す情報を生成する、処理を実行することを要件とする。
【００１０】
本分析装置は、業務プロセスを実現するために複数のプログラムが実行されるトランザクションにおける、プログラムの呼び出し関係情報を含む業務に関するログデータを分析する分析部と、分析部によって分析された情報に基づいて、直前に実行されたプログラムと直後に実行されたプログラムが一つずつであるプログラムを除いて、トランザクションにおける複数のプログラムの実行順序を示す情報を生成する生成部とを備えることを要件とする。
【発明の効果】
【００１１】
したがって、本分析プログラム、分析方法及び分析装置によれば、業務プロセスを実現するトランザクションにおける、プログラムの呼び出し関係情報を含む業務に関するログデータを分析し、分析結果の冗長性を低減した、より有用な分析結果を提供できるという利点がある。
【図面の簡単な説明】
【００１２】
【図１】本実施形態にかかる分析装置を備える情報処理システムの構成を示す模式図である。
【図２】本実施形態にかかる分析装置を備える情報処理システムの構成例を示す模式図である。
【図３】本実施形態にかかる業務システムによって実現される業務プロセス及びトランザクションを説明するための模式図である。
【図４】本実施形態にかかる業務システムによって実現される業務プロセス及びトランザクションを説明するための模式図である。
【図５】本実施形態にかかるトランザクションログデータ収集装置及びトランザクションログデータ格納ＤＢを説明するための模式図である。
【図６】本実施形態にかかる業務プロセスを実現するためのトランザクションにおける複数のコンポーネントの実行順序を示す情報を示す模式図である。
【図７】本実施形態にかかる業務プロセスを実現するためのトランザクションにおける複数のコンポーネントの実行順序を示す情報における可視化対象の特定を説明するための模式図である。
【図８】本実施形態にかかる業務プロセスを実現するためのトランザクションにおける複数のコンポーネントの実行順序を示す情報におけるグループ化を説明するための模式図である。
【図９】本実施形態にかかる分析装置のハードウェア構成を示す模式図である。
【図１０】本実施形態にかかるトランザクションログデータ分析エンジンによる処理を示すフローチャートである。
【図１１】（Ａ）〜（Ｄ）は、本実施形態にかかる業務プロセスを実現するための各トランザクションにおける複数のコンポーネントの実行順序を示す情報を示す模式図である。
【図１２】本実施形態にかかる業務プロセスを実現するための全てのトランザクションにおける複数のコンポーネントの実行順序を示す情報を示す模式図である。
【図１３】本実施形態にかかるトランザクションログデータ格納ＤＢに格納されているトランザクションログデータを示す図である。
【図１４】本実施形態にかかるトランザクションログデータ分析エンジンによって抽出されたコンポーネント情報を示す図である。
【図１５】本実施形態にかかるトランザクションログデータ分析エンジンによる処理によってコンポーネント情報格納ＤＢに格納されたコンポーネント情報を示す図である。
【図１６】本実施形態にかかるトランザクションログデータ分析エンジンによる処理によってコンポーネント情報格納ＤＢに格納されたコンポーネント情報を示す図である。
【図１７】本実施形態にかかるトランザクションログデータ分析エンジンによる処理によってコンポーネント情報格納ＤＢに格納されたコンポーネント情報を示す図である。
【図１８】本実施形態にかかるトランザクションログデータ分析エンジンによる処理によってコンポーネント情報格納ＤＢに格納されたコンポーネント情報を示す図である。
【図１９】本実施形態にかかるトランザクションログデータ分析エンジンによる処理によってコンポーネント情報格納ＤＢに格納されたコンポーネント情報を示す図である。
【図２０】本実施形態にかかるトランザクションログデータ分析エンジンによる処理によってコンポーネント情報格納ＤＢに格納されたコンポーネント情報を示す図である。
【図２１】本実施形態にかかるトランザクションログデータ分析エンジンによる処理によってコンポーネント情報格納ＤＢに格納されたコンポーネント情報を示す図である。
【図２２】本実施形態にかかるトランザクションログデータ分析エンジンによる処理によってコンポーネント情報格納ＤＢに格納されたコンポーネント情報を示す図である。
【図２３】本実施形態にかかるトランザクションログデータ分析エンジンによる処理によってコンポーネント情報格納ＤＢに格納されたコンポーネント情報を示す図である。
【図２４】本実施形態にかかるトランザクションログデータ分析エンジンによる処理によってコンポーネント情報格納ＤＢに格納されたコンポーネント情報を示す図である。
【図２５】本実施形態にかかるトランザクションログデータ分析エンジンによる処理によってコンポーネント情報格納ＤＢに格納されたコンポーネント情報を示す図である。
【図２６】本実施形態にかかるトランザクションログデータ分析エンジンによる処理によってコンポーネント情報格納ＤＢに格納されたコンポーネント情報を示す図である。
【図２７】本実施形態にかかるトランザクションログデータ分析エンジンによる処理によってコンポーネント情報格納ＤＢに格納されたコンポーネント情報を示す図である。
【図２８】本実施形態にかかるトランザクションログデータ分析エンジンによる処理によってコンポーネント情報格納ＤＢに格納されたコンポーネント情報を示す図である。
【図２９】本実施形態にかかるトランザクションログデータ分析エンジンによる処理によってコンポーネント情報格納ＤＢに格納されたコンポーネント情報を示す図である。
【図３０】本実施形態にかかるトランザクションログデータ分析エンジンによる処理によってコンポーネント情報格納ＤＢに格納されたコンポーネント情報を示す図である。
【図３１】本実施形態にかかるトランザクションログデータ可視化エンジンによる処理を示すフローチャートである。
【図３２】本実施形態にかかるトランザクションログデータ可視化エンジンによる処理において参照されるコンポーネント情報を示す図である。
【図３３】本実施形態にかかるトランザクションログデータ可視化エンジンによる処理によって表示されるトランザクションＩＤ「０００１」のトランザクションにおける複数のプログラムの実行順序を示す情報を示す図である。
【図３４】本実施形態にかかるトランザクションログデータ可視化エンジンによる処理によって表示される全てのトランザクションにおける複数のプログラムの実行順序を示す情報（グループ化した状態）を示す図である。
【図３５】本実施形態にかかるトランザクションログデータ可視化エンジンによる処理によって表示される全てのトランザクションにおける複数のプログラムの実行順序を示す情報（グループを展開した状態）を示す図である。
【図３６】本実施形態にかかるトランザクションログデータ可視化エンジンによる具体的な処理の変形例を示すフローチャートである。
【図３７】一般的な受注後プロセス（Order to Cache）を示す模式図である。
【発明を実施するための形態】
【００１３】
以下、図面により、本発明の実施の形態にかかる分析プログラム、分析方法及び分析装置について、図１〜図３６を参照しながら説明する。
本実施形態にかかる分析装置は、業務プロセスを実現するために複数のプログラムが実行されるトランザクションにおける、プログラムの呼び出し関係情報を含む業務に関するトランザクションログデータを分析するトランザクションログデータ分析装置である。
【００１４】
なお、トランザクションログデータ分析装置を、ログデータ分析装置又は業務トランザクションログデータ分析装置ともいう。また、トランザクションを業務トランザクションともいう。また、トランザクションログデータを業務トランザクションログデータともいう。
例えば図１に示すように、トランザクションログデータ分析装置１は、業務システム２に接続され、業務システム２によって実現される業務プロセスを分析し、分析結果を利用者に提供するために用いられる。
【００１５】
例えば、このトランザクションログデータ分析装置１を備える情報処理システム３は、業務端末４、業務システム２、トランザクションログデータ収集装置５、トランザクションログデータ格納データベース（ＤＢ）６、トランザクションログデータ分析装置１及び利用者端末７を備える。
この場合、トランザクションログデータ分析装置１は、トランザクションログデータ格納データベース（ＤＢ）６、及び、利用者端末７に接続される。そして、業務プロセスを改善すべく、その分析結果を必要とする利用者は、利用者端末７を操作することで、トランザクションログデータ分析装置１による分析結果を得ることができる。
【００１６】
また、トランザクションログデータ格納ＤＢ６は、業務に関するトランザクションログデータ、即ち、業務に関するプログラムが出力したトランザクションログデータが格納されたものである。つまり、トランザクションログデータ格納ＤＢ６は、例えばＩＴシステムのインフラやミドルウェアなどが出力したトランザクションログデータなどの業務に関するトランザクションログデータ以外のトランザクションログデータが含まれていないものとする。このトランザクションログデータ格納ＤＢ６は、業務プロセスを実現するために複数のプログラムが実行されるトランザクションにおける、プログラムの呼び出し関係情報を含む業務に関するトランザクションログデータを格納するトランザクションログデータ格納部である。このため、後述するように、トランザクションにおける複数のプログラムの実行順序を示す情報を生成した場合に、分析結果の冗長性を低減することができる。
【００１７】
この場合、トランザクションログデータ収集装置５が、業務に関するトランザクションログデータのみをトランザクションログデータ格納ＤＢ６に格納するようにする。例えば、業務システム２に接続されたトランザクションログデータ収集装置５が、業務システム２からトランザクションログデータを収集する。そして、トランザクションログデータ収集装置５が、図５に示すように、収集したトランザクションログデータをフィルタリングして、業務に関するトランザクションログデータのみをトランザクションログデータ格納ＤＢ６に格納するようにする。
【００１８】
また、業務システム２には、業務端末４が接続されており、業務システム２の利用者（業務利用者）は、業務端末４を操作することで、業務システム２を利用することができるようになっている。
ここで、業務システム２は、業務プロセスを実現するＩＴシステム（例えば複数のサーバやアプリケーションによって構築されたシステム）であり、例えば、複数のコンピュータ（情報処理装置）が通信ネットワークを介して通信可能に接続されたシステムである。
【００１９】
なお、業務システム２を、トランザクションログデータ収集装置５を含むものとして構成しても良い。また、業務システム２を、トランザクションログデータ収集装置５、及び、トランザクションログデータ格納ＤＢ６を含むものとして構成しても良い。また、トランザクションログデータ分析装置１及びトランザクションログデータ格納ＤＢ６を備えるものとして、トランザクションログデータ分析システムを構成しても良い。また、トランザクションログデータ分析装置１、トランザクションログデータ格納ＤＢ６及びトランザクションログデータ収集装置５を備えるものとして、トランザクションログデータ分析システムを構成しても良い。
【００２０】
また、業務端末４と業務システム２（ここではトランザクションログデータ収集装置５を含む）とは、図２中、符号Ａで示すように、ネットワーク８を介して接続されていても良いし、図２中、符号Ｂ、Ｃで示すように、ネットワークを介さずに接続されていても良い。つまり、業務システム２を利用する利用者は、ネットワーク８を介して業務システム２を利用するようになっていても良いし、ネットワークを介さずに業務システム２を利用するようになっていても良い。また、図２中、符号Ｄで示すように、業務システム２（ここではトランザクションログデータ収集装置５を含む）に接続されたトランザクションログデータ格納ＤＢ６と、トランザクションログデータ分析装置１とを、ネットワーク９を介して接続しても良い。つまり、トランザクションログデータ分析装置１と、業務システム２及びこれに接続されたトランザクションログデータ格納ＤＢ６とを別の場所に設置し、トランザクションログデータ分析装置１が、ネットワーク９を介してトランザクションログデータ格納ＤＢ６を参照するようにしても良い。また、図２中、符号Ｅで示すように、トランザクションログデータ分析装置１と、業務システム２（ここではトランザクションログデータ収集装置５を含む）に接続されたトランザクションログデータ格納ＤＢ６とを別の場所に設置し、ネットワーク９を介して、トランザクションログデータ格納ＤＢ６に格納されているトランザクションログデータを、例えばＦＴＰ（File Transfer Protocol）などを利用して、トランザクションログデータ分析装置１に接続されたトランザクションログデータ格納ＤＢ６へ転送しておくようにしても良い。また、図２中、符号Ｆで示すように、トランザクションログデータ分析装置１と、業務システム２（ここではトランザクションログデータ収集装置５を含む）及びこれに接続されたトランザクションログデータ格納ＤＢ６とを同一の場所に設置し、業務システム２に接続されたトランザクションログデータ格納ＤＢ６に格納されているトランザクションログデータを、トランザクションログデータ分析装置１に接続されたトランザクションログデータ格納ＤＢ６へコピーして格納しておくようにしても良い。また、トランザクションログデータ分析装置１と、業務システム２（ここではトランザクションログデータ収集装置５を含む）及びこれに接続されたトランザクションログデータ格納ＤＢ６とを同一の場所に設置し、トランザクションログデータ分析装置１が、トランザクションログデータ格納ＤＢ６を参照するようにしても良い。また、トランザクションログデータ分析装置１と利用者端末７とは、図２中、符号Ｇで示すように、ネットワーク１０を介して接続されていても良いし、図２中、符号Ｈで示すように、ネットワークを介さずに接続されていても良い。つまり、トランザクションログデータ分析装置１による分析結果を利用する利用者は、ネットワーク１０を介してこれを利用するようになっていても良いし、ネットワークを介さずにこれを利用するようになっていても良い。
【００２１】
ところで、業務プロセスは、複数のアクティビティ（プロセス）によって構成されている。例えば図３、図４に示すように、生産業務プロセスは、受注、製造指示、調達、製造、出荷という複数のアクティビティによって構成されている。
このような業務プロセスを構成する各アクティビティは、例えば注文システム、見積書システム、製造システムなどの業務システム２を構成するコンピュータで実行される一連の処理によって実現される。このコンピュータによって実行される一連の処理をトランザクションという。
【００２２】
なお、トランザクションは、人の操作（例えば画面や端末での操作）によって開始される場合もあるし、コンピュータ（例えば決まった時間に実行されるバッチプログラム）によって自動的に開始される場合もある。また、トランザクションの完了は、例えばメールの送信や帳票の出力等によって人に対して通知される場合もあるし、コンピュータによる次のプログラムの実行に連動する場合もある。
【００２３】
トランザクションでは、各アクティビティに対応した複数のプログラムが順番に呼び出されて、業務システム２を構成するコンピュータによって実行されることになる。つまり、トランザクションでは、複数のプログラム間で情報が伝達されて、一連の処理が実行されることになる。なお、同じ業務プロセスであったとしても、トランザクションにおいて、常に同じ複数のプログラム間で情報が伝達されて、一連の処理が実行されるとは限らない。そして、複数のプログラムが順番に呼び出されてコンピュータによって実行される際に、プログラムの呼び出し関係情報を含むトランザクションログデータが出力されるようになっている。なお、トランザクションログデータは、業務システム２を構成する各コンピュータに記憶されているものとする。
【００２４】
そして、複数のプログラムが順番に呼び出されてコンピュータによって実行される際に出力されるトランザクションログデータは、業務システム２に接続されたトランザクションログデータ収集装置５によって収集され、トランザクションログデータ格納ＤＢ６に格納されるようになっている。
ここで、トランザクションにおいて実行される複数のプログラムを、コンポーネントソフトウェア又は単にコンポーネントともいう。また、コンピュータがコンポーネントソフトウェアを実行することによって得られる機能をコンポーネントという場合もある。また、コンポーネント間で伝達される情報を、コンポーネント情報という。また、コンポーネントＡからコンポーネントＢに伝達される情報を、コンポーネントＡのコンポーネント情報という。また、プログラムの呼び出し関係情報は、コンポーネントの呼び出し関係情報（ここではコンポーネント名、前のコンポーネント名、次のコンポーネント名というトランザクションにおけるコンポーネントの順序を特定しうる情報）であり、コンポーネント情報に含まれる。このため、トランザクションログデータは、コンポーネント情報を含むことになる。つまり、コンポーネント情報は、トランザクションログデータに記録されている。ここでは、トランザクションログデータは、少なくとも、業務プロセス名、アクティビティ名、トランザクション識別情報（ＩＤ）、コンポーネント名、前のコンポーネント名、次のコンポーネント名、属性情報（ここでは担当者、取消済など）を含む。このうち、トランザクションＩＤ及び属性情報は、コンポーネント情報に含まれる。このため、コンポーネント情報は、コンポーネント名、前のコンポーネント名、次のコンポーネント名、トランザクションＩＤ及び属性情報を含む。なお、業務プロセス名は、業務プロセスを特定しうる情報であれば良い。また、トランザクションＩＤは、トランザクションを特定しうる情報であれば良い。また、コンポーネント名は、コンポーネントを特定しうる情報であれば良い。また、属性情報としては、種々の項目（属性値）を持たせることができ、例えば、担当者、取消済のほかに、承認者、商品名、商品個数などとすることもできる。なお、ここでは、一の業務プロセスにおける一のコンポーネントのコンポーネント情報は、どのトランザクションにおいても同一の属性を持つ。例えば生産業務プロセスにおける注文受付コンポーネントは、どのトランザクションにおいても同一の属性を持つ。また、例えば生産業務プロセスにおける注文更新コンポーネントも、どのトランザクションにおいても同一の属性を持つ。一方、注文受付コンポーネントと注文更新コンポーネントは同一の属性を持たなくても良い。また、生産業務プロセスにおける注文更新コンポーネントと、販売業務プロセスにおける注文更新コンポーネントも同じ属性を持たなくても良い。
【００２５】
ここで、図３は、生産業務プロセスを例に挙げて、業務プロセスの各アクティビティを実現するトランザクションにおいて行なわれる一連の処理を示したものである。また、図４は、業務システム２のインフラやミドルウェア（例えばデータベース）を取り除いて、業務プロセスの各アクティビティを実現するトランザクションにおいて行なわれる一連の処理を示したものである。
【００２６】
例えば図３に示すように、生産業務プロセスの受注アクティビティを実現するために、業務システム２（ここでは注文システム及び見積書システム）は、注文作成コンポーネント１１、注文確認コンポーネント１２、注文受付コンポーネント１３、注文ＤＢ１４、見積書新規作成コンポーネント１５、見積書確認コンポーネント１６、見積書修正コンポーネント１７、見積書ＤＢ１８及び注文更新コンポーネント１９を備える。
【００２７】
そして、受注アクティビティを実現するために、トランザクションでは、まず、注文作成コンポーネント１１による処理をコンピュータが実行して注文作成処理を行ない、その結果を注文ＤＢ１４に格納する。次に、注文確認コンポーネント１２による処理をコンピュータが実行して注文確認処理を行なう。次に、注文受付コンポーネント１３による処理をコンピュータが実行して注文受付処理を行ない、その結果を注文ＤＢ１４に格納する。次に、見積書新規作成コンポーネント１５による処理をコンピュータが実行して見積書新規作成処理を行ない、その結果を見積書ＤＢ１８に格納する。次に、見積書確認コンポーネント１６による処理をコンピュータが実行して見積書確認処理を行なう。次に、見積書修正コンポーネント１７による処理をコンピュータが実行して見積書修正処理を行ない、その結果を見積書ＤＢ１８に格納する。次に、注文更新コンポーネント１９による処理をコンピュータが実行して注文更新処理を行なう。このようにして、受注アクティビティを実現するために、トランザクションでは、注文作成コンポーネント１１、注文確認コンポーネント１２、注文受付コンポーネント１３、見積書新規作成コンポーネント１５、見積書確認コンポーネント１６、見積書修正コンポーネント１７、注文更新コンポーネント１９が順番に呼び出されて、受注アクティビティを実現するための一連の処理が実行されることになる。
【００２８】
また、生産業務プロセスの調達アクティビティを実現するために、業務システム２は、調達Ｗｅｂサービスコンポーネント２０及び承認コンポーネント２１を備える。
そして、調達アクティビティを実現するために、トランザクションでは、まず、調達Ｗｅｂサービスコンポーネント２０による処理をコンピュータが実行して調達Ｗｅｂサービス処理を行なう。次に、承認コンポーネント２１による処理をコンピュータが実行して承認処理を行なう。このように、調達アクティビティを実現するために、トランザクションでは、調達Ｗｅｂサービスコンポーネント２０、承認コンポーネント２１が順番に呼び出されて、調達アクティビティを実現するための一連の処理が実行されることになる。
【００２９】
また、生産業務プロセスの製造アクティビティを実行するために、業務システム２（ここでは製造システム）は、製造ＤＢ２２、製造ＤＢコンポーネント２３及び受注登録コンポーネント２４を備える。
そして、製造アクティビティを実現するために、トランザクションでは、まず、製造ＤＢコンポーネント２３による処理をコンピュータが実行して承認コンポーネント２１による処理の結果を製造ＤＢ２２に格納する。次に、受注登録コンポーネント２４による処理をコンピュータが実行して受注登録処理を行なう。このように、製造アクティビティを実現するために、トランザクションでは、製造ＤＢコンポーネント２３、受注登録コンポーネント２４が順番に呼び出されて、製造アクティビティを実現するための一連の処理が実行されることになる。
【００３０】
ところで、図４に示すように、注文作成コンポーネント１１による処理が終了し、注文確認コンポーネント１２が呼び出される際に、注文作成コンポーネント１１から注文確認コンポーネント１２へ情報が送信され、トランザクションログデータが出力される。そして、このトランザクションログデータは、業務システム２を構成するコンピュータの記憶装置に記憶される。ここでは、トランザクションログデータは、トランザクション毎のユニークな識別子であるトランザクションＩＤとして「０００１」、業務プロセス名として「生産業務」、アクティビティ名として「受注」、受注アクティビティを実現するトランザクションにおいて実行される順番として「１」、そのコンポーネント名として「注文作成」、次のコンポーネント名として「注文確認」などを含む。なお、そのコンポーネント名は、送信元のコンポーネント名であり、次のコンポーネント名は、送信先のコンポーネント名である。
【００３１】
同様に、注文確認コンポーネント１２による処理が終了し、注文受付コンポーネント１３が呼び出される際に、注文確認コンポーネント１２から注文受付コンポーネント１３へ情報が送信され、トランザクションログデータが出力される。そして、このトランザクションログデータは、業務システム２を構成するコンピュータの記憶装置に記憶される。
また、注文受付コンポーネント１３による処理が終了し、見積書新規作成コンポーネント１５が呼び出される際に、注文受付コンポーネント１３から見積書新規作成コンポーネント１５へ情報が送信され、トランザクションログデータが出力される。そして、このトランザクションログデータは、業務システム２を構成するコンピュータの記憶装置に記憶される。
【００３２】
また、見積書新規作成コンポーネント１５による処理が終了し、見積書確認コンポーネント１６が呼び出される際に、見積書新規作成コンポーネント１５から見積書確認コンポーネント１６へ情報が送信され、トランザクションログデータが出力される。そして、このトランザクションログデータは、業務システム２を構成するコンピュータの記憶装置に記憶される。
【００３３】
また、見積書確認コンポーネント１６による処理が終了し、見積書修正コンポーネント１７が呼び出される際に、見積書確認コンポーネント１６から見積書修正コンポーネント１７へ情報が送信され、トランザクションログデータが出力される。そして、このトランザクションログデータは、業務システム２を構成するコンピュータの記憶装置に記憶される。
【００３４】
また、見積書修正コンポーネント１７による処理が終了し、注文更新コンポーネント１９が呼び出される際に、見積書修正コンポーネント１７から注文更新コンポーネント１９へ情報が送信され、トランザクションログデータが出力される。そして、このトランザクションログデータは、業務システム２を構成するコンピュータの記憶装置に記憶される。
また、注文更新コンポーネント１９による処理が終了し、調達Ｗｅｂサービスコンポーネント２０が呼び出される際に、注文更新コンポーネント１９から調達Ｗｅｂサービスコンポーネント２０へ情報が送信され、トランザクションログデータが出力される。そして、このトランザクションログデータは、業務システム２を構成するコンピュータの記憶装置に記憶される。
【００３５】
また、調達Ｗｅｂサービスコンポーネント２０による処理が終了し、承認コンポーネント２１が呼び出される際に、調達Ｗｅｂサービスコンポーネント２０から承認コンポーネント２１へ情報が送信され、トランザクションログデータが出力される。そして、このトランザクションログデータは、業務システム２を構成するコンピュータの記憶装置に記憶される。
【００３６】
また、承認コンポーネント２１による処理が終了し、製造ＤＢコンポーネント２３が呼び出される際に、承認コンポーネント２１から製造ＤＢコンポーネント２３へ情報が送信され、トランザクションログデータが出力される。そして、このトランザクションログデータは、業務システム２を構成するコンピュータの記憶装置に記憶される。
また、製造ＤＢコンポーネント２３による処理が終了し、受注登録コンポーネント２４が呼び出される際に、製造ＤＢコンポーネント２３から受注登録コンポーネント２４へ情報が送信され、トランザクションログデータが出力される。そして、このトランザクションログデータは、業務システム２を構成するコンピュータの記憶装置に記憶される。
【００３７】
ところで、本実施形態のトランザクションログデータ分析装置１は、収集されたトランザクションログデータを分析し、業務プロセスを実現するためのトランザクションにおける複数のコンポーネントの実行順序を示す情報を生成するようになっている。つまり、本実施形態のトランザクションログデータ分析装置１は、ＩＴシステム上で実行される業務プロセスを分析し、可視化するようになっている。なお、トランザクションログデータ分析装置１を、トランザクションによって実行された業務プロセスを可視化するものであるため、業務プロセス可視化装置ともいう。
【００３８】
特に、本実施形態のトランザクションログデータ分析装置１は、分析結果の冗長性を低減すべく、複数のコンポーネントの実行順序を示す情報を生成して業務プロセスを可視化する際に、業務プロセスとして重要なコンポーネントを残し、この重要なコンポーネントに関連する重要度の低いコンポーネントを取り除くようになっている。つまり、トランザクションログデータ分析装置１は、業務プロセスを可視化する際に、コンポーネント間の関連性を考慮し、重要度に応じて不要なコンポーネントを取り除くようになっている。これにより、可視化対象となるコンポーネントを減らすことができる。
【００３９】
また、本実施形態では、トランザクションログデータ分析装置１は、業務プロセスを可視化する際に、可視化対象とならなかったコンポーネントと、それが関連する可視化対象のコンポーネントとをグループ化するようになっている。つまり、トランザクションログデータ分析装置１は、業務プロセスを可視化する際に、業務プロセスとして意味を持った単位で自動的にグルーピングするようになっている。これにより、可視化対象となるコンポーネントを減らしながら、必要に応じて、可視化対象とならなかったコンポーネントも表示させることが可能となる。
【００４０】
つまり、本実施形態では、トランザクションログデータ分析装置１は、自動的に収集されたトランザクションログデータを分析し、以下の（１）〜（３）の場合に該当するか否かを自動的に判断して、業務プロセスを可視化する際に、自動的にグルーピングして、重要度の低いコンポーネントを自動的に可視化対象から除外するようになっている。
（１）業務プロセスを実現するために複数のコンポーネントが実行されるトランザクションの経路上で経路が分岐するが、分岐した経路が再び１つの経路に集約する場合、分岐点から集約点までの間の全部又は一部のコンポーネントを１つの業務手順としてグループ化する。
【００４１】
これは、次の理由による。つまり、業務プロセスにおける手順は、場合によって異なり、分岐することがある。しかし、いくつかの細かい手順に分かれるものの、その業務手順が達成する目的が同じ場合には、その先の手順が同じとなることが多い。そこで、分岐した手順がその先でまた同一の手順に集約される場合、その間の手順は１つの意味のある業務手順であったとみなしてグルーピングする。
【００４２】
これは、業務プロセスを可視化した場合に例えば図６に示すようになるとき、図７に示すように、分岐がなく、逐次処理だけが行なわれている部分のコンポーネント３、６、７、９、１０、１３〜１５、１７〜２１は取り除き、それ以外のコンポーネント１、２、４、５、８、１１、１２、１６は残す。そして、図８に示すように、コンポーネント２にコンポーネント３をグルーピングし、コンポーネント４にコンポーネント１８をグルーピングし、コンポーネント５にコンポーネント６、７、１３〜１５をグルーピングし、コンポーネント８にコンポーネント９、１０をグルーピングし、コンポーネント１１にコンポーネント１７をグルーピングすることを意味する。なお、図６〜図８では、各コンポーネントを略して「コンポ」と表記している。
（２）トランザクションの経路上の前後のコンポーネントで属性情報に変化がない場合、即ち、同一の属性情報が使われ続けている場合、１つの業務手順としてグループ化する。逆に言うと、属性情報が変化した場合、そのコンポーネントは残す。
【００４３】
これは、次の理由による。つまり、業務プロセスでは、業務の手順を進めるにつれて参照・保持する属性情報が変化することが想定される。これは、業務はなんらかの目的を達成するためにあり、目的を達成すると、達成前と属性情報が変わるからである。この属性情報に変化がないということは、業務の目的が達成されていないということである。そこで、属性情報に変化が起こるまでの間の手順は、その目的を達成するための１つの意味のある業務手順であったとみなしてグルーピングする。
【００４４】
これは、業務プロセスを可視化した場合に例えば図６に示すようになるとき、図７に示すように、コンポーネント２０は残し、コンポーネント８にコンポーネント１９をグルーピングすることを意味する。
（３）トランザクションの経路上で、その経路における唯一のコンポーネントである場合は残す。
【００４５】
これは、トランザクションの経路における唯一のコンポーネントである場合には、業務手順として意味があるからである。
これは、業務プロセスを可視化した場合に例えば図６に示すようになるとき、図７、図８に示すように、コンポーネント２１は残すことを意味する。
このようにして、業務プロセスを可視化した場合、業務プロセスを実現するためのトランザクションにおける複数のコンポーネントの実行順序を示す情報は、例えば図８に示すように、コンポーネント３はコンポーネント２にグルーピングされて可視化対象から除外され、コンポーネント１８はコンポーネント４にグルーピングされて可視化対象から除外され、コンポーネント１７はコンポーネント１１にグルーピングされて可視化対象から除外され、コンポーネント６、７、１３〜１５はコンポーネント５にグルーピングされて可視化対象から除外され、コンポーネント９、１０、１９はコンポーネント８にグルーピングされて可視化対象から除外されることになる。
【００４６】
これにより、業務システム２から自動収集されたトランザクションログデータを用いて自動的に業務プロセスを推測し、業務プロセスの可視化を、簡単かつ正確に行なえるようになり、低コストで多くの業務プロセスの分析・可視化を行なうことが可能となる。そして、業務システム２で実際にどのような業務プロセスが実行されているかを容易に把握することが可能となる。また、複数のコンポーネントの実行順序を示す情報によって業務プロセスが可視化されるため、業務プロセスを構成する各手順と各コンポーネントとの対応を取ることが同時に行なえる。このため、業務システム２においていずれかのコンポーネントに障害が発生した場合、業務プロセスへの影響範囲の推測にも有用である。また、業務プロセスにおいて同一の手順と思われる部分をグルーピングすることで、コンポーネントを削減して、業務プロセスを可視化するため、冗長性を低減した、より有用な分析結果を提供できることになる。また、可視化対象から除外されたコンポーネント（非表示コンポーネント）は、可視化対象のコンポーネント（表示コンポーネント）とグループとして関連付けられているため、より詳細に表示する必要がある場合には、グループ単位で非表示コンポーネントを表示させることも可能である。また、非表示コンポーネントを表示させるグループを選択できるようにすれば、業務プロセスにおいて注目した部分に絞って詳細に可視化することも可能である。
【００４７】
具体的には、本実施形態のトランザクションログデータ分析装置１は、以下のように構成される。
まず、本トランザクションログデータ分析装置１のハードウェア構成について、図９を参照しながら説明する。
本トランザクションログデータ分析装置１は、例えばサーバなどのコンピュータを用いて実現することができ、そのハードウェア構成は、例えば図９に示すように、ＣＰＵ（Central Processing Unit）１０２、メモリ１０１、通信制御部１０９、入力装置１０６、表示制御部１０３、表示装置１０４、記憶装置１０５、可搬型記録媒体１０８のドライブ装置１０７を備え、これらがバス１１０によって相互に接続された構成になっている。なお、本装置のハードウェア構成はこれに限られるものではない。
【００４８】
ここで、ＣＰＵ１０２は、コンピュータ全体を制御するものであり、プログラムをメモリ１０１に読み出して実行し、トランザクションログデータ分析装置１に必要な処理を行なうものである。
メモリ１０１は、例えばＲＡＭであり、プログラムの実行、データの書き換え等を行なう際に、プログラム又はデータを一時的に格納するものである。
【００４９】
通信制御部１０９（通信インターフェース）は、例えばＬＡＮやインターネットなどのネットワークを介して、他の装置と通信するために用いられるものである。この通信制御部１０９は、コンピュータに元から組み込まれていても良いし、後からコンピュータに取り付けられたＮＩＣ（Network Interface Card）でも良い。
入力装置１０６は、例えばマウスなどのポインティングデバイスやキーボードである。
【００５０】
表示装置１０４は、例えば液晶ディスプレイなどの表示装置である。
表示制御部１０３は、例えば分析結果などを表示装置１０４に表示させるための制御を行なうものである。
なお、これらの入力装置１０６や表示装置１０４は、ネットワークに接続された別のコンピュータに備えられている入力装置や出力装置であっても良い。
【００５１】
記憶装置１０５は、例えばハードディスクドライブ（ＨＤＤ）であり、各種のプログラム及び各種のデータが格納されている。本実施形態では、記憶装置１０５には、後述のトランザクションログデータ分析プログラム（分析プログラム）が格納されており、また、後述のコンポーネント情報格納ＤＢ３１が格納されている。なお、メモリ１０１として、例えばＲＯＭ（Read Only Memory）を備え、これに各種のプログラムや各種のデータを格納しておいても良い。
【００５２】
ドライブ装置１０７は、例えば光ディスクや光磁気ディスク等の可搬型記録媒体１０８の記憶内容にアクセスするためのものである。
このようなハードウェア構成を備えるコンピュータにおいて、ＣＰＵ１０２が、例えば記憶装置１０５に格納されているトランザクションログデータ分析プログラムをメモリ１０１に読み出して実行することで、本トランザクションログデータ分析装置１、即ち、後述のトランザクションログデータ分析エンジン３０及びトランザクションログデータ可視化エンジン３２という各機能が実現される。
【００５３】
本実施形態では、トランザクションログデータ分析装置１は、図１に示すように、トランザクションログデータ分析エンジン３０、コンポーネント情報格納ＤＢ３１及びトランザクションログデータ可視化エンジン３２を備える。なお、トランザクションログデータ分析エンジン３０を、分析部ともいう。また、トランザクションログデータ可視化エンジン３２を、生成部ともいう。
【００５４】
ここで、トランザクションログデータ分析エンジン３０は、トランザクションログデータ格納ＤＢ３１からトランザクションログデータを読み出し、トランザクションログデータに含まれているコンポーネント情報を分析し、即ち、どのコンポーネントを可視化対象から除外するかを判断し、その結果を含むコンポーネント情報をコンポーネント情報格納ＤＢ３１に格納する機能を有する。
【００５５】
ここでは、トランザクションログデータ分析エンジン３０は、以下の２つの基準（１）、（２）に基づいて、どのコンポーネントを可視化対象から除外するか否かを判断する。
（１）そのコンポーネントの前のコンポーネントと次のコンポーネントがそれぞれ一つずつしか存在しない、分岐のないコンポーネントであるか。
（２）そのコンポーネントの属性情報が前のコンポーネントの属性情報と同じであるか。
【００５６】
なお、トランザクションログデータ分析エンジン３０による処理は、例えば、スケジュールされた間隔（例えば１日に１回、１週間に１回など）で実行するようにしても良いし、トランザクションログデータ格納ＤＢ６が更新されるたびに実行するようしても良いし、利用者が業務プロセスを可視化するたびに実行するようにしても良いし、利用者が明示的に指示した場合に実行するようにしても良い。
【００５７】
また、コンポーネント情報格納ＤＢ３１は、トランザクションログデータ分析エンジン３０による分析結果が反映されたコンポーネント情報、即ち、可視化対象から除外するか否かの判断結果（可視化の有無）を含むコンポーネント情報を格納するものである。ここでは、分析されたコンポーネント情報は、コンポーネント名、トランザクションＩＤ、前のコンポーネント名、次のコンポーネント名、属性情報（ここでは担当者及び取消済）、除外フラグ、親コンポーネント名、グループの次のコンポーネント名を含む。なお、コンポーネント情報格納ＤＢ３１を、コンポーネント情報格納部ともいう。
【００５８】
また、トランザクションログデータ可視化エンジン３２は、コンポーネント情報格納ＤＢ３１から、トランザクションログデータ分析エンジン３０による分析結果を含むコンポーネント情報を読み出し、このコンポーネント情報を用いて、業務プロセスを実現するためのトランザクションにおける複数のコンポーネントの実行順序を示す情報を生成して、業務プロセスを可視化する機能を有する。
【００５９】
ここでは、トランザクションログデータ可視化エンジン３２は、コンポーネント情報格納ＤＢ３１から読み出したコンポーネント情報に基づいて、可視化対象から除外するかどうかを判断し、可視化しないコンポーネントを可視化対象から除外してトランザクションにおける複数のコンポーネントの実行順序を示す情報を生成して、業務プロセスを可視化する機能を有する。
【００６０】
なお、トランザクションログデータ可視化エンジン３２による処理は、利用者端末７からの指示に基づいて行なわれる。そして、トランザクションログデータ可視化エンジン３２による処理によって可視化された情報は、利用者端末７へ送られ、利用者端末７の表示装置の画面上に表示されるようになっている。
このため、本トランザクションログデータ分析装置１は、上述のトランザクションログデータ格納ＤＢ６から読み出したログデータを分析する分析部（トランザクションログデータ分析エンジン）３０と、分析部３０によって分析された情報（コンポーネント情報；プログラム情報）に基づいて、直前に実行されたプログラムと直後に実行されたプログラムが一つずつであるプログラムを除いて、トランザクションにおける複数のプログラムの実行順序を示す情報を生成する生成部（トランザクションログデータ可視化エンジン）３２とを備えることになる。また、分析部３０によって分析された情報は、属性情報を含み、生成部３２は、直前に実行されたプログラムと直後に実行されたプログラムが一つずつであるプログラムのうち、直前に実行されたプログラムと属性情報が変わっているプログラムは残して、実行順序を示す情報を生成することになる。また、生成部３２は、トランザクションの最初に実行されたプログラム、及び、直前に実行されたプログラムがなく、かつ、直後に実行されたプログラムがないプログラムを残して、実行順序を示す情報を生成することになる。
【００６１】
この場合、本実施形態にかかる分析方法、即ち、トランザクションログデータ分析方法では、コンピュータが、業務プロセスを実現するために複数のプログラムが実行されるトランザクションにおける、プログラムの呼び出し関係情報を含む業務に関するログデータを分析し、分析された情報に基づいて、直前に実行されたプログラムと直後に実行されたプログラムが一つずつであるプログラムを除いて、トランザクションにおける複数のプログラムの実行順序を示す情報を生成する、処理を実行することになる。また、分析された情報は、属性情報を含み、実行順序を示す情報を生成する処理において、直前に実行されたプログラムと直後に実行されたプログラムが一つずつであるプログラムのうち、直前に実行されたプログラムと属性情報が変わっているプログラムは残して、実行順序を示す情報を生成する処理をコンピュータが実行することになる。また、実行順序を示す情報を生成する処理において、トランザクションの最初に実行されたプログラム、及び、直前に実行されたプログラムがなく、かつ、直後に実行されたプログラムがないプログラムを残して、実行順序を示す情報を生成する処理をコンピュータが実行することになる。
【００６２】
次に、本トランザクションログデータ分析装置１においてＣＰＵ１０２がメモリ１０１に読み込まれたトランザクションログデータ分析プログラムに従って実行する処理（トランザクションログデータ分析方法）について、図１０〜図３６を参照しながら、より具体的に説明する。
まず、本トランザクションログデータ分析装置１に備えられるトランザクションログデータ分析エンジン３０による処理について、図１０〜図３０を参照しながら、より具体的に説明する。
【００６３】
ここでは、分析対象とする業務プロセスを生産業務プロセスとし、生産業務プロセスを実現するためのトランザクションとして４つのトランザクション（トランザクションＩＤ「０００１」〜「０００４」）を含む場合を例に挙げて説明する。そして、上述の本実施形態のトランザクションログデータ分析装置１による処理を行なわずに、この生産業務プロセスを実現するための各トランザクションを別々に可視化した場合、各トランザクションにおける複数のコンポーネントの実行順序を示す情報は、図１１（Ａ）〜（Ｄ）に示すようになるものとする。また、上述の本実施形態のトランザクションログデータ分析装置１による処理を行なわずに、この生産業務プロセスを実現するための全てのトランザクションをまとめて可視化した場合、全てのトランザクションにおける複数のコンポーネントの実行順序を示す情報は、図１２に示すようになるものとする。また、トランザクションログデータ格納ＤＢ６には、図１３に示すようなトランザクションログデータが格納されているものとする。なお、生産業務プロセスは、上述のように複数のアクティビティによって構成されるが、ここでは、説明を簡略化するために、各トランザクションにおいて実行されるコンポーネントとしては、受注アクティビティに含まれるもののみを示し、それ以外のアクティビティに含まれるものは省略している。
【００６４】
まず、図１０に示すように、トランザクションログデータ分析エンジン３０は、分析対象とする業務プロセスを特定できる業務プロセス名を用いて、トランザクションログデータ格納ＤＢ６からトランザクションログデータを読み出し、図１４に示すようにコンポーネント情報を抽出する（ステップＳ１０）。
ここでは、業務プロセス名「生産業務」を用いて、トランザクションログデータ格納ＤＢ６からトランザクションログデータを読み出し、図１４に示すように、コンポーネント名、トランザクションＩＤ、前のコンポーネント名、次のコンポーネント名、属性情報としての属性１（担当者）及び属性２（取消済）を含むコンポーネント情報を抽出する。
【００６５】
次に、トランザクションログデータ分析エンジン３０は、抽出したコンポーネント情報に含まれている各コンポーネントについて、いずれかのトランザクションにおいて最初のコンポーネントとなっているか否かを判定する（ステップＳ２０）。ここで、コンポーネント情報の「前のコンポーネント名」がないものが最初のコンポーネントであると判定する。
【００６６】
この判定の結果、最初のコンポーネントであると判定した場合、ＹＥＳルートへ進み、トランザクションログデータ分析エンジン３０は、そのコンポーネントのコンポーネント情報をコンポーネント情報格納ＤＢ３１に格納する（ステップＳ６０）。
一方、最初のコンポーネントではないと判定した場合、ＮＯルートへ進み、さらに、トランザクションログデータ分析エンジン３０は、そのコンポーネントが、全てのトランザクションにおいて「前のコンポーネント名」と「次のコンポーネント名」が同一であるか否かを判定する（ステップＳ３０）。つまり、そのコンポーネントの前のコンポーネントと次のコンポーネントがそれぞれ一つずつしか存在しないコンポーネントであるか、即ち、分岐のないコンポーネントであるかを判定する。
【００６７】
この判定の結果、全てのトランザクションにおいて「前のコンポーネント名」と「次のコンポーネント名」が同一でないと判定した場合、ＮＯルートへ進み、トランザクションログデータ分析エンジン３０は、そのコンポーネントのコンポーネント情報をコンポーネント情報格納ＤＢ３１に格納する（ステップＳ６０）。
一方、全てのトランザクションにおいて「前のコンポーネント名」と「次のコンポーネント名」が同一であると判定した場合、ＹＥＳルートへ進み、さらに、トランザクションログデータ分析エンジン３０は、各トランザクションにおいて、そのコンポーネントの属性情報と前のコンポーネントの属性情報が同一であるか否かを判定する（ステップＳ４０）。ここでは、トランザクション毎に、そのコンポーネントの「属性１」、「属性２」の各属性値と、前のコンポーネントの「属性１」、「属性２」の各属性値とが、それぞれ、同一であるか否かを判定する。
【００６８】
この判定の結果、各トランザクションにおいて、そのコンポーネントの属性情報と前のコンポーネントの属性情報が同一であると判定した場合、ＹＥＳルートへ進み、トランザクションログデータ分析エンジン３０は、そのコンポーネントのコンポーネント情報をコンポーネント情報格納ＤＢ３１に格納するとともに、そのコンポーネントのコンポーネント情報に除外フラグを設定し、さらに、「親コンポーネント名」に「前のコンポーネント名」を設定する（ステップＳ５０）。
【００６９】
これにより、後述のようにしてトランザクションにおける実行順序を示す情報を生成する際に、直前に実行されたプログラムと直後に実行されたプログラムが一つずつであるプログラムは除かれることになる。また、後述のようにしてトランザクションにおける実行順序を示す情報を生成する際に、いずれかのトランザクションにおける最初のコンポーネント、即ち、トランザクションの最初に実行されたプログラムは残されることになる。このように、いずれかのトランザクションにおける最初のコンポーネントは、直前に実行されたプログラムと直後に実行されたプログラムが一つずつであるプログラムには含まれない。
【００７０】
一方、各トランザクションにおいて、そのコンポーネントの属性情報と前のコンポーネントの属性情報が同一でないと判定した場合、ＮＯルートへ進み、トランザクションログデータ分析エンジン３０は、そのコンポーネントのコンポーネント情報をコンポーネント情報格納ＤＢ３１に格納する（ステップＳ６０）。
このようなステップＳ２０〜６０の処理は、抽出したコンポーネント情報（図１４参照）に含まれている各コンポーネントについて順番に行なわれる。ここでは、ステップＳ７０で全てのコンポーネントについて処理を行なったと判定するまで、上述の処理を繰り返す。
【００７１】
具体的には、まず、トランザクションログデータ分析エンジン３０は、コンポーネント名「注文作成」というコンポーネント（図１４参照）について、いずれかのトランザクションにおいて最初のコンポーネントとなっているか否かを判定する（ステップＳ２０）。この結果、いずれのトランザクションにおいてもコンポーネント情報の「前のコンポーネント名」がないため、コンポーネント名「注文作成」というコンポーネントは、最初のコンポーネントであると判定する。このため、ＹＥＳルートへ進み、トランザクションログデータ分析エンジン３０は、図１５に示すように、コンポーネント名「注文作成」というコンポーネントのコンポーネント情報を、コンポーネント情報格納ＤＢ３１に格納し（ステップＳ６０）、ステップＳ７０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＳ２０へ戻る。
【００７２】
次に、トランザクションログデータ分析エンジン３０は、コンポーネント名「注文確認」というコンポーネント（図１４参照）について、いずれかのトランザクションにおいて最初のコンポーネントとなっているか否かを判定する（ステップＳ２０）。この結果、いずれのトランザクションにおいてもコンポーネント情報の「前のコンポーネント名」があるため、コンポーネント名「注文確認」というコンポーネントは、最初のコンポーネントではないと判定する。このため、ＮＯルートへ進み、さらに、トランザクションログデータ分析エンジン３０は、コンポーネント名「注文確認」というコンポーネントについて、全てのトランザクションにおいて「前のコンポーネント名」と「次のコンポーネント名」が同一であるか否かを判定する（ステップＳ３０）。この結果、トランザクションＩＤ「０００１」、「０００２」の「次のコンポーネント名」は「注文受付」であるのに対し、トランザクションＩＤ「０００４」の「次のコンポーネント名」は「注文差戻」であり、これらは異なるため、全てのトランザクションにおいて「前のコンポーネント名」と「次のコンポーネント名」が同一でないと判定する。このため、ＮＯルートへ進み、トランザクションログデータ分析エンジン３０は、図１６に示すように、コンポーネント名「注文確認」というコンポーネントのコンポーネント情報を、コンポーネント情報格納ＤＢ３１に格納し（ステップＳ６０）、ステップＳ７０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＳ２０へ戻る。
【００７３】
次に、トランザクションログデータ分析エンジン３０は、コンポーネント名「注文受付」というコンポーネント（図１４参照）について、いずれかのトランザクションにおいて最初のコンポーネントとなっているか否かを判定する（ステップＳ２０）。この結果、いずれのトランザクションにおいてもコンポーネント情報の「前のコンポーネント名」があるため、コンポーネント名「注文受付」というコンポーネントは、最初のコンポーネントではないと判定する。このため、ＮＯルートへ進み、さらに、トランザクションログデータ分析エンジン３０は、コンポーネント名「注文受付」というコンポーネントについて、全てのトランザクションにおいて「前のコンポーネント名」と「次のコンポーネント名」が同一であるか否かを判定する（ステップＳ３０）。この結果、トランザクションＩＤ「０００１」、「０００２」において、「前のコンポーネント名」はいずれも「注文確認」であり、「次のコンポーネント名」はいずれも「見積書新規作成」であり、いずれも同一であるため、全てのトランザクションにおいて「前のコンポーネント名」と「次のコンポーネント名」が同一であると判定する。このため、ＹＥＳルートへ進み、さらに、トランザクションログデータ分析エンジン３０は、トランザクションＩＤ「０００１」、「０００２」において、コンポーネント名「注文受付」というコンポーネントの属性情報と、前のコンポーネントであるコンポーネント名「注文確認」というコンポーネントの属性情報が同一であるか否かを判定する（ステップＳ４０）。ここでは、トランザクションＩＤ「０００１」において、コンポーネント名「注文受付」というコンポーネントの「属性１」、「属性２」という各属性値と、前のコンポーネントであるコンポーネント名「注文確認」というコンポーネントの「属性１」、「属性２」という各属性値とが、それぞれ、同一であるか否かを判定する。また、トランザクションＩＤ「０００２」において、コンポーネント名「注文受付」というコンポーネントの「属性１」、「属性２」という各属性値と、前のコンポーネントであるコンポーネント名「注文確認」というコンポーネントの「属性１」、「属性２」という各属性値とが、それぞれ、同一であるか否かを判定する。この結果、トランザクションＩＤ「０００１」のコンポーネント名「注文受付」、「注文確認」において、「属性１」の属性値はいずれも「ユーザＡ」であり、「属性２」の属性値はいずれも「なし」であり、いずれも同一であるため、トランザクションＩＤ「０００１」において、コンポーネント名「注文受付」というコンポーネントの属性情報と、前のコンポーネントであるコンポーネント名「注文確認」というコンポーネントの属性情報が同一であると判定する。また、トランザクションＩＤ「０００２」のコンポーネント名「注文受付」、「注文確認」において、「属性１」の属性値はいずれも「ユーザＤ」であり、「属性２」の属性値はいずれも「なし」であり、いずれも同一であるため、トランザクションＩＤ「０００２」において、コンポーネント名「注文受付」というコンポーネントの属性情報と、前のコンポーネントであるコンポーネント名「注文確認」というコンポーネントの属性情報が同一であると判定する。このため、ＹＥＳルートへ進み、トランザクションログデータ分析エンジン３０は、図１７に示すように、コンポーネント名「注文受付」というコンポーネントのコンポーネント情報をコンポーネント情報格納ＤＢ３１に格納するとともに、コンポーネント名「注文受付」というコンポーネントのコンポーネント情報に除外フラグとして「Ｙ」を設定し、さらに、「親コンポーネント名」に「前のコンポーネント名」である「注文確認」を設定し（ステップＳ５０）、ステップＳ７０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＳ２０へ戻る。
【００７４】
次に、トランザクションログデータ分析エンジン３０は、コンポーネント名「見積書新規作成」というコンポーネント（図１４参照）について、いずれかのトランザクションにおいて最初のコンポーネントとなっているか否かを判定する（ステップＳ２０）。この結果、いずれのトランザクションにおいてもコンポーネント情報の「前のコンポーネント名」があるため、コンポーネント名「見積書新規作成」というコンポーネントは、最初のコンポーネントではないと判定する。このため、ＮＯルートへ進み、さらに、トランザクションログデータ分析エンジン３０は、コンポーネント名「見積書新規作成」というコンポーネントについて、全てのトランザクションにおいて「前のコンポーネント名」と「次のコンポーネント名」が同一であるか否かを判定する（ステップＳ３０）。この結果、トランザクションＩＤ「０００１」、「０００２」において、「前のコンポーネント名」はいずれも「注文受付」であり、「次のコンポーネント名」はいずれも「見積書確認」であり、いずれも同一であるため、全てのトランザクションにおいて「前のコンポーネント名」と「次のコンポーネント名」が同一であると判定する。このため、ＹＥＳルートへ進み、さらに、トランザクションログデータ分析エンジン３０は、トランザクションＩＤ「０００１」、「０００２」において、コンポーネント名「見積書新規作成」というコンポーネントの属性情報と、前のコンポーネントであるコンポーネント名「注文受付」というコンポーネントの属性情報が同一であるか否かを判定する（ステップＳ４０）。ここでは、トランザクションＩＤ「０００１」において、コンポーネント名「見積書新規作成」というコンポーネントの「属性１」、「属性２」という各属性値と、前のコンポーネントであるコンポーネント名「注文受付」というコンポーネントの「属性１」、「属性２」という各属性値とが、それぞれ、同一であるか否かを判定する。また、トランザクションＩＤ「０００２」において、コンポーネント名「見積書新規作成」というコンポーネントの「属性１」、「属性２」という各属性値と、前のコンポーネントであるコンポーネント名「注文受付」というコンポーネントの「属性１」、「属性２」という各属性値とが、それぞれ、同一であるか否かを判定する。この結果、トランザクションＩＤ「０００１」のコンポーネント名「見積書新規作成」、「注文受付」において、「属性１」の属性値は、それぞれ、「ユーザＢ」、「ユーザＡ」であり、これらは異なるため、トランザクションＩＤ「０００１」において、コンポーネント名「見積書新規作成」というコンポーネントの属性情報と、前のコンポーネントであるコンポーネント名「注文受付」というコンポーネントの属性情報が同一でないと判定する。また、トランザクションＩＤ「０００２」のコンポーネント名「見積書新規作成」、「注文受付」において、「属性１」の属性値は、それぞれ、「ユーザＢ」、「ユーザＤ」であり、これらは異なるため、トランザクションＩＤ「０００２」において、コンポーネント名「見積書新規作成」というコンポーネントの属性情報と、前のコンポーネントであるコンポーネント名「注文受付」というコンポーネントの属性情報が同一でないと判定する。このため、ＮＯルートへ進み、トランザクションログデータ分析エンジン３０は、図１８に示すように、コンポーネント名「見積書新規作成」というコンポーネントのコンポーネント情報を、コンポーネント情報格納ＤＢ３１に格納し（ステップＳ６０）、ステップＳ７０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＳ２０へ戻る。
【００７５】
次に、トランザクションログデータ分析エンジン３０は、コンポーネント名「見積書確認」というコンポーネント（図１４参照）について、いずれかのトランザクションにおいて最初のコンポーネントとなっているか否かを判定する（ステップＳ２０）。この結果、いずれのトランザクションにおいてもコンポーネント情報の「前のコンポーネント名」があるため、コンポーネント名「見積書確認」というコンポーネントは、最初のコンポーネントではないと判定する。このため、ＮＯルートへ進み、さらに、トランザクションログデータ分析エンジンは、コンポーネント名「見積書確認」というコンポーネントについて、全てのトランザクションにおいて「前のコンポーネント名」と「次のコンポーネント名」が同一であるか否かを判定する（ステップＳ３０）。この結果、トランザクションＩＤ「０００１」、「０００３」の「次のコンポーネント名」は「見積書修正」であるのに対し、トランザクションＩＤ「０００２」の「次のコンポーネント名」はなく、これらは異なるため、全てのトランザクションにおいて「前のコンポーネント名」と「次のコンポーネント名」が同一でないと判定する。このため、ＮＯルートへ進み、トランザクションログデータ分析エンジン３０は、図１９に示すように、コンポーネント名「見積書確認」というコンポーネントのコンポーネント情報を、コンポーネント情報格納ＤＢ３１に格納し（ステップＳ６０）、ステップＳ７０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＳ２０へ戻る。
【００７６】
次に、トランザクションログデータ分析エンジン３０は、コンポーネント名「見積書修正」というコンポーネント（図１４参照）について、いずれかのトランザクションにおいて最初のコンポーネントとなっているか否かを判定する（ステップＳ２０）。この結果、いずれのトランザクションにおいてもコンポーネント情報の「前のコンポーネント名」があるため、コンポーネント名「見積書修正」というコンポーネントは、最初のコンポーネントではないと判定する。このため、ＮＯルートへ進み、さらに、トランザクションログデータ分析エンジン３０は、コンポーネント名「見積書修正」というコンポーネントについて、全てのトランザクションにおいて「前のコンポーネント名」と「次のコンポーネント名」が同一であるか否かを判定する（ステップＳ３０）。この結果、トランザクションＩＤ「０００１」、「０００３」において、「前のコンポーネント名」はいずれも「見積書確認」であり、「次のコンポーネント名」はいずれも「注文更新」であり、いずれも同一であるため、全てのトランザクションにおいて「前のコンポーネント名」と「次のコンポーネント名」が同一であると判定する。このため、ＹＥＳルートへ進み、さらに、トランザクションログデータ分析エンジン３０は、トランザクションＩＤ「０００１」、「０００３」において、コンポーネント名「見積書修正」というコンポーネントの属性情報と、前のコンポーネントであるコンポーネント名「見積書確認」というコンポーネントの属性情報が同一であるか否かを判定する（ステップＳ４０）。ここでは、トランザクションＩＤ「０００１」において、コンポーネント名「見積書修正」というコンポーネントの「属性１」、「属性２」という各属性値と、前のコンポーネントであるコンポーネント名「見積書確認」というコンポーネントの「属性１」、「属性２」という各属性値とが、それぞれ、同一であるか否かを判定する。また、トランザクションＩＤ「０００３」において、コンポーネント名「見積書修正」というコンポーネントの「属性１」、「属性２」という各属性値と、前のコンポーネントであるコンポーネント名「見積書確認」というコンポーネントの「属性１」、「属性２」という各属性値とが、それぞれ、同一であるか否かを判定する。この結果、トランザクションＩＤ「０００１」のコンポーネント名「見積書修正」、「見積書確認」において、「属性１」の属性値はいずれも「ユーザＣ」であり、「属性２」の属性値はいずれも「なし」であり、いずれも同一であるため、トランザクションＩＤ「０００１」において、コンポーネント名「見積書修正」というコンポーネントの属性情報と、前のコンポーネントであるコンポーネント名「見積書確認」というコンポーネントの属性情報が同一であると判定する。また、トランザクションＩＤ「０００３」のコンポーネント名「見積書修正」、「見積書確認」において、「属性１」の属性値はいずれも「ユーザＣ」であり、「属性２」の属性値はいずれも「済」であり、いずれも同一であるため、トランザクションＩＤ「０００３」において、コンポーネント名「見積書修正」というコンポーネントの属性情報と、前のコンポーネントであるコンポーネント名「見積書確認」というコンポーネントの属性情報が同一であると判定する。このため、ＹＥＳルートへ進み、トランザクションログデータ分析エンジン３０は、図２０に示すように、コンポーネント名「見積書修正」というコンポーネントのコンポーネント情報をコンポーネント情報格納ＤＢ３１に格納するとともに、コンポーネント名「見積書修正」というコンポーネントのコンポーネント情報に除外フラグとして「Ｙ」を設定し、さらに、「親コンポーネント名」に「前のコンポーネント名」である「見積書確認」を設定し（ステップＳ５０）、ステップＳ７０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＳ２０へ戻る。
【００７７】
次に、トランザクションログデータ分析エンジン３０は、コンポーネント名「注文更新」というコンポーネント（図１４参照）について、いずれかのトランザクションにおいて最初のコンポーネントとなっているか否かを判定する（ステップＳ２０）。この結果、いずれのトランザクションにおいてもコンポーネント情報の「前のコンポーネント名」があるため、コンポーネント名「注文更新」というコンポーネントは、最初のコンポーネントではないと判定する。このため、ＮＯルートへ進み、さらに、トランザクションログデータ分析エンジン３０は、コンポーネント名「注文更新」というコンポーネントについて、全てのトランザクションにおいて「前のコンポーネント名」と「次のコンポーネント名」が同一であるか否かを判定する（ステップＳ３０）。この結果、トランザクションＩＤ「０００１」、「０００３」において、「前のコンポーネント名」はいずれも「見積書修正」であり、「次のコンポーネント名」はいずれもなしであり、いずれも同一であるため、全てのトランザクションにおいて「前のコンポーネント名」と「次のコンポーネント名」が同一であると判定する。このため、ＹＥＳルートへ進み、さらに、トランザクションログデータ分析エンジン３０は、トランザクションＩＤ「０００１」、「０００３」において、コンポーネント名「注文更新」というコンポーネントの属性情報と、前のコンポーネントであるコンポーネント名「見積書修正」というコンポーネントの属性情報が同一であるか否かを判定する（ステップＳ４０）。ここでは、トランザクションＩＤ「０００１」において、コンポーネント名「注文更新」というコンポーネントの「属性１」、「属性２」という各属性値と、前のコンポーネントであるコンポーネント名「見積書修正」というコンポーネントの「属性１」、「属性２」という各属性値とが、それぞれ、同一であるか否かを判定する。また、トランザクションＩＤ「０００３」において、コンポーネント名「注文更新」というコンポーネントの「属性１」、「属性２」という各属性値と、前のコンポーネントであるコンポーネント名「見積書修正」というコンポーネントの「属性１」、「属性２」という各属性値とが、それぞれ、同一であるか否かを判定する。この結果、トランザクションＩＤ「０００１」のコンポーネント名「注文更新」、「見積書修正」において、「属性１」の属性値はいずれも「ユーザＣ」であり、「属性２」の属性値はいずれも「なし」であり、いずれも同一であるため、トランザクションＩＤ「０００１」において、コンポーネント名「注文更新」というコンポーネントの属性情報と、前のコンポーネントであるコンポーネント名「見積書修正」というコンポーネントの属性情報が同一であると判定する。また、トランザクションＩＤ「０００３」のコンポーネント名「注文更新」、「見積書修正」において、「属性１」の属性値はいずれも「ユーザＣ」であり、「属性２」の属性値はいずれも「済」であり、いずれも同一であるため、トランザクションＩＤ「０００３」において、コンポーネント名「注文更新」というコンポーネントの属性情報と、前のコンポーネントであるコンポーネント名「見積書修正」というコンポーネントの属性情報が同一であると判定する。このため、ＹＥＳルートへ進み、トランザクションログデータ分析エンジン３０は、図２１に示すように、コンポーネント名「注文更新」というコンポーネントのコンポーネント情報をコンポーネント情報格納ＤＢ３１に格納するとともに、コンポーネント名「注文更新」というコンポーネントのコンポーネント情報に除外フラグとして「Ｙ」を設定し、さらに、「親コンポーネント名」に「前のコンポーネント名」である「見積書修正」を設定し（ステップＳ５０）、ステップＳ７０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＳ２０へ戻る。
【００７８】
次に、トランザクションログデータ分析エンジン３０は、コンポーネント名「注文照会」というコンポーネント（図１４参照）について、いずれかのトランザクションにおいて最初のコンポーネントとなっているか否かを判定する（ステップＳ２０）。この結果、いずれのトランザクションにおいてもコンポーネント情報の「前のコンポーネント名」がないため、コンポーネント名「注文作成」というコンポーネントは、最初のコンポーネントであると判定する。このため、ＹＥＳルートへ進み、トランザクションログデータ分析エンジン３０は、図２２に示すように、コンポーネント名「注文照会」というコンポーネントのコンポーネント情報を、コンポーネント情報格納ＤＢ３１に格納し（ステップＳ６０）、ステップＳ７０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＳ２０へ戻る。
【００７９】
次に、トランザクションログデータ分析エンジン３０は、コンポーネント名「注文検索」というコンポーネント（図１４参照）について、いずれかのトランザクションにおいて最初のコンポーネントとなっているか否かを判定する（ステップＳ２０）。この結果、いずれのトランザクションにおいてもコンポーネント情報の「前のコンポーネント名」があるため、コンポーネント名「注文検索」というコンポーネントは、最初のコンポーネントではないと判定する。このため、ＮＯルートへ進み、さらに、トランザクションログデータ分析エンジン３０は、コンポーネント名「注文検索」というコンポーネントについて、全てのトランザクションにおいて「前のコンポーネント名」と「次のコンポーネント名」が同一であるか否かを判定する（ステップＳ３０）。この結果、トランザクションはトランザクションＩＤ「０００３」だけであり、「前のコンポーネント名」は「注文照会」だけであり、「次のコンポーネント名」は「見積書流用作成」だけであるため、全てのトランザクションにおいて「前のコンポーネント名」と「次のコンポーネント名」が同一であると判定する。このため、ＹＥＳルートへ進み、さらに、トランザクションログデータ分析エンジン３０は、トランザクションＩＤ「０００３」において、コンポーネント名「注文検索」というコンポーネントの属性情報と、前のコンポーネントであるコンポーネント名「注文照会」というコンポーネントの属性情報が同一であるか否かを判定する（ステップＳ４０）。ここでは、トランザクションＩＤ「０００３」において、コンポーネント名「注文検索」というコンポーネントの「属性１」、「属性２」という各属性値と、前のコンポーネントであるコンポーネント名「注文照会」というコンポーネントの「属性１」、「属性２」という各属性値とが、それぞれ、同一であるか否かを判定する。この結果、トランザクションＩＤ「０００３」のコンポーネント名「注文検索」、「注文照会」において、「属性１」の属性値はいずれも「ユーザＥ」であり、「属性２」の属性値はいずれも「なし」であり、いずれも同一であるため、トランザクションＩＤ「０００３」において、コンポーネント名「注文検索」というコンポーネントの属性情報と、前のコンポーネントであるコンポーネント名「注文照会」というコンポーネントの属性情報が同一であると判定する。このため、ＹＥＳルートへ進み、トランザクションログデータ分析エンジン３０は、図２３に示すように、コンポーネント名「注文検索」というコンポーネントのコンポーネント情報をコンポーネント情報格納ＤＢ３１に格納するとともに、コンポーネント名「注文検索」というコンポーネントのコンポーネント情報に除外フラグとして「Ｙ」を設定し、さらに、「親コンポーネント名」に「前のコンポーネント名」である「注文照会」を設定し（ステップＳ５０）、ステップＳ７０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＳ２０へ戻る。
【００８０】
次に、トランザクションログデータ分析エンジン３０は、コンポーネント名「見積書流用作成」というコンポーネント（図１４参照）について、いずれかのトランザクションにおいて最初のコンポーネントとなっているか否かを判定する（ステップＳ２０）。この結果、いずれのトランザクションにおいてもコンポーネント情報の「前のコンポーネント名」があるため、コンポーネント名「見積書流用作成」というコンポーネントは、最初のコンポーネントではないと判定する。このため、ＮＯルートへ進み、さらに、トランザクションログデータ分析エンジン３０は、コンポーネント名「見積書流用作成」というコンポーネントについて、全てのトランザクションにおいて「前のコンポーネント名」と「次のコンポーネント名」が同一であるか否かを判定する（ステップＳ３０）。この結果、トランザクションはトランザクションＩＤ「０００３」だけであり、「前のコンポーネント名」は「注文検索」だけであり、「次のコンポーネント名」は「見積書確認」だけであるため、全てのトランザクションにおいて「前のコンポーネント名」と「次のコンポーネント名」が同一であると判定する。このため、ＹＥＳルートへ進み、さらに、トランザクションログデータ分析エンジン３０は、トランザクションＩＤ「０００３」において、コンポーネント名「見積書流用作成」というコンポーネントの属性情報と、前のコンポーネントであるコンポーネント名「注文検索」というコンポーネントの属性情報が同一であるか否かを判定する（ステップＳ４０）。ここでは、トランザクションＩＤ「０００３」において、コンポーネント名「見積書流用作成」というコンポーネントの「属性１」、「属性２」という各属性値と、前のコンポーネントであるコンポーネント名「注文検索」というコンポーネントの「属性１」、「属性２」という各属性値とが、それぞれ、同一であるか否かを判定する。この結果、トランザクションＩＤ「０００３」のコンポーネント名「見積書流用作成」、「注文検索」において、「属性２」の属性値は、いずれも「ユーザＥ」であって同一であるが、「属性２」の属性値は、それぞれ、「済」、「なし」であって異なるため、トランザクションＩＤ「０００３」において、コンポーネント名「見積書流用作成」というコンポーネントの属性情報と、前のコンポーネントであるコンポーネント名「注文検索」というコンポーネントの属性情報が同一でないと判定する。このため、ＮＯルートへ進み、トランザクションログデータ分析エンジン３０は、図２４に示すように、コンポーネント名「見積書流用作成」というコンポーネントのコンポーネント情報を、コンポーネント情報格納ＤＢ３１に格納し（ステップＳ６０）、ステップＳ７０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＳ２０へ戻る。
【００８１】
次に、トランザクションログデータ分析エンジン３０は、コンポーネント名「注文差戻」というコンポーネントについて、いずれかのトランザクションにおいて最初のコンポーネントとなっているか否かを判定する（ステップＳ２０）。この結果、いずれのトランザクションにおいてもコンポーネント情報の「前のコンポーネント名」があるため、コンポーネント名「注文差戻」というコンポーネントは、最初のコンポーネントではないと判定する。このため、ＮＯルートへ進み、さらに、トランザクションログデータ分析エンジン３０は、コンポーネント名「注文差戻」というコンポーネントについて、全てのトランザクションにおいて「前のコンポーネント名」と「次のコンポーネント名」が同一であるか否かを判定する（ステップＳ３０）。この結果、トランザクションはトランザクションＩＤ「０００４」だけであり、「前のコンポーネント名」は「注文確認」だけであり、「次のコンポーネント名」は「注文元連絡」だけであるため、全てのトランザクションにおいて「前のコンポーネント名」と「次のコンポーネント名」が同一であると判定する。このため、ＹＥＳルートへ進み、さらに、トランザクションログデータ分析エンジン３０は、トランザクションＩＤ「０００４」において、コンポーネント名「注文差戻」というコンポーネントの属性情報と、前のコンポーネントであるコンポーネント名「注文確認」というコンポーネントの属性情報が同一であるか否かを判定する（ステップＳ４０）。ここでは、トランザクションＩＤ「０００４」において、コンポーネント名「注文差戻」というコンポーネントの「属性１」、「属性２」という各属性値と、前のコンポーネントであるコンポーネント名「注文確認」というコンポーネントの「属性１」、「属性２」という各属性値とが、それぞれ、同一であるか否かを判定する。この結果、トランザクションＩＤ「０００４」のコンポーネント名「注文差戻」、「注文確認」において、「属性１」の属性値はいずれも「ユーザＡ」であり、「属性２」の属性値はいずれも「なし」であり、いずれも同一であるため、トランザクションＩＤ「０００４」において、コンポーネント名「注文差戻」というコンポーネントの属性情報と、前のコンポーネントであるコンポーネント名「注文確認」というコンポーネントの属性情報が同一であると判定する。このため、ＹＥＳルートへ進み、トランザクションログデータ分析エンジン３０は、図２５に示すように、コンポーネント名「注文差戻」というコンポーネントのコンポーネント情報をコンポーネント情報格納ＤＢ３１に格納するとともに、コンポーネント名「注文差戻」というコンポーネントのコンポーネント情報に除外フラグとして「Ｙ」を設定し、さらに、「親コンポーネント名」に「前のコンポーネント名」である「注文確認」を設定し（ステップＳ５０）、ステップＳ７０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＳ２０へ戻る。
【００８２】
次に、トランザクションログデータ分析エンジン３０は、コンポーネント名「注文元連絡」というコンポーネントについて、いずれかのトランザクションにおいて最初のコンポーネントとなっているか否かを判定する（ステップＳ２０）。この結果、いずれのトランザクションにおいてもコンポーネント情報の「前のコンポーネント名」があるため、コンポーネント名「注文元連絡」というコンポーネントは、最初のコンポーネントではないと判定する。このため、ＮＯルートへ進み、さらに、トランザクションログデータ分析エンジン３０は、コンポーネント名「注文元連絡」というコンポーネントについて、全てのトランザクションにおいて「前のコンポーネント名」と「次のコンポーネント名」が同一であるか否かを判定する（ステップＳ３０）。この結果、トランザクションはトランザクションＩＤ「０００４」だけであり、「前のコンポーネント名」は「注文差戻」だけであり、「次のコンポーネント名」はなしだけであるため、全てのトランザクションにおいて「前のコンポーネント名」と「次のコンポーネント名」が同一であると判定する。このため、ＹＥＳルートへ進み、さらに、トランザクションログデータ分析エンジン３０は、トランザクションＩＤ「０００４」において、コンポーネント名「注文元連絡」というコンポーネントの属性情報と、前のコンポーネントであるコンポーネント名「注文差戻」というコンポーネントの属性情報が同一であるか否かを判定する（ステップＳ４０）。ここでは、トランザクションＩＤ「０００４」において、コンポーネント名「注文元連絡」というコンポーネントの「属性１」、「属性２」という各属性値と、前のコンポーネントであるコンポーネント名「注文差戻」というコンポーネントの「属性１」、「属性２」という各属性値とが、それぞれ、同一であるか否かを判定する。この結果、トランザクションＩＤ「０００４」のコンポーネント名「注文元連絡」、「注文差戻」において、「属性１」の属性値はいずれも「ユーザＡ」であり、「属性２」の属性値はいずれも「なし」であり、いずれも同一であるため、トランザクションＩＤ「０００４」において、コンポーネント名「注文元連絡」というコンポーネントの属性情報と、前のコンポーネントであるコンポーネント名「注文差戻」というコンポーネントの属性情報が同一であると判定する。このため、ＹＥＳルートへ進み、トランザクションログデータ分析エンジン３０は、図２６に示すように、コンポーネント名「注文元連絡」というコンポーネントのコンポーネント情報をコンポーネント情報格納ＤＢ３１に格納するとともに、コンポーネント名「注文元連絡」というコンポーネントのコンポーネント情報に除外フラグとして「Ｙ」を設定し、さらに、「親コンポーネント名」に「前のコンポーネント名」である「注文差戻」を設定し（ステップＳ５０）、ステップＳ７０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＳ２０へ戻る。
【００８３】
このようにして、抽出したコンポーネント情報（図１４参照）に含まれている各コンポーネントについて、上述のステップＳ２０〜６０の処理を行なう。
そして、ステップＳ７０で全てのコンポーネントについて処理を行なったと判定した場合、ステップＳ８０へ進み、トランザクションログデータ分析エンジン３０は、コンポーネント情報格納ＤＢ３１に格納した各コンポーネントのコンポーネント情報に除外フラグが設定されているか否かを判定する。ここでは、全てのコンポーネントのコンポーネント情報について順番に除外フラグが設定されているか否かを判定する。つまり、全てのコンポーネントのコンポーネント情報について順番に除外フラグが設定されているか否かの判定を繰り返し行なう。そして、あるコンポーネントのコンポーネント情報に除外フラグが設定されていないと判定した場合は、ＮＯルートへ進み、再度、次のコンポーネントのコンポーネント情報に除外フラグが設定されているか否かを判定する。一方、あるコンポーネント情報に除外フラグが設定されていると判定した場合は、ＹＥＳルートへ進み、さらに、トランザクションログデータ分析エンジン３０は、コンポーネント情報に除外フラグが設定されているコンポーネントが、いずれかのトランザクションにおける唯一のコンポーネントであるか否かを判定する（ステップＳ９０）。ここでは、コンポーネント情報に除外フラグが設定されているコンポーネントのコンポーネント情報において、「前のコンポーネント名」及び「次のコンポーネント名」がない場合に、いずれかのトランザクションにおける唯一のコンポーネントであると判定する。
【００８４】
この判定の結果、コンポーネント情報に除外フラグが設定されているコンポーネントが、いずれかのトランザクションにおける唯一のコンポーネントであると判定した場合、ＹＥＳルートへ進み、当該コンポーネントのコンポーネント情報の除外フラグの設定を解除する（ステップＳ１３０）。
これにより、後述のようにしてトランザクションにおける実行順序を示す情報を生成する際に、いずれかのトランザクションにおける唯一のコンポーネント、即ち、直前に実行されたプログラムがなく、かつ、直後に実行されたプログラムがないプログラムは残されることになる。このように、いずれかのトランザクションにおける唯一のコンポーネントは、直前に実行されたプログラムと直後に実行されたプログラムが一つずつであるプログラムには含まれない。
【００８５】
一方、コンポーネント情報に除外フラグが設定されているコンポーネントが、いずれかのトランザクションにおける唯一のコンポーネントではないと判定した場合、ＮＯルートへ進み、トランザクションログデータ分析エンジン３０は、当該コンポーネントの親コンポーネントのコンポーネント情報に除外フラグが設定されているか否かを判定する（ステップＳ１００）。
【００８６】
この判定の結果、当該コンポーネントの親コンポーネントのコンポーネント情報に除外フラグが設定されていないと判定した場合、ＮＯルートへ進み、当該コンポーネントの親コンポーネントのコンポーネント情報の「グループの次のコンポーネント名」に、当該コンポーネントのコンポーネント情報の「次のコンポーネント名」を設定する（ステップＳ１２０）。
【００８７】
一方、当該コンポーネントの親コンポーネントのコンポーネント情報に除外フラグが設定されていると判定した場合、ＹＥＳルートへ進み、当該コンポーネントの親コンポーネントの親コンポーネントのコンポーネント情報の「グループの次のコンポーネント名」に、当該コンポーネントのコンポーネント情報の「次のコンポーネント名」を設定するとともに、当該コンポーネントのコンポーネント情報の「親コンポーネント名」に、当該コンポーネントの親コンポーネントのコンポーネント情報の「親コンポーネント名」を設定（上書き設定）する（ステップＳ１１０）。なお、既に当該コンポーネントの親コンポーネントの親コンポーネントのコンポーネント情報の「グループの次のコンポーネント名」にコンポーネント名が設定されている場合には、これを、当該コンポーネントのコンポーネント情報の「次のコンポーネント名」で上書きすることになる。
【００８８】
このようなステップＳ８０〜１３０の処理は、コンポーネント情報格納ＤＢ３１に格納した各コンポーネントについて順番に行なわれる。ここでは、ステップＳ１４０で全てのコンポーネントについて処理を行なったと判定するまで、上述の処理を繰り返す。
具体的には、まず、トランザクションログデータ分析エンジン３０は、コンポーネント情報格納ＤＢ３１に格納されている各コンポーネントのコンポーネント情報について順番に除外フラグが設定されているか否かを判定する（ステップＳ８０）。この結果、まず、コンポーネント名「注文作成」、「注文確認」というコンポーネントについていずれもコンポーネント情報に除外フラグが設定されていないと判定した後、コンポーネント名「注文受付」というコンポーネントについてコンポーネント情報に除外フラグが設定されていると判定する（ステップＳ８０）。この場合、ＹＥＳルートへ進み、さらに、トランザクションログデータ分析エンジン３０は、コンポーネント名「注文受付」というコンポーネントが、いずれかのトランザクションにおける唯一のコンポーネントであるか否かを判定する（ステップＳ９０）。ここでは、コンポーネント名「注文受付」というコンポーネントのコンポーネント情報において、「前のコンポーネント名」及び「次のコンポーネント名」があるため、いずれかのトランザクションにおける唯一のコンポーネントではないと判定する。この場合、ＮＯルートへ進み、さらに、トランザクションログデータ分析エンジン３０は、当該コンポーネントであるコンポーネント名「注文受付」というコンポーネントの親コンポーネントであるコンポーネント名「注文確認」というコンポーネントのコンポーネント情報に除外フラグとして「Ｙ」が設定されているか否かを判定する（ステップＳ１００）。ここでは、親コンポーネントであるコンポーネント名「注文確認」というコンポーネントのコンポーネント情報に除外フラグとして「Ｙ」が設定されていないと判定する。この場合、ＮＯルートへ進み、図２７に示すように、当該コンポーネントであるコンポーネント名「注文受付」というコンポーネントの親コンポーネントであるコンポーネント名「注文確認」というコンポーネントのコンポーネント情報の「グループの次のコンポーネント名」に、当該コンポーネントであるコンポーネント名「注文受付」というコンポーネントのコンポーネント情報の「次のコンポーネント名」である「見積書新規作成」を設定し（ステップＳ１２０）、ステップＳ１４０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＳ８０へ戻る。
【００８９】
続いて、コンポーネント名「見積書新規作成」、「見積書確認」というコンポーネントについていずれもコンポーネント情報に除外フラグが設定されていないと判定した後、コンポーネント名「見積書修正」というコンポーネントについてコンポーネント情報に除外フラグが設定されていると判定する（ステップＳ８０）。この場合、ＹＥＳルートへ進み、さらに、トランザクションログデータ分析エンジン３０は、コンポーネント名「見積書修正」というコンポーネントが、いずれかのトランザクションにおける唯一のコンポーネントであるか否かを判定する（ステップＳ９０）。ここでは、コンポーネント名「見積書修正」というコンポーネントのコンポーネント情報において、「前のコンポーネント名」及び「次のコンポーネント名」があるため、いずれかのトランザクションにおける唯一のコンポーネントではないと判定する。この場合、ＮＯルートへ進み、さらに、トランザクションログデータ分析エンジン３０は、当該コンポーネントであるコンポーネント名「見積書修正」というコンポーネントの親コンポーネントであるコンポーネント名「見積書確認」というコンポーネントのコンポーネント情報に除外フラグとして「Ｙ」が設定されているか否かを判定する（ステップＳ１００）。ここでは、親コンポーネントであるコンポーネント名「見積書確認」というコンポーネントのコンポーネント情報に除外フラグとして「Ｙ」が設定されていないと判定する。この場合、ＮＯルートへ進み、図２７に示すように、当該コンポーネントであるコンポーネント名「見積書修正」というコンポーネントの親コンポーネントであるコンポーネント名「見積書確認」というコンポーネントのコンポーネント情報の「グループの次のコンポーネント名」に、当該コンポーネントであるコンポーネント名「見積書修正」というコンポーネントのコンポーネント情報の「次のコンポーネント名」である「注文更新」を設定し（ステップＳ１２０）、ステップＳ１４０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＳ８０へ戻る。
【００９０】
次に、ステップＳ８０で、コンポーネント名「注文更新」というコンポーネントについてコンポーネント情報に除外フラグが設定されていると判定する。この場合、ＹＥＳルートへ進み、さらに、トランザクションログデータ分析エンジン３０は、コンポーネント名「注文更新」というコンポーネントが、いずれかのトランザクションにおける唯一のコンポーネントであるか否かを判定する（ステップＳ９０）。ここでは、コンポーネント名「注文更新」というコンポーネントのコンポーネント情報において、「前のコンポーネント名」及び「次のコンポーネント名」があるため、いずれかのトランザクションにおける唯一のコンポーネントではないと判定する。この場合、ＮＯルートへ進み、さらに、トランザクションログデータ分析エンジン３０は、当該コンポーネントであるコンポーネント名「注文更新」というコンポーネントの親コンポーネントであるコンポーネント名「見積書修正」というコンポーネントのコンポーネント情報に除外フラグとして「Ｙ」が設定されているか否かを判定する（ステップＳ１００）。ここでは、親コンポーネントであるコンポーネント名「見積書修正」というコンポーネントのコンポーネント情報に除外フラグとして「Ｙ」が設定されていると判定する。この場合、ＹＥＳルートへ進み、図２７、図２８に示すように、当該コンポーネントであるコンポーネント名「注文更新」の親コンポーネントであるコンポーネント名「見積書修正」の親コンポーネントであるコンポーネント名「見積書確認」のコンポーネント情報の「グループの次のコンポーネント名」（ここでは「注文更新」になっている）に、当該コンポーネントであるコンポーネント名「注文更新」のコンポーネント情報の「次のコンポーネント名」である「−（なし）」を上書き設定するとともに、当該コンポーネントであるコンポーネント名「注文更新」のコンポーネント情報の「親コンポーネント名」（ここでは「見積書修正」になっている）に、当該コンポーネントであるコンポーネント名「注文更新」の親コンポーネントである「見積書修正」のコンポーネント情報の「親コンポーネント名」である「見積書確認」を上書き設定し（ステップＳ１１０）、ステップＳ１４０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＳ８０へ戻る。
【００９１】
次に、コンポーネント名「注文照会」というコンポーネントについてコンポーネント情報に除外フラグが設定されていないと判定した後、コンポーネント名「注文検索」というコンポーネントについてコンポーネント情報に除外フラグが設定されていると判定する（ステップＳ８０）。この場合、ＹＥＳルートへ進み、さらに、トランザクションログデータ分析エンジン３０は、コンポーネント名「注文検索」というコンポーネントが、いずれかのトランザクションにおける唯一のコンポーネントであるか否かを判定する（ステップＳ９０）。ここでは、コンポーネント名「注文検索」というコンポーネントのコンポーネント情報において、「前のコンポーネント名」及び「次のコンポーネント名」があるため、いずれかのトランザクションにおける唯一のコンポーネントではないと判定する。この場合、ＮＯルートへ進み、さらに、トランザクションログデータ分析エンジン３０は、当該コンポーネントであるコンポーネント名「注文検索」というコンポーネントの親コンポーネントであるコンポーネント名「注文照会」というコンポーネントのコンポーネント情報に除外フラグとして「Ｙ」が設定されているか否かを判定する（ステップＳ１００）。ここでは、親コンポーネントであるコンポーネント名「注文照会」というコンポーネントのコンポーネント情報に除外フラグとして「Ｙ」が設定されていないと判定する。この場合、ＮＯルートへ進み、図２９に示すように、当該コンポーネントであるコンポーネント名「注文検索」というコンポーネントの親コンポーネントであるコンポーネント名「注文照会」というコンポーネントのコンポーネント情報の「グループの次のコンポーネント名」に、当該コンポーネントであるコンポーネント名「注文検索」というコンポーネントのコンポーネント情報の「次のコンポーネント名」である「見積書流用作成」を設定し（ステップＳ１２０）、ステップＳ１４０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＳ８０へ戻る。
【００９２】
次に、コンポーネント名「見積書流用作成」というコンポーネントについてコンポーネント情報に除外フラグが設定されていないと判定した後、コンポーネント名「注文差戻」というコンポーネントについてコンポーネント情報に除外フラグが設定されていると判定する（ステップＳ８０）。この場合、ＹＥＳルートへ進み、さらに、トランザクションログデータ分析エンジン３０は、コンポーネント名「注文差戻」というコンポーネントが、いずれかのトランザクションにおける唯一のコンポーネントであるか否かを判定する（ステップＳ９０）。ここでは、コンポーネント名「注文差戻」というコンポーネントのコンポーネント情報において、「前のコンポーネント名」及び「次のコンポーネント名」があるため、いずれかのトランザクションにおける唯一のコンポーネントではないと判定する。この場合、ＮＯルートへ進み、さらに、トランザクションログデータ分析エンジン３０は、当該コンポーネントであるコンポーネント名「注文差戻」というコンポーネントの親コンポーネントであるコンポーネント名「注文確認」というコンポーネントのコンポーネント情報に除外フラグとして「Ｙ」が設定されているか否かを判定する（ステップＳ１００）。ここでは、親コンポーネントであるコンポーネント名「注文確認」というコンポーネントのコンポーネント情報に除外フラグとして「Ｙ」が設定されていないと判定する。この場合、ＮＯルートへ進み、図２９に示すように、当該コンポーネントであるコンポーネント名「注文差戻」というコンポーネントの親コンポーネントであるコンポーネント名「注文確認」というコンポーネントのコンポーネント情報の「グループの次のコンポーネント名」に、当該コンポーネントであるコンポーネント名「注文差戻」というコンポーネントのコンポーネント情報の「次のコンポーネント名」である「注文元連絡」を設定し（ステップＳ１２０）、ステップＳ１４０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＳ８０へ戻る。
【００９３】
次に、コンポーネント名「注文元連絡」というコンポーネントについてコンポーネント情報に除外フラグが設定されていると判定する（ステップＳ８０）。この場合、ＹＥＳルートへ進み、さらに、トランザクションログデータ分析エンジン３０は、コンポーネント名「注文元連絡」というコンポーネントが、いずれかのトランザクションにおける唯一のコンポーネントであるか否かを判定する（ステップＳ９０）。ここでは、コンポーネント名「注文元連絡」というコンポーネントのコンポーネント情報において、「前のコンポーネント名」及び「次のコンポーネント名」があるため、いずれかのトランザクションにおける唯一のコンポーネントではないと判定する。この場合、ＮＯルートへ進み、さらに、トランザクションログデータ分析エンジン３０は、当該コンポーネントであるコンポーネント名「注文元連絡」というコンポーネントの親コンポーネントであるコンポーネント名「注文差戻」というコンポーネントのコンポーネント情報に除外フラグとして「Ｙ」が設定されているか否かを判定する（ステップＳ１００）。ここでは、親コンポーネントであるコンポーネント名「注文差戻」というコンポーネントのコンポーネント情報に除外フラグとして「Ｙ」が設定されていると判定する。この場合、ＹＥＳルートへ進み、図２９、図３０に示すように、当該コンポーネントであるコンポーネント名「注文元連絡」の親コンポーネントであるコンポーネント名「注文差戻」の親コンポーネントであるコンポーネント名「注文確認」のコンポーネント情報の「グループの次のコンポーネント名」（ここでは「注文元連絡」になっている）に、当該コンポーネントであるコンポーネント名「注文元連絡」のコンポーネント情報の「次のコンポーネント名」である「−（なし）」を上書き設定するとともに、当該コンポーネントであるコンポーネント名「注文元連絡」のコンポーネント情報の「親コンポーネント名」（ここでは「注文差戻」になっている）に、当該コンポーネントであるコンポーネント名「注文元連絡」の親コンポーネントである「注文差戻」のコンポーネント情報の「親コンポーネント名」である「注文確認」を上書き設定し（ステップＳ１１０）、ステップＳ１４０で全てのコンポーネントについて処理を行なったと判定して、処理を終了する。
【００９４】
なお、上述のトランザクションログデータ分析エンジン３０による処理、即ち、図１０のフローチャートに示す処理は適宜変更することもできる。例えば、ステップＳ４０を削除しても良い。また、例えば、ステップＳ８０〜Ｓ１４０を削除しても良い。また、例えば、ステップＳ４０、Ｓ８０〜Ｓ１４０を削除しても良い。なお、ステップＳ８０、Ｓ１００〜Ｓ１２０を削除する場合、コンポーネント情報格納ＤＢ３１に格納するコンポーネント情報は「グループの次のコンポーネント名」を含まないものとしても良い。この場合、トランザクションログデータ可視化エンジンによる処理は後述の図３６のフローチャートに示すような処理を行なうようにすれば良い。また、例えば、ステップＳ２０〜Ｓ４０は順番を変更しても良い。また、例えば、ステップＳ９０及びＳ１３０を削除し、ステップＳ９０と同じステップをステップＳ５０及びステップＳ６０の前に挿入し、唯一のコンポーネントとなっている場合はステップＳ６０へ進み、唯一のコンポーネントとなっていない場合はステップＳ５０へ進むようにしても良い。つまり、ステップＳ９０を除外フラグの設定を解除するか否かの判定に用いる代わりに、これをステップＳ５０及びステップＳ６０の前に挿入して、除外フラグを設定するか否かの判定に用いるようにしても良い。また、例えば、ステップＳ７０を削除し、ステップＳ１４０のＮＯルートがステップＳ２０へ戻るようにしても良い。つまり、上述のトランザクションログデータ分析エンジン３０による処理では、ステップＳ２０〜Ｓ７０の処理とステップＳ８０〜Ｓ１４０の処理とを分けているが、これらの処理を分けずに一連の処理として行なうようにしても良い。
【００９５】
次に、本トランザクションログデータ分析装置１に備えられるトランザクションログデータ可視化エンジン３２による処理について、図３１〜図３６を参照しながら、より具体的に説明する。
ここでは、利用者端末７から生産業務プロセスを可視化した情報を要求する指示があった場合における処理を例に挙げて説明する。また、コンポーネント情報格納ＤＢ３１には、図３２に示すように、上述のトランザクションログデータ分析エンジン３０による処理結果を含むコンポーネント情報が格納されているものとする。なお、生産業務プロセスは、上述のように複数のアクティビティによって構成されるが、ここでは、説明を簡略化するために、各トランザクションにおいて実行されるコンポーネントとしては、受注アクティビティに含まれるもののみを示し、それ以外のアクティビティに含まれるものは省略している。
【００９６】
まず、利用者端末７から生産業務プロセスを可視化した情報を要求する指示があった場合に、トランザクションログデータ可視化エンジン３２は、可視化対象とする業務プロセスを特定できる業務プロセス名を用いて、コンポーネント情報格納ＤＢ３１からコンポーネント情報を読み出す。次に、コンポーネント情報に除外フラグが設定されていないコンポーネントを表示対象（可視化対象）とし、コンポーネント情報に除外フラグが設定されているコンポーネントを非表示対象（非可視化対象）としてこれを表示対象の親コンポーネントに関連づけてグループ化して、業務プロセスを実現するためのトランザクションにおける複数のコンポーネントの実行順序を示す情報（実行順序情報）を生成する。そして、この実行順序情報を、生産業務プロセスを可視化した情報を要求する指示を送ってきた利用者端末７へ送り、利用者端末７の表示装置の画面上に表示させる。
【００９７】
本実施形態では、トランザクションログデータ可視化エンジン３２は、図３１に示すように、まず、業務プロセス名「生産業務」を用いて、コンポーネント情報格納ＤＢ３１から、上述のトランザクションログデータ分析エンジン３０による処理結果を含むコンポーネント情報を読み出す（ステップＡ１０）。なお、コンポーネント情報の読み出しはトランザクション毎に行なうようにしても良い。この場合、トランザクションＩＤ「０００１」〜「０００４」の各コンポーネント情報を順番に読み出すようにすれば良い。
【００９８】
次に、トランザクションログデータ可視化エンジン３２は、「開始」を描画する（ステップＡ２０）。
次に、トランザクションログデータ可視化エンジン３２は、当該コンポーネントが既に描画されているか否かを判定する（ステップＡ３０）。この結果、当該コンポーネントが既に描画されていると判定した場合、ＹＥＳルートへ進み、さらに、トランザクションログデータ可視化エンジン３２は、矢印が既に描画されているか否かを判定する（ステップＡ４０）。ここでは、トランザクションログデータ可視化エンジン３２は、既に描画されているコンポーネントのコンポーネント情報と当該コンポーネントのコンポーネント情報の「前のコンポーネント名」及び「次のコンポーネント名」が一致する場合に、矢印が既に描画されていると判定し、一致しない場合に、矢印が描画されていないと判定する。この判定の結果、矢印が既に描画されていると判定した場合は、ＹＥＳルートへ進み、ステップＡ１５０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＡ３０へ戻る。一方、矢印が描画されていないと判定した場合は、ＮＯルート、即ち、ステップＡ６０へ進む。
【００９９】
一方、ステップＡ３０で当該コンポーネントが描画されていないと判定した場合、ＮＯルートへ進み、当該コンポーネントを描画し（ステップＡ５０）、さらに、トランザクションログデータ可視化エンジン３２は、当該コンポーネントのコンポーネント情報の「前のコンポーネント名」が設定されているか否かを判定する（ステップＡ６０）。この結果、当該コンポーネントのコンポーネント情報の「前のコンポーネント名」が設定されていないと判定した場合、ＮＯルートへ進み、「開始」から当該コンポーネントへの矢印を描画し（ステップＡ７０）、ステップＡ８０へ進む。一方、当該コンポーネントのコンポーネント情報の「前のコンポーネント名」が設定されていると判定した場合、そのままステップＡ８０へ進む。
【０１００】
次に、ステップＡ８０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントのコンポーネント情報の「グループの次のコンポーネント名」が設定されているか否かを判定する。この結果、当該コンポーネントのコンポーネント情報の「グループの次のコンポーネント名」が設定されていないと判定した場合、ＮＯルートへ進み、さらに、トランザクションログデータ可視化エンジン３２は、当該コンポーネントのコンポーネント情報の「次のコンポーネント名」が設定されているか否かを判定する（ステップＡ１２０）。この結果、当該コンポーネントのコンポーネント情報の「次のコンポーネント名」が設定されていると判定した場合、ＹＥＳルートへ進み、次のコンポーネント、及び、当該コンポーネントから次のコンポーネントへの矢印を描画し（ステップＡ１４０）、ステップＡ１５０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＡ３０へ戻る。一方、当該コンポーネントのコンポーネント情報の「次のコンポーネント名」が設定されていないと判定した場合、ＮＯルートへ進み、「終了」、及び、当該コンポーネントから「終了」への矢印を描画し（ステップＡ１３０）、ステップＡ１５０で、全てのコンポーネントについて処理を行なっていないと判定した場合は、ステップＡ３０へ戻り、全てのコンポーネントについて処理を行なったと判定した場合は、処理を終了する。
【０１０１】
ところで、ステップＡ８０で、当該コンポーネントのコンポーネント情報の「グループの次のコンポーネント名」が設定されていると判定した場合、ＹＥＳルートへ進み、トランザクションログデータ可視化エンジン３２は、当該コンポーネントが親コンポーネントとして強調表示されるようにするとともに、当該コンポーネントを親コンポーネントとしてグループ化されるコンポーネントを関連づける（ステップＡ９０）。ここでは、後述するように、利用者端末７を操作することで、親コンポーネントが選択された場合に、トランザクションログデータ可視化エンジン３２が、コンポーネント情報格納ＤＢ３１に格納されているコンポーネント情報（図３２参照）において、選択された親コンポーネントが「親コンポーネント名」として設定されており、グループ化されて非表示になっているコンポーネントを展開して表示するように、親コンポーネントとグループ化されるコンポーネントとを関連づけておく。なお、グループ化されて非表示とされるコンポーネントについては、この段階で描画しておいても良いし、親コンポーネントが選択された段階で描画するようにしても良い。
【０１０２】
次に、トランザクションログデータ可視化エンジン３２は、当該コンポーネントのコンポーネント情報の「グループの次のコンポーネント名」が「−（なし）」であるか否かを判定する（ステップＡ１００）。この結果、当該コンポーネントのコンポーネント情報の「グループの次のコンポーネント名」が「−（なし）」であると判定した場合、ＹＥＳルートへ進み、「終了」、及び、当該コンポーネントから「終了」への矢印を描画し（ステップＡ１３０）、ステップＡ１５０で、全てのコンポーネントについて処理を行なっていないと判定した場合は、ステップＡ３０へ戻り、全てのコンポーネントについて処理を行なったと判定した場合は、処理を終了する。
【０１０３】
ところで、ステップＡ１００で、当該コンポーネントのコンポーネント情報の「グループの次のコンポーネント名」が「−（なし）」ではないと判定した場合、ＮＯルートへ進み、トランザクションログデータ可視化エンジン３２は、グループの次のコンポーネント、及び、当該コンポーネントからグループの次のコンポーネントへの矢印を描画し（ステップＡ１１０）、ステップＡ１５０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＡ３０へ戻る。
【０１０４】
具体的には、まず、トランザクションログデータ可視化エンジン３２は、業務プロセス名「生産業務」を用いて、コンポーネント情報格納ＤＢ３１から、上述のトランザクションログデータ分析エンジン３０による処理結果を含むコンポーネント情報（図３２参照）を読み出す（ステップＡ１０）。
次に、トランザクションログデータ可視化エンジン３２は、「開始」を描画する（ステップＡ２０；図３３参照）。
【０１０５】
次に、トランザクションログデータ可視化エンジン３２は、コンポーネント情報格納ＤＢ３１から読み出されたコンポーネント情報（図３２参照）のうち、トランザクションＩＤ「０００１」に含まれるコンポーネント名「注文作成」というコンポーネントが既に描画されているか否かを判定する（ステップＡ３０）。この結果、コンポーネント名「注文作成」というコンポーネントは描画されていないと判定し、ＮＯルートへ進み、コンポーネント名「注文作成」というコンポーネントを描画し（ステップＡ５０；図３３参照）、ステップＡ６０へ進む。次に、ステップＡ６０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文作成」というコンポーネントのコンポーネント情報の「前のコンポーネント名」が設定されていないと判定し、ＮＯルートへ進み、「開始」から当該コンポーネントであるコンポーネント名「注文作成」というコンポーネントへの矢印を描画し（ステップＡ７０；図３３参照）、ステップＡ８０へ進む。次に、ステップＡ８０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文作成」というコンポーネントのコンポーネント情報の「グループの次のコンポーネント名」が設定されていないと判定し、ＮＯルート、即ち、ステップＡ１２０へ進む。そして、ステップＡ１２０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文作成」のコンポーネント情報の「次のコンポーネント名」として「注文確認」が設定されていると判定して、ＹＥＳルート、即ち、ステップＡ１４０へ進む。そして、ステップＡ１４０で、トランザクションログデータ可視化エンジン３２は、「次のコンポーネント名」として設定されている「注文確認」というコンポーネント、及び、当該コンポーネントであるコンポーネント名「注文作成」から次のコンポーネントであるコンポーネント名「注文確認」への矢印を描画し（図３３参照）、ステップＡ１５０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＡ３０へ戻る。
【０１０６】
次に、トランザクションログデータ可視化エンジン３２は、トランザクションＩＤ「０００１」に含まれるコンポーネント名「注文作成」というコンポーネントのコンポーネント情報の「次のコンポーネント名」に設定されているコンポーネント名「注文確認」というコンポーネントが既に描画されているか否かを判定する（ステップＡ３０）。この結果、コンポーネント名「注文確認」というコンポーネントは既に描画されていると判定し、ＹＥＳルートへ進み、ステップＡ４０で、矢印が描画されていないと判定して、ＮＯルート、即ち、ステップＡ６０へ進む。次に、ステップＡ６０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文確認」というコンポーネントのコンポーネント情報の「前のコンポーネント名」が設定されていると判定し、ＹＥＳルート、即ち、ステップＡ８０へ進む。次に、ステップＡ８０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文確認」というコンポーネントのコンポーネント情報の「グループの次のコンポーネント名」として「見積書新規作成」が設定されていると判定して、ＹＥＳルート、即ち、ステップＡ９０へ進む。そして、ステップＡ９０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文確認」というコンポーネントが親コンポーネントとして強調表示されるようにするとともに、当該コンポーネントであるコンポーネント名「注文確認」を親コンポーネントとしてグループ化されるコンポーネント（ここではコンポーネント名「注文受付」）を関連づける。ここでは、後述するように、利用者端末７を操作することで、親コンポーネントであるコンポーネント名「注文確認」というコンポーネントが選択された場合に、トランザクションログデータ可視化エンジン３２が、コンポーネント情報格納ＤＢ３１に格納されているコンポーネント情報（図３２参照）において、選択された親コンポーネントが「親コンポーネント名」として設定されており、グループ化されて非表示になっているコンポーネント名「注文受付」というコンポーネントを展開して表示するように、親コンポーネントであるコンポーネント名「注文確認」というコンポーネントとグループ化されるコンポーネントであるコンポーネント名「注文受付」というコンポーネントとを関連づけておく。次に、ステップＡ１００で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文確認」というコンポーネントのコンポーネント情報の「グループの次のコンポーネント名」が「−（なし）」ではないと判定し、ＮＯルート、即ち、ステップＡ１１０へ進む。そして、ステップＡ１１０で、トランザクションログデータ可視化エンジン３２は、「グループの次のコンポーネント名」として設定されている「見積書新規作成」というコンポーネント、及び、当該コンポーネントであるコンポーネント名「注文確認」からグループの次のコンポーネントである「見積書新規作成」への矢印を描画し（図３３参照）、ステップＡ１５０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＡ３０へ戻る。
【０１０７】
次に、トランザクションログデータ可視化エンジン３２は、トランザクションＩＤ「０００１」に含まれるコンポーネント名「注文確認」というコンポーネントのコンポーネント情報の「グループの次のコンポーネント名」に設定されているコンポーネント名「見積書新規作成」というコンポーネントが既に描画されているか否かを判定する（ステップＡ３０）。この結果、コンポーネント名「見積書新規作成」というコンポーネントは既に描画されていると判定し、ＹＥＳルートへ進み、ステップＡ４０で、矢印が描画されていないと判定して、ＮＯルート、即ち、ステップＡ６０へ進む。次に、ステップＡ６０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「見積書新規作成」というコンポーネントのコンポーネント情報の「前のコンポーネント名」が設定されていると判定し、ＹＥＳルート、即ち、ステップＡ８０へ進む。次に、ステップＡ８０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「見積書新規作成」というコンポーネントのコンポーネント情報の「グループの次のコンポーネント名」が設定されていないと判定し、ＮＯルート、即ち、ステップＡ１２０へ進む。そして、ステップＡ１２０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「見積書新規作成」のコンポーネント情報の「次のコンポーネント名」として「見積書確認」が設定されていると判定して、ＹＥＳルート、即ち、ステップＡ１４０へ進む。そして、ステップＡ１４０で、トランザクションログデータ可視化エンジン３２は、「次のコンポーネント名」として設定されている「見積書確認」というコンポーネント、及び、当該コンポーネントであるコンポーネント名「見積書新規作成」から次のコンポーネントであるコンポーネント名「見積書確認」への矢印を描画し（図３３参照）、ステップＡ１５０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＡ３０へ戻る。
【０１０８】
次に、トランザクションログデータ可視化エンジン３２は、トランザクションＩＤ「０００１」に含まれるコンポーネント名「見積書新規作成」というコンポーネントのコンポーネント情報の「次のコンポーネント名」に設定されているコンポーネント名「見積書確認」というコンポーネントが既に描画されているか否かを判定する（ステップＡ３０）。この結果、コンポーネント名「見積書確認」というコンポーネントは既に描画されていると判定し、ＹＥＳルートへ進み、ステップＡ４０で、矢印が描画されていないと判定して、ＮＯルート、即ち、ステップＡ６０へ進む。次に、ステップＡ６０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「見積書確認」というコンポーネントのコンポーネント情報の「前のコンポーネント名」が設定されていると判定し、ＹＥＳルート、即ち、ステップＡ８０へ進む。次に、ステップＡ８０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「見積書確認」というコンポーネントのコンポーネント情報の「グループの次のコンポーネント名」として「−（なし）」が設定されていると判定して、ＹＥＳルート、即ち、ステップＡ９０へ進む。そして、ステップＡ９０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「見積書確認」というコンポーネントが親コンポーネントとして強調表示されるようにするとともに、当該コンポーネントであるコンポーネント名「見積書確認」を親コンポーネントとしてグループ化されるコンポーネント（ここではコンポーネント名「見積書修正」、「注文更新」）を関連づける。ここでは、後述するように、利用者端末７を操作することで、親コンポーネントであるコンポーネント名「見積書確認」というコンポーネントが選択された場合に、トランザクションログデータ可視化エンジン３２が、コンポーネント情報格納ＤＢ３１に格納されているコンポーネント情報（図３２参照）において、選択された親コンポーネントが「親コンポーネント名」として設定されており、グループ化されて非表示になっているコンポーネント名「見積書修正」、「注文更新」というコンポーネントを展開して表示するように、親コンポーネントであるコンポーネント名「見積書確認」というコンポーネントとグループ化されるコンポーネントであるコンポーネント名「見積書修正」、「注文更新」というコンポーネントとを関連づけておく。次に、ステップＡ１００で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「見積書確認」というコンポーネントのコンポーネント情報の「グループの次のコンポーネント名」が「−（なし）」であると判定し、ＹＥＳルート、即ち、ステップＡ１３０へ進む。そして、ステップＡ１３０で、トランザクションログデータ可視化エンジン３２は、「終了」、及び、当該コンポーネントであるコンポーネント名「見積書確認」から「終了」への矢印を描画し（図３３参照）、ステップＡ１５０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＡ３０へ戻る。この段階で、トランザクションＩＤ「０００１」というトランザクションにおける各コンポーネントの実行順序を示す情報として、図３３に示すような情報が生成される。
【０１０９】
次に、トランザクションログデータ可視化エンジン３２は、コンポーネント情報格納ＤＢ３１から読み出されたコンポーネント情報（図３２参照）のうち、トランザクションＩＤ「０００２」に含まれるコンポーネント名「注文作成」というコンポーネントが既に描画されているか否かを判定する（ステップＡ３０）。この結果、コンポーネント名「注文作成」というコンポーネントは既に描画されていると判定し、ＹＥＳルートへ進み、ステップＡ４０で、矢印が描画されていると判定して、ＹＥＳルートへ進み、ステップＡ１５０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＡ３０へ戻る。
【０１１０】
次に、トランザクションログデータ可視化エンジン３２は、トランザクションＩＤ「０００２」に含まれるコンポーネント名「注文作成」というコンポーネントのコンポーネント情報の「次のコンポーネント名」に設定されているコンポーネント名「注文確認」というコンポーネントが既に描画されているか否かを判定する（ステップＡ３０）。この結果、コンポーネント名「注文確認」というコンポーネントは既に描画されていると判定し、ＹＥＳルートへ進み、ステップＡ４０で、矢印が描画されていると判定して、ＹＥＳルートへ進み、ステップＡ１５０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＡ３０へ戻る。
【０１１１】
次に、トランザクションログデータ可視化エンジン３２は、トランザクションＩＤ「０００２」に含まれるコンポーネント名「注文確認」というコンポーネントのコンポーネント情報の「グループの次のコンポーネント名」に設定されているコンポーネント名「見積書新規作成」というコンポーネントが既に描画されているか否かを判定する（ステップＡ３０）。この結果、コンポーネント名「見積書新規作成」というコンポーネントは既に描画されていると判定し、ＹＥＳルートへ進み、ステップＡ４０で、矢印が描画されていると判定して、ＹＥＳルートへ進み、ステップＡ１５０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＡ３０へ戻る。
【０１１２】
次に、トランザクションログデータ可視化エンジン３２は、トランザクションＩＤ「０００２」に含まれるコンポーネント名「見積書新規作成」というコンポーネントのコンポーネント情報の「次のコンポーネント名」に設定されているコンポーネント名「見積書確認」というコンポーネントが既に描画されているか否かを判定する（ステップＡ３０）。この結果、コンポーネント名「見積書確認」というコンポーネントは既に描画されていると判定し、ＹＥＳルートへ進み、ステップＡ４０で、矢印が描画されていると判定して、ＹＥＳルートへ進み、ステップＡ１５０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＡ３０へ戻る。
【０１１３】
次に、トランザクションログデータ可視化エンジン３２は、コンポーネント情報格納ＤＢ３１から読み出されたコンポーネント情報（図３２参照）のうち、トランザクションＩＤ「０００３」に含まれるコンポーネント名「注文照会」というコンポーネントが既に描画されているか否かを判定する（ステップＡ３０）。この結果、コンポーネント名「注文照会」というコンポーネントは描画されていないと判定し、ＮＯルートへ進み、コンポーネント名「注文照会」というコンポーネントを描画し（ステップＡ５０；図３４参照）、ステップＡ６０へ進む。次に、ステップＡ６０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文照会」というコンポーネントのコンポーネント情報の「前のコンポーネント名」が設定されていないと判定し、ＮＯルートへ進み、「開始」から当該コンポーネントであるコンポーネント名「注文照会」というコンポーネントへの矢印を描画し（ステップＡ７０；図３４参照）、ステップＡ８０へ進む。次に、ステップＡ８０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文照会」というコンポーネントのコンポーネント情報の「グループの次のコンポーネント名」として「見積書流用作成」が設定されていると判定して、ＹＥＳルート、即ち、ステップＡ９０へ進む。そして、ステップＡ９０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文照会」というコンポーネントが親コンポーネントとして強調表示されるようにするとともに、当該コンポーネントであるコンポーネント名「注文照会」を親コンポーネントとしてグループ化されるコンポーネント（ここではコンポーネント名「注文検索」）を関連づける。ここでは、後述するように、利用者端末７を操作することで、親コンポーネントであるコンポーネント名「注文照会」というコンポーネントが選択された場合に、トランザクションログデータ可視化エンジン３２が、コンポーネント情報格納ＤＢ３１に格納されているコンポーネント情報（図３２参照）において、選択された親コンポーネントが「親コンポーネント名」として設定されており、グループ化されて非表示になっているコンポーネント名「注文検索」というコンポーネントを展開して表示するように、親コンポーネントであるコンポーネント名「注文照会」というコンポーネントとグループ化されるコンポーネントであるコンポーネント名「注文検索」というコンポーネントとを関連づけておく。次に、ステップＡ１００で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文照会」というコンポーネントのコンポーネント情報の「グループの次のコンポーネント名」が「−（なし）」ではないと判定し、ＮＯルート、即ち、ステップＡ１１０へ進む。そして、ステップＡ１１０で、トランザクションログデータ可視化エンジン３２は、「グループの次のコンポーネント名」として設定されている「見積書流用作成」というコンポーネント、及び、当該コンポーネントであるコンポーネント名「注文照会」からグループの次のコンポーネントである「見積書流用作成」への矢印を描画し（図３４参照）、ステップＡ１５０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＡ３０へ戻る。
【０１１４】
次に、トランザクションログデータ可視化エンジン３２は、トランザクションＩＤ「０００３」に含まれるコンポーネント名「注文照会」というコンポーネントのコンポーネント情報の「グループの次のコンポーネント名」に設定されているコンポーネント名「見積書流用作成」というコンポーネントが既に描画されているか否かを判定する（ステップＡ３０）。この結果、コンポーネント名「見積書流用作成」というコンポーネントは既に描画されていると判定し、ＹＥＳルートへ進み、ステップＡ４０で、矢印が描画されていないと判定して、ＮＯルート、即ち、ステップＡ６０へ進む。次に、ステップＡ６０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「見積書流用作成」というコンポーネントのコンポーネント情報の「前のコンポーネント名」が設定されていると判定し、ＹＥＳルート、即ち、ステップＡ８０へ進む。次に、ステップＡ８０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「見積書流用作成」というコンポーネントのコンポーネント情報の「グループの次のコンポーネント名」が設定されていないと判定し、ＮＯルート、即ち、ステップＡ１２０へ進む。そして、ステップＡ１２０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「見積書流用作成」のコンポーネント情報の「次のコンポーネント名」として「見積書確認」が設定されていると判定して、ＹＥＳルート、即ち、ステップＡ１４０へ進む。そして、ステップＡ１４０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「見積書流用作成」から次のコンポーネントであるコンポーネント名「見積書確認」への矢印を描画し（図３４参照）、ステップＡ１５０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＡ３０へ戻る。
【０１１５】
次に、トランザクションログデータ可視化エンジン３２は、トランザクションＩＤ「０００３」に含まれるコンポーネント名「見積書流用作成」というコンポーネントのコンポーネント情報の「次のコンポーネント名」に設定されているコンポーネント名「見積書確認」というコンポーネントが既に描画されているか否かを判定する（ステップＡ３０）。この結果、コンポーネント名「見積書確認」というコンポーネントは既に描画されていると判定し、ＹＥＳルートへ進み、ステップＡ４０で、矢印が描画されていると判定して、ＹＥＳルートへ進み、ステップＡ１５０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＡ３０へ戻る。
【０１１６】
次に、トランザクションログデータ可視化エンジン３２は、コンポーネント情報格納ＤＢ３１から読み出されたコンポーネント情報（図３２参照）のうち、トランザクションＩＤ「０００４」に含まれるコンポーネント名「注文作成」というコンポーネントが既に描画されているか否かを判定する（ステップＡ３０）。この結果、コンポーネント名「注文作成」というコンポーネントは既に描画されていると判定し、ＹＥＳルートへ進み、ステップＡ４０で、矢印が描画されていると判定して、ＹＥＳルートへ進み、ステップＡ１５０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＡ３０へ戻る。
【０１１７】
次に、トランザクションログデータ可視化エンジン３２は、トランザクションＩＤ「０００４」に含まれるコンポーネント名「注文作成」というコンポーネントのコンポーネント情報の「次のコンポーネント名」に設定されているコンポーネント名「注文確認」というコンポーネントが既に描画されているか否かを判定する（ステップＡ３０）。この結果、コンポーネント名「注文確認」というコンポーネントは既に描画されていると判定し、ＹＥＳルートへ進み、ステップＡ４０で、矢印が描画されていないと判定して、ＮＯルート、即ち、ステップＡ６０へ進む。次に、ステップＡ６０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文確認」というコンポーネントのコンポーネント情報の「前のコンポーネント名」が設定されていると判定し、ＹＥＳルート、即ち、ステップＡ８０へ進む。次に、ステップＡ８０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文確認」というコンポーネントのコンポーネント情報の「グループの次のコンポーネント名」として「−（なし）」が設定されていると判定して、ＹＥＳルート、即ち、ステップＡ９０へ進む。そして、ステップＡ９０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文確認」というコンポーネントが親コンポーネントとして強調表示されるようにするとともに、当該コンポーネントであるコンポーネント名「注文確認」を親コンポーネントとしてグループ化されるコンポーネント（ここではコンポーネント名「注文差戻」、「注文元連絡」）を関連づける。ここでは、後述するように、利用者端末７を操作することで、親コンポーネントであるコンポーネント名「注文確認」というコンポーネントが選択された場合に、トランザクションログデータ可視化エンジン３２が、コンポーネント情報格納ＤＢ３１に格納されているコンポーネント情報（図３２参照）において、選択された親コンポーネントが「親コンポーネント名」として設定されており、グループ化されて非表示になっているコンポーネント名「注文差戻」、「注文元連絡」というコンポーネントを展開して表示するように、親コンポーネントであるコンポーネント名「注文確認」というコンポーネントとグループ化されるコンポーネントであるコンポーネント名「注文差戻」、「注文元連絡」というコンポーネントとを関連づけておく。次に、ステップＡ１００で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文確認」というコンポーネントのコンポーネント情報の「グループの次のコンポーネント名」が「−（なし）」であると判定し、ＹＥＳルート、即ち、ステップＡ１３０へ進む。そして、ステップＡ１３０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文確認」から「終了」への矢印を描画し（図３４参照）、ステップＡ１５０で全てのコンポーネントについて処理を行なったと判定して、処理を終了する。これにより、トランザクションＩＤ「０００１」〜「０００４」の全トランザクション、即ち、生産業務プロセスを実現するためのトランザクションにおける複数のコンポーネントの実行順序を示す情報として、図３４に示すような情報が生成される。このようにして生成された実行順序情報は、利用者端末７へ送られ、利用者端末７の表示装置の画面上に表示される。
【０１１８】
ところで、利用者端末７を操作することで、親コンポーネントが選択された場合、即ち、非表示となっているコンポーネント、即ち、親コンポーネントに関連づけてグループ化されているコンポーネントを表示させる指示があった場合、図３５に示すように、トランザクションログデータ可視化エンジン３２は、グループ化されて非表示となっているコンポーネントを親コンポーネントから展開して表示した実行順序情報を利用者端末７の表示装置の画面上に表示させる。
【０１１９】
ここでは、利用者端末７を操作して、コンポーネント名「注文確認」という親コンポーネントが選択されると、トランザクションログデータ可視化エンジン３２は、このコンポーネント名「注文確認」という親コンポーネントに関連づけてグループ化されているコンポーネント名「注文受付」、「注文差戻」、「注文元連絡」というコンポーネントを展開して表示させる。
【０１２０】
また、利用者端末７を操作して、コンポーネント名「見積書確認」という親コンポーネントが選択されると、トランザクションログデータ可視化エンジン３２は、このコンポーネント名「見積書確認」という親コンポーネントに関連づけてグループ化されているコンポーネント名「見積書修正」、「注文更新」というコンポーネントを展開して表示させる。
【０１２１】
また、利用者端末７を操作して、コンポーネント名「注文照会」という親コンポーネントが選択されると、トランザクションログデータ可視化エンジン３２は、このコンポーネント名「注文照会」というコンポーネントに関連づけてグループ化されているコンポーネント名「注文検索」というコンポーネントを展開して表示させる。
なお、上述のトランザクションログデータ可視化エンジン３２による処理、即ち、図３１のフローチャートに示す処理は適宜変更することもできる。例えば、上述のトランザクションログデータ可視化エンジン３２による処理におけるステップＡ９０は削除しても良い。つまり、親コンポーネントを強調表示し、これにグループ化されるコンポーネントを関連づける処理は行なわなくても良い。
【０１２２】
また、本実施形態では、上述のように、トランザクションログデータ分析エンジン３０によって、コンポーネント情報に「グループの次のコンポーネント名」を設定しておき、トランザクションログデータ可視化エンジン３２によってこれを利用して可視化を行なうことで、コンポーネント情報格納ＤＢ３１に格納されている全てのコンポーネントについて可視化の有無を判定しなくても良くしているが、これに限られるものではない。例えば、トランザクションログデータ分析エンジン３０によって、コンポーネント情報に「グループの次のコンポーネント名」を設定せずに、トランザクションログデータ可視化エンジン３２によって、コンポーネント情報格納ＤＢ３１に格納されている全てのコンポーネントについて可視化の有無を判定するようにしても良い。
【０１２３】
この場合、トランザクションログデータ可視化エンジン３２による処理は、図３６に示すように、上述の図３１のフローチャートにおけるステップＡ８０〜Ａ１１０に代えて、ステップＡ２００、Ａ２１０を加えれば良い。つまり、以下のような処理を行なうようにすれば良い。
まず、図３６に示すように、上述の図３１のフローチャートにおける処理と同様に、ステップＡ１０〜Ａ７０の処理を行ない、上述の図３１のフローチャートにおけるステップＡ８０に代えて、ステップＡ２００を加え、トランザクションログデータ可視化エンジン３２が、当該コンポーネントのコンポーネント情報に除外フラグが設定されているか否かを判定する。この判定の結果、当該コンポーネントのコンポーネント情報に除外フラグが設定されていると判定した場合、ＹＥＳルート、即ち、ステップＡ２１０へ進む。そして、ステップＡ２１０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントのコンポーネント情報の「親コンポーネント名」に設定されているコンポーネントを親コンポーネントとして強調表示されるようにするとともに、当該コンポーネントを親コンポーネントに関連づけてグループ化して非表示とし、ステップＡ１２０へ進む。ここでは、利用者端末７を操作することで、親コンポーネントが選択された場合に、トランザクションログデータ可視化エンジン３２が、コンポーネント情報格納ＤＢ３１に格納されているコンポーネント情報（図３２参照）において、選択された親コンポーネントが「親コンポーネント名」として設定されており、グループ化されて非表示になっているコンポーネントを展開して表示するように、親コンポーネントとグループ化されるコンポーネントとを関連づけておく。一方、当該コンポーネントのコンポーネント情報に除外フラグが設定されていないと判定した場合、ＮＯルート、即ち、ステップＡ１２０へ進む。そして、上述の図３１のフローチャートにおける処理と同様に、ステップＡ１２０〜Ａ１５０の処理を行なう。
【０１２４】
具体的には、まず、図３６に示すように、トランザクションログデータ可視化エンジン３２は、業務プロセス名「生産業務」を用いて、コンポーネント情報格納ＤＢ３１から、上述のトランザクションログデータ分析エンジン３０による処理結果を含むコンポーネント情報（図３２参照）を読み出す（ステップＡ１０）。
次に、トランザクションログデータ可視化エンジン３２は、「開始」を描画する（ステップＡ２０；図３３参照）。
【０１２５】
次に、トランザクションログデータ可視化エンジン３２は、コンポーネント情報格納ＤＢ３１から読み出されたコンポーネント情報（図３２参照）のうち、トランザクションＩＤ「０００１」に含まれるコンポーネント名「注文作成」というコンポーネントが既に描画されているか否かを判定する（ステップＡ３０）。この結果、コンポーネント名「注文作成」というコンポーネントは描画されていないと判定し、ＮＯルートへ進み、コンポーネント名「注文作成」というコンポーネントを描画し（ステップＡ５０；図３３参照）、ステップＡ６０へ進む。次に、ステップＡ６０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文作成」というコンポーネントのコンポーネント情報の「前のコンポーネント名」が設定されていないと判定し、ＮＯルートへ進み、「開始」から当該コンポーネントであるコンポーネント名「注文作成」というコンポーネントへの矢印を描画し（ステップＡ７０；図３３参照）、ステップＡ２００へ進む。次に、ステップＡ２００で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文作成」というコンポーネントのコンポーネント情報に除外フラグとして「Ｙ」が設定されていないと判定し、ＮＯルート、即ち、ステップＡ１２０へ進む。そして、ステップＡ１２０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文作成」のコンポーネント情報の「次のコンポーネント名」として「注文確認」が設定されていると判定して、ＹＥＳルート、即ち、ステップＡ１４０へ進む。そして、ステップＡ１４０で、トランザクションログデータ可視化エンジン３２は、「次のコンポーネント名」として設定されている「注文確認」というコンポーネント、及び、当該コンポーネントであるコンポーネント名「注文作成」から次のコンポーネントであるコンポーネント名「注文確認」への矢印を描画し（図３５参照）、ステップＡ１５０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＡ３０へ戻る。
【０１２６】
次に、トランザクションログデータ可視化エンジン３２は、トランザクションＩＤ「０００１」に含まれるコンポーネント名「注文作成」というコンポーネントのコンポーネント情報の「次のコンポーネント名」に設定されているコンポーネント名「注文確認」というコンポーネントが既に描画されているか否かを判定する（ステップＡ３０）。この結果、コンポーネント名「注文確認」というコンポーネントは既に描画されていると判定し、ＹＥＳルートへ進み、ステップＡ４０で、矢印が描画されていないと判定して、ＮＯルート、即ち、ステップＡ６０へ進む。次に、ステップＡ６０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文確認」というコンポーネントのコンポーネント情報の「前のコンポーネント名」が設定されていると判定し、ＹＥＳルート、即ち、ステップＡ２００へ進む。次に、ステップＡ２００で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文確認」というコンポーネントのコンポーネント情報に除外フラグとして「Ｙ」が設定されていないと判定し、ＮＯルート、即ち、ステップＡ１２０へ進む。そして、ステップＡ１２０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文確認」のコンポーネント情報の「次のコンポーネント名」として「注文受付」が設定されていると判定して、ＹＥＳルート、即ち、ステップＡ１４０へ進む。そして、ステップＡ１４０で、トランザクションログデータ可視化エンジン３２は、「次のコンポーネント名」として設定されている「注文受付」というコンポーネント、及び、当該コンポーネントであるコンポーネント名「注文確認」から次のコンポーネントであるコンポーネント名「注文受付」への矢印を描画し（図３５参照）、ステップＡ１５０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＡ３０へ戻る。
【０１２７】
次に、トランザクションログデータ可視化エンジン３２は、トランザクションＩＤ「０００１」に含まれるコンポーネント名「注文確認」というコンポーネントのコンポーネント情報の「次のコンポーネント名」に設定されているコンポーネント名「注文受付」というコンポーネントが既に描画されているか否かを判定する（ステップＡ３０）。この結果、コンポーネント名「注文受付」というコンポーネントは既に描画されていると判定し、ＹＥＳルートへ進み、ステップＡ４０で、矢印が描画されていないと判定して、ＮＯルート、即ち、ステップＡ６０へ進む。次に、ステップＡ６０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文受付」というコンポーネントのコンポーネント情報の「前のコンポーネント名」が設定されていると判定し、ＹＥＳルート、即ち、ステップＡ２００へ進む。次に、ステップＡ２００で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文受付」というコンポーネントのコンポーネント情報に除外フラグとして「Ｙ」が設定されていると判定し、ＹＥＳルート、即ち、ステップＡ２１０へ進む。そして、ステップＡ２１０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文受付」というコンポーネントのコンポーネント情報の「親コンポーネント名」に設定されているコンポーネント名「注文確認」というコンポーネントを親コンポーネントとして強調表示されるようにするとともに、当該コンポーネントであるコンポーネント名「注文受付」というコンポーネントを、親コンポーネントであるコンポーネント名「注文確認」に関連づけてグループ化して非表示とする。ここでは、利用者端末７を操作することで、親コンポーネントであるコンポーネント名「注文確認」というコンポーネントが選択された場合に、トランザクションログデータ可視化エンジン３２が、コンポーネント情報格納ＤＢ３１に格納されているコンポーネント情報（図３２参照）において、選択された親コンポーネントが「親コンポーネント名」として設定されており、グループ化されて非表示になっているコンポーネント名「注文受付」というコンポーネントを展開して表示するように、親コンポーネントであるコンポーネント名「注文確認」というコンポーネントとグループ化されるコンポーネントであるコンポーネント名「注文受付」というコンポーネントとを関連づけておく。例えば、描画されているコンポーネント名「注文受付」というコンポーネントを、他のメモリ領域に退避させて非表示とし、これを親コンポーネントであるコンポーネント名「注文確認」というコンポーネントに関連づけておけば良い。次に、ステップＡ１２０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文受付」のコンポーネント情報の「次のコンポーネント名」として「見積書新規作成」が設定されていると判定して、ＹＥＳルート、即ち、ステップＡ１４０へ進む。そして、ステップＡ１４０で、トランザクションログデータ可視化エンジン３２は、「次のコンポーネント名」として設定されている「見積書新規作成」というコンポーネント、及び、当該コンポーネントであるコンポーネント名「注文受付」から次のコンポーネントであるコンポーネント名「見積書新規作成」への矢印を描画し（図３５参照）、ステップＡ１５０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＡ３０へ戻る。
【０１２８】
次に、トランザクションログデータ可視化エンジン３２は、トランザクションＩＤ「０００１」に含まれるコンポーネント名「注文受付」というコンポーネントのコンポーネント情報の「次のコンポーネント名」に設定されているコンポーネント名「見積書新規作成」というコンポーネントが既に描画されているか否かを判定する（ステップＡ３０）。この結果、コンポーネント名「見積書新規作成」というコンポーネントは既に描画されていると判定し、ＹＥＳルートへ進み、ステップＡ４０で、矢印が描画されていないと判定して、ＮＯルート、即ち、ステップＡ６０へ進む。次に、ステップＡ６０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「見積書新規作成」というコンポーネントのコンポーネント情報の「前のコンポーネント名」が設定されていると判定し、ＹＥＳルート、即ち、ステップＡ２００へ進む。次に、ステップＡ２００で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「見積書新規作成」というコンポーネントのコンポーネント情報に除外フラグとして「Ｙ」が設定されていないと判定し、ＮＯルート、即ち、ステップＡ１２０へ進む。そして、ステップＡ１２０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「見積書新規作成」のコンポーネント情報の「次のコンポーネント名」として「見積書確認」が設定されていると判定して、ＹＥＳルート、即ち、ステップＡ１４０へ進む。そして、ステップＡ１４０で、トランザクションログデータ可視化エンジン３２は、「次のコンポーネント名」として設定されている「見積書確認」というコンポーネント、及び、当該コンポーネントであるコンポーネント名「見積書新規作成」から次のコンポーネントであるコンポーネント名「見積書確認」への矢印を描画し（図３５参照）、ステップＡ１５０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＡ３０へ戻る。
【０１２９】
次に、トランザクションログデータ可視化エンジン３２は、トランザクションＩＤ「０００１」に含まれるコンポーネント名「見積書新規作成」というコンポーネントのコンポーネント情報の「次のコンポーネント名」に設定されているコンポーネント名「見積書確認」というコンポーネントが既に描画されているか否かを判定する（ステップＡ３０）。この結果、コンポーネント名「見積書確認」というコンポーネントは既に描画されていると判定し、ＹＥＳルートへ進み、ステップＡ４０で、矢印が描画されていないと判定して、ＮＯルート、即ち、ステップＡ６０へ進む。次に、ステップＡ６０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「見積書確認」というコンポーネントのコンポーネント情報の「前のコンポーネント名」が設定されていると判定し、ＹＥＳルート、即ち、ステップＡ２００へ進む。次に、ステップＡ２００で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「見積書確認」というコンポーネントのコンポーネント情報に除外フラグとして「Ｙ」が設定されていないと判定し、ＮＯルート、即ち、ステップＡ１２０へ進む。そして、ステップＡ１２０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「見積書確認」のコンポーネント情報の「次のコンポーネント名」として「見積書修正」が設定されていると判定して、ＹＥＳルート、即ち、ステップＡ１４０へ進む。そして、ステップＡ１４０で、トランザクションログデータ可視化エンジン３２は、「次のコンポーネント名」として設定されている「見積書修正」というコンポーネント、及び、当該コンポーネントであるコンポーネント名「見積書確認」から次のコンポーネントであるコンポーネント名「見積書修正」への矢印を描画し（図３５参照）、ステップＡ１５０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＡ３０へ戻る。
【０１３０】
次に、トランザクションログデータ可視化エンジン３２は、トランザクションＩＤ「０００１」に含まれるコンポーネント名「見積書確認」というコンポーネントのコンポーネント情報の「次のコンポーネント名」に設定されているコンポーネント名「見積書修正」というコンポーネントが既に描画されているか否かを判定する（ステップＡ３０）。この結果、コンポーネント名「見積書修正」というコンポーネントは既に描画されていると判定し、ＹＥＳルートへ進み、ステップＡ４０で、矢印が描画されていないと判定して、ＮＯルート、即ち、ステップＡ６０へ進む。次に、ステップＡ６０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「見積書修正」というコンポーネントのコンポーネント情報の「前のコンポーネント名」が設定されていると判定し、ＹＥＳルート、即ち、ステップＡ２００へ進む。次に、ステップＡ２００で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「見積書修正」というコンポーネントのコンポーネント情報に除外フラグとして「Ｙ」が設定されていると判定し、ＹＥＳルート、即ち、ステップＡ２１０へ進む。そして、ステップＡ２１０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「見積書修正」というコンポーネントのコンポーネント情報の「親コンポーネント名」に設定されているコンポーネント名「見積書確認」というコンポーネントを親コンポーネントとして強調表示されるようにするとともに、当該コンポーネントであるコンポーネント名「見積書修正」というコンポーネントを、親コンポーネントであるコンポーネント名「見積書確認」に関連づけてグループ化して非表示とする。ここでは、利用者端末７を操作することで、親コンポーネントであるコンポーネント名「見積書確認」というコンポーネントが選択された場合に、トランザクションログデータ可視化エンジン３２が、コンポーネント情報格納ＤＢ３１に格納されているコンポーネント情報（図３２参照）において、選択された親コンポーネントが「親コンポーネント名」として設定されており、グループ化されて非表示になっているコンポーネント名「見積書修正」というコンポーネントを展開して表示するように、親コンポーネントであるコンポーネント名「見積書確認」というコンポーネントとグループ化されるコンポーネントであるコンポーネント名「見積書修正」というコンポーネントとを関連づけておく。例えば、描画されているコンポーネント名「見積書修正」というコンポーネントを、他のメモリ領域に退避させて非表示とし、これを親コンポーネントであるコンポーネント名「見積書確認」というコンポーネントに関連づけておけば良い。次に、ステップＡ１２０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「見積書修正」のコンポーネント情報の「次のコンポーネント名」として「注文更新」が設定されていると判定して、ＹＥＳルート、即ち、ステップＡ１４０へ進む。そして、ステップＡ１４０で、トランザクションログデータ可視化エンジン３２は、「次のコンポーネント名」として設定されている「注文更新」というコンポーネント、及び、当該コンポーネントであるコンポーネント名「見積書修正」から次のコンポーネントであるコンポーネント名「注文更新」への矢印を描画し（図３５参照）、ステップＡ１５０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＡ３０へ戻る。
【０１３１】
次に、トランザクションログデータ可視化エンジン３２は、トランザクションＩＤ「０００１」に含まれるコンポーネント名「見積書修正」というコンポーネントのコンポーネント情報の「次のコンポーネント名」に設定されているコンポーネント名「注文更新」というコンポーネントが既に描画されているか否かを判定する（ステップＡ３０）。この結果、コンポーネント名「注文更新」というコンポーネントは既に描画されていると判定し、ＹＥＳルートへ進み、ステップＡ４０で、矢印が描画されていないと判定して、ＮＯルート、即ち、ステップＡ６０へ進む。次に、ステップＡ６０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文更新」というコンポーネントのコンポーネント情報の「前のコンポーネント名」が設定されていると判定し、ＹＥＳルート、即ち、ステップＡ２００へ進む。次に、ステップＡ２００で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文更新」というコンポーネントのコンポーネント情報に除外フラグとして「Ｙ」が設定されていると判定し、ＹＥＳルート、即ち、ステップＡ２１０へ進む。そして、ステップＡ２１０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文更新」というコンポーネントを、親コンポーネントであるコンポーネント名「見積書確認」に関連づけてグループ化して非表示とする。ここでは、利用者端末７を操作することで、親コンポーネントであるコンポーネント名「見積書確認」というコンポーネントが選択された場合に、トランザクションログデータ可視化エンジン３２が、コンポーネント情報格納ＤＢ３１に格納されているコンポーネント情報（図３２参照）において、選択された親コンポーネントが「親コンポーネント名」として設定されており、グループ化されて非表示になっているコンポーネント名「注文更新」というコンポーネントを展開して表示するように、親コンポーネントであるコンポーネント名「見積書確認」というコンポーネントとグループ化されるコンポーネントであるコンポーネント名「注文更新」というコンポーネントとを関連づけておく。例えば、描画されているコンポーネント名「注文更新」というコンポーネントを、他のメモリ領域に退避させて非表示とし、これを親コンポーネントであるコンポーネント名「見積書確認」というコンポーネントに関連づけておけば良い。次に、ステップＡ１２０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文更新」のコンポーネント情報の「次のコンポーネント名」が設定されていないと判定して、ＮＯルート、即ち、ステップＡ１３０へ進む。そして、ステップＡ１３０で、トランザクションログデータ可視化エンジン３２は、「終了」、及び、当該コンポーネントであるコンポーネント名「注文更新」から「終了」への矢印を描画し（図３５参照）、ステップＡ１５０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＡ３０へ戻る。
【０１３２】
次に、トランザクションログデータ可視化エンジン３２は、コンポーネント情報格納ＤＢ３１から読み出されたコンポーネント情報（図３２参照）のうち、トランザクションＩＤ「０００２」に含まれるコンポーネント名「注文作成」というコンポーネントが既に描画されているか否かを判定する（ステップＡ３０）。この結果、コンポーネント名「注文作成」というコンポーネントは既に描画されていると判定し、ＹＥＳルートへ進み、ステップＡ４０で、矢印が描画されていると判定して、ＹＥＳルートへ進み、ステップＡ１５０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＡ３０へ戻る。
【０１３３】
次に、トランザクションログデータ可視化エンジン３２は、トランザクションＩＤ「０００２」に含まれるコンポーネント名「注文作成」というコンポーネントのコンポーネント情報の「次のコンポーネント名」に設定されているコンポーネント名「注文確認」というコンポーネントが既に描画されているか否かを判定する（ステップＡ３０）。この結果、コンポーネント名「注文確認」というコンポーネントは既に描画されていると判定し、ＹＥＳルートへ進み、ステップＡ４０で、矢印が描画されていると判定して、ＹＥＳルートへ進み、ステップＡ１５０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＡ３０へ戻る。
【０１３４】
次に、トランザクションログデータ可視化エンジン３２は、トランザクションＩＤ「０００２」に含まれるコンポーネント名「注文確認」というコンポーネントのコンポーネント情報の「次のコンポーネント名」に設定されているコンポーネント名「注文受付」というコンポーネントが既に描画されているか否かを判定する（ステップＡ３０）。この結果、コンポーネント名「注文受付」というコンポーネントは既に描画されていると判定し、ＹＥＳルートへ進み、ステップＡ４０で、矢印が描画されていると判定して、ＹＥＳルートへ進み、ステップＡ１５０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＡ３０へ戻る。
【０１３５】
次に、トランザクションログデータ可視化エンジン３２は、トランザクションＩＤ「０００２」に含まれるコンポーネント名「注文受付」というコンポーネントのコンポーネント情報の「次のコンポーネント名」に設定されているコンポーネント名「見積書新規作成」というコンポーネントが既に描画されているか否かを判定する（ステップＡ３０）。この結果、コンポーネント名「見積書新規作成」というコンポーネントは既に描画されていると判定し、ＹＥＳルートへ進み、ステップＡ４０で、矢印が描画されていると判定して、ＹＥＳルートへ進み、ステップＡ１５０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＡ３０へ戻る。
【０１３６】
次に、トランザクションログデータ可視化エンジン３２は、トランザクションＩＤ「０００２」に含まれるコンポーネント名「見積書新規作成」というコンポーネントのコンポーネント情報の「次のコンポーネント名」に設定されているコンポーネント名「見積書確認」というコンポーネントが既に描画されているか否かを判定する（ステップＡ３０）。この結果、コンポーネント名「見積書確認」というコンポーネントは既に描画されていると判定し、ＹＥＳルートへ進み、ステップＡ４０で、矢印が描画されていると判定して、ＹＥＳルートへ進み、ステップＡ１５０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＡ３０へ戻る。
【０１３７】
次に、トランザクションログデータ可視化エンジン３２は、コンポーネント情報格納ＤＢ３１から読み出されたコンポーネント情報（図３２参照）のうち、トランザクションＩＤ「０００３」に含まれるコンポーネント名「注文照会」というコンポーネントが既に描画されているか否かを判定する（ステップＡ３０）。この結果、コンポーネント名「注文照会」というコンポーネントは描画されていないと判定し、ＮＯルートへ進み、コンポーネント名「注文照会」というコンポーネントを描画し（ステップＡ５０；図３５参照）、ステップＡ６０へ進む。次に、ステップＡ６０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文照会」というコンポーネントのコンポーネント情報の「前のコンポーネント名」が設定されていないと判定し、ＮＯルートへ進み、「開始」から当該コンポーネントであるコンポーネント名「注文照会」というコンポーネントへの矢印を描画し（ステップＡ７０；図３５参照）、ステップＡ２００へ進む。次に、ステップＡ２００で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文照会」というコンポーネントのコンポーネント情報に除外フラグとして「Ｙ」が設定されていないと判定し、ＮＯルート、即ち、ステップＡ１２０へ進む。そして、ステップＡ１２０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文照会」のコンポーネント情報の「次のコンポーネント名」として「注文検索」が設定されていると判定して、ＹＥＳルート、即ち、ステップＡ１４０へ進む。そして、ステップＡ１４０で、トランザクションログデータ可視化エンジン３２は、「次のコンポーネント名」として設定されている「注文検索」というコンポーネント、及び、当該コンポーネントであるコンポーネント名「注文照会」から次のコンポーネントであるコンポーネント名「注文検索」への矢印を描画し（図３５参照）、ステップＡ１５０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＡ３０へ戻る。
【０１３８】
次に、トランザクションログデータ可視化エンジン３２は、トランザクションＩＤ「０００１」に含まれるコンポーネント名「注文照会」というコンポーネントのコンポーネント情報の「次のコンポーネント名」に設定されているコンポーネント名「注文検索」というコンポーネントが既に描画されているか否かを判定する（ステップＡ３０）。この結果、コンポーネント名「注文検索」というコンポーネントは既に描画されていると判定し、ＹＥＳルートへ進み、ステップＡ４０で、矢印が描画されていないと判定して、ＮＯルート、即ち、ステップＡ６０へ進む。次に、ステップＡ６０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文検索」というコンポーネントのコンポーネント情報の「前のコンポーネント名」が設定されていると判定し、ＹＥＳルート、即ち、ステップＡ２００へ進む。次に、ステップＡ２００で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文検索」というコンポーネントのコンポーネント情報に除外フラグとして「Ｙ」が設定されていると判定し、ＹＥＳルート、即ち、ステップＡ２１０へ進む。そして、ステップＡ２１０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文検索」というコンポーネントを、親コンポーネントであるコンポーネント名「注文照会」に関連づけてグループ化して非表示とする。ここでは、利用者端末７を操作することで、親コンポーネントであるコンポーネント名「注文照会」というコンポーネントが選択された場合に、トランザクションログデータ可視化エンジン３２が、コンポーネント情報格納ＤＢ３１に格納されているコンポーネント情報（図３２参照）において、選択された親コンポーネントが「親コンポーネント名」として設定されており、グループ化されて非表示になっているコンポーネント名「注文検索」というコンポーネントを展開して表示するように、親コンポーネントであるコンポーネント名「注文照会」というコンポーネントとグループ化されるコンポーネントであるコンポーネント名「注文検索」というコンポーネントとを関連づけておく。例えば、描画されているコンポーネント名「注文検索」というコンポーネントを、他のメモリ領域に退避させて非表示とし、これを親コンポーネントであるコンポーネント名「注文照会」というコンポーネントに関連づけておけば良い。次に、ステップＡ１２０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文検索」のコンポーネント情報の「次のコンポーネント名」として「見積書流用作成」が設定されていると判定して、ＹＥＳルート、即ち、ステップＡ１４０へ進む。そして、ステップＡ１４０で、トランザクションログデータ可視化エンジン３２は、「次のコンポーネント名」として設定されている「見積書流用作成」というコンポーネント、及び、当該コンポーネントであるコンポーネント名「注文検索」から次のコンポーネントであるコンポーネント名「見積書流用作成」への矢印を描画し（図３５参照）、ステップＡ１５０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＡ３０へ戻る。
【０１３９】
次に、トランザクションログデータ可視化エンジン３２は、トランザクションＩＤ「０００３」に含まれるコンポーネント名「注文検索」というコンポーネントのコンポーネント情報の「次のコンポーネント名」に設定されているコンポーネント名「見積書流用作成」というコンポーネントが既に描画されているか否かを判定する（ステップＡ３０）。この結果、コンポーネント名「見積書流用作成」というコンポーネントは既に描画されていると判定し、ＹＥＳルートへ進み、ステップＡ４０で、矢印が描画されていないと判定して、ＮＯルート、即ち、ステップＡ６０へ進む。次に、ステップＡ６０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「見積書流用作成」というコンポーネントのコンポーネント情報の「前のコンポーネント名」が設定されていると判定し、ＹＥＳルート、即ち、ステップＡ２００へ進む。次に、ステップＡ２００で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「見積書流用作成」というコンポーネントのコンポーネント情報に除外フラグとして「Ｙ」が設定されていないと判定し、ＮＯルート、即ち、ステップＡ１２０へ進む。そして、ステップＡ１２０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「見積書流用作成」のコンポーネント情報の「次のコンポーネント名」として「見積書確認」が設定されていると判定して、ＹＥＳルート、即ち、ステップＡ１４０へ進む。そして、ステップＡ１４０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「見積書流用作成」から次のコンポーネントであるコンポーネント名「見積書確認」への矢印を描画し（図３５参照）、ステップＡ１５０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＡ３０へ戻る。
【０１４０】
次に、トランザクションログデータ可視化エンジン３２は、トランザクションＩＤ「０００３」に含まれるコンポーネント名「見積書流用作成」というコンポーネントのコンポーネント情報の「次のコンポーネント名」に設定されているコンポーネント名「見積書確認」というコンポーネントが既に描画されているか否かを判定する（ステップＡ３０）。この結果、コンポーネント名「見積書確認」というコンポーネントは既に描画されていると判定し、ＹＥＳルートへ進み、ステップＡ４０で、矢印が描画されていると判定して、ＹＥＳルートへ進み、ステップＡ１５０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＡ３０へ戻る。
【０１４１】
次に、トランザクションログデータ可視化エンジン３２は、コンポーネント情報格納ＤＢ３１から読み出されたコンポーネント情報（図３２参照）のうち、トランザクションＩＤ「０００４」に含まれるコンポーネント名「注文作成」というコンポーネントが既に描画されているか否かを判定する（ステップＡ３０）。この結果、コンポーネント名「注文作成」というコンポーネントは既に描画されていると判定し、ＹＥＳルートへ進み、ステップＡ４０で、矢印が描画されていると判定して、ＹＥＳルートへ進み、ステップＡ１５０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＡ３０へ戻る。
【０１４２】
次に、トランザクションログデータ可視化エンジン３２は、トランザクションＩＤ「０００４」に含まれるコンポーネント名「注文作成」というコンポーネントのコンポーネント情報の「次のコンポーネント名」に設定されているコンポーネント名「注文確認」というコンポーネントが既に描画されているか否かを判定する（ステップＡ３０）。この結果、コンポーネント名「注文確認」というコンポーネントは既に描画されていると判定し、ＹＥＳルートへ進み、ステップＡ４０で、矢印が描画されていないと判定して、ＮＯルート、即ち、ステップＡ６０へ進む。次に、ステップＡ６０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文確認」というコンポーネントのコンポーネント情報の「前のコンポーネント名」が設定されていると判定し、ＹＥＳルート、即ち、ステップＡ２００へ進む。次に、ステップＡ２００で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文確認」というコンポーネントのコンポーネント情報に除外フラグとして「Ｙ」が設定されていないと判定し、ＮＯルート、即ち、ステップＡ１２０へ進む。そして、ステップＡ１２０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文確認」のコンポーネント情報の「次のコンポーネント名」として「注文差戻」が設定されていると判定して、ＹＥＳルート、即ち、ステップＡ１４０へ進む。そして、ステップＡ１４０で、トランザクションログデータ可視化エンジン３２は、「次のコンポーネント名」として設定されている「注文差戻」というコンポーネント、及び、当該コンポーネントであるコンポーネント名「注文確認」から次のコンポーネントであるコンポーネント名「注文差戻」への矢印を描画し（図３５参照）、ステップＡ１５０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＡ３０へ戻る。
【０１４３】
次に、トランザクションログデータ可視化エンジン３２は、トランザクションＩＤ「０００４」に含まれるコンポーネント名「注文確認」というコンポーネントのコンポーネント情報の「次のコンポーネント名」に設定されているコンポーネント名「注文差戻」というコンポーネントが既に描画されているか否かを判定する（ステップＡ３０）。この結果、コンポーネント名「注文差戻」というコンポーネントは既に描画されていると判定し、ＹＥＳルートへ進み、ステップＡ４０で、矢印が描画されていないと判定して、ＮＯルート、即ち、ステップＡ６０へ進む。次に、ステップＡ６０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文差戻」というコンポーネントのコンポーネント情報の「前のコンポーネント名」が設定されていると判定し、ＹＥＳルート、即ち、ステップＡ２００へ進む。次に、ステップＡ２００で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文差戻」というコンポーネントのコンポーネント情報に除外フラグとして「Ｙ」が設定されていると判定し、ＹＥＳルート、即ち、ステップＡ２１０へ進む。そして、ステップＡ２１０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文差戻」というコンポーネントを、親コンポーネントであるコンポーネント名「注文確認」に関連づけてグループ化して非表示とする。ここでは、利用者端末７を操作することで、親コンポーネントであるコンポーネント名「注文確認」というコンポーネントが選択された場合に、トランザクションログデータ可視化エンジン３２が、コンポーネント情報格納ＤＢ３１に格納されているコンポーネント情報（図３２参照）において、選択された親コンポーネントが「親コンポーネント名」として設定されており、グループ化されて非表示になっているコンポーネント名「注文差戻」というコンポーネントを展開して表示するように、親コンポーネントであるコンポーネント名「注文確認」というコンポーネントとグループ化されるコンポーネントであるコンポーネント名「注文差戻」というコンポーネントとを関連づけておく。例えば、描画されているコンポーネント名「注文差戻」というコンポーネントを、他のメモリ領域に退避させて非表示とし、これを親コンポーネントであるコンポーネント名「注文確認」というコンポーネントに関連づけておけば良い。次に、ステップＡ１２０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文差戻」のコンポーネント情報の「次のコンポーネント名」として「注文元連絡」が設定されていると判定して、ＹＥＳルート、即ち、ステップＡ１４０へ進む。そして、ステップＡ１４０で、トランザクションログデータ可視化エンジン３２は、「次のコンポーネント名」として設定されている「注文元連絡」というコンポーネント、及び、当該コンポーネントであるコンポーネント名「注文差戻」から次のコンポーネントであるコンポーネント名「注文元連絡」への矢印を描画し（図３５参照）、ステップＡ１５０で全てのコンポーネントについて処理を行なっていないと判定し、ステップＡ３０へ戻る。
【０１４４】
次に、トランザクションログデータ可視化エンジン３２は、トランザクションＩＤ「０００４」に含まれるコンポーネント名「注文差戻」というコンポーネントのコンポーネント情報の「次のコンポーネント名」に設定されているコンポーネント名「注文元連絡」というコンポーネントが既に描画されているか否かを判定する（ステップＡ３０）。この結果、コンポーネント名「注文元連絡」というコンポーネントは既に描画されていると判定し、ＹＥＳルートへ進み、ステップＡ４０で、矢印が描画されていないと判定して、ＮＯルート、即ち、ステップＡ６０へ進む。次に、ステップＡ６０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文元連絡」というコンポーネントのコンポーネント情報の「前のコンポーネント名」が設定されていると判定し、ＹＥＳルート、即ち、ステップＡ２００へ進む。次に、ステップＡ２００で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文元連絡」というコンポーネントのコンポーネント情報に除外フラグとして「Ｙ」が設定されていると判定し、ＹＥＳルート、即ち、ステップＡ２１０へ進む。そして、ステップＡ２１０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文元連絡」というコンポーネントを、親コンポーネントであるコンポーネント名「注文確認」に関連づけてグループ化して非表示とする。ここでは、利用者端末７を操作することで、親コンポーネントであるコンポーネント名「注文確認」というコンポーネントが選択された場合に、トランザクションログデータ可視化エンジン３２が、コンポーネント情報格納ＤＢ３１に格納されているコンポーネント情報（図３２参照）において、選択された親コンポーネントが「親コンポーネント名」として設定されており、グループ化されて非表示になっているコンポーネント名「注文元連絡」というコンポーネントを展開して表示するように、親コンポーネントであるコンポーネント名「注文確認」というコンポーネントとグループ化されるコンポーネントであるコンポーネント名「注文元連絡」というコンポーネントとを関連づけておく。例えば、描画されているコンポーネント名「注文元連絡」というコンポーネントを、他のメモリ領域に退避させて非表示とし、これを親コンポーネントであるコンポーネント名「注文確認」というコンポーネントに関連づけておけば良い。次に、ステップＡ１２０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文元連絡」のコンポーネント情報の「次のコンポーネント名」が設定されていないと判定して、ＮＯルート、即ち、ステップＡ１３０へ進む。そして、ステップＡ１３０で、トランザクションログデータ可視化エンジン３２は、当該コンポーネントであるコンポーネント名「注文元連絡」から「終了」への矢印を描画し（図３５参照）、ステップＡ１５０で全てのコンポーネントについて処理を行なったと判定して、処理を終了する。これにより、トランザクションＩＤ「０００１」〜「０００４」の全トランザクション、即ち、生産業務プロセスを実現するためのトランザクションにおける複数のコンポーネントの実行順序を示す情報として、図３５に示すような情報が生成される。このようにして生成された実行順序情報は、利用者端末７へ送られ、利用者端末７の表示装置の画面上に表示される。
【０１４５】
なお、上述のトランザクションログデータ可視化エンジン３２による処理、即ち、図３６のフローチャートに示す処理は適宜変更することもできる。例えば、上述のトランザクションログデータ可視化エンジン３２による処理におけるステップＡ２１０の処理に代えて、除外フラグが設定されているコンポーネントを描画したものを消去することで非表示とする処理を行なうようにしても良い。また、図３６のステップＡ１４０で、次のコンポーネントを描画する際に、次のコンポーネントのコンポーネント情報に除外フラグが設定されている場合には、次のコンポーネントを描画しないようにし、この場合、ステップＡ３０でコンポーネントが描画されていないと判定した場合に、さらに、除外フラグが設定されているかを判定して、除外フラグが設定されている場合には、コンポーネントを描画しないようにし、さらに、ステップＡ２１０で、上述の図３１のフローチャートのＡ９０と同様の処理を行なうようにしても良い。また、図３６のステップＡ２００、Ａ２１０を、ステップＡ６０、Ａ７０の前に行なうようにしても良い。
【０１４６】
したがって、本実施形態にかかる分析装置及び分析方法によれば、業務プロセスを実現するトランザクションにおける、プログラムの呼び出し関係情報を含む業務に関するログデータを分析し、分析結果の冗長性を低減した、より有用な分析結果を提供できるという利点がある。このため、業務システム２を含む情報処理システムにこの分析装置１を組み込むことで、より有用な分析結果を得ることが可能となり、これにより、対策をとるべきコンポーネントを絞り込み、業務プロセスの改善や最適化を容易に行なうことが可能となる。
【０１４７】
なお、本発明は、上述した実施形態に記載した構成に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形することが可能である。
例えば、上述の実施形態及び変形例では、トランザクションログデータ分析装置１を、コンピュータにトランザクションログデータ分析プログラムをインストールしたものとして構成しているが、上述の実施形態及び変形例における処理をコンピュータに実行させるトランザクションログデータ分析プログラム（上述のような機能をコンピュータに実現させるためのトランザクションログデータ分析プログラム）は、コンピュータ読取可能な記録媒体に格納した状態で提供される場合もある。
【０１４８】
ここで、記録媒体には、例えば半導体メモリなどのメモリ，磁気ディスク，光ディスク［例えばＣＤ（Compact Disc）−ＲＯＭ，ＤＶＤ（Digital Versatile Disk），ブルーレイディスク等］，光磁気ディスク（ＭＯ：Magneto optical Disc）等のプログラムを記録することができるものが含まれる。なお、磁気ディスク，光ディスク，光磁気ディスク等を可搬型記録媒体ともいう。
【０１４９】
この場合、ドライブ装置を介して、可搬型記録媒体からトランザクションログデータ分析プログラムを読み出し、読み出されたトランザクションログデータ分析プログラムを記憶装置にインストールすることになる。これにより、上述の実施形態及び変形例で説明したトランザクションログデータ分析装置及びトランザクションログデータ分析方法が実現され、上述の実施形態及び変形例の場合と同様に、記憶装置にインストールされたトランザクションログデータ分析プログラムを、ＣＰＵがメモリ上に読み出して実行することで、上述の実施形態及び変形例の各処理が行なわれることになる。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。
【０１５０】
また、上述の実施形態及び変形例における処理をコンピュータに実行させるトランザクションログデータ分析プログラムは、例えば伝送媒体としてのネットワーク（例えばインターネット，公衆回線や専用回線等の通信回線等）を介して提供される場合もある。
例えば、プログラム提供者が例えばサーバなどの他のコンピュータ上で提供しているトランザクションログデータ分析プログラムを、例えばインターネットやＬＡＮ等のネットワーク及び通信インタフェースを介して、記憶装置にインストールしても良い。これにより、上述の実施形態及び変形例で説明したトランザクションログデータ分析装置及びトランザクションログデータ分析方法が実現され、上述の実施形態及び変形例の場合と同様に、記憶装置にインストールされたトランザクションログデータ分析プログラムを、ＣＰＵがメモリ上に読み出して実行することで、上述の実施形態及び変形例の各処理が行なわれることになる。なお、コンピュータは、例えばサーバなどの他のコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１５１】
以下、上述の実施形態及び変形例に関し、更に、付記を開示する。
（付記１）
コンピュータに、
業務プロセスを実現するために複数のプログラムが実行されるトランザクションにおける、プログラムの呼び出し関係情報を含む業務に関するログデータを分析し、
分析された情報に基づいて、直前に実行されたプログラムと直後に実行されたプログラムが一つずつであるプログラムを除いて、前記トランザクションにおける前記複数のプログラムの実行順序を示す情報を生成する、
処理を実行させることを特徴とする分析プログラム。
【０１５２】
（付記２）
前記分析された情報は、属性情報を含み、
前記実行順序を示す情報を生成する処理において、直前に実行されたプログラムと直後に実行されたプログラムが一つずつである前記プログラムのうち、直前に実行されたプログラムと属性情報が変わっているプログラムは残して、前記実行順序を示す情報を生成する処理を前記コンピュータに実行させることを特徴とする、付記１に記載の分析プログラム。
【０１５３】
（付記３）
前記実行順序を示す情報を生成する処理において、前記トランザクションの最初に実行されたプログラム、及び、直前に実行されたプログラムがなく、かつ、直後に実行されたプログラムがないプログラムを残して、前記実行順序を示す情報を生成する処理を前記コンピュータに実行させることを特徴とする、付記１又は２に記載の分析プログラム。
【０１５４】
（付記４）
コンピュータが、
業務プロセスを実現するために複数のプログラムが実行されるトランザクションにおける、プログラムの呼び出し関係情報を含む業務に関するログデータを分析し、
分析された情報に基づいて、直前に実行されたプログラムと直後に実行されたプログラムが一つずつであるプログラムを除いて、前記トランザクションにおける前記複数のプログラムの実行順序を示す情報を生成する、
処理を実行することを特徴とする分析方法。
【０１５５】
（付記５）
前記分析された情報は、属性情報を含み、
前記実行順序を示す情報を生成する処理において、直前に実行されたプログラムと直後に実行されたプログラムが一つずつである前記プログラムのうち、直前に実行されたプログラムと属性情報が変わっているプログラムは残して、前記実行順序を示す情報を生成する処理を前記コンピュータが実行することを特徴とする、付記４に記載の分析方法。
【０１５６】
（付記６）
前記実行順序を示す情報を生成する処理において、前記トランザクションの最初に実行されたプログラム、及び、直前に実行されたプログラムがなく、かつ、直後に実行されたプログラムがないプログラムを残して、前記実行順序を示す情報を生成する処理を前記コンピュータが実行することを特徴とする、付記４又は５に記載の分析方法。
【０１５７】
（付記７）
業務プロセスを実現するために複数のプログラムが実行されるトランザクションにおける、プログラムの呼び出し関係情報を含む業務に関するログデータを分析する分析部と、
前記分析部によって分析された情報に基づいて、直前に実行されたプログラムと直後に実行されたプログラムが一つずつであるプログラムを除いて、前記トランザクションにおける前記複数のプログラムの実行順序を示す情報を生成する生成部とを備えることを特徴とする分析装置。
【０１５８】
（付記８）
前記分析部によって分析された情報は、属性情報を含み、
前記生成部は、直前に実行されたプログラムと直後に実行されたプログラムが一つずつである前記プログラムのうち、直前に実行されたプログラムと属性情報が変わっているプログラムは残して、前記実行順序を示す情報を生成することを特徴とする、付記７に記載の分析装置。
【０１５９】
（付記９）
前記生成部は、前記トランザクションの最初に実行されたプログラム、及び、直前に実行されたプログラムがなく、かつ、直後に実行されたプログラムがないプログラムを残して、前記実行順序を示す情報を生成することを特徴とする、付記７又は８に記載の分析装置。
【符号の説明】
【０１６０】
１  トランザクションログデータ分析装置
２  業務システム
３  情報処理システム
４  業務端末
５  トランザクションログデータ収集装置
６  トランザクションログデータ格納ＤＢ
７  利用者端末
８〜１０  ネットワーク
１１  注文作成コンポーネント
１２  注文確認コンポーネント
１３  注文受付コンポーネント
１４  注文ＤＢ
１５  見積書新規作成コンポーネント
１６  見積書確認コンポーネント
１７  見積書修正コンポーネント
１８  見積書ＤＢ
１９  注文更新コンポーネント
２０  調達Ｗｅｂサービスコンポーネント
２１  承認コンポーネント
２２  製造ＤＢ
２３  製造ＤＢコンポーネント
２４  受注登録コンポーネント
３０  トランザクションログデータ分析エンジン（分析部）
３１  コンポーネント情報格納ＤＢ
３２  トランザクションログデータ可視化エンジン（生成部）
１０１  メモリ
１０２  ＣＰＵ
１０３  表示制御部
１０４  表示装置
１０５  記憶装置
１０６  入力装置
１０７  ドライブ装置
１０８  可搬型記録媒体
１０９  通信制御部
１１０  バス
【図１】
2014049031.tif 000003
【図２】
2014049031.tif 000004
【図３】
2014049031.tif 000005
【図４】
2014049031.tif 000006
【図５】
2014049031.tif 000007
【図６】
2014049031.tif 000008
【図７】
2014049031.tif 000009
【図８】
2014049031.tif 000010
【図９】
2014049031.tif 000011
【図１０】
2014049031.tif 000012
【図１１】
2014049031.tif 000013
【図１２】
2014049031.tif 000014
【図１３】
2014049031.tif 000015
【図１４】
2014049031.tif 000016
【図１５】
2014049031.tif 000017
【図１６】
2014049031.tif 000018
【図１７】
2014049031.tif 000019
【図１８】
2014049031.tif 000020
【図１９】
2014049031.tif 000021
【図２０】
2014049031.tif 000022
【図２１】
2014049031.tif 000023
【図２２】
2014049031.tif 000024
【図２３】
2014049031.tif 000025
【図２４】
2014049031.tif 000026
【図２５】
2014049031.tif 000027
【図２６】
2014049031.tif 000028
【図２７】
2014049031.tif 000029
【図２８】
2014049031.tif 000030
【図２９】
2014049031.tif 000031
【図３０】
2014049031.tif 000032
【図３１】
2014049031.tif 000033
【図３２】
2014049031.tif 000034
【図３３】
2014049031.tif 000035
【図３４】
2014049031.tif 000036
【図３５】
2014049031.tif 000037
【図３６】
2014049031.tif 000038
【図３７】
2014049031.tif 000039