JP2011013887A - ソフトウェア開発支援装置 - Google Patents

ソフトウェア開発支援装置 Download PDF

Info

Publication number
JP2011013887A
JP2011013887A JP2009156868A JP2009156868A JP2011013887A JP 2011013887 A JP2011013887 A JP 2011013887A JP 2009156868 A JP2009156868 A JP 2009156868A JP 2009156868 A JP2009156868 A JP 2009156868A JP 2011013887 A JP2011013887 A JP 2011013887A
Authority
JP
Japan
Prior art keywords
block diagram
connection information
good
target
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2009156868A
Other languages
English (en)
Inventor
Toshihisa Tashigeta
稔久 田重田
Yoshinobu Sato
芳信 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Systems Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Electric Systems Co Ltd filed Critical Fuji Electric Systems Co Ltd
Priority to JP2009156868A priority Critical patent/JP2011013887A/ja
Publication of JP2011013887A publication Critical patent/JP2011013887A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】本発明は、ブロック図に基づいて計算機言語によるプログラムを自動生成するソフトウェア開発支援装置おいて、ブロック図からプログラムコードを生成する前に、不適切なブロック図の表記を検出することにより、プログラミングに要する時間を短縮して作業効率を高めることを目的としている。
【解決手段】本発明は、所定の条件を満たさないNGブロック図のブロック図接続情報をNGブロック図接続情報として予め記憶するNGブロック図接続情報記憶手段と、対象ブロック図接続情報とNGブロック図接続情報とを比較して、対象ブロック図接続情報の少なくとも一部が前記NGブロック図接続情報と一致するか否かを判定するブロック図一致判定手段を備えている。
【選択図】図1

Description

