IAR Visual Stateの機能概要IAR Visual State とは •...

11
組込みに最適な状態遷移設計ツールを使って 効率的な開発を ~ IAR Visual State ~ IARシステムズ 技術チーム 岩野 歩

Transcript of IAR Visual Stateの機能概要IAR Visual State とは •...

Page 1: IAR Visual Stateの機能概要IAR Visual State とは • 組込みアプリの設計、テスト、実装をグラ フィカルに行うツール • UMLベースの状態遷移図(Designer)

組込みに最適な状態遷移設計ツールを使って効率的な開発を ~ IAR Visual State ~

IARシステムズ 技術チーム 岩野歩

Page 2: IAR Visual Stateの機能概要IAR Visual State とは • 組込みアプリの設計、テスト、実装をグラ フィカルに行うツール • UMLベースの状態遷移図(Designer)

組込み開発の実状

• 仕様・設計の不具合発見はコーディング後に集中 手戻りが多発

• ハードウェアの制約や仕様変更はソフトウェアでカバー 開発終盤ではドキュメントは後回しでコードのみ修正

ドキュメントがメンテされず、ソースコードが最新仕様

• チーム内でのレビューはソースコードレベル 他人のコードは見たくない

• 増え続ける機能。増えないリソース

モデルベース開発の薦め!

Page 3: IAR Visual Stateの機能概要IAR Visual State とは • 組込みアプリの設計、テスト、実装をグラ フィカルに行うツール • UMLベースの状態遷移図(Designer)

状態遷移図

• 組込み機器では様々なイベントに対して、その時の状態に応じた処理が必要➡ 状態遷移図による設計が最も効果的

• 状態遷移適用例 オーディオ スマートフォン 自動運転システム 自動販売機(ドリンク、ATM、etc) 洗濯機 etc

Page 4: IAR Visual Stateの機能概要IAR Visual State とは • 組込みアプリの設計、テスト、実装をグラ フィカルに行うツール • UMLベースの状態遷移図(Designer)

IAR Visual Stateとは• 組込みアプリの設計、テスト、実装をグラフィカルに行うツール

• UMLベースの状態遷移図 (Designer)

• 高度な形式検証と機能検証機能(Verificator, Validator)

• C/C++コードの生成 (Coder)

• ドキュメント生成 (Documenter)

• IAR Embedded Workbenchとの連携でターゲット上での状態遷移デバッグが可能

開発をより早く、より高い品質で!

Page 5: IAR Visual Stateの機能概要IAR Visual State とは • 組込みアプリの設計、テスト、実装をグラ フィカルに行うツール • UMLベースの状態遷移図(Designer)

プロジェクトワークフロー• IAR Visual Stateで状態遷移図を作成• ターゲットボード用ファイルを追加• デバイスドライバやFWライブラリを作成or入手

ユーザーコード

入力をイベントに変換

(一度作ればOK)

ユーザーコード

アクションを出力に変換(一度作ればOK)

入力button_pressed

入力sensor_triggered

入力temperature_gauge

入力stop_button

入力key_pressed

出力turn_on_LED

出力step_motor

出力close_valve

出力shut_down

出力display_LCD

状態遷移Visual State生成コードVisual

StateのAPIを使用

ユーザコードのAPIを使用

ユーザーコードチップ初期化処理(一度作ればOK)

モデルの再利用可能

Page 6: IAR Visual Stateの機能概要IAR Visual State とは • 組込みアプリの設計、テスト、実装をグラ フィカルに行うツール • UMLベースの状態遷移図(Designer)

なぜIAR Visual Stateなのか?

Page 7: IAR Visual Stateの機能概要IAR Visual State とは • 組込みアプリの設計、テスト、実装をグラ フィカルに行うツール • UMLベースの状態遷移図(Designer)

1. 高品質• 仕様通りのモデルになるよう動作を確認しながら設計が行える

• モデルの検証がすぐに行える デッドエンド 遷移の衝突 どこからも遷移しない状態 etc

• MISRA-C/C++に準拠したバグのないコードを生成できる

バグの混入しやすい状態遷移部分のコードを自動生成

Page 8: IAR Visual Stateの機能概要IAR Visual State とは • 組込みアプリの設計、テスト、実装をグラ フィカルに行うツール • UMLベースの状態遷移図(Designer)

2. レビュー・進捗管理が容易• 設計モデルをグラフィカルに共有・レビュー

コードレビューは不要 ライセンス不要のビューアーを利用して

カスタマーやパートナーとも簡単に共有

• モデル検証結果をドキュメント化 確認項目、エラー、ワーニング内容

起動時のスイッチ状態チェックの有無

ライトのOn/Offコントロールの条件判定の位置車内灯

モデルA

車内灯モデルB

Page 9: IAR Visual Stateの機能概要IAR Visual State とは • 組込みアプリの設計、テスト、実装をグラ フィカルに行うツール • UMLベースの状態遷移図(Designer)

3. 開発期間の短縮

• 状態遷移のコーディング作業は 1 Click

• 面倒なドキュメント化作業も 1 Click

• モデルとコードが一致しているかどうかを確認するためのテストや検証が不要

Page 10: IAR Visual Stateの機能概要IAR Visual State とは • 組込みアプリの設計、テスト、実装をグラ フィカルに行うツール • UMLベースの状態遷移図(Designer)

4. 仕様変更・機能追加に強い• 仕様変更や機能追加が必要になったらモデルを書き換えるだけ

• 常にモデル・コード・ドキュメントが100%一致した状態

1 clickでコード生成

1 clickでドキュメント生成

Page 11: IAR Visual Stateの機能概要IAR Visual State とは • 組込みアプリの設計、テスト、実装をグラ フィカルに行うツール • UMLベースの状態遷移図(Designer)

5. シミュレートから実機評価までシームレスに

Visual Stateプラグイン:IAR Embedded Workbenchでのデバッグ時に状態を可視化

形式検証

機能検証(シミュレート)

実機評価