(57)【要約】【課題】本発明は、ブロック図に基づいて計算機言語によるプログラムを自動生成するソフトウェア開発支援装置おいて、ブロック図からプログラムコードを生成する前に、不適切なブロック図の表記を検出することにより、プログラミングに要する時間を短縮して作業効率を高めることを目的としている。【解決手段】本発明は、所定の条件を満たさないＮＧブロック図のブロック図接続情報をＮＧブロック図接続情報として予め記憶するＮＧブロック図接続情報記憶手段と、対象ブロック図接続情報とＮＧブロック図接続情報とを比較して、対象ブロック図接続情報の少なくとも一部が前記ＮＧブロック図接続情報と一致するか否かを判定するブロック図一致判定手段を備えている。【選択図】図１
2011013887.tif 000002
【特許請求の範囲】
【請求項１】
複数のブロック要素と該ブロック要素間の接続関係を表記したブロック図によって処理手順が示され、前記ブロック図に基づいて計算機言語によるプログラムを自動生成するソフトウェア開発支援装置であって、
前記ブロック図に表記された複数のブロック要素と該ブロック要素間の接続関係とを対象ブロック図接続情報として抽出するブロック図接続情報抽出手段と、
前記ブロック図接続情報抽出手段によって抽出された対象ブロック図接続情報を記憶する対象ブロック図接続情報記憶手段と、
前記対象ブロック図接続情報から、計算機言語によるプログラムを自動生成するプログラム生成手段と、
表記された複数のブロック要素及び／又は該ブロック要素間の接続関係が所定の条件を満たさないＮＧブロック図について、該ＮＧブロック図のブロック図接続情報をＮＧブロック図接続情報として記憶しておくＮＧブロック図接続情報記憶手段と、
前記プログラム生成手段が前記対象ブロック図接続情報から計算機言語によるプログラムを自動生成する前に、前記対象ブロック図接続情報記憶手段に記憶された前記対象ブロック図接続情報と、前記ＮＧブロック図接続情報記憶手段に記憶されたＮＧブロック図接続情報とを比較して、前記対象ブロック図接続情報の少なくとも一部が前記ＮＧブロック図接続情報と一致するか否かを判定するブロック図一致判定手段と
を備える、ソフトウェア開発支援装置。
【請求項２】
前記所定の条件を満たすように表記したＧＯＯＤブロック図のブロック図接続情報をＧＯＯＤブロック図接続情報として記憶しておくＧＯＯＤブロック図接続情報記憶手段と、
前記記憶されたＧＯＯＤブロック図接続情報に基づいて前記ＧＯＯＤブロック図を表示するＧＯＯＤブロック図表示手段と
をさらに備え、
前記ブロック図一致判定手段が、前記対象ブロック図接続情報の少なくとも一部が前記ＮＧブロック図接続情報と一致すると判定した場合に、前記ＧＯＯＤブロック図表示手段が前記ＮＧブロック図接続情報に対応する前記ＧＯＯＤブロック図接続情報に基づいてＧＯＯＤブロック図を表示することを特徴とする、請求項１に記載のソフトウェア開発支援装置。
【請求項３】
前記ＮＧブロック図の作成及び／又は修正を行うためのＮＧブロック図作成手段を備えることを特徴とする、請求項１又は２に記載のソフトウェア開発支援装置。
【請求項４】
前記ＧＯＯＤブロック図の作成及び／又は修正を行うためのＧＯＯＤブロック図作成手段を備えることを特徴とする、請求項２又は３に記載のソフトウェア開発支援装置。
【請求項５】
前記プログラム生成手段によってプログラムが自動生成されるブロック図を作成及び／又は修正するための対象ブロック図作成手段を備えることを特徴とする、請求項１〜４のいずれか１項に記載のソフトウェア開発支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理手順をブロック要素の接続によって表記したブロック図に基づいて、計算機言語によるプログラムを自動生成するソフトウェア開発支援装置に関する。
【背景技術】
【０００２】
従来、計算機に特定の処理を行わせるためのプログラムを作成する場合、プログラムの仕様をブロック図等で記述し、そのブロック図をもとにプログラマが計算機言語を用いたプログラムコードを作成することが行われている。そこで、プログラマによる作業時間の短縮やミスの防止のために、プログラム仕様として記述されたブロック図から、直接、計算機言語によるプログラムコードに変換するソフトウェア開発支援装置が特許文献１及び特許文献２において提案されている。
特許文献１は、プログラム仕様として記述されたブロック図から制御用プログラムを機械語で生成する技術を提案している。特許文献２は、プログラム仕様として記述されたブロック図から計算機言語を用いたプログラムコードを生成する技術を提案している。
【０００３】
また、非特許文献１はプログラムコードのコーディングルールについて開示している。生成されたプログラムコードがこのコーディングルールに従っているかについては、例えば、市販のソフトウェア「ＱＡＣ」（東陽テクニカ）等のツールを使用して確認することが出来る。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平５−８８８６９号公報
【特許文献２】特開２００６−３０１９８９号公報
【非特許文献】
【０００５】
【非特許文献１】独立行政法人情報処理推進機構  ソフトウェア・エンジニアリング・センター編  「改訂版  組込みソフトウェア開発向けコーディング作法ガイド［Ｃ言語版］」  ２００７年
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記特許文献１及び２に開示されたソフトウェア開発支援装置は、ブロック図からプログラムコードを自動生成するように構成されているため、プログラマの作業時間を削減することができる。しかしながら、ブロック図の作成時において、当該ブロック図に関するプログラムとしての性能を把握することはできない。すなわち、所望の処理を実現するプログラムコードを生成できるように当該ブロック図が適切に表記されているか否かについては、ブロック図からプログラムコードを生成してみなければ判断することができない。
非特許文献１には、プログラムコードのコーディングルールが記述されていて、前述のような市販のツールを使用することによってブロック図から生成されたプログラムコードが前記コーディングルールに従っているか否かの確認を行うことはできる。しかしながら、非特許文献１はブロック図の表記に関してルールを定めているものではないため、非特許文献１の開示によっても、ブロック図の作成時において、当該ブロック図に関するプログラムとしての性能を把握することはできない。
【０００７】
上記に指摘したように、従来技術においてプログラム性能は、ブロック図からプログラムコードを生成した後でなければ把握することができない。ブロック図からプログラムを生成した後の試験において、そのプログラムコードが所定の性能を実現するように記述されていないことが判明すると、プログラムコードの修正のためにブロック図の修正を行う必要が生じるため、プログラミングの作業時間が長くなってしまう。
したがって本発明は、ブロック図からプログラムコードを生成する前に、ブロック図における不適切な表記を検出することにより、プログラミングに要する時間を短縮して作業効率を高めることを目的としている。
【課題を解決するための手段】
【０００８】
本発明は、複数のブロック要素と該ブロック要素間の接続関係を表記したブロック図によって処理手順が示され、前記ブロック図に基づいて計算機言語によるプログラムを自動生成するソフトウェア開発支援装置であって、前記ブロック図に表記された複数のブロック要素と該ブロック要素間の接続関係とを対象ブロック図接続情報として抽出するブロック図接続情報抽出手段と、前記ブロック図接続情報抽出手段によって抽出された対象ブロック図接続情報を記憶する対象ブロック図接続情報記憶手段と、前記対象ブロック図接続情報から、計算機言語によるプログラムを自動生成するプログラム生成手段と、表記された複数のブロック要素及び／又は該ブロック要素間の接続関係が所定の条件を満たさないＮＧブロック図について、該ＮＧブロック図のブロック図接続情報をＮＧブロック図接続情報として記憶しておくＮＧブロック図接続情報記憶手段と、前記プログラム生成手段が前記対象ブロック図接続情報から計算機言語によるプログラムを自動生成する前に、前記対象ブロック図接続情報記憶手段に記憶された前記対象ブロック図接続情報と、前記ＮＧブロック図接続情報記憶手段に記憶されたＮＧブロック図接続情報とを比較して、前記対象ブロック図接続情報の少なくとも一部が前記ＮＧブロック図接続情報と一致するか否かを判定するブロック図一致判定手段とを備える。
【０００９】
本発明に係る前記ソフトウェア開発支援装置は、それ自体が一般的なコンピュータとソフトウェアとを協働させることにより実現される。すなわち、コンピュータの入力手段、記憶手段、演算手段等のハードウェア資源がソフトウェアにより具体的に動作して専用装置としての動作が実現する。
【００１０】
入力手段とは、キーボードやマウスなどのユーザの操作による入力手段のほか、フロッピー（登録商標）ディスクなどの記録媒体による入力、あるいは通信回線やＬＡＮ（ローカルエリアネットワーク）などの電気信号による入力を受け付ける手段を含む。記憶手段とは、文字や数字などのデータや、プログラムなどを記憶するための手段である。例えば、コンピュータ内のランダムアクセスメモリ、ハードディスクなどである。演算手段とは、プログラムを実行するための数値計算手段のことである。例えば、一般に中央処理装置すなわちＣＰＵといわれているものである。コンピュータとは、上記のような入力手段と、記憶手段と、演算手段とを少なくとも含む電子計算機をいう。
【００１１】
例えば、前記所定の条件を満たすように表記したＧＯＯＤブロック図のブロック図接続情報をＧＯＯＤブロック図接続情報として記憶しておくＧＯＯＤブロック図接続情報記憶手段と、前記記憶されたＧＯＯＤブロック図接続情報に基づいて前記ＧＯＯＤブロック図を表示するＧＯＯＤブロック図表示手段とをさらに備え、前記ブロック図一致判定手段が、前記対象ブロック図接続情報の少なくとも一部が前記ＮＧブロック図接続情報と一致すると判定した場合に、前記ＧＯＯＤブロック図表示手段が前記ＮＧブロック図接続情報に対応する前記ＧＯＯＤブロック図接続情報に基づいてＧＯＯＤブロック図を表示する。
【００１２】
一例として、前記ブロック図作成手段は、前記ＮＧブロック図の作成及び／又は修正を行うためのＮＧブロック図作成手段及び／又は前記ＧＯＯＤブロック図の作成及び／又は修正を行うためのＧＯＯＤブロック図作成手段を備える。また、前記プログラム生成手段によってプログラムが自動生成されるブロック図を作成及び／又は修正するための対象ブロック図作成手段を備えるように構成しても良い。
【発明の効果】
【００１３】
本発明においては、ＮＧブロック図接続情報記憶手段が、所定の条件を満たさないＮＧブロック図のブロック図接続情報をＮＧブロック図接続情報として予め記憶しており、ブロック図一致判定手段が、対象ブロック図接続情報の少なくとも一部が前記ＮＧブロック図接続情報と一致するか否かを判定するように構成されている。ＮＧブロック図は所定の条件を満たさないブロック図であるから、ＮＧブロック図接続情報と一致した対象ブロック図接続情報に対応するブロック図の表記は不適切な表記ということになる。このように、本発明によれば、プログラム生成手段がブロック図からプログラムコードを生成する前に、ブロック図における不適切な表記を検出することができるため、プログラムコード生成前にブロック図の修正を行うことが可能となり、プログラミングに要する時間を短縮して作業効率を高めることができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態に係るソフトウェア開発支援装置の模式的な構成を示す構成図である。
【図２】本発明の一実施形態における「対象ブロック図作成画面」を示す模式図である。
【図３】本発明の一実施形態における「ＮＧ・ＧＯＯＤ登録」処理の流れを示すフロー図である。
【図４】本発明の一実施形態における「ＮＧ・ＧＯＯＤブロック図登録情報画面」を示す模式図である。
【図５】本発明の一実施形態における「ＮＧブロック図登録情報画面」を示す模式図である。
【図６】本発明の一実施形態における「ＧＯＯＤブロック図登録情報画面」を示す模式図である。
【図７】本発明の一実施形態における「ＮＧ検出」処理の流れを示すフロー図である。
【図８】本発明の一実施形態おける「対象ブロック図作成画面」上での強調表示及びＧＯＯＤブロック図表示を示す模式図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態を添付の図により説明する。図１に本実施形態に係るソフトウェア開発支援装置の構成図を示す。ソフトウェア開発支援装置１は、それ自体が一般的なコンピュータとソフトウェアとを協働させることにより実現される。すなわち、コンピュータの入力手段、記憶手段、演算手段等のハードウェア資源がソフトウェアにより具体的に動作して専用装置としての動作が実現している。
【００１６】
ソフトウェア開発支援装置１は、入力装置２と表示装置３を備えている。入力装置２は、外部からの入力を受け付け、表示装置３は、各種入力画面、各種データ及び該ソフトウェア開発支援装置１の出力結果を表示する。
対象ブロック図作成部４は、表示装置３に表示された対象ブロック図作成画面及び入力装置２を介して入力されたデータに基づいて、複数のブロック要素とブロック要素間の接続関係の作成及び／又は修正を行なってブロック図を作成及び／又は修正する。対象ブロック図作成部４によって作成されるブロック図は、当該ブロック図から所望のプログラムコードを生成するために作成されるブロック図（以下、対象ブロック図という）である。
【００１７】
ＮＧ・ＧＯＯＤブロック図作成部８は、所定の条件を満たさないブロック図（以下、ＮＧブロック図という）を作成及び／又は修正するＮＧブロック図作成手段と、所定の条件を満たすブロック図（以下、ＧＯＯＤブロック図という）を作成及び／又は修正するＧＯＯＤブロック図作成手段を備えている。所定の条件とは、所望の性能を実現するプログラムを生成するためにブロック図の表記上必要な条件であって、一例として後述するように、ブロック要素の種別とその接続関係に関する条件である。所定の条件を満たすＧＯＯＤブロック図は、所定の条件を満たさないＮＧブロック図に対応して作成される。すなわち、ＧＯＯＤブロック図は、対応する特定のＮＧブロック図が本来あるべき適切な表記を示したブロック図である。
【００１８】
ここで作成されるＮＧブロック図及びＧＯＯＤブロック図は、対象ブロック図作成部４によって作成されたブロック図と同様、複数のブロック要素とブロック要素間の接続関係を有するものである。ブロック図接続情報抽出部５は、作成された各ブロック図の複数のブロック要素とブロック要素間の接続関係とをブロック図接続情報として抽出する。ブロック図接続情報の具体例については後述する。
対象ブロック図接続情報記憶部６は、ブロック図接続情報抽出部５によって対象ブロック図から抽出されたブロック図接続情報（以下、対象ブロック図接続情報という）を記憶する。プログラム生成部７は、対象ブロック図接続情報記憶部６に記憶された対象ブロック図接続情報に基づいて計算機言語によるプログラムを自動生成する。
【００１９】
ＮＧブロック図接続情報記憶部９は、ブロック図接続情報抽出部５によってＮＧブロック図から抽出されたブロック図接続情報（以下、ＮＧブロック図接続情報という）を記憶する。ＧＯＯＤブロック図接続情報記憶部１０は、ブロック図接続情報抽出部５によってＧＯＯＤブロック図から抽出されたブロック図接続情報（以下、ＧＯＯＤブロック図接続情報という）を記憶する。
ブロック図一致判定部１１は、対象ブロック図接続情報記憶部６に記憶された対象ブロック図接続情報と、ＮＧブロック図接続情報記憶部９に記憶されたＮＧブロック図接続情報とを比較して、対象ブロック図接続情報の少なくとも一部がＮＧブロック図接続情報と一致するか否かを判定する。
ＧＯＯＤブロック図表示部１２は、ブロック図一致判定部１１によって、対象ブロック図接続情報の少なくとも一部がＮＧブロック図接続情報と一致すると判定された場合に、当該ＮＧブロック図接続情報に対応するＧＯＯＤブロック図接続情報に基づいてＧＯＯＤブロック図を表示する。
上記ブロック図一致判定部１１による判定とＧＯＯＤブロック図表示部１２によるＧＯＯＤブロック図接続情報の表示は、プログラム生成部７によって対象ブロック図接続情報からプログラムコードが自動生成される前に、すなわち、対象ブロック図が作成及び／又は修正されたときに実行される。
【００２０】
次に、ソフトウェア開発支援装置１において用いられる各種入力及び表示画面、各種データの構造等について言及しながら、ソフトウェア開発支援装置１の動作について説明する。図２に、対象ブロック図を作成及び／又は修正するための対象ブロック図作成画面の例を示す。対象ブロック図作成画面２０は、表記用画面２３と、対象ブロック図の作成及びその他の作業に必要な操作を行うための各種メニューボタンとから構成されている。表記用画面２３上において、ユーザは対象ブロック図の作成や修正のために、ブロック要素２１とブロック要素間の接続を行う配線２２を表記することができる。
【００２１】
メニューボタンとしては、ブロック図のファイル操作を行うための「ファイル」２４、ブロック図に記入するブロック要素の選択を行うための「ブロック要素の選択」２５、ブロック要素間の接続を行うための「配線」２６が設けられている。ユーザはこれらのメニューを用いて、入力装置２を介してブロック要素２１及び各ブロック要素間の配線、すなわち接続２２の入力及び修正用入力を行なう。
例えば、「ブロック要素の選択」２５をクリックすると、各種ブロック要素を表示した画面が開き、ユーザはそこから所望のブロック要素を選択することによって、画面２３上にブロック要素２１を表記することができる。また、一例として、「配線」２６をクリックすると、マウスポインタの形状が変化し、マウスを移動させることによって、画面２３に表示された所望のブロック要素間に接続２２を示す矢印線を表記することができる。
【００２２】
対象ブロック図作成部４は、ユーザによって対象ブロック図作成画面２０及び入力装置２を介して入力されたデータに基づいて、対象ブロック図を作成する。ブロック図において表記されたブロック要素２１とブロック要素間の接続２２は、対象ブロック図接続情報としてブロック図接続情報抽出部５によって抽出される。図２に示す対象ブロック図から抽出された対象ブロック図接続情報のデータ構造について、その一例を以下に示す。
【００２３】
線のＩＤ，線の入力ブロック要素（種類：ＩＤ），線の出力ブロック要素（種類：ＩＤ）
W001，(A:F001)，(B:F002)
W002，(B:F002)，(C:F003)
W003，(C:F003)，(D:F004)
W004，(D:F004)，(A:F005)
W005，(A:F005)，(B:F006)
W006，(B:F006)，(E:F007)
W007，(E:F007)，(D:F008)
W008，(D:F008)，(A:F009)
W009，(A:F009)，(E:F010)
W010，(E:F010)，(C:F011)
W011，(C:F011)，(E:F012)
【００２４】
対象ブロック図接続情報のデータ構造としては、ブロック要素の接続を示す線の固体を識別するためのＩＤ（図２では、Ｗ００１〜Ｗ０１１に相当）と、線の入力ブロック要素の種類（図２では、Ａ、Ｂ、Ｃ、Ｄ、Ｅに相当）と固体を識別するためのＩＤ（図２では、Ｆ００１〜Ｆ０１２に相当）と、線の出力ブロック要素の種類と固体を識別するためのＩＤとを、ブロック図の流れの順番に並べた形式としている。なお、線の入力ブロック要素とは、接続２２を表す矢印線の起点に表記されたブロック要素であり、線の出力ブロック要素とは当該矢印線の終点に表記されたブロック要素である。
ブロック図接続情報抽出部５によって抽出された対象ブロック図接続情報は対象ブロック図接続情報記憶部６に記憶される。
【００２５】
［ＮＧブロック図及びＧＯＯＤブロック図の登録］
ソフトウェア開発支援装置１は、所定の条件を満たさない表記がなされたＮＧブロック図を予め登録しておき、入力した対象ブロック図を登録したＮＧブロック図と比較して、対象ブロック図における不適切な表記を検出できるように構成されている。さらに、本実施形態は、検出された不適切な表記をどのように修正すれば良いのかを示すために、ＮＧブロック図に対応するＧＯＯＤブロック図も登録しておくように構成されている。対象ブロック図作成画面２０は、これらのＮＧブロック図及びＧＯＯＤブロック図の登録作業を行なう場合に使用するメニューボタン「ＮＧ・ＧＯＯＤ登録」２９を備えている。
【００２６】
対象ブロック図作成画面２０において「ＮＧ・ＧＯＯＤ登録」２９を選択した場合に実行される処理の流れについて、図３を参照しながら説明する。
まず、ユーザが対象ブロック図作成画面２０において「ＮＧ・ＧＯＯＤ登録」２９を選択すると（ステップ１）、ＮＧ・ＧＯＯＤブロック図登録情報画面が表示される（ステップ２）。
ＮＧ・ＧＯＯＤブロック図登録情報画面の一例を図４に示す。ＮＧ・ＧＯＯＤブロック図登録情報画面３０は、登録情報を表示するＮＧ・ＧＯＯＤブロック図登録情報表示部３１と、新しくＮＧブロック図及びＧＯＯＤブロック図を登録するためのメニューボタン「新規登録」３２と、登録情報の修正を行うためのメニューボタン「修正」３３を有している。
【００２７】
新たなＮＧブロック図を登録する場合には、「新規登録」３２を選択する（図３のステップ３、４）。「新規登録」３２を選択すると、ＮＧブロック図登録画面が表示される（ステップ５）。ＮＧブロック図登録画面の一例を図５に示す。ＮＧブロック図登録画面４０は、ブロック要素４１とブロック要素間の接続を行う配線４２の作成を行う表記用画面４３と、各種メニューボタンから構成されている。
各種メニューボタンとしては、ＮＧブロック図に記入するブロック要素の選択を行うための「ブロック要素の選択」４４と、ブロック要素間の接続を行うための「配線」４５と、作成したＮＧブロック図に対応するＧＯＯＤブロック図を登録するための「ＧＯＯＤ登録」４６が設けられている。
【００２８】
ユーザは、「ブロック要素の選択」４４と「配線」４５を適宜選択することによって、表記用画面４３の画面上においてＮＧブロック図を作成することができる（図３のステップ６）。メニューボタン「ブロック要素の選択」４４と「配線」４５を使用したＮＧブロック図の作成方法は、図２を参照して前述した、対象ブロック図作成画面２０における対象ブロック図の作成方法と同様である。
ＮＧ・ＧＯＯＤブロック図作成部８におけるＮＧブロック図作成手段は、ユーザによってＮＧブロック図作成画面４０及び入力装置２を介して入力されたデータに基づいて、ＮＧブロック図を作成する。ブロック図において表記されたブロック要素４１とブロック要素間の接続４２は、ＮＧブロック図接続情報としてブロック図接続情報抽出部５によって抽出される。図５に示すＮＧブロック図から抽出されたＮＧブロック図接続情報のデータ構造について、その一例を以下に示す。
【００２９】
線のＩＤ，線の入力ブロック要素（種類：ＩＤ），線の出力ブロック要素（種類：ＩＤ）
SW001，(A:SF001)，(B:SF002)
SW002，(A:SF002)，(B:SF003)
【００３０】
ＮＧブロック図接続情報のデータ構造としては、対象ブロック図接続情報と同じく、ブロック要素の接続を示す線の固体を識別するためのＩＤ（図５では、ＳＷ００１〜ＳＷ００２に相当）、と線の入力ブロック要素の種類（図５では、Ａ，Ｂ，Ｃに相当）と固体を識別するためのＩＤ（図５では、ＳＦ００１〜ＳＦ００３に相当）と、線の出力ブロック要素の種類と固体を識別するためのＩＤとを、ブロック図の流れの順番に並べた形式としている。
以上のようにユーザがＮＧブロック図を作成した後で、図５に示す「ＧＯＯＤ登録」４６を選択すると（図３のステップ７）、ＧＯＯＤブロック図登録画面が表示される（ステップ８）。ＧＯＯＤブロック図登録画面の一例を図６に示す。ＧＯＯＤブロック図登録画面５０は、ブロック要素５１とブロック要素間の接続を行う配線５２の作成を行う表記用画面５３と、各種メニューボタンから構成されている。
【００３１】
メニューボタンとしては、ＧＯＯＤブロック図に記入するブロック要素の選択を行うための「ブロック要素の選択」５４と、ブロック要素間の接続を行うための「配線」５５と、作成したＮＧブロック図及びＧＯＯＤブロック図のブロック接続情報を記憶させるための「登録完了」５６が設けられている。
ユーザは、ＮＧブロック図登録画面４０におけるＮＧブロック図の作成と同様に、「ブロック要素の選択」５４と「配線」５５を適宜選択してＧＯＯＤブロック図を作成する（図３のステップ９及び１０）。
ＮＧ・ＧＯＯＤブロック図作成部８におけるＧＯＯＤブロック図作成手段は、ユーザによってＧＯＯＤブロック図作成画面５０及び入力装置２を介して入力されたデータに基づいて、ＧＯＯＤブロック図を作成する。ブロック図において表記されたブロック要素５１とブロック要素間の接続５２は、ＧＯＯＤブロック図接続情報としてブロック図接続情報抽出部５によって抽出される。
なお、ＧＯＯＤブロック図接続情報のデータ構造は、ＮＧブロック図接続情報のデータ構造と同様である。
ＧＯＯＤブロック図作成後に「登録完了」５６を選択すると、ブロック図接続情報抽出部５によって抽出されたＮＧブロック図接続情報及びＧＯＯＤブロック図接続情報がそれぞれＮＧブロック図接続情報記憶部９及びＧＯＯＤブロック図接続情報記憶部１０に記憶されて、ＮＧブロック図及びＧＯＯＤブロック図の登録が完了する（図３のステップ１１及び２１）。ＮＧブロック図の作成後に対応するＧＯＯＤブロック図の作成を行なわない場合には、ＧＯＯＤブロック図の作成を行なわずに「登録完了」５６を選択する（ステップ９及び１１）。この場合、ＮＧブロック図のみが登録される。
【００３２】
次いで、新たなＮＧブロック図の作成ではなく既に登録されているＮＧブロック図の修正を行なう場合の処理の流れについて説明する。この場合、処理の流れは図３のステップ３からステップ１２に進む。図４に示すＮＧ・ＧＯＯＤブロック図登録情報画面３０において、ＮＧ・ＧＯＯＤブロック図登録情報表示部３１には既に登録されているＮＧブロック図及びＧＯＯＤブロック図の接続情報が表示されている。ＮＧ・ＧＯＯＤブロック図登録情報表示部３１における表示は、一例として、図４に示すように、ＮＧ又はＧＯＯＤブロック図接続情報を選択するためのチェックボックス３５と、各ＮＧ・ＧＯＯＤブロック図接続情報を識別するための登録番号３６と、ＮＧブロック図接続情報表示３７とＧＯＯＤブロック図接続情報表示３８とを含んでいる。
【００３３】
ユーザは修正したいＮＧブロック図にチェックを入れて、メニューボタン「修正」３３を選択する（図３のステップ１２）。「修正」３３が選択されると、ＮＧブロック図登録画面４０が表示され、表記用画面４３には、チェックされたＮＧブロック図接続情報に基づいたＮＧブロック図が既に表示されている（ステップ１３）。前述したＮＧブロック図の作成と同様、ユーザは「ブロック要素の選択」４４と「配線」４５を適宜選択してＮＧブロック図を修正する（ステップ１４及び１５）。ＮＧブロック図の修正が終了したら、「ＧＯＯＤ登録」４６を選択して、ＧＯＯＤブロック図登録画面５０における作業に移行する。
また、チェックしたＮＧブロック図に対する修正は行わず、チェックしたＮＧブロック図に対応するＧＯＯＤブロック図の作成や修正のみを行なう場合も想定される。この場合、ＮＧブロック図登録画面４０においてＮＧブロック図の修正作業は行なわずに、「ＧＯＯＤ登録」４６を選択して、ＧＯＯＤブロック図登録画面５０における作業に移行する（ステップ１４及び１６）。
【００３４】
「ＧＯＯＤ登録」４６が選択されると、図６に示したＧＯＯＤブロック図登録画面５０が表示される。表記用画面５３には、チェックされたＮＧブロック図接続情報に対応するＧＯＯＤブロック図接続情報に基づいて、ＧＯＯＤブロック図が既に表示されている。前述したＮＧブロック図の修正と同様、ユーザは「ブロック要素の選択」５４と「配線」５５を適宜選択してＧＯＯＤブロック図を修正する（ステップ１８及び１９）。
なお、チェックされたＮＧブロック図接続情報に対応するＧＯＯＤブロック図接続情報が存在しなかった場合には、表記用画面５３にはブロック図は表示されていない。チェックしたＮＧブロック図に対応する新たなＧＯＯＤブロック図を作成したい場合には、ユーザは、前述のステップ１０におけるＧＯＯＤブロック図の作成と同様、「ブロック要素の選択」５４と「配線」５５を適宜選択してＧＯＯＤブロック図を作成する。
【００３５】
以上のように、ＧＯＯＤブロック図の修正又は作成が終了すると、ユーザは「登録完了」５６を選択する（ステップ２０）。また、ＧＯＯＤブロック図の修正又は作成を行なわない場合は、ＧＯＯＤブロック図登録画面５０の表示後、修正等の作業を行なうことなく、「登録完了」５５を選択する。
「登録完了」５５が選択されると、修正したＮＧブロック図と修正又は作成したＧＯＯＤブロック図のブロック図接続情報がそれぞれＮＧブロック図接続情報記憶部９及びＧＯＯＤブロック図接続情報記憶部１０に記憶されて、修正されたＮＧブロック図と修正又は作成されたＧＯＯＤブロック図の登録が完了する（図３のステップ２０及び２１）。
【００３６】
［対象ブロック図とＮＧブロック図の比較］
ソフトウェア開発支援装置１は、上記のように登録されたＮＧブロック図と対象ブロック図と比較して、対象ブロック図の中からＮＧブロック図と一致する表記を検出することにより、対象ブロック図における不適切な表記を検出できるように構成されている。
図２に示す対象ブロック図作成画面２０は、対象ブロック図の中から不適切な表記を検出する作業を行うためのメニューボタン「ＮＧ検出」２８を備えている。
【００３７】
図７に、「ＮＧ検出」２８を選択した場合の処理の流れを示す。
「ＮＧ検出」２８が選択されると、ブロック図一致判定部１１が、ＮＧブロック図接続情報における線の入力ブロック要素の種類と線の出力ブロック要素の種類とその順番と、対象ブロック図接続情報における線の入力ブロック要素の種類と線の出力ブロック要素の種類とその順番とを比較する（ステップ３０〜ステップ３２）。本実施形態においては、登録番号の小さいＮＧブロック図接続情報から順に比較を行なっている。このＮＧブロック図の登録番号は、図４において例示した各ＮＧブロック図接続情報を識別するための番号３６である。
【００３８】
ブロック図一致判定部１１は、比較の結果、前記ブロック要素の種類と順番が一致するものがあるかどうかを判定し（ステップ３３）、種類と順番が一致するものがあれば、ブロック図作成画面において一致するブロック要素を強調表示する（ステップ３４）。図８にブロック図作成画面において一致するブロック要素を強調表示した例を示す。図８では、一致したブロック要素２１を破線で囲むことによって強調表示している。
次いで、比較対象となっているＮＧブロック図に対応するＧＯＯＤブロック図が存在する場合には、ブロック要素６１とブロック要素間の接続を行う配線６２からなるＧＯＯＤブロック図を示す小ウィンドウ６０を表示する（ステップ３５及び３６）。なお、小ウィンドウ６０に示されたＧＯＯＤブロック図に対応する対象ブロック図の一部（すなわち、対応するＮＧブロック図と一致した部分）は、表示枠６３によって示されている。上記ステップ３２〜ステップ３６の処理は、すべての対象ブロック図接続情報について実行される。
【００３９】
すべての対象ブロック図接続情報について、ＮＧブロック図接続情報との比較が終了すると、比較が終了したＮＧブロック図接続情報の次の登録番号を有するＮＧブロック図接続情報と対象ブロック図接続情報との比較が実行される（ステップ３７〜ステップ３９）。このようにして、登録されているすべてのＮＧブロック図接続情報と対象ブロック図接続情報との比較が実行され、対象ブロック図において、不適切な表記が検出されると共に、正しい表記を示すＧＯＯＤブロック図が表示される。
ユーザが検出された不適切な表記を修正した後に、対象ブロック図作成画面２０におけるメニューボタン「自動生成」２７を選択すると、適切な表記となった対象ブロック図からプログラム生成部７によってプログラムコードが自動生成される。
【００４０】
上記のように、ソフトウェア開発支援装置１においては、対象ブロック図を作成した段階において、「ＮＧ検出」処理を実行することにより、ブロック図からプログラムコードを生成する前にブロック図から不適切な表記を検出し、修正することができる。したがって、作業時間の短縮を実現すると共に、誤表記の見落としなどのミスの発生を抑制することができる。
また、予めＮＧブロック図に対応するＧＯＯＤブロック図を登録しておいた場合には、検出された不適切な表記に対応したＧＯＯＤブロック図が表示されるため、検出された不適切な表記をどのように修正すれば良いのかすぐに把握することができ、修正に要する作業時間が短縮される。
さらに、ソフトウェア開発支援装置１は、ＮＧブロック図及びＧＯＯＤブロック図を適宜新たに登録したり、修正したりすることが可能であるため、装置の拡張性が高いという利点も有している。
【００４１】
以上、本発明の一実施形態について述べたが、本発明は既述の実施形態に限定されるものではなく、本発明の技術的思想に基づいて各種の変形及び変更が可能である。
【符号の説明】
【００４２】
１  ソフトウェア開発支援装置
４  対象ブロック図作成部
５  ブロック図接続情報抽出部
６  対象ブロック図接続情報記憶部
７  ＮＧ・ＧＯＯＤブロック図作成部
９  ＮＧブロック図接続情報記憶部
１０  ＧＯＯＤブロック図接続情報記憶部
１１  ブロック図一致判定部
１２  ＧＯＯＤブロック図表示部
【図１】
2011013887.tif 000003
【図２】
2011013887.tif 000004
【図３】
2011013887.tif 000005
【図４】
2011013887.tif 000006
【図５】
2011013887.tif 000007
【図６】
2011013887.tif 000008
【図７】
2011013887.tif 000009
【図８】
2011013887.tif 000010