(57)【要約】【課題】レジスタ変数の設計およびプログラム自動作成に、レジスタ変数の使用数の誤った定義／設計のチェックを容易にする。【解決手段】ソフトウェアの設計図をＧＵＩベースで作成し、その設計図に合わせたプログラムの自動作成を行う手段を備えたソフトウェア開発支援システム１００に搭載するレジスタ変数チェック装置１０は、レジスタ変数について使用できるレジスタの制限数をチェックするレジスタ変数制限数読込み部１０Ｆと、システム内部で定義／設計されている関数に対するレジスタ変数の使用数がレジスタの制限数を超えている場合にその内容を通知するレジスタ変数参照部１０Ｅを備える。レジスタ変数をチェックする関数を設定する手段、およびレジスタの制限数を越えたことの通知内容を保持しておき、全てのレジスタ変数についてのチェックを終了したときに出力する手段も備える。【選択図】図１
2010160594.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアの設計図をＧＵＩベースで作成し、その設計図に合わせたプログラムの自動作成を行う手段を備えたソフトウェア開発支援システムにおいて、
システム内部で定義／設計されている関数に対するレジスタ変数の使用数をチェックするレジスタ変数チェック装置は、
システム内部で定義／設計される関数に対して使用できるレジスタの制限数を参照するレジスタ変数制限数読込み手段と、
システム内部で定義／設計されている関数に対するレジスタ変数を取得し、このレジスタ変数の使用数が前記レジスタの制限数を超えているか否かをチェックし、超えている場合にその内容を通知するレジスタ変数参照手段と、
を備えたことを特徴とするソフトウェアの開発支援システム。
【請求項２】
前記レジスタ変数チェック装置は、
レジスタ変数をチェックする関数を設定できるレジスタ変数チェック対象関数指定手段を備え、
前記レジスタ変数参照手段は、前記指定されたレジスタ変数チェック対象関数に対してのみレジスタ変数を取得し、このレジスタ変数の使用数が前記レジスタの制限数を超えている場合にその内容を通知する手段を備えたことを特徴とする請求項１に記載のソフトウェアの開発支援システム。
【請求項３】
前記レジスタ変数チェック装置は、前記使用されているレジスタ変数がレジスタの制限数を超えているとき、レジスタの制限数を越えたことの通知内容を保持しておき、この通知内容は前記レジスタ変数参照手段が全てのレジスタ変数についてのチェックを終了したときに出力するレジスタチェック通知保持・出力手段を備えたことを特徴とする請求項１に記載のソフトウェアの開発支援システム。
【請求項４】
ソフトウェアの設計図をＧＵＩベースで作成し、その設計図に合わせたプログラムの自動作成を行う手段を備えたソフトウェア開発支援システムにおいて、
システム内部で定義／設計されている関数に対するレジスタ変数の使用数をチェックするレジスタ変数チェック装置は、
システム内部で定義／設計される関数に対して使用できるレジスタの制限数を参照するレジスタ変数制限数読込みステップと、
システム内部で定義／設計されている関数に対するレジスタ変数を取得し、このレジスタ変数の使用数が前記レジスタの制限数を超えているか否かをチェックし、超えている場合にその内容を通知するレジスタ変数参照ステップと、
を有してレジスタ変数をチェックすることを特徴とするソフトウェアの開発支援方法。
【請求項５】
前記レジスタ変数チェック装置は、
レジスタ変数をチェックする関数を設定できるレジスタ変数チェック対象関数指定ステップを備え、
前記レジスタ変数参照ステップは、前記指定されたレジスタ変数チェック対象関数に対してのみレジスタ変数を取得し、このレジスタ変数の使用数が前記レジスタの制限数を超えている場合にその内容を通知するステップを有することを特徴とする請求項４に記載のソフトウェアの開発支援方法。
【請求項６】
前記レジスタ変数チェック装置は、前記使用されているレジスタ変数がレジスタの制限数を超えているとき、レジスタの制限数を越えたことの通知内容を保持しておき、この通知内容は前記レジスタ変数参照ステップが全てのレジスタ変数についてのチェックを終了したときに出力するレジスタチェック通知保持・出力ステップを有することを特徴とする請求項４に記載のソフトウェアの開発支援方法。
【請求項７】
請求項４〜６のいずれか１つに記載の開発支援方法における処理ステップをコンピュータで実行可能にしたことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの設計図に合わせたプログラムの自動作成などを支援するソフトウェアの開発支援システム、開発支援方法およびプログラムに係り、特に設計図上で使用されるレジスタ変数の使用数のチェックに関する。
【背景技術】
【０００２】
ソフトウェアの設計図をＧＵＩベースで作成し、その設計図に合わせたプログラムの自動作成などを支援するソフトウェア開発支援システムとして、ＵＭＬ図で仕様や設計図などの記述を行い、このＵＭＬ図による「仕様作成」、「分析」、「設計」、「実装」、「保守」といったソフトウェア開発を支援する支援システムがある（例えば、非特許文献１参照）。
【０００３】
一方、組込みソフトウェア開発では、演算に関する設計図としてブロック図を作成する。また、処理の順番に関する設計図として、図８のように、フローチャートのような図を設計図として用いることもある。たとえば、開発対象の組込み機器が加算と乗算を行う場合、入力から出力まで、加算や乗算を表すブロックを配置し、ブロック間を線で結んで演算順序を表現する。この設計図を元にして実装を行うにあたっては、作成したブロック図を元にプログラムを作成し、このプログラムを専用のコンパイラを使用してコンパイルし、実機に組み込んで動作試験を可能にする。
【０００４】
このようなソフトウェアの開発支援システムでは、プログラムを自動作成するうえで必要な情報を保持している。例えば、変数の情報（型・スコープ・変数名・記憶クラス、使用するＵＩ（ユーザインタフェース）情報等）、関数の情報（型・スコープ・関数変数名・記億クラス、使用ＵＩ情報、関数で使用されている変数の情報等）、プログラム上の制御情報や設計図の表現からどのような順番でプログラムを自動作成するか（プログラムフロー情報）などである。
【０００５】
例として、図７と図８を示す。図７の場合は、設計図Ｘを構成する処理Ａ、Ｂの前後（入力側・出力側）を結線し、その線に変数ｒｅｇ１，ｒｅｇ２などが割り振られている場合であり、ソフトウェア開発支援システムは、設計図ＸのＵＩ情報のほかに、変数情報、プログラム順番情報（プログラムフロー情報）をもつ。また、結線上に変数名を表示している。
【０００６】
図８の場合は、設計図Ｙを構成する処理Ａ、Ｂの順番を線で結線し、それらに入出力変数などが割り振られている場合であり、ソフトウェア開発支援システムは、設計図ＹのＵＩ情報のほかに、処理で使用される変数等の属性情報、変数情報、プログラム順番情報（プログラムフロー情報）をもつ。
【０００７】
このようなソフトウェアの開発支援システムで自動作成されたプログラムの中には、演算の高速化の手段として、レジスタを読出し／書き込み領域とするレジスタ変数を使った設計図、プログラムを用いている場合がある。ここでレジスタとは、高速に読み出し、書き込みができるＣＰＵ（中央処理装置）の中の記憶素子であり、プログラム中から自由にその内容を参照・更新することができる。レジスタ変数を使用した設計図、プログラム中では、レジスタ変数を宣言することにより、ＣＰＵのレジスタにデータ書き込みや読み出しを可能にする。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】明電時報  ２００６年９・１０月  通巻３１０号  Ｎｏ．５「ソフトウェア開発総合支援システムにおける仕様作成支援機能」
【発明の概要】
【発明が解決しようとする課題】
【０００９】
プログラム中からレジスタにデータ読み出し、書き込みを行う場合、使用中のレジスタへのデータの上書きなどが起こらないように注意を払う必要がある。ソフトウェア開発者の意図しない箇所で使用中のレジスタへのデータの上書きが発生すると、開発されたシステムに不具合が生じる。
【００１０】
また、割込み処理が発生するようなプログラムの場合、割込み元、割込み先で同一のレジスタ変数を使用している場合も使用中のレジスタへのデータの上書きが発生する場合も多くある。
【００１１】
また、組み込みシステム等では、各ＣＰＵで使用できるレジスタの数に制限があるため、レジスタ変数を使いまわしてプログラムを作成することもあり、このような状況で、使用中のレジスタへのデータの上書きが発生する場合も多くある。
【００１２】
ソフトウェアの設計図をもとに、シミュレーションを実行したり、プログラムを自動作成したりするソフトウェア開発支援システムの場合、設計図上で使用する変数の情報（型・スコープ・変数名・記億クラス等）はある。しかし、レジスタ変数は、使いまわすこともあるため、複数の設計図にまたがって存在することもある。この場合、レジスタ変数の使い回しが正しい使用方法か否かは、設計図を記述したソフトウェア開発支援システム使用者のみが知るところにより、システムが一概にレジスタ変数の使用方法にエラー通知を出すのは難しい。
【００１３】
そのため、ソフトウェア開発支援システムでは、何のチェックもなしにプログラムを自動作成すると、使用者の意図したとおりの実行結果が期待できないプログラムを作成する結果となり、自動作成したプログラムを用いた動作試験で不具合が見つかるなど、開発に多くの時間を要し、ソフトウェア開発支援システムの使用者に大きな負担となる。
【００１４】
なお、ソフトウェア開発支援システムがプログラムを自動作成する前に、レジスタ変数の使用箇所の特定をするためには、設計図上の変数の定義を一つ一つ確かめなくてはならず、上書きのチェックに多くの時間がかかり、ソフトウェア開発支援システムの使用者に大きな負担となる。
【００１５】
次に、組み込みシステム等では、対象となるＣＰＵで使用できるレジスタの数に制限があるが、レジスタの数の制限以上に関数内でレジスタを使用するプログラムを記述しても、専用のコンパイラにより制限を超えたレジスタ変数は自動変数（関数内部で宣言されその関数内でのみ有効な変数（＝ローカル変数））として扱われ、システムの高速化には繋がらない。
【００１６】
ソフトウェア開発支援システムは、それを使用して作成されるシステムが対象となるＣＰＵの情報を持っていないことが多く、どれくらいのレジスタ変数を使用可能かどうかは分からない。そのため、ソフトウェア開発支援システムがプログラムを自動作成しようとすると、対象となるＣＰＵのもつレジスタの制限を無視したレジスタ変数を使用したプログラムを自動作成してしまい、システム使用者が意図したとおりの実行結果や高速化が期待できないプログラムを作成する結果となる。この場合、ソフトウェア開発支援システムが自動作成したプログラムを用いた動作試験に多くの時間がかかり、ソフトウェア開発支援システムの使用者に大きな負担となる。
【００１７】
本発明の目的は、レジスタ変数の設計およびプログラム自動作成に、レジスタ変数の使用数の誤った定義／設計のチェックを容易にしたソフトウェアの開発支援システム、開発支援方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１８】
本発明は、システム内部で定義／設計されている関数に対するレジスタ変数の使用数がレジスタの制限数を超えた場合、その内容を通知することにより、レジスタ変数の使用数の誤った定義／設計のチェックを容易にするもので、以下のシステム、方法およびプログラムを特徴とする。
【００１９】
（システムの発明）
（１）ソフトウェアの設計図をＧＵＩベースで作成し、その設計図に合わせたプログラムの自動作成を行う手段を備えたソフトウェア開発支援システムにおいて、
システム内部で定義／設計されている関数に対するレジスタ変数の使用数をチェックするレジスタ変数チェック装置は、
システム内部で定義／設計される関数に対して使用できるレジスタの制限数を参照するレジスタ変数制限数読込み手段と、
システム内部で定義／設計されている関数に対するレジスタ変数を取得し、このレジスタ変数の使用数が前記レジスタの制限数を超えているか否かをチェックし、超えている場合にその内容を通知するレジスタ変数参照手段と、
を備えたことを特徴とする。
【００２０】
（２）前記レジスタ変数チェック装置は、
レジスタ変数をチェックする関数を設定できるレジスタ変数チェック対象関数指定手段を備え、
前記レジスタ変数参照手段は、前記指定されたレジスタ変数チェック対象関数に対してのみレジスタ変数を取得し、このレジスタ変数の使用数が前記レジスタの制限数を超えている場合にその内容を通知する手段を備えたことを特徴とする。
【００２１】
（３）前記レジスタ変数チェック装置は、前記使用されているレジスタ変数がレジスタの制限数を超えているとき、レジスタの制限数を越えたことの通知内容を保持しておき、この通知内容は前記レジスタ変数参照手段が全てのレジスタ変数についてのチェックを終了したときに出力するレジスタチェック通知保持・出力手段を備えたことを特徴とする。
【００２２】
（方法の発明）
（４）ソフトウェアの設計図をＧＵＩベースで作成し、その設計図に合わせたプログラムの自動作成を行う手段を備えたソフトウェア開発支援システムにおいて、
システム内部で定義／設計されている関数に対するレジスタ変数の使用数をチェックするレジスタ変数チェック装置は、
システム内部で定義／設計されている関数に対して使用できるレジスタの制限数を参照するレジスタ変数制限数読込みステップと、
システム内部で定義／設計されている関数に対するレジスタ変数を取得し、このレジスタ変数の使用数が前記レジスタの制限数を超えているか否かをチェックし、超えている場合にその内容を通知するレジスタ変数参照ステップと、
を有してレジスタ変数をチェックすることを特徴とする。
【００２３】
（５）前記レジスタ変数チェック装置は、
レジスタ変数をチェックする関数を設定できるレジスタ変数チェック対象関数指定ステップを備え、
前記レジスタ変数参照ステップは、前記指定されたレジスタ変数チェック対象関数に対してのみレジスタ変数を取得し、このレジスタ変数の使用数が前記レジスタの制限数を超えている場合にその内容を通知するステップを有することを特徴とする。
【００２４】
（６）前記レジスタ変数チェック装置は、前記使用されているレジスタ変数がレジスタの制限数を超えているとき、レジスタの制限数を越えたことの通知内容を保持しておき、この通知内容は前記レジスタ変数参照ステップが全てのレジスタ変数についてのチェックを終了したときに出力するレジスタチェック通知保持・出力ステップを有することを特徴とする。
【００２５】
（プログラムの発明）
（７）上記の（４）〜（６）のいずれか１つに記載の開発支援方法における処理ステップをコンピュータで実行可能にしたことを特徴とする。
【発明の効果】
【００２６】
以上のとおり、本発明によれば、システム内部で定義／設計されている関数に対するレジスタ変数の使用数がレジスタの制限数を超えた場合、その内容を通知するため、レジスタ変数の使用数の誤った定義／設計のチェックが容易になる。
【００２７】
特に、レジスタの数に制限があり（ＣＰＵの制限等の理由）、その制限がソフトウェア開発支援システムによるプログラム自動作成になんらかの影響を及ぼす状態（例えばプログラムの高速化に影響を及ぼす等）になる場合のレジスタ変数のチェックが可能となり、自動作成されるプログラムにはシステム使用者が意図したとおりの実行結果や高速化が期待できる。
【図面の簡単な説明】
【００２８】
【図１】本発明の実施形態１の機能構成図。
【図２】実施形態１の通知のフロー。
【図３】本発明の実施形態２の機能構成図。
【図４】実施形態２の通知のフロー。
【図５】本発明の実施形態３の機能構成図。
【図６】実施形態３の通知のフロー。
【図７】設計図と変数情報とプログラムフロー情報の例１。
【図８】設計図と変数情報とプログラムフロー情報の例２。
【発明を実施するための形態】
【００２９】
（実施形態１）
前記のように、組み込みシステム等では、各ＣＰＵで使用できるレジスタの数に制限があるが、レジスタの数の制限以上に関数内でレジスタを使用するプログラムを記述しても、専用のコンパイラにより制限を超えたレジスタ変数は自動変数（関数内部で宣言されその関数内でのみ有効な変数（＝ローカル変数））として扱われ、システムの高速化には繋がらない。
【００３０】
本実施形態は、何かの理由でレジスタの数に制限があり（ＣＰＵの制限等の理由）、その制限がソフトウェア開発支援システムによるプログラム自動作成になんらかの影響を及ぼす状態（例えばプログラムの高速化に影響を及ぼす等）になる場合のレジスタ変数のチェックを可能とする。
【００３１】
図１は、本実施形態の機能構成図を示す。ソフトウェアの設計図をＧＵＩベースで作成し、その設計図をもとにプログラムを自動作成したりするソフトウェア開発支援システム１００に、コンピュータ資源とこれを利用したソフトウェアで構成するレジスタ変数チェック装置１０を搭載する。
【００３２】
レジスタ変数チェック装置１０は、レジスタ変数定義情報取得部１０Ａと、強調表示部１０Ｂと、強調表示仕様読込み部１０Ｃと、強調表示チェック部１０Ｄと、レジスタ変数参照部１０Ｅと、レジスタ変数制限数読込み部１０Ｆで構成する。
【００３３】
レジスタ変数定義情報取得部１０Ａは、システム内部の情報（変数情報）より、レジスタ変数定義情報を取得し、どのレジスタがどのＵＩ（設計図）上のどの部品に割り当てられているかを特定する情報を取得する。強調表示部１０Ｂは、システムが保持または設計時に設定された強調表示の仕様（例えば、色や線の太さ、線の種別等）で、レジスタ変数を強調表示させる。強調表示仕様読込み部１０Ｃは、強調表示の仕様をＵＩやファイル等経由で読み込み強調表示部１０Ｂからの要求時に転送する。強調表示チェック部１０Ｄは、強調表示をするかしないかをチェックする。
【００３４】
レジスタ変数参照部１０Ｅは、システム内部で定義／設計されている関数に対するレジスタ変数を取得し、このレジスタ変数の使用数がレジスタの制限数を超えている場合にその内容を通知する。レジスタ変数制限数読込み部１０Ｆは、レジスタ変数をＵＩ（設計図）やファイル等経由で読み込み、このレジスタ変数について使用できる制限数をレジスタ変数参照部１０Ｅからの要求があるときに転送する。
【００３５】
このようなレジスタ変数チェック装置１０を開発支援システムに搭載することにより、ソフトウェア開発支援システム使用者が、レジスタ変数の定義／設計に際し、使用できるレジスタの制限数を設定しておき、この使用できるレジスタの制限数以上にレジスタを使用したレジスタ変数を定義／設計した場合、そのチェックをシステム使用者が容易にできるようにする。
【００３６】
なお、使用できるレジスタの制限数の設定は、ＵＩ経由やファイル経由等で設定する。また、設定したレジスタの制限数は、ソフトウェア開発支援システムで参照する機能も提供する。この機能を実現するため、ソフトウェア開発支援システムは、システム内で作成された関数に関する情報（型・スコープ・関数変数名・記億クラス、使用ＵＩ情報、関数で使用されている変数の情報等）を保持し、参照できるものとする。
【００３７】
図２は、レジスタ変数チェック装置１０における通知のフローであり、システム内で自動作成された関数と、設定されたレジスタの制限数と、システム使用者が指定した関数を取得し、その関数内で使用されるレジスタ変数の数が多ければ、その内容をシステム使用者に通知する。
【００３８】
図２の処理の詳細を説明する。システム内部の情報より、定義／設計された関数の情報（型・スコープ・関数変数名・記億クラス、使用設計図情報、関数で使用されている変数の情報など）を取得し（Ｓ１）、関数定義情報があれば（Ｓ２）、その定義番号ｉを「０」に初期化し（Ｓ３）、ｉ番目の関数定義情報を取得し（Ｓ４）、ｉ番目の関数定義情報より、当該関数で使用されているレジスタ変数の制限数をレジスタ変数参照部１０Ｅが取得し（Ｓ５）、レジスタ変数制限数読込み部１０Ｆにより使用できるレジスタの制限数を取得する（Ｓ６）。
【００３９】
これら使用できるレジスタの制限数と関数で使用されているレジスタ変数を比較し、使用できるレジスタの制限数よりも関数で使用されているレジスタ変数の数が多い場合（Ｓ７）、レジスタの制限数を越えた内容をシステム使用者に通知する（Ｓ８）。この通知には、レジスタ変数定義情報取得部１０Ａによるレジスタ変数情報の取得と、強調表示部１０Ｂによる強調表示、さらに強調表示仕様読込み部１０Ｃと強調表示チェック部１０Ｄによる強調表示をするかしないかを決定する。
【００４０】
上記のレジスタの制限数を越えたときの通知処理後、処理していない関数情報があるか否かをチェックし（Ｓ９）、あれば定義番号ｉをインクリメントし（Ｓ１０）、Ｓ４に戻って当該ｉ番目の関数定義情報についての制限数判定と通知を繰り返す。
【００４１】
本実施形態では、システム使用者に対して、使用できるレジスタの制限数を設定できるようになるため、ソフトウェア開発支援システムを用いて新しいシステムを開発する場合でも、その開発に合ったレジスタの制限数を設定しておくことで、システム使用者の意図したとおり実行結果や高速化を考慮したプログラムを自動作成できるようになる。
【００４２】
また、レジスタの制限数を設定でき、本システムがシステム内部で保持している各種情報より、システム内部で使用されている全ての関数を取得し、その関数で使用されるレジスタ変数の数を取得し、レジスタの制限数とその関数で使用されるレジスタ変数の数を比較し、関数で使用されるレジスタ変数が、レジスタの制限数を超えた場合、その内容を通知することにより、レジスタ変数の数のチェックの負担を軽減できる。
【００４３】
また、制限数のチェック後、レジスタ変数を正しく使用することにより、システム使用者の意図したとおり実行結果や高速化を考慮したプログラムを出力でき、システムが出力したプログラムを用いた実際の試験時間の増大を軽減でき、システム使用者の負担を軽減できる。
【００４４】
（実施形態２）
実施形態１の手法では、レジスタ変数を用いていない関数や、システム使用者がチェックしないでも良いと判断した関数、すでにチェック済みの関数に対してもチェックしてしまい、チェック機能の時間がかかったり、チェックしないでも良いと判断した関数に対する通知を受けとったり、システム使用者に負担がかかることがある。
【００４５】
本実施形態では、この問題点を解決するために、レジスタ変数をチェックする関数をシステム使用者が設定でき、実施形態１のように、何かの理由でレジスタの数に制限があり（ＣＰＵの制限等の理由）、その制限がソフトウェア開発支援システムのプログラム自動作成になんらかの影響を及ぼす状態（例えばプログラムの高速化に影響を及ぼす等）になる場合のレジスタ変数のチェック手法を提案する。
【００４６】
なお、実施形態１と同様に、ソフトウェア開発支援システム使用者が、ＣＰＵで使用できるレジスタの制限数を設定でき、使用できるレジスタの制限数の設定は、ＵＩ経由やファイル経由等設定する。また、設定したレジスタの制限数は、ソフトウェア開発支援システムで参照する機能も有するものとする。ソフトウェア開発支援システムは、システム内で作成された関数に関する情報（型・スコープ・関数変数名・記憶クラス、使用ＵＩ情報、関数で使用されている変数の情報等）を保持し、参照できるものとする。
【００４７】
図３は本実施形態の機能構成図を示し、図１と異なる部分はレジスタ変数チェック対象関数指定部１０Ｇを追加した点にある。この処理フローは図４に示し、図２と異なる部分は、ｉ番目の関数情報を取得したとき（Ｓ４）、当該関数が指定された関数か否かをチェックし（Ｓ１１）、指定された関数であればＳ５〜Ｓ８により当該関数で使用されているレジスタ変数についての制限数チェックと通知を行う。また、ｉ番目の関数が指定された関数でない場合、当該関数についてのレジスタ変数のチェックを行うことなく、次の関数についてのチェック（Ｓ９）に移行する。
【００４８】
本実施形態によれば、レジスタ変数をチェックする関数をシステム使用にも設定できるようにするため、レジスタ変数を用いていない関数や、システム使用者がチェックしないでも良いと判断した関数、すでにチェック済みの関数に対してもチェックしてしまい、チェック機能の時間がかかったり、チェックしないでも良いと判断した関数に対する通知を受けとったりしなくてよくなり、システム使用者のレジスタ変数の数のチェックの負担を軽減できる。
【００４９】
また、システム使用者に対して、指定された関数で使用されるレジスタ変数が、使用できるレジスタの数の制限を超えた場合、その内容を通知することにより、レジスタ変数の数のチェックの負担を軽減できる。
【００５０】
また、チェック後、レジスタ変数を正しく使用することにより、システム使用者の意図したとおり案行結果や高速化を考慮したプログラムを出力でき、本システムが出力したプログラムを用いた実際の試験時間の増大を軽減でき、システム使用者の負担を軽減できる。
【００５１】
（実施形態３）
実施形態１または実施形態２において、各関数内で使用できるレジスタの数の制限を超えた数のレジスタ変数を使用した場合、関数内で使用できるレジスタ変数を使用した関数があるたびに通知を行うため、システム使用者に負担がかかることがある。
【００５２】
本実施形態では、この不都合を解消するために、ソフトウェア開発支援システムが通知情報を保持し、最終的に、すべての通知情報を一括して通知し、実施形態１のようにレジスタの数に制限があり（ＣＰＵの制限等の理由）、その制限がソフトウェア開発支援システムのプログラム自動作成になんらかの影響を及ぼす状態（例えば、プログラムの高速化に影響を及ぼす等）になる場合のレジスタ変数のチェック手法を提案する。
【００５３】
なお、ソフトウェア開発支援システム使用者が、ＣＰＵで使用できるレジスダの制限数を設定でき、使用できるレジスタの制限数の設定は、ＵＩ経由やファイル経由等で設定する。
【００５４】
また、設定したレジスタの制限数は、ソフトウェア開発支援システムで参照する機能も有するものとする。ソフトウェア開発支援システムは、システム内（型・スコープ・関数変数名・記憶クラス、使用ＵＩ情報、関数で使用されている変数の情報等）を保持し、参照できるものとする。
【００５５】
図５は本実施形態の機能構成図を示し、図３と異なる部分はレジスタチェック通知保持・出力部１０Ｈを追加した点にある。この処理フローは図６に示し、図２と異なる部分は、使用されているレジスタ変数がレジスタの制限数を超えているとき（Ｓ７）、レジスタチェック通知保持・出力部１０Ｈの通知保持部がレジスタの制限数を越えたことの通知内容を保持しておき（Ｓ１２）、全ての関数情報についてのレジスタ変数のレジスタ制限数のチェックを終了したとき（Ｓ２、Ｓ９、Ｓ１０）、レジスタチェック通知保持・出力部１０Ｈの出力部が保持していた通知内容があるか否かをチェックし（Ｓ１３）、あれば保持していた通知内容を使用者に通知する（Ｓ１４）。この通知は実施形態１または実施形態２と同様のものであるが、保持していた通知内容の全てを通知する。
【００５６】
本実施形態によれば、ソフトウェア開発支援システムが通知情報を保持し、最終的に、全ての通知情報を一括して通知するため、レジスタの数の制限を超えた数のレジスタ変数を使用した関数があるたびに、通知を受けなくてよくなるため、レジスタ変数の数のチェックの負担を軽減できる。
【００５７】
また、チェック後、レジスタ変数を正しく使用することにより、システム使用者の意図したとおり実行結果や高速化を考慮したプログラムを出力でき、本システムが出力したプログラムを用いた実際の試験時間の増大を軽減でき、システム使用者の負担を軽減できる。
【００５８】
なお、本発明は、各実施形態に示したレジスタ変数チェック方法の一部又は全部の処理機能をコンピュータで実行可能にしたプログラムとして提供することができる。
【符号の説明】
【００５９】
１００  ソフトウェア開発支援システム
１０  レジスタ変数チェック装置
１０Ａ  レジスタ変数定義情報取得部
１０Ｂ  強調表示部
１０Ｃ  強調表示仕様読込み部
１０Ｄ  強調表示チェック部
１０Ｅ  レジスタ変数参照部
１０Ｆ  レジスタ変数制限数読込み部
１０Ｇ  レジスタ変数チェック対象関数指定部
１０Ｈ  ジスタチェック通知保持・出力部
【図１】
2010160594.tif 000003
【図２】
2010160594.tif 000004
【図３】
2010160594.tif 000005
【図４】
2010160594.tif 000006
【図５】
2010160594.tif 000007
【図６】
2010160594.tif 000008
【図７】
2010160594.tif 000009
【図８】
2010160594.tif 000010