日本ソフトウェア科学会第 30 回大会 (2013 年度) 講演論文集

Assure-It: Assurance Cases の記録管理ツール
内田 篤史

松村 哲郎

若松 悠樹

志田 駿介

倉光 君郎

Assure-It は，Assurance Cases の作成ツールであり，ブラウザ上で Assurance Cases を作成，編集，記録，閲覧することが可能である．Assure-It では，Assurance Cases を拡張することにより，スクリプトの実行，Issue Tracking
System との連携をおこなうことができる．本論文では，Assure-It の設計と実装について説明し，Assure-It の使用例を示す．
Assure-It is a novel developing tool intended to edit Assurance Cases. Assure-It grants execution of program, and cooperation with Issue Tracking System to Assurance Cases. In this paper, we show the design
and the implementation of Assure-It and the example of use.

時系列に応じて保存し，Assurance Cases の議論展開

1 はじめにを開発プロセスに対応付けることにより，プロセスのAssurance Cases は，システムのディペンダビリ記録を行うツールを構築している．

ティ要求を議論し，その確信や合意を得る手段，そし

本論文の構成は以下の通りである．第 2 節にて，てディペンダビリティを保証する技術文書として安全

Assurance Cases とその表記法である GSN を概観す

工学分野から利用が広がっている．現在，航空機，自る．第 3 節では，想定する利用シナリオを述べる．第動車，鉄道，など，実社会システムへの適用例が報告

4 節では，シナリオを扱えるシステムの設計と実装にされている．

ついて述べ，第 5 節にて実際のユースケースについて

他方，ソフトウェアに関しての適用例は少ない [4]．
ソフトウェア開発では，要求抽出から実装，検証まで述べる．第 6 節にて関連研究について述べ，第 7 節にて，結論を述べる．のライフサイクルが短く，ユーザの要求変化による仕様変更（開発の差し戻し）も多い．そのため，ソフ

2 Assurance Cases と GSN

トウェア開発のライフサイクルでは Assurance Cases

Assurance の概念は，システムの安全工学の分野かを完成された技術文書として導入することは難しい．

ら始まった．この分野では，絶対安全ということは保我々は，ソフトウェアの開発プロセス，さらに運用証することができず，「安全性への確信 (assurance)」

プロセスとも連動しながら，Assurance Cases を変化の合意形成という形で記録してきた．その基本的な構する管理情報として機能させることを検討している．

造は，主張と Evidence による議論であり，システムそのための手段として，Assurance Cases の代表的なの安全性をまず主張によって表明し，それらを論理的ビジュアル記法である Goal Structuring Notation [5]に展開しながら，最終的に Evidence を示すという形（以下 GSN と呼ぶ）を用いて，Assurance Cases をで議論を行なってきた．

Assure-It: An editting, management tool of Assurance Cases.
Atsushi Uchida, Tetsurou Matsumura, Yuuki Wakamatsu, Shunsuke Shida, and Kimio Kuramitsu , 横浜国立大学, Yokohama National University.

GSN は，Tim Kelly らが提唱した Assurance Casesの代表的なビジュアル表記法である．主張をトップ

Goal と置いて，Strategy とサブ Goal という議論構造に分解しながら，最終的にそれらの主張をサポー

おける Assurance Cases のユースケースを述べる．

3. 1 ソフトウェア開発プロセス
ソフトウェア開発プロセスは，古典的なウォーターフォール型に始まり，反復型，スパイラルモデル，アジャイル開発手法，スクラムなどの手法が知られている．
ウォーターフォール型は次のフェーズから構成さ
図1

Goal Structuring Notation

れる．
要求抽出 ソフトウェアが満たすべき機能要求、非トする Evidence を付けて保証性を論じる．図 1 に機能要求を抽出する

GSN の表記法で記述された Assurance Cases の基本設計 必要な機能を実装出来るよう仕様を記述する的な構造を示す．システムが信頼出来るというディ実装 設計書にしたがって開発する

ペンダビリティ要求が Goal として示され，システムテスト・検証 設計書での挙動の規定と実際の挙動の実行環境が Context として定義される．最上位のを比較し、設計に従って実装されたかを調査する

Goal (TopGoal) は Strategy によって議論が分割さ

合意形成 製作したシステムがすべての機能要求・れ，より下位の Goal (SubGoal) となる．ソフトウェ

非機能要求を満たしているか確認を行う

アテストの結果などの Goal の正当性を示す証跡が以降の節では開発プロセスとしてウォーターフォール

Evidence として示される．

型の開発プロセスを想定して議論を行う．

Goal システムの性質を保証するための主張
Strategy Goal を分割するための指標

3. 2 開発プロセスと議論展開

Evidence Goal が成り立つための具体的な根拠

我々が想定するユースケースでは，Assurance Cases

Context 議論が成り立つための条件や前提の記述は要求抽出のフェーズで行われる．要求には機能要求と非機能要求がある．機能要求は設計時に必3 Assurance Cases の記述

