(57)【要約】【課題】演算周期に起因する動作エラーが生じる可能性のある機能ブロックおよび結線を容易に特定する。【解決手段】このソフトウェアの開発支援装置は、複数の機能ブロックと、それらを結ぶ結線と、を有するブロック図と、機能ブロック毎に設定された演算周期と、に基づいてブロック図に対応するソースコードを出力手段に出力する。  そして、このソフトウェアの開発支援装置は、演算周期の短い機能ブロックである短周期ブロックから、短周期ブロックよりも演算周期の長い機能ブロックである長周期ブロックへ出力される信号の伝送を表す結線名と、短周期ブロックの機能ブロック名と、長周期ブロックの機能ブロック名と、を抽出する抽出手段を少なくとも有する。【選択図】図１
2014229074.tif 000002
【特許請求の範囲】
【請求項１】
機能ブロック名が付与された複数の機能ブロックと、結線名が付与され、該機能ブロックを互いに結ぶ結線と、を有するブロック図が予め格納されたブロック図格納手段（１２０）と、
前記機能ブロック毎の演算周期を利用者が入力するための入力手段（２００）と、
前記入力手段により入力された前記演算周期を前記機能ブロックに割り当てる割当手段（１３０）と、を備え、
前記演算周期および前記ブロック図に基づいて、前記ブロック図に対応するソースコードを出力手段（３００）に出力するソフトウェアの開発支援装置であって、
少なくとも、前記演算周期の短い前記機能ブロックである短周期ブロックから、該短周期ブロックよりも前記演算周期の長い前記機能ブロックである長周期ブロックへ出力される信号の伝送を表す前記結線名と、前記短周期ブロックの前記機能ブロック名と、前記長周期ブロックの前記機能ブロック名と、を抽出する抽出手段（１５０）を有することを特徴とする、ソフトウェアの開発支援装置。
【請求項２】
Ｎ個（Ｎ≧２）の前記機能ブロックが用いられる前記ブロック図に対して、
前記抽出手段は、
前記割当手段により前記演算周期が割り当てられた前記機能ブロックを、前記演算周期の短い順に１〜ｎ（ｎ＝Ｎ）のブロック通番を付与するブロック通番付与手段（１５２）と、
前記機能ブロック毎に、入力に用いられる入力用結線の前記結線名を抽出する入力用結線名抽出手段（１５４）と、
前記機能ブロック毎に、出力に用いられる出力用結線の前記結線名を抽出する出力用結線名抽出手段（１５６）と、
ブロック通番ｍ（２≦ｍ≦ｎ）に該当する前記機能ブロックにおける前記入力用結線の前記結線名と一致する前記結線名が、ブロック通番１〜（ｍ−１）に該当する前記機能ブロックにおける前記出力用結線に存在するか否かを検索する検索手段（１５８）と、を有することを特徴とする請求項１に記載の、ソフトウェアの開発支援装置。
【請求項３】
機能ブロック名が付与された複数の機能ブロックと、結線名が付与され、該機能ブロックを互いに結ぶ結線と、を有するブロック図において、利用者が入力手段を介して前記機能ブロック毎に演算周期を入力する入力ステップ（Ｓ１０）と、
割当手段が、前記入力ステップにおいて入力された前記演算周期を前記機能ブロックに割り当てる割当ステップ（Ｓ２０）と、
抽出手段が、少なくとも、前記演算周期の短い前記機能ブロックである短周期ブロックから、該短周期ブロックよりも前記演算周期の長い前記機能ブロックである長周期ブロックへ出力される信号の伝送を表す前記結線名と、前記短周期ブロックの前記機能ブロック名と、前記長周期ブロックの前記機能ブロック名と、を抽出する抽出ステップ（Ｓ３０）と、を備えることを特徴とする、ソフトウェアの開発支援方法。
【請求項４】
Ｎ個（Ｎ≧２）の前記機能ブロックが用いられる前記ブロック図に対して、
前記抽出ステップは、
ブロック通番付与手段が、前記割当手段により前記演算周期が割り当てられた前記機能ブロックを、前記演算周期の短い順に１〜ｎ（ｎ＝Ｎ）のブロック通番を付与するブロック通番付与ステップ（Ｓ３１）と、
入力用結線名抽出手段が、前記機能ブロック毎に、入力に用いられる入力用結線の前記結線名を抽出する入力用結線名抽出ステップ（Ｓ３２）と、
出力テーブル生成手段が、前記機能ブロック毎に、出力に用いられる出力用結線の前記結線名を抽出する出力用結線名抽出ステップ（Ｓ３３）と、
検索手段が、ブロック通番ｍ（２≦ｍ≦ｎ）に該当する前記機能ブロックにおける前記入力用結線の前記結線名と一致する前記結線名が、ブロック通番１〜（ｍ−１）に該当する前記機能ブロックにおける前記出力用結線に存在するか否かを検索する検索ステップ（Ｓ３４）と、を有することを特徴とする請求項３に記載の、ソフトウェアの開発支援方法。
【請求項５】
機能ブロック名が付与された複数の機能ブロックと、結線名が付与され、該機能ブロックを互いに結ぶ結線と、を有するブロック図に基づいて、前記ブロック図に対応するソースコードを生成するソフトウェアの開発支援プログラムであって、
割当手段が、利用者により入力された演算周期を前記機能ブロックに割り当てる割当ステップ（Ｓ２０）と、
抽出手段が、少なくとも、前記演算周期の短い前記機能ブロックである短周期ブロックから、該短周期ブロックよりも前記演算周期の長い前記機能ブロックである長周期ブロックへ出力される信号の伝送を表す前記結線名と、前記短周期ブロックの前記機能ブロック名と、前記長周期ブロックの前記機能ブロック名と、を抽出する抽出ステップ（Ｓ３０）と、をコンピュータに実行させる、ソフトウェアの開発支援プログラム。
【請求項６】
Ｎ個（Ｎ≧２）の前記機能ブロックが用いられる前記ブロック図に対して、
前記抽出ステップは、
ブロック通番付与手段が、前記割当手段により前記演算周期が割り当てられた前記機能ブロックを、前記演算周期の短い順に１〜ｎ（ｎ＝Ｎ）のブロック通番を付与するブロック通番付与ステップ（Ｓ３１）と、
入力用結線名抽出手段が、前記機能ブロック毎に、入力に用いられる入力用結線の前記結線名を抽出する入力用結線名抽出ステップ（Ｓ３２）と、
出力テーブル生成手段が、前記機能ブロック毎に、出力に用いられる出力用結線の前記結線名を抽出する出力用結線名抽出ステップ（Ｓ３３）と、
検索手段が、ブロック通番ｍ（２≦ｍ≦ｎ）に該当する前記機能ブロックにおける前記入力用結線の前記結線名と一致する前記結線名が、ブロック通番１〜（ｍ−１）に該当する前記機能ブロックにおける前記出力用結線に存在するか否かを検索する検索ステップ（Ｓ３４）と、を有することを特徴とする請求項５に記載のソフトウェアの開発支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの開発支援装置、開発支援方法およびそのプログラムに係り、特にソフトウェアとして開発する機能ブロックの動作確認に関する。
【背景技術】
【０００２】
自動車等の電子制御装置に組み込むソフトウェアの設計では、複数の機能ブロックをパソコン等の画面上で視覚的に組み合わせ、その情報を元に、ソフトウェアのソースコードを自動的に生成させる。
【０００３】
そして、自動生成されたソフトウェアを電子制御装置に組み込んで実機テストを行う。しかし、実機テストの段階で動作不良が生じると、ソフトウェアの設計から見直しをしなければならず、手戻り規模が大きくなってしまう。
【０００４】
特許文献１には、複数の機能ブロックが結線されてなるモジュールの動作を確認するためのソフトウェア開発支援システムおよびプログラムが提案されている。具体的には、演算シミュレーションの途中で、動作のチェックのために演算を停止する機能ブロックを追加することが提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１０２３６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に提案されたソフトウェア開発支援システムにおいては、演算シミュレーション途中における動作の異常は確認できても、異常の原因となる箇所を特定することは容易ではない。
【０００７】
特にユーザが任意に設定できる機能ブロック毎の演算周期に関し、演算周期の設定値と各機能ブロック間を結ぶ結線によっては、信号を入力する側の機能ブロックが、信号を出力する側の機能ブロックが送出した信号を正しく参照できず、正しい動作が行われない虞がある。近年、複雑な制御のため機能ブロック規模が大きくなりつつあり、上記問題が顕著になってきている。
【０００８】
本発明は、上記問題点に鑑みてなされたものであり、演算周期に起因する動作エラーが生じる可能性のある機能ブロックおよび結線を容易に特定することを目的とする。
【課題を解決するための手段】
【０００９】
ここに開示される発明は、上記目的を達成するために以下の技術的手段を採用する。なお、特許請求の範囲及びこの項に記載した括弧内の符号は、ひとつの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、発明の技術的範囲を限定するものではない。
【００１０】
上記目的を達成するために、本発明は、機能ブロック名が付与された複数の機能ブロックと、結線名が付与され、該機能ブロックを互いに結ぶ結線と、を有するブロック図が予め格納されたブロック図格納手段（１２０）と、機能ブロック毎の演算周期を利用者が入力するための入力手段（２００）と、入力手段により入力された演算周期を機能ブロックに割り当てる割当手段（１３０）と、を備え、演算周期およびブロック図に基づいて、ブロック図に対応するソースコードを出力手段（３００）に出力するソフトウェアの開発支援装置であって、少なくとも、演算周期の短い機能ブロックである短周期ブロックから、該短周期ブロックよりも演算周期の長い機能ブロックである長周期ブロックへ出力される信号の伝送を表す結線名と、短周期ブロックの機能ブロック名と、長周期ブロックの機能ブロック名と、を抽出する抽出手段（１５０）を有することを特徴としている。
【００１１】
これによれば、長周期ブロックが短周期ブロックの出力信号を参照しているような結線を抽出することができる。加えて、そのような結線がなされている長周期ブロックおよび短周期ブロックを抽出することができる。したがって、利用者は、該当のブロックおよび結線において、正しい動作が行われない可能性を、ソースコードを生成する前の段階で見つけ出すことができる。すなわち、実機テストで動作不良を確認する場合に較べて、手戻り規模を抑制することができる。
【図面の簡単な説明】
【００１２】
【図１】第１実施形態に係るソフトウェアの開発支援装置の概略構成を示す図である。
【図２】ブロック図の一例を示す図である。
【図３】ソフトウェアの開発支援方法を示すフローチャートである。
【図４】図３におけるステップＳ３４の詳細を示すフローチャートである。
【図５】ブロック通番付与ステップにおいてメモリに保持されるテーブルの一例を示す図である。
【図６】入力用結線名抽出ステップにおいてメモリに保持されるテーブルの一例を示す図である。
【図７】出力用結線名抽出ステップにおいてメモリに保持されるテーブルの一例を示す図である。
【図８】出力部に出力されるテーブルの一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態を図面に基づいて説明する。なお、以下の各図相互において、互いに同一もしくは均等である部分に、同一符号を付与する。
【００１４】
（第１実施形態）
最初に、図１を参照して、本実施形態に係るソフトウェアの開発支援装置１０の概略構成について説明する。
【００１５】
本実施形態におけるソフトウェアの開発支援装置１０は、自動ソースコード生成のためのモデル設計を支援するものである。モデル設計は、各種機能を有する機能ブロック同士を結線してなるブロック図を基に、演算の妥当性等を検証しつつ行われる。
【００１６】
ソフトウェアの開発支援装置１０は、処理部１００と、処理部１００に必要な情報を入力する入力部２００と、処理部１００により処理された情報を外部に出力する出力部３００と、を有する。処理部１００は、いずれも周知のＣＰＵ、ＲＯＭ・ＲＡＭなどのメモリ、Ｉ／Ｏおよびこれらを接続するバスによって構成され、与えられた命令を実行する部分である。また、入力部２００は、例えばキーボードやマウスといった入力デバイスであり、出力部３００は、例えばディスプレイやプリンタといった出力デバイスである。すなわち、ソフトウェアの開発支援装置１０は一般的に用いられるパーソナルコンピュータおよびそれに準じる装置により構成することができる。
【００１７】
処理部１００は、複数の機能ブロックが格納された機能ブロックデータベース１１０（以下、機能ブロックＤＢと示す）と、使用者が任意に選択した機能ブロック同士を結線して作成したブロック図が格納されたブロック図データベース１２０（以下、ブロック図ＤＢと示す）と、を有する。また、処理部１００は、ブロック図データベース１２０に格納されたブロック図を構成する各機能ブロックに演算周期を設定する割当部１３０を有する。演算周期は入力部２００を介して利用者が入力する。処理部１００は、演算周期が設定された各機能ブロックにより構成されたブロック図を基に、演算シミュレーションを実施するための演算シミュレーション部１４０を有する。演算シミュレーションとは、利用者が作成したブロック図において、入力に対して出力が意図した通りになっているか否かをシミュレートする一般的なものであり、必ずしも、演算周期を考慮した信号の参照抜け等を忠実にシミュレートできるものとは限らない。
【００１８】
上記構成に加えて、本実施形態の処理部１００は抽出部１５０を有する。ところで、演算周期の異なる少なくとも２つの機能ブロック同士が結線されたブロック図において、演算周期の短い短周期ブロックから、この短周期ブロックよりも演算周期の長い長周期ブロックへ信号が伝送されるような結線が存在する場合がある。このような結線がされていると、長周期ブロックは、短周期ブロックが出力した信号を正しく参照できず、正しい動作が行われない虞がある。抽出部１５０は、このような結線がされた機能ブロックの機能ブロック名および結線の結線名を抽出する。
【００１９】
本実施形態における抽出部１５０は、ブロック図を構成するＮ個の機能ブロックについて、演算周期の短い順に自然数（１〜ｎ）の通番（以下、ブロック通番と示す）を付与するブロック通番付与部１５２を有する。また、機能ブロック毎に、入力に用いられる入力用結線の結線名を抽出する入力用結線名抽出部１５４と、出力に用いられる出力用結線の結線名を抽出する出力用結線名抽出部１５６と、を有する。さらに、ブロック通番ｍ（２≦ｍ≦ｎ）に該当する機能ブロックにおける入力用結線の結線名と一致する結線名が、ブロック通番１〜（ｍ−１）に該当する機能ブロックにおける出力用結線に存在するか否かを検索する検索部１５８を有する。
【００２０】
上記したように、このソフトウェアの開発支援装置１０は、主に電子式汎用計算機として構成され、いずれも周知のＣＰＵ、ＲＯＭ・ＲＡＭなどのメモリ、Ｉ／Ｏ、およびこれらを接続するバスによって構成される。そして、ソフトウェアの開発支援装置１０は、メモリに記憶されたプログラムを実行することで、各処理（割当部１３０、抽出部１５０、演算シミュレーション部１４０に割り当てられた処理）を実行する。
【００２１】
なお、ブロック図ＤＢ１２０、割当部１３０、抽出部１５０、入力部２００、出力部３００は、それぞれ、特許請求の範囲における、ブロック図格納手段、割当手段、抽出手段、入力手段、出力手段に相当する。また、抽出部１５０を構成する、ブロック通番付与部１５２、入力用結線名抽出部１５４、出力用結線名抽出部１５６、検索部１５８は、それぞれ、特許請求の範囲における、ブロック通番付与手段、入力用結線名抽出手段、出力用結線名抽出手段、検索手段に相当する。
【００２２】
次に、図２に示す具体的なブロック図の例、および図３〜図８を参照して、ソフトウェアの開発支援装置１０の動作について説明する。すなわち、ソフトウェアの開発支援方法について説明する。なお、特許請求の範囲に記載の、ソフトウェアの開発支援プログラム、とは、以下に記載するソフトウェアの開発支援方法をコンピュータに実行させるプログラムである。
【００２３】
まず、図２を参照して、動作の説明の例とするブロック図の構成について説明する。
【００２４】
図２に示すブロック図は、Ｎ個の機能ブロックから成る。それぞれの機能ブロック名は、α，β，・・・，ζである。各機能ブロックには、利用者が設定した演算周期が割当部１３０により割り当てられる。図２に示す例では、機能ブロックα、β、ζにそれぞれ演算周期Ｋ２、Ｋ１、Ｋｎが与えられる。また、機能ブロックα、β、ζを除く他の機能ブロックにもそれぞれ演算周期（Ｋ３〜Ｋ（ｎ−１））が与えられるが、この例では省略する。そして、この例では、演算周期の大小関係がＫ１＜Ｋ２＜・・・＜Ｋｎである。
【００２５】
機能ブロックαは、入力用結線として結線Ｅおよび結線Ｆが結線され、出力用結線として結線Ｄ、結線Ｇおよび結線Ｈが結線される。
【００２６】
機能ブロックβは、入力用結線として結線Ａ、結線Ｂ、結線Ｃおよび結線Ｄが結線され、出力用結線として結線Ｅが結線される。すなわち、結線Ｄおよび結線Ｅは機能ブロックαと機能ブロックβとを結ぶ結線である。より詳しくは、結線Ｄは機能ブロックαにとっての出力用結線であり、且つ、機能ブロックβにとっての入力用結線である。また、結線Ｅは機能ブロックαにとっての入力用結線であり、且つ、機能ブロックβにとっての出力用結線である。
【００２７】
機能ブロックζは、入力用結線として結線Ｈ、結線Ｉおよび結線Ｊが結線され、出力用結線として結線Ｋおよび結線Ｌが結線される。すなわち、結線Ｈは機能ブロックαと機能ブロックζとを結ぶ結線である。より詳しくは、結線Ｈは機能ブロックαにとっての出力用結線であり、且つ、機能ブロックζにとっての入力用結線である。
【００２８】
次いで、図３および図４のフローチャート、ならびに、図５〜図８を参照して、ソフトウェアの開発支援装置１０の動作について順を追って説明する。
【００２９】
最初に、図３に示すように、入力ステップＳ１０を実施する。図２に示すブロック図に対して、利用者が、演算周期を機能ブロック毎に設定する。具体的には、利用者が、各機能ブロックに対応する演算周期を、入力部２００を介して処理部１００に入力する。
【００３０】
次に、割当ステップＳ２０を実施する。このステップでは、割当部１３０が、入力ステップＳ１において入力された演算周期の情報を各機能ブロックに割り当てる。
【００３１】
次に、抽出ステップＳ３０を実施する。本実施形態における抽出ステップＳ３０は、ブロック通番付与ステップＳ３１と、入力用結線名抽出ステップＳ３２と、出力用結線名抽出ステップＳ３３と、検索ステップＳ３４と、を有する。以下、順を追って説明する。
【００３２】
ブロック通番付与ステップＳ３１は、演算周期の小さい順に、各機能ブロックにブロック通番を付与するステップである。このステップＳ３１では、ブロック通番付与部１５２が、Ｋ１＜Ｋ２＜・・・＜Ｋｎの順になるように、各機能ブロックを昇順ソートし、ブロック通番として、順に１〜ｎを付与する。そして、ブロック通番付与部１５２は、図５に示すテーブルをメモリに保持する。なお、図５に示すテーブルは、付与されたブロック通番、ブロック通番に対応する機能ブロックおよび演算周期が一覧化されたテーブルである。
【００３３】
ブロック通番付与ステップＳ３１の後、入力用結線名抽出ステップＳ３２および出力用結線名抽出ステップＳ３３を実施する。なお、この２つのステップＳ３２，Ｓ３３の実施順は任意である。
【００３４】
入力用結線名抽出ステップＳ３２では、入力用結線名抽出部１５４が、図６に示すように、各機能ブロックの入力用結線の結線名のみを一覧にした入力用結線テーブルを生成する。なお、入力用結線テーブルにおいては、機能ブロック毎の結線名にも結線通番ｉが付与される。例えば、ブロック通番が１とされた機能ブロック（機能ブロックβ）では、図６に示すように、結線Ａに結線通番ｉ＝１が付与され、結線Ｂには結線通番ｉ＝２が付与され、結線Ｃには結線通番ｉ＝３が付与され、結線Ｄには結線通番ｉ＝４が付与される。さらに、この機能ブロックβにおいて、すべての結線に結線通番が付与された後、最後の結線通番の直後の結線通番には結線名として「Ｎｕｌｌ」が割り当てられる（ｉ＝ｉＮｕｌｌ）。なお、図４に示すフローチャートにおいて、例えば、入力用結線テーブルのｍ行目かつｉ列目のセルに割り当てられた結線名をＸｍｉと示す。
【００３５】
出力用結線名抽出ステップＳ３３では、出力用結線名抽出部１５６が、図７に示すように、各機能ブロックの出力用結線の結線名のみを一覧にした出力用結線テーブルを生成する。図６に示す入力用結線テーブルと同様、機能ブロック毎の結線名にも結線通番ｏが付与される。なお、図４に示すフローチャートにおいて、例えば、出力用結線テーブルのｍ行目かつｏ列目のセルに割り当てられた結線名をＹｍｏと示す。
【００３６】
検索ステップＳ３４は、入力用結線名抽出ステップＳ３２および出力用結線名抽出ステップＳ３３の後に実施される。検索ステップＳ３４は、２≦ｍ≦ｎを満たすブロック通番ｍが付与された機能ブロックの入力用結線と同じ結線が、ブロック通番１〜ブロック通番（ｍ−１）が付与された機能ブロックの出力用結線として存在するか否かを検索するステップである。
【００３７】
そして、最後に出力ステップＳ４０を実施する。このステップでは、抽出ステップＳ３０により抽出された結果を出力部３００に出力する。
【００３８】
図４のフローチャート、図６および図７を用いて検索ステップＳ３４について具体的に説明する。
【００３９】
まず、ステップＳ３４ａを実施する。ステップＳ３４ａは、検索を開始する最初の機能ブロックを設定するステップであり、図４に示すように、ブロック通番ｍ＝２の機能ブロック（本実施形態では機能ブロックα）が検索開始の最初の機能ブロックとされる。なお、ブロック通番ｍ＝１の機能ブロック（機能ブロックβ）は演算周期がもっとも短いため、他のどの機能ブロックからの出力信号も参照することができる。このため、このステップＳ３４ａでは、ブロック通番ｍ＝２の機能ブロックを検索開始の最初の機能ブロックとしている。
【００４０】
次に、ステップＳ３４ｂを実施する。ステップＳ３４ｂは、２≦ｍ≦ｎを満たすすべての機能ブロックについて検索が終了しているか否かを判定するステップである。すべての機能ブロックの検索が終了していれば（Ｎｏ判定）、検索ステップＳ３４を終了する。すべての機能ブロックの検索が終了していなければ（Ｙｅｓ判定）、ステップＳ３４ｃに進む。本説明においては、この段階で、ステップＳ３４ａで規定された機能ブロックα（ｍ＝２）が検索の対象となっている。このため、すべての機能ブロックの検索は終了しておらず、Ｙｅｓ判定となるので、ステップＳ３４ｃに進む。
【００４１】
次に、ステップＳ３４ｃを実施する。ステップＳ３４ｃは、検索を開始する最初の結線通番ｉを設定するステップであり、図４に示すように、結線通番ｉ＝１の入力用結線（Ｘ２１：本実施形態では、図６に示すように、結線Ｅ）が検索開始の最初の結線とされる。
【００４２】
次に、ステップＳ３４ｄを実施する。ステップＳ３４ｄは、検索の対象とされた機能ブロック、すなわち現段階での機能ブロックα、のすべての入力用結線について、検索が終了しているか否かを判定するステップである。すべての入力用結線（機能ブロックαであればｉ＝１〜２の２つの結線）の検索が終了していれば（Ｎｏ判定）、ステップＳ３４ｈを経由して次のブロック通番の機能ブロック（ｍ＝３）の検索に移行する。すなわち、次のブロック通番の機能ブロックについてのステップ３４ｂに進む。ステップＳ３４ｈは、検索対象の機能ブロックのブロック通番を１つ進めるステップである。一方、すべての機能ブロックの検索が終了していなければ（Ｙｅｓ判定）、ステップＳ３４ｅに進む。本説明においては、この段階で、ステップＳ３４ａおよびステップＳ３４ｄで規定された入力用結線（Ｘ２１：結線Ｅ）が検索の対象となっている。このため、すべての入力用結線の検索は終了しておらず、Ｙｓｅ判定となるので、ステップＳ３４ｅに進む。
【００４３】
次に、ステップＳ３４ｅを実施する。ステップＳ３４ｅは、検索の対象となっている入力用結線と一致する出力用結線が、ブロック通番ｗ（１≦ｗ≦ｍ−１）が付与された機能ブロックの出力用結線のなかに存在するか否かを判定するステップである。この段階では、検索の対象となっている入力用結線はＸ２１、すなわち結線Ｅである。そして、図７に示すように、一致の確認が行われる出力用結線はＹ１ｏであるが、ブロック通番ｍ＝１の機能ブロックβにおける対象の結線はＹ１１のみである。Ｙ１１は結線Ｅであり、Ｘ２１＝Ｙ１１であるから、図４におけるステップＳ３４ｅはＹｅｓ判定となる。すなわち、ステップＳ３４ｆに進む。
【００４４】
次に、ステップＳ３４ｆを実施する。ステップＳ３４ｆは、ステップＳ３４ｅの条件式Ｘｍｉ＝Ｙｗｏ（ｍ≧２，１≦ｗ≦ｍ−１）を満たす結線の結線名と、その結線が結ぶ機能ブロック、すなわち、特許請求の範囲に記載の短周期ブロックおよび長周期ブロックの機能ブロック名を、処理部１００が備えるメモリに格納するステップである。この段階では、結線Ｅが上記条件式を満たすため、結線Ｅ、結線Ｅが接続された短周期側の機能ブロックβおよび長周期側の機能ブロックα、の結線名および機能ブロック名が関連付けられてメモリに保持される。
【００４５】
次に、ステップＳ３４ｇを実施する。ステップＳ３４ｇは、検索の対象となっている入力用結線の結線通番ｉを１つ進めるステップである。この例では、Ｘ２１に次いでＸ２２が検索の対象となる。図６に示すように、Ｘ２２は結線Ｆである。
【００４６】
次に、再びステップＳ３４ｄを実施する。ブロック通番ｍ＝２の結線通番ｉ＝２は結線ＦであってＮｕｌｌではないから、ｉ＜ｉｎｕｌｌを満たす。すなわち、ステップＳ３４ｄはＹｅｓ判定であり、ステップＳ３４ｅに進む。
【００４７】
次に、再びステップＳ３４ｅを実施する。この段階では、検索の対象となっている入力用結線はＸ２２、すなわち結線Ｆである。そして、図７に示すように、一致の確認が行われる出力用結線はＹ１ｏであるが、ブロック通番ｍ＝１の機能ブロックβにおける対象の結線はＹ１１のみである。Ｙ１１は結線Ｅであり、Ｘ２１≠Ｙ１１であるから、図４におけるステップＳ３４ｅはＮｏ判定となる。したがって、図４に示すように、ステップＳ３４ｇを経て再びステップＳ３４ｄに進む。
【００４８】
この段階で、検索対象の入力用結線はＸ２３となっている。Ｘ２３はＮｕｌｌであるからｉ＜ｉｎｕｌｌを満たさない。すなわち、ステップＳ３４ｄはＮｏ判定であり、ステップＳ３４ｈを経由して次のブロック通番の機能ブロック（ｍ＝３）の検索に移行する。
【００４９】
そして、図４に示すように、再びステップＳ３４ｂを実施する。本実施形態において例示するブロック図は少なくとも３つの機能ブロックα，β，ζを有する。このため、ｍ＝３であるこの段階においては、ｍ≦ｎを満たす。したがって、ステップＳ３４ｃに進む。ステップＳ３４ｃを経由した段階で、検索の対象となる入力用結線はＸ３１となる。
【００５０】
そして、上記した要領でステップＳ３４ｂ〜ステップＳ３４ｈを繰り返す。ブロック通番３〜ブロック通番ｎに係る各機能ブロックの入力用結線についても、上記したステップを踏んでＸｍｉ＝Ｙｗｏ（ｍ≧２，１≦ｗ≦ｍ−１）を満たす結線の結線名と、その結線が結ぶ機能ブロック、すなわち、特許請求の範囲に記載の短周期ブロックおよび長周期ブロックの機能ブロック名を抽出する。なお、本実施形態では、Ｘｎ１＝Ｙ２３であり、該当する結線Ｈ、結線Ｈが接続された短周期側の機能ブロックαおよび長周期側の機能ブロックζ、の結線名および機能ブロック名が関連付けられてメモリに保持される。
【００５１】
入力用結線Ｘｎ３（結線Ｊ）の検索を終了すると、ステップＳ３４ｇを経由してステップＳ３４ｄに進む。この段階でＸｎ４＝Ｎｕｌｌであるから、ステップＳ３４ｄはＮｏ判定となる。そして、ステップ３４ｈを経由してステップＳ３４ｂに進む。本実施形態における機能ブロックはＮ個であり、ブロック通番はｎまでであるから、ｍ≦ｎを満たさない。したがって、ステップＳ３４ｂはＮｏ判定となる。そして、本実施形態に係るソフトウェアの開発支援装置１０は、図４に示すように、検索ステップＳ３４を終了し、出力ステップＳ４０に進む。
【００５２】
出力ステップＳ４０では、例えば、図８に示すように、ステップＳ３４ｆにおいてメモリに格納した情報を出力部３００に出力する。
【００５３】
（その他の実施形態）
以上、本発明の好ましい実施形態について説明したが、本発明は上述した実施形態になんら制限されることなく、本発明の主旨を逸脱しない範囲において、種々変形して実施することが可能である。
【００５４】
上記した実施形態では、処理部１００に抽出部１５０と演算シミュレーション部１４０と、を両方含む例を示したが、それぞれが独立であってもよい。
【００５５】
また、上記した実施形態では、抽出ステップＳ３０において、各機能ブロックにブロック通番を付与し、図６および図７に示すようなテーブルに分けて、該当の結線および機能ブロックを抽出する例を示した。しかしながら、これは一例であって、少なくとも、演算周期の短い短周期ブロックから、演算周期の長い長周期ブロックへ出力される信号の伝送を表す結線名と、短周期ブロック名と、長周期ブロック名と、を抽出する抽出手段を有する構成であれば同様の効果を奏することができる。
【符号の説明】
【００５６】
１０・・・ソフトウェアの開発支援装置
１００・・・処理部
１１０・・・機能ブロックデータベース
１２０・・・ブロック図データベース
１３０・・・割当部
１４０・・・演算シミュレーション部
１５０・・・抽出部
２００・・・入力部
３００・・・出力部
【図１】
2014229074.tif 000003
【図２】
2014229074.tif 000004
【図３】
2014229074.tif 000005
【図４】
2014229074.tif 000006
【図５】
2014229074.tif 000007
【図６】
2014229074.tif 000008
【図７】
2014229074.tif 000009
【図８】
2014229074.tif 000010