MATLAB EXPO 2015 Japan 次世代モデルベース検証ソリューションで テスト・デバッグ改善

Similar documents
Tech Info share 2015 Q2 CDA Team 2

Microsoft PowerPoint - 【最終提出版】 MATLAB_EXPO2014講演資料_ルネサス菅原.pptx

MATLAB EXPO 2014 Dry Run 0 モデル検証&Polyspace

DesignRangeCheckExpr Insertion Discussion

Presentation Title

f2-system-requirement-system-composer-mw

エンジニアリング・サービスから見たMBD導入の成功・失敗

智美塾 ゆもつよメソッドのアーキテクチャ

ソフトウェアバグを根絶する静的コード解析

SimscapeプラントモデルのFPGAアクセラレーション

PowerPoint プレゼンテーション

Microsoft Word - matlab-coder-code-generation-quick-start-guide-japanese-r2016a

CW6_A1441_15_D06.indd

Presentation Title

CANapeを用いたラピッドコントロールプロトタイピングのバイパス手法による制御モデル開発

SimulinkによるReal-Time Test環境の構築

Simulinkモデル開発における工夫事例

Presentation Title

機能検証トレーニング コース一覧

Managing and Sharing MATLAB Code

変更の影響範囲を特定するための 「標準調査プロセス」の提案 2014年ソフトウェア品質管理研究会(30SQiP-A)

製品開発の現場では 各種のセンサーや測定環境を利用したデータ解析が行われ シミュレーションや動作検証等に役立てられています しかし 日々収集されるデータ量は増加し 解析も複雑化しており データ解析の負荷は徐々に重くなっています 例えば自動車の車両計測データを解析する場合 取得したデータをそのまま解析

CodeRecorderでカバレッジ

Presentation Title

Microsoft PowerPoint - PressPresen-AbsInt.pptx


モデルベースデザイン(MBD)を始めましょう!

Presentation Title

Presentation Title

040402.ユニットテスト

統合開発環境CubeSuite+ V へのバージョンアップのお知らせ

<4D F736F F F696E74202D DD8D8782ED82B98B5A8F7082F B582BD835C F E707074>

Insert your Title here

第 3 回 TERAS 成果報告会 TERAS V3 紹介と今後の展開 Tool Environment for Reliable and Accountable Software 一般社団法人 TERAS 理事開発委員長渡辺政彦 2014 年 3 月 12 日

単体テスト設計のコツ

2015 TRON Symposium セッション 組込み機器のための機能安全対応 TRON Safe Kernel TRON Safe Kernel の紹介 2015/12/10 株式会社日立超 LSIシステムズ製品ソリューション設計部トロンフォーラム TRON Safe Kernel WG 幹事

Using VectorCAST/C++ with Test Driven Development

生成された C コードの理解 コメント元になった MATLAB コードを C コード内にコメントとして追加しておくと その C コードの由来をより簡単に理解できることがよくありま [ 詳細設定 ] [ コード外観 ] を選択 C コードのカスタマイズ より効率的な C コードを生成するベストプラクテ

Microsoft PowerPoint - 01_Vengineer.ppt

Microsoft Visual Studio 2010 Professional Data Sheet

PowerPoint プレゼンテーション

国土技術政策総合研究所 研究資料

テスト設計コンテスト

An introduction and future of Ruby coverage library

PGRelief C/C++ 強化ポイント説明書

PPTVIEW

