(57)【特許請求の範囲】
【請求項１】
処理手順を表記したブロック図に基づいて、計算機言語によるプログラムを自動生成するソフトウェア開発支援装置において、
前記ブロック図に表記された複数のブロック要素と該ブロック要素間の接続関係とをブロック図接続情報として抽出するブロック図接続情報抽出手段と、
前記ブロック図接続情報抽出手段によって抽出されたブロック図接続情報を記憶するブロック図接続情報記憶手段と、
前記ブロック図の部分の検索を行なうために、検索対象となる複数のブロック要素と該ブロック要素間の接続関係とを入力する検索用入力手段と、
入力された前記検索対象となる複数のブロック要素と該ブロック要素間の接続関係とから前記ブロック図接続情報抽出手段によって抽出される検索用ブロック図接続情報を記憶する検索用ブロック図接続情報記憶手段と、
前記ブロック図接続情報記憶手段に記憶されているブロック図接続情報の中に、前記検索用ブロック図接続情報と一致する部分があるかを判定するブロック図一致判定手段と、
前記ブロック図接続情報記憶手段に記憶されたブロック図接続情報から、前記複数のブロック要素と前記接続関係とが同じパターンで構成されている部分を自動検出するための自動ブロック図接続情報検出手段であって、前記パターンを構成するブロック要素の個数を受け付ける、自動ブロック図接続情報検出手段と
を備え、前記自動ブロック図接続情報検出手段によって前記ブロック要素の個数が受け付けられた場合には、前記検索用ブロック図接続情報は、前記自動ブロック図接続情報検出手段が、前記ブロック要素の個数単位で前記ブロック図接続情報を抽出することによって得られることを特徴とする、ソフトウェア開発支援装置。
【請求項２】
複数のブロック要素と該ブロック要素間の接続関係を表記することによって、前記ブロック図を作成するブロック図作成手段と、
前記ブロック図接続情報から、計算機言語によるプログラムを自動生成するプログラム生成手段と
を備える、請求項１に記載のソフトウェア開発支援装置。
【請求項３】
コンピュータを請求項１又は２に記載の手段として機能させるためのソフトウェア開発支援プログラム。
【請求項４】
処理手順を表記したブロック図に基づいて、計算機言語によるプログラムを自動生成するソフトウェア開発支援装置において実行されるブロック図検索方法であって、
ブロック図接続情報抽出手段が、前記ブロック図に表記された複数のブロック要素と該ブロック要素間の接続関係とをブロック図接続情報として抽出するブロック図接続情報抽出ステップと、
ブロック図接続情報記憶手段が、前記ブロック図接続情報抽出手段によって抽出されたブロック図接続情報を記憶するブロック図接続情報記憶ステップと、
検索用入力手段が、前記ブロック図の部分の検索を行なうために、検索対象となる複数のブロック要素と該ブロック要素間の接続関係とを入力する検索用入力ステップと、
前記ブロック図接続情報抽出手段が、入力された前記検索対象となる複数のブロック要素と該ブロック要素間の接続関係とから検索用ブロック図接続情報を抽出する検索用ブロック図接続情報抽出ステップと、
検索用ブロック図接続情報記憶手段が、前記検索用ブロック図接続情報を記憶する検索用ブロック図接続情報記憶ステップと、
ブロック図一致判定手段が、前記ブロック図接続情報記憶手段に記憶されているブロック図接続情報の中に、前記検索用ブロック図接続情報と一致する部分があるかを判定するブロック図一致判定ステップと、
自動ブロック図接続情報検出手段が、前記ブロック図接続情報記憶手段に記憶されたブロック図接続情報から、前記複数のブロック要素と前記接続関係とが同じパターンで構成されている部分を自動検出するために、前記パターンを構成するブロック要素の個数を受け付ける、自動ブロック図接続情報検出ステップと
を含み、前記自動ブロック図接続情報検出手段によって前記ブロック要素の個数が受け付けられた場合には、前記検索用ブロック図接続情報は、前記自動ブロック図接続情報検出手段が、前記ブロック要素の個数単位で前記ブロック図接続情報を抽出することによって得られることを特徴とする、ブロック図検索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理手順をブロック要素の接続によって表記したブロック図に基づき計算機言語によるプログラムを自動生成するソフトウェア開発支援装置、プログラム及び前記ソフトウェア開発支援装置におけるブロック図検索方法に関する。
【背景技術】
【０００２】
従来、計算機に特定の処理を行わせるためのプログラムを作成する場合、プログラムの仕様をブロック図等で記述し、そのブロック図をもとにプログラマが計算機言語を用いたプログラムコードを作成することが行われている。そこで、プログラマによる作業時間の短縮やミスの防止のために、プログラム仕様として記述されたブロック図から、直接、計算機言語によるプログラムコードに変換するソフトウェア開発支援装置が特許文献１、特許文献２で提案されている。
【０００３】
特許文献１では、プログラム仕様として記述されたブロック図から制御用プログラムを機械語で生成する技術を提案している。特許文献２では、プログラム仕様として記述されたブロック図から計算機言語を用いたプログラムコードを生成する技術を提案している。また、計算機言語で作成されたプログラムコードから、同じような字句の並びを抽出するシステムが特許文献３で提案されている。特許文献３では、対象となるテキストに対して、字句の単位で抽出し、抽出した字句を変換した後に、同じ並びになっているものを特定している。
【特許文献１】特開平５−８８８６９号公報
【特許文献２】特開２００６−３０１９８９号公報
【特許文献３】特開２００３−２９９７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記特許文献１及び２においては、ブロック図からプログラムコードを作成することが可能であり、プログラマの作業時間の削減に効果がある。しかし、プログラムコードの保守を行う時には、プログラムコードを直すのではなく、ブロック図の修正が必要となる。この時に、複数ブロック要素からなる部分を検索する必要がでてくるが、その具体的な方法については上記特許文献において開示されていない。このため、プログラマがブロック図を目で見て確認する必要があり、作業時間がかかると共に見落とし等のミスが発生する可能性がある。
また、作成したブロック図を部分的に切り貼りする場合がある。切り貼りした部分に修正が必要になると、保守の面からみて、切り貼りをした全ての箇所を検索する必要がある。特許文献３においては、プログラムコードにおいて同じような字句の並びを検出することは出来るが、ブロック図の切り貼り部分を特定する方法については開示されていない。
【０００５】
したがって、本発明は、ブロック図からプログラムを自動作成するソフトウェア開発支援装置において、ブロック図における所望の部分の検索を可能にし、また、ブロック図の切り貼り部分の特定等のために、ブロック図において同一パターンで構成されているブロック要素の検索を可能にすることによって、ブロック図保守作業の効率を高めることを目的としている。
【課題を解決するための手段】
【０００６】
本発明は、処理手順を表記したブロック図に基づいて、計算機言語によるプログラムを自動生成するソフトウェア開発支援装置に係るものである。上記目的を達成するために、当該ソフトウェア開発支援装置は、前記ブロック図に表記された複数のブロック要素と該ブロック要素間の接続関係とをブロック図接続情報として抽出するブロック図接続情報抽出手段と、前記ブロック図接続情報抽出手段によって抽出されたブロック図接続情報を記憶するブロック図接続情報記憶手段と、検索対象となる複数のブロック要素と該ブロック要素間の接続関係とを検索用ブロック図接続情報として記憶する検索用ブロック図接続情報記憶手段と、前記ブロック図接続情報記憶手段に記憶されているブロック図接続情報の中に、前記検索用ブロック図接続情報と一致する部分があるかを判定するブロック図一致判定手段とを備える。
【０００７】
本発明に係る前記ソフトウェア開発支援装置は、それ自体が一般的なコンピュータとソフトウェアとを協働させることにより実現される。すなわち、コンピュータの入力手段、記憶手段、演算手段等のハードウェア資源がソフトウェアにより具体的に動作して専用装置としての動作が実現する。
【０００８】
入力手段とは、キーボードやマウスなどのユーザの操作による入力手段のほか、フロッピー（登録商標）ディスクなどの記録媒体による入力、あるいは通信回線やＬＡＮ（ローカルエリアネットワーク）などの電気信号による入力を受け付ける手段を含む。記憶手段とは、文字や数字などのデータや、プログラムなどを記憶するための手段である。例えば、コンピュータ内のランダムアクセスメモリ、ハードディスクなどである。演算手段とは、プログラムを実行するための数値計算手段のことである。例えば、一般に中央処理装置すなわちＣＰＵといわれているものである。コンピュータとは、上記のような入力手段と、記憶手段と、演算手段とを少なくとも含む電子計算機をいう。
【０００９】
なお、請求の範囲及び明細書の記載において、「検索対象」とは、検索の対象となるブロック図の部分を示すものであって、検索を実行するデータの集合（検索範囲）を示すものではない。
【００１０】
前記ソフトウェア開発支援装置は、前記ブロック図の部分の検索を行なうために、検索対象となる前記複数のブロック要素と前記接続関係とを入力する検索用入力手段をさらに備え、前記検索用入力手段によって前記検索対象となる複数のブロック要素と前記接続関係とが入力された場合には、前記検索用ブロック図接続情報は、前記入力されたブロック要素と接続関係とから前記ブロック図接続情報抽出手段によって抽出されるように構成しても良い。
【００１１】
一例として、ソフトウェア開発支援装置は、前記ブロック図接続情報記憶手段に記憶されたブロック図接続情報から、前記複数のブロック要素と前記接続関係とが同じパターンで構成されている部分を自動検出するための自動ブロック図接続情報検出手段であって、前記パターンを構成するブロック要素の個数を受け付ける、自動ブロック図接続情報検出手段をさらに備え、前記自動ブロック図接続情報検出手段によって前記ブロック要素の個数が受け付けられた場合には、前記検索用ブロック図接続情報は、前記自動ブロック図接続情報検出手段が、前記ブロック要素の個数単位で前記ブロック図接続情報を抽出することによって得られる。
【００１２】
また、複数のブロック要素と該ブロック要素間の接続関係を表記することによって、前記ブロック図を作成するブロック図作成手段と、前記ブロック図接続情報から、計算機言語によるプログラムを自動生成するプログラム生成手段とを備えるように構成しても良い。
【００１３】
本発明は、コンピュータをソフトウェア開発支援装置の前記各手段として機能させるためのソフトウェア開発支援プログラムとしても実現される。
【００１４】
また、本発明は、処理手順を表記したブロック図に基づいて、計算機言語によるプログラムを自動生成するソフトウェア開発支援装置において実行されるブロック図検索方法であって、ブロック図接続情報抽出手段が、前記ブロック図に表記された複数のブロック要素と該ブロック要素間の接続関係とをブロック図接続情報として抽出するブロック図接続情報抽出ステップと、ブロック図接続情報記憶手段が、前記ブロック図接続情報抽出手段によって抽出されたブロック図接続情報を記憶するブロック図接続情報記憶ステップと、検索用ブロック図接続情報記憶手段が、検索対象となる複数のブロック要素と該ブロック要素間の接続関係とを検索用ブロック図接続情報として記憶する検索用ブロック図接続情報記憶ステップと、ブロック図一致判定手段が、前記ブロック図接続情報記憶手段に記憶されているブロック図接続情報の中に、前記検索用ブロック図接続情報と一致する部分があるかを判定するブロック図一致判定ステップとを含む。
【００１５】
前記ブロック図検索方法は、検索用入力手段が、前記ブロック図の部分の検索を行なうために、検索対象となる前記複数のブロック要素と前記接続関係とを入力する検索用入力ステップをさらに備え、前記検索用入力手段によって前記検索対象となる複数のブロック要素と前記接続関係とが入力された場合には、前記検索用ブロック図接続情報は、前記入力されたブロック要素と接続関係とから前記ブロック図接続情報抽出手段によって抽出されるように構成しても良い。
【００１６】
一例として、前記ブロック図検索方法は、自動ブロック図接続情報検出手段が、前記ブロック図接続情報記憶手段に記憶されたブロック図接続情報から、前記複数のブロック要素と前記接続関係とが同じパターンで構成されている部分を自動検出するために、前記パターンを構成するブロック要素の個数を受け付ける、自動ブロック図接続情報検出ステップをさらに備え、前記自動ブロック図接続情報検出手段によって前記ブロック要素の個数が受け付けられた場合には、前記検索用ブロック図接続情報は、前記自動ブロック図接続情報検出手段が、前記ブロック要素の個数単位で前記ブロック図接続情報を抽出することによって得られる。
【発明の効果】
【００１７】
本発明に係るソフトウェア開発支援装置では、ブロック図に表記された複数のブロック要素と該ブロック要素間の接続関係とをブロック図接続情報として抽出し、ブロック図接続情報の中に、検索用ブロック図接続情報と一致する部分があるかを判定している。検索用ブロック図接続情報は、検索対象である複数のブロック要素と該ブロック要素間の接続関係を示す情報である。したがって、本発明においては、ブロック図において、複数のブロック要素と該ブロック要素間の接続関係によって構成された所望の部分を検索することができ、また、同一パターンで構成されているブロック要素を検索することも可能となる。
これによって、ブロック図保守作業の時間が短縮されると共に、プログラマの作業負担と人的ミスが軽減され、ブロック図保守作業の効率を高めることができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施の形態を添付の図により説明する。図１に本実施形態に係るソフトウェア開発支援装置の構成図を示す。ソフトウェア開発支援装置１は、それ自体が一般的なコンピュータとソフトウェアとを協働させることにより実現される。すなわち、コンピュータの入力手段、記憶手段、演算手段等のハードウェア資源がソフトウェアにより具体的に動作して専用装置としての動作が実現している。
【００１９】
ソフトウェア開発支援装置１は、入力装置２と表示装置３を備えている。入力装置２は、外部からの入力を受け付け、表示装置３は、各種入力画面、各種データ及び該ソフトウェア開発支援装置１の出力結果を表示する。
ブロック図作成部４は、表示装置３に表示されたブロック図作成画面及び入力装置２を介して入力されたデータに基づいて、複数のブロック要素とブロック要素間の接続関係の作成及び／又は修正を行なってブロック図を作成及び／又は修正する。
【００２０】
ブロック図接続情報抽出部５は、ブロック図作成部４において表記されたブロック要素とブロック要素間の接続関係とをブロック図接続情報として抽出する。ブロック図接続情報は、ブロック図に表記された複数のブロック要素とブロック要素間の接続関係を示す情報であって、具体例は後述する。また、検索用ブロック図作成部８によって作成された複数のブロック要素とそれらの接続関係とを検索用ブロック図接続情報として抽出する。検索用ブロック図接続情報は、検索対象である複数のブロック要素とブロック要素間の接続関係を示す情報であって、具体例は後述する。
ブロック図接続情報記憶部６は、ブロック図接続情報抽出部５によって抽出されたブロック図接続情報を記憶する。プログラム生成部７は、ブロック図接続情報記憶部に記憶されたブロック図接続情報等に基づいて計算機言語によるプログラムを自動生成する。
【００２１】
検索用ブロック図作成部８は、表示装置３に表示された検索用ブロック図作成画面及び入力装置２を介して入力されたデータに基づいて、検索対象として所望される複数のブロック要素とそれらの接続関係とを作成する。本実施形態においては、検索用ブロック図作成部８が検索用入力手段として機能している。
自動ブロック図接続情報検出部１１は、ブロック図接続情報記憶部６に記憶されたブロック図接続情報から、ブロック図において、複数のブロック要素とそれらの接続関係とが同じパターンで構成されている部分を自動検出するために設けられている。自動ブロック図接続情報検出部１１は、前記パターンを構成するブロック要素の個数を受け付け、受け付けたブロック要素の個数単位で前記ブロック図接続情報を抽出し、抽出した情報を検索用ブロック図接続情報として取得する。
【００２２】
後述のように、本実施形態においてソフトウェア開発支援装置１は、ブロック図の検索用に「図面検索」と「自動検索」という２つのメニューを備えている。検索用ブロック図作成部８は、「図面検索」の場合に機能し、自動ブロック図接続情報検出部１１は、「自動検索」の場合に機能する。したがって、本実施形態において検索用ブロック図作成部８と自動ブロック図接続情報検出部１１は選択的に用いられている。
【００２３】
検出用ブロック図接続情報記憶部９は、検索用ブロック作成部８によって作成された複数のブロック要素とそれらの接続関係とからブロック図接続情報抽出部５によって抽出された検索用ブロック図接続情報及び／又は自動ブロック図接続情報検出部１１によって抽出された検索用ブロック図接続情報を記憶する。
ブロック図一致判定部１０は、ブロック図接続情報記憶部６に記憶されているブロック図接続情報の中に、検索用ブロック図接続情報と一致する部分があるかを判定する。
【００２４】
図２にブロック図作成画面の一例を示す。ブロック図作成画面は、ブロック要素２１とブロック要素間の接続２２の作成及び修正を行なう画面２０と、ブロック図の作成に必要な操作を行う各種メニューとから構成されている。
メニューとしては、ブロック図のファイル操作を行う「ファイル」２３、ブロック図に記入するブロック要素の選択を行う「ブロック要素の選択」２４、ブロック要素間の接続を行う「配線」２５が含まれている。ユーザはこれらのメニューを用いて、入力装置２を介してブロック要素２１及び各ブロック要素間の配線、すなわち接続２２の入力及び修正用入力を行なう。
【００２５】
例えば、「ブロック要素の選択」２４をクリックすると、各種ブロック要素を表示した画面が開き、ユーザはそこから所望のブロック要素を選択することによって、画面２０上にブロック要素２１を表記することができる。また、一例として、「配線」２５をクリックすると、マウスポインタの形状が変化し、マウスを移動させることによって、画面２０上の所望のブロック要素間に接続２２を示す矢印線を表記することができる。
【００２６】
ブロック図作成部４は、ユーザによってブロック図作成画面及び入力装置２を介して入力されたデータに基づいて、ブロック図を作成する。ブロック図において表記されたブロック要素２１とブロック要素間の接続２２は、ブロック図接続情報としてブロック図接続情報抽出部５によって抽出される。
以下に、図２の画面２０に表記されたブロック図から、ブロック図接続情報抽出部５によって抽出したブロック図接続情報のデータ例を示す。
【００２７】
[ブロック図接続情報］
以下のデータは、左から、線のＩＤ，線の入力ブロック要素（種類：ＩＤ），線の出力ブロック要素（種類：ＩＤ）を示す。
Ｗ００１，（Ａ：Ｆ００１），（Ｂ：Ｆ００２）
Ｗ００２，（Ｂ：Ｆ００２），（Ｃ：Ｆ００３）
Ｗ００３，（Ｃ：Ｆ００３），（Ｄ：Ｆ００４）
Ｗ００４，（Ｄ：Ｆ００４），（Ａ：Ｆ００５）
Ｗ００５，（Ａ：Ｆ００５），（Ｂ：Ｆ００６）
Ｗ００６，（Ｂ：Ｆ００６），（Ｅ：Ｆ００７）
Ｗ００７，（Ｅ：Ｆ００７），（Ｄ：Ｆ００８）
Ｗ００８，（Ｄ：Ｆ００８），（Ａ：Ｆ００９）
Ｗ００９，（Ａ：Ｆ００９），（Ｂ：Ｆ０１０）
Ｗ０１０，（Ｂ：Ｆ０１０），（Ｃ：Ｆ０１１）
Ｗ０１１，（Ｃ：Ｆ０１１），（Ｄ：Ｆ０１２）
【００２８】
上記例において、ブロック図接続情報のデータ形式は、ブロック要素の接続を示す線の固体を識別するためのＩＤ（Ｗ００１〜Ｗ０１１に相当）と、線の入力ブロック要素の種類（Ａ、Ｂ、Ｃ、Ｄ、Ｅに相当）と固体を識別するためのＩＤ（Ｆ００１〜Ｆ０１１に相当）と、線の出力ブロック要素として、その種類（Ａ、Ｂ、Ｃ、Ｄ、Ｅに相当）と固体を識別するためのＩＤ（Ｆ００２〜Ｆ０１２に相当）とを、ブロック図の流れの順番に並べた形式としている。
ブロック図接続情報抽出部５によって抽出されたブロック図接続情報はブロック図接続情報記憶部６に記憶される。
【００２９】
また、メニューとして、ブロック図から計算機言語によるプログラム自動生成を行う「自動生成」２６が設けられている。ユーザが「自動生成」２６をクリックすると、当該入力に基づいて、プログラム生成部７が、ブロック図接続情報記憶部６に記憶されたブロック図接続情報等に基づいて計算機言語によるプログラムを自動生成する。
【００３０】
図２のメニューにはさらに「検索」２７が含まれる。「検索」２７は図２において、画面２０の上方側に抜き出して図示するように、「図面検索」２８と「自動検索」２９のメニューを備えている。以下に「図面検索」２８を選択した場合の図面検索処理について説明する。
【００３１】
［図面検索］
図３に、図２において「図面検索」２８を選択したときに表示される、検索用ブロック図作成画面の一例を示す。検索用ブロック図作成画面は、検索用ブロック要素３１とブロック要素間の接続３２の作成及び修正を行う画面３０と、検索用ブロック図の作成に必要な操作を行うメニューから構成されている。メニューは、検索用ブロック図に記入するブロック要素の選択を行う「ブロック要素の選択」３３と、ブロック要素間の接続を行う「配線」３４を含んでいる。ユーザはこれらのメニューを用いて、入力装置２を介して検索用ブロック要素３１及び各ブロック要素間の配線、すなわち接続３２の入力を行なう。
【００３２】
検索用ブロック図作成部８は、ユーザによって検索用ブロック図作成画面及び入力装置２を介して入力されたデータに基づいて、検索用ブロック図を作成する。検索用ブロック図において表記されたブロック要素３１とブロック要素間の接続３２は、検索用ブロック図接続情報としてブロック図接続情報抽出部５によって抽出される。以下に、図３の検索用ブロック図からブロック図接続情報抽出部５によって抽出した検索用ブロック図接続情報のデータ例を示す。
【００３３】
［検索用ブロック図接続情報］
以下のデータは、左から、線のＩＤ，線の入力ブロック要素（種類：ＩＤ），線の出力ブロック要素（種類：ＩＤ）を示す。
ＳＷ００１，（Ａ：ＳＦ００１），（Ｂ：ＳＦ００２）
ＳＷ００２，（Ｂ：ＳＦ００２），（Ｃ：ＳＦ００３）
【００３４】
上記例において、検索用ブロック図接続情報のデータ形式は、ブロック図接続情報と同じく、ブロック要素の接続を示す線の固体を識別するためのＩＤ（ＳＷ００１，ＳＷ００２に相当）、と線の入力ブロック要素の種類（Ａ，Ｂに相当）と固体を識別するためのＩＤ（ＳＦ００１，ＳＦ００２に相当）と、線の出力ブロック要素として、その種類（Ｂ，Ｃに相当）と固体を識別するためのＩＤ（ＳＦ００２，ＳＦ００３に相当）とを、ブロック図の流れの順番に並べた形式としている。
【００３５】
図３の検索用ブロック図作成画面におけるメニューとして、さらに「検索開始」３５が設けられている。ユーザが「検索開始」３５をクリックすると、図面検索が開始される。図面検索については、以下の処理フローの説明の中でさらに詳述する。
【００３６】
図４に、図面検索処理を実行する場合の処理フローを示す。
図２のブロック図作成画面において「図面検索」２８が選択されると（ステップ１）、検索用ブロック図作成部８が、表示装置３に検索用ブロック図作成画面を表示する（ステップ２）。ユーザは検索用ブロック図、すなわち、検索対象として所望されるブロック要素３１及び各ブロック要素間の接続３２を作成する（ステップ３）。次いで、検索を開始するために、検索用ブロック図作成画面において「検索開始」３５を選択する（ステップ４）。
【００３７】
ブロック図接続情報抽出部５は作成された検索用ブロック図から、検索用ブロック図接続情報を抽出する（ステップ５）。検索用ブロック図接続情報記憶部９は抽出された検索用ブロック図接続情報を記憶する（ステップ６）。次に、ブロック図一致判定部１０が、検索用ブロック図接続情報における線の入力ブロック要素の種類と線の出力ブロック要素の種類とその順番と、ブロック図接続情報記憶部６に記憶されているブロック図接続情報における線の入力ブロック要素の種類と線の出力ブロック要素の種類とその順番とを比較する（ステップ７）。
【００３８】
比較の結果、前記種類と順番が一致するものがあるかどうかを判定し（ステップ８）、種類と順番が一致するものがあれば、ブロック図作成画面において一致するブロック要素を強調表示する（ステップ９）。図５にブロック図作成画面において一致するブロック要素を強調表示した例を示す。図５では、一致したブロック要素２１を破線で囲むことによって強調表示している。
次いで、全てのブロック図接続情報についての比較が終了したかを判定（ステップ１０）し、全てのブロック図接続情報についての比較が終了した場合には、当該図面検索処理は終了する（ステップ１１）。ステップ７〜１０の処理は、全てのブロック図接続情報についての比較が終了するまで実行される。
【００３９】
上記のように図面検索処理を実行することによって、ブロック図において所望の部分（所望のブロック要素及びその接続関係）の検索が容易になり、ブロック図保守作業の時間が短縮されると共に、プログラマの作業負担と人的ミスが軽減され、ブロック図保守作業の効率を高めることが可能となっている。
【００４０】
［自動検索］
次に、図２において「自動検索」２９を選択した場合の自動検索処理について説明する。「自動検索」２９の選択によって表示される自動検索用画面の一例を図６に示す。自動検索用画面は、検索設定入力部と検索結果表示部４３とを有する画面４０を備えている。検索設定入力部には、検索するブロック要素の個数を設定するブロック要素数設定部４１と、一致した箇所の強調表示を選択する強調表示選択部４２とが設けられている。
検索結果表示部４３は、比較元ブロック図接続情報（すなわち検索用ブロック図接続情報）と、比較元ブロック図接続情報と一致したブロック図接続情報を表示する。
【００４１】
図６の自動検索用画面におけるメニューとして、さらに「検索開始」４４が備えられている。ユーザが「検索開始」４４をクリックすると、自動検索が開始される。自動検索については、以下の処理フローの説明の中でさらに詳述する。
【００４２】
図７に自動検索処理を実行する場合の処理フローを示す。
図２のブロック図作成画面において「自動検索」２９が選択されると（ステップ２１）、自動ブロック図接続情報検出部１１が図６に示す自動検索用画面を表示装置３に表示する（ステップ２２）。ブロック図の中から同一パターンとして検出したいブロック要素の個数をブロック要素数設定部４１にて設定する（ステップ２３）。図６においては、例示として「３」が入力されている。
次に、自動検索を開始するために自動検索用画面の「検索開始」４４を選択する（ステップ２４）。
【００４３】
「検索開始」４４が選択されると、自動ブロック図接続情報検出部１１は、ステップ２３で設定されたブロック要素の個数単位で、ブロック図接続情報記憶部６に記憶されているブロック図接続情報を抽出し、抽出した情報を検索用ブロック図接続情報として検索用ブロック図接続情報記憶部９に記憶する（ステップ２５）。
次に、ブロック図一致判定部１０は、検索用ブロック図接続情報における線の入力ブロック要素の種類と線の出力ブロック要素の種類とその順番と、ブロック図接続情報記憶部６に記憶されているブロック図接続情報における線の入力ブロック要素の種類と線の出力ブロック要素の種類とその順番とを比較する（ステップ２６）。
【００４４】
比較の結果、前記種類と順番が一致するものがあるかどうかを判定し（ステップ２７）、種類と順番が一致するものがあれば、図６に示す検索結果表示部４３に表示する（ステップ２８）。このとき、比較元ブロック図接続情報と一致ブロック図接続情報の固体を識別するＩＤまで一致するような、同一内容を示す複数の表示が出ないように構成しても良い。また、強調表示選択部４２において強調表示が選択されている場合には、図５に示すようにブロック図作成画面において一致した部分を強調表示することもできる。
次いで、全てのブロック図接続情報についての比較が終了したかを判定（ステップ２９）し、全てのブロック図接続情報についての比較が終了した場合には、当該自動検索処理は終了する（ステップ３０）。ステップ２５〜２９の処理は、全てのブロック図接続情報についての比較が終了するまで実行される。
【００４５】
なお、上記実施形態における図６に示す自動検索用画面では、検索ブロック要素数が「３」に設定されており、比較元ブロック図接続情報（検索用ブロック図接続情報）として図２に表記されたブロック図の先頭から３つのブロック要素とその接続関係のみが表示されている。
しかしながら、これは説明のため、３つのブロック要素から構成される検索用ブロック図接続情報の一つを例示したものであり、検索用ブロック図接続情報は複数存在し得る。例えば、図６の例では検索ブロック要素数が「３」であるため、次の検索用ブロック図接続情報は、図２に表記されたブロック図の２番目のブロック要素（Ｂ）から数えて３つのブロック要素から抽出された情報となる。
すなわち、次の検索用ブロック図接続情報は
Ｗ００２，（Ｂ：Ｆ００２），（Ｃ：Ｆ００３）
Ｗ００３，（Ｃ：Ｆ００３），（Ｄ：Ｆ００４）
となる。
【００４６】
このように、ブロック図接続情報をブロック要素数単位で抽出する際には、一例として、ブロック図を構成するブロック要素のそれぞれを始点としてブロック要素数単位で検索用ブロック図接続情報を抽出することによって、設定されたブロック要素数で構成されるすべてのパターンを検索用ブロック図接続情報とすることができる。これらの検索用ブロック図接続情報のそれぞれについて、ブロック図接続情報と比較して検索することにより、設定されたブロック要素数で構成されるすべてのパターンについて、ブロック図接続情報中の同一パターンを検出することが可能である。
【００４７】
上記のように、「自動検索」処理を実行することによって、ブロック図において、同一パターンで作成されているブロック要素の特定が可能になる。したがって、ブロック図において特定の同一パターンを複数切り貼りした後に、当該パターンを修正する必要が生じた場合、切り貼りした複数の同一パターンの特定が容易となる。よって、「図面検索」処理と同様に、ブロック図保守作業における効率を高めることができる。
【図面の簡単な説明】
【００４８】
【図１】本発明の一実施形態に係るソフトウェア開発支援装置の模式的な構成を示す構成図である。
【図２】本発明の一実施形態における「ブロック図作成画面」を示す模式図である。
【図３】本発明の一実施形態における「検索用ブロック図作成画面」を示す模式図である。
【図４】本発明の一実施形態における「図面検索」処理の流れを示すフロー図である。
【図５】本発明の一実施形態おける「ブロック図作成画面」上での強調表示を示す模式図である。
【図６】本発明の一実施形態における「自動検索用画面」を示す模式図である。
【図７】本発明の一実施形態における「自動検索」処理の流れを示すフロー図である。
【符号の説明】
【００４９】
１  ソフトウェア開発支援装置
２  入力装置
３  表示装置
４  ブロック図作成部
５  ブロック図接続情報抽出部
６  ブロック図接続情報記憶部
７  プログラム生成部
８  検索用ブロック図作成部
９  検索用ブロック図接続情報記憶部
１０  ブロック図一致判定部
１１  自動ブロック図接続情報検出部
【図１】
0005228566.tif 000002
【図２】
0005228566.tif 000003
【図３】
0005228566.tif 000004
【図４】
0005228566.tif 000005
【図５】
0005228566.tif 000006
【図６】
0005228566.tif 000007
【図７】
0005228566.tif 000008