要な機能を示し，非機能要求は，機能要求が満たす

Assurance Cases は，開発されたシステムが要求をべき性質を示す．我々のユースケースでの Assurance

満たしているか，ということの保証を合意するためのCases は，非機能要求であるディペンダビリティ関す技術文書である．一般に，開発プロセスのどの工程で，る命題をトップ Goal とし，ディペンダビリティ要求何を書くということは決まっていない．第 3 者検証を満たすように具体的な機能要求へと分割を行なってのため，開発が完了したシステムに対し，Assuranceいく．

Cases を新たに書くこともある．

Assurance Cases を書き始めるにあたり，まずは我々は，Assurance Cases と連動しながらソフトトップ Goal を決定する必要がある．我々のユースウェア開発を進めることを想定している．ソフトウェ

ケースでは，トップ Goal にはシステムのディペンダ

ア開発では，ディペンダビリティの保証が重要になビリティに関する命題を書き，システムの具体的な前る．ディペンダビリティとは，可用性，信頼性，安全提条件を Context に書く．

性など，様々なシステムの満たすべき非機能要求の総つづいて，トップ Goal の根拠をどのような戦略を称 [1] である．Assurance Cases によってソフトウェ持って示すのかを決定する必要がある．Strategy にア開発におけるディペンダビリティ要求と機能要求をその戦略を書き，トップ Goal の下に付ける．トップ

管理する．

Goal の内容を Strategy によって分割することによ

本節では，我々の想定しているソフトウェア開発にり，Goal の内容をより具体的に議論していく．

Assurance Cases の管理サーバでは、AssuranceCases をサーバ上で版管理を行なうシステムである。
クライアント側で作成した Assurance Cases を受け取り、保存を行なう。Assurance Cases 内にメタデータが存在した場合、メタデータに即した振る舞いを行なう。議論の成長をコミット単位で分割し、AssuranceCases の版管理を行う事により、過去の議論を遡って確認する事が可能となる。コミットの操作を行うのは
図2

Assurance Cases と開発プロセスの対応関係ユーザであり、各コミットにコミットメッセージを付与して Assurance Cases の編集を終える。

Strategy の分割にしたがって，上位の Goal を示す

Assurance Cases 編集クライアントは Assurance

ために満たしてほしい性質をサブ Goal として列挙す

Cases をユーザに対して表示・編集を行えるようにしる．トップ Goal がディペンダビリティに関する命題たプログラムであり、web ブラウザ上で動くサービなので，サブ Goal には，ディペンダビリティ要求にスである。Assurance Cases の編集を行いたい場合、関する命題が入る．

web ブラウザから Assurance Cases 管理サーバにア

Goal の内容を Strategy での戦略によって複数のサクセスすることにより、クライアントを利用すること

ブ Goal へと分割することを再帰的に行う．具体的なができる。利用者はマシンにクライアントプログラム機能に対する議論まで落とし込み，各 Goal に対するを新たにインストールしなくても使うことができる。

根拠を示す時に Evidence を Goal の下へ付ける．

クライアント側での Assurance Cases の編集は即図 2 のように，非機能要求が上位の Goal になり，設計・実装に必要な機能要求が下位の Goal となる．

座に反映されず、版管理システムと同様にコミットと呼ばれる単位でサーバ側に送られる。

また，Goal を支える根拠となる Evidence は，テスト・検証フェーズ時に設計された機能を含め，本当に4. 1 メタデータを用いた機能の拡張

ディペンダビリティ要求を満たすものであるか，根拠

Assure-It では、Assurance Cases 自身に証跡の登を示さなければならない．

録や外部ツールとの連携といった様々な動作を記述しているが、我々はこれらの動作を Assurance Cases

4 Assure-It の実装上で表現するための表記法としてメタデータを導入しAssure-It は、第 2 節で述べた要求に沿った Assur-た。メタデータは Goal, Context, Strategy, Evidence

ance Cases の管理・編集ツールである。Assure-It はの各ノードに定義される情報であり、自由に編集する

Assurance Cases の管理・編集の他に Issue Tracking事が可能となっている。メタデータはデータの種類とSystem (ITS) 等外部サービスとの連携も行える。

キーバリューのパラメータから成るデータ構造であAssure-It はサーバとクライアントで構成されてり、主に以下の用途で使用される。

おり、Assurance Cases を管理するためのサーバと、• サーバ側の処理

Assurance Cases の表示・編集をするためのクライア• クライアント側の処理ントをもつ。サーバ・クライアント間のやりとりは全てネットワーク越しに行なうため、それぞれ別のマシ

4. 2 Issue Tracking System との連携ンで動作させることができる。このため、Assure-It

Assurance Cases の記録管理を行うツールには、の管理サーバに別途 GUI ツールを入れる必要はなく、単なる Assurance Cases の編集・閲覧に留まらず複また Assure-It の利用者がマシンへ特別にクライアン

数人での Assurance Cases 作成や証跡の登録など、トをインストールすることなく利用できる。

