目次
- 初めに
- 非機能要件とは
- MBSE(Model Based System Engineering)とは
- 性能要求の要件化に使うと何がうれしいか?
- 振る舞いとは?
- チューニング要素(ロバストネス達成、トレードオフ解消、コスト低減)を要件に取り込むためには?
- 今後の予定
- 最後に
- 参考資料
初めに
- 組み込みシステムや制御システムなどへの性能要求を要件化するための
アプローチを探している人向けの記事です - アプローチの候補としてMBSEを採用した場合に見込めるメリットと、適用時の課題を簡単にまとめています
非機能要件とは
システムが目的を達成するために、各機能が持っていなくてはならない性能や
消費可能なコストの上限などを指します。
内訳の項目として以下などが挙げられます。(但し文献毎に項目のばらつきがあります)
- 信頼性: システムの壊れにくさ
- 可用性: システムが稼働を継続する能力
- 保守性: システムが自身の機能や性能を維持する能力
- 保全性(一貫性): システム内処理の相互作用における、欠損や不整合の少なさ
- 完全性: システム内で入出力される情報に損失がない事や正確さを維持する能力
- 安全性: システムが人に対して危害や資産への損傷を与えない能力
※RASISと呼ばれる事もあり、以下の対応となります。
Rは「Reliability」で信頼性、
Aは「Availability」で可用性、
Sは「Serviceability」で保守性、
Iは「Integrity」で保全性、
Sは「Security」で機密性(完全性)
を表します。
MBSE(Model Based System Engineering)とは
MBSEは、システムの達成目標やシステムへの制約を要求・設計へと段階的・階層的に変換・分解し、
まず要素の製作を行い、次にこれらを段階的・階層的に統合し運用につなげることで、
システム要件と各機能および機能への制約を紐づけながらシステムを設計する手法の事です。
MBSEではシステムのアーキテクチャを
「構造図」「振る舞い図」「要求図」「パラメトリック(制約)図」の4つの構造、
11の図式(ダイアグラム)で表現する事で
- システムの要求を実現する機能の構成
- 機能間の相互作用
- 機能の動作に課される制約
を明示する事を目指しています。
性能要求の要件化に使うと何がうれしいか?
設計のフロントローディングなどに用いる事ができそうです。
- 要素技術者(制御設計者、組み込み系技術者、信号処理技術者、機械学習エンジニアなど)
がノウハウ的に解決してきた技術課題を、早い段階でシステム要件へ投影する事ができる - 各機能への制約情報は、性能課題の発生しうる機能を特定するために使える
- アクテビティ図は、各機能間の相互作用を明示する手段として使える
振る舞いとは?
MBSEでは、システム内の機能間の相互作用を指します。
(信号処理や制御や機械学習分野で言及される『振る舞い』と定義が異なる点に注意)
性能チューニング要素(ロバストネス達成、トレードオフ解消、コスト低減)を要件に取り込むためには?
組み込みシステムや制御システムや機械学習システムなど、物理事象との相互作用を行うシステムで
性能チューニングを行う場合、モデリング図のアクターとして外部環境を登場させる必要があります。
しかしながらMBSEは要求の達成状況を確認する事をモデリングの目的
にしているため、
システム内での相互作用の表現に重きを置いており、
外部の物理環境は実体として機能への制約として反映されることが多い様です。
そこで、以下の方法については引き続き調査や検討を試みたいと考えています。
- 外部環境とシステムとの間の相互作用が引き起こす異常事象(=制約違反)
の表現手段を用意したい
(例: 車のスピンやスリップ、機械振動の予期しない増幅) - 外部環境とシステムとの間の相互作用がシステム内で伝搬する過程を時系列上で
表現する手段を用意したい
(例: 時間粒度の明示された補助図をシーケンス図/状態遷移図へ追加)
今後の予定
- MBSEを使って簡単な例で非機能要件を定義し、結果を記事にしたいと思います
- MBSEを機械学習へ適用して非機能要件を定義するまでを記事にしたいと思います
- MBSE手法で摘出しやすい性能要件や制約間の競合(トレードオフ)などの例を
紹介したいと思います
最後に
弊社では、自動車・機械産業のお客様に向けたソリューション開発エンジニアを絶賛採用中(2022/12時点)です
https://www.wantedly.com/projects/1181162
参考資料
・プロジェクトの成否を決める非機能要件を定義するには(sansan社)
https://buildersbox.corp-sansan.com/entry/2020/04/27/110000#fn-b838e264
・機械学習デザインパターン(2020, メルカリ社)
https://mercari.github.io/ml-system-design-pattern/README_ja.html
・機械学習システムが満たすべき要件について
https://qiita.com/calderarie/items/818c1f93e9a809a9e098
・AIプロダクト品質保証ガイドライン
(Guideline for Quality Assurance of AI-based products and services)
http://www.qa4ai.jp/download/
・MBSE 衛星開発を成功に導く(JAXA)
https://www.aero.jaxa.jp/spsite/rensai/column/33.html