SysML を活用したシステムエンジニアリング オージス総研組み込みソリューション部 1
アジェンダ 概要編なぜシステムエンジニアリングかシステムエンジニアリングとはシステムエンジニアリングとモデリング言語 SysML の特徴実践編機能要求を検討する要求を仕様化する振る舞いを検討する構造を検討する論理ブロックを物理ブロックに割り当てる性能を検討するまとめ 2
概要編 : なぜシステムエンジニアリングか ibd [block ] コンテキスト [ 電光掲示板説明 ] 例題 : 電光掲示板を作成する <<external>> <<System>> 入力 ユーザー 文字入力装置 電光掲示板 電光掲示板は入力された文字列を表示する 文字列の長さが電光掲示板の表示領域より大きい場合はスクロールして全体を表示する スクロールは文字列の最後と最初を連結したループで行われる 電光掲示板に文字列を入力する為の装置はシステムの範囲外である 3
概要編 : なぜシステムエンジニアリングか テスト OK! 従来の開発 ソフト設計 スクロールすると表示がちらつく! 電光掲示板要求要求 機械設計 テスト OK! システム 転送した文字が化ける! テストOK! 電気設計 個別にテスト OK でもシステムレベルで問題が発生! システムレベルの検討が重要システムモデリング言語で異分野技術者間での情報伝達促進 4
概要編 : システムエンジニアリングとは システム要求分析 システムエンジニアリング システム妥当性確認 システム方式設計 システム結合テスト ソフトウェアソフトウェア要求分析機械妥当性確認機械要求分析電気妥当性確認電気ソフトウェア要求分析ソフトウェア妥当性確認システムエンジニアリング方式設計機械結合テスト機械プロセスの規格例方式設計電気結合テスト電気 ISO15288(JIS X0180) 方式設計ソフトウェア結合テスト IEEE1220 実装機械 ANSI/EIA632 実装電気 SYSMOD 実装 下流工程の分割は一例です システムエンジニアリング = ソフト 機械 電気等の分野に分ける前の全体設計 5
概要編 : システムエンジニアリングとモデリング言語 言語 SysML MARTE EAST-ADL AADL UML 適用分野 システム全般 リアルタイム組込みシステム 車載 ECU 組込みソフト ソフト全般 システム要求分析 システム方式設計 機能性能 分野別要求分析 分野別方式設計 機能性能 システムエンジニアリング用モデリング言語には様々なものが提唱されているが SysML は最上位に位置する汎用言語 6
概要編 : SysML の特徴 システムエンジニアリングにおいて 最上位レベルの検討を行うのに適している XMI によるデータ交換に準拠 既存の UML ツールを容易に拡張できる STEP AP233 で規定されるシステムエンジニアリング分野のデータ交換規格に準拠 将来他モデリング言語との相互データ交換によるハブ機能が期待される UML よりコンパクトな仕様で覚えやすい UML 2 SysML UML から SysML に再利用された部分 SysML 独自の拡張部分 7
実践編 ibd [block ] コンテキスト [ 電光掲示板説明 ] 例題 : 電光掲示板を作成する <<external>> <<System>> 入力 ユーザー 文字入力装置 電光掲示板 電光掲示板は入力された文字列を表示する 文字列の長さが電光掲示板の表示領域より大きい場合はスクロールして全体を表示する スクロールは文字列の最後と最初を連結したループで行われる 電光掲示板に文字列を入力する為の装置はシステムの範囲外である 処理を一部 CPLD で行う 8
実践編 システム要求分析 システム方式設計 振る舞いを検討する 機能要求を検討する 構造を検討する 要求を仕様化する 論理ブロックを物理ブロックに割り当てる 性能を検討する 9
実践編 : 機能要求を検討する 機能要求をユースケース図にする 文字を入力するインターフェースは? 表示可能な文字の種類は? 10
実践編 システム要求分析 システム方式設計 振る舞いを検討する 機能要求を検討する 構造を検討する 要求を仕様化する 論理ブロックを物理ブロックに割り当てる 性能を検討する 11
実践編 : 要求を仕様化する ユースケースを要求図で仕様化する ユースケース 未決定 未検討 文字化けしない検討はこの先で ちらつかない検討はこの先で 12
実践編 システム要求分析 システム方式設計 振る舞いを検討する 機能要求を検討する 構造を検討する 要求を仕様化する 論理ブロックを物理ブロックに割り当てる 性能を検討する 13
実践編 : 振る舞いを検討する (1) アクティビティ図で振る舞いを検討する 電源 On/Off が仕様に無い 14
実践編 : 振る舞いを検討する (2) ステートマシン図で状態を検討する 表示不可能文字列を受信したらどうする? タイムアウト規定が仕様に無い 15
実践編 システム要求分析 システム方式設計 振る舞いを検討する 機能要求を検討する 構造を検討する 要求を仕様化する 論理ブロックを物理ブロックに割り当てる 性能を検討する 16
実践編 : 構造を検討する (1) ブロック定義図 内部ブロック図で論理構造を検討する 物理ブロック割り当て対象 17
実践編 : 構造を検討する (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 18
実践編 システム要求分析 システム方式設計 振る舞いを検討する 機能要求を検討する 構造を検討する 要求を仕様化する 論理ブロックを物理ブロックに割り当てる 性能を検討する 19
実践編 : 論理ブロックを物理ブロックに割り当てる <<allocate>> 指定でブロック割り当てを記述する 論理ブロック パターン 1: 両方 CPU に割り当てパターン 2: スクロール制御を CPLD に割り当てパターン 3: 両方 CPLD に割り当て 物理ブロック 20
実践編 システム要求分析 システム方式設計 振る舞いを検討する 機能要求を検討する 構造を検討する 要求を仕様化する 論理ブロックを物理ブロックに割り当てる 性能を検討する 21
実践編 : 性能を検討する (1) 制約ブロックに数式を定義し パラメトリック図で関係を記述する bdd par «constraint» RAM constraints {t = n/fc} parameters fc:frequency n:count t:time «constraint» Matrix LED constraints {tg = (2+X/2)/fg*Y} {tb = X*Y*tv/8} {rate = tb/tg} parameters X:Resolution Y:Resolution fg:frequency tb:time tg:time tv:time rate:ratio MatrixLEDUnit.Clock MatrixLEDUnit.Dots_Y MatrixLEDUnit.Dots_X drawtime accesstime waitrate CPUUnit.Clock CPUUnit.DRAM.State tg X Y fg tb rate display:matrix LED tv fc t Dram:RAM n 色付き : 計測したい値 22
実践編 : 性能を検討する (2) パラメトリック図をシミュレーションする 描画用クロックの周波数を最大まで上げても CPU パフォーマンスへの影響はほぼ無い 23
まとめ 近年 ソフト ハード設計を始める前にシステム全体の設計を行う必要性が高まっています システム全体の設計には 異分野エンジニアの連携が必要になります システムモデリング言語は異分野エンジニアのコミュニケーションを促進します SysML はシステムモデリング言語の中でも最上位の概念を設計するのに使われます SysML ではシステムへの要求 システムの振る舞い システムの構造 システムの性能を表現出来ます モデル要素から要求へのトレーサビリティが確保できるので 変更時の影響度調査が容易になります 24