目次 MBD エンジニアのキャリア種別 モデリング編 要求表現 タイミングチャート 状態遷移図 状態遷移図の描き方 書き方のルール 教育方法 MBD 開発環境エンジニア編 MBD 開発環境の 改善 最後に スライド番号 2

Similar documents
2011 年 11 月 17 日 状態遷移の種類と形式検証の使いどころ アイシン エィ ダブリュ株式会社 技術本部解析技術部 主任研究員久保孝行 AISIN AW CO., LTD. All rights reserv ed. Do not reproduce or distribute.

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

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

スライド 1

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

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

RaQuest MindManager

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

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

コンピュータ工学講義プリント (7 月 17 日 ) 今回の講義では フローチャートについて学ぶ フローチャートとはフローチャートは コンピュータプログラムの処理の流れを視覚的に表し 処理の全体像を把握しやすくするために書く図である 日本語では流れ図という 図 1 は ユーザーに 0 以上の整数 n

CW6_A1441_15_D06.indd

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

Microsoft Word - ModelAnalys操作マニュアル_

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

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

<4D F736F F F696E74202D D4C82F08A B582BD A A F2E707074>

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

Microsoft PowerPoint - visualprogram.ppt

CodeRecorderでカバレッジ

Microsoft Word - P doc

2.Picasa3 の実行 デスクトップの をダブルククリック 一番最初の起動の時だけ下記画 面が立ち上がります マイドキュメント マイピクチャ デスクトップのみスキャン にチェックを入れ続行 これはパソコン内部の全画像を検索して Picasa で使用する基本データを作成するものですが 完全スキャン

(Microsoft PowerPoint - \221g\202\335\215\236\202\335\203\\\203t\203g\203E\203F\203A\215H\212w No03\201i\224z\225z\227p\201j.pptx)

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

Using VectorCAST/C++ with Test Driven Development

クラス図とシーケンス図の整合性確保 マニュアル

PowerPoint2003基礎編

目次 Adobe PDF でチェック & コメントのススメ チェック & コメントをはじめる前に チェック & コメントでよく使うツール ( その ) 6 チェック & コメントでよく使うツール ( その ) 8 コメントの確認と返信 0 共有レビュー機能で効率をさらにアップ 共有レビュー機能を使う

障害管理テンプレート仕様書

Microsoft PowerPoint - アイシンAWエキスポ発表資料.ppt

YouTube アフィリエイトスタートガイド 目次 著作権について... 2 使用許諾契約書... 2 YouTube アフィリエイトスタートガイドの流れ... 4 ステップ 1 GoogleAdsense 取得用の Google アカウントを作成... 7 ステップ 2 GoogleAdsense

