(57)【要約】【課題】ブロック図からプログラムを作成するときに、ブロック図に設定された変数を初期化でき、しかもブロック図と一致させたプログラムを自動生成できる。【解決手段】変数初期化装置１０は、変数初期化ブロック作成機能（Ａ）で一つの変数を初期化するブロックを作成し、関数ブロックヘの関連付け機能（Ｂ）で変数初期化ブロックを関数ブロックに関連付け、初期化可能変数取得機能（Ｃ）で関連付けた関数ブロックで初期化可能な変数一覧を取得し、変数設定機能（Ｄ）で前記変数一覧から初期化する変数を一つ指定し、初期値設定機能（Ｅ）で指定した変数を初期化する値を設定し、初期化条件設定機能（Ｆ）で指定した変数の初期化を行う条件を設定し、初期化位置設定機能（Ｇ）で関連付けた関数ブロックのどの位置で変数初期化を行うかを設定し、変数初期化ブロック用プログラム自動作成機能（Ｈ）で指定した変数を初期化するプログラムを自動生成する。【選択図】図１
2010066846.tif 000002
【特許請求の範囲】
【請求項１】
ブロック間を線で結んで演算順序を表現したブロック図を作成し、このブロック図を元にプログラムを作成し、このプログラムをコンパイルし、実機に組み込むソフトウェアとする組込みソフトウェア開発支援システムであって、
前記ブロック図に設定された変数を初期化する変数初期化ブロック用のプログラムを自動生成する変数初期化装置を備え、
前記変数初期化装置は、変数初期化ブロック作成手段により一つまたは複数の変数を初期化するブロックを作成し、関数ブロックヘの関連付け手段により前記作成した変数初期化ブロックを関数ブロックに関連付け、初期化可能変数取得手段により前記関連付けた関数ブロックで初期化可能な変数一覧を取得し、変数設定手段により前記変数一覧から初期化する変数を一つまたは複数指定し、初期値設定手段により前記指定した変数を初期化する値を設定し、初期化条件設定手段により前記指定した変数の初期化を行う条件を設定し、初期化位置設定手段により前記関連付けた関数ブロックのどの位置で変数初期化を行うかを設定し、変数初期化ブロック用プログラム自動作成手段により前記指定した変数を初期化するプログラムを自動生成することを特徴とする組込みソフトウェア開発支援システム。
【請求項２】
ブロック間を線で結んで演算順序を表現したブロック図を作成し、このブロック図を元にプログラムを作成し、このプログラムをコンパイルし、実機に組み込むソフトウェアとする組込みソフトウェア開発支援システムであって、
前記ブロック図に設定された変数を初期化する変数初期化ブロック用のプログラムを自動生成する変数初期化装置を備え、
前記変数初期化装置は、レジスタを利用した変数初期化ブロック作成手段によりレジスタを利用した変数初期化ブロックを作成し、関数ブロックヘの関連付け手段により前記作成したレジスタを利用した変数初期化ブロックを関数ブロックに関連付け、初期化可能変数取得手段により前記関連付けた関数ブロックで初期化可能な変数一覧を取得し、変数設定手段により前記変数一覧から初期化する変数を一つまたは複数指定し、初期値設定手段により前記指定した変数を初期化する値を設定し、初期化条件設定手段により前記指定した変数の初期化を行う条件を設定し、初期化位置設定手段により前記関連付けた関数ブロックのどの位置で変数初期化を行うかを設定し、利用可能レジスタ取得手段により前記関連付けた関数で利用可能なレジスタ一覧を取得し、レジスタ設定手段により前記レジスタ一覧から変数初期化で利用するレジスタを一つ指定し、レジスタを利用した変数初期化ブロック用プログラム自動生成手段により前記指定した変数を前記指定したレジスタを利用して初期化するプログラムを自動生成することを特徴とする組込みソフトウェア開発支援システム。
【請求項３】
ブロック間を線で結んで演算順序を表現したブロック図を作成し、このブロック図を元にプログラムを作成し、このプログラムをコンパイルし、実機に組み込むソフトウェアとする組込みソフトウェア開発支援方法であって、
前記ブロック図に設定された変数を初期化する変数初期化ブロック用のプログラムを自動生成する変数初期化装置を備え、
前記変数初期化装置は、変数初期化ブロック作成ステップにより一つまたは複数の変数を初期化するブロックを作成し、関数ブロックヘの関連付けステップにより前記作成した変数初期化ブロックを関数ブロックに関連付け、初期化可能変数取得ステップにより前記関連付けた関数ブロックで初期化可能な変数一覧を取得し、変数設定ステップにより前記変数一覧から初期化する変数を一つまたは複数指定し、初期値設定ステップにより前記指定した変数を初期化する値を設定し、初期化条件設定ステップにより前記指定した変数の初期化を行う条件を設定し、初期化位置設定ステップにより前記関連付けた関数ブロックのどの位置で変数初期化を行うかを設定し、変数初期化ブロック用プログラム自動作成ステップにより前記指定した変数を初期化するプログラムを自動生成することを特徴とする組込みソフトウェア開発支援方法。
【請求項４】
ブロック間を線で結んで演算順序を表現したブロック図を作成し、このブロック図を元にプログラムを作成し、このプログラムをコンパイルし、実機に組み込むソフトウェアとする組込みソフトウェア開発支援方法であって、
前記ブロック図に設定された変数を初期化する変数初期化ブロック用のプログラムを自動生成する変数初期化装置を備え、
前記変数初期化装置は、レジスタを利用した変数初期化ブロック作成ステップによりレジスタを利用した変数初期化ブロックを作成し、関数ブロックヘの関連付けステップにより前記作成したレジスタを利用した変数初期化ブロックを関数ブロックに関連付け、初期化可能変数取得ステップにより前記関連付けた関数ブロックで初期化可能な変数一覧を取得し、変数設定ステップにより前記変数一覧から初期化する変数を一つまたは複数指定し、初期値設定ステップにより前記指定した変数を初期化する値を設定し、初期化条件設定ステップにより前記指定した変数の初期化を行う条件を設定し、初期化位置設定ステップにより前記関連付けた関数ブロックのどの位置で変数初期化を行うかを設定し、利用可能レジスタ取得ステップにより前記関連付けた関数で利用可能なレジスタ一覧を取得し、レジスタ設定ステップにより前記レジスタ一覧から変数初期化で利用するレジスタを一つ指定し、レジスタを利用した変数初期化ブロック用プログラム自動生成ステップにより前記指定した変数を前記指定したレジスタを利用して初期化するプログラムを自動生成することを特徴とする組込みソフトウェア開発支援方法。
【請求項５】
請求項３または４のいずれか１項に記載の組込みソフトウェア開発支援方法における各処理ステップをコンピュータで実行可能に構成したことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア開発支援システムおよび支援方法に係り、特に組込みソフトウェアにおける変数の初期化に関する。
【背景技術】
【０００２】
監視制御や計測制御などのコンピュータ処理システムに組み込むアプリケーション・ソフトウェアの開発ではＵＭＬで設計図の記述を行うことが多い。このＵＭＬの設計図のうち、クラス図などからソースコードを出力し、残りのロジックに関する部分の実装を手作業で行うようにしている（例えば、非特許文献１参照）。
【０００３】
一方、組込みソフトウェア開発では、演算に関する設計図としてブロック図を作成する。たとえば、開発対象の組込み機器が加算と乗算を行う場合、入力から出力まで、加算や乗算を表すブロックを配置し、ブロック間を線で結んで演算順序を表現する。この設計図を元にして実装を行うにあたっては、作成したブロック図を元にプログラムを作成し、このプログラムを専用のコンパイラを使用してコンパイルし、実機に組み込んで動作を試験する。
【０００４】
上記のブロック図を元にプログラムを作成するには、人が手作業で行う方法のほか、ブロック図からプログラムを自動作成する方法がある。例えば、ＭＡＴＬＡＢ／Ｓｉｍｕｌｉｎｋに代表されるようなブロック図作成のためのアプリケーションでは、ブロック図を元にソースコードを自動的に作成することができる（例えば、非特許文献２参照）。
【０００５】
ブロック図から作成したプログラムの動作確認には、ブロックやブロック図に入力を設定して出力を取り出し、この入出力関係からブロックやブロック図の動作を確認することができる。
【０００６】
図９はブロック図からプログラムを自動生成し、動作を確認する例を示す。図９の左上はブロック図の例を示し、入力にＩＮ１，ＩＮ２，ＩＮ３があり、ＶＡＲはＩＮ１とＩＮ２の和が入り、ＯＵＴはＶＡＲとＩＮ３の積が入る演算ブロックとする。このブロック図から図９の右上のようにプログラムを手動または自動で作成する。そして、図９の右下のように、入力設定値として、入力ＩＮ１に数値「２」，ＩＮ２に数値「３」，ＩＮ３に数値「４」を設定すると、ＶＡＲは値「５」になり、ＯＵＴは値「２０」となり、動作を確認することができる。
【非特許文献１】明電時報、２００６年９・１０月、通巻３１０号、Ｎｏ．５「ソフトウェア開発総合支援システムにおける仕様作成支援機能」
【非特許文献２】ＭＡＴＬＡＢ／Ｓｉｍｕｌｉｎｋ（ｈｔｔｐ：／／ｗｗｗ．ｃｙｂｅｒｎｅｔ．ｃｏ．ｊｐ／ｍａｔｌａｂ／ｐｒｏｄｕｃｔｓ／ｐｒｏｄｕｃｔ＿ｌｉｓｔｉｎｇ／ｓｉｍｕｌｉｎｋ／）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
Ｃ言語のようなプログラミング言語で扱う変数は、一般に宣言しただけでは不定値（ゴミ）が入っているので、宣言後に必要な値を代入して初期化しなければならない。また、関数の内部でグローバル変数を使用している場合、そのグローバル変数を初期化しなければ正しい演算結果が得られないこともある。
【０００８】
組込みソフトウェア開発支援システムでは、ブロック図からプログラムを自動作成する場合、変数初期化を表現するブロックが存在しないため、ある関数の特定の場所で変数を初期化させたい場合は、自動作成したプログラムに変数を初期化する部分を手で追記する必要がある。このため、ブロック図とプログラムが一致しなくなり、開発したシステムの不具合箇所になりやすくなる。
【０００９】
たとえば、図１０の場合、左側のブロック図は、関数ｆｕｎｃがあり、その中でＶＡＲ１とＶＡＲ２の和をＶＡＲ３に代入するだけの内容となっている。開発支援システムが自動作成するプログラムは、この和の部分「ＶＡＲ３＝ＶＡＲ１＋ＶＡＲ２」だけである。関数ｆｕｎｃの最初に変数ＶＡＲ１とＶＡＲ２を「０」で初期化させたい場合は、図１０の右側上部のように、この自動生成したプログラムに開発者が図１０の右側下部に示すような初期化プログラムを追記する必要がある。この結果、ブロック図とプログラムは不一致となる。
【００１０】
本発明の目的は、ブロック図からプログラムを作成するときに、ブロック図に設定された変数を初期化でき、しかもブロック図と一致させたプログラムを自動生成できる組込みソフトウェア開発支援システム、支援方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１１】
本発明は、前記の課題を解決するため、変数を初期化する機能を持つ変数初期化ブロックを変数初期化装置で生成し、この生成した変数初期化ブロックを追加したブロック図について既存のプログラム自動生成装置でプログラムを自動生成するようにしたもので、以下のシステム、方法およびプログラムを特徴とする。
【００１２】
（１）ブロック間を線で結んで演算順序を表現したブロック図を作成し、このブロック図を元にプログラムを作成し、このプログラムをコンパイルし、実機に組み込むソフトウェアとする組込みソフトウェア開発支援システムであって、
前記ブロック図に設定された変数を初期化する変数初期化ブロック用のプログラムを自動生成する変数初期化装置を備え、
前記変数初期化装置は、変数初期化ブロック作成手段により一つまたは複数の変数を初期化するブロックを作成し、関数ブロックヘの関連付け手段により前記作成した変数初期化ブロックを関数ブロックに関連付け、初期化可能変数取得手段により前記関連付けた関数ブロックで初期化可能な変数一覧を取得し、変数設定手段により前記変数一覧から初期化する変数を一つまたは複数指定し、初期値設定手段により前記指定した変数を初期化する値を設定し、初期化条件設定手段により前記指定した変数の初期化を行う条件を設定し、初期化位置設定手段により前記関連付けた関数ブロックのどの位置で変数初期化を行うかを設定し、変数初期化ブロック用プログラム自動作成手段により前記指定した変数を初期化するプログラムを自動生成することを特徴とする。
【００１３】
（２）ブロック間を線で結んで演算順序を表現したブロック図を作成し、このブロック図を元にプログラムを作成し、このプログラムをコンパイルし、実機に組み込むソフトウェアとする組込みソフトウェア開発支援システムであって、
前記ブロック図に設定された変数を初期化する変数初期化ブロック用のプログラムを自動生成する変数初期化装置を備え、
前記変数初期化装置は、レジスタを利用した変数初期化ブロック作成手段によりレジスタを利用した変数初期化ブロックを作成し、関数ブロックヘの関連付け手段により前記作成したレジスタを利用した変数初期化ブロックを関数ブロックに関連付け、初期化可能変数取得手段により前記関連付けた関数ブロックで初期化可能な変数一覧を取得し、変数設定手段により前記変数一覧から初期化する変数を一つまたは複数指定し、初期値設定手段により前記指定した変数を初期化する値を設定し、初期化条件設定手段により前記指定した変数の初期化を行う条件を設定し、初期化位置設定手段により前記関連付けた関数ブロックのどの位置で変数初期化を行うかを設定し、利用可能レジスタ取得手段により前記関連付けた関数で利用可能なレジスタ一覧を取得し、レジスタ設定手段により前記レジスタ一覧から変数初期化で利用するレジスタを一つ指定し、レジスタを利用した変数初期化ブロック用プログラム自動生成手段により前記指定した変数を前記指定したレジスタを利用して初期化するプログラムを自動生成することを特徴とする。
【００１４】
（３）ブロック間を線で結んで演算順序を表現したブロック図を作成し、このブロック図を元にプログラムを作成し、このプログラムをコンパイルし、実機に組み込むソフトウェアとする組込みソフトウェア開発支援方法であって、
前記ブロック図に設定された変数を初期化する変数初期化ブロック用のプログラムを自動生成する変数初期化装置を備え、
前記変数初期化装置は、変数初期化ブロック作成ステップにより一つまたは複数の変数を初期化するブロックを作成し、関数ブロックヘの関連付けステップにより前記作成した変数初期化ブロックを関数ブロックに関連付け、初期化可能変数取得ステップにより前記関連付けた関数ブロックで初期化可能な変数一覧を取得し、変数設定ステップにより前記変数一覧から初期化する変数を一つまたは複数指定し、初期値設定ステップにより前記指定した変数を初期化する値を設定し、初期化条件設定ステップにより前記指定した変数の初期化を行う条件を設定し、初期化位置設定ステップにより前記関連付けた関数ブロックのどの位置で変数初期化を行うかを設定し、変数初期化ブロック用プログラム自動作成ステップにより前記指定した変数を初期化するプログラムを自動生成することを特徴とする。
【００１５】
（４）ブロック間を線で結んで演算順序を表現したブロック図を作成し、このブロック図を元にプログラムを作成し、このプログラムをコンパイルし、実機に組み込むソフトウェアとする組込みソフトウェア開発支援方法であって、
前記ブロック図に設定された変数を初期化する変数初期化ブロック用のプログラムを自動生成する変数初期化装置を備え、
前記変数初期化装置は、レジスタを利用した変数初期化ブロック作成ステップによりレジスタを利用した変数初期化ブロックを作成し、関数ブロックヘの関連付けステップにより前記作成したレジスタを利用した変数初期化ブロックを関数ブロックに関連付け、初期化可能変数取得ステップにより前記関連付けた関数ブロックで初期化可能な変数一覧を取得し、変数設定ステップにより前記変数一覧から初期化する変数を一つまたは複数指定し、初期値設定ステップにより前記指定した変数を初期化する値を設定し、初期化条件設定ステップにより前記指定した変数の初期化を行う条件を設定し、初期化位置設定ステップにより前記関連付けた関数ブロックのどの位置で変数初期化を行うかを設定し、利用可能レジスタ取得ステップにより前記関連付けた関数で利用可能なレジスタ一覧を取得し、レジスタ設定ステップにより前記レジスタ一覧から変数初期化で利用するレジスタを一つ指定し、レジスタを利用した変数初期化ブロック用プログラム自動生成ステップにより前記指定した変数を前記指定したレジスタを利用して初期化するプログラムを自動生成することを特徴とする。
【００１６】
（５）前記の（３）または（４）の組込みソフトウェア開発支援方法における各処理ステップをコンピュータで実行可能に構成したことを特徴とする。
【発明の効果】
【００１７】
以上のとおり、本発明によれば、変数を初期化する機能を持つ変数初期化ブロックを変数初期化装置で生成し、この生成した変数初期化ブロックを追加したブロック図について既存のプログラム自動生成装置でプログラムを自動生成するようにしたため、ブロック図からプログラムを作成するときに、ブロック図に設定された変数を初期化でき、しかもブロック図と一致させたプログラムを自動生成できる。
【発明を実施するための最良の形態】
【００１８】
（実施形態１）
図１は、本発明の実施形態を示す変数初期化装置の機能構成図であり、組込みソフトウェア開発支援システムにおいて、一つの変数を初期化する機能を持つ変数初期化装置１０を用意し、この装置で生成した変数初期化ブロックを追加したブロック図について既存のプログラム自動生成装置２０でプログラムを自動生成する。
【００１９】
変数初期化装置１０は、コンピュータ資源とこれを演算処理に利用するソフトウェアで構成され、変数初期化ブロック作成機能（Ａ）、関数ブロックヘの関連付け機能（Ｂ）、初期化可能変数取得機能（Ｃ）、変数設定機能（Ｄ）、初期値設定機能（Ｅ）、初期化条件設定機能（Ｆ）、初期化位置設定機能（Ｇ）および変数初期化ブロック用プログラム自動生成機能（Ｈ）で構成される。
【００２０】
変数初期化装置１０による変数初期化ブロックの作成手順を図２に示す。同図の左下のように、変数初期化装置１０には、情報として、初期化する変数、初期値、初期化を行う条件、初期化を行う位置の各情報を設定可能にする。必要であれば、この他にも設定可能な情報を設けることができる。
【００２１】
変数初期化ブロックの作成手順を説明する。まず、変数初期化ブロック作成機能（Ａ）により一つの変数を初期化する変数初期化ブロックを作成し（図２右のＳ１）、関数ブロックヘの関連付け機能（Ｂ）により作成した一つの変数を初期化する変数初期化ブロックを関数ブロックに関連付ける（図２右のＳ２）。
【００２２】
関連付けた関数で初期化可能な変数一覧を初期化可能変数取得機能（Ｃ）により取得し（図２右のＳ３）、変数設定機能（Ｄ）によりその変数一覧から初期化する変数を一つ指定する（図２右のＳ４）。
【００２３】
初期値設定機能（Ｅ）により初期化する変数に初期化する値を設定し（図２右のＳ５）、初期化条件設定機能（Ｆ）により変数初期化を行う条件を設定する（図２右のＳ６）。
【００２４】
初期化位置設定機能（Ｇ）により関連付けた関数のどの位置（たとえば、関数の先頭や関数の末尾など）で変数初期化を行うかを選択する（図２右のＳ７）。
【００２５】
図２の左では、一つの変数を初期化するブロック（Ｉ１）は、変数を初期化する関数ブロックｆｕｎｃに関連付け、関数の先頭で、変数ＶＡＲ１２を、ＶＡＲ２＞０という条件のときに、例えば「０」で初期化する。
【００２６】
最後に、変数初期化ブロック用プログラム自動生成機能（Ｈ）により、一つの変数を初期化するブロックのプログラムを生成し（図３左）、関数ｆｕｎｃのプログラムの先頭に一つの変数を初期化するブロックのプログラムを追加する（図３右）。このプログラムの演算順序に従って、プログラム自動生成装置２０は、ブロックＡ１、ブロックＡ２のプログラムを自動生成する。
【００２７】
本実施形態によれば、ブロック図に一つの変数を初期化する機能を持つブロックを配置することにより、設定した変数を初期化するプログラムが自動生成される。このとき、ブロック図とプログラムは一致しているため、ブロック図を変更するとプログラムも自動で変更される。
【００２８】
（実施形態２）
実施形態１では、一つの変数を初期化することはできるが、二つ以上の変数を同時に初期化することはできない。
【００２９】
本実施形態は、複数の変数を同時に初期化する機能を持つブロックを用意する。変数初期化の機能構成は図１と同様になるが、変数の複数化、初期化条件、位置等が異なる。
【００３０】
変数初期化装置１０による変数初期化ブロックの作成手順を図４に示す。図４の左下に示すように、複数の変数を同時に初期化するブロック（Ｉ２）には、情報として、初期化する変数一覧、初期値、初期化を行う条件、初期化を行う位置の各情報を設定可能にする。必要であれば、この他にも設定可能な情報を設けることができる。
【００３１】
変数初期化ブロックの作成手順を説明する。まず、一つの変数を初期化する変数初期化装置１０と同様に、変数初期化ブロック作成機能（Ａ）により複数の変数を同時に初期化するブロックを作成し（図４右のＳ１）、関数ブロックヘの関連付け機能（Ｂ）により作成した複数の変数を同時に初期化する変数初期化ブロックを関数ブロックに関連付ける（図４右のＳ２）。
【００３２】
関連付けた関数で初期化可能な変数一覧を初期化可能変数取得機能（Ｃ）により取得し（図４右のＳ３）、変数設定機能（Ｄ）によりその変数一覧から初期化する変数を複数指定する（図４右のＳ４）。
【００３３】
初期値設定機能（Ｅ）により初期化する変数に初期化する値を設定し（図４右のＳ５）、初期化条件設定機能（Ｆ）により変数初期化を行う条件を設定する（図４右のＳ６）。
【００３４】
初期化位置設定機能（Ｇ）により関連付けた関数のどの位置（たとえば、関数の先頭や関数の末尾など）で変数初期化を行うかを選択する（図４右のＳ７）。
【００３５】
図４の左では、複数の変数を同時に初期化する装置（Ｉ２）は、変数を初期化する関数ブロックｆｕｎｃに関連付け、関数の末尾で、変数ＶＡＲ１２とＶＡＲ２３を、ＶＡＲ２＜０という条件のときに、例えば「１」で初期化する。
【００３６】
なお、手順Ｓ４で初期化する変数を一つのみ指定すると、一つの変数（例えばＶＡＲ１２）を関数の末尾で初期化することができる。
【００３７】
最後に、変数初期化ブロック用プログラム自動生成機能（Ｈ）により、複数の変数を同時に初期化するブロックのプログラムを生成し（図５左）、関数ｆｕｎｃのプログラムの末尾に複数の変数を同時に初期化するブロックのプログラムを追加する（図５右）。このプログラムの演算順序に従って、プログラム自動生成装置２０は、ブロックＡ１、ブロックＡ２のプログラムを自動生成する。
【００３８】
本実施形態によれば、ブロック図に複数の変数を初期化する機能を持つブロックを配置することにより、設定した複数の変数を初期化するプログラムが自動生成される。このとき、ブロック図とプログラムは一致しているため、ブロック図を変更するとプログラムも自動で変更される。
【００３９】
（実施形態３）
開発対象のハードウェアによっては、変数に直接値を代入して初期化処理を行うことによってＣＰＵを多く使用してしまうのを回避するため、レジスタを利用することがある。
【００４０】
本実施形態は、レジスタを利用して一つ以上の変数を初期化する機能を持つブロックを用意する。レジスタを利用した変数初期化装置の機能構成を図６に示し、同図は図１の構成に示す変数初期化装置１０に代えて、レジスタを利用した変数初期化装置３０による変数初期化の機能構成の場合を示す。
【００４１】
変数初期化装置３０は、コンピュータ資源とこれを演算処理に利用するソフトウェアで構成され、図１における変数初期化装置１０の変数初期化ブロック作成機能（Ａ）に代えて、レジスタを利用した変数初期化ブロック作成機能（Ｉ）を設ける。また、装置１０のプログラム自動生成機能（Ｈ）に代えて、レジスタ取得機能（Ｊ）、レジスタ設定機能（Ｋ）および変数初期化ブロック用プログラム自動生成機能（Ｌ）を設ける。
【００４２】
変数初期化装置３０による変数初期化ブロックの作成手順を図７に示す。同図の左下のように、レジスタを利用して変数を初期化する装置３０には、情報として、初期化する変数一覧、初期値、初期化を行う条件、初期化を行う位置、利用するレジスタの各情報を設定可能にする。必要であれば、この他にも設定可能な情報を設けることができる。
【００４３】
変数初期化ブロックの作成手順を説明する。まず、レジスタを利用した変数初期化ブロック作成機能（Ｉ）によりレジスタを利用して変数を初期化するブロックを作成し（図７右のＳ１）、関数ブロックヘの関連付け機能（Ｂ）により作成したレジスタを利用して変数を初期化するブロックを関数ブロックに関連付ける（図７右のＳ２）。
【００４４】
関連付けた関数で初期化可能な変数一覧を初期化可能変数取得機能（Ｃ）により取得し（図７右のＳ３）、変数設定機能（Ｄ）によりその変数一覧から初期化する変数を複数指定する（図７右のＳ４）。
【００４５】
初期値設定機能（Ｅ）により初期化する変数に初期化する値を設定し（図７右のＳ５）、初期化条件設定機能（Ｆ）により変数初期化を行う条件を設定する（図７右のＳ６）。
【００４６】
初期化位置設定機能（Ｇ）により関連付けた関数のどの位置（たとえば、関数の先頭や関数の末尾など）で変数初期化を行うかを設定する（図７右のＳ７）。
【００４７】
関連付けた関数で利用可能なレジスタ一覧を利用可能なレジスタ取得機能（Ｊ）により取得し（図７右のＳ８）、レジスタ設定機能（Ｋ）によりそのレジスタ一覧から利用するレジスタを一つ指定する（図７右のＳ９）。
【００４８】
図７右のＳ４で、初期化する変数を一つのみ指定すると、一つの変数を初期化することができる。
【００４９】
図７の左では、レジスタを利用して変数を初期化する装置（Ｉ３）は、変数を初期化する関数ブロックｆｕｎｃに関連付け、関数の先頭で、変数ＶＡＲ１２とＶＡＲ２３を、ＶＡＲ２＞０という条件のときに、レジスタｒｅｇ２を利用して、例えば「０」で初期化する。
【００５０】
最後にレジスタを利用した変数初期化ブロック用プログラム自動生成機能（Ｌ）により、レジスタを利用して変数を初期化するブロックのプログラムを生成し（図８左）、関数ｆｕｎｃのプログラムの先頭にレジスタを利用して変数を初期化するブロックのプログラムを追加する（図８右）。
【００５１】
このプログラムの演算順序に従って、プログラム自動生成装置２０は、演算順序に従って、ブロックＡ１、ブロックＡ２のプログラムを自動生成する。
【００５２】
本実施形態によれば、ブロック図にレジスタを利用して変数を初期化する機能を持つブロックを配置することにより、設定した複数の変数を、設定したレジスタを利用して初期化するプログラムが自動生成される。このとき、ブロック図とプログラムは一致しているため、ブロック図を変更するとプログラムも自動で変更される。
【００５３】
なお、図１および図６に示す変数初期化装置１０と，プログラム自動生成装置２０およびレジスタを利用した変数初期化装置３０は、個別のコンピュータで構成することができるが、１つのコンピュータ資源を利用して、それぞれの装置がもつ機能をソフトウェアとして搭載した一体構成とすることができる。
【００５４】
また、本発明は、図２等に示した組込みソフトウェアの開発支援方法の一部又は全部の処理機能をプログラムとして構成してコンピュータに実行させることができる。
【図面の簡単な説明】
【００５５】
【図１】実施形態１における変数初期化装置の機能構成図。
【図２】変数初期化ブロックの作成手順。
【図３】変数初期化プログラムの自動作成例。
【図４】変数初期化ブロックの作成手順。
【図５】変数初期化プログラムの自動作成例。
【図６】実施形態３におけるレジスタを利用した変数初期化装置の機能構成図。
【図７】レジスタを利用した変数初期化ブロックの作成手順。
【図８】レジスタを利用した変数初期化プログラムの自動作成例。
【図９】ブロック図からプログラム自動生成および動作確認の例。
【図１０】ブロック図とプログラムの関係例。
【符号の説明】
【００５６】
１０  変数初期化装置
２０  プログラム自動生成装置
３０  レジスタを利用した変数初期化装置
【図１】
2010066846.tif 000003
【図２】
2010066846.tif 000004
【図３】
2010066846.tif 000005
【図４】
2010066846.tif 000006
【図５】
2010066846.tif 000007
【図６】
2010066846.tif 000008
【図７】
2010066846.tif 000009
【図８】
2010066846.tif 000010
【図９】
2010066846.tif 000011
【図１０】
2010066846.tif 000012