SysML を活用したシステムエンジニアリング オージス総研組み込みソリューション部 1
アジェンダ 概要編なぜシステムエンジニアリングかシステムエンジニアリングとはシステムエンジニアリングとモデリング言語 SysML の特徴実践編機能要求を検討する要求を仕様化する振る舞いを検討する構造を検討する論理ブロックを物理ブロックに割り当てる性能を検討するまとめ 2
概要編 : なぜシステムエンジニアリングか ibd [block] コンテキスト [ 電光掲示板説明 ] 例題 : 電光掲示板を作成する <<external>> <<System>> 入力 ユーザー 文字入力装置 電光掲示板 電光掲示板は入力された文字列を表示する 文字列の長さが電光掲示板の表示領域より大きい場合はスクロールして全体を表示する スクロールは文字列の最後と最初を連結したループで行われる 電光掲示板に文字列を入力する為の装置はシステムの範囲外である 3
概要編 : なぜシステムエンジニアリングか テスト OK! 従来の開発 ソフト設計 スクロールすると表示がちらつく! 電光掲示板要求要求 機械設計 テスト OK! システム 転送した文字が化ける! 電気設計 テスト OK! 個別にテスト OK でもシステムレベルで問題が発生! 従来のすりあわせ方開発では限界 システムレベルの検討が重要 4
概要編 : なぜシステムエンジニアリングか 変化が小さければ 市場要求 技術トレンド 変化が大きいと 例えば エコ グリーン IT 対応 ( 省電力化 HV EV の拡大等 ) 機能の複雑化 (3D テレビ ネットワーク家電等 ) 派生型開発や従来型のすり合わせ開発で実現可能 システムエンジニアリングが必要 市場要求や技術トレンドが変化しやすい現在 システムエンジニアリングが見直され始めている 5
概要編 : システムエンジニアリングとは システム要求分析 システムエンジニアリング システム妥当性確認 システム方式設計 システム結合テスト ソフトウェアソフトウェア要求分析機械妥当性確認機械要求分析電気妥当性確認電気ソフトウェア要求分析ソフトウェア妥当性確認システムエンジニアリング方式設計機械結合テスト機械プロセスの規格例方式設計電気結合テスト電気 ISO15288(JIS X0170) 方式設計ソフトウェア結合テスト IEEE1220 実装機械 ANSI/EIA632 実装電気 SYSMOD 実装 下流工程の分割は一例です システムエンジニアリング = ソフト 機械 電気等の分野に分ける前の全体設計 ソフト 機械 電機等の分野で共通に使えるモデリング言語が必要 6
概要編 : システムエンジニアリングとモデリング言語 言語 SysML MARTE EAST-ADL AADL UML 適用分野 システム要求分析 システム 方式設計 システム全般 リアルタイム組込みシステム 車載 ECU 機能 性能 組込みソフト 分野別要求分析 分野別 方式設計 ソフト 全般 機能 性能 システムエンジニアリング用モデリング言語には様々なものが提唱されているが SysML は最上位に位置する汎用言語 7
概要編 : SysML の特徴 システムエンジニアリングにおいて 最上位レベルの検討を行うのに適している XMI によるデータ交換に準拠 既存の UML ツールを容易に拡張できる STEP AP233 で規定されるシステムエンジニアリング分野のデータ交換規格に準拠 将来他モデリング言語との相互データ交換によるハブ機能が期待される UML よりコンパクトな仕様で覚えやすい UML 2 SysML UML から SysML に再利用された部分 SysML 独自の拡張部分 8
概要編 : SysML の特徴 UML のクラス図を拡張 UML の複合構造図を拡張 SysML ダイアグラムの種類 9
実践編 ibd [block] コンテキスト [ 電光掲示板説明 ] 例題 : 電光掲示板を作成する <<external>> <<System>> 入力 ユーザー 文字入力装置 電光掲示板 電光掲示板は入力された文字列を表示する 文字列の長さが電光掲示板の表示領域より大きい場合はスクロールして全体を表示する スクロールは文字列の最後と最初を連結したループで行われる 電光掲示板に文字列を入力する為の装置はシステムの範囲外である 処理を一部 CPLD で行う 10
実践編 システム要求分析 システム方式設計 振る舞いを検討する 機能要求を検討する 要求を仕様化する ユースケース図によるユースケース分析 構造を検討する 論理ブロックを物理ブロックに割り当てる 性能を検討する 11
実践編 : 機能要求を検討する 機能要求をユースケース図にする uc 電光掲示板 «extend» 文字を入力するインターフェースは? 表示可能な文字の種類は? 12
実践編 システム要求分析 システム方式設計 振る舞いを検討する 機能要求を検討する 要求を仕様化する 要求図による要求の仕様化 構造を検討する 論理ブロックを物理ブロックに割り当てる 性能を検討する 13
実践編 : 要求を仕様化する ユースケースを要求図で仕様化する req «requirement» Text=CPLD 駆動の電光掲示板を作成する allocatedfrom allocatedfrom «usecase» 表示する文字列を設定する «usecase» 文字列を表示する ユースケース 未決定 未検討 «functionalrequirement» «designconstraint» «functionalrequirement» Text= 表示する文字列を設定する Text= 手持ちの部品を可能な限り使う Text= 文字列を表示する «refine» «functionalrequirement» «refine» «derivereqt» «refine» «refine» Text= 表示可能な文字詳細は未定 «designconstraint» I/F «refine» Text= 利用可能な入力はRS-232C 文字化けしない Ethernet I/O 入力 DIPスイッチ 検討はこの先で «derivereqt» «derivereqt» «performancerequirement» Text= 同時表示可能文字数は 8 16 ドットフォントで 4 文字 «refine» «functionalrequirement» ちらつかない検討はこの先で Text= 文字列が表示領域に収まらない場合はスクロールを繰り返す «derivereqt» allocatedfrom «usecase» スクロールする «problem» CPU 版ではスクロール時に表示がちらついていた «interfadcerequirement» I/F Text= 文字入力 I/F には RS-232C 又は Ethernet が利用可能 «functionalrequirement» Text= スクロール速度は DIP スイッチで 16 段階に設定 «performancerequirement» Text= 表示はちらつかないこと 14
実践編 システム要求分析 システム方式設計 振る舞いを検討する 機能要求を検討する 要求を仕様化する 構造を検討する アクティビティ図 ステートマシン図 ブロック定義図による振る舞い検討 論理ブロックを物理ブロックに割り当てる 性能を検討する 15
実践編 : 振る舞いを検討する (1) アクティビティ図で振る舞いを検討する 電源 On/Off が仕様に無かった 基本振る舞い構造 電源 ONするとグラフィック生成及びMatrixLED 制御信号生成を開始グラフィック生成はMatrixLED 制御信号生成をOn/Offする仕様に電源 ON/OFFに関する記述がされていなかった 16
実践編 : 振る舞いを検討する (2) ステートマシン図で状態を検討する 表示不可能文字列を受信したらどうする? 状態構造 タイムアウト規定が仕様に無い 17
実践編 システム要求分析 システム方式設計 振る舞いを検討する 機能要求を検討する 要求を仕様化する 構造を検討する ブロック定義図 内部ブロック図による構造検討 論理ブロックを物理ブロックに割り当てる 性能を検討する 18
実践編 : 構造を検討する (1) ブロック定義図 内部ブロック図で論理構造を検討する 物理ブロック割り当て対象 19
実践編 : 構造を検討する (2) ブロック定義図で物理構造を検討する bdd «block» 論理ブロック割り当て対象 «block» CPU 2 «block» LED «block» CPLD «block» DIP «block» CPU «block» CPLD «block» Matrix LED «block» IC «block» RS-232C «block» CPU «block» DRAM 20
実践編 システム要求分析 システム方式設計 振る舞いを検討する 機能要求を検討する 要求を仕様化する アロケーションによるブロック割り当て 構造を検討する 論理ブロックを物理ブロックに割り当てる 性能を検討する 21
実践編 : 論理ブロックを物理ブロックに割り当てる <<allocate>> 指定でブロック割り当てを記述する «allocate» CPU パターン1: 2: 3: ドット列情報生成までスクロール制御を文字列以降をCPLD CPLD に割り当て CPU に割り当て CPLD 22
実践編 システム要求分析 システム方式設計 振る舞いを検討する 機能要求を検討する 要求を仕様化する 構造を検討する ブロック定義図 パラメトリック図によるトレード分析 論理ブロックを物理ブロックに割り当てる 性能を検討する 23
実践編 : 性能を検討する (1) 制約ブロックに数式を定義し パラメトリック図で関係を記述する 制約ブロック定義 パラメトリック図 <<moe>>:measure of effectiveness トレード分析の指標値 物理ブロックのプロパティをパラメトリック図のパラメータ入力とする 24
実践編 : 性能を検討する (2) パラメトリック図をシミュレーションする CPLD によるバス占有時間 (tl) は最大で 2μs なので RS-232C のハードリアルタイム制約 260μs に対して問題は無い クロックを最大の 0.3MHz にすると CPLD のバス占有率は最大 21% 強となる パソコンのディスプレイで使われる 60fps 相当の描画クロック (0.02MHz) なら 1.4% 強で問題なし 25
まとめ モデルベース開発 ソフト設計 テスト OK! テスト OK! 電光掲示板要求要求 システム設計 機械設計 テスト OK! システム システムモデリングで仕様を視覚化 異分野技術者間の情報伝達促進 システム段階で仕様をすり合わせ 電気設計 テスト OK! システム不具合の減少 26
まとめ SysML の要求図を用いてシステムモデリングを行うと エンジニアの頭の中で完結しがちな 要求を仕様にする過程 が視覚化できます SysML の要求図を用いてシステムモデリングを行うと 仕様のバリエーションや選択された実装方法とその理由を視覚化できます SysML の構造図を書く事により ソフト ハードを意識しない機能ブロックを抽出できます SysML の振る舞い図を書くことにより 仕様の抜け漏れを発見できる機会が増大します SysML の割り当てを活用することにより 機能をソフト ハードにどのように割り当てるか視覚化できます SysML の割り当てを活用することにより 要求から部品へのトレーサビリティが確保されます SysML のパラメトリック図を書くことにより 性能を左右する制約条件を視覚化 ( ツールによっては性能のシミュレーションも ) することができます シミュレーションによる性能評価は 今後のツール発展に期待したいところです 27
弊社 システムモデリング 教育コースマップ 実践 6 月 3 日 ( 金 ) 開催只今申し込み受付中! システムモデリング設計 実装 (3 日コース ) 提供予定 SysML によるシステムモデリング実践 (2 日コース ) 理論 SysML によるシステムモデリング入門 (1 日コース ) SysML 入門 利害関係者要求定義 要求分析 方式設計 9 月開催予定 実装 28