図 1 アドインに登録する メニューバーに [BAYONET] が追加されます 登録 : Excel 2007, 2010, 2013 の場合 1 Excel ブックを開きます Excel2007 の場合 左上の Office マークをクリックします 図 2 Office マーク (Excel 20

JACi400のご紹介~RPGとHTMLで簡単Web化~

<4D F736F F D20838F815B836882C54C494E E DEC90AC283194C529>

目次 1 Adobe PDF でチェック & コメントのススメ 2 チェック & コメントをはじめる前に 4 チェック & コメントでよく使うツール ( その 1) 6 チェック & コメントでよく使うツール ( その 2) 8 コメントの確認と返信 10 共有レビュー機能で効率をさらにアップ 12

ことばを覚える

WBS_Ch0.indd

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

Presentation Title

生存確認調査ツール

テスト設計コンテスト

Microsoft PowerPoint - B3-3_差替版.ppt [互換モード]


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

PowerPoint2007基礎編

やってみようINFINITY-写真管理 編-

040402.ユニットテスト

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

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

スライド 1

2. 目的 1RationalRose を利用する場合にプログラム仕様書としての最低限必要な記述項目を明確にする 2 プログラム仕様書として記載内容に不足がない事をチェックする 3UML の知識があるものであれば 仕様書の内容を理解できること 4Rose にて入力した内容を SoDaWord を利用

Microsoft Word - ファイル管理Win10 (1版)

回路 7 レジスタ ( 同期イネーブル及び非同期リセット付 ) 入力データを保持するのに用いる記憶素子 使用用途として, マイクロプロセッサ内部で演算や実行状態の保持に用いられる Fig4-2 のレジスタは, クロック信号の立ち上がり時かつ 信号が 1 のときに外部からの 1 ビットデータ R をレ

PAT-LIST-GLS V3.0 新機能のご紹介 ここでは PAT-LIST-GLS Ver2.1.1.X からの機能アップについて説明しています 特に 新しい TPL ファイル 2.0 は従来のバージョンの GLS ではお使いになれませんので 必ず本書 をお読みになり ご利用をお願い致します 1

1. USB の VCP( 仮想 COM ポート ) について USB の VCP( 仮想 COM ポート ) は USB を非同期シリアル通信として使用するための USB のドライバです PC には VCP ドライバをインストールする必要があります USB の VCP( 仮想 COM ポート )

Microsoft PowerPoint - LogicCircuits11note.ppt [互換モード]

TFTP serverの実装

Tobii デバイスドライバ 完全削除と再インストール手順 作成 :2018/5/17 Unicorn 小川

Eclipse マニュアル <作成目的> Eclipse のインストール方法などを紹介したページはいろいろありますが 専門用語がわからない初心者でもわか りやすく Eclipse のインストール方法 基本操作などをまとめたマニュアル作成を目的としています <目次> 1 Eclipse のインストール

PowerPoint プレゼンテーション

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

書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf

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

JavaScriptで プログラミング

教材ドットコムオリジナル教材 0から始めるiアプリ (3) 0 から始める i アプリ (3) i アプリを作れるようになったならば次は公開です i アプリでは前述したように たとえエミュレータで動作確認ができたからといって実機のテストを怠ってはいけません 実機での処理速度 発色 プログラム等の耐性

やさしくPDFへ文字入力 v.2.0

スライド 1

ミガロ.製品 最新情報

作業環境カスタマイズ 機能ガイド(応用編)

日経ビジネス Center 2

CoIDE 用 F4D_VCP の説明 V /07/05 USB の VCP( 仮想 COM ポート ) による非同期シリアル通信を行うプログラムです Free の開発ツール CoIDE で作成した STM32F4 Discovery 用のプロジェクトです プログラムの開始番地は 0x

Studuinoプログラミング環境

Cisco ViewMail for Microsoft Outlook クイックスタートガイド (リリース 8.5 以降)

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

改訂履歴 改訂日付 改訂内容 2014/11/01 初版発行 2017/01/16 Studuino web サイトリニューアルに伴う改訂 2017/04/14 Studuino web サイトリニューアルに伴うアクセス方法の説明変更 2018/01/22 Mac 版インストール手順変更に伴う改訂

Microsoft Word - NaviPortalFAQ-master.doc

UMLプロファイル 機能ガイド

編集する ファイルを開く マイクロデータの設定を行うファイルまたはファイルを開きます 開かれたファイルは編集画面に表示されて ブラウザ表示した時のプレビューも同時に表示されます HTML ファイルの選択 編集する ファイルを開くためにメインメニューから ファイル 開く を選びます ファイル選択ダイア

情報処理

変更要求管理テンプレート仕様書

日本機械学会 生産システム部門研究発表講演会 2015 資料

AppsWF ワークフロー設定ガイド Ver.1.1 株式会社オプロ

Microsoft Word - VB.doc

Microsoft Word - 206MSAccess2010

PowerPoint プレゼンテーション

目次 第 1 章はじめに 本ソフトの概要... 2 第 2 章インストール編 ソフトの動作環境を確認しましょう ソフトをコンピュータにセットアップしましょう 動作を確認しましょう コンピュータからアンインストー

D5-2_S _003.pptx

スライド 1

スターターガイド

XAMPP で CMS のお手軽 テスト環境を手に入れよう 2011/5/21 上村崇 1

Microsoft PowerPoint - LogicCircuits09note.ppt [互換モード]

グローバルナビ ゼネカタ WEB のグローバルナビ (=どのページに遷移しても上部に共通して表示されているメニュー群) の機能は 主に下記のとおりです なお スマートフォンの場合はグローバルナビの形状が異なりますが ほぼ同等の機能を上部およびサイドメニューに用意しています グローバルナビの機能 (P

Microsoft Word - XPC4ソフトマニュアル.doc

グーグル検索マクロの使い方

どのような便益があり得るか? より重要な ( ハイリスクの ) プロセス及びそれらのアウトプットに焦点が当たる 相互に依存するプロセスについての理解 定義及び統合が改善される プロセス及びマネジメントシステム全体の計画策定 実施 確認及び改善の体系的なマネジメント 資源の有効利用及び説明責任の強化

モデリング操作ガイド アクティビティ図編

次の病院 薬局欄は 氏名 欄に入力された値によって入力すべき値が変わります 太郎の行く病院と花子の行く病院が必ずしも同じではないからです このような違いを 設定 シートで定義しておきましょう 太郎の行く病院のリストを 太郎 花子の行く病院のリストを 花子 として 2 つのリストが定義されています こ

情報リテラシー 第1回

デジタル回路入門

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

Transcription:

MBD エンジニアの仕事術 アイシン エィ ダブリュ株式会社 技術本部解析技術部 主任研究員久保孝行 スライド番号 1

目次 MBD エンジニアのキャリア種別 モデリング編 要求表現 タイミングチャート 状態遷移図 状態遷移図の描き方 書き方のルール 教育方法 MBD 開発環境エンジニア編 MBD 開発環境の 改善 最後に スライド番号 2

アイシン エィ ダブリュ株式会社 社名設立資本金代表者売上高主要製品従業員数本社所在地 基本情報 アイシン エィ ダブリュ株式会社 1969 年 5 月 15 日 264 億 8,000 万円 取締役社長石川勉 連結 8,545 億円 (2011 年 3 月期 ) 単独 7,927 億円 (2011 年 3 月期 ) オートマチックトランスミッション ハイブリッドシステム カーナビゲーションシステム 連結 19,545 名 (2011 年 3 月 31 日現在 ) 単独 12,903 名 (2011 年 3 月 31 日現在 ) 444-1192 愛知県安城市藤井町高根 10 番地 0566-73-1111( 代表 ) アイシン エィ ダブリュ 本館 スライド番号 3

アイシン エィ ダブリュ駆動系製品 FR 多段 FR 多段 :4~8 速ラインナップ 8 速 A/T: トヨタ自動車 6 速 A/T:VW,BMW 等 スライド番号 4

アイシン エィ ダブリュ駆動系製品 FF 多段 FF 多段 :4 速 ~6 速をラインナップ 6 速 A/T: ボルボ オペル サーブ ランドローバー プジョー フォルクスワーゲン等 スライド番号 5

アイシン エィ ダブリュ駆動系製品 FR FF がラインナップ FF CVT: トヨタ自動車 マツダ等 FR ハイブリッドシステムトヨタ自動車 スライド番号 6

カーナビゲーション カーナビゲーションシステムは トヨタ自動車への純正カーナビが中心その他 アウディ純正日本向け GM 純正北米向け イクリプス市販日本向け 等 スライド番号 7

NAVIelite 詳細は WEB を http://www.aisin-aw.co.jp スライド番号 8

自己紹介 氏名 : 久保孝行 経歴 1994 年アイシン エィ ダブリュへ入社 FF5 速 A/T の制御開発を担当 2002 年 MBD:HILS 装置の開発を担当 MATLAB/Simulink を本格的に使い始める 2009 年 IPA から SEC ジャーナル最優秀論文書受賞 近年は MBD の教育を含め MBD 開発環境改善活動に従事 スライド番号 9

自己紹介 JMAAB ボードメンバー (7 社 9 名 ) http://jmaab.mathworks.jp/ スライド番号 10

自己紹介 統合系プロジェクト 2010 年度 2011 年度 モデルベース開発系の委員として活動 http://sec.ipa.go.jp/about/committee_com.html スライド番号 11

Car Testing and Car Designing Japan 2012 2012 年 2 月 7,8,9 日開催 http://cartesting2012.jp/ 2 月 7 日も講演があります スライド番号 12

目次 MBD エンジニアのキャリア種別 モデリング編 要求表現 タイミングチャート 状態遷移図 状態遷移図の描き方 書き方のルール 教育方法 MBD 開発環境エンジニア編 MBD 開発環境の 改善 スライド番号 13

MBD と V プロセスの関係 Virtual World ハート 機能要求仕様書制御対象モデル実制御対象 実 ECU ハート アクチュエータセンサ結合ハート 制御ソフト Real World 機能保障 MILS 結合 制御機能要求仕様書 制御装置モデル RCP HILS 機能保障実車評価 ACG 設計 制御対象モデル 1 制御装置モデル 3 ACG MILS 2 RCP 4 5 HILS Code verification 実車評価 検証 スライド番号 14

アイシン AW 版 :MBD プロセス詳細 要件 制御対象モデル 要求分析 機能モデル 2 工程に分かれる 設計 制御設計 テストモデル 制御対象モデル設計 実装モデル Model-Based Design テスト設計実装設計 C ソース 機能評価 MILS 一致性検証 Automatic C-code generation RCP モデル解析 Cコード静的解析 PILS モデルの評価 結合検査 単体検査 MBD 開発環境エンジニア 実機評価要求検証 適合 HILS 機能評価 生成コードの評価 検証 validation verification Model-Based verification スライド番号 15

アイシン AW の MBD エンジニア定義 MBD エンジニアとは モデルベース開発に携わるエンジニアのことである キャリア種別 機能モデルエンジニア ( 制御モデル前半 ) 実装モデルエンジニア ( 制御モデル後半 ) プラントモデルエンジニア MBD 開発環境エンジニア 特徴 制御機能が実現されたモデルを作成する 自動車 A/T などのドメインの知識と 制御に対して高度なスキルを必要とする ソフトウェアに関する高度なスキルと共に Simulink からどの様なコードが出力されるのか正しい知識を持ち 仕組みを知った上でモデリングができる Simulink に対する高度なスキルが必要 制御対象 ( プラント ) をモデリングするエンジニアです Simulink モデルを使った開発環境を改善する ツール作成や ガイドラインの制定も行う スライド番号 16

コントローラモデルの開発は 2 工程 機能モデルを開発する工程 機能を作りこむスパイラル開発最適な制御 機能を考える 実装モデルを開発する工程 品質を作りこむスパイラル開発仕様を変えず バグ 0 を目指す 抽出 分析 矢印は外に向かって大きくなる 抽出矢印は中心 ( ゴール ) 向かっ行く 分析 検査 設計 検査 設計 目的 : 機能を増やす 目的 : 品質を良くする スライド番号 17

エンジニアのスキルの配分イメージ 機能モデル設計エンジニア 実装モデル設計エンジニア Simulink ドメイン ソフトウェア技術 ドメイン Simulink ドメインの知識が重要見栄えを良くするよりも 新たな機能開発を重視する 全体を見渡し 本当に必要な手段を新たな発想を持って 開発できる事が重要 品質を確保する為に 非常に高度なモデルスキルとソフトウェアスキルが必要である 機能を増やすよりも品質を上げる事に主眼を置ける人材が必要である 求められるスキルよりは 性格の方が重要であると考えている スライド番号 18

MBD エンジニアの仕事術 モデル作成編 スライド番号 19

目次 MBD エンジニアのキャリア種別 モデリング編 要求表現 タイミングチャート 状態遷移図 状態遷移図の描き方 書き方のルール 教育方法 MBD 開発環境エンジニア編 MBD 開発環境の 改善 スライド番号 20

要求理解 : シナリオ作成へ 最初に 要求を理解し 要求を明確化します 次に 制御モデルの設計が始まります まずは 要求を理解する それには シナリオを作る事が効果的 シナリオを作るとは? 頭の中で仮想シミュレーションし やりたいことを実現すると どの様になるのかを表現する その表現は 自然言語だけでなく 図や表を用いると良い スライド番号 21

シナリオ作成と UML の関係 シナリオ表現の図とは? UML なのか? UMLの図は 要求を理解し ソフトウェアを作成するために必要な図として定義された 図を書けば要求を理解できるのではない 図を描く目的 要求を理解する 理解した結果を示す ソフトウェアを作成するのに必要だから 図 表を描く 抽出 分析 要求段階では 設計 分析で色々な図や表を使ってスパイラル的に工程が繰り返えされる 検査 設計 スライド番号 22

シナリオ作成と UML の関係 要求理解の為にシナリオを作成するそれに 必要な図を使う 必要な図は開発対象 開発プロセスによって異なる 決められた図 表を描けば 要求が理解でき ソフトウェアが作れる ケースバイケースで 要求を理解するために 必要な図や表を使えば良い スライド番号 23

シナリオ作成に有効な図は? 時間変化によって 出力値が変わる制御開発に適した図は? タイミングチャート が最も活用しやすい シナリオ = ユースケース毎のタイミングチャート タイミングチャートは 入力に対する あるべき振る舞いを定義する タイミングチャートを使って表したシナリオは テスト工程でも活用できる スライド番号 24

自動販売機を例題にする 入力 : お金の種類 :50 円 100 円 入力 : ボタンの種類 :150 円ジュース購入ボタン 200 円ジュース購入ボタン 動作 : お金を入れて 金額が満たされた状態で購入ボタンを押すと ジュースが購入できる スライド番号 25

自動販売機の状態遷移例 まずは どの様な流れになるのかシナリオを作る ユースケースを検討する 150 円のジュース購入例 ( 合計 200 円投入 :50 円のおつり出力 ) 1. 50 円 + 50 円 + 50 円 + 50 円 ジュース1 購入 2. 50 円 + 50 円 + 100 円 ジュース1 購入 まずは ユースケース 1 についてタイミングチャートを描いてみよう スライド番号 26

タイミングチャート例 ユースケース 1 50 円 1 次入力信号中間信号出力信号 100 円 150 円ジュース 200 円ジュースジュース出力おつり 150 円ジュース 50 円 時間 スライド番号 27

シナリオ作成例 : タイミングチャート タイミングチャートの作成には 信号のレイヤに対して 4 つの考え方が必要 1 次入力信号 想定するシステムへの直接の入力信号 2 次入力信号あるいは中間信号 1 次入力信号を用いて 作られた信号 出力信号を得るために 必要不可欠な中間信号 出力信号 想定するシステムの出力値 他への影響 システムの出力によって 他のモジュールが受ける影響 画面の枠を分けても良いし 混ぜて書いても良い 観点として 4 つある事を意識する スライド番号 28

タイミングチャート例 ユースケース 1 1 次入力信号 50 円 100 円 150 円ジュース 200 円ジュース 中間信号出力信号 ジュース出力 おつり 総額 150 円ジュース 50 円 時間 スライド番号 29

タイミングチャート以外のシナリオ表現状態遷移を使ったシナリオ作成例 スライド番号 30

状態遷移図を使ったシナリオ表現例 お金の組み合わせは 非常に多いので タイミングチャートでは数が多くなりすぎる 状態遷移図を使うことで 複数のユースケースをまとめて表現できる ユースケース 1 ユースケース 2 を表現 意味合計 50 円 意味合計 100 円 意味合計 150 円 [50 円 ] [50 円 ] [50 円 ] ユースケース 1 / ジュース 1 出力返金 50 円 ユースケース 2 [100 円 ] 意味合計 200 円 [50 円 ] [ ジュース 1 購入 ] スライド番号 31

ミーリーマシンを用いた状態遷移図の例 200 円投入までの全てのユースケースを表現した状態遷移図 [100 円 ] / ジュース 1 出力 意味合計 50 円 意味合計 100 円 意味合計 150 円 [50 円 ] [50 円 ] [50 円 ] [100 円 ] [ ジュース 1 購入 ] [50 円 ] / ジュース 1 出力返金 50 円 [100 円 ] 意味合計 200 円 [ ジュース 1 購入 ] / ジュース 2 出力 [ ジュース 2 購入 ] スライド番号 32

シナリオ表現としての状態遷移図 ユースケースが多すぎるものは 状態遷移図を使うことで 複数のユースケースをまとめた シナリオ を表現できます これによって 全体の振る舞いが解り 仕様を明確にする事ができる 意味合計 50 円 意味合計 100 円 [100 円 ] 意味合計 150 円 / ジュース 1 出力 [50 円 ] [50 円 ] [50 円 ] [100 円 ] [ ジュース 1 購入 ] [50 円 ] / ジュース 1 出力返金 50 円 [100 円 ] 意味合計 200 円 [ ジュース 1 購入 ] 質問 : この状態遷移図は完成している / ジュース2 出力 [ ジュース2 購入 ] だからコード生成しても良い スライド番号 33

シナリオ表現としての状態遷移図 ユースケースが多すぎるものは 状態遷移図を使うことで 複数のユースケースをまとめた シナリオ を表現できます これによって 全体の振る舞いが解り 仕様を明確にする事ができる 注意点 このような状態遷移図は そのままソフトウェアとして実装する事はできない もちろん形式手法によるチェックも意味がない 理由は この状態遷移図は 要求を理解するため描かれた シナリオ だからです ここから 実装に必要な情報を抜き出す為の 分析 が必要である スライド番号 34

状態遷移図の分析観点 : 状態変数 状態変数には 記憶と状態の二つが混在していることに気をつけるべきである 記憶 ( 無限個 ) 状態 ( 有限個 ) 記憶 : 無限個中身の量 ( ml) 中身の温度 ( ) 発熱量 ( カロリー ) 状態 : 有限個空 満水沸騰前 沸騰中 沸騰後 スライド番号 35

状態遷移図の表現 : 記憶の例 状態遷移図 ( ミーリーチャート ) はフリップフロップ ( 論理演算 ) の振る舞い説明の為に作られたが あくまで振る舞いを説明するためのものであり コード生成を意識した表現方法ではない S 0 0 入力 R 0 1( リセット ) 出力 Q 保持 0 Q=(!R)&&(S Q) 真理値表や 論理演算 1 1 0 1 1 0( 不定 ) 変換 変換の方向に注意 (0,0)/0 (x,1)/0 /0 振る舞いを説明 (1,0)/1 Q1 Q2 (x,1)/0 (0,0)/1 ミーリーチャート (1,0) Q1/0 Q2/1 (x,1) ムーアーチャート スライド番号 36

状態遷移図からコード生成 (0,0)/0 (x,1)/0 /0 Q1 (1,0)/1 (x,1)/0 ミーリーチャート Q=(!R)&&(S Q) Q2 (0,0)/1 記憶 変換 (1,0) Q1/0 Q2/1 (x,1) ムーアーチャート 最適化されたコードは自動生成されない フリップフロップ回路の振る舞いを書いて 最適化された論理演算が出力されるか? コード生成する状態遷移図は 記憶と状態を区別した物を対象とする スライド番号 37

状態遷移図の整理例 記憶 ( 無限個 ) 状態 ( 有限個 ) 金額の組み合わせや ジュースの種類は 有限個と考えるかも知れない しかし 両方共に 数の設定を増減することができるので 無限と考えるべきである 金額やジュースの種類は 記憶 に分類される項目であり 状態として扱ってはいけない つまり シナリオで用意した以外にも お金の組み合わせや ジュースの種類があると判断すべきである スライド番号 38

状態遷移図の分析観点 : システム お金の投入毎処理するのか? お金が投入された は 不定期なイベント連続投入された場合は 高速な応答性が要求される 状態遷移図のような高度な制御を 高速起動させるべきではない 対応方法投入金額を高速計算する部分を外部に作る 状態遷移は 定期的に外部へ総額を問い合わせるだけにする 正しい状態遷移図は正しい システム設計の元で成立する スライド番号 39

AUTOSAR ソフトウェアプラットフォームの概念 高負荷 低速 定期的な処理 XX 制御 コンポーネント XX 制御 コンポーネント 何をアプリケーションとして何をシステム側とするのか構造的な設計思想が必要 不定期あるいは 高速な処理 スライド番号 40

自動販売機の動作例 状態遷移の分析観点 記憶と状態の区別 システムの考え方を前提に 自動販売機の 状態 を検討する この例では 動作の異なるポイント を状態と考えると 3つに切り分けができる 初期状態 ( 待機 ) ボタン待ち( ボタンを光らせる ) ジュースの取り出し ( 排出 ) 待機 / ジュース 1 出力 [50 円 ] 意味合計 50 円 [100 円 ] ボタン待ち 意味合計 100 円 [100 円 ] [50 円 ] [50 円 ] 意味合計 150 円 [ ジュース 1 購入 ] [50 円 ] 排出 / ジュース 1 出力返金 50 円 [100 円 ] 意味合計 200 円 / ジュース 2 出力 金額のチェック [ ジュース 2 購入 ] [ ジュース 1 購入 ] スライド番号 41

表で整理して 状態遷移図へ 表を使って情報を整理し 状態遷移図へ変換する 状態名 初期状態 ボタン動作待ち 遷移条件 1 遷移先条件アクション遷移条件 1 遷移先条件アクション遷移条件 2 遷移先 コイン投入お金のカウントボタンが押される && 金額が満たされる排出ジュースの取り出しタイマ成立初期状態 [ ボタン ] 初期状態 [ コイン投入 ] ボタン待ち 購入可能なジュースのライトを点灯させる [ タイマー ] 条件アクション返金仕様検討で使う状態遷移表は 遷移条件 1 排出終了シンプルな物を使うべき 遷移先初期状態必要最低限の事を表に書き込み 整理する 条件アクション初期化 排出 思考速度を落とさないシンプルさが重要 検証用 (STM) の表と 設計用 (STT) の表は異なる 排出 スライド番号 42

状態遷移図に対するタイミングチャート ユースケース 1 1 次入力信号 150 円ジュース 200 円ジュース 総額 要求が育っていくスパイラル分析抽出時間 中間信号 コイン投入ジュース1 購入可能 不可 可能 ジュースのライト制御機能の追加消灯 出力信号 ジュース出力おつり 点灯 検査 点滅 150 円ジュース 50 円 設計 スライド番号 43

要求の整理と分析 要求 要件の整理は忘れずに 内容重要度種別 お金は 少なくとも 50 円と 100 円が使える ジュースは 2 種類以上 購入可能金額より多く入れた場合は お釣りが返却される お金を入れて何もしないと 一定時間でお金が返却される 購入金額が満たされ 購入可能に到達したことが購入者に解るようにする ボタンを押してから 5 秒以内にジュースが取り出し口に来ている 必須要件必須要件希望要件必須要件 システム要件 システム要件 機能要求 機能要求 機能要求システム要件 非機能要求 スライド番号 44

MBD エンジニアの 仕事の流れ シナリオを作る 頭の中で仮想シミュレーション 適切な時期に PC 上のシミュレーションへ Simulink でモデリング! スライド番号 45

要求からモデリング 実現したい機能とシナリオの両方を設計し シミュレーションによって検証する 要求検証表現を行っておく 詳細は 要求開発プロセス WG 発行のガイドラインを参考にしましょう スライド番号 46

要求分析の仕事術 要求を理解するにはシナリオを作る シナリオは タイミングチャートが使いやすい タイミングチャートは 4 つの観点が必要 タイミングチャートは 検証にも使える 状態遷移図もシナリオ表現に使える 状態遷移図は 記憶と状態の区別が必要 状態遷移図は システムの分析が必要要求分析工程では 必要な図 表を書く 決められた図 表を書くことから始まる事はない! 自然言語だけでは伝わらない部分が多いので 図 表は積極的に活用しよう スライド番号 47

目次 MBD エンジニアのキャリア種別 モデリング編 要求表現 タイミングチャート 状態遷移図 状態遷移図の描き方 書き方のルール 教育方法 MBD 開発環境エンジニア編 MBD 開発環境の 改善 スライド番号 48

状態遷移の書き方 状態遷移図は さまざま書き方ができる そのため 他者からの理解度が極端に悪い図もかけてしまう ( 自分だけが満足してる図 ) しかし 書き方を限定することで 他者からの理解度を上げる事ができる アイシン AW では 書き方を 2 種類に限定した A 型 : ウォーターフォール型状態遷移図 B 型 : 多状態 多遷移 A 型 B 型の書き方についての説明を行う スライド番号 49

状態遷移図の記述ルール制定について アイシン エィ ダブリュでは 1995 年から状態遷移表を用いた制御開発を行ってきた 当時から拡張された意味論を使用しており 現在の Stateflow と同等である 状態の階層化 並列化が可能 イニシャライズと通常実行の区別 遷移条件と条件アクションが使用可能 自己遷移 インナートランジションが使用可能 タイマーによる強制遷移が標準ルール残念ながら 書けるだけで 自動コード生成ができない Stateflow へ 表 図 : 状態遷移図の描き方は 15 年間の状態遷移に関する設計的な考え方を継承している スライド番号 50

A 型 : ウォーターフォール型状態遷移図 状態は上から下に流れるように 記述する リセット 下へ遷移する条件は左側へ記述する 遷移条件は真ん中より上側へ記述する 遷移線よりも左側に記述したほうが全体のバランスが良い 初期 初期 中期 終了の 3 つに分けて図を描く中期は 初期遷移から流れる系統毎に並列に並べる 状態の大きさには意味は持たせない 状態の大きさが状態の優先度を示したり 状態の重要度を示す事はない 上へ遷移する条件は右側へ記述する 遷移条件は真ん中より下側へ記述する 遷移線よりも右側に記述したほうが全体のバランスが良い 終了 制御は 不安定から安定へ ウォータフォール同様 上流に戻すのはリスクがある スライド番号 51

B 型 : 多状態 多遷移 2. 遷移条件が多い場合は パラレルチャート化し 外へ出す 1. インナートランジションを活用し遷移線をまとめる [in(a)] {function f1} i[n(b)] {function f2} function f1 function f2 haschange(st) 状態変数をチェック [ST==A] [ST==B] A B [in(c)] {function f3} [in(d)] {function f4} function f3 function f4 [ST==C] 状態変数と一致した状態へ遷移する [ST==D] C D [in(e)] {function f5} function f5 [ST==E] E スライド番号 52

A,B 混在型 : 状態遷移図の描き方 状態遷移図は A 型ウォーターフォール型を基本に多遷移の B 型を組み合わせる事で全ての表現が可能 状態遷移は適切な記述を行えば 爆発しない スライド番号 53

具体的な事例説明 拡張階層構造化状態遷移表設計手法 Ver2.0 P54 から 原本をご参照ください 状態遷移表 (STM) から状態遷移図へ変換する スライド番号 54

subcartmains 2 2 2 2 2 2 2 1 1 1 1 1 1 1 [in( MainS.S2) ] {fcn_ S2( ) ;} [in( MainS.S3)] {fcn_ S3( ) ;} [in( MainS.S4)] {fcn_ S4( ) ;} [in( MainS.S5)] {fcn_ S5( ) ;} [in( MainS.S6)] {fcn_ S6( ) ;} [in( MainS.S7)] {fcn_ S7( ) ;} [in( MainS.S8)] {fcn_ S8( ) ;} function function function function function function function fcn_ S2 f cn_ S3 f cn_ S4 f cn_ S5 f cn_ S6 f cn_ S7 f cn_ S8 MainS [Button==E1] 1 2 ON [Button==E4] [haschanged ( enum_ MainS) ] 2 2 2 2 2 1 1 [enum_mains==s3] 1 [enum_mains==s4] 1 [enum_mains==s5] 1 [enum_mains==s6] 1 [enum_mains==s7] 2 [enum_mains==s8] [Buton=E2] [enum_ MainS==S9] [Buton=E0] S0 S1 S2 [Buton=E3] S3 S4 S5 S6 S7 S8 S9 B 型を使った状態遷移表現 B 型は 状態遷移表 (STM) と 1 対 1 で全てのケースを表現できる 表の段階で 最適化されていれば それをB 型でそのまま表現できる 2 STM どおりの遷移条件を記載する 1 2 E5 E6 3 E7 7 E5 E6 E7 E8 E9 E8 8 遷移しない場合も記述は 何もしない事を示すために記述だけ残す 本当は 9 も同一に描けるが 録音は 特殊操作として分けた 1 スライド番号 55

A 型で表現 : インナートランジション活用 インナートランジションまとめられる遷移を一箇所で集約 スライド番号 56

A 型で表現 : 状態の考え方がおかしい部分 状態遷移表の指定どおりに変換すると 状態定義がおかしいところがある 外部から 子の状態へ直接遷移する遷移ができる場合は 状態の考え方がおかしい 状態内部は独立性が必要! スライド番号 57

A 型で表現 : 親子依存関係の見直し 親から子への直接遷移を防止した場合 独立性を保持した状態遷移ただし 状態数が多く 同じような制御内容の状態が複数個あるのがわかる 赤枠の中に状態が 8 個 スライド番号 58

A 型で表現 : 状態変数の分析 同じボタンが押された時に異なる動作をする場合 状態 が存在する と考えると 殆どのボタンは 記憶として整理できる 速度制御 : 遅 速度制御 : 早 赤枠の中は 状態が 2 個 再生 早送り 逆送り は 速度が異なるだけで 同じ 速度制御という状態 と定義 スライド番号 59

実際の教育方法について 状態遷移図は 分析 整理する事で A 型 B 型によって表現が可能である 状態遷移図の描き方を限定しても ルールの徹底には教育しかない しかし 描き方を制限するような教育は教え方を誤ると 受けいれてもらえず 効果がでてこない スライド番号 60

実際の教育方法について 教育内容を肯定的に受け入れさせる点を注意しなければならない 自らが書いた状態遷移図を 強制的にフォーマットに従った書き方に変更させると 最初に自分が書いた図の方が理解度が高いと感じるので 反感を買い 教育効果が薄まってしまう フォーマットへの変換方法を指導する場合 他人が書いた状態遷移図を共通フォーマットへ変換する演習を行うべきである スライド番号 61

演習例 修正点 : 縦型に修正 Wait は使用していないので 削除する 問題点 : 横型になっている 状態の中にある状態へ他の親から子へ直接遷移している この教育では 状態遷移図の制御内容に関して 内容を正確に理解する部分には力を入れない 形の修正を学ぶところに力を入れる 形を修正してから 状態の流れを理解してもらう スライド番号 62

B 型適応例 C B C 変更前 A B 先ほどの状態遷移図をよく見ると 同一条件で状態変化しているので B 型で描けば 最小化される A A B 全ての状態へ遷移線があり ディフォルト遷移の場所がおかしい C 標準フォーマットの教育他人の作った状態遷移図を標準フォーマットに修正する演習を繰り返す スライド番号 63

仕事術 : 記憶と状態の区別 入力信号から直接追いかけて作った状態遷移は 記憶を扱っており シナリオを表現している場合が多い 先ほどの事例では 入力信号に対する ボタンの役割 を状態として定義しています 教育用の例題は 記憶 でかつ シナリオ を表現しているものが多い ( ツール教育の為だから ) 正しい状態定義 : 出力の違いから考えたものが 正しい状態定義になる事が多い 先ほどの事例では モーター速度やモータ電流の違い 画面表示 音声の On,off 等から 状態を考えます スライド番号 64

仕事術 : 状態遷移の使い方まとめ シナリオ表現として使われている場合がある シナリオ表現は そのままでは 仕様ではない 自動生成しても ソフトウェアとして実装することはできない そこから 分析 最適化が必要である 分析 最適化 記憶と 状態の区別する システムの明確化を行う 図は 決まったフォーマットに統一する事を心がける インナートランジションを活用し 遷移線をまとめる パラレルチャートを活用し 状態数を削減する スライド番号 65

出力 on-off だから状態ではない ライトの点灯の制御で on-off の状態を作らない ライトは PWM の duty 比と周波数 で指定できる 意味 duty 比 消灯 0% 点滅 50% 点灯 100% [ ボタン ] 初期状態 [ コイン投入 ] ボタン待ち 購入可能なジュースのライトを点灯させる [ タイマー ] 単なる数値状態ではありません ハードウェアの構成と合わせて 考えましょう 排出 スライド番号 66

MBD エンジニアの仕事術モデリング編終了 アイシン エィ ダブリュ ( 株 ) 久保孝行 MBD エンジニアの仕事術 MBD 開発環境エンジニア編へ スライド番号 67

目次 MBD エンジニアのキャリア種別 モデリング編 要求表現 タイミングチャート 状態遷移図 状態遷移図の描き方 書き方のルール 教育方法 MBD 開発環境エンジニア編 MBD 開発環境の 改善 スライド番号 68

MBD エンジニアの仕事術 MBD 開発環境エンジニア編 スライド番号 69

MBD の現実 MBDを実践すると 意外に作業時間が多い 更に自動コード生成するとRAM ROMも多い! Simulinkでモデルを作成して 本当にメリットがあるのか? YESと答えられますか? 現実の開発工数 モデル設計 試作 ソフトウェア設計 制御設計 従来開発 モデル設計 号口 スライド番号 70

MBD 開発環境エンジニアは何をするのか? 先の問題定義に対して キー となるのが MBD 開発環境エンジニアの存在です Q:MBD 開発環境エンジニアは何をするのか? A:MBD の開発環境を改善するのが仕事です 自動コード生成用のカスマイズ例 S-function ブロックの作成 提供について スライド番号 71

ハンドコードとの統合 既存の C ソースを Simulink に組み込むには? 自力で S-function を作って tlc ファイルをカスタマイズするのは大変です legacy_code() 関数がお勧めです 2007 年にリリースされた MATLAB の標準機能です 御存知ですか? スライド番号 72

legacy_code(lct) テンプレートにしたがって必要な項目を入力すれば 既存の C ソースを S-function ブロックとして作成することができます コマンドを書いて実行すれば S-function ブロックが作られる スライド番号 73

legacy_code(lct) legacy_code() 関数を使って作成したブロックは シミュレーションも実行でき コード生成もできます S-function に対する詳しい知識が無くてもブロックを作る事ができます ヘルプ参照先 http://www.mathworks.co.jp/help/toolbox/simulink/slref /legacy_code.html (MATLAB コマンドラインに切り取って実行する ) web('c:/program Files/MATLAB/R2011b/toolbox/rtw/rtwdemos/html/ja/rtwde mo_lct_filter_script.html', '-helpbrowser') 後ほど WEB 掲載あり スライド番号 74

ハンドコードの活用 ハンドコードを活用する S-function ブロックを作った 作ってモデル設計者に提供しただけでは だめ S-function は通常のブロックと異なり 入力の型毎に沢山あり 機能モデルエンジニアは当然 実装モデルエンジニアも使いこなすのは大変 ***** ***** コード生成ブロックと入れ替える 作っただけでは 使われない! ***** ***** ***** ***** ***** ***** スライド番号 75

自動コード専用ブロックの専用置換ツール 手作業でブロックを置き換えると 大変な工数が必要となります 専用の自動置き換えプログラムを作り ボタンボタンを押すだけすだけ で自動置き換えできる環境を用意する これが 工数削減のコツ ブロックと共に 専用の自動置き換えツールを配布する 自動置換 スライド番号 76

ブロックライブラリの提供 ブロックライブラリの提供は 仕様意図が一目でわかる絵を表示 場合によっては 設定用の専用 GUI と共に提供する 例 : タイマー スライド番号 77

関数ブロック作成 GUI GUI を使って カスタムブロックを自動生成する 数式を入力し 数式が表示されたブロックを自動的に作成する 工数削減 + 可視化の向上の W メリット こういった開発環境を改善するのが MBD 開発環境エンジニアの仕事 スライド番号 78

改善用のツールはどうやって作るのか? Simulink APIを使いますいます API Application Program Interface Simulink API とは MATLAB のコマンド操作にて Simulink の外部から Simulink モデルを操作する事が可能なインターフェース関数 Simulink のヘルプに記載されています スライド番号 79

Simulink API 知ってますか? MATLAB のコマンドラインから >>Simulink >> open_system(' モデル名.mdl') これも Simulink API です コマンドラインから Simulink のモデルを操作する インターフェースの関数です *legacy_code() は Simulink/ モデル構築系 API スライド番号 80

簡単な SimulinkAPI 活用例 要望 :Constant ブロックの概要を表示したい 人が実施すると マウスをダブルクリックして ブロック注釈に " 概要 " を表示するように選択する モデル内に数十個ブロックがあった場合 作業は一瞬では終わりません ブロック注釈の追加 特に最新バージョンはウインドウの起動が遅い スライド番号 81

ブロック注釈の自動追加 Simulink APIを使う場合 わずか数行のプログラムを書いて 実行すれば 数秒で作業が終了する Simulink APIは非常に便利 (MATLAB コマンドラインに切り取って実行する ) modelh=get_param(bdroot,'handle'); CblockH=find_system(modelH,'LookUnderMasks','all','type','block'); for n1=1:length(cblockh) set_param(cblockh(n1),'attributesformatstring','%<description>'); end WEB 掲載予定 スライド番号 82

ブロック注釈の切り替え 制御仕様書として見る場合は 仕様意図を読み取るのが主な目的仕様意図が解る記述部分だけを表示する ( 概要部分だけ ) 関係ない表示が沢山あると理解しにくい 相反するニーズ 実装用のモデルとして チェックを行う場合は 実装に必要となる情報を全て表示する必要がある ダブルクリックで GUI を開いて確認していては工数がかかる 必要な情報は全て表示したい ブロックの説明を行うブロック注釈は プロセスの中で 表示の切り替えが必要 スライド番号 83

ブロック注釈の切り替え プロセスの途中で 注釈の切り替えが必要 機能モデルのレビュー 実装モデルのレビュー上記の 2 種類は 議論する内容が大きく異なり 必要とする情報量が異なる ブロック注釈の表示は プロセスによって切り替えが必要である ボタンを押すだけで切り替え可能な 環境を提供する スライド番号 84

概要の追加と日本語 英語 GUI の提供 ブロックの概要はいつ書くのか? Simulink モデルを作る最初の段階で サブシステム名を日本語で書き込んで作っておきます そして プロセスの途中で英語に置き換える という全体プロセスを考えます 変換時に日本語を ブロック概要に転記すれば良い 変換に使用するリスト スライド番号 85

概要の追加と日本語 英語変換 変換リスト 日本語 機能を作りこむとき 英語 コード生成するとき スライド番号 86

実際の API 活用例 ガイドライン準拠ガイドラインチェッカーチェッカーのカスタマイズとは スライド番号 87

実際のモデル ブロックサイズはめちゃくちゃ アノテーションの表示はない 作ったサブシステムの名前が全て Subsystem? ルール違反は どうやって調べますか? スライド番号 88

ルールのチェックは モデルアドバイザー ルールチェックは 純正ツールモデルアドバイザーを使えます スライド番号 89

ルール例 :MAAB ルールのチェック項目 R2011b では MAAB ルールの殆どがチェック可能となっている スライド番号 90

db_0042:inport ブロックの使用方法 自動チェック可能 Simulink 標準機能モデルアドバイザーによる MAAB ルールチェック OK NG 標準ツールは チェックが自動化できる ここまでは Simulink APIは必要ない スライド番号 91

モデルアドバイザーのカスタマイズ モデルアドバイザーは 自作した専用カスタムルールを追加できる カスタムルールは チェックだけでなく 自動修正自動修正 を追加できる 自動修正可能な場合は 修正ボタンが表示される スライド番号 92

モデルアドバイザーのカスタマイズ ボタンを押すだけで 自動修正 NG OK 自動修正によって 単純作業は激減する チェッカーは カスタマイズが必要です スライド番号 93

ツールは自社用にカスタマイズ マスワークスは共通の基板部分だけを提供している 各社ごとにプロセスの違い 考え方の違いで ニーズが異なる要求は 各社でカスタムツールを作り対応する そのための環境も合わせて提供するのが マスワークスの基本理念 モデルアドバイザー 自動修正を必要とする場合修正方法は自社専用のルールになるケースが多い Simulink Design Verifier ブロックを置き換えるルールは各社で作る スライド番号 94

Simulink Design Verifier( 形式手法 ) Simulink Design Verifier は 通常の仕組みの中に ブロック置換用の関数を呼び出す部分が用意されている 検査したい場所の考え方は各社異なる カスタマイズが前提! スライド番号 95

Simulink でモデルを作るだけが MBD ではない Simulinkでモデルを作成して 本当にメリットがあるのか? 開発環境を改善するツールの併用により品質向上と 工数低減を実現する MBDは 開発環境構築まで含めて MBD モデル設計 ソフトウェア設計 制御設計 モデル設計 キーワードは 改善 試作 従来開発 号口 Simulink API を使えば 効率アップ 自動化が可能ですそれらのカスマイズは それほど難しくありません スライド番号 96

MBD エンジニアの仕事術まとめ 自動化はプロセスに依存する 自動化は各社の規約に依存する プロセス全体を見て ニーズにあったツールをニーズのあるプロセスに提供する 次のプロセスにつなげる 次のプロセスでも活用する 例 カスタムブロックを作って提供するだけではだめ 見栄えの向上 工数削減ができるツールと一緒に提供する ブロック注釈の自動表示 プロセス全体の効率化 何処のプロセスで 注釈として表示すべき物を記述させるのか工程全体で 無駄のないように仕組みを考える スライド番号 97

最後に スライド番号 98

開発環境改善活動を実施しよう MBD 成功は 開発環境の改善です 開発環境を改善する専門チームを作る事をお勧めします ツール開発初期 : 技術レベルの高い会社に協力してもらいましょう 例えば マスワークス その他 ( パートナーシッププログラムを参考にしてください ) http://www.mathworks.co.jp/products/connections/serv_task _matl_index_ja_jp.html その後 自社の専門チームでレベルアップしましょう スライド番号 99

MATLAB を有効に活用していますか? 皆さんの MATLAB に対する知識レベルは? MATLAB どれだけ知ってますか? Simulink の全てのブロック種別 オプション設定とその効果 公開されている API の数 MATLAB 約 1400 個 Simulink 約 100 個 Simulink Coder 50 個 Verification and Validation 約 50 個 本日の講演で 想定していたよりも MATLAB の知識範囲が広いと 思った方がいらっしゃいませんか? Simulink RTW (Coder) Stateflow V&V 想定より知識の範囲が広くないですか? スライド番号 100

キャリアアップ エンジニアのキャリアアップは 知識と経験の両輪です 本日の講演が知識拡大の動機付けになって いただければ幸いです キャリアアップ 経験だけ増えてもキャリアップしない 両輪そろえてすばやいレベルアップ 経験 知識 スライド番号 101

MBD エンジニアの仕事術 1 時間の長い講演に付き合っていただきありがとうございました 発表を終了します アイシン エィ ダブリュ株式会社 解析技術部 久保孝行 スライド番号 102