本発明は、処理手順をブロック要素の接続によって表記したブロック図に基づいて、計算機言語によるプログラムを自動生成するソフトウェア開発支援装置に関する。
従来、計算機に特定の処理を行わせるためのプログラムを作成する場合、プログラムの仕様をブロック図等で記述し、そのブロック図をもとにプログラマが計算機言語を用いたプログラムコードを作成することが行われている。そこで、プログラマによる作業時間の短縮やミスの防止のために、プログラム仕様として記述されたブロック図から、直接、計算機言語によるプログラムコードに変換するソフトウェア開発支援装置が特許文献1及び特許文献2において提案されている。
特許文献1は、プログラム仕様として記述されたブロック図から制御用プログラムを機械語で生成する技術を提案している。特許文献2は、プログラム仕様として記述されたブロック図から計算機言語を用いたプログラムコードを生成する技術を提案している。
また、非特許文献1はプログラムコードのコーディングルールについて開示している。生成されたプログラムコードがこのコーディングルールに従っているかについては、例えば、市販のソフトウェア「QAC」(東陽テクニカ)等のツールを使用して確認することが出来る。
特開平5−88869号公報 特開2006−301989号公報
独立行政法人情報処理推進機構 ソフトウェア・エンジニアリング・センター編 「改訂版 組込みソフトウェア開発向けコーディング作法ガイド[C言語版]」 2007年
上記特許文献1及び2に開示されたソフトウェア開発支援装置は、ブロック図からプログラムコードを自動生成するように構成されているため、プログラマの作業時間を削減することができる。しかしながら、ブロック図の作成時において、当該ブロック図に関するプログラムとしての性能を把握することはできない。すなわち、所望の処理を実現するプログラムコードを生成できるように当該ブロック図が適切に表記されているか否かについては、ブロック図からプログラムコードを生成してみなければ判断することができない。
非特許文献1には、プログラムコードのコーディングルールが記述されていて、前述のような市販のツールを使用することによってブロック図から生成されたプログラムコードが前記コーディングルールに従っているか否かの確認を行うことはできる。しかしながら、非特許文献1はブロック図の表記に関してルールを定めているものではないため、非特許文献1の開示によっても、ブロック図の作成時において、当該ブロック図に関するプログラムとしての性能を把握することはできない。
上記に指摘したように、従来技術においてプログラム性能は、ブロック図からプログラムコードを生成した後でなければ把握することができない。ブロック図からプログラムを生成した後の試験において、そのプログラムコードが所定の性能を実現するように記述されていないことが判明すると、プログラムコードの修正のためにブロック図の修正を行う必要が生じるため、プログラミングの作業時間が長くなってしまう。
したがって本発明は、ブロック図からプログラムコードを生成する前に、ブロック図における不適切な表記を検出することにより、プログラミングに要する時間を短縮して作業効率を高めることを目的としている。
本発明は、複数のブロック要素と該ブロック要素間の接続関係を表記したブロック図によって処理手順が示され、前記ブロック図に基づいて計算機言語によるプログラムを自動生成するソフトウェア開発支援装置であって、前記ブロック図に表記された複数のブロック要素と該ブロック要素間の接続関係とを対象ブロック図接続情報として抽出するブロック図接続情報抽出手段と、前記ブロック図接続情報抽出手段によって抽出された対象ブロック図接続情報を記憶する対象ブロック図接続情報記憶手段と、前記対象ブロック図接続情報から、計算機言語によるプログラムを自動生成するプログラム生成手段と、表記された複数のブロック要素及び/又は該ブロック要素間の接続関係が所定の条件を満たさないNGブロック図について、該NGブロック図のブロック図接続情報をNGブロック図接続情報として記憶しておくNGブロック図接続情報記憶手段と、前記プログラム生成手段が前記対象ブロック図接続情報から計算機言語によるプログラムを自動生成する前に、前記対象ブロック図接続情報記憶手段に記憶された前記対象ブロック図接続情報と、前記NGブロック図接続情報記憶手段に記憶されたNGブロック図接続情報とを比較して、前記対象ブロック図接続情報の少なくとも一部が前記NGブロック図接続情報と一致するか否かを判定するブロック図一致判定手段とを備える。
本発明に係る前記ソフトウェア開発支援装置は、それ自体が一般的なコンピュータとソフトウェアとを協働させることにより実現される。すなわち、コンピュータの入力手段、記憶手段、演算手段等のハードウェア資源がソフトウェアにより具体的に動作して専用装置としての動作が実現する。
入力手段とは、キーボードやマウスなどのユーザの操作による入力手段のほか、フロッピー(登録商標)ディスクなどの記録媒体による入力、あるいは通信回線やLAN(ローカルエリアネットワーク)などの電気信号による入力を受け付ける手段を含む。記憶手段とは、文字や数字などのデータや、プログラムなどを記憶するための手段である。例えば、コンピュータ内のランダムアクセスメモリ、ハードディスクなどである。演算手段とは、プログラムを実行するための数値計算手段のことである。例えば、一般に中央処理装置すなわちCPUといわれているものである。コンピュータとは、上記のような入力手段と、記憶手段と、演算手段とを少なくとも含む電子計算機をいう。
例えば、前記所定の条件を満たすように表記したGOODブロック図のブロック図接続情報をGOODブロック図接続情報として記憶しておくGOODブロック図接続情報記憶手段と、前記記憶されたGOODブロック図接続情報に基づいて前記GOODブロック図を表示するGOODブロック図表示手段とをさらに備え、前記ブロック図一致判定手段が、前記対象ブロック図接続情報の少なくとも一部が前記NGブロック図接続情報と一致すると判定した場合に、前記GOODブロック図表示手段が前記NGブロック図接続情報に対応する前記GOODブロック図接続情報に基づいてGOODブロック図を表示する。
一例として、前記ブロック図作成手段は、前記NGブロック図の作成及び/又は修正を行うためのNGブロック図作成手段及び/又は前記GOODブロック図の作成及び/又は修正を行うためのGOODブロック図作成手段を備える。また、前記プログラム生成手段によってプログラムが自動生成されるブロック図を作成及び/又は修正するための対象ブロック図作成手段を備えるように構成しても良い。
本発明においては、NGブロック図接続情報記憶手段が、所定の条件を満たさないNGブロック図のブロック図接続情報をNGブロック図接続情報として予め記憶しており、ブロック図一致判定手段が、対象ブロック図接続情報の少なくとも一部が前記NGブロック図接続情報と一致するか否かを判定するように構成されている。NGブロック図は所定の条件を満たさないブロック図であるから、NGブロック図接続情報と一致した対象ブロック図接続情報に対応するブロック図の表記は不適切な表記ということになる。このように、本発明によれば、プログラム生成手段がブロック図からプログラムコードを生成する前に、ブロック図における不適切な表記を検出することができるため、プログラムコード生成前にブロック図の修正を行うことが可能となり、プログラミングに要する時間を短縮して作業効率を高めることができる。
本発明の一実施形態に係るソフトウェア開発支援装置の模式的な構成を示す構成図である。 本発明の一実施形態における「対象ブロック図作成画面」を示す模式図である。 本発明の一実施形態における「NG・GOOD登録」処理の流れを示すフロー図である。 本発明の一実施形態における「NG・GOODブロック図登録情報画面」を示す模式図である。 本発明の一実施形態における「NGブロック図登録情報画面」を示す模式図である。 本発明の一実施形態における「GOODブロック図登録情報画面」を示す模式図である。 本発明の一実施形態における「NG検出」処理の流れを示すフロー図である。 本発明の一実施形態おける「対象ブロック図作成画面」上での強調表示及びGOODブロック図表示を示す模式図である。
以下、本発明の実施の形態を添付の図により説明する。図1に本実施形態に係るソフトウェア開発支援装置の構成図を示す。ソフトウェア開発支援装置1は、それ自体が一般的なコンピュータとソフトウェアとを協働させることにより実現される。すなわち、コンピュータの入力手段、記憶手段、演算手段等のハードウェア資源がソフトウェアにより具体的に動作して専用装置としての動作が実現している。
ソフトウェア開発支援装置1は、入力装置2と表示装置3を備えている。入力装置2は、外部からの入力を受け付け、表示装置3は、各種入力画面、各種データ及び該ソフトウェア開発支援装置1の出力結果を表示する。
対象ブロック図作成部4は、表示装置3に表示された対象ブロック図作成画面及び入力装置2を介して入力されたデータに基づいて、複数のブロック要素とブロック要素間の接続関係の作成及び/又は修正を行なってブロック図を作成及び/又は修正する。対象ブロック図作成部4によって作成されるブロック図は、当該ブロック図から所望のプログラムコードを生成するために作成されるブロック図(以下、対象ブロック図という)である。
NG・GOODブロック図作成部8は、所定の条件を満たさないブロック図(以下、NGブロック図という)を作成及び/又は修正するNGブロック図作成手段と、所定の条件を満たすブロック図(以下、GOODブロック図という)を作成及び/又は修正するGOODブロック図作成手段を備えている。所定の条件とは、所望の性能を実現するプログラムを生成するためにブロック図の表記上必要な条件であって、一例として後述するように、ブロック要素の種別とその接続関係に関する条件である。所定の条件を満たすGOODブロック図は、所定の条件を満たさないNGブロック図に対応して作成される。すなわち、GOODブロック図は、対応する特定のNGブロック図が本来あるべき適切な表記を示したブロック図である。
ここで作成されるNGブロック図及びGOODブロック図は、対象ブロック図作成部4によって作成されたブロック図と同様、複数のブロック要素とブロック要素間の接続関係を有するものである。ブロック図接続情報抽出部5は、作成された各ブロック図の複数のブロック要素とブロック要素間の接続関係とをブロック図接続情報として抽出する。ブロック図接続情報の具体例については後述する。
対象ブロック図接続情報記憶部6は、ブロック図接続情報抽出部5によって対象ブロック図から抽出されたブロック図接続情報(以下、対象ブロック図接続情報という)を記憶する。プログラム生成部7は、対象ブロック図接続情報記憶部6に記憶された対象ブロック図接続情報に基づいて計算機言語によるプログラムを自動生成する。
NGブロック図接続情報記憶部9は、ブロック図接続情報抽出部5によってNGブロック図から抽出されたブロック図接続情報(以下、NGブロック図接続情報という)を記憶する。GOODブロック図接続情報記憶部10は、ブロック図接続情報抽出部5によってGOODブロック図から抽出されたブロック図接続情報(以下、GOODブロック図接続情報という)を記憶する。
ブロック図一致判定部11は、対象ブロック図接続情報記憶部6に記憶された対象ブロック図接続情報と、NGブロック図接続情報記憶部9に記憶されたNGブロック図接続情報とを比較して、対象ブロック図接続情報の少なくとも一部がNGブロック図接続情報と一致するか否かを判定する。
GOODブロック図表示部12は、ブロック図一致判定部11によって、対象ブロック図接続情報の少なくとも一部がNGブロック図接続情報と一致すると判定された場合に、当該NGブロック図接続情報に対応するGOODブロック図接続情報に基づいてGOODブロック図を表示する。
上記ブロック図一致判定部11による判定とGOODブロック図表示部12によるGOODブロック図接続情報の表示は、プログラム生成部7によって対象ブロック図接続情報からプログラムコードが自動生成される前に、すなわち、対象ブロック図が作成及び/又は修正されたときに実行される。
次に、ソフトウェア開発支援装置1において用いられる各種入力及び表示画面、各種データの構造等について言及しながら、ソフトウェア開発支援装置1の動作について説明する。図2に、対象ブロック図を作成及び/又は修正するための対象ブロック図作成画面の例を示す。対象ブロック図作成画面20は、表記用画面23と、対象ブロック図の作成及びその他の作業に必要な操作を行うための各種メニューボタンとから構成されている。表記用画面23上において、ユーザは対象ブロック図の作成や修正のために、ブロック要素21とブロック要素間の接続を行う配線22を表記することができる。
メニューボタンとしては、ブロック図のファイル操作を行うための「ファイル」24、ブロック図に記入するブロック要素の選択を行うための「ブロック要素の選択」25、ブロック要素間の接続を行うための「配線」26が設けられている。ユーザはこれらのメニューを用いて、入力装置2を介してブロック要素21及び各ブロック要素間の配線、すなわち接続22の入力及び修正用入力を行なう。
例えば、「ブロック要素の選択」25をクリックすると、各種ブロック要素を表示した画面が開き、ユーザはそこから所望のブロック要素を選択することによって、画面23上にブロック要素21を表記することができる。また、一例として、「配線」26をクリックすると、マウスポインタの形状が変化し、マウスを移動させることによって、画面23に表示された所望のブロック要素間に接続22を示す矢印線を表記することができる。
対象ブロック図作成部4は、ユーザによって対象ブロック図作成画面20及び入力装置2を介して入力されたデータに基づいて、対象ブロック図を作成する。ブロック図において表記されたブロック要素21とブロック要素間の接続22は、対象ブロック図接続情報としてブロック図接続情報抽出部5によって抽出される。図2に示す対象ブロック図から抽出された対象ブロック図接続情報のデータ構造について、その一例を以下に示す。
線のID,線の入力ブロック要素(種類:ID),線の出力ブロック要素(種類:ID)
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)
対象ブロック図接続情報のデータ構造としては、ブロック要素の接続を示す線の固体を識別するためのID(図2では、W001〜W011に相当)と、線の入力ブロック要素の種類(図2では、A、B、C、D、Eに相当)と固体を識別するためのID(図2では、F001〜F012に相当)と、線の出力ブロック要素の種類と固体を識別するためのIDとを、ブロック図の流れの順番に並べた形式としている。なお、線の入力ブロック要素とは、接続22を表す矢印線の起点に表記されたブロック要素であり、線の出力ブロック要素とは当該矢印線の終点に表記されたブロック要素である。
ブロック図接続情報抽出部5によって抽出された対象ブロック図接続情報は対象ブロック図接続情報記憶部6に記憶される。
[NGブロック図及びGOODブロック図の登録]
ソフトウェア開発支援装置1は、所定の条件を満たさない表記がなされたNGブロック図を予め登録しておき、入力した対象ブロック図を登録したNGブロック図と比較して、対象ブロック図における不適切な表記を検出できるように構成されている。さらに、本実施形態は、検出された不適切な表記をどのように修正すれば良いのかを示すために、NGブロック図に対応するGOODブロック図も登録しておくように構成されている。対象ブロック図作成画面20は、これらのNGブロック図及びGOODブロック図の登録作業を行なう場合に使用するメニューボタン「NG・GOOD登録」29を備えている。
対象ブロック図作成画面20において「NG・GOOD登録」29を選択した場合に実行される処理の流れについて、図3を参照しながら説明する。
まず、ユーザが対象ブロック図作成画面20において「NG・GOOD登録」29を選択すると(ステップ1)、NG・GOODブロック図登録情報画面が表示される(ステップ2)。
NG・GOODブロック図登録情報画面の一例を図4に示す。NG・GOODブロック図登録情報画面30は、登録情報を表示するNG・GOODブロック図登録情報表示部31と、新しくNGブロック図及びGOODブロック図を登録するためのメニューボタン「新規登録」32と、登録情報の修正を行うためのメニューボタン「修正」33を有している。
新たなNGブロック図を登録する場合には、「新規登録」32を選択する(図3のステップ3、4)。「新規登録」32を選択すると、NGブロック図登録画面が表示される(ステップ5)。NGブロック図登録画面の一例を図5に示す。NGブロック図登録画面40は、ブロック要素41とブロック要素間の接続を行う配線42の作成を行う表記用画面43と、各種メニューボタンから構成されている。
各種メニューボタンとしては、NGブロック図に記入するブロック要素の選択を行うための「ブロック要素の選択」44と、ブロック要素間の接続を行うための「配線」45と、作成したNGブロック図に対応するGOODブロック図を登録するための「GOOD登録」46が設けられている。
ユーザは、「ブロック要素の選択」44と「配線」45を適宜選択することによって、表記用画面43の画面上においてNGブロック図を作成することができる(図3のステップ6)。メニューボタン「ブロック要素の選択」44と「配線」45を使用したNGブロック図の作成方法は、図2を参照して前述した、対象ブロック図作成画面20における対象ブロック図の作成方法と同様である。
NG・GOODブロック図作成部8におけるNGブロック図作成手段は、ユーザによってNGブロック図作成画面40及び入力装置2を介して入力されたデータに基づいて、NGブロック図を作成する。ブロック図において表記されたブロック要素41とブロック要素間の接続42は、NGブロック図接続情報としてブロック図接続情報抽出部5によって抽出される。図5に示すNGブロック図から抽出されたNGブロック図接続情報のデータ構造について、その一例を以下に示す。
線のID,線の入力ブロック要素(種類:ID),線の出力ブロック要素(種類:ID)
SW001,(A:SF001),(B:SF002)
SW002,(A:SF002),(B:SF003)
NGブロック図接続情報のデータ構造としては、対象ブロック図接続情報と同じく、ブロック要素の接続を示す線の固体を識別するためのID(図5では、SW001〜SW002に相当)、と線の入力ブロック要素の種類(図5では、A,B,Cに相当)と固体を識別するためのID(図5では、SF001〜SF003に相当)と、線の出力ブロック要素の種類と固体を識別するためのIDとを、ブロック図の流れの順番に並べた形式としている。
以上のようにユーザがNGブロック図を作成した後で、図5に示す「GOOD登録」46を選択すると(図3のステップ7)、GOODブロック図登録画面が表示される(ステップ8)。GOODブロック図登録画面の一例を図6に示す。GOODブロック図登録画面50は、ブロック要素51とブロック要素間の接続を行う配線52の作成を行う表記用画面53と、各種メニューボタンから構成されている。
メニューボタンとしては、GOODブロック図に記入するブロック要素の選択を行うための「ブロック要素の選択」54と、ブロック要素間の接続を行うための「配線」55と、作成したNGブロック図及びGOODブロック図のブロック接続情報を記憶させるための「登録完了」56が設けられている。
ユーザは、NGブロック図登録画面40におけるNGブロック図の作成と同様に、「ブロック要素の選択」54と「配線」55を適宜選択してGOODブロック図を作成する(図3のステップ9及び10)。
NG・GOODブロック図作成部8におけるGOODブロック図作成手段は、ユーザによってGOODブロック図作成画面50及び入力装置2を介して入力されたデータに基づいて、GOODブロック図を作成する。ブロック図において表記されたブロック要素51とブロック要素間の接続52は、GOODブロック図接続情報としてブロック図接続情報抽出部5によって抽出される。
なお、GOODブロック図接続情報のデータ構造は、NGブロック図接続情報のデータ構造と同様である。
GOODブロック図作成後に「登録完了」56を選択すると、ブロック図接続情報抽出部5によって抽出されたNGブロック図接続情報及びGOODブロック図接続情報がそれぞれNGブロック図接続情報記憶部9及びGOODブロック図接続情報記憶部10に記憶されて、NGブロック図及びGOODブロック図の登録が完了する(図3のステップ11及び21)。NGブロック図の作成後に対応するGOODブロック図の作成を行なわない場合には、GOODブロック図の作成を行なわずに「登録完了」56を選択する(ステップ9及び11)。この場合、NGブロック図のみが登録される。
次いで、新たなNGブロック図の作成ではなく既に登録されているNGブロック図の修正を行なう場合の処理の流れについて説明する。この場合、処理の流れは図3のステップ3からステップ12に進む。図4に示すNG・GOODブロック図登録情報画面30において、NG・GOODブロック図登録情報表示部31には既に登録されているNGブロック図及びGOODブロック図の接続情報が表示されている。NG・GOODブロック図登録情報表示部31における表示は、一例として、図4に示すように、NG又はGOODブロック図接続情報を選択するためのチェックボックス35と、各NG・GOODブロック図接続情報を識別するための登録番号36と、NGブロック図接続情報表示37とGOODブロック図接続情報表示38とを含んでいる。
ユーザは修正したいNGブロック図にチェックを入れて、メニューボタン「修正」33を選択する(図3のステップ12)。「修正」33が選択されると、NGブロック図登録画面40が表示され、表記用画面43には、チェックされたNGブロック図接続情報に基づいたNGブロック図が既に表示されている(ステップ13)。前述したNGブロック図の作成と同様、ユーザは「ブロック要素の選択」44と「配線」45を適宜選択してNGブロック図を修正する(ステップ14及び15)。NGブロック図の修正が終了したら、「GOOD登録」46を選択して、GOODブロック図登録画面50における作業に移行する。
また、チェックしたNGブロック図に対する修正は行わず、チェックしたNGブロック図に対応するGOODブロック図の作成や修正のみを行なう場合も想定される。この場合、NGブロック図登録画面40においてNGブロック図の修正作業は行なわずに、「GOOD登録」46を選択して、GOODブロック図登録画面50における作業に移行する(ステップ14及び16)。
「GOOD登録」46が選択されると、図6に示したGOODブロック図登録画面50が表示される。表記用画面53には、チェックされたNGブロック図接続情報に対応するGOODブロック図接続情報に基づいて、GOODブロック図が既に表示されている。前述したNGブロック図の修正と同様、ユーザは「ブロック要素の選択」54と「配線」55を適宜選択してGOODブロック図を修正する(ステップ18及び19)。
なお、チェックされたNGブロック図接続情報に対応するGOODブロック図接続情報が存在しなかった場合には、表記用画面53にはブロック図は表示されていない。チェックしたNGブロック図に対応する新たなGOODブロック図を作成したい場合には、ユーザは、前述のステップ10におけるGOODブロック図の作成と同様、「ブロック要素の選択」54と「配線」55を適宜選択してGOODブロック図を作成する。
以上のように、GOODブロック図の修正又は作成が終了すると、ユーザは「登録完了」56を選択する(ステップ20)。また、GOODブロック図の修正又は作成を行なわない場合は、GOODブロック図登録画面50の表示後、修正等の作業を行なうことなく、「登録完了」55を選択する。
「登録完了」55が選択されると、修正したNGブロック図と修正又は作成したGOODブロック図のブロック図接続情報がそれぞれNGブロック図接続情報記憶部9及びGOODブロック図接続情報記憶部10に記憶されて、修正されたNGブロック図と修正又は作成されたGOODブロック図の登録が完了する(図3のステップ20及び21)。
[対象ブロック図とNGブロック図の比較]
ソフトウェア開発支援装置1は、上記のように登録されたNGブロック図と対象ブロック図と比較して、対象ブロック図の中からNGブロック図と一致する表記を検出することにより、対象ブロック図における不適切な表記を検出できるように構成されている。
図2に示す対象ブロック図作成画面20は、対象ブロック図の中から不適切な表記を検出する作業を行うためのメニューボタン「NG検出」28を備えている。
図7に、「NG検出」28を選択した場合の処理の流れを示す。
「NG検出」28が選択されると、ブロック図一致判定部11が、NGブロック図接続情報における線の入力ブロック要素の種類と線の出力ブロック要素の種類とその順番と、対象ブロック図接続情報における線の入力ブロック要素の種類と線の出力ブロック要素の種類とその順番とを比較する(ステップ30〜ステップ32)。本実施形態においては、登録番号の小さいNGブロック図接続情報から順に比較を行なっている。このNGブロック図の登録番号は、図4において例示した各NGブロック図接続情報を識別するための番号36である。
ブロック図一致判定部11は、比較の結果、前記ブロック要素の種類と順番が一致するものがあるかどうかを判定し(ステップ33)、種類と順番が一致するものがあれば、ブロック図作成画面において一致するブロック要素を強調表示する(ステップ34)。図8にブロック図作成画面において一致するブロック要素を強調表示した例を示す。図8では、一致したブロック要素21を破線で囲むことによって強調表示している。
次いで、比較対象となっているNGブロック図に対応するGOODブロック図が存在する場合には、ブロック要素61とブロック要素間の接続を行う配線62からなるGOODブロック図を示す小ウィンドウ60を表示する(ステップ35及び36)。なお、小ウィンドウ60に示されたGOODブロック図に対応する対象ブロック図の一部(すなわち、対応するNGブロック図と一致した部分)は、表示枠63によって示されている。上記ステップ32〜ステップ36の処理は、すべての対象ブロック図接続情報について実行される。
すべての対象ブロック図接続情報について、NGブロック図接続情報との比較が終了すると、比較が終了したNGブロック図接続情報の次の登録番号を有するNGブロック図接続情報と対象ブロック図接続情報との比較が実行される(ステップ37〜ステップ39)。このようにして、登録されているすべてのNGブロック図接続情報と対象ブロック図接続情報との比較が実行され、対象ブロック図において、不適切な表記が検出されると共に、正しい表記を示すGOODブロック図が表示される。
ユーザが検出された不適切な表記を修正した後に、対象ブロック図作成画面20におけるメニューボタン「自動生成」27を選択すると、適切な表記となった対象ブロック図からプログラム生成部7によってプログラムコードが自動生成される。
上記のように、ソフトウェア開発支援装置1においては、対象ブロック図を作成した段階において、「NG検出」処理を実行することにより、ブロック図からプログラムコードを生成する前にブロック図から不適切な表記を検出し、修正することができる。したがって、作業時間の短縮を実現すると共に、誤表記の見落としなどのミスの発生を抑制することができる。
また、予めNGブロック図に対応するGOODブロック図を登録しておいた場合には、検出された不適切な表記に対応したGOODブロック図が表示されるため、検出された不適切な表記をどのように修正すれば良いのかすぐに把握することができ、修正に要する作業時間が短縮される。
さらに、ソフトウェア開発支援装置1は、NGブロック図及びGOODブロック図を適宜新たに登録したり、修正したりすることが可能であるため、装置の拡張性が高いという利点も有している。
以上、本発明の一実施形態について述べたが、本発明は既述の実施形態に限定されるものではなく、本発明の技術的思想に基づいて各種の変形及び変更が可能である。
1 ソフトウェア開発支援装置
4 対象ブロック図作成部
5 ブロック図接続情報抽出部
6 対象ブロック図接続情報記憶部
7 NG・GOODブロック図作成部
9 NGブロック図接続情報記憶部
10 GOODブロック図接続情報記憶部
11 ブロック図一致判定部
12 GOODブロック図表示部

