HOME | イベント | ET2011 設計・検証ツールトラック “プロジェクトを成功に導くイノベーション”

プロジェクトを成功に導くイノベーション

キーワード: ドメインスペシフィックモデリング (DSM)、ソフトウエアプロダクトライン開発 (SPLE)、形式手法(フォーマルメソッド)、テストベクタ自動生成、要件トレーサビリティ

 
曖昧な要件、コピーに頼った差分開発、大規模複雑化など複合的な課題に直面している組込みシステム開発は、もはや開発者の真摯な取り組みだけでは成り立たない。新しい技術や考え方を取り入れて新たな価値を生み出し、大きな変化を起こすイノベーションが必要だ。
人手に頼った開発スタイルから脱却するには自動化で手作業を排除して、自動化できないことは再利用により効率化させて、開発者が同じ作業を繰り返さなくても済むようにする。そのために組織内の知識を体系化して、新しい情報も取り込みながら資産として継続的に改善して進化させる。この当たり前に思える活動が、実は多くの組織が抱える課題であり悩みとなっている。
そこでET2009、ET2010 で紹介した、自動化と再利用を高度に支援できる形式手法、ドメインスペシフィックモデリング、ソフトウエアプロダクトライン開発支援ツールの実践的な活用や融合について紹介する。
 

 
モデル駆動開発におけるテストを自動化
Simulinkを代表するモデル駆動開発では、デザインモデルの段階でシミュレーションを済ませてからコードに自動変換することができる。これによりシュミレーションで明らかにできるデザイン上の問題を、実装や下流工程に持ち込まないで済む。このような環境にコードレベルの解析ツールが統合されることで一層の自動化が促進される。静的解析、シミュレーション実行結果のカバレッジを自動取得して、必要に応じて追加の単体テストとカバレッジ解析を実施。そして要件トレーサビリティのエビデンスを自動生成できる仕組みも統合できる。Rhapsody など他のモデル駆動にも対応する。
 
LinkIcon Simulink &テストツール 統合動画デモ(音声付):Simulinkの設定画面からLDRAを選択してシミュレーション実行。結果のカバレッジ表示。コールグラフ・フローグラフから未実行パスを特定し、TBRunから追加の単体テストを実行。加えてコードからテストケースの自動生成・実行ができることも紹介。
 
Simulink の自動コード生成機能に統合
 

 注)ただUMLやSimulinkモデルでは抽象度がコードレベルから上らないので、実はコードの生産性への寄与は多くない。既存システムをベースにして派生開発(差分開発)される製品であれば、製品ファミリーでコンポーネントを共有するフレームワークを構築して、それをドメインスペシフィックなモデルからアクセスさせることで、抽象度をあげて完全なコードやモデルを生成させることができる(再利用性の向上)。そのようなDSMなら独自のルールやコンストレインツを持たせて曖昧な要件・仕様モデルが描けないようにできる

 
DSMドメインスペシフィックモデリング言語を普段使いなIDEで
熟練者のノウハウを共有できるドメインスペシフィックモデリング環境がEclipse や Visual Studio などの統合開発環境に統合されることで、開発者全員のハードルが更に下がる。コードレベルで行われていた作業の抽象度を飛躍的に向上させて、開発速度の加速、工数削減を得ることができる。特に開発速度を向上させることは、競合製品に対する優位的な市場を形成するために、多くのビジネスにおいて大きな課題となっている。
 
MetaEdit+ で構築するドメインスペシフィックモデリング言語には、ファイルにコード片を挿入するコード生成機能(モデル変換)を持たせることができるので、ビルドやマクロ、スクリプトファイルを生成させて様々なコンパイル・実行環境、IDEなどに統合させることができる。あるいはプラグインを介してIDE側からモデリング言語にアクセスさせることもできる。
 
LinkIcon Eclipse & DSM 統合動画デモ:英語音声
 
MetaEdit+ 容易にDSM を構築して柔軟に進化させられる
 

 注)モデル駆動で自動生成(変換)されるコードが仕様・設計と一致していることの証明は、ツールインデペンデントに検証されることが今後DO-178C のスタンダードで求められる。これはIEC 61508 やISO 26262 などの国際スタンダードでも求められるようになることは想像に難くない。

 
仕様・設計モデルからテストを自動化
要件・設計と実装の一致性検証のためのテストは殆ど人手に頼っているのが現状。仮にモデル検査ツールで仕様・設計モデルの正しさを評価できても、コードの一致性検証までサポートするものは殆どない。T-VEC社TTMツールは仕様・設計(あるいはテスト仕様)を表形式でモデル化することで、定理証明(形式検証)とテストベクタ自動生成を両立できる唯一のツール。これもテスト仕様をモデル化することに特化したDSM言語であるが、熟練者がモデル化したものを製品系列専用に抽象化したDSM言語にすれば開発者全員で共有することが更に容易となる。これはBAEシステム社などの先進企業で既に取り組まれている。
 
LinkIcon TTM 形式検証モデル &DSM 統合動画デモ(音声付):MetaEdit+ で作成したDSM(温度入力に対するフロー制御モデル)から、T-VEC TTM 形式の形式検証モデルを自動生成させて、モデルの定理証明とテストベクタ自動生成ができることを紹介。
 
T-VEC 仕様・設計モデルの検査とテストベクタ生成の両方ができる
 
そしてこれらの進んだ取り組みでも、やっぱり体系的に再利用したい
要求仕様、モデリング、テストなどを支援する各種ツールがバリアント管理ツールと統合されることで、製品系列内の変動要素(バリエーション)を管理して再利用性を高めて、開発工数を削減できる。またバグや変更の及ぶ範囲を特定できるので、製品間のトレーサビリティを確保して保守効率が飛躍的に改善できる。
 
LinkIcon 要求仕様書、UMLモデル、AUTOSAR、Simulink、テスト仕様のバリアント管理動画デモ(英語音声付):pure::variants の一つのフィーチャモデルから、DOORSの要求仕様書、EAのUMLモデル、AUTOSARモデル、Simulinkモデル、テスト仕様書の各バリアントを管理・自動生成
 
pure::variants バリアント管理・既存資産、ファイル構造を変えることなく導入できる