(57)【要約】【課題】車輌制御プログラムを正確かつ効率的に開発する。【解決手段】１）装着部品と車輌制御装置との間の入出力信号を定義する関数モジュールが車輌バリエーション毎に記録されるモジュールライブラリー、２）モジュール、装着部品、車輌バリエーションを特定するための情報を含むモジュール情報等が記録されるモジュールデータベース、３）入力される情報に基づいて各装着部品を制御するモジュール情報を前記モジュールデータベースから抽出するモジュール抽出手段、４）車輌制御プログラムのメイン関数のソースコードがテンプレートとして記録されるメイン関数記録手段、５）前記各種情報に基づいて各モジュールを前記テンプレートに挿入することによって車輌制御プログラムのソースコードを記述する車輌制御プログラムソースコード記述手段を有する車輌制御プログラム開発システム。【選択図】　　　図１
2004026083.tif 000002
【特許請求の範囲】
【請求項１】
（１）車輌に装着される種々の装着部品から車輌制御装置に与えられる入力信号に対応して当該車輌制御装置から当該装着部品又は外部装置に返されるべき出力信号を定義する関数が、ソースコードとして記述されているモジュールが、車輌駆動部品の種類と車輌の仕向け先との組み合わせに対応してそれぞれ記録される、モジュールライブラリー、
（２）前記モジュールライブラリーに記録されている、各モジュールを特定するための情報、当該モジュールによって制御されるべき装着部品を特定するための情報、及び当該装着部品が装着されるべき車輌の仕向け先及び車輌駆動部品の種類を特定するための情報を含んでなる、モジュール情報、当該装着部品が装着されるべき車輌の仕向け先及び車輌駆動部品の種類に基づいて設定される、コンパイルスイッチ情報、並びにプログラム生成パターン情報が関連付けられて記録される、モジュールデータベース、
（３）入力された仕向け先及び車輌駆動部品の種類並びに装着部品に基づいて、当該車輌の装着部品の各々を制御するためのモジュール情報を前記モジュールデータベースから抽出する、モジュール抽出手段、
（４）車輌制御プログラムにおいて使用される各種関数をコールするメイン関数のソースコードがテンプレートとして記録される、メイン関数記録手段、
（５）前記モジュール抽出手段によって抽出されたモジュール情報に基づいて、前記モジュールライブラリーから取得した該当するモジュールのソースコードを、前記プログラム生成パターン情報に従って、前記コンパイルスイッチ情報に基づいて作成されるコンパイルスイッチと共に、前記メイン関数記録手段に記録されたテンプレートの所定の箇所に挿入することによって、車輌制御プログラムのソースコードを記述する、車輌制御プログラムソースコード記述手段、
を有することを特徴とする、車輌制御プログラム開発システム。
【請求項２】
車輌に装着される種々の装着部品から車輌制御装置に与えられる入力信号又は当該車輌制御装置から当該装着部品若しくは外部装置に返されるべき出力信号に関する情報以外の補足情報が、前記モジュールデータベースに更に記録されることを特徴とする、請求項１に記載の車輌制御プログラム開発システム。
【請求項３】
前記補足情報が、車輌の試験結果によって定まる適合値及び／又は外部装置による装着部品やセンサーの動作状況をモニターする機能を車輌制御装置に導入するか否かの指定に関する定数値を含んでなることを特徴とする、請求項２に記載の車輌制御プログラム開発システム。
【請求項４】
前記車輌制御プログラムソースコード記述手段において前記コンパイルスイッチ情報に基づいて作成されるコンパイルスイッチが、前記車輌制御プログラムのソースコードがコンパイルされる際に、コンパイラに与えられるスイッチに応じて、前記車輌制御プログラムのソースコードの条件付きコンパイルが行われるために必要な条件文であることを特徴とする、請求項１〜３のいずれか１項に記載の車輌制御プログラム開発システム。
【請求項５】
前記プログラム生成パターン情報が、前記モジュールが車輌制御プログラムにおいて実行されるべき時間間隔、順序、及び優先度に関する情報であることを特徴とする、請求項１〜４のいずれか１項に記載の車輌制御プログラム開発システム。
【請求項６】
前記モジュール抽出手段によって抽出されたモジュール情報に基づいて前記モジュールライブラリー及び前記モジュールデータベースから得られない情報がある場合に、当該情報をユーザーが手動で入力するためのユーザーインターフェースを提供する機能を、前記モジュール抽出手段が更に有することを特徴とする、請求項１〜５のいずれか１項に記載の車輌制御プログラム開発システム。
【請求項７】
前記モジュール抽出手段によって抽出されるべきモジュールが複数存在する場合に、当該複数のモジュールの中からユーザーが自由に特定のモジュールを選択するためのユーザーインターフェースを提供する機能を、前記モジュール抽出手段が更に有することを特徴とする、請求項１〜６のいずれか１項に記載の車輌制御プログラム開発システム。
【請求項８】
前記モジュールデータベースに記録されるモジュール情報が、モジュールの履歴情報を更に含んでなり、
前記モジュール抽出手段によって抽出されるべきモジュールが複数存在する場合に、当該複数のモジュールの各々の履歴情報を前記モジュールデータベースから参照して、当該複数のモジュールから最新のモジュールを特定する機能を、前記モジュール抽出手段が更に有することを特徴とする、請求項１〜７のいずれか１項に記載の車輌制御プログラム開発システム。
【請求項９】
前記車輌制御プログラムソースコード記述手段によって記述されたソースコードを解析し、車輌制御プログラムの開発対象となる車輌のすべてのバリエーションを包含するコンパイルスイッチが設定されている箇所については当該コンパイルスイッチの設定を解除する、コンパイルスイッチ整形手段を更に有することを特徴とする、請求項１〜８のいずれか１項に記載の車輌制御プログラム開発システム。
【請求項１０】
当該車輌制御プログラムによって制御される各種装着部品の一覧表及び／又は当該装着部品に関する補足情報の一覧表を自動的に作成する、仕様書作成手段を更に有することを特徴とする、請求項１〜９のいずれか１項に記載の車輌制御プログラム開発システム。
【請求項１１】
前記車輌制御プログラムソースコード記述手段によって記述されたソースコードをコンパイル及びリンクして、当該車輌制御プログラムの実行形式のオブジェクトコードを作成する、車輌制御プログラムオブジェクトコード作成手段を更に有することを特徴とする、請求項１〜１０のいずれか１項に記載の車輌制御プログラム開発システム。
【請求項１２】
前記車輌制御プログラムオブジェクトコード作成手段によって作成された実行形式のオブジェクトコードを、前記車輌制御装置に装着されるロムに焼き付ける、車輌制御プログラム焼き付け手段を更に有することを特徴とする、請求項１１に記載の車輌制御プログラム開発システム。
【請求項１３】
請求項１１に記載の車輌制御プログラム開発システムによって作成された実行形式のオブジェクトコードを記憶する、車輌制御装置。
【請求項１４】
請求項１〜１２のいずれか１項に記載の車輌制御プログラム開発システムによって作成された車輌制御プログラムのソースコード又は実行形式のオブジェクトコードを記憶する、記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、車輌制御プログラムを開発するためのシステムに関する。より詳細には、本発明は、車輌制御を目的とするプログラムを、効率良く正確に開発するためのシステムに関する。
【０００２】
【従来の技術】
当該技術分野において周知の如く、昨今の車輌、特に自動車には、一般に、「ＥＣＵ」と称される車輌制御装置が装着されており、この車輌制御装置上で稼働する車輌制御プログラムにより、エンジン、変速装置、駆動装置、制動装置、操舵装置等の各種装着部品及び／又はこれらの装着部品に取り付けられたセンサー等から車輌制御装置に与えられる入力信号に応じた出力信号を、それぞれの装着部品及び／又はアクチュエーター等に返すことによって、エンジン、変速装置、駆動装置、制動装置、操舵装置等の各種装着部品を適切に制御して、エンジンにおける燃料の点火や噴射のタイミング、アイドリング、リミッター、燃料消費率、排気ガス中の有害物質の濃度等を所望のレベルとすることが一般的に行われている。
【０００３】
また、上記出力信号を車輌のインパネ等に装着される警告装置、又は車輌診断用のテスター若しくはコンピューター等に返すことによって、車輌の各種装着部品の作動状況を診断することも一般的に行われている。
【０００４】
一方、車輌には、たとえ同一車種であっても、車輌が販売される国や地域（仕向け先）や車輌駆動部品の種類等によって、多種多様な異なるバリエーションが存在するのが一般的であり、それぞれのバリエーションに装着される装着部品の種類は必ずしも共通ではなく、車輌が満たすべき規制等が仕向け先によって異なる場合には、たとえ同一の装着部品であっても、当該装着部品の制御プログラムを車輌の仕向け先に応じて変更しなければならない場合がある。
【０００５】
更に、車輌制御装置上で稼働する車輌制御プログラムにおいては、上記の如く車輌の仕向け先や装着部品の種類によって一義的に定まる情報以外に、各車輌の試験結果によって定まる適合値や、外部装置（例えば、車輌のインパネ等に装着される警告装置、又は車輌診断用のテスター若しくはコンピューター等）によって各装着部品やセンサーの動作状況をモニターする機能を車輌制御装置に導入するか否かの指定等に関する所謂「定数値」等の補足情報を設定する必要もある。
【０００６】
更にまた、当該技術分野においては、車輌制御装置上で稼働する車輌制御プログラムのソースコードを記述する場合には、各々のバリエーション毎に別個のソースコードを記述するのではなく、車種に共通の汎用性のあるソースコードを記述するのが一般的である。この場合、当該ソースコードのコンパイル時に、適当なスイッチを設定して条件付きコンパイルを行うことによって、それぞれのバリエーションの仕向け先における規制及び装着部品等に応じた制御を行うことができるオブジェクトコードが得られるように、当該ソースコード中に所謂コンパイルスイッチを適切に設定する必要がある。
【０００７】
上記の如く、車輌制御プログラムの開発においては、各々の車輌バリエーションの仕向け先における規制及び装着部品に応じた制御を行い得るソースコードを、各々のバリエーションに応じた適切なコンパイルスイッチを設定しながら、正確に記述することが不可欠であるが、消費者ニーズの多様化を反映して車輌バリエーションが多種多様であること、各々のバリエーションにおいて車輌制御装置が制御すべき装着部品の数及び種類が膨大であること、並びに各仕向け先における規制の内容も多種多様であることから、これらの情報を漏れなく正確に集約し、これらの情報に正確に対応した車輌制御プログラムを開発することは極めて困難であり、従来から多大な労力及び時間が費やされてきた。
【０００８】
かかる状況を受け、当該技術分野においては、車輌制御プログラムの設計ノウハウのチェックシート化及び仕様書の標準化並びに車輌制御プログラムにおける各装着部品のための制御関数のモジュール化等の工夫がなされてきたが、車輌制御装置による車輌制御の益々の高度化に伴い、プログラム設計者が集約すべき情報量は増大の一途を辿っており、また、プログラム設計者の個人的技量に依るところが大きいために、プログラム設計者の熟練度によって、プログラム設計に必要な工数及び作成されるプログラムの品質にばらつきが生じ易く、人的なミス（ヒューマンエラー）の削減にも限界があった。
【０００９】
【発明が解決しようとする課題】
従って、当該技術分野においては、車輌制御プログラムを開発しようとする車輌の仕向け情報、装着部品情報、及び補足情報に基づいて、当該車輌制御プログラムの開発に必要とされるソフトウェア部品モジュール（以降、「モジュール」と称する）を適切に集約して、当該車輌制御プログラムのソースコードを効率的に作成することができる車輌制御プログラム開発システムに対する要求が存在する。
【００１０】
本発明の目的は、車輌制御プログラムを開発しようとする車輌の仕向け先、装着部品、及び補足情報に基づいて、当該車輌制御プログラムの開発に必要とされるモジュールを適切に集約し、当該車輌制御プログラムのソースコードを効率的に作成することができる車輌制御プログラム開発システムを提供することである。
【００１１】
【課題を解決するための手段】
上記目的は、
（１）車輌に装着される種々の装着部品から車輌制御装置に与えられる入力信号に対応して当該車輌制御装置から当該装着部品又は外部装置に返されるべき出力信号を定義する関数が、ソースコードとして記述されているモジュールが、車輌駆動部品の種類と車輌の仕向け先との組み合わせに対応してそれぞれ記録される、モジュールライブラリー、
【００１２】
（２）前記モジュールライブラリーに記録されている、各モジュールを特定するための情報、当該モジュールによって制御されるべき装着部品を特定するための情報、及び当該装着部品が装着されるべき車輌の仕向け先及び車輌駆動部品の種類を特定するための情報を含んでなる、モジュール情報、当該装着部品が装着されるべき車輌の仕向け先及び車輌駆動部品の種類に基づいて設定される、コンパイルスイッチ情報、並びにプログラム生成パターン情報が関連付けられて記録される、モジュールデータベース、
【００１３】
（３）入力された仕向け先及び車輌駆動部品の種類並びに装着部品に基づいて、当該車輌の装着部品の各々を制御するためのモジュール情報を前記モジュールデータベースから抽出する、モジュール抽出手段、
【００１４】
（４）車輌制御プログラムにおいて使用される各種関数をコールするメイン関数のソースコードがテンプレートとして記録される、メイン関数記録手段、
【００１５】
（５）前記モジュール抽出手段によって抽出されたモジュール情報に基づいて、前記モジュールライブラリーから取得した該当するモジュールのソースコードを、前記プログラム生成パターン情報に従って、前記コンパイルスイッチ情報に基づいて作成されるコンパイルスイッチと共に、前記メイン関数記録手段に記録されたテンプレートの所定の箇所に挿入することによって、車輌制御プログラムのソースコードを記述する、車輌制御プログラムソースコード記述手段、
を有することを特徴とする、車輌制御プログラム開発システム、
によって達成される。
【００１６】
【発明の実施の形態】
以降に、図１を参照しながら、本発明に係る車輌制御プログラム開発システムについて、詳細に説明する。
【００１７】
本発明に係る車輌制御プログラム開発システムは、
（１）車輌に装着される種々の装着部品から車輌制御装置に与えられる入力信号に対応して当該車輌制御装置から当該装着部品又は外部装置に返されるべき出力信号を定義する関数が、ソースコードとして記述されているモジュールが、車輌駆動部品の種類と車輌の仕向け先との組み合わせに対応してそれぞれ記録される、モジュールライブラリー２、
【００１８】
（２）前記モジュールライブラリー２に記録されている、各モジュールを特定するための情報、当該モジュールによって制御されるべき装着部品を特定するための情報、及び当該装着部品が装着されるべき車輌の仕向け先及び車輌駆動部品の種類を特定するための情報を含んでなる、モジュール情報、当該装着部品が装着されるべき車輌の仕向け先及び車輌駆動部品の種類に基づいて設定される、コンパイルスイッチ情報、並びにプログラム生成パターン情報が関連付けられて記録される、モジュールデータベース１、
【００１９】
（３）入力された仕向け先及び車輌駆動部品の種類並びに装着部品に基づいて、当該車輌の装着部品の各々を制御するためのモジュール情報を前記モジュールデータベースから抽出する、モジュール抽出手段４、
【００２０】
（４）車輌制御プログラムにおいて使用される各種関数をコールするメイン関数のソースコードがテンプレートとして記録される、メイン関数記録手段３、
【００２１】
（５）前記モジュール抽出手段４によって抽出されたモジュール情報に基づいて、前記モジュールライブラリー２から取得した該当するモジュールのソースコードを、前記プログラム生成パターン情報に従って、前記コンパイルスイッチ情報に基づいて作成されるコンパイルスイッチと共に、前記メイン関数記録手段３に記録されたテンプレートの所定の箇所に挿入することによって、車輌制御プログラムのソースコード６を記述する、車輌制御プログラムソースコード記述手段５、
を有することを特徴とする、車輌制御プログラム開発システムである。
【００２２】
上記車輌に装着される種々の装着部品とは、例えば、エンジン、変速装置、駆動装置、制動装置、操舵装置、触媒、ＥＧＲ、電動スロットル、クルーズコントロール、イモビライザー等の各種車輌駆動部品、又はこれらの装着部品に取り付けられている各種センサー（例えば、酸素センサー、サーモスタット等）を意味する。また、外部装置とは、例えば、車輌のインパネ等に装着される警告装置、又は車輌診断用のテスター若しくはコンピューター等を意味する。
【００２３】
すなわち、本明細書においては、「車輌制御」という用語は、対象となる車輌に装着されている各種装着部品を適切に作動させることのみならず、上記外部装置を利用する車輌診断を行うことをも意味するものとする。
【００２４】
従って、上記車輌制御装置から上記装着部品に返されるべき出力信号とは、上記車輌を適切に制御するための出力信号であり、上記車輌制御装置から上記外部装置に返されるべき出力信号とは、上記装着部品の作動状況を診断するための出力信号であり、上記モジュールライブラリー２においては、各々の装着部品について、車輌駆動部品の種類と車輌の仕向け先との組み合わせに対応して、所望の結果を得ることができる出力信号を与えるべく所定のソースコードで記述された関数がモジュールとして記録されている。尚、当該ソースコードを記述するのに使用されるプログラミング言語の例としては、例えば、Ｍｉｃｒｏｓｏｆｔ　社のＶｉｓｕａｌ　Ｂａｓｉｃ、Ｖｉｓｕａｌ　Ｃ＋＋等を挙げることができるが、これらに限定されるものではない。
【００２５】
また、上記車輌制御プログラム開発システムは、各モジュールを特定するための情報、当該モジュールによって制御されるべき装着部品を特定するための情報、及び当該装着部品が装着されるべき車輌の仕向け先及び車輌駆動部品の種類を特定するための情報を含んでなる、モジュール情報、当該装着部品が装着されるべき車輌の仕向け先及び車輌駆動部品の種類に基づいて設定される、コンパイルスイッチ情報、並びにプログラム生成パターン情報が関連付けられて記録される、モジュールデータベース１を有する。尚、当該モジュールデータベース１を構築するためのデータベース管理アプリケーションソフトの例としては、例えば、Ｍｉｃｒｏｓｏｆｔ　社のＡｃｃｅｓｓ、Ｏｒａｃｌｅ社のＯｒａｃｌｅ等を挙げることができるが、これらに限定されるものではない。
【００２６】
尚、上記モジュールを特定するための情報とは、例えば、上記モジュールライブラリー２が保存されている場所を示すパス、モジュールのソースファイルの名称、モジュールの名称、略称、及びコード番号等を意味する。また、上記モジュールによって制御されるべき装着部品を特定するための情報とは、例えば、装着部品の名称、略称、及びコード番号等を意味する。同様に、装着部品が装着されるべき車輌の仕向け先及び車輌駆動部品の種類を特定するための情報とは、例えば、仕向け先の名称、略称、及びコード番号等、並びに車輌駆動部品の名称、略称、及びコード番号等を意味する。
【００２７】
更に、上記車輌制御プログラム開発システムにおいては、ユーザーが、制御プログラムを開発しようとする車輌の仕向け先及び車輌駆動部品の種類並びに装着部品を入力するための車輌情報入力用ユーザーインターフェース（図示されていない）をも提供する。前述の如く、ここで言う「仕向け先」とは、当該車輌が販売される国や地域を意味し、この仕向け先が異なると、当該車輌が満たすべき各種規制（例えば、法規制等）が異なるため、同種の車輌駆動部品（例えば、マニュアルトランスミッション、オートマチックトランスミッション等）及び同一の装着部品であっても、仕向け先が異なれば、これらの装着部品を制御するためのプログラムを変更する必要がある場合がある。
【００２８】
上記モジュールデータベース１において、各モジュールを特定するための情報、当該モジュールによって制御されるべき装着部品を特定するための情報、及び当該装着部品が装着されるべき車輌の仕向け先及び車輌駆動部品の種類を特定するための情報が関連付けられてモジュール情報として記録されることによって、上記モジュール抽出手段４が、上記車輌情報入力用ユーザーインターフェースを利用して入力される、車輌の仕向け先及び車輌駆動部品の種類、並びに装着部品に基づいて、上記モジュールライブラリー２から適切なモジュールを確実に抽出することができるのである。
【００２９】
ところで、当該技術分野において周知の如く、車輌に装着される各種装着部品の中には、所定のタイミングで制御を行う必要があるものも少なくなく、車輌制御プログラムにおいては、各装着部品に好適なタイミングで、上記モジュールによって定義される関数をコールするようにプログラミングを行うことが肝要である。
【００３０】
そこで、上記車輌制御プログラム開発システムにおいては、車輌制御プログラムにおけるプログラム生成パターン情報が各モジュールに関連付けられて記録されている。好ましくは、当該プログラム生成パターン情報は、各モジュールによって表される関数が車輌制御プログラムにおいて実行されるべき時間間隔、順序、及び優先度に関する情報である。
【００３１】
更に、上記車輌制御プログラム開発システムは、開発しようとする車輌制御プログラムにおいて使用される各種関数をコールするメイン関数のソースコードがテンプレートとして記録される、メイン関数記録手段３を有している。好ましくは、メイン関数記録手段３には、車輌制御プログラムにおいて関数がコールされるべきタイミング毎に、各種関数を表すソースコードを記述すべき箇所が予め設定されているテンプレートとして、メイン関数が記録される。
【００３２】
すなわち、上記車輌制御プログラム開発システムにおいては、上記車輌制御プログラムソースコード記述手段５により、上記モジュール抽出手段４によって抽出されたモジュール情報に基づいて、上記モジュールライブラリー２から取得した該当するモジュールのソースコードが、上記プログラム生成パターン情報に従って、上記メイン関数記録手段３に記録されたテンプレートの所定の箇所に挿入されることによって、車輌制御プログラムのソースコード６が記述される。
【００３３】
一方、前述の如く、当該技術分野においては、各々の車輌バリエーション毎に別個のソースコードを記述するのではなく、車種に共通の汎用性のあるソースコードを記述し、当該ソースコードをコンパイル及びリンクする際に、各バリエーションに応じた適当なスイッチを設定して条件付きコンパイルを行うことによって、同一のソースコードから各車輌バリエーションに対応した実行形式のオブジェクトコードを得ることが一般的に行われている。
【００３４】
そこで、上記モジュールデータベース１には、各モジュールの対応する装着部品が装着されるべき車輌の仕向け先及び車輌駆動部品の種類に基づいて設定される、コンパイルスイッチ情報が記録されており、上記車輌制御プログラムソースコード記述手段５により、各モジュールのソースコードが上記テンプレートの所定の箇所に挿入される際に、上記コンパイルスイッチ情報に従って、コンパイルスイッチが設定される。
【００３５】
上記の如く設定されるコンパイルスイッチは、車輌制御プログラムのソースコードがコンパイルされる際に、コンパイラに与えられるスイッチに応じて、車輌制御プログラムのソースコードの条件付きコンパイルが行われるために必要な条件文であるのが望ましい。
【００３６】
更に、本発明の好ましい態様においては、車輌に装着される種々の装着部品から車輌制御装置に与えられる入力信号又は当該車輌制御装置から当該装着部品若しくは外部装置に返されるべき出力信号に関する情報以外の補足情報もまた、上記モジュールデータベース１に記録される。当該補足情報は、例えば、車輌の試験結果によって定まる適合値や、外部装置（例えば、車輌のインパネ等に装着される警告装置、又は車輌診断用のテスター若しくはコンピューター等）によって各装着部品やセンサーの動作状況をモニターする機能を車輌制御装置に導入するか否かの指定等に関する定数値等を含んでなる、車輌の仕向け先や装着部品の種類によって一義的には定まらない情報であってもよい。
【００３７】
上記の如き補足情報が存在する場合のみならず、上記モジュール抽出手段４によって抽出されたモジュール情報に基づいて上記モジュールライブラリー２及び上記モジュールデータベース１から得られない情報がある場合には、当該情報をユーザーが手動で入力するためのユーザーインターフェース（図示されていない）を提供する機能を、上記モジュール抽出手段４が更に有していてもよい。
【００３８】
また、上記車輌制御プログラム開発システムにおける上記モジュール抽出手段４は、当該モジュール抽出手段４によって抽出されるべきモジュールが複数存在する場合に、当該複数のモジュールの中からユーザーが自由に特定のモジュールを選択するためのユーザーインターフェース（図示されていない）を提供する機能を更に有していてもよい。
【００３９】
この場合、上記モジュールデータベース１が各モジュールの不具合に関する情報をも記録しており、上記ユーザーインターフェース（図示されていない）が、当該不具合に関する情報をユーザーに提示して、ユーザーによるモジュールの選択を助ける機能をも有しているのが望ましい。
【００４０】
本発明のより好ましい態様においては、上記モジュールデータベース１に記録されるモジュール情報が、モジュールの履歴情報（例えば、モジュールのバージョン及びレベル版数等）をも含んでなり、上記モジュール抽出手段４によって抽出されるべきモジュールが複数存在する場合に、当該複数のモジュールの各々の履歴情報を上記モジュールデータベース１から参照して、当該複数のモジュールから最新のモジュールを自動的に特定する機能を、上記モジュール抽出手段４が更に有していてもよい。
【００４１】
特に、例えば大企業等におけるように、モジュールの改良／新規開発が日々行われている組織においては、上記機能により、最新のモジュールが自動的に選択されるので、プログラム設計者の過誤によって、古いモジュールが選択され、せっかくの最新モジュールが使用されないという事態を避けることができるので望ましい。
【００４２】
ところで、上記車輌制御プログラムソースコード記述手段５によって記述されたソースコード６においては、車輌制御プログラムの開発対象となる車輌の各バリエーションに装着される装着部品の組み合わせによっては、すべてのバリエーションを包含するコンパイルスイッチが設定される場合があるが、当業者にとって明らかな如く、すべてのバリエーションを包含するコンパイルスイッチは本来設定する必要が無い。
【００４３】
従って、本発明の好ましい態様において、上記車輌制御プログラム開発システムは、上記車輌制御プログラムソースコード記述手段５によって記述されたソースコード６を解析し、車輌制御プログラムの開発対象となる車輌のすべてのバリエーションを包含するコンパイルスイッチが設定されている箇所については当該コンパイルスイッチの設定を解除する、コンパイルスイッチ整形手段（図示されていない）を更に有することが望ましい。
【００４４】
例えば、上記コンパイルスイッチ整形手段（図示されていない）は、上記車輌情報入力用ユーザーインターフェース（図示されていない）を利用して入力されたすべての車輌バリエーションを包含するコンパイルスイッチを、上記モジュールデータベース１に記録されているコンパイルスイッチ情報に基づいて作成し、当該コンパイルスイッチに一致する条件文が宣言されている箇所を、上記車輌制御プログラムソースコード記述手段５によって記述されたソースコード６において検索することによって、すべてのバリエーションを包含するコンパイルスイッチが設定されている箇所を見出すことができる。
【００４５】
また、上記の如く機械的に各種情報を組み合わせてソースコードを記述した場合、同じ時間間隔でコールされるべき関数を表すモジュールが記載されるべき範囲内においてさえ、同一のコンパイルスイッチが設定されている箇所が繰り返し出現する等、記述されるソースコードが冗長なものとなる傾向がある。このような冗長なソースコードにおいては、例えば、当該ソースコードを手動で修正しようとする場合等に、修正を施すべき箇所を見出すのが困難であり、結果として修正漏れ等、当該ソースコードのプログラム上の欠陥を誘発し易い傾向があるので、ソースコードは一般に簡潔であることが望ましい。
【００４６】
そこで、上記車輌制御プログラム開発システムは、上記コンパイルスイッチ整形手段（図示されていない）と同様に、同じ時間間隔でコールされるべき関数を表すモジュールが記載されるべき範囲内において、同一のコンパイルスイッチが繰り返し設定されている箇所を見出し、上記モジュールデータベース１に記録されている順序及び優先度に反しない限り、１つのコンパイルスイッチにまとめるコンパイルスイッチ統合手段（図示されていない）を更に有しているのがより望ましい。
【００４７】
また、本発明の更なる好ましい態様において、上記車輌制御プログラム開発システムは、当該車輌制御プログラムによって制御される各種装着部品の一覧表及び／又は当該装着部品に関する補足情報の一覧表を自動的に作成する、仕様書作成手段（図示されていない）を更に有していてもよい。
【００４８】
従来は、上記の如き当該車輌制御プログラムによって制御される各種装着部品の一覧表及び／又は当該装着部品に関する補足情報の一覧表は、当該車輌制御プログラムの設計当初に作成され、その後、当該プログラムの開発過程において何等かの修正が生じた場合には、これらの修正を反映させて修正されるのが一般的であったが、このように人的作業によって作成されたこれらの一覧表は、修正漏れや誤記等のヒューマンエラーを多く含みがちであった。しかしながら、当該車輌制御プログラム開発システムにおいては、これらの一覧表が上記の如く自動的に作成されるので、従来のようにヒューマンエラーが入り込む余地が少なく、信頼性の高いものを作成することができる。
【００４９】
更に、本発明の好ましい態様において、上記車輌制御プログラム開発システムは、上記車輌制御プログラムソースコード記述手段５によって記述されたソースコード６をコンパイル及びリンクして、当該車輌制御プログラムの実行形式のオブジェクトコードを作成する、車輌制御プログラムオブジェクトコード作成手段（図示されていない）を更に有していてもよい。
【００５０】
上記車輌制御プログラムオブジェクトコード作成手段（図示されていない）は、上記車輌制御プログラムソースコード記述手段５においてソースコード６を記述するのに使用されるプログラミング言語のための所謂「コンパイラ」であり、その仕組みについては当該技術分野において周知であるので、本明細書においては詳細には説明しない。
【００５１】
また、本発明の更なる好ましい態様において、上記車輌制御プログラム開発システムは、上記車輌制御プログラムオブジェクトコード作成手段（図示されていない）によって作成された実行形式のオブジェクトコードを、上記車輌制御装置に装着される記憶媒体に記憶させる、車輌制御プログラム記憶手段（図示されていない）を更に有していてもよい。当該車輌制御プログラム記憶手段（図示されていない）の例としては、上記オブジェクトコードを、車輌制御装置に装着されるロムに焼き付ける、車輌制御プログラム焼き付け手段が挙げられる。
【００５２】
尚、上記車輌制御プログラム開発システムを構成する上記モジュールライブラリー２、モジュールデータベース１、モジュール抽出手段４、メイン関数記録手段３、車輌制御プログラムソースコード記述手段５、コンパイルスイッチ整形手段（図示されていない）、仕様書作成手段（図示されていない）、車輌制御プログラムオブジェクトコード作成手段（図示されていない）、及び車輌制御プログラム記憶手段（例えば、車輌制御プログラム焼き付け手段）（図示されていない）のすべてが特定のハードウェア内に格納されている必然性は無く、例えば、インターネットやイントラネット等のネットワークを介して、これらの構成要素が分散されて配置されていてもよい。
【００５３】
また、本発明の更なる好ましい態様において、上記車輌制御プログラム開発システムは、上記仕様書作成手段（図示されていない）によって作成される、上記車輌制御プログラムによって制御される各種装着部品の一覧表及び／又は当該装着部品に関する補足情報の一覧表をネットワークを介して転送する機能をも有していてもよい。
【００５４】
更に、本発明の更なる好ましい態様において、上記車輌制御プログラム開発システムは、上記モジュールデータベース１に記録される各モジュールを特定するための情報、当該モジュールによって制御されるべき装着部品を特定するための情報、当該装着部品が装着されるべき車輌の仕向け先及び車輌駆動部品の種類を特定するための情報を含んでなる、モジュール情報、当該装着部品が装着されるべき車輌の仕向け先及び車輌駆動部品の種類に基づいて設定される、コンパイルスイッチ情報、並びに前記プログラム生成パターン情報、並びに上記車輌情報入力用ユーザーインターフェース（図示されていない）を利用して入力される、制御プログラムを開発しようとする車輌の仕向け先及び車輌駆動部品の種類及び装着部品を特定するための情報として、他のアプリケーション及び／又はシステムによって作成されたデータをインポートする機能をも有しているのが望ましい。かかる機能を有することにより、既存のデータを、より有効に当該システムに取り入れることができる。
【００５５】
更にまた、好ましい態様において、本発明は、上記車輌制御プログラム開発システムによって作成された実行形式のオブジェクトコードを記憶する、車輌制御装置に関する。かかる車輌制御装置は、本発明に係る車輌制御プログラム開発システムによって正確に記述されたソースコードに基づいて作成された実行形式のオブジェクトコードに従って作動するものであることから、上述の如く、プログラム上のヒューマンエラーが少なく、品質的にも信頼性の高いものである。
【００５６】
更に、本発明は、好ましい態様において、上記車輌制御プログラム開発システムによって作成された車輌制御プログラムのソースコード又は実行形式のオブジェクトコードを記憶する、記憶媒体に関する。記憶媒体とは、上述のロムに限定されるものではなく、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、光磁気ディスク、磁気テープ等の、当該技術分野において既知のあらゆる記憶媒体を包含する。
【００５７】
次に、図２を参照しながら、本発明に係る車輌制御プログラム開発方法について、詳細に説明する。
【００５８】
本発明に係る車輌制御プログラム開発方法は、
（１）車輌に装着される種々の装着部品から車輌制御装置に与えられる入力信号に対応して当該車輌制御装置から当該装着部品又は外部装置に返されるべき出力信号を定義する関数が、ソースコードとして記述されているモジュールが、車輌駆動部品の種類と車輌の仕向け先との組み合わせに対応してモジュールライブラリー２にそれぞれ記録される、モジュールライブラリー蓄積ステップ１０、
【００５９】
（２）前記モジュールライブラリー２に記録されている、各モジュールを特定するための情報、当該モジュールによって制御されるべき装着部品を特定するための情報、当該装着部品が装着されるべき車輌の仕向け先及び車輌駆動部品の種類を特定するための情報を含んでなる、モジュール情報、当該装着部品が装着されるべき車輌の仕向け先及び車輌駆動部品の種類に基づいて設定される、コンパイルスイッチ情報、並びにプログラム生成パターン情報が関連付けられてモジュールデータベース１に記録される、モジュールデータベース蓄積ステップ２０、
【００６０】
（３）制御プログラムを開発しようとする車輌の仕向け先及び車輌駆動部品の種類、並びに装着部品が、車輌情報入力用ユーザーインターフェースを利用して入力される、車輌情報入力ステップ３０、
【００６１】
（４）モジュール抽出手段４が、入力された仕向け先及び車輌駆動部品の種類並びに装着部品に基づいて、当該車輌の装着部品の各々を制御するためのモジュール情報を前記モジュールデータベース１から抽出する、モジュール抽出ステップ４０、
【００６２】
（５）車輌制御プログラムにおいて使用される各種関数をコールするメイン関数のソースコードがテンプレートとしてメイン関数記録手段３に記録される、メイン関数記録ステップ（図示されていない）、
【００６３】
（６）車輌制御プログラムソースコード記述手段５が、前記モジュール抽出手段によって抽出されたモジュール情報に基づいて、前記モジュールライブラリー２から取得した該当するモジュールのソースコードを、前記プログラム生成パターン情報に従って、前記コンパイルスイッチ情報に基づいて作成されるコンパイルスイッチと共に、前記メイン関数記録手段３に記録されたテンプレートの所定の箇所に挿入することによって、車輌制御プログラムのソースコード６を記述する、車輌制御プログラムソースコード記述ステップ５０、
を有することを特徴とする、車輌制御プログラム開発方法である。
【００６４】
好ましい態様において、モジュールデータベース蓄積ステップ２０において、車輌に装着される種々の装着部品から車輌制御装置に与えられる入力信号又は当該車輌制御装置から当該装着部品若しくは外部装置に返されるべき出力信号に関する情報以外の補足情報が、前記モジュールデータベース１に更に記録されてもよい。
【００６５】
尚、前記補足情報は、車輌の試験結果によって定まる適合値及び／又は外部装置による装着部品やセンサーの動作状況をモニターする機能を車輌制御装置に導入するか否かの指定に関する定数値を含んでなるのが望ましい。
【００６６】
前記車輌制御プログラムソースコード記述ステップ５０において前記コンパイルスイッチ情報に基づいて作成されるコンパイルスイッチは、前記車輌制御プログラムのソースコード６がコンパイルされる際に、コンパイラに与えられるスイッチに応じて、前記車輌制御プログラムのソースコード６の条件付きコンパイルが行われるために必要な条件文であるのが望ましい。
【００６７】
また、前記プログラム生成パターン情報は、前記モジュールが車輌制御プログラムにおいて実行されるべき時間間隔、順序、及び優先度に関する情報であるのが望ましい。
【００６８】
上記車輌制御プログラム開発方法は、前記モジュール抽出手段４によって抽出されたモジュール情報に基づいて前記モジュールライブラリー２及び前記モジュールデータベース１から得られない情報がある場合には、当該情報をユーザーが手動で入力するためのユーザーインターフェース（図示されていない）を提供して、ユーザーが手動で入力する当該情報を上記モジュール抽出手段４に格納する、情報手動入力ステップ（図示されていない）を更に有することができる。
【００６９】
また、上記車輌制御プログラム開発方法は、前記モジュール抽出手段４によって抽出されるべきモジュールが複数存在する場合に、当該複数のモジュールの中からユーザーが自由に特定のモジュールを選択するためのユーザーインターフェース（図示されていない）を提供して、ユーザーが手動で選択する特定のモジュールを特定するための情報を上記モジュール抽出手段４に格納する、モジュール手動選択ステップ（図示されていない）を更に有することができる。
【００７０】
更に、上記車輌制御プログラム開発方法は、前記モジュールデータベース１に記録されるモジュール情報が、モジュールの履歴情報を更に含んでなり、前記モジュール抽出手段４によって抽出されるべきモジュールが複数存在する場合に、当該複数のモジュールの各々の履歴情報を前記モジュールデータベース１から参照して、当該複数のモジュールから最新のモジュールを特定する、最新モジュール抽出ステップ（図示されていない）を更に有することができる。
【００７１】
また、前述の如く、上記車輌制御プログラム開発方法は、前記車輌制御プログラムソースコード記述手段５によって記述されたソースコード６を解析し、車輌制御プログラムの開発対象となる車輌のすべてのバリエーションを包含するコンパイルスイッチが設定されている箇所については当該コンパイルスイッチの設定を解除する、コンパイルスイッチ整形ステップ（図示されていない）を更に有することができる。
【００７２】
本発明の好ましい態様において、上記車輌制御プログラム開発方法は、当該車輌制御プログラムによって制御される各種装着部品の一覧表及び／又は当該装着部品の制御に関する補足情報の一覧表を自動的に作成する、仕様書作成ステップ（図示されていない）を更に有することができる。
【００７３】
本発明の更なる好ましい態様において、上記車輌制御プログラム開発方法は、前記車輌制御プログラムソースコード記述手段５によって記述されたソースコード６をコンパイル及びリンクして、当該車輌制御プログラムの実行形式のオブジェクトコードを作成する、車輌制御プログラムオブジェクトコード作成ステップ（図示されていない）を更に有することができる。
【００７４】
本発明の更なる好ましい態様において、上記車輌制御プログラム開発方法は、前記車輌制御プログラムオブジェクトコード作成ステップ（図示されていない）において作成された実行形式のオブジェクトコードを、前記車輌制御装置に装着されるロムに焼き付ける、車輌制御プログラム焼き付けステップ（図示されていない）を更に有することができる。
【００７５】
【発明の効果】
本発明に係る車輌制御プログラム開発システム及び当該システムを使用する車輌制御プログラム開発方法により、車輌制御プログラムを開発しようとする車輌の仕向け先、装着部品、及び補足情報に基づいて、当該車輌制御プログラムの開発に必要とされるモジュールを適切に集約し、当該車輌制御プログラムのソースコードを効率的に作成することができる。
【図面の簡単な説明】
【図１】本発明に係る車輌制御プログラム開発システムの構成を示す略図である。
【図２】本発明に係る車輌制御プログラム開発方法を示すフローチャートである。
【符号の説明】
１…モジュールデータベース
２…モジュールライブラリー
３…メイン関数記録手段
４…モジュール抽出手段
５…車輌制御プログラムソースコード記述手段
６…車輌制御プログラムソースコード
１０…モジュールライブラリー蓄積ステップ
２０…モジュールデータベース蓄積ステップ
３０…車輌情報登録ステップ
４０…モジュール抽出ステップ
５０…車輌制御プログラムソースコード記述ステップ
【図１】
2004026083.tif 000003
【図２】
2004026083.tif 000004