(57)【特許請求の範囲】
【請求項１】
コンピュータにより、デジタル回路シミュレータに表示される波形とソフトウェア開発支援システムで作成されたソフトウェアの設計図とを連携させる方法であって、
前記デジタル回路シミュレータに表示された波形中、ユーザが特定した箇所の位置情報を取得するステップと、
前記位置情報に応じたソフトウェア情報としてファイル名と行番号とを取得するステップと、
前記ソフトウェア情報を前記ソフトウェア開発支援システムの読み込み可能な連携ファイルとするステップと、
前記ソフトウェア開発支援システムが、前記連携ファイルを読み込んで前記ファイル名と前記行番号とを抽出し、該ファイル名に応じたファイルオブジェクトを取得するステップと、
前記ファイルオブジェクトからソフトウェアを作成し、該作成されたソフトウェアの前記行番号に応じたソフトウェアを設計した設計部品を取得し、取得された設計部品の設計図を取得するステップと、
を有することを特徴とするデジタル回路シミュレータの波形とソフトウェア設計図との連携方法
【請求項２】
前記設計図を外部出力装置に表示するステップと、
前記設計部品を前記外部出力装置に強調表示するステップと、
をさらに有することを特徴とする請求項１記載のデジタル回路シミュレータの波形とソフトウェア設計図との連携方法。
【請求項３】
前記ソフトウェア開発支援システムが、前記設計図におけるユーザの選択個所に応じた出力ソフトウェアを作成し、作成された出力ソフトウェアのファイル名および行番号が記述された連携ファイルを作成するステップと、
前記デジタル回路シミュレータが、前記ソフトウェア開発支援システムで作成した連携ファイルを読み込んで、該連携ファイルのファイル名および行番号に応じたシミュレーション波形を特定するステップと、
をさらに有することを特徴とする請求項１または２のいずれか１項に記載のデジタル回路シミュレータの波形とソフトウェア設計図との連携方法。
【請求項４】
請求項１〜３のいずれか１項に記載の各ステップをコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル回路シミュレータに表示された波形と、ソフトウェア開発支援システムで作成されたソフトウェアの設計図とを連携させる方法およびプログラムに関する。
【背景技術】
【０００２】
産業機器や家電製品などに内蔵されるシステムで動作する組み込みソフトウェアの開発では、従来から制御演算の設計に設計図としてブロック図や状態遷移図、ＵＭＬのアクティビティ図が使用されている。例えばブロック図の場合には、入出力データを表すブロックや加減算などの演算を表すブロックを図面上に配置し、該ブロック間を線で結んでデータの入力出力を表現している。
【０００３】
この組み込みソフトウェアの開発支援システムとしては、特許文献１，２が公知となっている。この開発支援システムは、ソフトウェアの設計図を作成し、作成された設計図をシミュレーションにより動作確認し、動作確認した設計図からソフトウェアが自動生成することができる。
【０００４】
図１（ａ）〜（ｃ）に基づき一例を説明する。図１（ａ）のブロック図には、二つの入力データ「ＩＮ１」と「ＩＮ２」とが示され、両入力データの和「ＩＮ１＋ＩＮ２」が出力データ「ＯＵＴ」に代入される。このブロック図に対して、図１（ｂ）に示すように、入力データ「ＩＮ１，ＩＮ２」に初期値をそれぞれ「ＩＮ１＝２，ＩＮ２＝３」と設定すれば、シミュレーションにより出力データ「ＯＵＴ＝５（２＋３）」と動作確認を行える。また、図１（ｃ）に示すように、ブロック図から例えばＣ言語のソフトウェアが自動生成される。
【０００５】
一方、シミュレーションシステムとしては、特許文献３が公知となっている。この特許文献３のハードウェア／ソフトウェア協調検証システム１によれば、図２に示すように、実機のハードウェアで動作する実機用ソフトウェア２を、実機のＣＰＵと等価な仮想ハードウェア（ＣＰＵモデル３ａ）３で正確にシミュレーションすることができる。
【０００６】
このシミュレーションの結果としての波形は、デジタル回路シミュレータ４に表示される。このとき非特許文献１の組み込み用協調試験システムによれば、前記波形からアドレスを介してＣ言語ソフトウェアの該当部分表示することができる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００９−１９３１８１
【特許文献２】特開２００９−１９３１８２
【特許文献３】特開２０１３−２２８８３７
【非特許文献】
【０００８】
【非特許文献１】明電時報  通巻３３８号  ２０１３  Ｎｏ．１  “４．１  組み込み用強調試験システム”
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１，２の組み込みソフトウェア開発システムや非特許文献１の組み込み用協調試験システムには、以下のような問題があった。
【００１０】
すなわち、特許文献１，２の組み込みソフトウェア開発システムで自動生成した組み込みソフトウェアを、前記協調検証システム１で実機の動作をシミュレーションする際には、ハードウェア専用のコンパイラで該組み込みソフトウェアコンパイルし、その結果として作成されたオブジェクトファイルをＣＰＵモデル３ａで実行し、シミュレーション結果をデジタル回路シミュレータ４に波形として表示する。
【００１１】
そして、開発者（ユーザ）は、デジタル回路シミュレータ４の波形を目視で確認し、実機の動作に問題のある箇所（例えば処理時間が要求時間内に終了しないなど）を発見した場合、非特許文献１の組み込み用協調試験システムを証して、図３のＳ０１に示すように、発見した波形に該当するＣ言語ソフトウェアの場所を特定する。
【００１２】
さらに開発者は、Ｓ０２に示すように、前記組み込み用協調試験システムで特定されたソフトウェアに該当する設計図を、前記組み込みソフトウェア開発支援システムによって手作業で特定する。
【００１３】
その後に開発者は、手作業で特定した設計図を修正し、前記ソフトウェア開発支援システムによりシミュレートおよびソフトウェア自動生成を実行し、Ｓ０３に示すように、さらに前記協調検証システム１で再シミュレーションする。
【００１４】
ところが、開発者は前記一連の作業を、所望のシミュレート結果が得られるまで繰り返さなければならない。このとき開発者は、前記ソフトウェア開発支援システムを使用して問題のあるソフトウェアの設計図および設計部品を特定するものの、かかる作業に多くの手間がかかり、すぐに設計図などを修正できず、作業効率が悪化するおそれがある。
【００１５】
本発明は、このような従来の問題を解決するためなされ、開発者がデジタル回路シミュレータに表示されている波形から実機の動作に問題がある箇所を発見した場合に設計図および設計部品を簡単な操作で特定可能とし、作業効率を改善することを解決課題としている。
【課題を解決するための手段】
【００１６】
本発明の一態様は、デジタル回路シミュレータに表示される波形とソフトウェア開発支援システムで作成されたソフトウェアの設計図とを連携させる方法であって、前記デジタル回路シミュレータに表示された波形中、ユーザが特定した箇所の位置情報を取得するステップと、前記位置情報に応じたソフトウェア情報としてファイル名と行番号とを取得するステップと、前記ソフトウェア情報を前記ソフトウェア開発支援システムの読み込み可能な連携ファイルとするステップと、前記ソフトウェア開発支援システムが、前記連携ファイルを読み込んで前記ファイル名と前記行番号とを抽出し、該ファイル名に応じたファイルオブジェクトを取得するステップと、前記ファイルオブジェクトからソフトウェアを作成し、該作成されたソフトウェアの前記行番号に応じたソフトウェアを設計した設計部品を取得し、取得された設計部品の設計図を取得するステップと、を有する。
【００１７】
本発明の他の態様は、前記設計図を外部出力装置に表示するステップと、前記設計部品を前記外部出力装置に強調表示するステップと、を有する。また、本発明のさらに他の態様は、前記ソフトウェア開発支援システムが、前記設計図におけるユーザの選択個所に応じた出力ソフトウェアを作成し、作成された出力ソフトウェアのファイル名および行番号が記述された連携ファイルを作成するステップと、前記デジタル回路シミュレータが、前記連携ファイルを読み込んで前記ファイル名および行番号に応じたシミュレーション波形を特定するステップと、を有する。
【００１８】
なお、本発明は、前記各ステップをコンピュータに実行させるプログラムの態様とすることもできる。
【発明の効果】
【００１９】
本発明によれば、開発者がデジタル回路シミュレータに表示されている波形から実機の動作に問題がある箇所を発見した場合に簡単な操作で設計図および設計部品を特定でき、修正作業などが容易となる。この点で作業効率を改善することができる。
【図面の簡単な説明】
【００２０】
【図１】（ａ）はブロック図の一例を示す図、（ｂ）は（ａ）のブロック図の動作確認例を示す図、（ｃ）は（ａ）のブロック図のソフトウェア生成例を示す図。
【図２】シミュレーション図。
【図３】シミュレーション波形からソフトウェア設計図を特定する従来手法の説明図。
【図４】本発明の実施形態に係る連携方法を実行するデジタル回路シミュレータおよびソフトウェア開発支援システムの機能構成図。
【図５】実施例１の説明図。
【図６】実施例２の説明図。
【発明を実施するための形態】
【００２１】
以下、本発明の実施形態に係る連携方法を説明する。この連携方法は、コンピュータに実装されたデジタル回路シミュレータと、組み込みソフトウェア開発支援システムとの間で実行される。
【００２２】
前記ソフトウェア開発支援システムは、特許文献１，２と同じく、組み込みソフトウェアの設計図を作成し、作成された設計図をシミュレーションにより動作確認し、動作確認した設計図から前記ソフトウェアが自動生成する。
【００２３】
この組み込みソフトウェアを特許文献３のハードウェア／ソフトウェア協調検証システムを用いてシミュレートし、非特許文献１と同様にシミュレーションの波形が前記デジタル回路シミュレータに表示される。
【００２４】
このとき前記連携方法によれば、デジタル回路シミュレータに表示された波形とソフトウェア開発支援システムで作成されたソフトウェア設計図とが連携される。
【００２５】
≪機能構成≫
図４に基づき前記連携方法を実行するデジタル回路シミュレータおよび組み込みソフトウェア開発支援システムの機能構成を説明する。このデジタル回路シミュレータ１０は、波形カーソル位置取得機能部１３，カーソル位置ソフトウェア情報取得機能部１４，連携ファイル処理機能部１５を実装する。
【００２６】
一方、前記ソフトウェア開発支援システム１２は、連携ファイル処理機能部１６，対象ファイル取得機能部１７，仮ソフトウェア自動生成機能部１８，対象設計部品取得機能部１９，設計情報ＤＢ２０，対象設計図取得機能部２１，対象設計図表示機能部２２，対象設計部品強調表示機能部２３を実装する。
【００２７】
前記各部１３〜２３は、例えばＣＰＵ,記憶装置（ＲＡＭ，ＲＯＭ，ＨＤＤ，ＳＳＤ）などのハードウェアリソースと、ソフトウェアリソース（ＯＳ，アプリケーションなど）の協働の結果としてコンピュータに実装されている。ここでは前記ＤＢ２０は前記記憶装置に構築されている。
【００２８】
具体的には前記ＤＢ２０には、前記ソフトウェア開発支援システム１２が備える既存のデータベースを利用でき、組み込みソフトウェアの設計から生成までの過程で生じた各種の情報が格納されている。例えば組み込みソフトウェアの設計図（例えばブロック図や状態遷移図など），ファイルオブジェクト，ソフトウェア部品およびその設計部品などの情報が格納されている。
【００２９】
波形カーソル位置取得機能部３は、デジタル回路シミュレータ１０の波形画面から現在のカーソルの位置情報を取得する。また、前記ソフトウェア情報取得機能部１４は、波形カーソル位置取得機能部３により取得された位置情報に応じたソフトウェア情報をデジタル回路シミュレータ１０から取得する。ここで取得するソフトウェア情報は、少なくともソフトウェアのファイル名と行番号があればよく、他の情報を含んでいてもよいものとする。
【００３０】
連携ファイル処理機能部１５，１６は、デジタル回路シミュレータ１０と前記ソフトウェア開発支援システム１２とを連携させるためのファイル、即ち連携ファイルＦの作成と読込とを実行する。この前記両処理機能部１５，１６は、一方が作成した連携ファイルＦを他方が読み込み、他方が作成した連携ファイルＦを一方が読み込むという相互関係を有している。
【００３１】
この連携ファイルＦは、前記両者１０，１２が読み込み可能なファイル形式で作成され、ソフトウェア情報のファイル名と行番号とを含んでいればよい。この連携ファイルの一例としては、テキスト形式においてファイル名と行番号とを、それぞれタイトルと値とを等号で結んで記述することができる。なお、図４には、連携ファイル処理機能部１５が連携ファイルＦを作成し、作成された連携ファイルＦを連携ファイル処理機能部１６で読み込むパターンが示されている。
【００３２】
対象ファイル取得機能部１７は、連携ファイル処理機能部１６で読み込まれた連携ファイルＦに記述されたファイル名のファイルオブジェクトを前記ＤＢ２０から取得する。また、仮ソフトウェア自動生成機能部１８は、対象ファイル取得機能部１７で取得したファイルオブジェクトからメモリ（ＲＡＭ）上にソフトウェアを作成する（実際のファイルを作成しない。）
対象設計部品取得機能部１９は、仮ソフトウェア自動生成機能部１８で作成したソフトウェアの前記行番号に応じたソフトウェア、例えばソフトウェア部品（コンポーネント）を作成した設計部品を前記ＤＢ２０から取得する。
【００３３】
対象設計図取得機能部２１は、対象設計部品取得機能部１９の取得した設計部品が描かれている設計図を前記ＤＢ２０から取得する。ここで取得した設計図を対象設計図表示機能部２２にてディスプレイなどの外部出力装置に出力し、前記設計部品を対象設計部品強調表示機能部２３にて強調表示する。
【００３４】
≪実施例１≫
図５に基づき前記連携方法の実施例１を説明する。この実施例１は、デジタル回路シミュレータ１０のシミュレーション波形からソフトウェアの設計部品を特定し、特定されたソフトウェアの設計部品を修正する場合の動作例を示している。
【００３５】
まず、前提として開発者（ユーザ）は、前記ソフトウェア開発支援システム１２によりブロック図を作成し、組み込みソフトウェアを自動生成する。この組み込みソフトウェアを、ハードウェア／ソフトウェア協調検証システム１でシミュレートし、シミュレーションの波形をデジタル回路シミュレータ１０に表示し、デジタル回路シミュレータ１０のシミュレーション波形中に実機の動作に問題のある問題個所Ｐを発見したものとする。
【００３６】
つぎに開発者が問題個所Ｐにカーソルを合わせると、図示省略のプルダウンメニューが表示される。このプルダウンメニューから設計部品表示メニューを選択すると、次のステップ（１）〜（８）が実行される。
【００３７】
（１）波形カーソル位置取得機能部１３により、現在のカーソルの位置情報がデジタル回路シミュレータ１０から取得される。例えばデジタル回路シミュレータ１０の「ＰＣ」に表示される時間情報（経過情報）などから前記位置情報を特定することができる。
【００３８】
（２）前記ソフトウェア情報取得機能部１４により、ステップ（１）で取得された位置情報に応じたソフトウェア情報がデジタル回路シミュレータ１０から取得される。ここではソフトウェア情報として、ファイル名「fnA.c」と行番号「５」とが取得されたものとする。
【００３９】
（３）連携ファイル処理機能部１５により、ステップ（２）で取得されたソフトウェア情報に基づき連携ファイルＦが作成される。ここでは連携ファイルＦの一行目には「ファイル名＝fnA.c」と記述され、二行目には「行番号＝５」と記述される。
【００４０】
（４）連携ファイル処理機能部１６により、ステップ（３）で作成された連携ファイルＦが「ファイル名＝fnA.c」および「行番号＝５」と読み込まれる。
【００４１】
（５）対象ファイル取得機能部１７により、ステップ（４）で読み込んだファイル名「fnA.c」のファイルオブジェクトＡが前記ＤＢ２０から取得される。
【００４２】
（６）仮ソフトウェア自動生成機能部１８により、ステップ（５）で取得されたファイルオブジェクトＡからメモリ（ＲＡＭ）上に出力ソフトウェアＳが作成される。
【００４３】
（７）対象設計部品取得機能部１９により、ステップ（５）で作成された出力ソフトウェアＳ中、ステップ（４）で読み込んだ「行番号＝５」に応じた「ＶＡＲ１＝ＩＮ１＋ＩＮ２；」を作成した設計部品、即ち「加算器Ａ」が前記ＤＢ２０から取得される。
【００４４】
したがって、前記連携方法によれば、開発者がデジタル回路シミュレータ１０に表示されているシミュレーション波形から実機の動作に問題のある問題個所Ｐを発見した場合に１回の操作、即ち設計部品表示メニューの選択操作だけで前記ソフトウェア開発支援システム１２の該当設計部品を特定できる。
【００４５】
その結果、従来のように問題のあるソフトウェアの設計部品を特定する作業に多くの手間を費やす必要が無く、修正作業が容易となり、この点で作業効率を改善することができる。
【００４６】
（８）対象設計図取得機能部２１により、ステップ（５）で取得された「加算器Ａ」の描かれている設計図「ブロック図Ａ」を前記ＤＢ２０から取得する。ここで取得された「ブロック図Ａ」を、対象設計図表示機能部２２にてディスプレイに表示する。このとき対象設計部品強調表示機能部２３により、ステップ（５）で取得された「加算器Ａ」を中央に強調表示する。
【００４７】
これにより開発者は「加算器Ａ」を直接修正でき、また「加算器Ａ」の設計図を修正することもできる。特に該当設計部品が強調表示されるため、開発者に分かりやすく、すぐに設計図を修正することができる。
【００４８】
≪実施例２≫
図６に基づき前記連携方法の実施例２を説明する。この実施例２は、ブロック図におけるソフトウェアの設計部品からシミュレーション波形を特定して再確認する動作例を示している。なお、図４中では示されていないが、ここでは仮ソフトウェア自動生成機能部１８から連携ファイル処理機能部１６へ直接データ出力することは可能なものとする。
【００４９】
まず、前提として開発者は、前記ソフトウェア開発支援システム１２によりブロック図を作成し、組み込みソフトウェアを自動生成する。この組み込みソフトウェアを、ハードウェア／ソフトウェア協調検証システム１でシミュレートし、シミュレーションの波形をデジタル回路シミュレータ１０に表示する。
【００５０】
このとき開発者がブロック図中の加算ブロックＡを選択し、前記ソフトウェア開発支援システム１２のメニュー欄から図示省略のシミュレーション波形表示メニューを選択すると、次のステップ（１´）〜（３´）が実行される。
【００５１】
（１´）仮ソフトウェア自動生成機能部１８により、加算ブロックＡのブロック図からメモリ（ＲＡＭ）上に出力ソフトウェアＳ´が作成される。
【００５２】
（２´）連携ファイル処理機能部１６により、ステップ（１´）で作成された出力ソフトウェアＳ´から連携ファイルＦが作成される。ここでは連携ファイルＦの一行目には「ファイル名＝fnA.c」と記述され、二行目には「行番号＝５」と記述される。
【００５３】
（３´）連携ファイル処理機能部１５により、ステップ（２´）で作成された連携ファイルＦが「ファイル名＝fnA.c」および「行番号＝５」と読み込まれる。このときデジタル回路シミュレータ１０は、読み込まれたファイル名「fnA.c」と行番号「５」の該当箇所にシミュレーション波形のカーソルを移動させる。
【００５４】
したがって、前記連携方法によれば、前記ソフトウェアソフトウェア開発支援システム１２の設計部品から１回の操作、即ちシミュレーション波形表示メニューの選択だけでデジタル回路シミュレータ１０に表示されているシミュレーション波形の該当箇所が特定される。これにより開発者はすぐにシミュレーション結果を確認でき、正しく動作されているか否かを把握することができる。
【００５５】
なお、本発明は、上記実施形態に限定されるものではなく、前記機能構成などは各請求項に記載された範囲内で変形して実施することができる。また、本発明は、前記ステップ（１）〜（８），（１´）〜（３´）をコンピュータに実行させるプログラムとして構成することもできる。このプログラムは、ネットワーク経由で配布してもよく、記録媒体に格納して配布してもよい。
【符号の説明】
【００５６】
１０…デジタル回路シミュレータ
１２…組み込みソフトウェア開発支援システム
１３…波形カーソル位置取得機能部
１４…カーソル位置ソフトウェア情報取得機能部
１５，１６…連携ファイル処理機能部
１７…対象ファイル取得機能部
１８…仮ソフトウェア自動生成機能部
１９…対象設計部品取得機能部
２０…設計情報ＤＢ
２１…対象設計図取得機能部
２２…対象設計図表示機能部
２３…対象設計部品強調表示機能部
【図１】
0006477196.tif 000002
【図２】
0006477196.tif 000003
【図３】
0006477196.tif 000004
【図４】
0006477196.tif 000005
【図５】
0006477196.tif 000006
【図６】
0006477196.tif 000007