(57)【要約】【課題】フローチャートからＤＳＭを生成するプログラムを提供する。【解決手段】記録媒体に記録されているフローチャート１０を読み込む読込み手順と、読込み手順Ｓ１０で読み込まれたフローチャート１０に含まれるノード名を格納するノード配列３０と、読込み手順Ｓ１０で読み込まれたフローチャート１０に含まれるエッジの始点と終点とを対情報として格納するエッジ配列４０とを生成する配列生成手順Ｓ２０と、対情報の始点および終点についてノード配列３０におけるそれぞれの格納順位を検索する検索手順Ｓ３０と、検索手順Ｓ３０で検索された格納順位に対応するＤＳＭの列および行に対して、論理値、記号または数字であるマークを書き込んで生成したＤＳＭ２０を記録媒体に記録するＤＳＭ生成手順Ｓ４０とを、コンピュータに実行させる。【選択図】図１
2016119001.tif 000002
【特許請求の範囲】
【請求項１】
記録媒体に記録されているフローチャート（１０）を読み込む読込み手順（Ｓ１０）と、
前記読込み手順（Ｓ１０）で読み込まれた前記フローチャート（１０）に含まれるノード名を格納するノード配列（３０）と、前記読込み手順（Ｓ１０）で読み込まれたフローチャート（１０）に含まれるエッジの始点と終点とを対情報として格納するエッジ配列（４０）とを生成する配列生成手順（Ｓ２０）と、
前記対情報の始点および終点について、前記ノード配列（３０）におけるそれぞれの格納順位を検索する検索手順（Ｓ３０）と、
前記検索手順（Ｓ３０）で検索された格納順位に対応するＤＳＭ（Design Structure MatrixまたはDependency Structure Matrixと称されている）の列および行に対して、論理値、記号または数字であるマークを書き込んで生成したＤＳＭ（２０）を、記録媒体に記録するＤＳＭ生成手順（Ｓ４０）とを
コンピュータに実行させるためのＤＳＭ生成プログラム。
【請求項２】
請求項１に記載のＤＳＭ生成プログラムにおいて、
前記配列生成手順（Ｓ２０）で生成された前記エッジ配列（４０）を、前記エッジの始点をキーとして前記ノード配列（３０）に格納されたノード名順にソートするソート手順（Ｓ２６）をさらに設け、
前記検索手順（Ｓ３０）は、前記ソート手順（Ｓ２６）でソートされた後のソート後エッジ配列（４１）におけるそれぞれの格納順位を検索する
ＤＳＭ生成プログラム。
【請求項３】
請求項１に記載のＤＳＭ生成プログラムにおいて、
前記配列生成手順（Ｓ２０）で生成された前記エッジ配列（４０）を、前記エッジの終点をキーとして前記ノード配列（３０）に格納されたノード名順にソートするソート手順（Ｓ２６）をさらに設け、
前記検索手順（Ｓ３０）は、前記ソート手順（Ｓ２６）でソートされた後のソート後エッジ配列（４１）におけるそれぞれの格納順位を検索する
ＤＳＭ生成プログラム。
【請求項４】
請求項１〜３のいずれか一項に記載のＤＳＭ生成プログラムにおいて、
前記読込み手順（Ｓ１０）は、予め指定されたノードの順序を示すノード順序（１１）をさらに読み込み、
前記配列生成手順（Ｓ２０）は、前記ノード名を前記ノード順序（１１）に記載された順序でソート後ノード配列（３７）に格納し、前記対情報の始点および終点について前記ソート後ノード配列（３７）におけるそれぞれの格納順位を検索する
ＤＳＭ生成プログラム。
【請求項５】
請求項４に記載のＤＳＭ生成プログラムにおいて、
前記ノード順序（１１）は、記録媒体に記録され予め準備された前記ノードの座標を示すノード座標情報を含む座標付フローチャート（１２）を読み込む読込み手順（Ｓ１０）と、
読み込んだ前記座標付フローチャート（１２）と前記ノード座標情報から、前記ノード名を格納する前記ノード配列（３０）と、前記エッジの始点および終点から構成される前記対情報を格納する前記エッジ配列（４０）と、前記ノード名と前記ノードのＸ座標を格納するノード座標配列（３３）とを生成する配列生成手順（Ｓ２０）と、
前記ノード配列（３０）の前記ノードについて、遷移先のノードである遷移先ノードを生成し、遷移先ノード配列（３４）に格納する遷移先ノード生成手順（Ｓ５０）と、
前記遷移先ノードのＸ座標をキーとして前記遷移先ノード生成手順（Ｓ５０）で生成された遷移先ノード配列（３４）をソートする座標ソート手順（Ｓ５１）と、
前記座標ソート手順（Ｓ５１）の結果のソート後遷移先ノード配列（３５）を前記ノード配列（３０）から除き、前記ノード配列（３０）の末尾に前記ソート後遷移先ノード配列（３５）をマージする遷移先ノードマージ手順（Ｓ５２）と、
マージ結果のマージ後ノード配列（３６）のノードの順序をノード順序（１１）として記録媒体に出力するノード順序出力手順（Ｓ５３）とによって生成される
ＤＳＭ生成プログラム。
【請求項６】
手戻り付フローチャート（１３）が予め指定された手戻りエッジを含む場合には、
前記配列生成手順（Ｓ２０）は、前記ノード配列（３０）および前記エッジ配列（４０）の他に、前記手戻りエッジの始点および終点から構成される対情報を格納する手戻りエッジ配列（４２）を生成するように形成され、
前記ＤＳＭ生成手順（Ｓ４０）は、前記検索手順（Ｓ３０）で検索された格納順位と前記手戻りエッジ配列（４２）から算出される、前記手戻りエッジのみについてのマークを列および行に書き込んだ第１中間ＤＳＭ（２１）と、手戻りエッジ以外についてのマークを列および行に書き込んだ第２中間ＤＳＭ（２２）とを生成し、前記第１中間ＤＳＭ（２１）の行と列とを入れ替えたＤＳＭの各マークと、その行と列とに対応する前記第２中間ＤＳＭ（２２）のマークとの論理和を計算することにより所要のＤＳＭ（２０）を生成するように構成される
請求項１〜５のいずれか一項に記載のＤＳＭ生成プログラム。
【請求項７】
請求項６に記載のＤＳＭ生成プログラムにおいて、
前記エッジ配列（４０）において前記手戻りエッジ配列（４２）に格納される始点および終点から構成される対情報を除き、その後のエッジ配列の末尾に前記手戻りエッジ配列（４２）をマージするマージ手順（Ｓ２７）をさらに備え、
前記検索手順（Ｓ３０）は、前記マージ手順（Ｓ２７）を経た後のマージ後エッジ配列（４３）におけるそれぞれの格納順位を検索する
ＤＳＭ生成プログラム。
【請求項８】
請求項１〜７のいずれか一項に記載のＤＳＭ生成プログラムにおいて、
前記ＤＳＭ（２０）のマークを前記ＤＳＭ（２０）の対角線に近づけるように前記ＤＳＭ（２０）の行および列の並び順を変更するパーティショニング手順をさらに備える
ＤＳＭ生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＤＳＭ生成プログラムに関する。
【背景技術】
【０００２】
開発現場では、製品の多様化や設計要件が拡大する中で高い設計品質を短い期間で達成することが求められている。そのために開発支援ツールとして手順の相互関係を可視化するＤＳＭ（Design Structure MatrixまたはDependency Structure Matrixと称されている）が普及しつつある。
【０００３】
従来、ＤＳＭの作成は、予め作成済みのフローチャートを視覚で読み込み、読み込んだデータを手作業で入力することにより行われていた。しかしながら、ＤＳＭの項目数が多くなると、項目相互の依存関係を把握することが難しい。非特許文献１では、数百以上の項目によって構成される設計プロセスをＤＳＭにモデル化することが困難であることが示されており、巨大なＤＳＭの作成が困難であることが問題となっていた。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】中沢俊彦、「設計プロセスのモデリングと可視化」、学会誌「設計工学」、社団法人日本設計工学会、２００７年、Vol.42，No.4，p.1-7
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、このような従来技術における課題を解決するものであって、フローチャートからＤＳＭを自動生成するプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係るＤＳＭ生成プログラムは、このような課題を解決したものであって、記録媒体に記録されているフローチャートを読み込む読込み手順と、前記読込み手順で読み込まれた前記フローチャートに含まれるノード名を格納するノード配列と、前記読込み手順で読み込まれたフローチャートに含まれるエッジの始点と終点とを対情報として格納するエッジ配列とを生成する配列生成手順と、前記対情報の始点および終点について、前記ノード配列におけるそれぞれの格納順位を検索する検索手順と、前記検索手順で検索された格納順位に対応するＤＳＭの列および行に対して、論理値、記号または数字であるマークを書き込んで生成したＤＳＭを、記録媒体に記録するＤＳＭ生成手順とを、コンピュータに実行させる。
【０００７】
前述のように、ＤＳＭの作成は、予め作成済みのフローチャートを作業者が視覚によって読み込み、読み込んだデータを手作業で作成することにより行われていた。しかしながら、ＤＳＭの項目数が多くなると、項目相互の依存関係を把握することが難しく、巨大なＤＳＭの作成が困難であった。
【０００８】
そこで、本発明に係るＤＳＭ生成プログラムは、入力となるフローチャート中の、ノード間を接続するエッジの始点および終点に対するノード名の格納順位を検索する検索手順を備えている。検索手順によって得られた全エッジの始点および終点の格納順位に対応するＤＳＭの行と列とに、マークを書き込むことによって、ＤＳＭを自動生成する。さらに、生成結果のＤＳＭを記録媒体に書き込むことができる。したがって、大規模なフローチャートを、作業者の視覚による入力ではなく、コンピュータがＤＳＭにモデル化することができる。
【０００９】
また、前記配列生成手順で生成された前記エッジ配列を、前記エッジの始点をキーとして前記ノード配列に格納されたノード名順にソートするソート手順をさらに設け、前記検索手順は、前記ソート手順でソートされた後のソート後エッジ配列におけるそれぞれの格納順位を検索することもできる。このような構成によれば、ノード配列に対して始点ノードをキーとしてソートし、エッジ始点の検索回数を減らすことにより、より高速にＤＳＭを生成することができる。
【００１０】
また、前記配列生成手順で生成された前記エッジ配列を、前記エッジの終点をキーとして前記ノード配列に格納されたノード名順にソートするソート手順をさらに設け、前記検索手順は、前記ソート手順でソートされた後のソート後エッジ配列におけるそれぞれの格納順位を検索することもできる。このような構成によれば、ノード配列に対して終点ノードをキーとしてソートし、エッジ終点の検索回数を減らすことにより、より高速にＤＳＭを生成することができる。
【００１１】
また、前記読込み手順は、予め指定されたノードの順序を示すノード順序をさらに読み込み、前記配列生成手順は、前記ノード名を前記ノード順序に記載された順序でソート後ノード配列に格納し、前記対情報の始点および終点について前記ソート後ノード配列におけるそれぞれの格納順位を検索することもできる。このような構成によれば、使用者が予め指定した順序でＤＳＭを生成することができ、ＤＳＭの生成後に実施される、ＤＳＭの行と列とを手戻りが少なくなるように並び替える処理であるパーティショニング処理を高速化することができる。
【００１２】
また、前記ノード順序は、記録媒体に記録され予め準備された前記ノードの座標を示すノード座標情報を含む座標付フローチャートを読み込む読込み手順と、読み込んだ前記座標付フローチャートと前記ノード座標情報から、前記ノード名を格納する前記ノード配列と、前記エッジの始点および終点から構成される前記対情報を格納する前記エッジ配列と、前記ノード名と前記ノードのＸ座標を格納するノード座標配列とを生成する配列生成手順と、前記ノード配列の前記ノードについて、遷移先のノードである遷移先ノードを生成し、遷移先ノード配列に格納する遷移先ノード生成手順と、前記遷移先ノードのＸ座標をキーとして前記遷移先ノード生成手順で生成された遷移先ノード配列をソートする座標ソート手順と、前記座標ソート手順の結果のソート後遷移先ノード配列を前記ノード配列から除き、前記ノード配列の末尾に前記ソート後遷移先ノード配列をマージする遷移先ノードマージ手順と、マージ結果のマージ後ノード配列のノードの順序をノード順序として記録媒体に出力するノード順序出力手順とによって生成することもできる。
【００１３】
このような構成によれば、使用者が予め指定した順序を位置情報として座標付フローチャートに含め、位置情報によってノードをソートし、ＤＳＭを生成する。そのため、使用者が座標付フローチャート中のノード配置位置によってノードの順序を記述してＤＳＭを作成することができ、パーティショニング処理を高速化することができる。
【００１４】
また、手戻り付フローチャートが予め指定された手戻りエッジを含む場合には、前記配列生成手順は、前記ノード配列および前記エッジ配列の他に、前記手戻りエッジの始点および終点から構成される対情報を格納する手戻りエッジ配列を生成するように形成され、前記ＤＳＭ生成手順は、検索手順で検索された格納順位と前記手戻りエッジ配列から算出される、前記手戻りエッジのみについてのマークを列および行に書き込んだ第１中間ＤＳＭと、手戻りエッジ以外についてのマークを列および行に書き込んだ第２中間ＤＳＭとを生成し、前記第１中間ＤＳＭの行と列とを入れ替えＤＳＭの各マークと、その行と列とに対応する前記第２中間ＤＳＭのマークとの論理和を計算することにより所要のＤＳＭを生成するように構成することもできる。
【００１５】
このような構成によれば、使用者が予め指定した手戻りエッジをフローチャートに含め、手戻りエッジを考慮したＤＳＭを生成する。そのため、使用者の予め指定した手戻りを反映したＤＳＭとなり、パーティショニング処理を高速化することができる。
【００１６】
また、前記エッジ配列において前記手戻りエッジ配列に格納される始点および終点から構成される対情報を除き、その後のエッジ配列の末尾に前記手戻りエッジ配列をマージするマージ手順をさらに備え、前記検索手順は、前記エッジ配列として前記マージ手順を経た後のマージ後エッジ配列におけるそれぞれの格納順位を検索することもできる。このような構成によれば、エッジ配列を予め手戻りとそれ以外とに区別しておくことによって、ＤＳＭ生成を高速化することができる。
【００１７】
また、前記ＤＳＭのマークを前記ＤＳＭの対角線に近づけるように前記ＤＳＭの行および列の並び順を変更するパーティショニング手順をさらに備えることもできる。このような構成によれば、ＤＳＭのマークをパーティショニング手順の結果のように並び替えることにより、手戻りの少ないＤＳＭを生成することができる。
【発明の効果】
【００１８】
本発明に係るＤＳＭ生成プログラムによれば、入力となるフローチャート中の、ノード間を接続するエッジの始点と終点との情報からノード名を探索する手順を備えており、大規模なＤＳＭをコンピュータに生成させることができる。
【図面の簡単な説明】
【００１９】
【図１】実施の形態１に係るＤＳＭ生成プログラムの入出力図である。
【図２】（ａ）入力するフローチャートの一例を示す図、（ｂ）出力するＤＳＭの一例を示す図、（ｃ）内部データのノード配列の一例を示す図、（ｄ）内部データのエッジ配列の一例を示す図。
【図３】実施の形態２に係るＤＳＭ生成プログラムの入出力図である。
【図４】実施の形態３に係るＤＳＭ生成プログラムの入出力図である。
【図５】実施の形態４に係るＤＳＭ生成プログラムの入出力図である。
【図６】実施の形態５に係るＤＳＭ生成プログラムの入出力図である。
【図７】実施の形態６に係るＤＳＭ生成プログラムの入出力図である。
【発明を実施するための形態】
【００２０】
（実施の形態１）
以下、実施の形態１に係るＤＳＭ生成プログラム１について説明する。
図１に示すように、ＤＳＭ生成プログラム１はソフトウェアによって作成されたフローチャート１０を入力し、ＤＳＭ２０を出力する。ソフトウェアは、一例としてＥｘｃｅｌ（マイクロソフト社の登録商標）が挙げられる。フローチャート１０はコンピュータが記録可能な媒体、例えば磁気ディスクや半導体メモリに記録されている。
【００２１】
ここで、入出力データと中間データとについて説明する。図２（ａ）は、入力データであるフローチャート１０の一例である。ｎ１、ｎ２、ｎ３、および、ｎ４はフローチャート１０のノードを示し、ノード名はそれぞれＡ、Ｂ、Ｃ、および、Ｄである。各ノード間はエッジｅ１、ｅ２、ｅ３、および、ｅ４によって結線されている。
【００２２】
図２（ｂ）は、出力データであるＤＳＭ２０の一例である。実施の形態１のＤＳＭ２０は、縦軸と横軸ともにフローチャート１０のノードを並べた２次元配列である。各列はエッジの始点、各行はエッジの終点を表す。各エッジの始点と終点とが対応するＤＳＭ２０の升目にマークを記入する。図２（ｂ）は論理値である１が記入されているが、論理値の他に記号や数字であってもよい。
【００２３】
図２（ｃ）は、中間データであるノード配列３０の一例である。フローチャート１０のノードのノード名をノード配列３０に格納する。
図２（ｄ）は、中間データであるエッジ配列４０の一例である。エッジを始点と終点とから成る対情報によって表現する。例えば、エッジｅ１（図２（ａ）参照）の対情報を、始点のＡと終点のＢとする。フローチャート１０のエッジの対情報をエッジ配列４０に格納する。
【００２４】
次に、図１を参照して、実施の形態１のＤＳＭ生成プログラムの動作内容を説明する。読込み手順Ｓ１０は、コンピュータが記録可能な媒体からフローチャート１０を読み出し、コンピュータ内部のメモリにフローチャート１０を格納する。
【００２５】
配列生成手順Ｓ２０は、上記読込み手順Ｓ１０で格納したフローチャート１０に対するノード配列３０とエッジ配列４０とを生成し、コンピュータ内部のメモリに格納する。
検索手順Ｓ３０は、対情報の始点および終点について、ノード配列３０におけるそれぞれの格納順位を検索する。すなわち、始点のノード名が、ノード配列３０の何番目に格納されているか、配列の最初から検索を実施する。さらに、終点のノード名も、ノード配列３０の何番目に格納されているか、配列の最初から検索を実施する。
【００２６】
ＤＳＭ生成手順Ｓ４０は、ＤＳＭ２０を生成する。検索手順Ｓ３０で検索された対情報の始点の格納順位と対情報の終点の格納順位とがＤＳＭ２０のそれぞれ対応する列と行との交点の升目に対して、ＤＳＭ生成手順Ｓ４０はマークを書き込む。
【００２７】
検索手順Ｓ３０とＤＳＭ生成手順Ｓ４０とを、エッジ配列４０のすべてのエッジについて実行する（ループ１Ｌ１）。すべてのエッジについて、検索手順Ｓ３０とＤＳＭ生成手順Ｓ４０とが終了すれば、ＤＳＭ２０を記録媒体に出力する。
【００２８】
実施の形態１に係るＤＳＭ生成プログラム１は、以上のように構成されているので、次のような効果を奏することができる。
（１）入力のフローチャート１０のノード間を接続するエッジの始点と終点とからノード名を検索する検索手順Ｓ３０を備えており、ＤＳＭ２０をコンピュータに生成させることができ、巨大なフローチャート１０に対してもＤＳＭ２０にモデル化することができる。
【００２９】
（実施の形態２）
次に、図３に基づき、実施の形態２について説明する。
実施の形態２は、実施の形態１における配列生成手順Ｓ２０で生成されたエッジ配列４０を、エッジの始点をキーとしてノード配列３０に格納されたノード名順にソートするソート手順Ｓ２６をさらに設け、ソート手順Ｓ２６でソートされた後のソート後エッジ配列４１を検索手順Ｓ３０の入力とする点が異なる。
【００３０】
図３に示すように、実施の形態２のＤＳＭ生成プログラム１は、実施の形態１の場合と同様にまずフローチャート１０を読み込み（読込み手順Ｓ１０）、次いで、ノード配列３０とエッジ配列４０とを生成する（配列生成手順Ｓ２０）。この処理方法は、実施の形態１の場合と同様である。
【００３１】
続いて、エッジ配列４０をエッジの始点をキーとしてノード配列３０に格納されたノード名順にソートする（ソート手順Ｓ２６）。ソートアルゴリズムの例として、マージソートやクイックソートが挙げられる。
【００３２】
そして、ソート手順Ｓ２６でソートされた後のソート後エッジ配列４１を、検索手順Ｓ３０の入力とする。検索手順Ｓ３０は、始点のノード名が、ノード配列３０の何番目に格納されているか、配列の最初から検索を実施する。さらにソート後エッジ配列４１のすべてのエッジについて検索手順Ｓ３０を繰り返す（ループ１Ｌ１）。そのため、ノード数ｎに対する始点の検索の計算量はＯ（ｎ２）である。
【００３３】
ここで、エッジ配列４０はノード名順にソートされているため、ループ１Ｌ１で実行済みのノードについては、検索手順Ｓ３０で検索しなくともよい。また、ソートアルゴリズムとして例えばマージソートを用いた場合の、ソート手順Ｓ２６の計算量はＯ（ｎｌｏｇｎ）であり、検索手順Ｓ３０の計算量が支配的である。そのため、ソート手順Ｓ２６と検索手順Ｓ３０とを含むＤＳＭ生成プログラム１の実行に係る計算量を減少させることができる。
【００３４】
実施の形態２に係るＤＳＭ生成プログラム１は、以上のように構成されているので、実施の形態１に係る前記（１）の効果に加え、以下に記載する（２）の効果を奏することができる。
【００３５】
（２）ノード配列３０に対してエッジの始点ノードをキーとしてソートし、検索手順Ｓ３０の計算量を減らすことができ、より高速にＤＳＭ２０を生成することができる。
（実施の形態３）
次に、図４に基づき、実施の形態３について説明する。
【００３６】
実施の形態３は、実施の形態１における読込み手順Ｓ１０が、予め指定されたノードの順序を示すノード順序１１をさらに読み込み、配列生成手順Ｓ２０がノード名をノード順序に記載された順序でソート後ノード配列３７に格納する点が異なる。
【００３７】
図４に示すように、実施の形態３のＤＳＭ生成プログラム２は、実施の形態１の場合と同様にまずフローチャート１０を読み込み、記録媒体に記録され予め指定されたノードの順序を示すノード順序１１をさらに読込む（読込み手順Ｓ１０）。
【００３８】
次いで、ソート後ノード配列３７とエッジ配列４０とを生成する（配列生成手順Ｓ２０）。配列生成手順Ｓ２０は、中間配列生成手順Ｓ２１とノードソート手順Ｓ２２とから成る。中間配列生成手順Ｓ２１は、フローチャート１０のノードを格納した配列である中間ノード配列３１、エッジ配列４０、および、ノード順序の順序通りにノード名を配列に格納したノード順序配列３２を生成する。ノードソート手順Ｓ２２は中間ノード配列３１をノード順序配列３２のノード名順にソートし、ソート結果をソート後ノード配列３７とする。
【００３９】
続いて、検索手順Ｓ３０では、ソート後ノード配列３７とエッジ配列４０とを読み込んで、実施の形態１と同様の処理を実行する。
実施の形態３に係るＤＳＭ生成プログラム２は、以上のように構成されているので、実施の形態１に係る前記（１）の効果に加え、以下に記載する（３）の効果を奏することができる。
【００４０】
（３）使用者が予め指定したノードの順序を示すノード順序１１にしたがってＤＳＭ２０を生成することができる。したがって、ＤＳＭ２０の生成後に実施される、ＤＳＭ２０の行と列とを手戻りが少なくなるように並び替える処理であるパーティショニング処理を高速化することができる。
【００４１】
（実施の形態４）
次に、図５に基づき、実施の形態４について説明する。
実施の形態４は、実施の形態３におけるノード順序１１を、座標付フローチャート１２のノード座標から作成する点が異なる。
【００４２】
図５に示すように、実施の形態４のＤＳＭ生成プログラム３は、まず記録媒体に記録され予め準備されたノードの座標を示すノード座標情報を含む座標付フローチャート１２を読み込み（読込み手順Ｓ１０）、次いで、ノード配列３０、エッジ配列４０、および、ノード名とノードのＸ座標を格納するノード座標配列３３を生成する（配列生成手順Ｓ２）。
【００４３】
続いて、ノード配列３０のノードについて、遷移先のノードである遷移先ノードを生成し、遷移先ノード配列３４に格納する（遷移ノード生成手順Ｓ５０）。遷移先ノードのＸ座標をキーとして遷移先ノード生成手順Ｓ５０で生成された遷移先ノード配列３４をソートする（座標ソート手順Ｓ５１）。さらに、結果のソート後遷移先ノード３５をノード配列３０から除き、除いた結果の末尾にソート後遷移先ノード配列３５マージする（遷移先ノードマージ手順Ｓ５２）。マージ結果のマージ後ノード配列３６を新たなノード配列３０として、ノード配列３０の配列数だけループ２Ｌ２を繰り返す。ループ２Ｌ２が終了すれば、マージ後ノード配列３６のノードの順序をノード順序１１として出力する（ノード順序出力手順Ｓ５３）。
【００４４】
そして、得られたノード順序１１と座標付フローチャート１２とを、実施の形態３のＤＳＭ生成プログラム２（図４参照）に入力し、ＤＳＭ２０を生成する。
実施の形態４に係るＤＳＭ生成プログラム１は、以上のように構成されているので、実施の形態３に係る前記（１）および（３）の効果に加え、以下に記載する（４）の効果を奏することができる。
【００４５】
（４）使用者が予め記述した座標付フローチャート１２中のノード配置位置に基づいてノード順序１１を作成し、ノード順序１１を反映したＤＳＭ２０を作成することができ、パーティショニング処理を高速化することができる。
【００４６】
（実施の形態５）
次に、図６に基づき、実施の形態５について説明する。
実施の形態５は、実施の形態１と比較して、手戻り付フローチャート１３が予め指定された手戻りエッジを含む点、配列生成手順Ｓ２０は手戻りエッジの始点と終点とを格納する手戻りエッジ配列４２をさらに生成する点、ＤＳＭ生成手順Ｓ４０は手戻りエッジを考慮したＤＳＭ２０を生成する点が異なる。
【００４７】
図６に示すように、実施の形態５のＤＳＭ生成プログラム１は、まず記録媒体に記録され予め準備された手戻りエッジを含む手戻り付フローチャート１３を読み込む（読込み手順Ｓ１０）。次いで、ノード配列３０と、エッジ配列４０と、手戻りエッジの始点および終点から構成される対情報を格納する手戻りエッジ配列４２とを生成する（配列生成手順Ｓ２０）。
【００４８】
続いて、実施の形態１と同様に、エッジ配列４０の対情報の始点のノード名がノード配列３０の何番目に格納されているかを検索する（検索手順Ｓ３０）。
そして、検索手順Ｓ３０の結果の対情報が手戻りエッジ配列４２に属しているかを調べ、属しておれば第１中間ＤＳＭ２１の升目に、属していなければ第２中間ＤＳＭ２２の升目にマークを出力する。さらに、第１中間ＤＳＭ２１のマークについて行と列とを入れ替えて、第１中間ＤＳＭ２１と第２中間ＤＳＭ２２とをマージする（最終ＤＳＭ生成手順Ｓ４２）。マークが論理値である場合は、第１中間ＤＳＭ２１の全升目とそれぞれの升目に対応する第２中間ＤＳＭ２２の升目とについて論理和をとる。マークが記号または数字である場合は次の論理和と同様の演算式をとる。すなわち、マークが記入されている升目と記入されていない升目との演算は、マークを記入する。マークが記入されていない升目同士の演算は、マークを記入しない。同じマークが記入されている升目同士の演算は、マークを記入する。違うマークが記入されている升目同士の演算はマークを記入するが、どのマークを記入するかは、例えば予め設定しておくことが考えられる。
【００４９】
実施の形態５に係るＤＳＭ生成プログラムは、以上のように構成されているので、実施の形態１に係る前記（１）の効果に加え、以下に記載する（５）の効果を奏することができる。
【００５０】
（５）使用者の予め指定した手戻りのエッジを反映したＤＳＭ２０をコンピュータに生成させることができ、その後に実施されるパーティショニング処理を高速化することができる。
【００５１】
（実施の形態６）
次に、図７に基づき、実施の形態６について説明する。
実施の形態６は、実施の形態５におけるエッジ配列４０から、手戻りエッジ配列４２に格納される始点および終点から構成される対情報を除き、手戻りエッジをマージするマージ手順Ｓ２７をさらに備え、マージ結果をマージ後エッジ配列４３とする点が異なる。
【００５２】
図７に示すように、実施の形態６のＤＳＭ生成プログラム１は、実施の形態５と同様に、まず記録媒体に記録され予め準備された手戻りエッジを含む手戻り付フローチャート１３を読み込む（読込み手順Ｓ１０）。次いで、ノード配列３０と、エッジ配列４０と、手戻りエッジの始点および終点から構成される対情報を格納する手戻りエッジ配列４２とを生成する（配列生成手順Ｓ２０）。
【００５３】
続いて、エッジ配列４０から手戻りエッジ配列４２に格納される始点および終点から構成される対情報を除き、除いた結果の末尾に手戻りエッジ配列４２をマージしマージ後エッジ配列４３を生成する（マージ手順Ｓ２７）。
【００５４】
そして、入力としてマージ手順Ｓ２７を経た後のマージ後エッジ配列４３を用いて、マージ後エッジ配列４３の対情報の始点のノード名がノード配列３０の何番目に格納されているかを検索する（検索手順Ｓ３０）。検索手順Ｓ３０の結果から手戻りエッジのみを含む第１中間ＤＳＭ２１とそれ以外のエッジを含む第２中間ＤＳＭ２２とを生成する（中間ＤＳＭ生成手順Ｓ４１）。ここで、マージ後エッジ配列４３は、手戻りエッジとそれ以外に区別されているため、中間ＤＳＭ生成手順Ｓ４１を高速に実行することができる。
【００５５】
実施の形態６に係るＤＳＭ生成プログラム１は、以上のように構成されているので、実施の形態５に係る前記（５）の効果に加え、以下に記載する（６）の効果を奏することができる。
【００５６】
（６）マージ後エッジ配列４３を予め手戻りと手戻り以外とに区別しておくことによって、ＤＳＭ２０の生成を高速化することができる。
（変形例）
上記実施の形態に係るＤＳＭ生成プログラムは、以下のように変更することもできる。
【００５７】
・実施の形態２は、エッジの始点ノードではなくエッジの終点ノードをキーとしてソートしてもよい。
・実施の形態５および実施の形態６のループ１Ｌ１は、検索手順Ｓ３０、中間ＤＳＭ生成手順Ｓ４１、および、最終ＤＳＭ生成手順Ｓ４２のループではなく、検索手順Ｓ３０と中間ＤＳＭ生成手順Ｓ４１とのループとしてもよい。
【００５８】
・各実施の形態において、ＤＳＭ２０のマークをＤＳＭ２０の対角線に近づけるようにＤＳＭ２０の行および列の並び順を変更するパーティショニング手順を備えてもよい。
・実施の形態５は、ノード順序１１をさらに読み込み、実施の形態３のようなノードソート手順Ｓ２２を実施することにより、ノード順序を考慮したＤＳＭ生成を行ってもよい。
【００５９】
・実施の形態５は、手戻り付フローチャート１３にノード座標情報をさらに加え、実施の形態４のようなノード順序生成のための手順を追加して、ノード順序を考慮したＤＳＭ生成を行ってもよい。
【符号の説明】
【００６０】
１０…フローチャート、１１…ノード順序、１２…座標付フローチャート、１３…手戻り付フローチャート、２０…ＤＳＭ、２１…第１中間ＤＳＭ、２２…第２中間ＤＳＭ、３０…ノード配列、３３…ノード座標配列、３４…遷移先ノード配列、３５…ソート後遷移先ノード配列、３６…マージ後ノード配列、３７…ソート後ノード配列、４０…エッジ配列、４１…ソート後エッジ配列、４２…手戻りエッジ配列、４３…マージ後エッジ配列、Ｓ１０…読込み手順、Ｓ２０…配列生成手順、Ｓ２６…ソート手順、Ｓ２７…マージ手順、Ｓ３０…検索手順、Ｓ４０…ＤＳＭ生成手順、Ｓ５０…遷移先ノード生成手順、Ｓ５１…座標ソート手順、Ｓ５２…遷移先ノードマージ手順、Ｓ５３…ノード順序出力手順。
【図１】
2016119001.tif 000003
【図２】
2016119001.tif 000004
【図３】
2016119001.tif 000005
【図４】
2016119001.tif 000006
【図５】
2016119001.tif 000007
【図６】
2016119001.tif 000008
【図７】
2016119001.tif 000009