Claims (5)

  1. 複数のブロック要素と該ブロック要素間の接続関係を表記したブロック図によって処理手順が示され、前記ブロック図に基づいて計算機言語によるプログラムを自動生成するソフトウェア開発支援装置であって、
    前記ブロック図に表記された複数のブロック要素と該ブロック要素間の接続関係とを対象ブロック図接続情報として抽出するブロック図接続情報抽出手段と、
    前記ブロック図接続情報抽出手段によって抽出された対象ブロック図接続情報を記憶する対象ブロック図接続情報記憶手段と、
    前記対象ブロック図接続情報から、計算機言語によるプログラムを自動生成するプログラム生成手段と、
    表記された複数のブロック要素及び/又は該ブロック要素間の接続関係が所定の条件を満たさないNGブロック図について、該NGブロック図のブロック図接続情報をNGブロック図接続情報として記憶しておくNGブロック図接続情報記憶手段と、
    前記プログラム生成手段が前記対象ブロック図接続情報から計算機言語によるプログラムを自動生成する前に、前記対象ブロック図接続情報記憶手段に記憶された前記対象ブロック図接続情報と、前記NGブロック図接続情報記憶手段に記憶されたNGブロック図接続情報とを比較して、前記対象ブロック図接続情報の少なくとも一部が前記NGブロック図接続情報と一致するか否かを判定するブロック図一致判定手段と
    を備える、ソフトウェア開発支援装置。
  2. 前記所定の条件を満たすように表記したGOODブロック図のブロック図接続情報をGOODブロック図接続情報として記憶しておくGOODブロック図接続情報記憶手段と、
    前記記憶されたGOODブロック図接続情報に基づいて前記GOODブロック図を表示するGOODブロック図表示手段と
    をさらに備え、
    前記ブロック図一致判定手段が、前記対象ブロック図接続情報の少なくとも一部が前記NGブロック図接続情報と一致すると判定した場合に、前記GOODブロック図表示手段が前記NGブロック図接続情報に対応する前記GOODブロック図接続情報に基づいてGOODブロック図を表示することを特徴とする、請求項1に記載のソフトウェア開発支援装置。
  3. 前記NGブロック図の作成及び/又は修正を行うためのNGブロック図作成手段を備えることを特徴とする、請求項1又は2に記載のソフトウェア開発支援装置。
  4. 前記GOODブロック図の作成及び/又は修正を行うためのGOODブロック図作成手段を備えることを特徴とする、請求項2又は3に記載のソフトウェア開発支援装置。
  5. 前記プログラム生成手段によってプログラムが自動生成されるブロック図を作成及び/又は修正するための対象ブロック図作成手段を備えることを特徴とする、請求項1〜4のいずれか1項に記載のソフトウェア開発支援装置。
