組込みシステムのための複数モデルの統合と設計検証の自動化
概要
前節で述べたようにモデルベース開発を適用することにより,従来に比べ設計フェーズならびに検証フェーズの効率が向上した.しかしながら,近年,前述の完全自動運転の開発など,広い分野で開発の大規模化と併せて短期化が求めらている.このため,更なる設計・検証の効率向上が求められてきた.
モデルベース開発の適用が進む中,V 字プロセスの各プロセスで,設計者は 1.2 節の例で示したような複数のモデル化ツールを使い分けている.これにより,各プロセスにおける設計の最終成果物としてさまざまな種類のモデルが存在する.1 つのシステムとして全体をまとめるために,異なる種類のモデルを統合する必要がある [3].従来のモデル統合は人手で行っており,時間を要するとともに統合の際に不具合が発生する可能性もある.複数種類のモデル統合を自動化することで,開発効率の向上が図れる.関連する研究として Simulink モデルを UML(Unified Modeling Language) モデルにモデル変換する [4][5][6] 提案があるが,UML の長所であるシステム全体を俯瞰することが難しくなる.
本研究では,新たに複数種類のモデルを効率よく統合する手法を提案し,設計検証の自動化を行い設計検証の効率を向上させる.ただし,完全自動化を行うものでなく,人間が得意とするプロセスの自動化は行わない.多量かつ単純な設計プロセスや,人手では困難な検証等の自動化を行うこととする.
本論文の構成は以下のようになっており,各章の内容と V 字プロセスの関係を図 1.4に示す.
第 2 章では,複数種類のモデル化ツールで設計された複数のモデルを自動統合する仕組みを提案する.組込みシステムでは,モデル化ツールを使わず,仕様に基づき C 言語や C++ 言語で記述されたソフトウェアコード(部品)がある.さらに,過去に実績のある部品をライブラリ化したコードライブラリもあり,活用することが望まれる.このため,複数種類のモデルとコードライブラリも統合できる仕組みとしている.提案した仕組みは,モデルを特定の別のモデルに変換することなく,モデル化ツールの自動コード機能でソフトウェアコードに置き換えた部品(モデル部品)にし,部品同士をソフトウェアコードレベルで統合する.部品同士を統合するため,UML で部品同士の入出力関係を設計したモデル(部品型枠)を設計できるようにしている.このため部品間の入出力とデータ送受信機能を追加記述できるように標準 UML を拡張し, UML の自動コード生成機能に変更を加えている.また,Simulink モデルから Simulink の自動コードで生成された部品は大域化した変数を含みやすく,1 つのシステム内で 2 つ以上同時に利用(部品の再利用)できない.このため,提案する自動統合は,大域化変数を処理して部品の再利用が行える仕組みを有している.実験を通じて部品統合(モデル統合)並びに部品再利用(モデル再利用)が正しく行えることを示す.
第 3 章から第 5 章は,第 2 章で提案するモデル統合手法を適用して設計及び検証を自動化した事例を紹介し,提案手法の有効性を示す.第 2 章の機能を活用して設計検証を効率化した他章との関係を図 1.5 に示す.
第 3 章では,組込みシステムのソフトウェア設計検証の自動化について述べる.ある制御対象の制御を行う制御部品の動作検証において,実際の制御対象(実プラント)を用いた検証では制御部品の設計不具合による異常な制御信号が原因で,実プラントが損傷し検証の継続が困難となる恐れがある.実プラントに代わり十分正確なモデル(モデルプラント)を用いることで制御部品の不具合による実プラント損傷を防ぐことができ,制御部品開発効率を向上できる.正確なモデルプラントを開発するため,Simulink で構築したモデルプラント,実プラントを駆動するコードライブラリ,両者へ同時に同じ入力を与える部品,両者の出力差を得る部品を統合し,モデルプラントの正確性検証の効率向上を実現したことを示す.また,この方式を利用することにより,実プラントに経年劣化が発生する現象が特定できること,並びに実プラントの設計見直しが可能になることも示す.
第 4 章では,グラフィック表示(GUI: graphical user interface)を伴う組込みシステムの設計自動化について述べる.GUI 組込みシステムでは Simulink を用いたロジックモデルと GUI モデル化ツールを用いた GUI モデルの 2 種類のモデルが存在する.近年 GUI の複雑化,多言語対応のため,多量の GUI モデルを必要とし,人的操作による GUIモデル構築は工数が莫大になるだけでなく,人的不具合も多く発生する.このため,GUIモデル化ツールを用いて仕様から自動生成した GUI モデルと,Simulink を用いたロジックモデルを提案手法で統合することにより設計を自動化している.これにより,GUI 組込みシステムの設計効率を約 10 倍向上できたことを示す.
第 5 章では GUI 組込みシステムの検証自動化について述べる.一般に GUI システムは PC 上で開発された後に,実機に実装される.PC と実機ではハードウェア構成が異なるため,GUI の表示位置が正しく実装されているか,公差を含む実装検証が必要となる. Web 画面を自動で比較する研究も行われているが,公差を含む比較機能を有していない.このため,PC と実機の画面特徴点の抽出とマッチングを行い,特徴点の移動距離に基づく判定式を持つ自動検証システムを構築した.この自動検証システムは,設計モデル,実機モデル,検証用入力信号生成モデル,特徴点抽出コードライブラリ,成否判定コードの複数のモデルが存在し,提案したモデル統合手法を適用した.さらに,成否判定式の妥当性について機械学習を使って証明したことを示す.
最後に,第 6 章で,本研究で得られた成果について総括し,今後の研究の方向性について示す.