(57)【要約】【課題】仕様書と制御プログラム間の整合性の検証を支援すること。【解決手段】制御プログラム仕様書に基づいて作成されるとともに、項目毎にその要素が所定のルールに従って記述されたロジック仕様書のデータファイルを格納する第１の記憶部１１と、該ロジック仕様書に基づいて作成された制御ブロック図のネットリストを格納する第２の記憶部１２と、ロジック仕様書のデータファイルとネットリストとを照合する際のルールが項目毎に定義されている照合ルール定義情報に従って、ロジック仕様書のデータファイルとネットリストとを項目毎に照合する照合部１３と、照合部１３による照合の結果を出力する出力部１４とを具備するソフトウェア開発支援装置を提供する。【選択図】図６
2008210015.tif 000002
【特許請求の範囲】
【請求項１】
制御プログラム仕様書に基づいて作成されるとともに、項目毎にその要素が所定のルールに従って記述されたロジック仕様書のデータファイルを格納する第１の記憶部と、
該ロジック仕様書に基づいて作成された制御ブロック図のネットリストを格納する第２の記憶部と、
前記ロジック仕様書のデータファイルと前記ネットリストとを照合する際のルールが項目毎に定義されている照合ルール定義情報に従って、前記ロジック仕様書のデータファイルと前記ネットリストとを項目毎に照合する照合部と
を具備するソフトウェア開発支援装置。
【請求項２】
前記照合部は、前記ロジック仕様書のデータファイルに記述されているが前記ネットリストに記述されていない要素を不足機能として項目毎に区分して出力するとともに、前記ネットリストに記述されているが前記ロジック仕様書のデータファイルに記述されていない要素を過剰機能として項目毎に区分して出力する請求項１に記載のソフトウェア開発支援装置。
【請求項３】
前記照合部は、ロジック仕様書のデータファイルのファイル名と前記ネットリストのファイル名とを照合するファイル名照合部を備える請求項１または請求項２に記載のソフトウェア開発支援装置。
【請求項４】
前記照合部は、入力変数を照合する入力変数照合部および出力変数を照合する出力変数照合部の少なくともいずれか一方を備える請求項１から請求項３のいずれかに記載のソフトウェア開発支援装置。
【請求項５】
前記照合部は、前記ロジック仕様書のデータファイルに定義されている制御機能内容から演算要素構成を抽出し、該演算要素構成とネットリストに記述されている演算要素およびその接続関係から把握される演算要素構成とを照合する機能照合部を備える請求項１から請求項４のいずれかに記載のソフトウェア開発支援装置。
【請求項６】
前記機能照合部が参照する照合ルール定義情報は、仕様書用定義情報とネットリスト用定義情報とを含み、
該仕様書用定義情報には、前記ロジック仕様書に記述されている制御機能内容の説明文の文章構造と演算要素構成とが対応付けられており、
前記ネットリスト用定義情報には、ネットリストにおける演算要素構成及びその接続関係の記述ルールが記述されている請求項５に記載のソフトウェア開発支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの開発過程において、仕様書と制御ソフトウェアとの間の整合性を自動的に検証するソフトウェア開発支援装置に関するものである。
【背景技術】
【０００２】
製品品質の向上を図るためには、年々増加する傾向にある制御ソフトウェアの品質向上が欠かせない。制御ソフトウェアにおける問題発生箇所は、例えば、以下の３点に分類できる。
一つ目は、仕様書の問題であり、ソフトウェアで実現したい機能を仕様書の形で表現できていないことから発生する。二つ目は、仕様書と制御プログラム間の整合性の問題であり、仕様書に書かれた機能が制御プログラムに正しく具体化できていないことから発生する。三つ目は制御プログラム自体のバグの問題である。
【特許文献１】特開２００４−１１０４１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
このうち、三つ目の制御プログラムのバグの問題については、数値解析ソフトウェア（例えば、ＭＡＴＬＡＢ／Ｓｉｍｕｌｉｎｋ等）のような制御ロジック図を用いて、Ｃ言語プログラム等を自動的に生成することにより、プログラマーのヒューマンエラーによるバグの混入を防ぐ方法が自動車関連企業を中心に進められている。
一方、仕様書の問題、および仕様書と制御プログラムとの間の整合性の問題は、依然として人手に頼っているのが現状であり、この自動化による開発効率の向上、検証精度の向上が要請されている。
また、特許文献１には、Ｗｅｂアプリケーションソフトウェアなどのソフトウェア開発に際し、モデル分類されたクラスの関連付けを精度よく検証することのできるソフトウェア開発支援装置が開示されている。
しかしながら、特許文献１には、上述したような仕様書と制御プログラムとの間の整合性の問題を解決する方法は一切開示されていない。
【０００４】
本発明は、制御ロジック図を用いて制御プログラムを開発する場合において、仕様書と制御プログラム間の整合性の検証を支援するプログラム開発支援システムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明は以下の手段を採用する。
本発明は、制御プログラム仕様書に基づいて作成されるとともに、項目毎にその要素が所定のルールに従って記述されたロジック仕様書のデータファイルを格納する第１の記憶部と、該ロジック仕様書に基づいて作成された制御ブロック図のネットリストを格納する第２の記憶部と、前記ロジック仕様書のデータファイルと前記ネットリストとを照合する際のルールが項目毎に定義されている照合ルール定義情報に従って、前記ロジック仕様書のデータファイルと前記ネットリストとを項目毎に照合する照合部とを具備するソフトウェア開発支援装置を提供する。
【０００６】
このような構成によれば、ロジック仕様書のデータファイルに記述されている内容とネットリストに記述されている内容とが項目毎に照合されるので、ロジック仕様書とネットリストの元になった制御ブロック図との整合性を自動的に検証することが可能となる。
【０００７】
上記ソフトウェア開発支援装置において、前記照合部は、前記ロジック仕様書のデータファイルに記述されているが前記ネットリストに記述されていない要素を不足機能として項目毎に区分して出力するとともに、前記ネットリストに記述されているが前記ロジック仕様書のデータファイルに記述されていない要素を過剰機能として項目毎に区分して出力することとしてもよい。
【０００８】
このような構成によれば、照合結果が一致しなかった場合に、ロジック仕様書およびネットリストのうち、どちらの書類に記述されていなかったのかということまで照合結果として出力されるので、ソフトウェア開発者等は、この出力結果を確認することにより、整合性を確保するような修正を容易に行うことが可能となる。
【０００９】
上記ソフトウェア開発支援装置において、前記照合部は、ロジック仕様書のデータファイルのファイル名と前記ネットリストのファイル名とを照合するファイル名照合部を備えることとしてもよい。
【００１０】
このような構成によれば、ファイル名の整合性を容易に確認することができる。
【００１１】
上記ソフトウェア開発支援装置において、前記照合部は、入力変数を照合する入力変数照合部および出力変数を照合する出力変数照合部の少なくともいずれか一方を備えることとしてもよい。
【００１２】
このような構成によれば、入力変数および出力変数の少なくともいずれ一方の整合性を容易に確認することができる。
【００１３】
上記ソフトウェア開発支援装置において、前記照合部は、前記ロジック仕様書のデータファイルに定義されている制御機能内容から演算要素構成を抽出し、該演算要素構成とネットリストに記述されている演算要素およびその接続関係から把握される演算要素構成とを照合する機能照合部を備えることとしてもよい。
【００１４】
このような構成によれば、機能内容の整合性を容易に確認することができる。
【００１５】
上記ソフトウェア開発支援装置において、前記機能照合部が参照する照合ルール定義情報は、仕様書用定義情報とネットリスト用定義情報とを含み、該仕様書用定義情報には、前記ロジック仕様書に記述されている制御機能内容の説明文の文章構造と演算要素構成とが対応付けられており、前記ネットリスト用定義情報には、ネットリストにおける演算要素及びその接続関係の記述ルールが記述されていることとしてもよい。
【００１６】
制御機能内容の説明文の文章構造と演算要素構成とが対応付けられている仕様書用定義情報を有するので、文章で記述されている制御機能内容から容易に演算要素構成を特定することが可能となる。更に、ネットリストにおける演算要素およびその接続関係の記述ルールが記述されているネットリスト用定義情報を有するので、ネットリストの記述内容から容易に演算要素構成を把握することが可能となる。そして、ロジック仕様書における演算要素構成とネットリストにおける演算要素構成とを照合することにより、両者間の整合性を容易に判定することができる。
また、上記態様は、可能な範囲で組み合わせて利用することができるものである。
【００１７】
本発明のソフトウェア開発支援装置は、例えば、自動車産業分野、空気調和機、或いはプラント等の産業分野等のように、制御ロジック図を用いて制御プログラムの設計を行うソフトウェア開発において幅広く適用されるものである。
【発明の効果】
【００１８】
本発明によれば、制御ロジック図を用いて制御プログラムを開発する場合において、仕様書と制御プログラム間とに整合性が取れているかを容易に確認することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１９】
以下に、本発明に係るソフトウェア開発支援装置の一実施形態について、図面を参照して説明する。
本発明の一実施形態に係るソフトウェア開発支援装置についての詳細を説明する前に、制御プログラムの開発手順について図１を用いて簡単に説明する。
まず、開発担当者等により制御プログラム仕様書が作成される（図１のステップＳＡ１）。この制御プログラム仕様書は、これから作成する制御プログラムが実現する機能を列挙したような書類である。
【００２０】
上記制御プログラム仕様書が完成すると、続いて、開発担当者等により、制御プログラム仕様書の内容を細分化したロジック仕様書が作成される（図１のステップＳＡ２）。ここで、１枚のロジック仕様書は、後段の作業で作成される１つの制御ロジック図に対応している。このように、ロジック仕様書と制御ロジックとを１対１で対応させることにより、ロジック仕様書と制御ロジックとの整合性の検証を容易に行うことが可能となる。
【００２１】
ロジック仕様書は、例えば、ロジック仕様書を作成するためのツールがインストールされたコンピュータを用いて作成される。例えば、開発担当者が、コンピュータの画面上に表示された所定の書式に対し、制御プログラム仕様書に基づいて必要事項を入力することによりロジック仕様書が作成される。
ロジック仕様書の一例を図２に示す。この図に示すように、ロジック仕様書には、入力変数、出力変数、内容(制御機能内容)等の項目毎に、その要素が所定のルールに従ってそれぞれ記述されると共に、制御ロジック図作成時に当該ロジック仕様書との対応がつくように、シートＮｏ．（ファイル名）、シート名等が記述される。
作成されたロジック仕様書のデータは、コンピュータ内の所定の記憶領域に格納され、後述する制御ロジックの作成過程ならびにソフトウェア開発装置１（図５参照）において利用される。
【００２２】
ロジック仕様書が作成されると、続いて、プログラム開発者により、各ロジック仕様書に対応する制御ロジック図がそれぞれ作成される（図１のステップＳＡ３）。制御ロジック図の作成は、例えば、ＭＡＴＬＡＢ等の開発支援ツールがインストールされたコンピュータを用いて行われる。
【００２３】
図３は、図２に示したロジック仕様書に対応する制御ロジック図の一例を示した図である。図３に示すように、制御ロジック図は、制御プログラムを視覚的に表現するもので、例えば、ＡＮＤ、ＯＲ、ＮＯＴ等の種々の図形要素とそれらを結びつける結線とにより構成されている。図形要素は、それぞれが所定の演算を示していることから演算要素とも呼ばれている。このような図形要素を用いた記述は、自動車業界、プラント等の各種分野における制御プログラムの開発において幅広く用いられている。
【００２４】
また、上記制御ロジック図を作成するための開発支援ツールがインストールされているコンピュータでは、プログラム開発者により作成された制御ブロック図をユーザに理解されやすいプログラム言語で記述したネットリストが自動的に生成される（図１のステップＳＡ４）。図４は、図３に示した制御ロジック図に対応するネットリストの一部を示した図である。
【００２５】
続いて、上記制御ロジック図が作成されると、作成された制御ロジック図から自動的に制御プログラムが生成される（ステップＳＡ５）。
【００２６】
次に、本発明の一実施形態に係るソフトウェア開発支援装置について説明する。
ソフトウェア開発支援装置１は、いわゆるパーソナルコンピュータを備えており、例えば、図５に示すように、ＣＰＵ（中央演算装置）５、ＲＡＭ（Random Access Memory）６、ＲＯＭ（Read Only Memory）７、及びＨＤ（Hard Disc）８等を備えるコンピュータ本体２と、コンピュータ本体２に接続されるキーボード、マウス等の入力装置３と、コンピュータ本体２に接続されるＣＲＴ（cathode-ray tube）やＬＣＤ（liquid Crystal Display）等の表示装置４とを主な構成として備えている。
【００２７】
本実施形態に係るソフトウェア開発支援装置１により実現される後述の各種機能は、プログラムの形式でコンピュータ読取可能な記録媒体に記憶されており、このプログラムをコンピュータ本体２に内蔵されるＣＰＵ５がＲＡＭ６等の主記憶装置に読み出して、情報の加工・演算処理を実行することにより、後述する各種処理が実現される。
コンピュータ読み取り可能な記録媒体とは、コンピュータ本体２に内蔵される上述のＲＯＭ７、ＨＤ８等の他、例えば、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。
【００２８】
図６は、コンピュータ本体２の機能ブロック図である。
図６に示すように、コンピュータ本体２は、ロジック仕様書のデータファイルを格納する第１の記憶部１１、制御ロジック図のネットリストを格納する第２の記憶部１２、ロジック仕様書のデータファイルとネットリストとを照合する際のルールが項目毎に定義されている照合ルール定義情報に従って、ロジック仕様書のデータファイルとネットリストとを項目毎に照合する照合部１３と、照合部１３による照合の結果を出力する出力部１４とを備えている。
【００２９】
上記第１の記憶部１１および第２の記憶部１２に格納されるロジック仕様書のデータファイルならびに制御ロジック図のネットリストは、これらロジック仕様書および制御ロジックを作成するのに用いられたコンピュータからＬＡＮ等の通信媒体を介してコンピュータ本体２に入力されるものでもよいし、ＵＳＢメモリやＣＤ−ＲＯＭ等の持ち運び可能な記憶媒体から所定のインターフェースを介してコンピュータ本体に読み込まれるものでもよい。
なお、ロジック仕様書については、上述したコンピュータを用いて作成される場合の他、開発担当者により、用紙にペン等で記述される場合がある。この場合には、ロジック仕様書の用紙をスキャナ等で読み込むことで電子データ化したものを第１の記憶部２１に格納することとしてもよい。
なお、上記第１の記憶部２１、第２の記憶部２２は、物理的に分離された２つの記憶部としてコンピュータ本体２に内蔵、或いは、コンピュータ本体２に接続されていてもよいし、１つの記憶装置のメモリ領域を仮想的に分割した場合の一部を第１の記憶部２１、他の一部を第２の記憶部として取り扱うこととしてもよい。
【００３０】
照合部１３は、ファイル名照合部２１、入力変数照合部２２、出力変数照合部２３、機能照合部２４、不足機能検出部２５、及び余剰機能検出部２６を備えている。
【００３１】
〔ファイル名照合部〕
上記ファイル名照合部２１は、ロジック仕様書のデータファイルのファイル名とネットリストのファイル名とを照合する。
ここで、上述した照合ルール定義情報には、「ファイル名は、ロジック仕様書において、”シートNo.”の欄に記述されており、ネットリストにおいて、”System”の”｛  ｝”内を検索し、”Name”に対応する箇所に記述されている。」ことが定義されている。
ファイル名照合部２１は、上記照合ルール定義情報に基づいて、ロジック仕様書のデータファイルおよびこのロジック仕様書と整合性を比較するネットリスト（以下「比較対象のネットリスト」という。）からファイル名を取得し、これらを照合する。この結果、両者が一致すれば一致した旨を、一致しなければ不一致である旨を照合結果として不足機能検出部２５および余剰機能検出部２６に出力する。
【００３２】
例えば、図２に示したロジック仕様書と、図７に示すネットリストとを照合する場合、ファイル名照合部２１は、まず、ロジック仕様書において”シートNo.”の欄を検索し、その欄に記述されている”ML_TwcutProtect”をファイル名として抽出する。次に、ファイル名照合部２１は、図７に示したネットリストにおいて、”System”の”｛  ｝”内を検索し、”Name”に対応する箇所に記述されている”ML_TwcutProtect”（図７のブロックＢＬ１参照）をファイル名として抽出する。そして、両者のファイル名を照合する。この結果、両者のファイル名は一致しているので、ファイル名照合部２１は、不足機能検出部２５および余剰機能検出部２６に一致している旨を出力する。
【００３３】
〔入力変数照合部〕
入力変数照合部２２は、ロジック仕様書の入力変数とネットリストの入力変数とを照合する。
ここで、上述した照合ルール定義情報には、「入力変数は、ロジック仕様書において、”入力変数”の欄に記述されており、ネットリストにおいて、”Block”の”｛  ｝”内を検索し、”Blocktype”が”Inport”であるブロックを見つけ、そのブロック内の”Name”に対応する箇所に記述されている。」ことが定義されている。
入力変数照合部２１は、上記照合ルール定義情報に基づいて、ロジック仕様書のデータファイルから入力変数を取得し、これらの入力変数が比較対象のネットリストに記述されているかを判定する。この結果、ロジック仕様書のデータファイルに記述されている全ての入力変数が比較対象のネットリストに記述されていた場合には、一致した旨を照合結果として不足機能検出部２５に出力する。一方、ロジック仕様書のデータファイルに記述されている全ての入力変数が、比較対象のネットリストに記述されていなかった場合には、ネットリストに記述されていない入力変数を不足機能検出部２５に出力する。
【００３４】
同様に、入力変数照合部２２は、上記照合ルール定義情報に基づいて比較対象のネットリストから入力変数を全て取得し、これらの入力変数がロジック仕様書のデータファイルに記述されているかを判定する。この結果、比較対象のネットリストに記述されている全ての入力変数がロジック仕様書のデータファイルに記述されていた場合には、一致した旨を照合結果として余剰機能検出部２６に出力する。一方、比較対象のネットリストに記述されている全ての入力変数が、ロジック仕様書のデータファイルに記述されていなかった場合には、ロジック仕様書のデータファイルに記述されていない入力変数を余剰機能検出部２６に出力する。
【００３５】
例えば、図２に示したロジック仕様書と、図８に示すネットリストとを照合する場合、入力変数名照合部２２は、まず、ロジック仕様書において”入力変数”の欄を検索し、その欄に記述されている”I_tha”、”I_thm”、”AcModeOn”を入力変数として抽出する。次に、入力変数照合部２２は、図８に示したネットリストにおいて、”Block”の”｛  ｝”内を検索し、”Blocktype”が”Inport”であるブロックを見つけ、そのブロック内の”Name”に対応する箇所に記述されている”I_tha”（図８のＢＬ２参照）、”I_thm”（図８のＢＬ３参照）、”AcModeOn”（図８のＢＬ４参照）を入力変数として抽出する。そして、両者を照合することにより、ロジック仕様書から抽出した入力変数がネットリストに記述されているかを判定し、この判定結果を不足機能検出部２５に出力するとともに、ネットリストから抽出した入力変数がロジック仕様書に記述されているかを判定し、この判定結果を余剰機能検出部２６に出力する。
【００３６】
〔出力変数照合部〕
出力変数照合部２３は、ロジック仕様書の出力変数とネットリストの出力変数とを照合する。
ここで、上述した照合ルール定義情報には、「出力変数は、ロジック仕様書において、”出力変数”の欄に記述されており、ネットリストにおいて、”Block”の”｛  ｝”内を検索し、”Blocktype”が”Outport”であるブロックを見つけ、そのブロック内の”Name”に対応する箇所に記述されている。」ことが定義されている。
出力変数照合部２３は、上記照合ルール定義情報に基づいて、ロジック仕様書のデータファイルから出力変数を取得し、これらの出力変数が比較対象のネットリストに記述されているかを判定する。この結果、ロジック仕様書のデータファイルに記述されている全ての出力変数が比較対象のネットリストに記述されていた場合には、一致した旨を照合結果として不足機能検出部２５に出力する。一方、ロジック仕様書のデータファイルに記述されている全ての出力変数が、比較対象のネットリストに記述されていなかった場合には、ネットリストに記述されていない出力変数を不足機能検出部２５に出力する。
【００３７】
同様に、出力変数照合部２３は、上記照合ルール定義情報に基づいて比較対象のネットリストから出力変数を全て取得し、これらの出力変数がロジック仕様書のデータファイルに記述されているかを判定する。この結果、比較対象のネットリストに記述されている全ての出力変数がロジック仕様書のデータファイルに記述されていた場合には、一致した旨を照合結果として余剰機能検出部２６に出力する。一方、比較対象のネットリストに記述されている全ての出力変数が、ロジック仕様書のデータファイルに記述されていなかった場合には、ロジック仕様書のデータファイルに記述されていない出力変数を余剰機能検出部２６に出力する。
【００３８】
例えば、図２に示したロジック仕様書と、図９に示すネットリストとを照合する場合、出力変数照合部２３は、まず、ロジック仕様書において”出力変数”の欄を検索し、その欄に記述されている”ST_TWCT”を出力変数として抽出する。次に、出力変数照合部２３は、図９に示したネットリストにおいて、”Block”の”｛  ｝”内を検索し、”Blocktype”が”Outport”であるブロックを見つけ、そのブロック内の”Name”に対応する箇所に記述されている”ST_TWCT”（図９のＢＬ５参照）を出力変数として抽出する。そして、両者を照合することにより、ロジック仕様書から抽出した出力変数がネットリストに記述されているかを判定し、この判定結果を不足機能検出部２５に出力するとともに、ネットリストから抽出した出力変数がロジック仕様書に記述されているかを判定し、この判定結果を余剰機能検出部２６に出力する。
【００３９】
〔機能照合部〕
機能照合部２４は、ロジック仕様書のデータファイルに定義されている制御機能内容から演算要素構成を抽出し、該演算要素構成とネットリストに記述されている演算要素およびその接続関係から把握される演算要素構成とを照合する。
【００４０】
ここで、機能照合部２４が参照する照合ルール定義情報は、仕様書用定義情報とネットリスト用定義情報とを含んでいる。
仕様書用定義情報には、ロジック仕様書に記述されている制御機能内容の説明文の文章構造と演算要素構成とが対応付けられて登録されている。例えば、図１０から図１６に、仕様書用定義情報の一例を示す。これらの仕様書用定義情報では、「ＡＮＤ」、「ＯＲ」、「比較（以上）」、「比較（以下）」等の機能別に、演算要素、説明文の文章構造、及び演算要素構成が互いに対応付けられている。
機能照合部２４は、図１０から図１６に示される仕様書用定義情報に従って、ロジック仕様書の項目“内容（制御機能内容）”の欄に記述された文章から制御要素構成を解釈する。
【００４１】
例えば、図２に示したロジック仕様書の“内容”の欄には「（１）Ａ／ＣモードがＯＮ、かつ、外気温度が２０℃以上、かつ、エンジン水温が１１０℃以上の場合に、水温カット防止制御状態をＯＮとする。」との文章が記述されている。この文章は、図１０から図１６に示した仕様書用定義情報に従って以下のような文章構造とされる。
まず、機能照合部２４は、上記文章を“かつ”、“また”、“の場合に”を抽出し、”かつ”、”または”、”の場合に”で区切り、各文節とする。これにより、上記文章は、以下の（Ａ）から（Ｄ）の４つの文節とされる。
【００４２】
（Ａ）Ａ／ＣモードがＯＮ
（Ｂ）外気温度が２０℃以上
（Ｃ）エンジン水温が１１０℃以上
（Ｄ）水温カット防止制御状態をＯＮ
【００４３】
次に、機能照合部２４は、上記（Ａ）、（Ｂ）、（Ｃ）が“かつ”で接続されていることから、図１０のＮｏ．１に対応する文章構造であると解釈し、この文章構造に対応付けられている演算要素構成、つまり、「Ａ，Ｂ，Ｃを入力要素とするＡＮＤの演算要素」を抽出する。
更に、機能照合部２４は、各文節（Ａ）、（Ｂ）、（Ｃ）を図１０から図１６に示した仕様書用定義情報に従って解釈することにより、それぞれ対応する演算要素構成を抽出する。
この結果、（Ａ）の文章は、該当する文章構造がないので対応する演算要素構成がない、つまり、照合を行わないと判断する。
また、（Ｂ）の文章は、図１０のＮｏ．３に対応する文章構造であると解釈し、この文章構造に対応付けられている“タイプ１”および”タイプ２”の演算要素構成を抽出する。
ここで、上述のように、１つの機能に対して複数の演算要素構成が存在する場合には、それらの全てについて仕様書用定義情報に登録されている。この場合には、機能照合部２４は、当該機能に該当する全ての演算要素構成を抽出する。このように、１つの機能に対して複数の演算要素構成を登録しておくことにより、照合精度を高めることができる。
【００４４】
また、上記（Ｃ）の文章も（Ｂ）の文章と構成が同じため、図１０のＮｏ．３に対応する文章構造であると解釈し、この文章構造に対応付けられている“タイプ１”および“タイプ２”の演算要素構成を抽出する。
また、「の場合に」の後に配置された上記（Ｄ）については、出力に関する文節であると解釈する。
【００４５】
次に、ネットリスト用定義情報について説明する。
ネットリスト用定義情報には、例えば、図３に示された制御ロジック図の演算要素ならびにそれらの接続関係がネットリストではどのように表現されているのかを示すルールが定義されている。ここで、ネットリストは、そもそも制御ロジック図に基づいて作成されたリストであるので、制御ロジック図とネットリストとの相互変換関係を記録しておくことにより、ネットリストから容易に制御ロジックを把握することができる。
【００４６】
例えば、ネットリスト用定義情報には、「演算要素は、”Block”の”｛  ｝”内を検索し、”BlockType”が”Logic”であるブロックをみつけ、そのブロック内の“Name”に対応する箇所にその演算要素の名称が、また、“Operator”に対応する箇所にその演算要素のタイプ（種別）が記述されている。」ことが定義されている。ここで、演算要素”ＡＮＤ”については、使用頻度が高いことから”Operator”の欄が省略されている。つまり、”Operator”の欄がないブロックは、”ＡＮＤ”であると解釈する。
更に、ネットリスト用定義情報には、「結線関係は、”Line”の”｛  ｝”内を検索し、”SrcBlock”に対応する箇所に入力側の接続要素が、DstBlock”に出力側の接続要素が記述されている。」ことが定義されている。
【００４７】
例えば、図１７に示されるネットリストを上述したロジック仕様書と照合する場合、機能照合部２４は、ネットリストにおいて”Block”の”｛  ｝”内を検索し、”BlockType”が”Logic”であるブロックをみつけ、そのブロック内の“Name”に対応する箇所に記述されている”Logical\nOperator1”（図１７のＢＬ６）を演算要素の名称として、また、“Operator”がないことから”ＡＮＤ”を演算要素として抽出する。
【００４８】
また、機能照合部２４は、ネットリストにおいて”Block”の”｛  ｝”内を検索し、”BlockType”が”Logic”であるブロックをみつけ、そのブロック内の“Name”に対応する箇所に記述されている”Logical\nOperator2”（図１７のＢＬ７参照）を演算要素の名称として、また、“Operator”に対応する箇所に記述されている”ＯＲ”（図１７のＢＬ８参照）を演算要素として抽出し、同様に、”Logical\nOperator7”（図１７のＢＬ９参照）の名称をもつ「ＮＯＴ」（図１７のＢＬ１０参照）を演算要素として抽出する。なお、図１７はネットリストの一部を示したものであるので、機能照合部２４はネットリスト全体にわたり上述の検索を行うことで、ネットリストに定義されている全ての演算要素を抽出する。
【００４９】
また、機能照合部２４は、抽出した演算要素”ＡＮＤ”、”ＯＲ”、”ＮＯＴ”の接続関係を分析すべく、ネットリストにおいて”Line”の”｛  ｝”内を検索し、”SrcBlock”と”DstBlock”に記述されている要素等を抽出し、結線関係を把握することで、ネットリストから制御ロジック図のロジック構造を解釈する。
【００５０】
例えば、機能照合部２４は、上述したネットリスト用定義情報に従って図１８に示すネットリストを解釈することにより、”I_tha”（図１８のＢＬ１１参照）が”Relational\nOperator3”（図１８のＢＬ１２参照）と”Relational\nOperator1”（図１８のＢＬ１３参照）とにそれぞれ接続されていると判断する。
また、機能照合部２４は、同様に、”Constant2”（図１８のＢＬ１４参照）が”Relational\nOperator3”（図１８のＢＬ１５参照）に接続していること、”Constant3”（図１８のＢＬ１６参照）が”Relational\nOperator1”（図１８のＢＬ１７参照）に接続していること、”Relational\nOperator3”（図１８のＢＬ１８参照）が”Logical\nOperator1”（図１８のＢＬ１９参照）に接続していること、”Relational\nOperator1”（図１８のＢＬ２０参照）が”Logical\nOperator2”（図１８のＢＬ２１参照）に接続していることを把握する。
【００５１】
上述のように、機能照合部２４は、ネットリストにおいて各演算要素とそれらの結線関係をたどることにより、制御ロジック図における各演算要素構成を解釈する。
そして、機能照合部２４は、上述したロジック仕様書に記述されている文章から抽出した演算要素構成と、ネットリストに基づいて特定した演算要素構成とを照合することにより、ロジック仕様書とネットリストとの整合性を判断する。
【００５２】
具体的には、機能照合部２４は、ロジック仕様書の文章から抽出した全ての演算要素構成が、ネットリストから把握されるロジック制御図に存在するかを判定し、この判定結果を不足機能検出部２５に出力するとともに、ネットリストから把握されるロジック制御図から抽出される全ての演算要素構成がロジック仕様書の文章から抽出した演算要素構成と一致するかを判定し、この判定結果を余剰機能検出部２６に出力する。
【００５３】
なお、一般的に、制御ロジック図には、図１０から図１６に示した基本的な演算要素以外に、副次的な機能を実現するためのロジックが付加されている。例えば、図３に示した制御ロジック図においては、「ＡＮＤ」、「ＯＲ」、「ＮＯＴ」、「以上」、「以下」、「未満」、「より大きい」等の演算要素が基本的な演算要素に該当し、「フリップフロップ」、「ターミネータ」等の演演算要素が副次的な演算要素に該当する。
本実施形態に係る機能照合部２４は、種々ある演算要素のうち、代表的な制御要素、つまり、上述した基本的な演算要素のみに限定して照合を行うこととしている。
【００５４】
〔不足機能検出部；余剰機能検出部〕
不足機能検出部２５および余剰機能検出部２６には、上述のように、ファイル名照合部２１、入力変数照合部２２、出力変数照合部２３、機能照合部２４から照合結果が入力される。不足機能検出部２５および余剰機能検出部２６は、これら入力された照合結果をそれぞれ出力部１４に出力する。出力部１４は、照合結果を表示装置４に表示させる。
【００５５】
この結果、表示装置４により照合結果が表示される。つまり、ロジック仕様書に記述されている要素であって制御ロジック図に記述されていない要素が不足機能として項目毎に表示装置４に表示されるとともに、制御ロジック図に記述されている要素であってロジック仕様書に記述されていない要素が過剰機能として項目毎に表示装置４に表示される。
ソフトウェア開発者等は、この表示装置４の表示画面を確認することにより、両者の整合性を確認でき、整合性が取れていない場合には当該照合結果に基づいてロジック仕様書や制御ロジック図を修正することにより、整合性が取れたものとすることができる。
【００５６】
以上、説明してきたように、本実施形態によれば、ロジック仕様書のデータファイルに記述されている内容とネットリストに記述されている内容とを項目毎に照合するので、ロジック仕様書とネットリストの元になった制御ブロック図との整合性を自動的に検証することができる。
更に、照合結果が一致しなかった場合に、ロジック仕様書およびネットリストのうち、どちらの書類に記述されていなかったのかということまで照合結果として出力されるので、ソフトウェア開発者等は、この出力結果を確認することにより、整合性を確保するような修正を容易に行うことが可能となる。
【００５７】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【図面の簡単な説明】
【００５８】
【図１】ソフトウェア開発の一般的な手順を示した図である。
【図２】ロジック仕様書の一例を示した図である。
【図３】図２のロジック仕様書に対応する制御ロジック図である。
【図４】図３の制御ロジック図に対応するネットリストである。
【図５】本発明の一実施形態に係るソフトウェア開発支援装置の概略構成を示した図である。
【図６】図５に示したコンピュータ本体の機能ブロック図である。
【図７】ファイル名照合部によるファイル名抽出の手順を説明するための図である。
【図８】入力変数照合部による入力変数の抽出の手順を説明するための図である。
【図９】出力変数照合部による出力変数の抽出の手順を説明するための図である。
【図１０】仕様書用定義情報の一例を示した図である。
【図１１】仕様書用定義情報の一例を示した図である。
【図１２】仕様書用定義情報の一例を示した図である。
【図１３】仕様書用定義情報の一例を示した図である。
【図１４】仕様書用定義情報の一例を示した図である。
【図１５】仕様書用定義情報の一例を示した図である。
【図１６】仕様書用定義情報の一例を示した図である。
【図１７】機能照合部による演算要素等の抽出の手順を説明するための図である。
【図１８】機能照合部による各演算要素等の接続関係を説明するための図である。
【符号の説明】
【００５９】
１  ソフトウェア開発支援装置
２  コンピュータ本体
３  入力装置
４  表示装置
１１  第１の記憶部
１２  第２の記憶部
１３  照合部
１４  出力部
２１  ファイル名照合部
２２  入力変数照合部
２３  出力変数照合部
２４  機能照合部
２５  不足機能検出部
２６  余剰機能検出部
【図１】
2008210015.tif 000003
【図２】
2008210015.tif 000004
【図３】
2008210015.tif 000005
【図４】
2008210015.tif 000006
【図５】
2008210015.tif 000007
【図６】
2008210015.tif 000008
【図７】
2008210015.tif 000009
【図８】
2008210015.tif 000010
【図９】
2008210015.tif 000011
【図１０】
2008210015.tif 000012
【図１１】
2008210015.tif 000013
【図１２】
2008210015.tif 000014
【図１３】
2008210015.tif 000015
【図１４】
2008210015.tif 000016
【図１５】
2008210015.tif 000017
【図１６】
2008210015.tif 000018
【図１７】
2008210015.tif 000019
【図１８】
2008210015.tif 000020