(57)【要約】【課題】  ソフトウェア開発に関し、特に仕様書をベースとしたソフトウェア開発において、該仕様書からシミュレーション時における入出力データの自動生成や検証及びファームウェアの自動生成を可能にするソフトウェア開発装置及び方法を提供する。【解決手段】  ソフトウェア開発装置は、仕様書ベースのタイムシーケンス図を作成し、該タイムシーケンス図の入力信号データを中間データ形式に変換するエディタと、該中間データ形式のデータを入力データとしてシミュレーションを実行するシミュレータと、を具備する。該中間データ形式のデータは、所定の時間間隔でサンプリングされた時系列データである。【選択図】      図４
2007052634.tif 000002
【特許請求の範囲】
【請求項１】
信号の時間変化を示すタイムシーケンス図を作成し、該タイムシーケンス図の入力信号データを中間データ形式に変換するエディタと、
該中間データ形式のデータを入力データとしてシミュレーションを実行するシミュレータと、
で構成することを特徴とするソフトウェア開発装置。
【請求項２】
さらに、該中間データ形式の第１の照合データとシミュレーション結果を該中間データ形式に変換した第２の照合データとを比較してシミュレーション結果を判定する照合手段を有し、
該エディタは、さらに該入力信号データに対応する該タイムシーケンス図の出力信号データを該中間データ形式に変換し、それを該第１の照合データとして該照合手段に与え、
該シミュレータは、該入力データのシミュレーション結果を該中間データ形式に変換し、それを該第２の照合データとして該照合手段に与える、
ことを特徴とする請求項１記載のソフトウェア開発装置。
【請求項３】
さらに、該シミュレータのソフトウェアを生成するソフトウェア生成手段を有し、
該エディタは、さらに該タイムシーケンス図から時間的制約事項を抽出し、その時間的制約事項をメタデータとして該ソフトウェア生成手段に与え、
該ソフトウェア生成手段は、該メタデータを参照して該時間的制約を含むソフトウェアを生成する、
ことを特徴とする請求項１又は２記載のソフトウェア開発装置。
【請求項４】
該中間データ形式のデータは、所定の時間間隔でサンプリングされた時系列データであることを特徴とする請求項１〜３のいずれか一つに記載のソフトウェア開発装置。
【請求項５】
信号の時間変化を示すタイムシーケンス図を作成し、該タイムシーケンス図の入力信号データを中間データ形式に変換するステップと、
該中間データ形式のデータを入力データとしてシミュレーションを実行するステップと、
を有することを特徴とするソフトウェア開発方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はソフトウェア開発に関し、特に仕様書をベースとしたソフトウェア開発において、該仕様書からシミュレーション時における入出力データの自動生成や検証及びファームウェアの自動生成を可能にするソフトウェア開発装置及び方法に関するものである。
【背景技術】
【０００２】
従来の仕様書をベースとしたソフトウェア開発において、仕様書に掲載される信号の時系列の動作を示すタイムシーケンス図（ある信号の時間変化を示す波形図）は、一般のワープロソフトウェア等により作成されており、設計者がそのタイムシーケンス図を見て、そこに示された入出力遅延時間等の時間的制限事項を満たすように手作業でソフトウェアのコーディングやその検査を行っていた。
【０００３】
図１には、従来の仕様書をベースにしたソフトウェア開発手法の大まかな流れを示している。ここでは、人手を介して仕様書から設計書へ、設計書からソースコードへ、とドキュメントを変換する作業が繰り返される。多くの場合は、フェーズ毎に異なる人が変換作業を行っていた。
【０００４】
近年、車両に搭載するＥＣＵ（Electrical Control Unit）等の特定機器を対象とした専用のシミュレーションシステムが増加している。そのため、メーカは、各メーカの機器やシステムに対して独自の擬似信号作成方法やシミュレーション結果の照合方法等を用いたシミュレーションを行っている（特許文献１及び２）。
【０００５】
シミュレーションには、コントローラ部をパーソナルコンピュータ（ＰＣ）などの汎用計算機で構成し、そのターゲット機に実機を使用するＨＩＬ（Hardware In the Loop）と、コントローラ部及びターゲット機の全てをＰＣ等の計算機上で仮想的にシミュレートするＳＩＬ（Software In the Loop）がある。
【０００６】
図２には、ＨＩＬシミュレーションシステム（ＨＩＬＳ）とＳＩＬシミュレーションシステム（ＳＩＬＳ）との簡単な比較を示している。
図２の（a）に例示するＨＩＬＳ１０は、ＰＣ１１と外部ラック等に搭載されるシミュレーション専用のハードウェア１２とで構成され、それらの間はワイヤで接続（ハーネス）されている。そして、実際にシミュレーションの対象となる実機（実ＥＣＵ）１３は、専用ハードウェア１２と接続される。一方、図２の（ｂ）に例示するＳＩＬＳ２０は、シミュレーションの対象となる仮想ＥＣＵを含めて、その全てがＰＣ２１のソフトウェア上に構築される。
【０００７】
【特許文献１】特開平６−６７９３１号公報
【特許文献２】特開平８−２６３１３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
従来の仕様書をベースにしたソフトウェア開発手法において、仕様書は最終的なソフトウェアの動作検証やソースコードの開発に直接用いられるものではなく、仕様→設計、設計→コーディング等の各フェーズにおいて人手による変換作業を必要としていた。その結果、フェーズ毎に異なる人が変換作業を行う場合、各フェーズに必要な変換情報が欠落したり、各フェーズで仕様書の誤った解釈がなされる等の問題が生じていた。
【０００９】
また、メーカが開発するシミュレーションシステムは、独自の擬似信号作成方法、計測信号の検証方法、データ形式等が採用されており、それを利用できるのは各メーカのシステムや特定機器に制限されるという問題があった。そこでは、仕様書のタイムシーケンス図とシミュレーション用データが別々に作成されており、仕様変更（システム構成や動作タイミングの変更、データ形式の変更・拡張、等）による再設計やその検証に多大な工数や費用が発生するという問題があった。
【００１０】
さらに、最終的なコーディングの段階で自動コード生成ツールを使用したとしても、上記と同様の理由から、仕様書ベースで記述された時間的制約がソースコードから欠落する等の問題が生じ、それがＳＩＬＳ、ＨＩＬＳ等のシミュレーション時や実機の動作時に判明すると、再コーディングによってさらに多くの工数や費用が発生するという問題があった。
【００１１】
そこで本発明の目的は、上記種々の問題点に鑑み、仕様書のタイムシーケンス図の作成を支援するエディタを用い、それによって個別のシミュレーションツールでも認識可能な中間データ形式の入出力データ及び検証データを発生させ、その中間データに基づいて個別のシミュレーションツールを動作させることで、個別シミュレーションツールの特定システムや機器に制限されずにその動作確認や自動検証を可能とするソフトウェア開発装置及びその方法を提供することにある。
【００１２】
また本発明の目的は、仕様書のタイムシーケンス図の作成を支援するエディタが該図から時間的制約事項を抽出して一般の自動コード生成器が利用できるメタデータに変換し、そのメタデータに基づいてターゲットシステム／機器の時間的制約を含むソースコードを発生させるソフトウェア開発装置を提供することにある。
【課題を解決するための手段】
【００１３】
本発明によれば、仕様書ベースのタイムシーケンス図を作成し、該タイムシーケンス図の入力信号データを中間データ形式に変換するエディタと、該中間データ形式のデータを入力データとしてシミュレーションを実行するシミュレータと、で構成するソフトウェア開発装置が提供される。
【００１４】
ソフトウェア開発装置は、さらに該中間データ形式の第１の照合データと第２の照合データとを比較してシミュレーション結果を判定する照合手段を有し、該エディタは、さらに該入力信号データに対応する該タイムシーケンス図の出力信号データを該中間データ形式に変換し、それを該第１の照合データとして該照合手段に与え、該シミュレータは、該入力データのシミュレーション結果を該中間データ形式に変換し、それを該第２の照合データとして該照合手段に与える。
【００１５】
ソフトウェア開発装置は、さらに該シミュレータのソフトウェアを生成するソフトウェア生成手段を有し、該エディタは、さらに該タイムシーケンス図から時間的制約事項を抽出し、その時間的制約事項をメタデータとして該ソフトウェア生成手段に与え、該ソフトウェア生成手段は、該メタデータを参照して該時間的制約を含むソフトウェアを生成する。該中間データ形式のデータは、所定の時間間隔でサンプリングされた時系列データである。
【００１６】
また、本発明によれば、信号の時間変化を示すタイムシーケンス図を作成し、該タイムシーケンス図の入力信号データを中間データ形式に変換するステップと、該中間データ形式のデータを入力データとしてシミュレーションを実行するステップとを有するソフトウェア開発方法が提供される。
【発明の効果】
【００１７】
本発明によれば、仕様書のタイムシーケンス図から直接的に入力データ及び検証用データが作成されるため、人手を介した変換エラーの発生が防止され且つシミュレーション動作の自動検証が可能となり、工数の短縮と品質の向上を図ることができる。その際、前記入力データ及び検証用データは、様々なシミュレーションシステムで利用可能な中間データ形式で作成されるため、その利用が特定のシミュレータツールに制限されない。また、ターゲットシステム／機器の仕様変更時にも容易に対応できる。
【００１８】
また、本発明によれば、仕様書のタイムシーケンス図から直接的にターゲットシステム／機器の時間的制約を含むソースコードが生成されるため、人手を介したコーディングエラーが防止でき、工数の短縮と品質の向上を図ることができる。その際、個別のシュミレーションツールに制限されない汎用言語（ＸＭＬ等）のメタデータを用いて時間的制約事項を記述するため、汎用の自動コード生成器で参照することができる。
【発明を実施するための最良の形態】
【００１９】
図３は、本発明を適用するシミュレーションシステムの一構成例を示したものであり、図２の（ａ）のＨＩＬＳ１０の具体的な構成例に相当する。そのため、図２との対応箇所には同じ引用符号を付している。なお、ＨＩＬＳ１０に代えて図２の（ｂ）のＳＩＬＳ２０を用いることも当然に可能である（図２の（ｂ）の対応関係参照）。
【００２０】
図３において、ＰＣ１１は、個別シミュレータ用の入力データを入力する入力チャネル情報部１１２と、個別シミュレータ用の出力データを出力する出力チャネル情報部１１３と、それらの入出力データをグラフィカルに表示する画像表示部１１１とを有している。
【００２１】
ＰＣ１１は、さらにＰＣ処理部（コントローラ、ユーザＩ／Ｆ）１１４を有しており、ＰＣ処理部１１４は、専用ハードウェア１２の専用処理部（コントローラ、Ｉ／Ｏ処理）１２１との間で個別シミュレータ用の出力データの転送処理を行い、またＰＣ上で稼動する波形エディタにより作成された入力データの中間データへ変換し、さらにシミュレーション結果である個別シミュレータ用の出力データを中間データに変換して、それを該波形エディタが作成した検証用の中間データと照合してシミュレーション結果の是非を判定する。
【００２２】
専用ハードウェア１２の専用処理部１２１は、ＰＣ１１のＰＣ処理部１１４との間で個別シミュレータ用の入出力データの送受信処理を行う。擬似信号発生部１２２は、専用処理部１２１を介してＰＣ１１から受信した個別シミュレータ用の入力データに基づいて実機１３を実際にシミュレーション動作させるための擬似信号を発生させる。信号計測部１２３は実機１３からのシミュレーション結果、例えば入力信号に対する出力データの遅延時間等、を計測し、それを個別シミュレータ用の出力データとして専用処理部１２１を介してＰＣ処理部１１４へ送信する。
【００２３】
本例の場合、実機１３の制御コンピュータ１３１では車載用ＥＣＵに関連するアプリケーションが動作しており、専用ハードウェア１２からの擬似信号に従って実際の制御対象１３２である実ＥＣＵ（又は仮想ＥＣＵ）の動作を制御し、その制御結果（シミュレーション結果）を専用ハードウェア１２に報告する。
【００２４】
図４及び５には、波形エディタを用いた仕様書のタイムシーケンス図に基づいて直接的に個別シミュレータ用の入出力データが作成され、そしてそのシミュレーション結果が自動検証されるまでの実施例を図式的に示している。ここで、タイムシーケンス図は、ある信号の時間的変化を示す波形図を例に示すが、信号の時間的変化が分かる図であれば何でもよい。
図４において、ＰＣ１１上で稼動する波形エディタ１１５では、タイムシーケンス図のアナログ入力信号Ａiが作成されており、波形エディタ１１５はそれを所定周期のサンプリングによって時系列のレベルデータ（中間データ）に変換する。この中間データは、ＰＣ処理部１１４内の個別シミュレータ用データコンバータ１１６で個別シミュレータ用の入力データに変換され、変換後のデータは入力チャネル情報部１１２へ入力される。
【００２５】
一方、図５では、前記タイムシーケンス図の前記アナログ入力信号Ａiと対をなすアナログ出力信号Ａoの中間データが、該波形エディタ１１５によって作成されており、その中間データは、シミュレーション結果の照合用データとしてＰＣ処理部１１４内の結果照合処理部１１７に格納される。個別シミュレータ用の出力データ部１１３からは、シミュレーション結果である個別シミュレータ用の出力データが出力されており、その出力データは前記個別シミュレータ用データコンバータ１１６で中間データに変換されてから該結果照合処理部１１７へ入力される。
【００２６】
結果照合処理部１１７では、シミュレーション結果とタイムシーケンス図に基づくアナログ出力信号Ａoとを中間データレベルで比較判定する。その判定結果は、入出力データの表示と併せて画像表示部１１１に表示される。
【００２７】
図６には、波形エディタを用い、デジタルデータのタイムシーケンス図から作成された中間データの一例を示している。波形エディタ１１５は、ここでもデジタルデータを所定周期でサンプリングすることでその時系列データ（中間データ）を生成する。以降の処理は、前述したアナログデータの場合と同様である。
【００２８】
上述した手法によれば、仕様に記述したタイムシーケンス図から直接シミュレーション用のデータを自動生成することができ、工数の短縮と品質の向上を図ることができる。その際、汎用データ形式の中間データを用いてシミュレーションを実行させることができることから、個別シミュレータに専用の入力ツールは不要となり、１つの波形エディタを使って慣れた環境での波形入力が可能となる。
【００２９】
また、仕様で記述したタイムシーケンス図から直接シミュレーション結果の自動検証用の時系列データが作成されるため、工数の短縮と品質の向上を図ることができる。この際にも、個別シミュレータに専用の結果検証用データ作成ツールを使用する必要がなくなり、１つの波形エディタを使って慣れた環境での自動検証が可能となる。
【００３０】
図７は、波形エディタを用い、仕様書のタイムシーケンス図からその時間的制約を含む実機１３用のソースコードを自動生成する一実施例を図式的に示したものである。図８には、図７の自動コード生成器１１８の一構成例を示している。
【００３１】
ここでは、波形エディタ１１５が、タイムシーケンス図の時間的制約に関する記述を抽出して対応するＸＭＬ形式のメタデータを生成している。図中のメタデータは、時間的制約事項として入力信号Ａに対する出力信号Ｂの遅延時間が５ｍｓ未満であることを記述している。波形エディタ１１５で作成されたメタデータは自動コード生成器１１８に入力され、自動コード生成器１１８はそれを参照して上記の時間的制約（遅延時間；５ｍｓ未満）を含む実機１３用のソースコードを生成する。なお、本例において自動コード生成器１１８は、ＰＣ１１上で動作するアプリケーションソフトウェアとして起動される。
【００３２】
既存の自動コード生成器１１８は、図８に示すように何らかのモデルから自動コードを生成するように設計されている。図中にはモデルの一例として状態遷移、物理式制御、タイムシーケンス、汎用操作言語（ＵＭＬ；Unified Modeling Language）が示されている。これを図７との関連で説明すると、先ず波形エディタ１１５は、タイムシーケンス図中に実際に記述されている「５ｍｓ未満」の時間的制約事項を抽出し、それを一般の自動コード生成機能が利用できるようにＸＭＬ（ＸＭＩ）形式の汎用的なメタデータに変換する。自動コード生成器１１８では、自動コード生成時にそのメタデータを参照して該時間的制約を含むソースコードを生成する。他に、波形エディタ１１５は、図６の中間データから時間的制約事項を導きだして、それをメタデータに変換するようにしてもよい。
【００３３】
図９には、自動コード生成器１１８の動作例を示している。
ここでは、関数作成部が、図７のメタデータを参照して条件蓄積部へその条件「ｆｕｎｃＡ  ４ｍｓ」を設定し、同時にその条件に適合する関数ｆｕｎｃＡを生成する。次に、タスク配置部が、該条件蓄積部の条件「ｆｕｎｃＡ  ４ｍｓ」を参照して、ｆｕｎｃＡを用いる「４ｍｓタスク」をソースコード中の適正な領域に配置する。
【００３４】
このように、時間的制約に適合するソースコードを生成することで、時間的エラーのないソースコードが自動生成される。本例のように、タイムシーケンス図の持つ重要な概念である「時間的制約」を、モデルベース開発手法や自動コード生成の分野に極自然に取り入れることで、操作感は従来と変わらないモデルベースのソフトウェア開発が可能となる。
【図面の簡単な説明】
【００３５】
【図１】従来の仕様書をベースにしたソフトウェア開発手法を示した図である。
【図２】ＨＩＬＳとＳＩＬＳの構成比較を示した図である。
【図３】ＨＩＬＳの具体的な構成例を示した図である。
【図４】個別シミュレータ用の入力データを作成する一構成例を示した図である。
【図５】中間データを用いた照合処理の一構成例を示した図である。
【図６】デジタルデータの中間データの一例を示した図である。
【図７】時間的制約を含むソースコードの自動生成の一構成例を示した図である。
【図８】自動コード生成器の一構成例を示した図である。
【図９】自動コード生成器の動作の一例を示した図である。
【符号の説明】
【００３６】
１０    ＨＩＬシミュレーションシステム
１１、２１    パーソナルコンピュータ
１２    専用ハードウェア
１３    実機
２０    ＳＩＬシミュレーションシステム
１１４    ＰＣ処理部
１１５    波形エディタ
１１８    自動コード生成器
１２１    専用処理部
【図１】
2007052634.tif 000003
【図２】
2007052634.tif 000004
【図３】
2007052634.tif 000005
【図４】
2007052634.tif 000006
【図５】
2007052634.tif 000007
【図６】
2007052634.tif 000008
【図７】
2007052634.tif 000009
【図８】
2007052634.tif 000010
【図９】
2007052634.tif 000011