(前NTTデータ フェロー システム科学研究所長)山本 修一郎
本稿では、筆者による保証ケースの教育経験に基づいて、保証ケースを作成する際にわが国の技術者が陥りやすい問題点について紹介する。また、その問題に対処するための方法についても解説する。
保証ケースの動向
システムの安全性を確認するために、安全性ケース(Safety case)、保証ケース(Assurance case、アシュアランスケース)やディペンダビリティケース(Dependability case)が注目されている。このためGSN(Goal Structuring Notation)[1][2][3]を用いてこれらを記述する方法が提案されている。
しかし、実際のシステム開発プロジェクトの担当者による保証ケースの作成を容易化するためには、エディタを提供するだけでは不十分である。システム開発プロセスやシステム開発文書に即して、より具体的な保証ケース作成手順を提供する必要がある。
重要システムの実行中に優先順位の高い要求を満足することを確認するために、ディペンダビリティケースが必要とされている[4]。
保証ケースでは、図1に示したように、ゴール(主張)、戦略、前提(コンテクスト)、根拠(証跡、ソリューション)によって、システムのディペンダビリティに関する議論を構造化して確認することができる。
このため保証ケースの関連研究として、安全性ケースやディペンダビリティケースについて以下のような手法が研究開発されている。
GSNを作成するために、①ゴールを識別する、②ゴールを記述するための基礎を定義する、③ゴールを満足させるための戦略を識別する、④戦略を記述するための基礎を定義する、⑤戦略を吟味する、⑥基本的な証跡を識別するという6段階の手法をKellyが提案している[1][2]。
European Organisation for the Safety of Air Navigation制定している安全性ケース開発マニュアル[5]では、安全性ケースのコンテクストを定義することが重要であると指摘している。また安全性ケースをレビュするためのチェックリストを提案している。
複数のシステムから構成されるシステム(System of Systems)の開発過程で、システム分析、ゴール要求抽出、代替設計案の識別、矛盾点の解消からなる保証ケースを構造化して作成する手法が提案されている[6]。
保証ケースを作成する際に必要となる議論分解の観点として、システム構成や機能構成、属性構成などが整理されている[7]。
筆者らが参加しているDEOSプロジェクトでは、ディペンダビリティケースに基づいてオープンシステムの障害対応サイクルと変化対応サイクルを支援する研究を推進している[8]。このためディペンダビリティケースを編集できるD-Caseエディタが開発された[9]。
筆者も参加した、2012年6月にボストンで開催されたディペンダブルシステムとネットワーク国際会議(Dependable Systems and Networks DSN2012)では、概念文書、設計書、運用手順書、準備ハザードリストに基づいて安全性ケースを作成する手法が提案されている[10]。
これらの手法では、多様な適用分野や開発工程を対象として保証ケースの作成法が個別的に提案されている。しかし、保証ケースを用いて実際のシステムがディペンダブルであることを確認するためには、システム開発プロセスや工程生産物との具体的な対応関係や利用手順が一貫した形で明確になっている必要がある。
この点で、現状の保証ケース作成手法には、まだ多くの改善すべき課題が残っている。
保証ケース作成法の必要性
前述したことから、システム開発運用工程生産物を用いた保証ケースの作成手順の具体化を進めることとした。この理由は、前述したように保証ケースの作成手順が断片的な取組みにとどまっており、システム開発プロセスや工程生産物を利用する系統的な手順が明確になっていなかったからである。
また、故障解析(FTA)やFMEA分析、Hazard分析などのリスク分析技術がある。前述したように逸脱分析を用いて保証ケースを作成する手法[11][12]も提案されている。しかし、開発運用プロセス全体を通じた保証ケースとリスク分析の具体的な適用関係は、必ずしも明確になってはいない。
したがって、サービスに対する統一的な分析手法として確立されてはいないという問題があった。
また、保証ケースが前提とする「証跡に基づく論理的な議論による妥当性の論証」という考え方は、日本の文化にはなじまないところがある。この理由は、このような論証の基礎的な訓練が日本では不足しているからである。これは、これまで数年にわたってGSNを技術者に教育してきた筆者らの経験に基づく仮説である。逆にいえば、論証についての知識とスキルがあれば、保証ケースを作成することは難しいことではないともいえる。
このため保証ケースを開発者が作成しようとすると、何を論証すべきかどのように論証すべきか、何が証跡なのか分からず、初心者が躓くことになる。たとえば、Kellyによる6段階作成法の最初でゴールを識別するところから悩むことになる。
したがって、保証ケースを記述するためにGSNの構文を教えただけでは、論証に慣れていない日本の現場における技術者が保証ケースを作成することは困難である。このため本連載でも紹介したように、日本では欧米で開発されてきた保証ケースの作成手法よりも、具体的な適用対象に特化した手法が必要になる[13]。
基本的な課題
保証ケースを作成するためには、主張(ゴール)、戦略、コンテクスト、証跡と、それらの関係を記述する必要がある保証ケースを作成する際には、まずディペンダビリティについてシステムが満たすべき主張を列挙する必要がある。このために、戦略ノードを用いて主張を下位主張に分解することになる。
この場合、次のような基本的な疑問が生じることが多い。
①主張として何をどう書くのか
②戦略に何を書くのか
③戦略で分解する幅をどこまで広げるのか
④コンテクストに何を書けばいいのか
⑤証跡に何を書けばいいのか
続きは電子書籍(Kindle)でご覧頂けます。→Amazonで購入する
ご購入のお申込みは電話(03-3507-0560)でも承っております。
- 60:要求とアーキテクチャ
- 61:要求と保守・運用
- 62:オープンソースソフトウェアと要求
- 63:要求工学のオープンな演習の試み
- 64:Web2.0と要求管理
- 65:ソフト製品開発の要求コミュニケーション
- 66:フィードバック型V字モデル
- 67:日本の要求定義の現状と要求工学への期待
- 68:活動理論と要求
- 69:ビジネスゴールと要求
- 緊急:今、なぜ第三者検証が必要か
- 71:BABOK2.0の知識構成
- 72:比較要求モデル論
- 73:第18回要求工学国際会議
- 74:クラウド時代の要求
- 75:運用要求定義
- 76:非機能要求とアーキテクチャ
- 77:バランス・スコアカードの本質
- 78:ゴール指向で考える競争戦略ストーリー
- 79:要求変化
- 80:物語指向要求記述
- 81:要求テンプレート
- 82:移行要求
- 83:要求抽出コミュニケーション
- 84:要求の構造化
- 85:アーキテクチャ設計のための要求定義
- 86:BABOKとREBOK
- 87:要求文の曖昧さの摘出法
- 88:システムとソフトウェアの保証ケースの動向
- 89:保証ケースのためのリスク分析手法
- 90:サービス保証ケース手法
- 91:保証ケースのレビュ手法
- 92:要求工学手法の再利用
- 93:SysML要求図をGSNと比較する
- 94:保証ケース作成上の落とし穴
- 95:ISO 26262に基づく安全性ケースの適用事例
- 96:大規模複雑なITシステムの要求
- 97:要求の創造
- 98:アーキテクチャと要求
- 99:保証ケース議論分解パターン
- 100:保証ケースの議論分解パターン[応用編]
- 101:要求発展型開発プロセスの事例
- 102:参照モデルに対する保証ケース
- 103:参SEMATの概要
- 104:参SEMATの活用
- 105:SEMATと保証ケース
- 106:Assure 2013の概要
- 107:要求の完全性
- 108:要求に基づくテストの十分性
- 109:システムの安全検証知識体系
- 110:機能要求の分類
- 111:IREB
- 112:IREB要求の抽出・確認・管理
- 113:IREB要求の文書化
- 114:安全要求の分析
- 115:Archimate 2.0のゴール指向要求
- 116:ゴール指向要求モデルの保証手法
- 117:要求テンプレートに基づく要求の作成手法
- 118:ビジネスゴールのテンプレート
- 119:持続可能性要求
- 120:操作性要求
- 121:安全性証跡の追跡性
- 122:要求仕様の保証性
- 123:システミグラムとドメインクラス図
- 124:機能的操作特性
- 125:セキュリティ要求管理
- 126:ソフトウェアプロダクトライン要求
- 127:システミグラムと安全分析
- 128:ITモダナイゼーションとITイノベーションにおける要求合意
- 129:ビジネスモデルに基づく要求
- 130:ビジネスゴール構造化記法
- 131:保証ケース導入上の課題
- 132:要求のまとめ方
- 133:要求整理学
- 134:要求分析手法の適切性
- 135:CROS法の適用例
- 136:保証ケース作成支援ツールの概要