JP2009156868A 2009-07-01 2009-07-01 ソフトウェア開発支援装置 Pending JP2011013887A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009156868A JP2011013887A (ja) 2009-07-01 2009-07-01 ソフトウェア開発支援装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009156868A JP2011013887A (ja) 2009-07-01 2009-07-01 ソフトウェア開発支援装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014260145A Division JP5949889B2 (ja) 2014-12-24 2014-12-24 ソフトウェア開発支援装置

Publications (1)

Publication Number Publication Date
JP2011013887A true JP2011013887A (ja) 2011-01-20

Family

ID=43592710

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009156868A Pending JP2011013887A (ja) 2009-07-01 2009-07-01 ソフトウェア開発支援装置

Country Status (1)

Country Link
JP (1) JP2011013887A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013190644A1 (ja) * 2012-06-20 2013-12-27 株式会社 日立製作所 制御ソフトウェアの設計支援装置
JP2016057715A (ja) * 2014-09-05 2016-04-21 富士電機株式会社 図形式プログラム解析装置
WO2017046834A1 (ja) * 2015-09-14 2017-03-23 三菱電機株式会社 制御プログラム自動生成システム
WO2018220836A1 (ja) 2017-06-02 2018-12-06 三菱電機株式会社 プログラムコード生成装置およびプログラムコード生成プログラム
US10628140B2 (en) 2016-11-17 2020-04-21 Mitsubishi Electric Corporation Program code generation apparatus

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6389979A (ja) * 1986-10-02 1988-04-20 Fujitsu Ltd 論理図概要記述変換処理方式
JPH05198110A (ja) * 1991-08-30 1993-08-06 Canon Inc ヘッド位置決め装置
JP2005284785A (ja) * 2004-03-30 2005-10-13 Jfe Steel Kk プログラム開発装置
US20050257203A1 (en) * 2004-05-11 2005-11-17 National Instruments Corporation Visually indicating problems found during programmatic analysis of a graphical program
US20060156286A1 (en) * 2005-01-11 2006-07-13 Morgan Fabian F Dynamic source code analyzer
JP2006301989A (ja) * 2005-04-21 2006-11-02 Fuji Electric Holdings Co Ltd 計算機言語によるプログラムをブロック図から自動生成する方法と装置とプログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6389979A (ja) * 1986-10-02 1988-04-20 Fujitsu Ltd 論理図概要記述変換処理方式
JPH05198110A (ja) * 1991-08-30 1993-08-06 Canon Inc ヘッド位置決め装置
JP2005284785A (ja) * 2004-03-30 2005-10-13 Jfe Steel Kk プログラム開発装置
US20050257203A1 (en) * 2004-05-11 2005-11-17 National Instruments Corporation Visually indicating problems found during programmatic analysis of a graphical program
US20060156286A1 (en) * 2005-01-11 2006-07-13 Morgan Fabian F Dynamic source code analyzer
JP2006301989A (ja) * 2005-04-21 2006-11-02 Fuji Electric Holdings Co Ltd 計算機言語によるプログラムをブロック図から自動生成する方法と装置とプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6013007231; 宇田川佳久ほか1名: '制御ブロック図検索の試み' 情報処理学会第43回(平成3年後期)全国大会 , 19910924, 4-153〜4-154頁, 社団法人情報処理学会 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013190644A1 (ja) * 2012-06-20 2013-12-27 株式会社 日立製作所 制御ソフトウェアの設計支援装置
JPWO2013190644A1 (ja) * 2012-06-20 2016-02-08 株式会社日立製作所 制御ソフトウェアの設計支援装置
JP2016057715A (ja) * 2014-09-05 2016-04-21 富士電機株式会社 図形式プログラム解析装置
WO2017046834A1 (ja) * 2015-09-14 2017-03-23 三菱電機株式会社 制御プログラム自動生成システム
US10459415B2 (en) 2015-09-14 2019-10-29 Mitsubishi Electric Corporation Control program automatic creation system
US10628140B2 (en) 2016-11-17 2020-04-21 Mitsubishi Electric Corporation Program code generation apparatus
WO2018220836A1 (ja) 2017-06-02 2018-12-06 三菱電機株式会社 プログラムコード生成装置およびプログラムコード生成プログラム
US11137988B2 (en) 2017-06-02 2021-10-05 Mitsubishi Electric Corporation Program code generation device and computer readable medium

