制御フロー解析でモデルのデバッグ・リファクタリングを大きく … ·...

20
1 © 2017 The MathWorks, Inc. 制御フロー解析でモデルのデバッグ・リファクタリングを大きく改善 MathWorks Japan アプリケーションエンジニアリング部 (制御) 田中 康博

Upload: others

Post on 23-Sep-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 制御フロー解析でモデルのデバッグ・リファクタリングを大きく … · 1.デバッグ・リファクタリングの課題 大規模モデルの特徴1 大規模モデルの特徴2

1© 2017 The MathWorks, Inc.

制御フロー解析でモデルのデバッグ・リファクタリングを大きく改善

MathWorks Japan

アプリケーションエンジニアリング部 (制御)

田中 康博

Page 2: 制御フロー解析でモデルのデバッグ・リファクタリングを大きく … · 1.デバッグ・リファクタリングの課題 大規模モデルの特徴1 大規模モデルの特徴2

2

システム開発の現状ソフトウェアが大規模化・複雑化している

※ 2011 経済産業省資料より引用

Page 3: 制御フロー解析でモデルのデバッグ・リファクタリングを大きく … · 1.デバッグ・リファクタリングの課題 大規模モデルの特徴1 大規模モデルの特徴2

3

研究・開発での困りごと大規模モデルのデバッグやリファクタリングが困難に

デバッグが困難- 不具合が発生してもすぐに解析できない

リファクタリングが困難- 入出力信号の関係を洗い出したくても

すぐに対応できない

制御ロジックの抽出が困難- 資産を活用したくてもすぐに対応できない

Page 4: 制御フロー解析でモデルのデバッグ・リファクタリングを大きく … · 1.デバッグ・リファクタリングの課題 大規模モデルの特徴1 大規模モデルの特徴2

4

解決策のご提案Simulink Design Verifier™ のモデルスライサーを活用する

解決策

出力計算に使われる実行パスを解析

実行パスのみを別モデルに切り出し

スライス

Page 5: 制御フロー解析でモデルのデバッグ・リファクタリングを大きく … · 1.デバッグ・リファクタリングの課題 大規模モデルの特徴1 大規模モデルの特徴2

5

目次

1.デバッグ・リファクタリングの課題 大規模モデルの特徴1

大規模モデルの特徴2

2.デバッグ・リファクタリングの解決策 モデル検証ソリューション

モデルスライサー

例題:モデルの予期せぬ動作の解決

依存関係の強調表示

強調表示されたモデルの調整

スタンドアロンの簡略モデルの作成

3.モデルスライサーの適用例 Stateflowの検証

バリアントシステムの簡略化

まとめ

Page 6: 制御フロー解析でモデルのデバッグ・リファクタリングを大きく … · 1.デバッグ・リファクタリングの課題 大規模モデルの特徴1 大規模モデルの特徴2

6

大規模モデルの特徴1入出力データ数が多い

ライブラリ使用のメリット ラインの交差を減少できる

結線をせずにデータを共有できる

信号をまとめることができる

Signal Routingライブラリ

ライブラリ使用のデメリット 過度に使用するとラインが断線

しすぎてトレースが難しくなる

ラインの交差が多い ラインの交差が少ない

Page 7: 制御フロー解析でモデルのデバッグ・リファクタリングを大きく … · 1.デバッグ・リファクタリングの課題 大規模モデルの特徴1 大規模モデルの特徴2

7

大規模モデルの特徴2サブシステム数が多い

サブシステム化のメリット 機能ごとに関連したブロックを集約できる

可読性、保守性、移植性が向上する

サブシステムの階層が深い

サブシステム化のデメリット 過度に高階層化すると信号の影響範囲を

トレースするのが難しくなる

Page 8: 制御フロー解析でモデルのデバッグ・リファクタリングを大きく … · 1.デバッグ・リファクタリングの課題 大規模モデルの特徴1 大規模モデルの特徴2

8

目次

1.デバッグ・リファクタリングの課題 大規模モデルの特徴1

大規模モデルの特徴2

2.デバッグ・リファクタリングの解決策 モデル検証ソリューション

モデルスライサー

例題:モデルの予期せぬ動作の解決

依存関係の強調表示

強調表示されたモデルの調整

スタンドアロンの簡略モデルの作成

3.モデルスライサーの適用例 Stateflowの検証

バリアントシステムの簡略化

まとめ

Page 9: 制御フロー解析でモデルのデバッグ・リファクタリングを大きく … · 1.デバッグ・リファクタリングの課題 大規模モデルの特徴1 大規模モデルの特徴2

9

モデル検証ソリューションSimulink Design Verifier™

設計エラー検出テストケース自動生成

プロパティ証明 モデルスライサー

ゼロ割・オーバーフローなどの設計エラーが含まれていないかをチェック

ロジックを網羅するテストケースを自動生成

取りうる入力範囲において、検証命題に矛盾がないことを証明

モデル内の信号依存性解析やその結果に基づくスライスモデルの作成が可能

解析

制御モデル

設計エラーを検出• デッドロジック• ゼロ割• オーバーフロー

スライス

要求仕様

検証仕様 検証モデル

制御モデル

モデルスライサー