PARTⅢ 検証事例 2. トレーサビリティ管理の自動化に踏み切った理由や経緯 (1) 国際スタンダード認証に関する課題 ISO DO-178B/C IEC などの国際スタンダードでは 開発工程全般にわたって要件が満たされていること ( システムの正しい要件が 正しい方法で

PowerPoint プレゼンテーション

Presentation Title

5-3- 応統合開発環境に関する知識 1 独立行政法人情報処理推進機構

PowerPoint Presentation

NetworkVantage 9

Presentation Title

新入社員研修で 制御開発の人材を育てるとは どういうことか ヤマハ発動機 迫田茂穂様 MathWorks Japan 照井雄佳 2016 The MathWorks, Inc.1

Presentation Title

HIGIS 3/プレゼンテーション資料/J_GrayA.ppt

2 概要 市場で不具合が発生にした時 修正箇所は正常に動作するようにしたけど将来のことを考えるとメンテナンス性を向上させたいと考えた リファクタリングを実施して改善しようと考えた レガシーコードなのでどこから手をつけて良いものかわからない メトリクスを使ってリファクタリング対象を自動抽出する仕組みを

Copyright 2014 NTT DATA Corporation 2 INDEX 1. 一括請求 Assist とは 1-1. でんさいに係るサービスの関係性 1-2. 一括請求 Assist の必要性 1-3. 一括請求 Assist の特長 2. 機能紹介 2-1. 一括請求 Assist

効率の良いテストシナリオ? テストの進め方 テストプロセス テストの設計 より少ないテストケースで より多くのバグを見つける Mercury Interactive Japan KK all rights reserved. 2

制御のためのSimulink入門

インテル(R) Visual Fortran コンパイラ 10.0

Python によるジオプロセシング スクリプト入門

Microsoft PowerPoint - Session4古賀様.ppt

Introduction to System Identification

背景 1 / Reprinted with permission from paper c 2013 SAE International.

システム操作インターフェイス最適化によるテスト自動化ROI向上

PowerPoint プレゼンテーション

Microsoft PowerPoint - 23_電子制御情報の交換(配布用a).pptx

Microsoft PowerPoint - ●SWIM_ _INET掲載用.pptx

Specifications LED ディスプレイビデオコントローラ VX4S

回路シミュレータ/MATLABリンク~詳細回路設計におけるシステムレベル検証~

メソッドのまとめ

個人依存開発から組織的開発への移行事例 ~ 要求モデル定義と開発プロセスの形式化 による高生産性 / 高信頼性化 ~ 三菱電機メカトロニクスソフトウエア ( 株 ) 和歌山支所岩橋正実 1

Microsoft PowerPoint - 教材サンプル1&2.ppt


テスト設計コンテスト フロア展示資料

開発工程ごとの解析項目 設計においてはモデルベース開発を適用したが 検証 解析種別により複数の解析ツールを用途に応じて使い については 下記の理由から各種ツールを利用した コー 分けている 表1 また 図3に示すように コード解 ド解析 を実施することとした 析 専任者 が使用する解

目次 ペトリネットの概要 適用事例

Cisco Prime LAN Management Solution 4.2 紹介資料

D5-2_S _003.pptx

モータ HILS の概要 1 はじめに モータ HILS の需要 自動車の電子化及び 電気自動車やハイブリッド車の実用化に伴い モータの使用数が増大しています 従来行われていた駆動用モータ単体のシミュレーション レシプロエンジンとモータの駆動力分配制御シミュレーションの利用に加え パワーウインドやサ

組込みシステムにおける UMLモデルカタログの実践研究

スライド 1

NEXCESS基礎コース01 組込みソフトウェア開発技術の基礎 ソフトウェア開発プロセス編

MATLAB/Simulinkを利用したモデルベース開発のトレンドと将来展望

スライド 1

PHP 開発ツール Zend Studio PHP アフ リケーションサーハ ー Zend Server OSC Tokyo/Spring /02/28 株式会社イグアスソリューション事業部

スライド 1

ソフトウェア FMEA を体系的に実施する 出発点としての MISRA-C 株式会社ヴィッツ森川聡久 株式会社ヴィッツ中野泰伸 名古屋市工業研究所小川清 1

Oracle Un お問合せ : Oracle Data Integrator 11g: データ統合設定と管理 期間 ( 標準日数 ):5 コースの概要 Oracle Data Integratorは すべてのデータ統合要件 ( 大量の高パフォーマンス バッチ ローブンの統合プロセスおよ

Microsoft PowerPoint - FormsUpgrade_Tune.ppt

Python によるジオプロセシング スクリプト入門

福岡カーエレ研究会

エンジン制御仕様・ ソフトウェア開発の進化

Microsoft PowerPoint - Tsuzuki.ppt

/ , ,908 4,196 2, ,842 38, / / 2 33 /

CLUSTERPRO MC ProcessSaver 2.3 for Windows 導入ガイド 第 5 版 2018 年 6 月 日本電気株式会社

MATLAB EXPO 2019 Japan プレゼン資料の検討

Microsoft PowerPoint - A1-2_株式会社ネクスト_藤澤正通_S _005.pptx

デジタル表現論・第4回

Transcription:

次世代モデルベース検証ソリューションで テスト デバッグ改善 MathWorks Japan アプリケーションエンジニアリング部 ( 制御 ) リャンティファニー 2015 The MathWorks, Inc. 1

アジェンダ はじめに 検証作業におけるチャレンジ & 新しいソリューション まとめ 2

モデルベースデザイン / 開発 (MBD) が量産制御ソフト開発に求められる背景 課題解決策効果 ソフト規模の巨大化 検証項目の増加 開発期間の維持 短縮 モデル & シミュレーションを通じた設計 検証の前倒し コード自動生成ツールや検証ツールを用いた省力化 早期の制御仕様確定 開発効率向上 ソフト信頼性向上品質 価格 納期 2011 経済産業省資料より引用 3

MBD 開発時に実行できる検証作業仕様通り誤り無く動作するモデルを作成する ( 各検証作業の詳細説明については講演資料の付録をご参照ください ) 制御設計 検証 実機検証 Simulink Verification & Validation TM 要求リンクによるトレーサビリティ確保 実装統合設計 検証 実装単体設計 検証 ソフト単体検証 ソフト統合検証 Simulink Design Verifier TM 実行時エラー検出による不具合混入防止 Simulink Verification & Validation カバレッジ測定によるヌケモレ発見 コード生成 Simulink Design Verifier フルカバレッジテスト生成によるテスト品質向上 4

MBD 開発時に実行できる検証作業仕様通り誤り無く動作するソフトを作成する ( 各検証作業の詳細説明については講演資料の付録をご参照ください ) 制御設計 検証 実装統合設計 検証 実装単体設計 検証 ソフト単体検証 ソフト統合検証 実機検証 Embedded Coder / Simulink Report Generator TM / Simulink Verification & Validation コード生成レポートによるトレーサビリティ確保 Embedded Coder モデル コード等価性検証による動作保証 性能評価 コード生成 Polyspace Code Prover TM 静的解析によるソフト全体の信頼性確保 5

新しい検証ソリューション 制御設計 検証 実機検証 GUI/HMI ブロックを提供する Dashboard ライブラリ 実装統合設計 検証 実装単体設計 検証 ソフト単体検証 ソフト統合検証 テスト自動化や一元管理ツール Simulink Test TM 信号依存関係の分析機能モデルスライサー コード生成 6

新しい検証ソリューション 制御設計 検証 実機検証 GUI/HMI ブロックを提供する Dashboard ライブラリ 実装統合設計 検証 実装単体設計 検証 ソフト単体検証 ソフト統合検証 テスト自動化や一元管理ツール Simulink Test TM 信号依存関係の分析機能モデルスライサー コード生成 R2015a Simulink 新機能 7

モデルテストの操作における課題 & ソリューション 課題 パラメータ調節や信号確認用の GUI を作りたい 解決策 Dashboard ライブラリの GUI/HMI ブロックを使用し 直感的な表示 パラメータ調節を実現する Test Engineer 現場のエンジニアにとって GUI の作成が大変 8

Dashboard ブロックライブラリ利用例 Door Lock 制御ロジックの動作確認モデル GUI HMI コンポーネントを用いてパラメータ調節 信号確認をより簡単 直感的に 車速エンジンエアバッグ左ドアロック位置右ドアロック位置 ドアロック要求信号 ドアロック異常信号 エアバッグ 車速 ドアロック要求信号 9

Dashboard ブロックライブラリモデル内 GUI/HMI で直感的な表示 パラメータ調節が実現可能 信号表示 パラメータ調節用 UI コンポーネントを提供 モデル内 Scope ランプ ノブ ゲージ スイッチ 10

新しい検証ソリューション 制御設計 検証 実機検証 GUI/HMI ブロックを提供する Dashboard ライブラリ 実装統合設計 検証 実装単体設計 検証 ソフト単体検証 ソフト統合検証 テスト自動化や一元管理ツール Simulink Test 信号依存関係の分析機能モデルスライサー コード生成 R2015a 新製品 11

テストモデルの作成 管理における課題 & ソリューション 課題 サブシステムだけテストしたい 解決策 Simulink Test のテストハーネスを使用し 単体 統合テストをシームレスに ロジックモデルとテストモデルを紐付けて管理したい Design Engineer 修正の二重作業や手修正による修正の抜け漏れリスクを無くしたい 12

Simulink Test テストハーネス利用例ギアシフト制御サブシステムのテストハーネスを作成 テストハーネスを用いてハーネスモデルの作成 関連付けをより簡単に エンジン制御 トランスミッション制御 車両プラントモデル ギアシフト制御テストハーネス テスト入力 ギアシフト制御 13

テストハーネス単体 統合テストをシームレスにします テストハーネス モデル全体 サブシステム単体 参照モデル用テストハーネスモデルを作成 関連付け 実行 テスト対象 解析 複数テストハーネスを作成 管理可能 様々なテスト入出力ブロックを設定可能 テストハーネスはメインモデルに同期 修正内容を自動で反映 メインモデル Data Store Memory に対応 SIL/PIL に対応 14

テスト入力信号の作成における課題 & ソリューション 課題 シナリオベースでテスト入力信号を作成したい 解決策 Simulink Test のテストシーケンスブロックを使用し 複雑なテストパターンを簡単に作成できる Design Engineer 15

Simulink Test テストシーケンスブロック利用例ギアシフト制御のテスト入力や信号検証を定義 複雑な入力パターン 検証項目を定義可能 テスト入力 検証項目 16

テストシーケンスブロック複雑なテストパターンを簡単に作成できます 状態遷移表を用いて複雑なテストパターンを作成可能 プラント出力や内部状態を入力として受け取って テストパターンを切り替え可能 ( 動的タイミングチャート ) 診断 (assert) 挿入による信号チェック 不具合検証が可能 17

テストケースの作成 管理 実行における課題 & ソリューション 課題 膨大なテストを自動化したい テスト項目を管理 再利用したい 解決策 Simulink Test のテストマネージャを使用し テスト実行や合否判定とレポート作成の自動化が可能 Test Engineer 結果をレポートに纏めるのが大変 テストの結果レポートを見たい Manager 18

テストマネージャー複数テストを自動実行して合否レポートを作成可能 複数テストを統合管理 バッチ処理による一括テスト実行 テスト対象としてモデル全体 or テストハーネスを指定可能 テスト結果レポート作成 Excel からの信号読み込みに対応 テスト時パラメータ上書き テスト用コールバック処理 MIL/SIL/PIL に対応 19

新しい検証ソリューション 制御設計 検証 実機検証 GUI/HMI ブロックを提供する Dashboard ライブラリ 実装統合設計 検証 実装単体設計 検証 ソフト単体検証 ソフト統合検証 テスト自動化や一元管理ツール Simulink Test 信号依存関係の分析機能モデルスライサー コード生成 R2015a Simulink Design Verifier 新機能 20

大規模なモデルのレビュー デバッグにおける課題 & ソリューション 課題 この信号は上流のどこで計算されている? 解決策 Simulink Design Verifier のモデルスライサーを使用し モデル内の信号依存性解析やモデルの切り出しが可能 Design Reviewer 下流のどの信号に影響する? Design Engineer デバッグする時に必要な要素だけ取り出したい 21

モデルスライサーモデルから着目点に基づいて依存関係の解析やモデルの作成を実現 ブロック線図の静的依存関係の解析 上流方向 / 下流方向 / 両方向 出力計算に使われる実行パスを解析 スライスモデルの作成 独立したモデルとして抽出 ( 開始点から上流方向のみ ) 実行パスに基づく動的依存関係の解析 シミュレーションで利用するブロックの考慮 実行パスのみを別モデルに切り出し 依存関係パス上での設定 解析除外ブロックを除外点として指定可能 条件分岐に対する特定パスを制約点として指定可能 R2015a 時点では Stateflow や MATLAB Function ブロック内パス解析は未対応 ( 全処理がそのまま残ります ) 22

まとめ 動作確認時のパラメータ調節をもっと簡単に : GUI/HMI ブロックでテスト環境が充実 検証ツールを用いて 早期検証作業をより簡単に Dashboard ライブラリ 膨大なテストケースをより効率的に実行や管理するため : テスト自動化の実施 Simulink Test デザインレビューやロジック検証をもっと効率化するため : 依存関係分析の実施 モデルスライサー 23

< 付録 > 2015 The MathWorks, Inc. 24

モデル 仕様書間リンクでトレーサビリティを確保 仕様修正の影響範囲を特定 ハイパーリンク モデル 仕様書間リンク Simulink Verification & Validation : モデル 仕様書間リンク ハイパーリンクは Simulink 標準機能 25

カバレッジ測定でテストのヌケモレ発見 テストをスルーした未実行パスが引き起こす不具合の防止に貢献 モデルカバレッジ S-Function コードカバレッジ テスト入力データ シミュレーション 未達箇所色分け表示 計測可能カバレッジ例 ステートメント (C0): コードのみ 条件 (C1) 判定 (D1) MCDC 境界 : モデルのみ Simulink Verification & Validation : カバレッジ測定 複数テストの累積カバレッジも計測可能 26

フルカバレッジ入力データ生成でユーザテスト入力を補充 レアケースを自動生成 テスト品質向上に貢献 モデル生成コードの網羅的な等価性検証にも利用可能 テストモデル 解析 シミュレーション モデル フルカバレッジ入力データ生成 Simulink Design Verifier : フルカバレッジ入力データ生成 27

ランタイムエラー検出でテスト困難な不具合混入の防止 整数オーバーフローリスク有り 整数オーバーフローリスクを除去 解析 修正 モデル 検出可能エラー例 整数演算オーバーフロー ゼロ除算 配列の範囲外アクセス デッドロジック Simulink Design Verifier : 設計エラー検出 28

コード生成レポートで快適なコードレビュー モデル コードのトレーサビリティ確保 コード統計で簡単な性能見積もりが可能 コード統計情報行数 / グローバル変数 / ローカル変数スタックサイズ等 コード モデル間リンク コード生成レポート Simulink Report Generator がない場合はモデルと直接リンク Embedded Coder : コード生成レポート Simulink Report Generator : モデルビュー作成 29

モデル生成コード等価性検証でコードの動作保証 性能評価 モデル SIL (Software In the Loop) PC CPU 上でコード実行 テスト入力 等価性チェック PIL (Processor In the Loop) MCU/ シミュレータ エミュレータ上でコード実行 PIL 対応しているかは MCU/IDE によって状況が異なるので要確認 モデル & コードの動作等価性 コード生成ツール設定ミス コード生成ツール不具合 コンパイラ不具合 モデル生成コード 処理系依存動作 メモリ消費量評価 実行速度評価 PIL のみ 30

モデル生成コード等価性検証自動化で検証作業の合理化 フルカバレッジテスト入力 (Simulink Design Verifier 利用 ) テストマネージャー 出力値 タイミングずれをチェック ノーマル ( モデル ) と SIL/PIL の結果を比較 Embedded Coder :SIL/PIL モード Simulink Test : テストマネージャー 31

コード静的解析によるソフト全体の信頼性確保 ハンドコード内エラーやソフト統合時の不具合を検出可能 グリーン : 正常ソースコードが安全と証明 static void pointer_arithmetic (void) { int array[100]; int *p = array; int i; レッド : エラー実行される度にランタイムエラー for (i = 0; i < 100; i++) { *p = 0; } p++; variable I (int32): [0.. 99] assignment of I (int32): [1.. 100] バグ検出 高速な解析 コーディングルールチェック MISRA-C 準拠 コードメトリクス解析 コード複雑度 グレー : デッドコード無実行 オレンジ :Unproven 条件によってランタイムエラー パープル :Violation MISRA-C/C++, JSF++ } if (get_bus_status() > 0) { if (get_oil_pressure() > 0) { *p = 5; } else { i++; } } i = get_bus_status(); if (i >= 0) { *(p - i) = 10; } 変数値範囲ツールチップ Polyspace Bug Finder : 軽量なバグ検出 コード規約 メトリクス解析 Polyspace Code Prover : 全分岐パス解析 & エラーの存在 / 不在を証明 32