Similar Documents

Publication Publication Date Title
CN104899010B (zh) 源代码的多语言化方法及系统
EP2677451B1 (en) License verification method and apparatus, and computer readable storage medium storing program therefor
KR101394874B1 (ko) 필기 기반으로 특정 기능을 실행하는 방법 및 그에 따른 디바이스
JP2011013887A (ja) ソフトウェア開発支援装置
JP2015204065A (ja) テストケース生成装置及びテストケース生成方法
JP2009199174A (ja) 電子式計算機
JP2010079447A (ja) バグ検出支援プログラム、類似構文識別情報一覧出力プログラム、バグ検出支援装置およびバグ検出支援方法
JP5293521B2 (ja) デザインルールチェック検証装置およびデザインルールチェック検証方法
JP2011039786A (ja) ソフトウェアテスト支援装置、ソフトウェアテスト支援方法、及びプログラム
JP4888790B2 (ja) 契約定義関数検証装置、その方法及びそのプログラム
US20130080892A1 (en) Information processing device, gui manipulation assistance method, and computer-readable recording medium
CN109656704B (zh) 一种信息处理方法及信息处理装置
JP5949889B2 (ja) ソフトウェア開発支援装置
US20120259591A1 (en) Keyboard testing method
JP5811859B2 (ja) ソースコードの静的解析装置、システム、方法、及びそのためのプログラム
WO2017204139A1 (ja) データ処理装置、データ処理方法、およびプログラム記録媒体
JP2016057715A (ja) 図形式プログラム解析装置
JP6157375B2 (ja) 操作手順フロー更新装置、方法及びプログラム
JP5228566B2 (ja) ソフトウェア開発支援装置、プログラム及びブロック図検索方法
JP5049911B2 (ja) パターン作成装置及びパターン作成方法
JP2009251666A (ja) 変更履歴作成装置、方法及びプログラム
JP2007310829A (ja) データ処理装置、データ処理方法およびデータ処理プログラム
JP2010134766A (ja) 文書データ処理装置およびそのプログラム
JP4245078B2 (ja) 同義語辞書作成支援システム、同義語辞書作成支援方法および同義語辞書作成支援プログラム
JP2007219586A (ja) ソースコード解析装置

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20110422

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120614

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130723

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130822

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130909

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140221

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140422

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140930

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141224