Assurance Cases の作成を補助するための機能が求めこの後，各 Goal 以下の機能の設計について考え，Evidence となるテストを付け足すことにより「データベースが消えない」というサブ Goal を満たすようになる．同様の記述を他のサブ Goal に行うことにより，トップ Goal を満たしていく．
このように Assurance Cases に記述したディペンダビリティ要求を分割していくことにより，機能要求との結びつけを行い，Assurance Cases を用いて設計
図3

ディペンダビリティ要求の分割に必要な機能要求を記述することができる．
以上の要求抽出時における Assurance Cases の制られる。

Assure-It ではプロジェクトの進捗を管理のために利用される Issue Tracking System との連携を行って作を用いて，設計・実装・検証のフェーズを行う．し
たがって，Assurance Cases と開発プロセスが対応付いたと言える．

いる。Assurance Cases 上に記述されたメタデータを元にサーバ側で Issue Tracking System へのチケット

6 関連研究発行を行い、Assurance Cases 上で議論されている安我々は，Assurance Cases をソフトウェア開発プロ

全性に関わる議論の進捗を管理する。

セスにしたがって記録するツールを作成したが、近年 Assurance Cases への関心の高まりから，同様の5 記述評価エディタツールはいくつか公開されている．最後に関まず，図 3 のように，トップ Goal を「システムは連研究として概観する．

ディペンダブルである」とした場合，ディペンダビリ

Emmet らが提案した The Adelard Safety Case

ティについての合意形成を行う Assurance Cases とEditor [3] (以下，ASCE) は，Safety Cases をハイパーなる．具体的なシステムの条件があるかを Contextテキストとして記述するエディタが提案されている．に書く．ディペンダビリティ要求ごとにトップ Goal

Emmet らの ASCE は，GSN 記法の他に ASCAD とを分割する．以下のようなディペンダブル要求が考えいう記法も扱える．ASCAD は”claims-arguments-られる．

evidence”として議論を扱う記法である．

• アクセス負荷に耐えられる図表を用いた記法の問題として，文字だけの文書と• データが消えない比べて計算機の資源を大きく取ることと，使い勝手を• 個人情報が流出しない如何に向上させるかを論じている．

• 運用データが消えない

ソフトウェアやシステムのライフサイクルにおける• 不具合に対応できる

Dependability Cases のパターンをライブラリ化し，上述のディペンダブル要求について，機能要求とのそのライブラリを扱って Assurance Cases を書ける連結を行う．つまり，機能が満たすべき性質の非機能

D-Case Editor [6] を提案した． また，JST DEOS

要求について，議論する必要がある．
「データベースR&D Center の開発している D-Case Weaver [2] は，が消えない」というサブ Goal について，要求を満たweb ブラウザ上で編集できるサーバ・クライアントすためにさらにサブ Goal を Strategy で決めた方針型のソフトウェアであり，前述の D-Case Editor のにしたがって分割する．ここでは，データの種類ごと保存形式と互換性がある．に保存方法が違うので，保存するデータの種類からどのような設計を行うと「データベースが消えない」というサブ Goal を満たせるかを考える．

Yutaka らは，

7 むすびに
本論文では、Assurance Cases の編集・管理ツールである Assure-It の提案を行った。Assure-It では

Assurance Cases の編集と管理・閲覧が可能であり、ソフトウェアの要求抽出プロセスにおける AssuranceCases の活用を行うために設計されている。今後はソフトウェア開発プロセスにおける Assurance Casesの活用に Assure-It を活用していく予定である。

参 考 文 献[1] Avizienis, A., Laprie, J.-C., Randell, B., andLandwehr, C.: Basic concepts and taxonomy of dependable and secure computing, Dependable andSecure Computing, IEEE Transactions on, Vol. 1,No. 1(2004), pp. 11–33.

[2] Center, J. D. R.: D-Case Weaver, http://www.
dependable-os.net/tech/DCaseWeaver/.
[3] Emmet, L. and Cleland, G.: Graphical notations,narratives and persuasion: a pliant systems approach to hypertext tool design, Proceedings of thethirteenth ACM conference on Hypertext and hypermedia, ACM, 2002, pp. 55–64.
[4] Graydon, P. J., Knight, J. C., and Strunk, E. A.:
Assurance Based Development of Critical Systems,
Proceedings of the 37th Annual IEEE/IFIP International Conference on Dependable Systems andNetworks, DSN ’07, Washington, DC, USA, IEEE
Computer Society, 2007, pp. 347–357.
[5] Kelly, T. and Weaver, R.: The goal structuring
notation–a safety argument notation, Proceedingsof the dependable systems and networks 2004 workshop on assurance cases, Citeseer, 2004.
[6] Matsuno, Y., Takamura, H., and Ishikawa, Y.: A
dependability case editor with pattern library, HighAssurance Systems Engineering (HASE), 2010
IEEE 12th International Symposium on, IEEE,
2010, pp. 170–171.