Page 10: 制御フロー解析でモデルのデバッグ・リファクタリングを大きく … · 1.デバッグ・リファクタリングの課題 大規模モデルの特徴1 大規模モデルの特徴2

10

モデルスライサー依存関係を解析するワークフロー

元のモデル

強調表示したモデル (※)

簡略化したモデル (※)

変更

変更したモデル

モデルの生成

着目点の決定

繰り返し

調査

- シミュレーション

- デバッグ

- 形式検証

変更を反映

※自動生成可能

Page 11: 制御フロー解析でモデルのデバッグ・リファクタリングを大きく … · 1.デバッグ・リファクタリングの課題 大規模モデルの特徴1 大規模モデルの特徴2

11

例題:モデルの予期せぬ動作を解決

1.依存関係の強調表示

2.強調表示されたモデルの調整

3.スタンドアロンの簡略化モデルの作成

問題点の特定

Page 12: 制御フロー解析でモデルのデバッグ・リファクタリングを大きく … · 1.デバッグ・リファクタリングの課題 大規模モデルの特徴1 大規模モデルの特徴2

12

依存関係の強調表示モデル内の信号伝播を強調表示する

任意のブロックから指定した方向に強調表示する

開始点が複数ある場合は強調表示を色分けする

下流方向上流方向

開始点を追加

強調表示を可視化

サブシステム内の信号伝播を強調表示

開始点

開始点

Page 13: 制御フロー解析でモデルのデバッグ・リファクタリングを大きく … · 1.デバッグ・リファクタリングの課題 大規模モデルの特徴1 大規模モデルの特徴2

13

強調表示されたモデルの調整解析範囲を制限する

指定したシミュレーション時間枠で使用された

ブロックのみを強調表示する (動的解析)

指定したブロックを解析から除外する

Switchブロックの入力に制約を追加する

シミュレーション時間枠

制約を追加

時間枠を指定

除外点を追加

Page 14: 制御フロー解析でモデルのデバッグ・リファクタリングを大きく … · 1.デバッグ・リファクタリングの課題 大規模モデルの特徴1 大規模モデルの特徴2

14

スタンドアロンの簡略化モデルの作成シミュレーション、デバッグを簡略化する

強調表示した部分の簡略化モデルを作成する

簡略化モデルに除外点、制約点を追加する

作成

変更

Page 15: 制御フロー解析でモデルのデバッグ・リファクタリングを大きく … · 1.デバッグ・リファクタリングの課題 大規模モデルの特徴1 大規模モデルの特徴2

15

目次

1.デバッグ・リファクタリングの課題 大規模モデルの特徴1

大規模モデルの特徴2

2.デバッグ・リファクタリングの解決策 モデル検証ソリューション

モデルスライサー

例題:モデルの予期せぬ動作の解決

依存関係の強調表示

強調表示されたモデルの調整

スタンドアロンの簡略モデルの作成

3.モデルスライサーの適用例 Stateflowの検証

バリアントシステムの簡略化

まとめ

Page 16: 制御フロー解析でモデルのデバッグ・リファクタリングを大きく … · 1.デバッグ・リファクタリングの課題 大規模モデルの特徴1 大規模モデルの特徴2

16

Stateflowの検証Stateflowのチャートでロジックを視覚的に検証する

静的解析結果 動的解析結果 時間枠を指定した解析結果

Page 17: 制御フロー解析でモデルのデバッグ・リファクタリングを大きく … · 1.デバッグ・リファクタリングの課題 大規模モデルの特徴1 大規模モデルの特徴2

17

バリアントシステムの簡略化アクティブな条件のみの簡略化モデルを作成する

元モデル 強調表示したモデル 簡略化したモデル

Page 18: 制御フロー解析でモデルのデバッグ・リファクタリングを大きく … · 1.デバッグ・リファクタリングの課題 大規模モデルの特徴1 大規模モデルの特徴2

18

目次

1.デバッグ・リファクタリングの課題 大規模モデルの特徴1

大規模モデルの特徴2

2.デバッグ・リファクタリングの解決策 モデル検証ソリューション

モデルスライサー

依存関係の強調表示

強調表示されたモデルの調整

スタンドアロンの簡略モデルの作成

例題:モデルの予期せぬ動作の解決

3.モデルスライサーの適用例 Stateflowの検証

バリアントシステムの簡略化

まとめ

Page 19: 制御フロー解析でモデルのデバッグ・リファクタリングを大きく … · 1.デバッグ・リファクタリングの課題 大規模モデルの特徴1 大規模モデルの特徴2

19

まとめモデルのデバッグ・リファクタリングにはモデルスライサーが有効

デバッグの効率化

リファクタリングの効率化

制御ロジック抽出の効率化

Page 20: 制御フロー解析でモデルのデバッグ・リファクタリングを大きく … · 1.デバッグ・リファクタリングの課題 大規模モデルの特徴1 大規模モデルの特徴2

20

ご清聴ありがとうございました

© 2016 The MathWorks, Inc. MATLAB and Simulink are registered trademarks of The MathWorks, Inc. See www.mathworks.com/trademarks for a list of additional trademarks. Other product or brand names may be trademarks or registered trademarks of their respective holders.

Accelerating the pace of engineering and science