D-Case Driven Development with SysMLの試み 日本アイ・ビー・エム株式会社 グローバル・ビジネス・サービス 豊田 学 目次 1. はじめに 組込みシステム開発における問題 2. 問題を解決する開発手法 D-Case Driven Development with SysML 3. 具体例 ISO26262に準拠した車載システムへの適用 2 はじめに 組込みシステム開発における問題 3 組込みシステム開発における問題 開発の現状 (*1) ソースコードをベースとして開発を行っている 開発スケジュールに間に合わせ、開発コストを削減するため、 上流工程の仕様書が作成されない、または更新されない 課題 上流工程の正確な仕様書がないため、システムがディペンダブルで あることの証跡が残っていない 要望獲得 システム システム 要望 要望 要件の実現の可否 要件定義 要件 要件 テスト結果 テスト結果 システム設計 システム検証 テスト結果 テスト結果 設計仕様 設計仕様 証跡が残っていない 4 S/W, H/W 開発 ソースコード ソースコード (*1)参考資料: A Development Method Proposal for Embedded Software Based on Model-Based Development, with Result Feedback through Issue Measurements of Derivational Development, ICEUC2012 解決のアプローチ ~ D-Case Driven Development with SysML手法 D-CaseとSysMLモデルとの一貫した連携により、開発の上流工程 から下流工程に至るまで、ディペンダブルなシステムを実現する D-Case 1.ディペンダビリティを 満足するシステム 要求を導出する 3.検証結果がディペンダ ビリティを満足することを 明示する 要望獲得 システム システム 要望 要望 要件の実現の可否 要件定義 要件 要件 テスト結果 テスト結果 システム設計 システム検証 テスト結果 テスト結果 設計仕様 設計仕様 S/W, H/W 開発 2.システム要求を正確 に反映して設計仕様 を導出する 5 ソースコード ソースコード 問題を解決する開発手法 D-Case Driven Development with SysML 6 D-Caseによる課題の解決 D-Case Driven Development with SysML手法 1. D-Caseの議論分解によるディペンダビリティを満足する要求の導出 2. D-Case上での設計仕様の関連付けによる正確な設計仕様の策定 3. D-Case上での証跡追加による検証結果の確認 D-Case SysML uc [パッケージ] Design [UC_CC] CC CC起動 車速の監視 CC停止 <<include>> 目標車速の設定 <<include>> <<include>> <<include>> <<include>> <<include>> 目標車速の加速 ドライバ 車速制御 <<include>> <<include>> 目標車速の減速 req[パ ッ ケ ー ジ ]Design[REQ_CC] CC動作状況の監視 <<Requirement>> CC CC一時休止 <<include>> ID=REQ_01<<include>> 車 両 は 運 転 者 を 支 援 す る 走 行 制 御 機 能 を 搭 載 す る 議論分解 システム 要求 PCS 設計 仕様 <<Requirement>> CC起 動 ( Cruise) ID=REQ_02 関連付け CC緊急停止 <<derive>> <<derive>> <<derive>> <<derive>> <<derive>> <<derive>> <<derive>> <<derive>> <<derive>> <<derive>> <<derive>> <<Requirement>> <<Require< me<nd t>e>rive>> <<Requirement>> <<Requirement>> <<Requirement>> <<Requirement>> <<Requirement>> <<Requirement>> <<Requirement>> 標 車 速 の 減 速 ( Decel) 目 標 車 速 の 加 速 ( Accel 目 標 車 速 の 設 定 ( Set) 目 CC復 帰 CC一 時 休 止 CC停 止 ( Cruise) CC停 止 ( PCS) 加 速 度 の 抑 制 制 御 車 速 の 監 視 ID=REQ_04 ID=REQ_03 ID=REQ_05 ID=REQ_07 ID=REQ_06 ID=REQ_08 ID=REQ_21 アクセル <<Block>> <<Block>> ブレーキ CCコントローラ Values Values <<derive>> <<derive>> <<der<i<vdee>r>i<v<ed>e>rive>> <<derive<><>d<e<rdi<ev<redi>ev>rei>v>e>> <<deriv>> Values <<Block>> 車速センサー 電子制御スロットル <<deValues rive>> <<derive>><<d<e<rdievrei>v>e>><<derive>> <<Requirement>> <<Requirement>> <<Requirement>> <<Requirement>> powerOFF speed breakPower speed 操 作 の 即 応 性breakPowerTarget ド ラ イ バ に よ る 運 転 操 作 の 尊 重 連 続 稼 働 ccBtn 加 減 速 性 能 ccPower accelPowerTarget 操 作 の 容 易 性 <<Block>> Values Operations <<Requirement>> 設 定 情 報 の 保 持 <<Requirement>> throttleTorque 車 速 制 限 <<Requirement>> ID=REQ_13 加 速 は 0.35G 未 満 と す る breakPower breakTorque ccBtn <<Block>> <<Block>> 電子制御ブレーキ breakTorque Values pwr ブレーキ アクチュエータ pwr Operations Operations accelPower speed powerOFF <<Block>> 車速のモニター回路 <<allocate>> <<allocate>> speed Operations <<Block>> Values speed pwr <<Block>> 車両力学制御 Values powerOFF Values Operations accelPowerTarget CC動作状況のモニター回路 CC操作UI Values Operations pwr pwr 加 速 の 加 速 度 制 限 ID=REQ_17 ID=REQ_18 ID=REQ_15 ID=REQ_16 <<Block>> <<deriveスロットル >><<derive>> アクチュエータ Operations チ ド ワ ン タ ッ 標 速 度 と 20km/h 100時 設目 ラ イ バ が 設 定 車 間 以 ド 操 設 定 情 報 を CCの ラ イ バ に よ る ア ク セ ル で CCを 操 作 定 上 の 差 が あ る と 上 す る と 、 CC 以 を 50~ 、 連 続 稼 作 、 ブ レ ー キ 操 作 、 ス テ ア 不 正 に 変 更 速 で き る 上 働 は 、 0.080G以 <<Block>> が 1ms以 内 に き 制 100km/hに す るccPower リ ン グ 操 作 を 最 優 先 と す る し な い 車速制御 加 速 度 で 加 減 速 応 答 す る の 限 す る throttleTorque す る Values breakPowerTarget ID=REQ_11 ID=REQ_12 ID=REQ_14 検証 結果 Values Operations <<Requirement>> accelPower <<Requirement>> ID=REQ_24 作 状 況 の 監 視 CCの 緊 急 停 止 CC動 <<allocate>> <<Block>> Operations Operations <<Requirement>> ID=REQ_23 pwr = Kp ( Vp - Vt ) + Ki ∫(Vp - Vt ) dt <<allocate>> <<Block>> ID=REQ_22 値 車 す CCの 加 速 度 が 閾 常 を 検 知 す 異 況 動 作 状 速 を 監 視 を 超 え な い 制 る る と CCを 緊 急 を 監 視 す る 御 を 行 う 停 止 す る 50km/h ≦vt ≦100km/h Operations 加速の加速度制限: a < 0.35G 加減速性能: a > 0.080G Values Operations <<allocate>> ccBtn Operations <<allocate>> <<allocate>> <<allocate>> セダンの場合 Cd = 0.44 ワゴンの場合 Cd = 0.50 7 ID=REQ_09 動 中 に 運 転 者 CC起 者 CC起 が CC起 者 CC起 動 中 に 運 転 者 動 中 に 運 転 CC停 止 中 に 運 転 動 中 に 運 転 動 中 に 運 者 CC一 運 CC起 転 CC起 時 休 止 中 に 動 中 に PCS 「 Set」 ボ タ ン を 「 が 「 Cruise」 ボ タ が Decel」 ボ タ ン を が 「 Accel」 ボ タ が ブ レ ー キ を 踏 む 転 者 が 「 Resume」 者 が 「 Cruise」 か 求 ら 停 止 要 す と 、 現 在 の 速 押 ン を 押 す と 、 CCが 押 を 押 す と 、 設 す と 、 設 定 値 の 速 ン 定 と タ ン を 押 す と 、 ボ タ ン を 押 す が 、 CCを 一 時 休 止 ボ あ る と 、 CC par [パッケージ] Design [PAR_車両ブロック] 度 を 設 定 値 と し て 度 起 動 す る が 下 が る 値 の 速 度 が 上 が る す 一 時 休 止 前 の 設 、 CCを 停 止 る 定 と す を 停 止 す る 保 持 す る 設 定 車る 速の制限 : で CCを 再 開 す る <<derive>> <<derive>> 証跡追加 スロットル <<include>> <<include>> CC再開 セダンの場合 A = 1.8 m^2 ワゴンの場合 A = 2.0 m^2 セダンの場合 mass = 1700 kg ワゴンの場合 mass = 2500 kg <<allocate>> <<allocate>> <<allocate>> <<allocate>><<allocate>> densityOfAir = 1.2 kg/m^3 thrust = pwr / actualSpeed drag = -1/2 * Cd * A * densityOfAir * actualSpeed^2 a= (thrust + drag) / mass actualSpeed = ∫a dt + v0 D-Caseによる要求の導出 D-Caseの議論分解を通して、ディペンダビリティを満足する システム要求を過不足なく導出する ディペンダビリティを阻害するすべての要因を抽出し、 その対策をシステム要求として整理する D-Caseの議論分解パターン ディペンダビリティへの脅威の明確化 ディペンダビリティへの脅威の明確化 脅威の発生シーンの明確化 脅威の発生シーンの明確化 原因の明確化 原因の明確化 対策の明確化 対策の明確化 8 D-Caseに基づく正確な設計仕様の策定 D-Case上にシステム要求や設計仕様を関連付けることにより、 システム要求や他の設計仕様と整合した設計仕様を策定する •ディペンダビリティから導出した要求に含まれる設計情報を抽出し、システム設計を行う •導出した設計仕様をディペンダビリティに基づく要求と照合し、過不足なきことを確認する D-Case SysML 設計情報の抽出 機能・非機能要求 システム構成要求 システムの制約 検証の条件 要求図 要求図 要求 要求 ブロック定義図 ブロック定義図 ブロック ブロック パラメトリック図 パラメトリック図 制約ブロック 制約ブロック モデル・シミュレーション モデル・シミュレーション 検証条件 検証条件 仕様との対応確認 9 D-Caseでの検証結果の確認 D-Case上での証跡追加により、検証結果と要求や設計仕様との 関連性を明確にする 検証結果をエビデンスとしてゴールに関連付け、関連する要求や 設計仕様との整合性を確認する D-Case SysML モデル・ モデル・ シミュレーション シミュレーション 検証結果 検証結果 シミュレーション結果 速度(km/h) 120 0.28G MAX 100 80 60 40 20 0 0 5000 10000 15000 20000 経過時間 (ms) 証跡の追加 10 D-Case Driven Development with SysML の全体像 D-CaseとSysMLモデリングとの連携によるシステム開発 SysML D-Case シス ステ テム ム要 要求 求を を過 過不 不足 足な なく く導 導出 出 シ 1. 2. 2. 設計仕様を正確に導出 設計仕様を正確に導出 トップゴールの設定 トップゴールの設定 要望獲得・商品企画 ディペンダビリティへの脅威の明確化 ディペンダビリティへの脅威の明確化 脅威の発生シーンの明確化 脅威の発生シーンの明確化 システムの環境 システムの操作 要件の実現の可否 要件定義 ユースケース図 ユースケース図 ユースケース 原因の明確化 原因の明確化 要求図 要求図 機能・非機能要件 対策の明確化 対策の明確化 システム設計 システムの機能 機能・非機能要求 システムの構成要素 構成要素に課した制約 検証結果による保証 検証結果による保証 11 機能概要と前提要求 機能概要と前提要求 システム検証 モデル・ ブロック定義図 モデル・ ブロック定義図 構成要素 シミュレーション シミュレーション 内部ブロック図 内部ブロック図 構成要素 検証条件 パラメトリック図 パラメトリック図 制約 検証結果 ステートマシン図 ステートマシン図 S/W, H/W 開発 3. 3. 検証結果と要求や設計仕様との関連性を明確化 検証結果と要求や設計仕様との関連性を明確化 D-Case Driven Development with SysML を 実現する開発環境 D-CaseとSysMLモデリングとの連携によるシステム開発環境 OSLCに準拠したI/F による連携 OSLC連携アドオン OSLC連携アドオン 要求管理 D-Case D-Case Editor Editor Import OSLC (Open Services for Lifecycle Collaboration) 異なるALMツール間でのデータ連携を可能とする仕様を策定 テスト管理 品質管理 Export タスク管理 構成管理 D-Case D-Case データ連携 データ連携 SysML SysML SW開発環境 SW開発環境 12 SysML モデル管理 既存の開発環境の連携 具体例 ISO26262に準拠した車載システムへの適用 13 ISO26262に準拠した車載システムへの適用 本手法はISO26262の安全ライフサイクルと対応 ISO26262 D-Case SysML トップゴールの設定 トップゴールの設定 3.5 3.5 アイテム定義 アイテム定義 アイテムの定義 アイテムの定義 安全性の観点からトップゴールと前提を設定 ディペンダビリティへの脅威の明確化 ディペンダビリティへの脅威の明確化 安全性を阻害する脅威を大別 3.7 3.7 ハザード分析とリスク評価 ハザード分析とリスク評価 ハザードの識別 ハザードの識別 3.8 3.8 機能安全コンセプト 機能安全コンセプト 機能安全要求に基づく分解 機能安全要求に基づく分解 4.6 4.6 技術安全要求の仕様 技術安全要求の仕様 技術安全要求に基づく分解 技術安全要求に基づく分解 4.7 4.7 システム設計 システム設計 検証結果による保証 検証結果による保証 14 脅威の発生シーンの明確化 脅威の発生シーンの明確化 安全性を阻害するすべてのシーンを明確化 原因の明確化 原因の明確化 対策を立てられる粒度まで原因を深堀り 対策の明確化 対策の明確化 対策ごとにシステム要求を詳細化 検証結果による保証 検証結果による保証 システム要求を満足することを明示 ユースケース図 ユースケース図 システムの利用者と操作の関係の明確化 要求図 要求図 システムの機能・非機能要件を明確化 ブロック定義図 ブロック定義図 システムのアーキテクチャを明確化 パラメトリック図 パラメトリック図 システムの前提と制約を明確化 モデル・シミュレーション モデル・シミュレーション 検証条件の明確化 実行可能なモデルによるシステム検証 作成したD-Caseの概要 ISO26262関連部分とそれ以外にゴールを分解して詳細化 例. 車載クルーズコントロール(CC)システムの安全性 上位階層 ISO 26262 関連部分 15 ISO 26262以外 の部分 開発フロー ~ アイテムの定義 安全性の観点からトップゴールと前提を設定し、脅威を抽出 D-Case トップゴールの設定 トップゴールの設定 安全性の観点に基づき トップゴールと前提を設定 システムが満たすべき性質と 前提を設定 ディペンダビリティへの脅威の明確化 ディペンダビリティへの脅威の明確化 安全性を阻害する すべての脅威を抽出するため大別 脅威を機能不全、ユーザーのミス、 発生していない脅威に大別し、 トップゴールを分解 16 例. 車載クルーズコントロール(CC)システムの安全性 開発フロー ~ ハザードの識別 安全性を阻害するすべてのシーンを抽出 D-Case SysML ユースケース図 ユースケース図 ユースケース 脅威の発生シーンの明確化 脅威の発生シーンの明確化 安全性を阻害する すべてのシーンの抽出 脅威を引き起こす操作を明確化 システムの置かれた環境を明確化 反映 システムの利用者と操作の関係 の明確化 脅威を引き起こす操作を基に システムのユースケースを更新 CC 起動 ドライバ モデル・ モデル・ シミュレーション シミュレーション 検証の条件 検証条件の明確化 17 システムの置かれた環境を基に 検証シナリオの条件を更新 開発フロー ~ 機能安全要求に基づく分解 対策を立案可能な粒度に至るまで原因分析を実施 D-Case 原因の明確化 原因の明確化 対策を立てられる粒度に 至るまで原因を深堀り 各シーンで脅威を引き起こす 原因を分析 対策の明確化 対策の明確化 原因ごとに対策を立案 脅威の原因ごとに対策を システム要求として整理 18 開発フロー ~ 技術安全要求に基づく分解 対策を基にシステム要求、要件の導出 D-Case SysML ユースケース図 ユースケース図 対策の明確化 対策の明確化 システムの利用者と操作の関係 対策ごとにシステム要求を詳細化 機能要求の明確化 非機能要求の明確化 システム構成要求の明確化 構成要素に課された制約の明確化 ユースケース 機能要求を基にユースケースを更新 反映 目標車速の設定 目標車速の加速 車速の監視 <<include>> <<include>> <<include>> <<include>> <<include>> <<include>> <<include>> 目標車速の減速 車速制御 <<include>> ドライバ 要求図 要求図 機能・非機能要件 システムの機能・非機能要件を明確化 機能・非機能要求を基に要件を更新 <<Requirement>> <<Requirement>> 加速度の抑制制御 CC ID = REQ_21 ID = REQ_01 車両は運転者を支援する走行制御機 能を搭載する 19 <<derive>> 加速度が閾値 を超えない制 御を行う 開発フロー ~ 技術安全要求に基づく分解 D-Caseの記述を基にSysMLモデルを更新 D-Case SysML ブロック定義図 ブロック定義図 構成要素 内部ブロック図 内部ブロック図 システムのアーキテクチャを明確化 対策の明確化 対策の明確化 対策ごとにシステム要求を詳細化 機能要求の明確化 非機能要求の明確化 システム構成要求の明確化 構成要素に課された制約の明確化 反映 システム構成要求を基にブロックを更新 1 <<Block>> 車速のモニター回路 Values Operations 1 パラメトリック図 制約 パラメトリック図 システムの前提と制約を明確化 ブロックに課された制約を更新 ccPower breakPowerTarget <<Block>> 車速制御 throttleTorque Values breakPower accelPowerTarget 20 accelPower <<allocate>> 加速の加速度制限: Operations breakTorque a < 0.35G 開発フロー ~ 検証結果による保証 システム要求を満足することを明示 SysML D-Case 検証結果による保証 検証結果による保証 モデル・ モデル・ シミュレーション シミュレーション 検証結果 システム要求を満足することを明示 検証結果をエビデンスとしてゴールに関連付け 実行可能なモデルによる システム検証 シミュレーション結果の獲得 速度(km/h) 120 0.28G MAX 100 80 60 40 20 0 0 5000 10000 15000 20000 経過時間 (ms) 21 検証結果を 証跡として追加 まとめ D-Case Driven Development 手法を実現 D-Case と SysML 開発環境とのデータ連携を実現 具体例として本手法を車載システム開発に適用 今後の展開 本開発手法の開発現場での実証 22 END OF PACKAGE 23
© Copyright 2024