(57)【要約】【課題】駆動プログラムへのモジュール呼出コードの登録ミスを効果的に低減することのできるプログラムの作成支援装置、作成支援方法及び作成支援プログラムを提供する。【解決手段】複数のモジュールを組合せて構成される組込みシステムでの各モジュールの呼び出しと実行とを行う駆動プログラムの作成を支援するためのプログラムの作成支援装置において、モジュールの全てについてその名称とその実行周期とが情報としてそれぞれ格納されたチャート情報Ｉ２を記憶する外部記憶装置５と、プログラムの実行に係る演算処理を実行するＣＰＵ１と、チャート情報Ｉ２における各モジュールの実行周期の情報の書き換えを行うためのユーザーインターフェイスを提供するエディタープログラムＰ１とを備えることで、駆動プログラムへのモジュール呼出コードの登録ミスを効果的に低減するようにした。【選択図】図１
2011048492.tif 000002
【特許請求の範囲】
【請求項１】
複数のモジュールを組合せて構成される組込みシステムでの各モジュールの呼び出しと実行とを行う駆動プログラムの作成を支援するためのプログラムの作成支援装置において、
前記モジュールの全てについてその名称とその実行周期とが情報としてそれぞれ格納されたチャート情報を記憶する記憶装置と、
プログラムの実行に係る演算処理を実行する演算処理装置と、
前記チャート情報における各モジュールの実行周期の情報の書き換えを行うためのユーザーインターフェイスを提供するエディタープログラムと、
を備えることを特徴とするプログラムの作成支援装置。
【請求項２】
前記チャート情報には、実行周期が同一の複数のモジュール間におけるモジュールの実行順序の情報が併せて格納されるとともに、
前記エディタープログラムは、前記実行順序の情報の書き換えを行うためのユーザーインターフェイスを併せて提供する
ことを特徴とする請求項１に記載のプログラムの作成支援装置。
【請求項３】
前記記憶装置に記憶された前記チャート情報を読み込むとともに、そのチャート情報に基づいて同チャート情報の実行周期の情報に示される実行周期にて該当モジュールを呼び出して実行する駆動プログラムのコードを前記演算処理装置による演算処理を通じて自動生成させる自動生成プログラムを備える
ことを特徴とする請求項１又は２に記載のプログラムの作成支援装置。
【請求項４】
前記組込みシステムは、車両の制御システムである
請求項１〜３のいずれか１項に記載のプログラムの作成支援装置。
【請求項５】
複数のモジュールを組合せて構成される組込みシステムでの各モジュールの呼び出しと実行とを行う駆動プログラムの作成を支援するための方法であって、
情報を記憶する記憶装置及びプログラムの実行に係る演算処理を実行する演算処理装置を用いるとともに、
前記モジュールの全てについてその名称とその実行周期とが情報としてそれぞれ格納されたチャート情報を前記記憶装置に記憶させる工程と、
実行周期の情報の書き換えを行うためのユーザーインターフェイスを提供するエディタープログラムを前記演算処理装置に実行させるとともに、そのエディタープログラムの提供するインターフェイスを通じて前記チャート情報における各モジュールの実行周期の情報を編集する工程と、
を備えることを特徴とするプログラムの作成支援方法。
【請求項６】
前記チャート情報には、実行周期が同一の複数のモジュール間におけるモジュールの実行順序の情報が併せて格納されるとともに、
前記エディタープログラムは、前記実行順序の情報の書き換えを行うためのユーザーインターフェイスを併せて提供する
ことを特徴とする請求項５に記載のプログラムの作成支援方法。
【請求項７】
前記記憶装置に記憶された前記チャート情報に基づいてそのチャート情報の実行周期の情報に示される実行周期にて該当モジュールを呼び出して実行する駆動プログラムのコードを前記演算処理装置に自動生成させる工程を備える
ことを特徴とする請求項５又は６に記載のプログラムの作成支援方法。
【請求項８】
前記組込みシステムは、車両の制御システムである
請求項５〜７のいずれか１項に記載のプログラムの作成支援方法。
【請求項９】
複数のモジュールを組合せて構成される組込みシステムでの各モジュールの呼び出しと実行とを行う駆動プログラムの作成を支援するためのプログラムの作成支援プログラムにおいて、
前記モジュールの全てについてその名称とその実行周期とが情報してそれぞれ格納されたチャート情報を記憶装置から読み出すステップと、
前記チャート情報における各モジュールの実行周期の情報の書き換えを行うためのユーザーインターフェイスを提供するステップと、
を備えることを特徴とするプログラムの作成支援プログラム。
【請求項１０】
前記チャート情報には、実行周期が同一の複数のモジュール間におけるモジュールの実行順序の情報が併せて格納されるとともに、
前記ユーザーインターフェイスの提供に係るステップにおいて、前記実行順序の情報の書き換えを行うためのユーザーインターフェイスを併せて提供する
ことを特徴とする請求項９に記載のプログラムの作成支援プログラム。
【請求項１１】
前記記憶装置に記憶された前記チャート情報を読み込むとともに、そのチャート情報に基づいて同チャート情報の実行周期の情報に示される実行周期にて該当モジュールを呼び出して実行する駆動プログラムのコードを自動生成するステップを備える
ことを特徴とする請求項９又は１０に記載のプログラムの作成支援プログラム。
【請求項１２】
前記組込みシステムは、車両の制御システムである
請求項９〜１１のいずれか１項に記載のプログラムの作成支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のモジュールを組合せて構成される組込みシステムでの各モジュールの呼び出しと実行とを行う駆動プログラムの作成を支援するための装置、方法及びプログラムに関する。
【背景技術】
【０００２】
車両の制御システムのような大規模な組込みシステムのソフトウェアは、再利用可能なソフトウェア部品であるモジュールを多数組合せて構成されている。モジュールの多くは、一定の周期毎に実行される、定時割り込み型の演算処理として形成されている。そうしたモジュールにはそれぞれ、そのモジュールの演算処理を実行する周期（実行周期）が設定されている。また同じ実行周期で演算処理が実行されるモジュールが複数存在する場合には、その実行周期でのモジュールの実行順序も設定されることになる。
【０００３】
なおモジュールの実行順序は、モジュール間の依存関係によって決定されるものとなっている。例えばモジュールＡの出力がモジュールＢの演算処理で参照される場合には、Ｂ→Ａの順序でモジュールを実行すると、モジュールＢの必要とする情報をモジュールＡが出力するまで、モジュールＢの実行を一時停止させる必要があり、遅延が問題となる。そのため、こうした場合には、Ａ→Ｂの順序でモジュールが実行されるように実行順序を設定した方が望ましいことになる。
【０００４】
ここで、以下に述べるようなシステムを例に、システムを構成するモジュールを規定の周期毎に実行するためのプログラム、すなわちシステムの駆動プログラムの設定態様を説明する。ここでは、最小実行周期が「１ｍｓｅｃ」であり、各モジュールの実行周期が「｛１、４、１６｝ｍｓｅｃ」のいずれかとなるようなシステムを想定して説明する。なお、最小実行周期やモジュールの実行周期は、適用される組込みシステムによって定められるパラメーターとなっている。
【０００５】
図７は、上記のような組込みシステムの駆動プログラムのコードの一例を示している。この駆動プログラムは、システムのオペレーティングシステムにより、最小実行周期毎に繰り返し実行されるものとなっている。同図に示すように、駆動プログラムは、同プログラムの実行毎にインクリメントされるカウンターｃの値が実行周期の倍数となる毎に、その実行周期のモジュールを呼び出して実行するように形成されている。
【０００６】
同図の例では、カウンターｃの値をモジュールの実行周期で除算したときの剰余が「０」となるときに、その実行周期のモジュールを実行するように駆動プログラムが構成されている。例えば、実行周期が「１ｍｓｅｃ」の各モジュール（ｆｕｎｃ１（），ｆｕｎｃ２（））は、カウンターｃの値を「１」で除算したときに剰余が「０」となるときに、すなわち駆動プログラムが実行される毎に読み込まれて実行されるようになっている。また実行周期が「４ｍｓｅｃ」の各モジュール（ｆｕｎｃ３（），ｆｕｎｃ４（），ｆｕｎｃ５（））は、カウンターｃの値を「４」で除算したときに剰余（ｃ％４）が「０」となるときに読み込まれて実行されるようになっている。更に実行周期が「１６ｍｓｅｃ」の各モジュール（ｆｕｎｃ６（），ｆｕｎｃ７（），ｆｕｎｃ８（））は、カウンターｃの値を「１６」で除算したときの剰余（ｃ％１６）が「０」となるときに読み込まれて実行されるようになっている。なお、同図に示される駆動プログラムのコードでは、説明を簡単とするために、各モジュールの引数は省略されている。
【０００７】
次に、こうした駆動プログラムの従来の作成手順を説明する。図８は、作成する駆動プログラムの雛形となるコードを示している。同図に示すように、この雛形コードには、各実行周期のモジュールの呼び出しコードを差し込ませる箇所が「／＊［１ｍｓｅｃ処理］＊／」、「／＊［４ｍｓｅｃ処理］＊／」、「／＊［１６ｍｓｅｃ処理］＊／」といったコメントとして記載されている。こうした箇所に該当するモジュールの呼び出しコードをそれぞれ記入することで、駆動プログラムが作成されるようになっている。
【０００８】
こうした駆動プログラムへの各モジュールの登録は、図９に例示するようなモジュール情報のリストを参照して行われる。このリストには、対象とする組込みシステムに必要なモジュールの情報がそれぞれ１つずつ格納されている。また、こうしたリストには、駆動プログラムに登録される各モジュールの情報として、名称、手続き、実行周期の情報がそれぞれ登録されている。ここで名称は、該当モジュールの呼び名であり、手続きは、当該モジュールを呼び出して実行するために駆動プログラムに記述されるコード（呼出コード）となっている。なお手続きの内容は、該当モジュールのプログラムにより決定されるものとなっている。また実行周期は、当該モジュールを実行する周期を示している。ちなみに、同図において実行周期の欄が空白のモジュール（処理４、処理８）は、その実行周期が未定であることを示している。
【０００９】
ソフトウェア開発者は、こうしたリストを参照しながら、図８に示した駆動プログラムの雛形コードの該当する箇所に各モジュールの手続き（呼出コード）を挿入して、図７に示すような駆動プログラムを作成する。こうした駆動プログラムへの各モジュールの呼出コードの登録は、ソフトウェア開発者がテキストエディター等を用いて駆動プログラムのコードを手動で編集することで行われる。
【００１０】
なお本願に関する従来の技術としては、特許文献１及び２に記載のものがある。これらは、ソフトウェア開発者のコードの記載ミスを低減することで、プログラムの作成効率を向上させるものとなっている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開平０５−２８９８５８号公報
【特許文献２】特開平０８−３２８８３５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
ところで、上記のような駆動プログラムの作成作業では、ソフトウェア開発者による手動でのプログラムコードの編集により、各モジュールの呼出コードの登録を行っている。そのため、同じモジュールの呼出コードを複数の箇所に記述してしまうモジュールの重複登録やモジュールの呼出コードの記述漏れといった不注意による編集ミスを招くことがある。また駆動プログラムの作成時に参照される図９のようなモジュール情報のリストについても、ソフトウェア開発者が手動で作成しているため、リストの作成段階でモジュールの重複や漏れが発生することもある。
【００１３】
本発明は、こうした実状に鑑みてなされたものであって、その解決しようとする課題は、駆動プログラムへのモジュール呼出コードの登録ミスを効果的に低減することのできるプログラムの作成支援装置、作成支援方法及び作成支援プログラムを提供することにある。
【課題を解決するための手段】
【００１４】
以下、上記課題を解決するための手段、及びその作用効果を記載する。
上記課題を解決するため、請求項１に記載の発明は、複数のモジュールを組合せて構成される組込みシステムでの各モジュールの呼び出しと実行とを行う駆動プログラムの作成を支援するためのプログラムの作成支援装置において、モジュールの全てについてその名称とその実行周期とが情報としてそれぞれ格納されたチャート情報を記憶する記憶装置と、プログラムの実行に係る演算処理を実行する演算処理装置と、を備えている。また請求項１に記載の発明は、演算処理装置により実行されるプログラムとして、チャート情報における各モジュールの実行周期の情報の書き換えを行うためのユーザーインターフェイスを提供するエディタープログラムを備えるようにしてもいる。
【００１５】
上記構成では、駆動プログラムによって呼び出されて実行されるモジュールの全てについてのモジュールの名称及び実行周期の情報がチャート情報として記憶装置に記憶される。また演算処理装置によりエディタープログラムを実行すると、チャート情報における各モジュールの実行周期の情報の書き換えを行うためのユーザーインターフェイスが提供されるようになる。
【００１６】
ソフトウェア開発者は、エディタープログラムの提供するユーザーインターフェイスを通じて、各モジュールの実行周期の編集を行う。こうしたエディタープログラムでの編集によれば、必要な全てのモジュールについてその実行周期の情報が重複や漏れの無い状態で登録されるようになる。そして駆動プログラムにより呼び出し、実行されるモジュールの全てがチャート情報に登録され、且つ各モジュールの実行周期の情報が漏れ無く登録されていれば、各モジュールの実行周期が記述された、重複や漏れの無い完全なリストが得られることになる。そして、そうした完全なリストを参照しながら駆動プログラムの作成を行うことで、モジュールの重複や漏れの無い駆動プログラムの作成が可能となる。したがって上記構成によれば、駆動プログラムへのモジュール呼出コードの登録ミスを効果的に低減することができるようになる。
【００１７】
ところで、実行周期が同一のモジュールが複数存在し、そのモジュール間に依存関係が存在する場合には、各実行周期におけるモジュールの実行順序を規定しておくことが必要となる。そうした場合、請求項２によるように、実行周期が同一の複数のモジュール間におけるモジュールの実行順序の情報をチャート情報に併せて格納させるとともに、そうした実行順序の情報の書き換えを行うためのユーザーインターフェイスを併せて提供するようにエディタープログラムを構成すれば、重複や漏れの無い完全なモジュール実行順序の情報がチャート情報から得られるようになる。
【００１８】
更に請求項３によるように、記憶装置に記憶されたチャート情報を読み込むとともに、そのチャート情報に基づいて同チャート情報の実行周期の情報に示される実行周期にて該当モジュールを呼び出して実行する駆動プログラムのコードを演算処理装置による演算処理を通じて自動生成させる自動生成プログラムを備えるようにしても良い。この場合、チャート情報に登録された実行周期に各モジュールを呼び出して実行する駆動プログラムがチャート情報に基づいて自動的に生成されるようになる。また上記エディタープログラムを用いた編集作業によれば、重複や漏れの無い完全なリストを作成することができる。したがって、上記構成によれば、モジュール登録の重複や漏れの無い駆動プログラムを確実に作成することができるようになる。
【００１９】
なおこうした本発明のプログラムの作成支援装置は、請求項４によるように、車両の制御システム用の組込みシステムの駆動プログラムの作成支援に用いることが可能である。
上記課題を解決するため、プログラムの作成支援方法としての請求項５に記載の発明では、複数のモジュールを組合せて構成される組込みシステムでの各モジュールの呼び出しと実行とを行う駆動プログラムの作成を支援するための方法であって、情報を記憶する記憶装置及びプログラムの実行に係る演算処理を実行する演算処理装置を用いて以下の各工程を行なうようにしている。すなわち、モジュールの全てについてその名称とその実行周期とが情報としてそれぞれ格納されたチャート情報を前記記憶装置に記憶させる工程と、実行周期の情報の書き換えを行うためのユーザーインターフェイスを提供するエディタープログラムを演算処理装置に実行させるとともに、そのエディタープログラムの提供するインターフェイスを通じてチャート情報における各モジュールの実行周期の情報を編集する工程と、である。
【００２０】
こうした作成支援方法では、駆動プログラムによって呼び出されて実行されるモジュールの全てについての名称及び実行周期の情報がチャート情報として記憶装置に記憶されるようになる。また演算処理装置にエディタープログラムを実行させると、チャート情報における各モジュールの実行周期の情報の書き換えを行うためのユーザーインターフェイスが提供されるようになる。こうしたユーザーインターフェイスでの編集を通じては、各モジュールの実行周期が記述された、重複や漏れの無い完全なリストが得られるようになる。そしてそうした完全なリストを参照しながら駆動プログラムの作成を行うことで、モジュールの重複や漏れの無い駆動プログラムの作成が可能となる。したがって上記方法によれば、駆動プログラムへのモジュール呼出コードの登録ミスを効果的に低減することができるようになる。
【００２１】
また実行周期が同一のモジュールが複数存在し、そのモジュール間に依存関係が存在する場合には、請求項６によるように、実行周期が同一の複数のモジュール間におけるモジュールの実行順序の情報をチャート情報に併せて格納させるとともに、そうした実行順序の情報の書き換えを行うためのユーザーインターフェイスを併せて提供するようにエディタープログラムを構成すれば、重複や漏れの無い完全なモジュール実行順序の情報がチャート情報から得られるようになる。
【００２２】
更に請求項７によるように、記憶装置に記憶された前記チャート情報に基づいてそのチャート情報の実行周期の情報に示される実行周期にて該当モジュールを呼び出して実行する駆動プログラムのコードを前記演算処理装置に自動生成させる工程を備えるようにすれば、モジュール登録の重複や漏れの無い駆動プログラムを確実に作成することができるようになる。
【００２３】
なおこうした本発明のプログラムの作成支援方法は、請求項８によるように、車両の制御システム用の組込みシステムの駆動プログラムの作成支援に用いることが可能である。
上記課題を解決するため、請求項９に記載の発明は、複数のモジュールを組合せて構成される組込みシステムでの各モジュールの呼び出しと実行とを行う駆動プログラムの作成を支援するためのプログラムの作成支援プログラムにおいて、次の各ステップを備えるようにしている。すなわち、モジュールの全てについてその名称とその実行周期とが情報としてそれぞれ格納されたチャート情報を記憶装置から読み出すステップと、そのチャート情報における各モジュールの実行周期の情報の書き換えを行うためのユーザーインターフェイスを提供するステップと、である。
【００２４】
こうした作成支援プログラムでは、記憶装置から読み込まれたチャート情報における各モジュールの実行周期の情報の書き換えを行うためのユーザーインターフェイスが提供されるようになる。そしてソフトウェア開発者は、その提供されたユーザーインターフェイスを通じて、各モジュールの実行周期の編集を行うことになる。こうしたユーザーインターフェイスを通じた編集作業によれば、必要な全てのモジュールの情報が重複や漏れの無い状態で登録されるようになる。そのため、各モジュールの実行周期が記述された、重複や漏れの無い完全なリストが得られるようになり、そのリストを参照しながら駆動プログラムの作成を行うことで、モジュールの重複や漏れの無い駆動プログラムの作成が可能となる。したがって上記作成支援プログラムによれば、駆動プログラムへのモジュール呼出コードの登録ミスを効果的に低減することができるようになる。
【００２５】
また実行周期が同一のモジュールが複数存在し、そのモジュール間に依存関係が存在する場合には、請求項１０によるように、実行周期が同一の複数のモジュール間におけるモジュールの実行順序の情報をチャート情報に併せて格納させるとともに、ユーザーインターフェイスの提供に係るステップにおいて、そうした実行順序の情報の書き換えを行うためのユーザーインターフェイスを併せて提供するようにすれば、重複や漏れの無い完全なモジュール実行順序の情報がチャート情報から得られるようになる。
【００２６】
更に請求項１１によるように、記憶装置に記憶された前記チャート情報を読み込むとともに、そのチャート情報に基づいて同チャート情報の実行周期の情報に示される実行周期にて該当モジュールを呼び出して実行する駆動プログラムのコードを自動生成するステップを備えるようにすれば、モジュール登録の重複や漏れの無い駆動プログラムを確実に作成することができるようになる。
【００２７】
なおこうした本発明のプログラムの作成支援プログラムは、請求項１２によるように、車両の制御システム用の組込みシステムの駆動プログラムの作成支援に用いることが可能である。
【図面の簡単な説明】
【００２８】
【図１】本発明の一実施形態に係るプログラムの作成支援装置の全体構造を模式的に示す略図。
【図２】同実施形態のエディタープログラムにより自動生成されるチャート情報について、（ａ）はその生成開始時の状態を、（ｂ）はその生成途中の状態を、（ｃ）はその生成完了時の状態をそれぞれ示す表図。
【図３】同実施形態に採用されるエディタープログラムの提供するユーザーインターフェイスの編集画面の一例を示す図。
【図４】同ユーザーインターフェイスでのモジュール実行周期の変更操作について、（ａ）はその変更中の状態を、（ｂ）はその変更後の状態をそれぞれ示す図。
【図５】同ユーザーインターフェイスでのモジュール実行順序の変更操作について、（ａ）はその変更中の状態を、（ｂ）はその変更後の状態をそれぞれ示す図。
【図６】同自動生成プログラムの処理手順を示すフローチャート。
【図７】組込みシステムの駆動プログラムのコードの一例を示す図。
【図８】駆動プログラムの雛形のコードの一例を示す図。
【図９】同駆動プログラムの作成時に参照されるモジュール情報の一例を示す図。
【発明を実施するための形態】
【００２９】
以下、本発明を具体化した一実施形態を、図１〜図９を参照して詳細に説明する。なお本実施の形態のプログラムの作成支援装置、作成支援方法及び作成支援プログラムは、組込みシステムとしての車両の制御システムの駆動プログラムの作成を支援するものとなっている。なお本実施の形態に係る装置、方法、プログラムの支援の元に作成される駆動プログラムは、図７に例示したような構造を有するものとなっている。すなわち、この駆動プログラムは、各モジュールを必要な周期に読み込んで実行するプログラムとして構成されている。なお本実施の形態においても、最小実行周期が「１ｍｓｅｃ」であり、各モジュールの実行周期が「｛１、４、１６｝ｍｓｅｃ」のいずれかとなるようなシステムが想定されている。
【００３０】
ちなみに実際の駆動プログラムには、呼び出して実行するモジュールのタスクの優先度を定義するコードや、イベント駆動型のモジュールを実行するためのコードが記述されているが、ここでは説明の簡単のため、これらについての説明は省略することにする。
【００３１】
図１は、本実施の形態のプログラムの作成支援装置の全体構造を示している。同図に示すように、この作成支援装置は、中央演算処理装置（ＣＰＵ）１を中心に構成されている。ＣＰＵ１には、実行中のプログラムや処理中のデータが読み込まれる主記憶装置２、ＣＰＵ１の演算結果等を表示する表示装置３、ソフトウェア開発者の入力操作を受け付ける入力装置４、及びデータやプログラムが記憶される外部記憶装置５が接続されている。
【００３２】
本実施の形態の作成支援装置の外部記憶装置５には、モジュール情報Ｉ１及びチャート情報Ｉ２などのデータや、エディタープログラムＰ１や自動生成プログラムＰ２などプログラムが記憶されている。ＣＰＵ１は、必要に応じて、外部記憶装置５から主記憶装置２にプログラムやデータを読み込んで、プログラムの実行やデータの操作を実施する。
【００３３】
モジュール情報Ｉ１は、図９に例示したようなデータ構造を有した情報のリストとなっている。モジュール情報Ｉ１には、駆動プログラムに登録される全てのモジュールの情報がそれぞれ１つずつ格納されている。各モジュールの情報としては、名称、手続き、実行周期の情報がそれぞれ登録されている。ここで名称は、該当モジュールの呼び名であり、手続きは、当該モジュールを呼び出して実行するために駆動プログラムに記述されるコード（呼出コード）となっている。また実行周期は、当該モジュールを実行する周期を示している。こうしたモジュール情報Ｉ１は、ソフトウェア開発者によって予め作成され、外部記憶装置５に記憶されるものとなっている。ちなみに、こうしたモジュール情報Ｉ１に格納される各モジュールの実行周期は、仮のものであり、後の編集工程において変更され得るものとなっている。またモジュール情報Ｉ１に実行周期が未定のモジュールについては、その実行周期を未定義のままとすることが許容されており、その場合のそのモジュールの実行周期の欄は、空白としておくことになっている。
【００３４】
またチャート情報Ｉ２は、駆動プログラムに登録されるモジュールの全てについてその名称とその実行周期とが情報としてそれぞれ格納されたリストとして構成されている。こうしたチャート情報Ｉ２は、エディタープログラムＰ１によって、モジュール情報Ｉ１を基に自動生成されるものとなっている。具体的には、チャート情報Ｉ２のリストは、実行周期の列とメンバーの列とにより構成されている。そして各行の実行周期の欄には、実行周期の値が、各行のメンバーの欄には同行の実行周期の欄の値に示される実行周期が設定された各モジュールの名称がそれぞれ格納されるようになっている。なお、各実行周期のメンバー欄におけるモジュールの名称の記述の順序は、その実行周期におけるモジュールの実行順序を示すものとなっている。
【００３５】
一方、エディタープログラムＰ１は、チャート情報Ｉ２を生成するとともに、そのチャート情報Ｉ２における各モジュールの実行周期の情報の書き換えを行うためのユーザーインターフェイスを提供するプログラムとして構成されている。また自動生成プログラムＰ２は、外部記憶装置５に記憶されたチャート情報Ｉ２を読み込むとともに、そのチャート情報Ｉ２に基づいて同チャート情報Ｉ２の実行周期の情報に示される実行周期にて該当モジュールを呼び出して実行する駆動プログラムをＣＰＵ１による演算処理を通じて自動生成させるプログラムとして構成されている。なお、これらエディタープログラムＰ１及び自動生成プログラムＰ２は、必要に応じて主記憶装置２に読み込まれ、ＣＰＵ１により実行されるようになっている。
【００３６】
次にエディタープログラムＰ１によるチャート情報Ｉ２の自動生成について説明する。エディタープログラムＰ１は、その起動時に外部記憶装置５からモジュール情報Ｉ１を読み込むとともに、そのモジュール情報Ｉ１に基づいてチャート情報Ｉ２を生成するようにしている。
【００３７】
図２（ａ）は、生成開始時のチャート情報Ｉ２の状態を示している。同図に示すように、初期状態のチャート情報Ｉ２は、情報が一切格納されておらず、情報を格納する欄の全てが空欄となっている。
【００３８】
チャート情報Ｉ２の生成を開始すると、エディタープログラムＰ１は、モジュール情報Ｉ１の先頭から順に各行の情報を読み込み、チャート情報Ｉ２に情報を順に追加する。このチャート情報Ｉ２への情報の追加は、次の手順（ａ）〜（ｃ）を繰り返すことで行われる。
（ａ）チャート情報Ｉ２のリストの実行周期の欄に、読み込んだモジュール情報Ｉ１の行の実行周期の欄の値と同じ値の欄が無ければ、チャート情報Ｉ２のリストにその実行周期の欄を追加する。そして読み込んだモジュール情報Ｉ１の行の名称の欄に記述されたモジュール名称の文字列をその行のメンバーの欄に記述する。
（ｂ）チャート情報Ｉ２のリストの実行周期の欄に、読み込んだモジュール情報Ｉ１の行に示される実行周期の値と同じ値の欄があれば、読み込んだモジュール情報Ｉ１の行に示されるモジュール名称の文字列をその行のメンバーの欄に追加する。
（ｃ）読み込んだモジュール情報Ｉ１の行の実行周期の欄が空欄であれば、実行周期の欄が未定義の行に（無ければ値が未定義の実行周期の欄を新規に作成して）、読み込んだモジュール情報Ｉ１の行に示されるモジュール名称の文字列をその行のメンバーの欄に追加する。
【００３９】
例えば、図２示されるようにモジュール情報Ｉ１が設定されている場合、エディタープログラムＰ１はまずモジュール情報Ｉ１の先頭行を読み込む。この先頭行の実況周期の欄の値は、「１（ｍｓｅｃ）」であり、名称の欄の値は「処理１」となっている。初期状態のチャート情報Ｉ２には当然ながら、値が「１」の実行周期の欄は存在しない。そこでエディタープログラムＰ１は、図２（ｂ）に示すように、チャート情報Ｉ２のリストに、値が「１」の実行周期の欄を追加し、その行のメンバーの欄に文字列「処理１」を記述する。以後、エディタープログラムＰ１は、モジュール情報Ｉ１の各行を先頭から順に読み込み、必要に応じて実行周期の欄を追加しながら、チャート情報Ｉ２に情報を追加する。そしてモジュール情報Ｉ１の最終行の処理を終えると、図２（ｃ）に示されるようなリストがチャート情報Ｉ２として生成されることになる。
【００４０】
チャート情報Ｉ２の生成後、エディタープログラムＰ１は、編集プロセスに移行する。編集プロセスに移行すると、エディタープログラムＰ１は、生成したチャート情報Ｉ２に基づいて図３に示すような編集画面を生成して、表示装置３に表示させる。この編集画面には、実行周期の値が表示される領域と、モジュールの名称を示すアイコンが表示される領域とが、値が「未定」のものも含めて実行周期毎に設けられている。具体的には実行周期の値が表示される実行周期欄が左側の列に配置され、各モジュールのアイコンが配置されるメンバー欄が右側の列に配置された表図として、編集画面が表示されるようになっている。
【００４１】
こうした編集画面では、モジュールの実行周期の変更と実行順序の変更とを行うことができるようになっている。その一方、この編集画面では、モジュールの新規追加や削除は行えないようになっている。
【００４２】
まずモジュールの実行周期の変更のための操作手順について説明する。実行周期の変更は、編集画面のメンバー欄に配置された該当モジュールのアイコンを選択し、ドラッグ・アンド・ドロップにより他の実行周期のメンバー欄に移動することで行うことができる。例えば図４（ａ）に示すように、実行周期の値が「未定」の行のメンバー欄に配置された「処理４」のアイコンを選択して実行周期が「４ｍｓｅｃ」の行のメンバー欄まで移動させると、同図（ｂ）に示すように、「処理４」のアイコンが実行周期が「４ｍｓｅｃ」の行のメンバー欄に移動するようになる。
【００４３】
次にモジュールの実行順序の変更のための操作手順について説明する。実行順序の変更は、編集画面のメンバー欄に配置された該当モジュールのアイコンを選択し、ドラッグ・アンド・ドロップにより同じメンバー欄の他の行に移動することで行うことができる。例えば図５（ａ）に示すように、実行周期の値が「４ｍｓｅｃ」の行のメンバー欄の３行目に配置された「処理４」のアイコンを選択して、同メンバー欄の１行目と２行目との間に移動させると、同図（ｂ）に示すように「処理４」のアイコンは、実行周期の値が「４ｍｓｅｃ」の行のメンバー欄の２行目に移動するようになる。
【００４４】
こうして編集画面上でアイコンが移動されると、エディタープログラムＰ１は、その表示に併せてチャート情報Ｉ２の更新を行う。例えば図４の操作の例では、チャート情報Ｉ２の実行周期の値が「未定」の行のメンバー欄から文字列「処理４」の記述が削除されるとともに、同チャート情報Ｉ２の実行周期の値が「４ｍｓｅｃ」の行のメンバー欄の末尾に、文字列「処理４」の記述が追加されることになる。また図５の操作の例では、チャート情報Ｉ２の実行周期の値が「４ｍｓｅｃ」の行のメンバー欄におけるモジュールの記述順序が、「処理３」→「処理５」→「処理４」の順から「処理３」→「処理４」→「処理５」の順に変更されるようになる。
【００４５】
こうしたチャート情報Ｉ２の編集作業は、全てのモジュールの実行周期が正式に定義されるまで続けられる。編集作業が完了した後、自動生成プログラムＰ２を実行すると、完成されたチャート情報Ｉ２の内容を反映した駆動プログラムのコードが自動的に生成される。自動生成プログラムＰ２は、外部記憶装置５に記憶されたチャート情報Ｉ２を読み込むとともに、そのチャート情報Ｉ２に基づいて同チャート情報Ｉ２の実行周期の情報に示される実行周期にて該当モジュールを呼び出して実行する駆動プログラムのコードをＣＰＵ１による演算処理を通じて自動生成させるように構成されている。
【００４６】
図６は、こうした自動生成プログラムの処理手順を示している。この自動生成プログラムは、モジュール情報Ｉ１、チャート情報Ｉ２、及び図８に例示したような駆動プログラムの雛形コードを入力とし、駆動プログラムのコードが記述されたファイルを出力するプログラムとして構成されている。
【００４７】
プログラムが実行されると、自動生成プログラムＰ２はまずステップＳ１００において、全てのモジュールの実行周期が定義されているか否かを確認する。すなわち、自動生成プログラムＰ２は、チャート情報Ｉ２の実行周期の欄の値が「未定」の行のメンバー欄が空欄であるか否かを確認する。ここで実行周期が未定のモジュールが残っていれば（Ｓ１００：ＮＯ）、自動生成プログラムＰ２はそのまま終了する。なお同図のフローチャートでは省略されているが、このときの自動生成プログラムＰ２は、実行周期が未定義のモジュールが存在する旨のエラーメッセージを表示装置３に表示させるようになっている。
【００４８】
一方、全モジュールの実行周期が定義済みであれば（Ｓ１００：ＹＥＳ）、自動生成プログラムＰ２はステップＳ１０１の処理に進む。ステップＳ１０１の処理に進むと、自動生成プログラムＰ２は、そのステップＳ１０１において、雛形コードの先頭の行の文字列を読み込む。例えば、図８の例のように雛形プログラムが構成されている場合には、「ｖｏｉｄ  ｅｘｅｃ（ｖｏｉｄ）」という文字列がここで読み込まれることになる。
【００４９】
続いて自動生成プログラムＰ２は、ステップＳ１０２において、読み込んだ文字列が差込箇所を示すものであるか否かを確認する。図８の雛形コードの例では、差込箇所は、「／＊［｛１，４，１６｝ｍｓｅｃ処理］＊／」という文字列で表されている。ここで読み込んだ文字列が差込箇所を示すものでないときには（Ｓ１０２：ＮＯ）、自動生成プログラムＰ２は、ステップＳ１０３において、読み込んだ文字列をそのまま駆動プログラムのファイルの末尾に追加して、処理をステップＳ１０７に進める。一方、読み込んだ文字列が差込箇所であることを示すものであれば（Ｓ１０２：ＹＥＳ）、ステップＳ１０４〜ステップＳ１０６の処理を実施した後、処理をステップＳ１０７に進める。
【００５０】
処理がステップＳ１０４に進むと、自動生成プログラムＰ２は、そのステップＳ１０４において、差込箇所の文字列に示される実行周期の値を読み取るとともに、チャート情報Ｉ２の該当する実行周期の行のメンバー欄の内容を、すなわち該当実行周期の各モジュールの名称の文字列を読み込む。そして自動生成プログラムＰ２は続くステップＳ１０５において、読み込んだモジュール名称の文字列をキーとしてモジュール情報Ｉ１を検索し、その名称に対応する手続き（呼出コード）の欄の内容を読み込む。また自動生成プログラムＰ２は、続くステップＳ１０６において読み込んだ手続きの文字列を駆動プログラムのファイルの末尾に追加して、処理をステップＳ１０７に進める。なお、チャート情報Ｉ２の該当する実行周期の行のメンバー欄に複数のモジュールの名称が格納されている場合には、駆動プログラムのファイルの末尾への手続きの文字列の追加は、チャート情報のメンバー欄の名称の記述順序に従って行われる。
【００５１】
処理がステップＳ１０７に進むと、自動生成プログラムＰ２は、そのステップＳ１０７において、雛形コードから読み込んだ行が同雛形コードの末尾であるか否かを確認する。ここで読み込んだ行が雛形コードの末尾でなければ（Ｓ１０７：ＮＯ）、自動生成プログラムＰ２は、ステップＳ１０８において雛形コードの次の行の文字列を読み込んだ後、ステップＳ１０２の処理に戻る。一方、読み込んだ行が雛形コードの末尾であれば、自動生成プログラムＰ２はその時点で終了する。
【００５２】
以上により、チャート情報Ｉ２に示される実行周期、実行周期で各モジュールを読み込んで実行する駆動プログラムのコードが自動生成されるようになる。こうして生成された駆動プログラムのコードは、例えば図７に示されるようなものとなる。
【００５３】
なお以上の本実施の形態では、外部記憶装置５が上記記憶装置に、ＣＰＵ１が上記演算処理装置にそれぞれ対応する構成となっている。また本実施の形態の作成支援プログラムは、エディタープログラムＰ１及び自動生成プログラムＰ２の２つのプログラムにより構成されている。
【００５４】
以上説明した本実施形態のプログラムの作成支援装置、作成支援方法及び作成支援プログラムによれば、次の効果を奏することができる。
（１）本実施の形態に係るプログラムの作成支援装置は、モジュールの全てについてその名称とその実行周期とが情報としてそれぞれ格納されたチャート情報Ｉ２を記憶する外部記憶装置５と、プログラムの実行に係る演算処理を実行するＣＰＵ１と、を備えている。また本実施の形態の作成支援装置は、ＣＰＵ１により実行されるプログラムとして、チャート情報Ｉ２における各モジュールの実行周期の情報の書き換えを行うためのユーザーインターフェイスを提供するエディタープログラムＰ１を備えるようにしてもいる。ソフトウェア開発者は、エディタープログラムＰ１の提供するユーザーインターフェイスを通じて、各モジュールの実行周期の編集を行う。こうしたエディタープログラムＰ１での編集によれば、必要な全てのモジュールについてその実行周期の情報が重複や漏れの無い状態で登録されるようになる。そして駆動プログラムにより呼び出されて実行されるモジュールの全てがチャート情報Ｉ２に登録され、且つ各モジュールの実行周期の情報が抜け無く登録されていれば、各モジュールの実行周期が記述された、重複や漏れの無い完全なリストが得られることになる。そのため、そうした完全なリストを参照しながら駆動プログラムを作成することができるようになり、モジュールの重複や漏れの無い駆動プログラムの作成が可能となる。したがって本実施の形態のプログラムの作成支援装置によれば、駆動プログラムへのモジュール呼出コードの登録ミスを効果的に低減することができるようになる。
【００５５】
（２）本実施の形態に係るプログラムの作成支援方法では、情報を記憶する外部記憶装置５及びプログラムの実行に係る演算処理を実行するＣＰＵ１を用いて以下の２つの工程を行なうようにしている。すなわち、第１の工程は、モジュールの全てについてその名称とその実行周期とが情報としてそれぞれ格納されたチャート情報Ｉ２を外部記憶装置５に記憶させる工程となっている。また第２の工程は、実行周期の情報の書き換えを行うためのユーザーインターフェイスを提供するエディタープログラムＰ１をＣＰＵ１に実行させるとともに、そのエディタープログラムの提供するインターフェイスを通じてチャート情報Ｉ２における各モジュールの実行周期の情報を編集する工程となっている。こうした作成支援方法では、エディタープログラムＰ１の提供するユーザーインターフェイスでの編集作業を通じて、各モジュールの実行周期が記述された、重複や漏れの無い完全なリストが得られるようになる。そのため、そうした完全なリストを参照しながら駆動プログラムを作成することができるようになり、モジュールの重複や漏れの無い駆動プログラムの作成が可能となる。したがって本実施の形態のプログラムの作成支援方法によれば、駆動プログラムへのモジュール呼出コードの登録ミスを効果的に低減することができるようになる。
【００５６】
（３）本実施の形態に係るプログラムの作成支援プログラムでは、複数のモジュールを組合せて構成される組込みシステムでの各モジュールの呼び出しと実行とを行う駆動プログラムの作成を支援するためのプログラムの作成支援プログラムにおいて、次の２つのステップを備えるようにしている。すなわち、第１のステップは、モジュールの全てについてその名称とその実行周期とが情報としてそれぞれ格納されたチャート情報Ｉ２を外部記憶装置５から読み出すステップとなっている。また、第２のステップは、そのチャート情報Ｉ２における各モジュールの実行周期の情報の書き換えを行うためのユーザーインターフェイスを提供するステップとなっている。こうして提供されるユーザーインターフェイスを通じた編集作業によれば、必要な全てのモジュールの情報が重複や漏れの無い状態で登録されるようになる。そのため、各モジュールの実行周期が記述された、重複や漏れの無い完全なリストが得られるようになり、そのリストを参照しながら駆動プログラムの作成を行うことで、モジュールの重複や漏れの無い駆動プログラムの作成が可能となる。したがって本実施の形態の作成支援プログラムによれば、駆動プログラムへのモジュール呼出コードの登録ミスを効果的に低減することができるようになる。
【００５７】
（４）本実施の形態に係るプログラムの作成支援装置では、実行周期が同一の複数のモジュール間におけるモジュールの実行順序の情報をチャート情報Ｉ２に併せて格納させるとともに、そうした実行順序の情報の書き換えを行うためのユーザーインターフェイスを併せて提供するようにエディタープログラムＰ１を構成するようにしている。また本実施の形態に係るプログラムの作成支援方法では、実行周期が同一の複数のモジュール間におけるモジュールの実行順序の情報をチャート情報Ｉ２に併せて格納させるとともに、そうした実行順序の情報の書き換えを行うためのユーザーインターフェイスを併せて提供するようにエディタープログラムＰ１を構成するようにしている。更に本実施の形態に係るプログラムの作成支援プログラムでは、実行周期が同一の複数のモジュール間におけるモジュールの実行順序の情報をチャート情報Ｉ２に併せて格納させるようにしている。またこれとともに、ユーザーインターフェイスの提供に係るステップにおいて、そうした実行順序の情報の書き換えを行うためのユーザーインターフェイスを併せて提供するようにしている。実行周期が同一のモジュールが複数存在し、そのモジュール間に依存関係が存在する場合には、各実行周期におけるモジュールの実行順序を規定しておくことが必要となる。その点、本実施の形態では、重複や漏れの無いかたちで各モジュールの実行順序を定義することが可能であり、重複や漏れの無い完全なモジュール実行順序の情報がチャート情報Ｉ２から得られるようになり、ひいては、モジュールの実行順序が適正に定義された駆動プログラムの作成が可能となる。
【００５８】
（５）本実施の形態に係るプログラムの作成支援装置では、自動生成プログラムＰ２を備えるようにしている。この自動生成プログラムＰ２は、外部記憶装置５に記憶されたチャート情報Ｉ２を読み込むとともに、そのチャート情報Ｉ２に基づいて同チャート情報Ｉ２の実行周期の情報に示される実行周期にて該当モジュールを呼び出して実行する駆動プログラムのコードをＣＰＵ１による演算処理を通じて自動生成させるものとなっている。また本実施の形態に係るプログラムの作成支援方法では、外部記憶装置５に記憶されたチャート情報Ｉ２に基づいてそのチャート情報Ｉ２の実行周期の情報に示される実行周期にて該当モジュールを呼び出して実行する駆動プログラムのコードをＣＰＵ１に自動生成させる工程を備えるようにしている。更に本実施の形態に係るプログラムの作成支援プログラムでは、外部記憶装置５に記憶されたチャート情報Ｉ２を読み込むとともに、そのチャート情報Ｉ２に基づいて同チャート情報Ｉ２の実行周期の情報に示される実行周期にて該当モジュールを呼び出して実行する駆動プログラムのコードを自動生成するステップを備えるようにしている。こうした本実施の形態では、チャート情報Ｉ２に登録された実行周期に各モジュールを呼び出して実行する駆動プログラムがチャート情報Ｉ２に基づいて自動的に生成されるようになる。また上記エディタープログラムＰ１を用いた編集作業によれば、重複や漏れの無い完全なリストを作成することができる。したがって、本実施の形態によれば、モジュール登録の重複や漏れの無い駆動プログラムを確実に作成することができるようになる。
【００５９】
なお上記実施の形態は、以下のように変更して実施することもできる。
・上記実施の形態においてエディタープログラムＰ１により提供される編集画面の構成やその編集画面での実行周期、実行順序の変更のための操作の仕方は、すなわちエディタープログラムＰ１により提供される実行周期及び実行順序の編集に係るユーザーインターフェイスの構成は、必要に応じて適宜変更しても良い。例えば実行周期をノードとするツリー状の図形として編集画面を構成するようにしても良い。
【００６０】
・上記実施の形態では、エディタープログラムＰ１の提供するユーザーインターフェイスを通じてモジュールの実行周期及び実行順序の編集されたチャート情報Ｉ２に基づき、自動生成プログラムＰ２が駆動プログラムを自動生成するようにしていた。こうした駆動プログラムの生成を手動で行うようにしても、駆動プログラムへのモジュール呼出コードの登録ミスを効果的に低減することは可能である。すなわち、エディタープログラムＰ１による編集後のチャート情報Ｉ２のリストを、表示装置や印字装置に出力するとともに、出力されたリストを参照しながら駆動プログラムの作成を行うことで、駆動プログラムへのモジュール呼出コードの登録ミスは効果的に低減されるようになる。これが可能なのは、エディタープログラムＰ１による編集後のチャート情報Ｉ２には、重複や漏れの無い状態で各モジュールの実行周期及び実行順序の情報が格納されているためである。
【００６１】
・上記実施の形態では、実行周期が同一の複数のモジュール間におけるモジュールの実行順序の情報をチャート情報Ｉ２に併せて格納するようにしていた。またそうした実行順序の情報の書き換えを行うためのユーザーインターフェイスを併せて提供するようにエディタープログラムＰ１を構成するようにもしていた。しかしながら、モジュール間に依存関係が無いようなシステムでは、各モジュールの実行順序を定義する必要はなく、そうした場合には、チャート情報Ｉ２への実行順序の情報の格納、及びエディタープログラムＰ１による実行順序の情報の書き換えを行うためのユーザーインターフェイスの提供を割愛するようにしても良い。
【００６２】
・上記実施の形態では、車両の制御システム用の駆動プログラムを作成支援の対象とする場合について説明した。ただし、本発明に係るプログラムの作成支援装置、作成支援方法及び作成支援プログラムは、車両の制御システム以外の組込みシステムに用いられる駆動プログラムの作成支援にも、用いることが可能である。
【符号の説明】
【００６３】
１…中央演算処理装置（ＣＰＵ）、２…主記憶装置、３…表示装置、４…入力装置、５…外部記憶装置、Ｉ１…モジュール情報、Ｉ２…チャート情報、Ｐ１…エディタープログラム、Ｐ２…自動生成プログラム。
【図１】
2011048492.tif 000003
【図２】
2011048492.tif 000004
【図３】
2011048492.tif 000005
【図４】
2011048492.tif 000006
【図５】
2011048492.tif 000007
【図６】
2011048492.tif 000008
【図７】
2011048492.tif 000009
【図８】
2011048492.tif 000010
【図９】
2011048492.tif 000011