(57)【特許請求の範囲】
【請求項１】
コンピュータに、
それぞれが複数のステップを有する第１のフロー図と第２のフロー図の入力を受け付け、
受け付けた前記第１のフロー図と前記第２のフロー図とがそれぞれ有するステップのステップ名を参照し、前記第１のフロー図のステップ名と、前記第２のフロー図のステップ名との名前の類似度を算出し、
前記第１のフロー図が有する各ステップにつき、前記第１のフロー図内での相対位置をそれぞれ算出し、前記第２のフロー図が有する各ステップにつき、前記第２のフロー図内での相対位置をそれぞれ算出し、
算出した前記類似度と、算出した前記第１のフロー図内での相対位置および前記第２のフロー図内での相対位置とに基づいて、前記第１のフロー図が有するいずれかのステップに対応する前記第２のフロー図が有するステップを特定する、
処理を実行させることを特徴とするフロー図比較プログラム。
【請求項２】
前記類似度の算出では、前記第１のフロー図のステップ名と、前記第２のフロー図のステップ名との名前が似ているほど、前記類似度を小さく算出し、
前記対応するステップの特定では、前記類似度を示す値が所定値以下であり、かつ、前記相対位置を示す値の差分値が所定値以内であるステップ同士を対応するステップであると特定することを特徴とする請求項１記載のフロー図比較プログラム。
【請求項３】
前記対応するステップの特定では、前記第１のフロー図に対する前記第２のフロー図の前記類似度が同じ組み合わせが複数存在する場合、前記相対位置を示す値の差分値が最も少ない組み合わせのステップ同士を対応するステップであると特定することを特徴とする請求項１または２に記載のフロー図比較プログラム。
【請求項４】
前記コンピュータに、さらに、前記各フロー図内での前記ステップの前記相対位置に基づいて、前記第１のフロー図と前記第２のフロー図それぞれにつき、前記ステップが属するグループを少なくとも２つ設定し、
前記対応するステップの特定では、前記グループが異なるステップ同士を、特定対象から除外することを特徴とする請求項１ないし３のいずれかに記載のフロー図比較プログラム。
【請求項５】
前記類似度の算出では、前記第１のフロー図のステップ名と、前記第２のフロー図のステップ名との名前が似ているほど、前記類似度を小さく算出し、
前記対応するステップの特定では、前記類似度と、前記相対位置を示す値の差分値との和が小さいステップ同士から順に対応するステップであると特定することを特徴とする請求項１ないし４のいずれかに記載のフロー図比較プログラム。
【請求項６】
コンピュータが、
それぞれが複数のステップを有する第１のフロー図と第２のフロー図の入力を受け付け、
受け付けた前記第１のフロー図と前記第２のフロー図とがそれぞれ有するステップのステップ名を参照し、前記第１のフロー図のステップ名と、前記第２のフロー図のステップ名との名前の類似度を算出し、
前記第１のフロー図が有する各ステップにつき、前記第１のフロー図内での相対位置をそれぞれ算出し、前記第２のフロー図が有する各ステップにつき、前記第２のフロー図内での相対位置をそれぞれ算出し、
算出した前記類似度と、算出した前記第１のフロー図内での相対位置および前記第２のフロー図内での相対位置とに基づいて、前記第１のフロー図が有するいずれかのステップに対応する前記第２のフロー図が有するステップを特定する、
ことを特徴とするフロー図比較方法。
【請求項７】
それぞれが複数のステップを有する第１のフロー図と第２のフロー図の入力を受け付ける入力受付部と、
受け付けた前記第１のフロー図と前記第２のフロー図とがそれぞれ有するステップのステップ名を参照し、前記第１のフロー図のステップ名と、前記第２のフロー図のステップ名との名前の類似度を算出する第１の算出部と、
前記第１のフロー図が有する各ステップにつき、前記第１のフロー図内での相対位置をそれぞれ算出し、前記第２のフロー図が有する各ステップにつき、前記第２のフロー図内での相対位置をそれぞれ算出する第２の算出部と、
算出した前記類似度と、算出した前記第１のフロー図内での相対位置および前記第２のフロー図内での相対位置とに基づいて、前記第１のフロー図が有するいずれかのステップに対応する前記第２のフロー図が有するステップを特定する特定部と、
を有することを特徴とするフロー図比較装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はフロー図比較プログラム、フロー図比較方法およびフロー図比較装置に関する。
【背景技術】
【０００２】
業務が行われる流れを示す業務フロー図を、コンピュータを使用して上流工程の設計書等から作成し、作成した業務フロー図を使用して社内システムの業務プロセスを管理する方法が知られている。
【０００３】
業務フロー図は、保守の際に人手により少しずつ変更が加えられる場合がある。このため、業務フロー図を改善する場合等には、まず現状の業務分析を行う。具体的には、作成される業務フロー図と、現状の業務システムから抽出する実フロー図とを比較し、現状の業務が設計書通りに運用されているか否かを判断する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−３２６３１２号公報
【特許文献２】特開２００７−２５７９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
人間が複数の業務フロー図を追って確認する際に、フロー図の規模や複雑度、差異のレベル（フロー図の分割数、ノードの見た目の位置、フロー図の粒度、用語の違い）によっては、対象ノードの抽出漏れや、それによる同一性判断の誤り、作業効率が悪い等の問題がある。
【０００６】
本発明はこのような点に鑑みてなされたものであり、対応するステップの把握を容易にすることができるフロー図比較プログラム、フロー図比較方法およびフロー図比較装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、フロー図比較プログラムが提供される。このフロー図比較プログラムは、コンピュータに、入力受付手順、第１の算出手順、第２の算出手順、および、特定手順を実行させる。
【０００８】
入力受付手順では、それぞれが複数のステップを有する第１のフロー図と第２のフロー図の入力を受け付ける。
第１の算出手順では、入力受付手順により受け付けた第１のフロー図と第２のフロー図とがそれぞれ有するステップのステップ名を参照し、第１のフロー図のステップ名と、第２のフロー図のステップ名との名前の類似度を算出する。
【０００９】
第２の算出手順では、第１のフロー図が有する各ステップにつき、第１のフロー図内での相対位置をそれぞれ算出し、第２のフロー図が有する各ステップにつき、第２のフロー図内での相対位置をそれぞれ算出する。
【００１０】
特定手順では、第１の算出手順によって算出した類似度と、第２の算出手順によって算出した相対位置とに基づいて、第１のフロー図が有するいずれかのステップに対応する第２のフロー図が有するステップを特定する。
【発明の効果】
【００１１】
開示のフロー図比較プログラムによれば、対応するステップの把握を容易にすることができる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態のフロー図比較装置の概要を示す図である。
【図２】第２の実施の形態のフロー図比較装置のハードウェアの一構成例を示す図である。
【図３】フロー図比較装置の機能を示すブロック図である。
【図４】入力されるフロー図の一例を示す図である。
【図５】第２の実施の形態の同一ノード候補ペア抽出部の処理を示すフローチャートである。
【図６】フロー図の各ノードのグループ分けを説明する図である。
【図７】グループの算出方法を示すフローチャートである。
【図８】第２の実施の形態のレーベンシュタイン距離の算出結果を示す図である。
【図９】抽出した同一ノード候補ペアを構成するノードの組み合わせを丸印で囲い、同一ノード候補ペアの抽出対象から除外したノードの組み合わせを斜線で示した図である。
【図１０】各フロー図中における各ノードの相対位置の計算式および計算結果を示す図である。
【図１１】抽出したノードの組み合わせを丸印で囲い、同一ノード候補ペアの抽出対象から除外したノードの組み合わせを斜線で示したテーブルを示す図である。
【図１２】図４に示すフロー図における同一ノード候補ペアの確定結果を示す図である。
【図１３】第３の実施の形態のフロー図を示す図である。
【図１４】第３の実施の形態の同一ノード候補ペア抽出部の処理を示すフローチャートである。
【図１５】フロー図Ｃの各ノードについて、前・中・後の３グループに分けるための、ノード位置を数値で表したものとグループ分け結果を示す図である。
【図１６】フロー図Ｃにおける各ノードの相対位置を示す図である。
【図１７】第３の実施の形態のレーベンシュタイン距離の算出結果を示す図である。
【図１８】フロー図Ｃの各ノードにおける相対位置についてフロー図Ｂのノードの相対位置との差分の算出結果を示す図である。
【図１９】フロー図の各ノードについて、プロセス名と相対位置の差分の加算結果を示す図である。
【図２０】第３の実施の形態の同一ノード候補ペアの抽出結果を示す図である。
【発明を実施するための形態】
【００１３】
以下、実施の形態を、図面を参照して詳細に説明する。
まず、実施の形態のフロー図比較装置について説明し、その後、実施の形態をより具体的に説明する。
【００１４】
＜第１の実施の形態＞
図１は、第１の実施の形態のフロー図比較装置の概要を示す図である。
実施の形態のフロー図比較装置（コンピュータ）１は、入力受付部１ａと、記憶部１ｂと、第１の算出部１ｃと、第２の算出部１ｄと、特定部１ｅとを有している。
【００１５】
入力受付部１ａは、それぞれが複数のステップを有する第１のフロー図２ａと第２のフロー図２ｂの入力を受け付ける。
第１のフロー図２ａと第２のフロー図２ｂは、データの流れ（フロー）を視覚的に表現する図である。
【００１６】
第１のフロー図２ａは、例えば、設計書に基づいて生成したフロー図である。第２のフロー図２ｂは、例えば、設計書に基づいて作成されたプログラムに基づいて生成したフロー図である。
【００１７】
第２のフロー図２ｂは、第１のフロー図２ａに比べ、ステップ名Ｂが、ステップ名Ｂａに書き換えられ、ステップ名Ｂｂの工程が追加されている点が、第１のフロー図２ａとは異なっている。
【００１８】
また、第１のフロー図２ａのステップ数は１０であり、第２のフロー図２ｂのステップ数は１１であるものとする。
記憶部１ｂは、入力受付部１ａが受け付けた第１のフロー図２ａと第２のフロー図２ｂを格納する。
【００１９】
第１の算出部１ｃは、入力受付手順により受け付けた第１のフロー図２ａと第２のフロー図２ｂとがそれぞれ有するステップのステップ名を参照し、第１のフロー図２ａのステップ名と、第２のフロー図２ｂのステップ名との名前の類似度を算出する。
【００２０】
ステップ名の名前の類似度は、例えば、第１のフロー図２ａのステップ名と、第２のフロー図２ｂのステップ名とのレーベンシュタイン距離を算出し、算出した値を類似度に換算することにより求めることができる。この場合、算出した値が小さいほど、類似度は高くなる。
【００２１】
ここで、レーベンシュタイン距離は、２つのノードの文字列（ステップ名）がどの程度異なっているかを示す数値である。
レーベンシュタイン距離の算出方法は、既知のレーベンシュタイン距離のアルゴリズムを用いることができるため詳しい説明を省略するが、一例を挙げると、“見積回答”を“見積書発送”に変形する場合には、以下に示すように最低でも３回の手順が必要とされるので、２文字列間のレーベンシュタイン距離は３となる。
【００２２】
見積回答→見積発答（“回”を“発”に置換）→見積発送（“答”を“送”に置換）→見積書発送（“書”を挿入して終了）。
第１の算出部１ｃは、全てのステップ名間の類似度を算出する。具体的には、第１の算出部１ｃは、第１のフロー図２ａのステップ名Ａについて、第２のフロー図２ｂのステップ名Ａ、ステップ名Ｂａ、ステップ名Ｂｂ、ステップ名Ｃ、・・・、ステップ名Ｚとの類似度をそれぞれ算出する。また、第１のフロー図２ａのステップ名Ｂについて、第２のフロー図２ｂのステップ名Ａ、ステップ名Ｂａ、ステップ名Ｂｂ、ステップ名Ｃ、・・・、ステップ名Ｚとの類似度をそれぞれ算出する。
【００２３】
例えば、第１のフロー図２ａのステップ名Ａと、第２のフロー図２ｂのステップ名Ａとのレーベンシュタイン距離は０となる。また、第１のフロー図２ａのステップ名Ａと、第２のフロー図２ｂのステップ名Ａの次のステップのステップ名Ｂａとのレーベンシュタイン距離は、１以上となる。
【００２４】
図１では、ステップ名Ａ間のレーベンシュタイン距離「０」、第１のフロー図２ａのステップ名Ｂと第２のフロー図２ｂのステップ名Ｂａ間のレーベンシュタイン距離の算出結果「１」、および、第１のフロー図２ａのステップ名Ｂと第２のフロー図２ｂのステップ名Ｂｂのレーベンシュタイン距離の算出結果「１」を図示している。
【００２５】
第２の算出部１ｄは、第１のフロー図２ａが有する各ステップにつき、第１のフロー図２ａ内での相対位置をそれぞれ算出し、第２のフロー図２ｂが有する各ステップにつき、第２のフロー図２ｂ内での相対位置をそれぞれ算出する。
【００２６】
図１では、各ステップの相対位置を、各ステップの右側の括弧内の数字で表している。前述したように、第１のフロー図２ａのステップ数は１０であり、第２のフロー図２ｂのステップ数は１１であるため、上位のステップから降順に相対位置を示す番号を割り振っている。
【００２７】
特定部１ｅは、第１の算出部１ｃが算出した類似度と、第２の算出部１ｄが算出した相対位置とに基づいて、第１のフロー図２ａが有するいずれかのステップに対応する第２のフロー図２ｂが有するステップを特定する。
【００２８】
例えば、特定部１ｅは、第１の算出部１ｃが算出した類似度が高い順に、第１のフロー図２ａが有するいずれかのステップに対応する第２のフロー図２ｂが有するステップを特定する。前述したように、「類似度が高い順」は、「レーベンシュタイン距離の算出結果が小さい順」を指す。類似度が同じステップ名が複数存在する場合は、例えば、第２の算出部１ｄが算出した相対位置の近い順に、第１のフロー図２ａが有するいずれかのステップに対応する第２のフロー図２ｂが有するステップを特定する。
【００２９】
特定部１ｅは、まず、第１の算出部１ｃが算出した類似度「０」であるステップ名同士を対応するステップであると特定する。
具体的には、図１に示すように、第１のフロー図２ａが有するステップ名Ａのステップに対応する第２のフロー図２ｂが有するステップ名Ａのステップを対応するステップであると特定する。
【００３０】
そして、ステップ名Ｂのステップについては、類似度が同じ「１」のステップ名Ｂａとステップ名Ｂｂとが存在するので、第２の算出部１ｄが算出した相対位置の近い（相対位置を示す値が「９」同士の）ステップ名Ｂｂを、第１のフロー図２ａのステップ名Ｂに対応するステップであると特定する。この方法については、第２の実施の形態にて詳述する。
【００３１】
また他の例では、特定部１ｅは、第１の算出部１ｃが算出したステップ名間の類似度と、第２の算出部１ｄが算出した相対位置の近さを示す値との和を求めることにより、第１のフロー図２ａが有するいずれかのステップに対応する第２のフロー図２ｂが有するステップを特定することもできる。相対位置の近さは、例えば、それぞれのステップの相対位置の差分を取ることにより求める。この方法については、第３の実施の形態にて詳述する。
【００３２】
また、特定部１ｅは、第１のフロー図２ａのステップに対応すると特定した第２のフロー図２ｂステップを図示しないモニタ等に出力することもできる。
このフロー図比較装置１によれば、入力受付部１ａにより、それぞれが複数のステップを有する第１のフロー図２ａと第２のフロー図２ｂの入力が受け付けられる。
【００３３】
第１の算出部１ｃにより、入力受付部１ａによって受け付けた第１のフロー図２ａと第２のフロー図２ｂとがそれぞれ有するステップのステップ名を参照し、第１のフロー図２ａのステップ名と、第２のフロー図２ｂのステップ名との類似度が算出される。
【００３４】
第２の算出部１ｄにより、第１のフロー図２ａが有する各ステップにつき、第１のフロー図２ａ内での相対位置をそれぞれ算出し、第２のフロー図２ｂが有する各ステップにつき、第２のフロー図２ｂ内での相対位置がそれぞれ算出される。
【００３５】
特定部１ｅにより、第１の算出部１ｃによって算出した類似度と、第２の算出部１ｄによって算出した相対位置とに基づいて、第１のフロー図２ａが有するいずれかのステップに対応する第２のフロー図２ｂが有するステップが特定される。
【００３６】
このように、類似度と、相対位置とに基づいて、第１のフロー図２ａのステップに対応する第２のフロー図２ｂのステップを特定することで、ステップ名が多少異なっていても対応するステップである可能性の高いステップ同士を容易に把握することができる。
【００３７】
なお、本実施の形態では、全てのステップ名間について類似度を算出し、特定部１ｅの処理対象とした。しかし、これに限らず、類似度が低い、すなわち、レーベンシュタイン距離が所定値以上のステップ名間については、特定部１ｅの処理対象から除外するようにしてもよい。これにより、特定部１ｅの演算量を減少させることができる。
【００３８】
なお、入力受付部１ａ、第１の算出部１ｃ、第２の算出部１ｄ、および、特定部１ｅは、フロー図比較装置１が有するＣＰＵ（Central Processing Unit）が備える機能により実現することができる。また、記憶部１ｂは、フロー図比較装置１が有するＲＡＭ（Random Access Memory）やＨＤＤ（ＨＤＤ:Hard Disk Drive）等が備えるデータ記憶領域により実現することができる。
【００３９】
以下、実施の形態をより具体的に説明する。
＜第２の実施の形態＞
図２は、第２の実施の形態のフロー図比較装置のハードウェアの一構成例を示す図である。
【００４０】
フロー図比較装置１０は、ＣＰＵ１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０８を介してＲＡＭ１０２と複数の周辺機器が接続されている。
ＲＡＭ１０２は、フロー図比較装置１０の主記憶装置として使用される。ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。
【００４１】
バス１０８に接続されている周辺機器としては、ハードディスクドライブ１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、および通信インタフェース１０７がある。
【００４２】
ＨＤＤ１０３は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ１０３は、フロー図比較装置１０の二次記憶装置として使用される。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００４３】
グラフィック処理装置１０４には、モニタ１０４ａが接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１０４ａの画面に表示させる。モニタ１０４ａとしては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００４４】
入力インタフェース１０５には、キーボード１０５ａとマウス１０５ｂとが接続されている。入力インタフェース１０５は、キーボード１０５ａやマウス１０５ｂから送られてくる信号をＣＰＵ１０１に送信する。なお、マウス１０５ｂは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００４５】
光学ドライブ装置１０６は、レーザ光などを利用して、光ディスク２００に記録されたデータの読み取りを行う。光ディスク２００は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク２００には、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００４６】
通信インタフェース１０７は、ネットワーク３０に接続されている。通信インタフェース１０７は、ネットワーク３０を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００４７】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。このようなハードウェア構成のフロー図比較装置１０内には、以下のような機能が設けられる。
【００４８】
図３は、フロー図比較装置の機能を示すブロック図である。
フロー図比較装置１０は、フロー図読込部１１と、第１モデル情報記憶部１２と、第２モデル情報記憶部１３と、同一ノード候補ペア抽出部１４とを有している。
【００４９】
なお、フロー図読込部１１と同一ノード候補ペア抽出部１４は、ＣＰＵ１０１により実現することができる。また、第１モデル情報記憶部１２と、第２モデル情報記憶部１３は、ＲＡＭ１０２により実現することができる。
【００５０】
フロー図読込部１１は、比較対象のフロー図を読み込む。図３では、フロー図Ａ、および、フロー図Ｂを読み込んでいる。
フロー図Ａ、および、フロー図Ｂは、例えば、ユーザがキーボード１０５ａやマウス１０５ｂを操作することにより作成したものや、光ディスク２００に記憶され、光学ドライブ装置１０６が読み取ることにより取得したもの等が挙げられる。
【００５１】
また、フロー図のファイル形式としては、例えば、ＸＭＩ（XML Metadata Interchange）形式（モデルを、各種ツール、リポジトリ、ミドルウェア間でＸＭＬ（eXtensible Markup Language）文書によって交換するための標準規格）や、ＤＯＴ形式（グラフを表現するためのデータ記述言語）等、既知の形式が挙げられる。
【００５２】
図４は、入力されるフロー図の一例を示す図である。
図４に示すフロー図Ａ、および、フロー図Ｂは、開始から終了に至るまでの処理を示す名前（プロセス名）が付けられたノードが、処理の遷移を示す矢印で接続されている。
【００５３】
フロー図Ａは、引合、見積書送付、見積回答、受注伝票入力、在庫確認、作業指示、発注伝票入力、受付・発送、入荷確認の順に処理が遷移し、その後、終了する。
フロー図Ｂは、受付、受付承諾、見積書発送、見積書回答、注文伝票、在庫チェック、発注伝票、発送、確認の順に処理が遷移し、その後、終了する。
【００５４】
再び図３に戻って説明する。
また、フロー図読込部１１は、フロー図Ａ、および、フロー図Ｂを読み込むと、読み込んだフロー図を解析し、フロー図Ａの各処理の接続関係を示す情報（モデル情報）、および、フロー図Ｂの接続情報を作成する。
【００５５】
そして、フロー図読込部１１は、作成したフロー図Ａのモデル情報を第１モデル情報記憶部１２に格納する。作成したフロー図Ｂのモデル情報を第２モデル情報記憶部１３に格納する。
【００５６】
同一ノード候補ペア抽出部１４は、第１モデル情報記憶部１２に格納されているフロー図Ａのモデル情報と、第２モデル情報記憶部１３に格納されているフロー図Ｂのモデル情報を取り出す。２つのモデル情報を取り出すタイミングは特に限定されないが、例えば、２つのモデル情報が第１モデル情報記憶部１２および第２モデル情報記憶部１３に格納されると即座に取り出すようにしてもよいし、ユーザからの同一ノード候補抽出指示を受け付けた後に、取り出すようにしてもよい。
【００５７】
同一ノード候補ペア抽出部１４は、２つのモデル情報を取り出すと、フロー図Ａの各ノードの同一ノードの候補となるノードを、フロー図Ｂのノードから抽出する。具体的には、フロー図Ａのあるノード（比較対象ノード）のプロセス名に対するフロー図Ｂのプロセス名の類似度から同一ノードの候補となるノードを抽出する。なお、類似度の算出方法については、後述する。
【００５８】
以下、フロー図Ａの比較対象ノードと、その比較対象ノードと同一ノードの候補となるノードとの組み合わせを「同一ノード候補ペア」と言う。
また、同一ノード候補ペア抽出部１４は、フロー図Ａの比較対象ノードのプロセス名に対する類似度が同じプロセス名が、フロー図Ｂに複数存在する場合は、フロー図Ａの比較対象ノードの位置に対するフロー図Ｂのノードの位置（相対位置）の近さを利用して同一ノード候補ペアを抽出する。なお、相対位置の決定方法は、後述する。
【００５９】
同一ノード候補ペア抽出部１４は、抽出した同一ノード候補ペアから１つの同一ノード候補ペアをモニタ１０４ａに表示する対象として確定する。そして、確定した同一ノード候補ペアをモニタ１０４ａに表示する。
【００６０】
以降、同一ノード候補ペアを抽出する方式について説明する。
図５は、第２の実施の形態の同一ノード候補ペア抽出部の処理を示すフローチャートである。
【００６１】
［ステップＳ１］  同一ノード候補ペア抽出部１４は、フロー図の各ノードをグループ分けする。ノードのグループ分けの方法は、後に詳述する。
［ステップＳ２］  同一ノード候補ペア抽出部１４は、フロー図の各ノードの組み合わせ毎のレーベンシュタイン距離を算出する。
【００６２】
［ステップＳ３］  同一ノード候補ペア抽出部１４は、有効なノードの組み合わせが存在するか否かを判断する。有効なノードの組み合わせとは、本実施の形態では以下のノードの組み合わせ以外の組み合わせを言う。
【００６３】
［有効ではないノードの組み合わせ］
（１）プロセス名が、１文字も一致しないノードの組み合わせ（レーベンシュタイン距離が「プロセス名が長いほうの文字列長以上」のノード）。
（２）フロー図中のノードを複数のグループに分けて、離れた位置であると予め定めたグループに存在するノードの組み合わせ。例えば、前・中・後の３グループに分けた場合は、前と後の組み合わせとなるノードの組み合わせを有効ではないノードの組み合わせであると判断する。
【００６４】
有効なノードの組み合わせが存在する場合（ステップＳ３のＹｅｓ）、ステップＳ４に遷移する。有効なノードの組み合わせが存在しない場合（ステップＳ３のＮｏ）、図５の処理を終了する。
【００６５】
［ステップＳ４］  同一ノード候補ペア抽出部１４は、ステップＳ３にて有効なノードの組み合わせが存在すると判断したノードの組み合わせの同一ノード候補ペアを抽出する。有効なノードの組み合わせが複数存在する場合には、ステップＳ２にて算出したレーベンシュタイン距離が小さい（名前の類似度がより高い）ノードの組み合わせの１つの同一ノード候補ペアを抽出する。レーベンシュタイン距離が等しい有効なノードの組み合わせが複数存在する場合には、レーベンシュタイン距離が等しい有効なノードの組み合わせの数だけ同一ノード候補ペアを抽出する。その後、ステップＳ５に遷移する。
【００６６】
［ステップＳ５］  同一ノード候補ペア抽出部１４は、ステップＳ４にて抽出した同一ノード候補ペアが複数存在するか否かを判断する。抽出した同一ノード候補ペアが複数存在する場合（ステップＳ５のＹｅｓ）、ステップＳ６に遷移する。抽出した同一ノード候補ペアが１つだけである場合（ステップＳ５のＮｏ）、ステップＳ７に遷移する。
【００６７】
［ステップＳ６］  同一ノード候補ペア抽出部１４は、フロー図中の相対位置が最も近い数値のノードを同一ノード候補ペアとして選択する。その後、ステップＳ７に遷移する。
【００６８】
［ステップＳ７］  同一ノード候補ペア抽出部１４は、抽出した同一ノード候補ペアをモニタ１０４ａに表示する対象に確定する。その後、ステップＳ３に遷移し、未だ同一ノード候補ペアを抽出していないノードの組み合わせについてステップＳ３以降の処理を行う。
【００６９】
以下、図５に示した処理の具体例を説明する。
＜ノードのグループ分け＞
まず、ステップＳ１のフロー図の各ノードのグループ分けを説明する。
【００７０】
図６は、フロー図の各ノードのグループ分けを説明する図である。
図６（ａ）は、フロー図Ａのノードのグループ分けを行う際に使用するテーブルＴ１を示す図である。図６（ｂ）は、フロー図Ｂのノードのグループ分けを行う際に使用するテーブルＴ２を示す図である。
【００７１】
このテーブルＴ１、Ｔ２は、例えば、同一ノード候補ペア抽出部１４が作成し、ＲＡＭ１０２等に記憶しておくことができる。
図６は、フロー図の各ノードについて、前・中・後の３グループに分ける例を示しているが、グループの数は、３つに限定されず、２つ、または、４つ以上でもよい。また、グループの数は、例えば、ノードの数に応じて決定することができる。
【００７２】
テーブルＴ１、Ｔ２には、それぞれ、プロセス名、ノード位置、グループの欄が設けられている。横方向に並べられた情報同士が互いに関連づけられている。
プロセス名の欄には、フロー図の各ノードのプロセス名が格納されている。
【００７３】
ノード位置の欄には、以下に示す式（１）で算出された、フロー図内での各ノードの相対位置を示す値が格納されている。
ノード位置＝終了から対象ノードへの最小ルートの遷移数−開始から対象ノードへの最小ルートの遷移数・・・（１）
グループの欄には、ノード位置に基づいて決定されたグループを識別する名前（前・中・後）が格納されている。
【００７４】
以下、グループ名が「前」のグループを「前グループ」、グループ名が「中」のグループを「中グループ」、グループ名が「後」のグループを「後グループ」と言う。
グループは、以下に示す算出方法で決定する。
【００７５】
図７は、グループの算出方法を示すフローチャートである。
［ステップＳ１ａ］  同一ノード候補ペア抽出部１４は、次式（２）でグループ幅を算出する。
【００７６】
グループ幅＝（最大ノード位置−最小ノード位置）／３・・・（２）
その後、ステップＳ１ｂに遷移する。
［ステップＳ１ｂ］  同一ノード候補ペア抽出部１４は、次式（３）で前グループのノード位置の閾値を算出する。
【００７７】
前グループのノード位置の閾値＝最大ノード位置−グループ幅・・・（３）
その後、ステップＳ１ｃに遷移する。
［ステップＳ１ｃ］  同一ノード候補ペア抽出部１４は、次式（４）で中グループのノード位置の閾値を算出する。
【００７８】
中グループのノード位置の閾値＝前グループのノード位置の閾値−グループ幅・・・（４）
その後、ステップＳ１ｄに遷移する。
【００７９】
［ステップＳ１ｄ］  同一ノード候補ペア抽出部１４は、前グループのノードを決定する。具体的には、ノードのノード位置を示す値が、前グループのノード位置の閾値以上のノードを前グループのノードに決定する。その後、ステップＳ１ｅに遷移する。
【００８０】
［ステップＳ１ｅ］  同一ノード候補ペア抽出部１４は、中グループのノードを決定する。具体的には、前グループに含まれない、かつ、ノードのノード位置を示す値≧中グループのノード位置の閾値のノードを中グループのノードに決定する。その後、ステップＳ１ｆに遷移する。
【００８１】
［ステップＳ１ｆ］  同一ノード候補ペア抽出部１４は、前グループ、および、中グループに含まれないノードを、後グループのノードに決定する。その後、図７に示す処理を終了する。
【００８２】
以上で、図７に示す処理の説明を終了する。
以下、図６に示すテーブルＴ１、Ｔ２のノード位置の算出方法、および、グループの決定方法の具体例を説明する。
【００８３】
フロー図Ａのプロセス名「開始」のノードのノード位置は、前述した式（１）を用いる。終了から対象ノードへの最小ルートの遷移数−開始から対象ノードへの最小ルートの遷移数＝１０−０＝１０となる。
【００８４】
また、フロー図Ａのプロセス名「引合」のノードのノード位置は、終了から対象ノードへの最小ルートの遷移数−開始から対象ノードへの最小ルートの遷移数＝９−１＝８となる。以下同様にして、図６に示すノード位置が算出される。
【００８５】
次に、グループの決定方法の具体例を説明する。
グループ幅は、前述した式（２）を用いる。グループ幅＝（最大ノード位置−最小ノード位置）／３＝（１０−（−１０））／３＝６．６７となる。
【００８６】
前グループのノード位置の閾値は、前述した式（３）を用いる。前グループのノード位置の閾値＝最大ノード位置−グループ幅＝１０−６．６７＝３．３３となる。
従って、前グループのノードは、ノード位置の値が、３．３３以上のノードになる。フロー図Ａでは、ノード位置の値が「１０」のプロセス名「開始」、ノード位置の値が「８」のプロセス名「引合」、ノード位置の値が「６」のプロセス名「見積書送付」、ノード位置の値が「４」のプロセス名「見積回答」のノードが前グループになる。
【００８７】
中グループのノード位置の閾値は、前述した式（４）を用いる。中グループのノード位置の閾値＝前グループのノード位置の閾値−グループ幅＝３．３３−６．６７＝−３．３３となる。
【００８８】
中グループのノードは、前グループに含まれない、かつ、ノード位置を示す値が、−３．３３以上のノードになる。フロー図Ａでは、ノード位置の値が「２」のプロセス名「受注伝票入力」、ノード位置の値が「０」のプロセス名「在庫確認」、ノード位置の値が「−２」のプロセス名「作業指示」のノードが中グループになる。
【００８９】
後グループのノードは、前グループ、および、中グループに含まれないノードになる。フロー図Ａでは、プロセス名「発注伝票入力」、「受付・発送」、「入荷確認」、「終了」になる。
【００９０】
＜ノードの組み合わせ毎のレーベンシュタイン距離の算出＞
次に、ステップＳ２のノードの組み合わせ毎のレーベンシュタイン距離の算出を説明する。
【００９１】
図８は、第２の実施の形態のレーベンシュタイン距離の算出結果を示す図である。
図８に示すテーブルＴ３は、フロー図Ａの各ノードのプロセス名について、フロー図Ｂの各ノードのプロセス名とのレーベンシュタイン距離の算出結果を示している。
【００９２】
例えば、フロー図Ａのプロセス名「見積書送付」と、フロー図Ｂのプロセス名「受付」とのレーベンシュタイン距離の算出結果は「４」である。
なお、図８では、有効ではないノードの組み合わせを「−」で表記している。また、プロセス名「開始」、「終了」は、処理の簡略化のため、ノードの比較対象から除外する。
【００９３】
テーブルＴ３に数値が存在していることが、有効なノードの組み合わせが存在することを示している。また、テーブルＴ３に数値が複数存在することが、有効なノードの組み合わせが複数存在することを示している。
【００９４】
＜同一ノード候補ペアの抽出＞
次に、ステップＳ４の同一ノード候補ペアの抽出を説明する。
図８に示すレーベンシュタイン距離では、「１」が最も小さい。従って、フロー図Ａのプロセス名「見積回答」のノードのレーベンシュタイン距離が「１」のフロー図Ｂのプロセス名「見積書回答」のノードを、同一ノード候補に決定する。そして、フロー図Ａのプロセス名「見積回答」のノードと、フロー図Ｂのプロセス名「見積書回答」のノードとを同一ノード候補ペアとして抽出する。
【００９５】
なお、既に抽出した同一ノード候補ペアに含まれるフロー図Ａのノードは、同一ノード候補ペアの抽出対象から除外する。例えば、図８では、フロー図Ａのプロセス名「見積回答」のノードには、他の有効なノードの組み合わせとして、レーベンシュタイン距離が「３」のプロセス名「見積書送付」のノードが存在する。しかし、既に抽出した同一ノード候補ペアに含まれるフロー図Ａのプロセス名「見積回答」のノードは、同一ノード候補ペアの抽出対象から除外する。
【００９６】
図９は、抽出した同一ノード候補ペアを構成するノードの組み合わせを丸印で囲い、同一ノード候補ペアの抽出対象から除外したノードの組み合わせを斜線で示した図である。
レーベンシュタイン距離が「１」の同一ノード候補は、フロー図Ａのプロセス名「見積回答」のノードと、フロー図Ｂのプロセス名「見積書回答」のノードの１つだけである。従って、この同一ノード候補ペアを、モニタ１０４ａに表示する対象に確定する。
【００９７】
次に、未だノードを抽出していない（斜線で示されていない）ノードの組み合わせについて、同一ノード候補ペアを、レーベンシュタイン距離の小さい順に抽出する。
具体的には、レーベンシュタイン距離が「１」のノードの組み合わせについて同一ノード候補ペアを抽出し、確定したので、次に、レーベンシュタイン距離が小さい「２」のノードの組み合わせについて同一ノード候補ペアを抽出する。図９に示すテーブルＴ３では、以下に示す複数の同一ノード候補ペアが存在する。
【００９８】
（１）フロー図Ａのプロセス名「見積書送付」のノードと、フロー図Ｂのプロセス名「見積書送付」のノードの同一ノード候補ペア
（２）フロー図Ａのプロセス名「在庫確認」のノードと、フロー図Ｂのプロセス名「確認」のノードの同一ノード候補ペア、並びに、プロセス名「入荷確認」のノードと、フロー図Ｂのプロセス名「確認」のノードの同一ノード候補ペア
（３）フロー図Ａのプロセス名「発注伝票入力」のノードと、フロー図Ｂのプロセス名「発注伝票」のノードの同一ノード候補ペア
（１）と（３）は、フロー図Ａのノードに対するフロー図Ｂのノードの組み合わせが１つだけであるため、抽出した同一ノード候補ペアをモニタ１０４ａに表示する対象として確定する。
【００９９】
（２）は、フロー図Ｂのノードに対するフロー図Ａのノードの同一ノード候補ペアが複数存在するため、各フロー図中における各ノードの相対位置に基づいて、１つの同一ノード候補ペアを選択する。
【０１００】
なお、図９の太枠で囲った領域Ｒ１、Ｒ２は、前述した有効ではないノードの組み合わせの（２）により、同一ノード候補ペアの抽出対象から除外された組み合わせを示す領域である。
【０１０１】
＜１つの同一ノード候補ペアの選択＞
２つの同一ノード候補ペアのうち、各フロー図中における各ノードの相対位置が、より近いペアを選択する。
【０１０２】
ここで、フロー図中におけるノードの相対位置は、以下の式（５）で算出する。
フロー図中におけるノードの相対位置＝開始から対象ノードまでの最短遷移数／（開始から対象ノードまでの最短遷移数＋対象ノードから終了までの最短遷移数）・・・（５）
図１０は、各フロー図中における各ノードの相対位置の計算式および計算結果を示す図である。
【０１０３】
図１０（ａ）は、フロー図Ａにおける各ノードの相対位置の算出結果を格納したテーブルＴ４を示す図である。図１０（ｂ）は、フロー図Ｂにおける各ノードの相対位置の算出結果を格納したテーブルＴ５を示す図である。
【０１０４】
テーブルＴ４に示すように、フロー図Ａのプロセス名「在庫確認」のノードのフロー図中の相対位置は、０．５である。フロー図Ａのプロセス名「入荷確認」のノードのフロー図中の相対位置は、０．９である。テーブルＴ５に示すように、フロー図Ｂのプロセス名「確認」のノードのフロー図中の相対位置は、０．９である。
【０１０５】
よって、フロー図Ｂのプロセス名「確認」のノードの同一ノード候補として、フロー図Ａ内の、フロー図Ｂのプロセス名「確認」のノードと相対位置が最も近い数値のノード、すなわち、フロー図Ａのプロセス名「入荷確認」のノードを決定する。すなわち、フロー図Ａのプロセス名「確認」のノードと、フロー図Ｂのプロセス名「入荷確認」のノードとを同一ノード候補ペアとして選択する。
【０１０６】
なお、２つの同一ノード候補ペアのうち、各フロー図中における各ノードの相対位置が同じであった場合は、両方のペアを選択する。
図１１は、抽出したノードの組み合わせを丸印で囲い、同一ノード候補ペアの抽出対象から除外したノードの組み合わせを斜線で示したテーブルを示す図である。
【０１０７】
前述したステップＳ３〜ステップＳ７の処理を、テーブルＴ３で有効なノードの組み合わせの数だけ、つまり、斜線で塗りつぶされていないノードの組み合わせで、かつ、有効な数値が存在するノードの組み合わせが残っている間繰り返す。これにより、すべてのノードの組み合わせについて、同一ノード候補ペアを確定する。
【０１０８】
図１２は、図４に示すフロー図における同一ノード候補ペアの確定結果を示す図である。
テーブルＴ６は、フロー図Ａ、フロー図Ｂの同一ノード候補ペアの確定結果を示している。
【０１０９】
例えば、フロー図Ａの欄のプロセス名「見積書送付」のノードの同一ノード候補が、フロー図Ｂの欄のプロセス名「見積書発送」であることが表示されている。
なお、図１２では、同一ノード候補ペアの確定結果のみを表示したが、これに限らず、同一ノード候補ペアのレーベンシュタイン距離も併せて表示してもよい。例えば、プロセス名「見積回答」のノードと、フロー図Ｂのプロセス名「見積書回答」のノードのレーベンシュタイン距離が「１」であることを併せて表示してもよい。
【０１１０】
以上述べたように、第２の実施の形態のフロー図比較装置１０によれば、同一ノード候補ペアを確定することで、プロセス名が多少異なっていても対応するステップである可能性の高いステップ同士をユーザが容易に把握することができる。
【０１１１】
また、確定した同一ノード候補ペアをモニタ１０４ａに表示することで、ユーザは、プロセス名の相違によるプロセスの誤判断を抑制することができる。すなわち、名前は似ていても異なるプロセス同士を対応するプロセスであると判断したり、多少名前が異なっていても同じプロセス同士を対応しないと判断したりする可能性を低くすることができる。
【０１１２】
また、有効ではないノードの組み合わせを定めて、同一ノード候補ペアの抽出対象から除外するようにした。換言すれば、類似度が低いノードの組み合わせを同一ノード候補ペアの抽出対象から除外するようにした。これにより、同一ノード候補ペア抽出部１４の演算量を減らすことができる。
【０１１３】
なお、第２の実施の形態では、２つのフロー図を用いて同一ノード候補ペアを確定する場合を説明したが、これに限らず、３つ以上のフロー図を用いて同一ノード候補ペアを確定することもできる。
【０１１４】
＜第３の実施の形態＞
次に、第３の実施の形態のフロー図比較装置について説明する。
以下、第３の実施の形態のフロー図比較装置について、前述した第２の実施の形態との相違点を中心に説明し、同様の事項については、その説明を省略する。
【０１１５】
第３の実施の形態のフロー図比較装置は、ノードの名前の近さと相対位置の差分を加算した値を利用して同一ノード候補ペアを抽出する点が、第２の実施の形態と異なっている。
【０１１６】
図１３は、第３の実施の形態のフロー図を示す図である。
フロー図Ｃは、図４に示すフロー図Ａのプロセス名「在庫確認」をプロセス名「確認」に変更したフローである。本実施の形態では、フロー図Ｃとフロー図Ｂの同一ノード候補ペアを抽出する。
【０１１７】
図１４は、第３の実施の形態の同一ノード候補ペア抽出部の処理を示すフローチャートである。
［ステップＳ１１］  同一ノード候補ペア抽出部１４は、ステップＳ１と同様の方法で、フロー図の各ノードをグループ分けする。その後、ステップＳ１２に遷移する。
【０１１８】
［ステップＳ１２］  同一ノード候補ペア抽出部１４は、ステップＳ２と同様の方法で、各ノードの組み合わせ毎のレーベンシュタイン距離を算出する。その後、ステップＳ１３に遷移する。
【０１１９】
［ステップＳ１３］  同一ノード候補ペア抽出部１４は、前述した式（５）を用いて各フロー図のノードのフロー図中の相対位置を算出する。その後、ステップＳ１４に遷移する。
【０１２０】
［ステップＳ１４］  同一ノード候補ペア抽出部１４は、ステップＳ１３にて算出した各フロー図のノードのフロー図中の相対位置を用いて、フロー図Ｃの各ノードにおける相対位置についてフロー図Ｂのノードの相対位置との差分を算出する。その後、ステップＳ１５に遷移する。
【０１２１】
［ステップＳ１５］  同一ノード候補ペア抽出部１４は、ステップＳ１２にて算出したレーベンシュタイン距離と、ステップＳ１４にて算出した相対位置の差分とを加算する。その後、ステップＳ１６に遷移する。
【０１２２】
［ステップＳ１６］  同一ノード候補ペア抽出部１４は、ステップＳ１５の加算結果の数値の小さい順に、ノードの組み合わせを同一ノード候補ペアとして抽出する。そして、抽出した同一ノード候補ペアをモニタ１０４ａに表示する対象として確定する。その後、図１４に示す処理を終了する。
【０１２３】
以上で、第３の実施の形態の同一ノード候補ペア抽出部１４の処理の説明を終了する。
図１５は、フロー図Ｃの各ノードについて、前・中・後の３グループに分けるための、ノード位置を数値で表したものとグループ分け結果を示す図である。
【０１２４】
図１５に示すテーブルＴ７は、フロー図Ｃのノード位置とグループを示している。前述したように、フロー図Ｃは、図４のフロー図Ａのプロセス名「在庫確認」をプロセス名「確認」に変更したフローであり、ノードの数はフロー図Ａと変化していない。このため、テーブルＴ７のノード位置の値とグループ割り当ては、フロー図Ａと同じになる。
【０１２５】
図１６は、フロー図Ｃにおける各ノードの相対位置を示す図である。
図１６に示すテーブルＴ８は、フロー図Ｃの相対位置を示している。
前述したように、フロー図Ｃは、図４のフロー図Ａのノード「在庫確認」を「確認」に変更したフローであり、ノードの数はフロー図Ａと変化していない。このため、テーブルＴ８の相対位置の値は、フロー図Ａと同じになる。
【０１２６】
図１７は、第３の実施の形態のレーベンシュタイン距離の算出結果を示す図である。
図１７に示すテーブルＴ９は、フロー図Ｃの各ノードのプロセス名について、フロー図Ｂの各ノードのプロセス名とのレーベンシュタイン距離の算出結果を示している。
【０１２７】
図１８は、フロー図Ｃの各ノードにおける相対位置についてフロー図Ｂのノードの相対位置との差分の算出結果を示す図である。
差分は、以下の式（６）で算出する。
【０１２８】
差分＝｜フロー図Ｃのノードの相対位置の値−フロー図Ｂのノードの相対位置の値｜×１０・・・（６）
例えば、フロー図Ｃのプロセス名「引合」のノードの相対位置の値は０．１であり、フロー図Ｂのプロセス名「受付」のノードの相対位置の値は０．１である。
【０１２９】
従って、これらのノードの相対位置の差分は、｜０．１−０．１｜×１０＝０となる。
また、他の例として、フロー図Ｃのプロセス名「引合」のノードの相対位置の値は０．１であり、フロー図Ｂのプロセス名「受付承諾」のノードの相対位置の値は０．２である。
【０１３０】
従って、これらのノードの相対位置の差分は、｜０．１−０．２｜×１０＝１となる。
図１９は、フロー図の各ノードについて、プロセス名と相対位置の差分の加算結果を示す図である。
【０１３１】
図１９に示すテーブルＴ１１の各欄には、テーブルＴ９の各欄の値と、テーブルＴ１０の各欄の値とを加算した値が格納されている。
同一ノード候補ペア抽出部１４は、テーブルＴ１１に格納されている値を、値が小さい順に抽出する。ここで、テーブルＴ１１にて最も小さい値は、「２」である。
【０１３２】
まず、同一ノード候補ペア抽出部１４は、この値「２」のノードの組み合わせについて同一ノード候補ペアを抽出する。
テーブルＴ１１では、以下に示す複数のノードの組み合わせが存在する。
【０１３３】
（１）フロー図Ｃのプロセス名「発注伝票入力」のノードと、フロー図Ｂのプロセス名「注文伝票」のノード
（２）フロー図Ｃのプロセス名「入荷確認」のノードと、フロー図Ｂのプロセス名「確認」のノード
同一ノード候補ペア抽出部１４は、フロー図Ｃのプロセス名「発注伝票入力」のノードと、フロー図Ｂのプロセス名「注文伝票」のノードを同一ノード候補ペアとして抽出する。そして、抽出した同一ノード候補ペアをモニタ１０４ａに表示する対象として確定する。また、フロー図Ｃのプロセス名「入荷確認」のノードと、フロー図Ｂのプロセス名「確認」のノードを同一ノード候補ペアとして抽出する。そして、抽出した同一ノード候補ペアをモニタ１０４ａに表示する対象として確定する。
【０１３４】
なお、既に抽出した同一ノード候補ペアに含まれるフロー図Ｃのノードは、第２の実施の形態と同様に、同一ノード候補ペアの抽出対象から除外する。例えば、図１９では、フロー図Ｃのプロセス名「発注伝票入力」のノードには、他の有効なノードの組み合わせとして、値が「６」のプロセス名「注文伝票」のノード、および、プロセス名「発送」のノードが存在する。しかし、プロセス名「注文伝票」のノード、および、プロセス名「発送」のノードは、同一ノード候補ペアの抽出対象から除外する。
【０１３５】
図２０は、第３の実施の形態の同一ノード候補ペアの抽出結果を示す図である。
テーブルＴ１２は、フロー図Ｃ、フロー図Ｂの同一ノード候補ペアの確定結果を示している。
【０１３６】
例えば、フロー図Ｃの欄のプロセス名「見積書送付」と、フロー図Ｂの欄のプロセス名「見積書発送」とが同一ノード候補ペアであることが表示されている。
この第３の実施の形態のフロー図比較装置１０によれば、第２の実施の形態のフロー図比較装置１０と同様の効果が得られる。
【０１３７】
そして、第３の実施の形態のフロー図比較装置１０によれば、さらに、ステップＳ１２にて算出したレーベンシュタイン距離と、ステップＳ１４にて算出した相対位置の差分を加算した値に基づいて、同一ノード候補ペアを確定するようにしたので、ユーザが、プロセス名にとらわれずに対応するプロセスを特定できる可能性を高めることができる。例えば、図１７に示すように、フロー図Ｃのプロセス名「確認」について、類似度が最も高いのは、フロー図Ｂのプロセス名「確認」である。しかし、相対位置の差分を組み合わせることで、フロー図Ｃの「入荷確認」とフロー図Ｂの「確認」を同一ノード候補ペアとして確定した。これにより、ユーザが、プロセス名「確認」の同一にとらわれずに対応するプロセスを特定できる可能性を高めることができる。
【０１３８】
なお、フロー図比較装置１０が行った処理が、複数の装置によって分散処理されるようにしてもよい。例えば、１つの装置が、モデル情報をモデル情報記憶部に格納する処理までを行っておき、他の装置が、モデル情報記憶部に格納されたモデル情報を用いて同一ノード候補ペアを確定するようにしてもよい。
【０１３９】
以上、本発明のフロー図比較プログラム、フロー図比較方法およびフロー図比較装置を、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
【０１４０】
また、本発明は、前述した各実施の形態のうちの、任意の２以上の構成（特徴）を組み合わせたものであってもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、フロー図比較装置１０が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１４１】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１４２】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１４３】
また、上記の処理機能の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現することもできる。
【０１４４】
以上の第１〜第３の実施の形態に関し、さらに以下の付記を開示する。
（付記１）  コンピュータに、
それぞれが複数のステップを有する第１のフロー図と第２のフロー図の入力を受け付ける入力受付手順、
前記入力受付手順により受け付けた前記第１のフロー図と前記第２のフロー図とがそれぞれ有するステップのステップ名を参照し、前記第１のフロー図のステップ名と、前記第２のフロー図のステップ名との名前の類似度を算出する第１の算出手順、
前記第１のフロー図が有する各ステップにつき、前記第１のフロー図内での相対位置をそれぞれ算出し、前記第２のフロー図が有する各ステップにつき、前記第２のフロー図内での相対位置をそれぞれ算出する第２の算出手順、
前記第１の算出手順によって算出した前記類似度と、前記第２の算出手順によって算出した前記第１のフロー図内での相対位置および前記第２のフロー図内での相対位置とに基づいて、前記第１のフロー図が有するいずれかのステップに対応する前記第２のフロー図が有するステップを特定する特定手順、
を実行させることを特徴とするフロー図比較プログラム。
【０１４５】
（付記２）  前記第１の算出手順では、前記第１のフロー図のステップ名と、前記第２のフロー図のステップ名との名前が似ているほど、前記類似度を小さく算出し、
前記特定手順では、前記類似度を示す値が所定値以下であり、かつ、前記相対位置を示す値の差分値が所定値以内であるステップ同士を対応するステップであると特定することを特徴とする付記１記載のフロー図比較プログラム。
【０１４６】
（付記３）  前記特定手順では、前記第１のフロー図に対する前記第２のフロー図の前記類似度が同じ組み合わせが複数存在する場合、前記相対位置を示す値の差分値が最も少ない組み合わせのステップ同士を対応するステップであると特定することを特徴とする付記１または２に記載のフロー図比較プログラム。
【０１４７】
（付記４）  前記コンピュータに、さらに、前記各フロー図内での前記ステップの位置に基づいて、前記第１のフロー図と前記第２のフロー図それぞれにつき、前記ステップが属するグループを少なくとも２つ設定する設定手順を実行させ、
前記特定手順では、前記グループが異なるステップ同士を、前記ステップの特定対象から除外することを特徴とする付記１ないし３のいずれかに記載のフロー図比較プログラム。
【０１４８】
（付記５）  前記第１の算出手順では、前記第１のフロー図のステップ名と、前記第２のフロー図のステップ名との名前が似ているほど、前記類似度を小さく算出し、
前記特定手順では、前記類似度と前記相対位置を示す値の差分値との和が等しいステップ同士を対応するステップであると特定することを特徴とする付記１ないし４のいずれかに記載のフロー図比較プログラム。
【０１４９】
（付記６）  前記第１のフロー図は、設計書に基づいて作成したフロー図であり、前記第２のフロー図は、前記設計書に基づいて作成されたプログラムに基づいて作成したフロー図であることを特徴とする付記１ないし５のいずれかに記載のフロー図比較プログラム。
【０１５０】
（付記７）  コンピュータが、
それぞれが複数のステップを有する第１のフロー図と第２のフロー図の入力を受け付け、
受け付けた前記第１のフロー図と前記第２のフロー図とがそれぞれ有するステップのステップ名を参照し、前記第１のフロー図のステップ名と、前記第２のフロー図のステップ名との名前の類似度を算出し、
前記第１のフロー図が有する各ステップにつき、前記第１のフロー図内での相対位置をそれぞれ算出し、前記第２のフロー図が有する各ステップにつき、前記第２のフロー図内での相対位置をそれぞれ算出し、
算出した前記類似度と、算出した前記第１のフロー図内での相対位置および前記第２のフロー図内での相対位置とに基づいて、前記第１のフロー図が有するいずれかのステップに対応する前記第２のフロー図が有するステップを特定する、
ことを特徴とするフロー図比較方法。
【０１５１】
（付記８）  それぞれが複数のステップを有する第１のフロー図と第２のフロー図の入力を受け付ける入力受付部と、
前記入力受付部により受け付けた前記第１のフロー図と前記第２のフロー図とがそれぞれ有するステップのステップ名を参照し、前記第１のフロー図のステップ名と、前記第２のフロー図のステップ名との名前の類似度を算出する第１の算出部と、
前記第１のフロー図が有する各ステップにつき、前記第１のフロー図内での相対位置をそれぞれ算出し、前記第２のフロー図が有する各ステップにつき、前記第２のフロー図内での相対位置をそれぞれ算出する第２の算出部と、
前記第１の算出部が算出した前記類似度と、前記第２の算出部が算出した前記第１のフロー図内での相対位置および前記第２のフロー図内での相対位置とに基づいて、前記第１のフロー図が有するいずれかのステップに対応する前記第２のフロー図が有するステップを特定する特定部と、
を有することを特徴とするフロー図比較装置。
【符号の説明】
【０１５２】
１、１０  フロー図比較装置
１ａ  入力受付部
１ｂ  記憶部
１ｃ  第１の算出部
１ｄ  第２の算出部
１ｅ  特定部
２ａ  第１のフロー図
２ｂ  第２のフロー図
１１  フロー図読込部
１２  第１モデル情報記憶部
１３  第２モデル情報記憶部
１４  同一ノード候補ペア抽出部
Ｔ１〜Ｔ１２  テーブル
【図１】
0005533222.tif 000002
【図２】
0005533222.tif 000003
【図３】
0005533222.tif 000004
【図４】
0005533222.tif 000005
【図５】
0005533222.tif 000006
【図６】
0005533222.tif 000007
【図７】
0005533222.tif 000008
【図８】
0005533222.tif 000009
【図９】
0005533222.tif 000010
【図１０】
0005533222.tif 000011
【図１１】
0005533222.tif 000012
【図１２】
0005533222.tif 000013
【図１３】
0005533222.tif 000014
【図１４】
0005533222.tif 000015
【図１５】
0005533222.tif 000016
【図１６】
0005533222.tif 000017
【図１７】
0005533222.tif 000018
【図１８】
0005533222.tif 000019
【図１９】
0005533222.tif 000020
【図２０】
0005533222.tif 000021