(57)【要約】      （修正有）【課題】コンフィグツールによって生成されるコンフィグレーションコード部の検証漏れを防止する技術を提供する。【解決手段】ＣＰＵで実行させるプログラムを、アプリケーションコード２０とソフトウェアプラットフォームコード１８およびコンフィグレーションコード１６に分けて作成する工程において、コンフィグレーションコード１６を生成する際に使用するコンフィグレーションコード生成装置であって、コンフィグツール１５の内部処理をプログラム言語に変換し、コンフィグレーションコード１６として生成することを特徴とする。【選択図】図２
2017091233.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵで実行させるプログラムを、アプリケーションコードとソフトウェアプラットフォームコードおよびコンフィグレーションコードに分けて作成する工程において、コンフィグレーションコードを生成する際に使用するコンフィグレーションコード生成装置であって、
コンフィグツールの内部処理をプログラム言語に変換し、コンフィグレーションコードとして生成することを特徴とするコンフィグレーションコード生成装置。
【請求項２】
請求項１において、内部処理をプログラム言語のコメント文に変換し、コンフィグレーションコードとして生成することを特徴とするコンフィグレーションコード生成装置。
【請求項３】
請求項１において、内部処理に判定レベルを設け、判定レベルに応じてプログラム言語に変換し、コンフィグレーションコードとして生成することを特徴とするコンフィグレーションコード生成装置。
【請求項４】
ＣＰＵで実行させるプログラムを、アプリケーションコードとソフトウェアプラットフォームコードおよびコンフィグレーションコードに分けて作成する工程において、コンフィグレーションコードを生成する際に使用するコンフィグレーションコード生成装置であって、
コンフィグツールで生成したコメントをプログラム言語のコメント文に変換し、コンフィグレーションコードとして生成することを特徴とするコンフィグレーションコード生成装置。
【請求項５】
請求項４において、コンフィグツール使用ユーザー設定のコメントをプログラム言語のコメント文に変換し、コンフィグレーションコードとして生成することを特徴とするコンフィグレーションコード生成装置。
【請求項６】
請求項４において、内部処理に対するコメントをプログラム言語のコメント文に変換し、コンフィグレーションコードとして生成することを特徴とするコンフィグレーションコード生成装置。
【請求項７】
請求項４において、内部処理に判定レベルを設け、判定レベルに応じてプログラム言語のコメント文に変換し、コンフィグレーションコードとして生成することを特徴とするコンフィグレーションコード生成装置。
【請求項８】
請求項４において、コンフィグツールで生成したコメントに対し、ユーザー指定のコメントおよび内部処理に対するコメントを識別するためのコメント文をプログラム言語のコメント文に変換し、コンフィグレーションコードとして生成することを特徴とするコンフィグレーションコード生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンフィグレーションコード生成装置に関する。
【背景技術】
【０００２】
車載用ＥＣＵ（electronic control unit）の開発においては、当該ＥＣＵが搭載するＣＰＵで実行させるプログラムを、ソフトウェアプラットフォームとアプリケーションに分けて作成する方法が採用されている。さらにソフトウェアプラットフォームは、当該ＥＣＵのハードウェアに強く依存しているため、ソフトウェアプラットフォーム部を共通部分とハードウェア依存部分に分け、ハードウェア依存部分をコンフィグレーションコードとして開発する方法が採用されている。なお、コンフィグレーションコードは、ソフトウェアプラットフォームの一部であると捉えてもよいし、ソフトウェアプラットフォームとは別のものと捉えても良い。このコンフィグレーションコードを生成する方法として特許第４７２５５５号公報（特許文献１）に記載の技術がある。この公報には、「コンフィグレーションコードは、通常のコンピュータにおいて実行されるプログラムであるコンフィグツールによって実行される」、また「車載ＥＣＵに搭載されるＣＰＵのためのコンフィグレーションコードの開発において、コンフィグレーションコードの作成に必要な情報のユーザーによる入力作業を軽減することを目的とする」という記載がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４７２５５５７号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１では、コンフィグレーションコード作成時の作業を軽減することを目的としているが、本発明では、コンフィグツールによって生成されるコンフィグレーションコード部の検証漏れを防止する技術を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明は、ＣＰＵで実行させるプログラムを、アプリケーションコードとソフトウェアプラットフォームコードおよびコンフィグレーションコードに分けて作成する工程において、コンフィグレーションコードを生成する際に使用するコンフィグレーションコード生成装置であって、コンフィグツールの内部処理をプログラム言語に変換し、コンフィグレーションコードとして生成することを特徴とする。
【発明の効果】
【０００６】
本発明によれば、コンフィグツールによって生成されるコンフィグレーションコード部の検証漏れ防止が可能となる。上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【０００７】
【図１】コンフィグレーションコード生成の処理手順の実施の形態を示すフローチャート。
【図２】コンフィグレーションコード生成の手順を概略的に示したブロック図。
【図３】コンフィグツールの設定メニューを示した図。
【図４】コンフィグツールの設定情報を示した図。
【図５】実施例１に係るコンフィグレーションコード生成装置により出力されたコンフィグレーションコードのプログラムリスト。
【図６】実施例２に係るコンフィグレーションコード生成装置により出力されたコンフィグレーションコードのプログラムリスト。
【図７】実施例３に係るコンフィグレーションコード生成装置により出力されたコンフィグレーションコードのプログラムリスト。
【発明を実施するための形態】
【０００８】
以下、実施例を用いて説明する。
【実施例１】
【０００９】
図１は、本発明によるコンフィグレーションコード生成の処理手順の実施の形態を示すフローチャートである。
【００１０】
図２は、コンフィグレーションコード生成の方式を概略的に示した図である。
【００１１】
ソフトウェアの開発においては、ＣＰＵで実行するプログラムを、コンフィグレーションコード１６とソフトウェアプラットフォームコード１８およびアプリケーションコード２０に分けて生成する方法が採用されている。
【００１２】
ソフトウェア開発の例として全体仕様書１０をコンフィグレーションコード生成に係る個別仕様書１１、ソフトウェアプラットフォームコード生成に係る個別仕様書１２、アプリケーションコード生成に係る個別仕様書１３に分割し、それぞれパート毎にソフトウェアを開発する方法がある。
【００１３】
コンフィグレーションコード１６は、コンピュータ１４において、実行されるプログラムであるコンフィグツール１５の処理によって生成される。このコンフィグレーションコード１６は、全体仕様書１０および個別仕様書１１に記載された要求仕様を満たす必要がある。
【００１４】
ソフトウェアプラットフォームコード１８は、コンピュータ１７において、またアプリケーションコード２０はコンピュータ１９において、それぞれのプログラマーがＣ言語等のプログラム言語を用いてプログラミングすることで作成される。
【００１５】
次に、それぞれのコードが統合され、コンピュータ２１に入力されプログラム解析２２が実行される。プログラム解析にはコードレビューを含むものとする。なお、本実施例ではコードを統合してからプログラム解析を実施しているが、統合前に個別に実施することもできる。
【００１６】
コンピュータ２３では、全てのコードをコンパイル２４し、リンク２５することで実行ファイル２６が生成される。
【００１７】
コンピュータ２７ではテスト２８が実行され、テスト結果２９が出力される。テスト結果２９においてＮＧ項目が存在する場合は、全体仕様書１０、個別仕様書１１〜１３の内容の再確認、あるいはコンフィグレーションコード１６、ソフトウェアプラットフォームコード１８、アプリケーションコード２０のコード再生成を実施する場合がある。
【００１８】
ソフトウェア開発においてＮＧ項目が検出されるのは、通常プログラム解析２２あるいはテスト２８実行時であるが、テスト２８による検出の場合、再度実施すべき工程が多くなることから、プログラム解析２２時に検出されることが望ましい。
【００１９】
ところが、コンフィグレーションコード１６は、コンフィグツール１５の内部処理によって生成されるため、全体仕様書１０および個別仕様書１１の要求内容（例えば、パラメータの値の範囲や設定ルールなど）がコンフィグレーションコード１６に全て反映されるわけではない。そのため、コンフィグレーションコード１６のプログラム解析２２時に全体仕様書１０および個別仕様書１１の要求内容が全て対応されているかの確認が困難である。
【００２０】
図３は、コンフィグツール１５の設定メニューの例を示した図である。図４は、コンフィグツール１５の設定情報の例を示した図である。図３および図４を用いて、本実施例で用いたデータ設定について説明する。
【００２１】
コンフィグツール１５の設定メニューは、パラメータ設定メニュー３０と出力設定メニュー３１で構成されており、本実施例では説明を簡略化する為にパラメータ設定メニュー３０のパラメータとしてはパラメータＡとパラメータＢの２つとしている。パラメータ設定メニュー３０では、パラメータＡ、パラメータＢそれぞれの値の入力およびコメント（１）を入力する。また、出力設定メニュー３１では、内部処理出力のＯＮ／ＯＦＦ選択、判定レベルの１／２／ALL選択、コメント（１）出力（ユーザー設定）のＯＮ／ＯＦＦ選択、コメント（２）出力（ツール内部判定）のＯＮ／ＯＦＦ選択が可能となっている。なお、ＯＮ／ＯＦＦ選択および判定レベル選択時の動作は、図１のフローチャートを用いて後述する。
【００２２】
図４は、図３のパラメータ設定メニュー３０と出力設定メニュー３１で入力されたパラメータ設定およびコンフィグツール１５の内部判定情報を示したものである。コンフィグ情報４０は、パラメータ設定メニュー３０において、パラメータＡの値が“１”、パラメータＢの値が“１０”とした場合の例である。コンフィグ情報４１は、パラメータ設定メニュー３０において、パラメータＡのコメント（１）を“ID001-Parameter_A”、パラメータＢのコメント（１）を“ID002-Parameter_B”とした場合の例である。
【００２３】
コンフィグ情報４２はパラメータＡおよびパラメータＢの設定範囲を示したものであり、通常は全体仕様書１０あるいは個別仕様書１１の要求内容から抽出される。
【００２４】
コンフィグ情報４３は、パラメータＡとパラメータＢの相互関係を示したものであり、通常は全体仕様書１０あるいは個別仕様書１１の要求内容から抽出される。
【００２５】
本実施例ではコンフィグ情報４２およびコンフィグ情報４３の論理式をコンフィグツール１５の内部判定の例とした。
【００２６】
また、判定レベル４４は、個々のパラメータで独立の設定条件であれば判定レベル“１”、２つ以上のパラメータに依存する設定条件であれば判定レベル“２”とした。ただし、判定レベル設定は２つに限定されるものではなく、判定レベル設定条件もパラメータ依存の有無に限定されるわけではない。
【００２７】
コンフィグ情報４５は、コンフィグツール１５内部で生成するコメントであり、パラメータＡについて、コメント（２）を“A value check”、およびパラメータＢについて、コメント（２）を“B value check”とした場合の例である。
【００２８】
コンフィグ情報４６は、コンフィグツール１５内部で生成するコメントであり、判定レベル“２”のパラメータについて、コメント（２）を“A and B compare”とした場合の例である。
【００２９】
上記の通り、本実施例におけるコメント（２）は、コンフィグツール１５内部で生成するコメントであり、コメント（１）にようにコンフィグツール１５使用ユーザーが入力するわけではない。
【００３０】
図１のフローチャートに基づく動作は以下の通りである。
【００３１】
ステップ１００：図４に示すコンフィグ情報４０の設定を行う。なお、このコンフィグ情報４０の内容は、図３のパラメータ設定メニュー３０によりコンフィグツール１５使用ユーザーが入力する。
【００３２】
ステップ１０２：コンフィグツール１５の内部処理をコンフィグレーションコード１６として出力するかを判定する。内部処理出力は、図３の出力設定メニュー３１によりコンフィグツール１５使用ユーザーが選択する。ＹＥＳならばステップ１０４に移る。ＮＯならばステップ１１２に移る。
【００３３】
ステップ１０４：コンフィグツール１５の内部処理をコンフィグレーションコード１６として出力する場合に、判定レベルを確認する。判定レベルは、図３の出力設定メニュー３１によりコンフィグツール１５使用ユーザーが選択する。判定レベルが“１”ならばステップ１０６に移る。判定レベルが“２”ならばステップ１０８に移る。判定レベルが“ALL”ならばステップ１１０に移る。
【００３４】
ステップ１０６：図４に示すコンフィグ情報４２の設定を行う。
【００３５】
ステップ１０６：図４に示すコンフィグ情報４３の設定を行う。
【００３６】
ステップ１１０：図４に示すコンフィグ情報４２およびコンフィグ情報４３の設定を行う。
【００３７】
ステップ１１２：コンフィグレーションコード１６にコメント（１）を出力するかを判定する。コメント（１）の出力有無は、図３の出力設定メニュー３１によりコンフィグツール１５使用ユーザーが選択する。ＹＥＳならばステップ１１４に移る。ＮＯならばステップ１１６に移る。
【００３８】
ステップ１１４：図４に示すコンフィグ情報４１の設定を行う。
【００３９】
ステップ１１６：コンフィグレーションコード１６にコメント（２）を出力するかを判定する。コメント（２）有無は、図３の出力設定メニュー３１によりコンフィグツール１５使用ユーザーが選択する。ＹＥＳならばステップ１１８に移る。ＮＯならばステップ１２６に移る。
【００４０】
ステップ１１８：コンフィグツール１５内部処理をコンフィグレーションコード１６として出力する場合に、判定レベルを確認する。判定レベルは、図３の出力設定メニュー３１によりコンフィグツール１５使用ユーザーが選択する。判定レベルが“１”ならばステップ１２０に移る。判定レベルが“２”ならばステップ１２２に移る。判定レベルが“ALL”ならばステップ１２４に移る。
【００４１】
ステップ１２０：図４に示すコンフィグ情報４５の設定を行う。
【００４２】
ステップ１２２：図４に示すコンフィグ情報４６の設定を行う。
【００４３】
ステップ１２４：図４に示すコンフィグ情報４５およびコンフィグ情報４５の設定を行う。
【００４４】
ステップ１２６：ステップ１００、ステップ１０６、ステップ１０８、ステップ１１０、ステップ１２０、ステップ１２２、ステップ１２４で設定したコンフィグ情報４０〜４３、４５、４６を基にコンフィグレーションコード１６の出力を実行する。
【００４５】
図５は本実施例により生成されたコンフィグレーションコード１６のプログラムリストの例である。なお、本実施例ではプログラムリストへの変換時にＣ言語プリプロセッサを使用した例を示している。
【００４６】
プログラムリスト４０Ａ、プログラムリスト４０Ｂは、コンフィグ情報４０をプログラムリストへ変換したものである。同様にプログラムリスト４１Ａ、プログラムリスト４１Ｂは、コンフィグ情報４１をプログラムリストへ変換したもの、プログラムリスト４２Ａ、プログラムリスト４２Ｂ、プログラムリスト４２Ｃは、コンフィグ情報４２をプログラムリストへ変換したもの、プログラムリスト４３Ａ、プログラムリスト４３Ｂは、コンフィグ情報４３をプログラムリストへ変換したもの、プログラムリスト４５Ａ、プログラムリスト４５Ｂは、コンフィグ情報４５をプログラムリストへ変換したもの、プログラムリスト４６Ａは、コンフィグ情報４６をプログラムリストへ変換したものである。
【００４７】
コンフィグツール１５から生成される情報として、プログラムリスト４０Ａおよびプログラムリスト４０Ｂは必須であるが、これらの情報のみでは、プログラム解析時に情報が不足していた。本発明によるコンフィグレーションコード１６生成方式によれば、コンフィグツール１５の内部処理（各パラメータの判定条件など）やコメントをコンフィグレーションコード１６上に出力することができ、プログラム解析２２時に有効な情報となる。
【００４８】
また、コンフィグツール１５の内部判定条件をテスト条件とすることで、自動テストにも適用が容易である。
【実施例２】
【００４９】
本実施例は、実施例１におけるコンフィグ情報の一部を変更するものである。実施例１とは異なるステップのみ、以下に示す。
【００５０】
ステップ１０６：図４に示すコンフィグ情報４２をコメント文として設定を行う。
【００５１】
ステップ１０８：図４に示すコンフィグ情報４３をコメント文として設定を行う。
【００５２】
ステップ１１０：図４に示すコンフィグ情報４２およびコンフィグ情報４３をコメント文として出力設定を行う。
【００５３】
図６は本実施例に基づき生成されたコンフィグレーションコード１６のプログラムリストである。なお、図６は図５に対しての変更部分のみ抜粋したものである。プログラムリスト４２Ｄ、プログラムリスト４２Ｅ、プログラムリスト４２Ｆ、プログラムリスト４３Ｃ、プログラムリスト４３Ｄは、本実施例におけるコンフィグ情報４２、４３をプログラムリストに変換したものである。
【００５４】
このように変更することにより、プログラムの有効行数やサイズを抑制することができる。
【実施例３】
【００５５】
本実施例は、実施例１におけるコンフィグ情報に追加情報を付加するものである。
【００５６】
実施例１とは異なるステップのみ、以下に示す。
【００５７】
ステップ１１４：図４に示すコンフィグ情報４１のコメント（１）に対し、追加のコメントを付加する。コンフィグ情報４１は図３のパラメータ設定３０のコメント（１）入力であり、コンフィグツール１５使用ユーザーが入力するため、本実施例では、一例として、“/＊ User comment ＊/”のコメント文を付加する。
【００５８】
ステップ１２０：図４に示すコンフィグ情報４５のコメント（２）に対し、追加のコメントを付加する。コンフィグ情報４５は、ツール内部で生成するコメント（２）であるため、本実施例では、一例として、“/＊ Auto comment ＊/” のコメント文を付加する。
【００５９】
ステップ１２２：図４に示すコンフィグ情報４６のコメント（２）に対し、追加のコメントを付加する。コンフィグ情報４６は、コンフィグツール１５内部で生成するコメント（２）、かつ判定レベル２であるため、本実施例では、“/＊ Auto comment level2 ＊/” のコメント文を付加する。
【００６０】
ステップ１２４：図４に示すコンフィグ情報４５および４６のコメント（２）に対し、追加のコメントを付加する。本実施例では、ステップ１２０およびステップ１２２と同様に、“/＊ Auto comment ＊/”および “/＊ Auto comment level2 ＊/” のコメント文を付加する。
【００６１】
図７は本実施例に基づき生成されたコンフィグレーションコード１６のプログラムリストである。なお、図７は図５に対しての変更部分のみ抜粋したものである。プログラムリスト４１Ｃ、プログラムリスト４１Ｄ、プログラムリスト４５Ｃ、プログラムリスト４５Ｄ、プログラムリスト４６Ｂは、本実施例におけるコンフィグ情報４１、４５、４６をプログラムリストに変換したものである。
【００６２】
このように変更することにより、プログラム解析２２時にコンフィグツール１５にて自動的に付加されたコメントを識別することが可能となり、プログラム解析２２が容易になる。
【００６３】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。
【符号の説明】
【００６４】
１５…コンフィグツール、１６…コンフィグレーションコード、１８…ソフトウェアプラットフォームコード、２０…アプリケーションコード。
【図１】
2017091233.tif 000003
【図２】
2017091233.tif 000004
【図３】
2017091233.tif 000005
【図４】
2017091233.tif 000006
【図５】
2017091233.tif 000007
【図６】
2017091233.tif 000008
【図７】
2017091233.tif 000009