• 検索結果がありません。

Contents 1 はじめに ライセンス インストール方法 Enterprise Architect 9へのインストール方法 S

N/A
N/A
Protected

Academic year: 2021

シェア "Contents 1 はじめに ライセンス インストール方法 Enterprise Architect 9へのインストール方法 S"

Copied!
41
0
0

読み込み中.... (全文を見る)

全文

(1)

SafeML 1.1

User’s Guide

Intelligent Systems Research Institute

National Institute of

Advanced Industrial Science and Technology

July, 2014

(2)

Contents

1 はははじじじめめめににに 3 1.1 ライセンス . . . 3 2 イイインンンススストトートーールルル方方方法法法 4 2.1 Enterprise Architect 9へのインストール方法 . . . 4 2.1.1 SafeML Profileのインストール . . . 5 2.1.2 開発支援ツールのインストール . . . 11 2.2 MagicDrawへのインストール方法 . . . 11 2.2.1 SafeML Profileのインストール . . . 12 2.2.2 SafeML Profileの使い方 . . . 15 3 SafeMLののの要要要素素素 20 3.1 Hazard . . . 21 3.2 Harm . . . 21 3.3 HarmContext . . . 24 3.4 ContextDetector . . . 24 3.5 Defences . . . 24 3.6 DefenceResult . . . 25 3.7 Tagged values . . . 25 4 SafeML支支支援援援ツーール 25 4.1 モデルビュー . . . 27 4.1.1 Harmビュー . . . 27 4.1.2 Defenceビュー . . . 29 4.1.3 ContextDetectorビュー . . . 29 4.1.4 HarmContextマトリックス . . . 29 4.2 報告書の自動生成 . . . 29 4.3 モデル検証 . . . 31 5 サササンンンプププルルル 31 5.1 Electric Kettle . . . 32 5.1.1 プロセス . . . 32 5.1.2 システムモデル . . . 32 5.1.3 システムのハザード . . . 32 5.1.4 ハザード状態(コンテキスト)のモデル化 . . . 36 5.1.5 安全機能の追加 . . . 37 5.2 レーザダイオード . . . 40

(3)

1

はじ

じめ

めに

SafeMLとは、システムの安全情報を記述するためのモデリング言語で、SysMLプロファイルと

して定義されています。 本書では、モデリング言語SafeMLの使用方法及び独立行政法人産業

技術総合研究所が開発した 支援ツールの使い方を解説します。

SafeMLは、Fault Tree Analysis や HAZOP 等のリスク・安全分析の結果を システムモデル

に記述するためのモデリング言語です(これらの安全分析を自動で 行うためのモデリング言ではありません)。SafeMLを利用することで、システム情報と安全情報を 統合した単一の モデルを作成することができ(図 1)、システムの安全に 関する情報の一貫性とトレーサビ リティを改良することが可能となります。 SafeMLは、主に以下の目的で使用する事が可能で す。 1. リスク分析などで抽出したハザードと,その安全対策のトレーサビリティの確保 2. 分析を行ったハザードの内容およびその安全対策を認証機関向けに文書化 3. 安全分析で安全エンジニアが抽出したハザードの内容を,要求分析を行うシステムエン ジニアに伝達 4. システムエンジニアが検討した安全対策の内容を安全エンジニアに伝達 SafeMLはSysMLと一緒に利用する事を想定しています。SysMLを用いてシステム設計情報 を モデル化するとともに,SafeMLを用いて安全情報を同じモデル内で表現する事が可能で す. SafeMLとSysMLの関係を図 2に示します。 SafeMLは、モデルベースでシステム設計を行うどのような開発プロセスでも利用すること ができます。 例えば、ウォーターフォール開発でシステム要求の分析後に安全分析を行ってい るような場合でも、 システム要求をSysMLで記述し、安全分析の結果をSafeMLで追記する事 が可能です。 更に、システム設計の内容をSysMLで作成しながら、安全機能をSafeMLで記述 することも可能です。 開発プロセスについては、章 5.1で説明しています。

1.1

ライ

イセ

セン

ンス

LICENSE.txtに記述しているように、 SafeMLのプロファイルとサンプルモデルはLGPL-3.0の ライセンスで配布します。

SafeML safety profile for SysML modelling language Copyright (C) 2013 Geoffrey Biggs, National Institute of Advanced Industrial Science and Technology, Japan This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3.0 of the License, or (at your option) any later version.

SysML elements

SafeML elements System model

System model with safety information

Safety analysis System

design

(4)

UML

SysML

Sa

feML

Figure 2: SafeMLとSysMLの関係

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FIT-NESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. SafeMLの開発支援ツールはフリーソフトとして配布します。

2

イン

ンス

スト

トー

ール

ル方

方法

SafeMLはSysMLのプロファイルとして定義されているため、モデリングツールは含まれていま せん。 このため、SafeMLを使用するためには、SysML及びUMLのプロファイル機能をサポー トする既存の モデリングツールが必要となります。また、SafeMLの開発支援ツールを利用す るためには SafeMLプラグインが利用できるモデリングツールが必要となります。 SafeMLは以下のモデリングツールで動作を確認済みです。各ツールへのインストール方法 は、 それぞれのツールに対応する章を参照してください。 ˆ Enterprise Architect 9 ˆ Enterprise Architect 10 ˆ MagicDraw 17.0.5 (SysML プラグインインストール済) ˆ MagicDraw 18.0 (SysML プラグインインストール済) SafeML開発支援ツールは以下のモデリングツールで動作を確認しています。各ツールのイ ンストール方法は、 それぞれのツールに対応する章を参照してください。 ˆ Enterprise Architect 9 ˆ Enterprise Architect 10

2.1

Enterprise Architect 9

への

のイ

イン

ンス

スト

トー

ール

ル方

方法

(5)

2.1.1 SafeML Profileのののイイインンスンスストトトーールルル

SafeML Profileは Enterprise Architect 9のXML フォーマット形式のファイルとして 配布されて

います。以下の手順で、SafeMLを利用したいプロジェクトにプロファイルをインポート して ください。

1. 「リソース」(Resources)ビューをクリックする。リソースビューが表示 されていな

い場合は、上部メニュー中の「ビュー」(View)メニューにある「More Project Tools」 (Enterprise Architect 9の場合)または「プロジェクト」メニューにある「リソース」を

使用してビューを開いてください。

2. 「UML Profiles」を右クリックし、「プロファイルのインポート」(Import Profile)を

(6)

3. 「ファイル名」(Filename)の部分でSafeMLプロファイルのXMLファイルを選択してく ださい。 「インポート」(Import)をクリックすると,リソースビューにSafeMLのプロ ファイルが表示されます。

4. 対象モデルでSafeML の要素と関連が利用できるようになります。ツールボックスの

「More tools. . . 」ボタンをクリックし、表示されたメニューから「SafeML」を選択する と SafeML用のツールボックスが表示されます。

(7)
(8)

5. SafeMLのツールボックスを常に表示するには、「More tools. . . 」メニューの 「Set

(9)

6. 表示された「Visible Toolbox Pages」ウィンドウで、SafeMLをチェックし「OK」 ボタン をクリックする。

(10)
(11)

2.1.2 開開開発発発支支支援援援ツツツーーールルルのののイイインンンススストトトーーールルル

開発支援ツールは以下のソフトウェアがインストールされていることが必要です。

1. Microsoft .NET Framework version 4.0

http://www.microsoft.com/en-us/download/details.aspx?id=17851 2. Crystal Reports Basic for Visual Studio, version 2008 or greater

http://www.sap.com/solution/sme/software/analytics/crystal-bi/index.html 開発支援ツールをインストールするには、「EAAddinSetupEn.bat」のバッチファイルを 以下の手順で 管理者として実行してください。 バッチファイルを右クリックし、表示さ れたメニューの中から「Run as administrator」を 選択するとインストールが始まります。 (EnterpriseArchitectが起動している場合は、バッチファイルを実行する前に一度終了してくだ さい) 開発支援ツールのインストールが成功すると以下のウィンドが表示されます。いずれかの キーを押す とインストールが終了します。 インストール完了後、Enterprise Architect を起動すると、開発支援ツールが利用可能で す。 「Extensions」メニューの「Add-In Windows」からモデルビューを開くことができます。

2.2

MagicDraw

への

のイ

イン

ンス

スト

トー

ール

ル方

方法

SafeML ProfileはMagicDrawにSysMLプラグインがインストール済みことが必要です。SysML

(12)

2.2.1 SafeML Profileのののイイインンスンスストトトーールルル

SafeML Profileは MagicDraw の Resource File フォーマット形式のファイルとして 配布されて

います。以下の手順で、MagicDraw にインストールしてください。

1. “Help” メニューで “Resource/Plugin Manager” をクリックする。

(13)
(14)

4. インストールが成功の場合、以下のダイアログが表示される。

(15)

2.2.2 SafeML Profileののの使使使いいい方方方

SafeMLを利用したいプロジェクトにSafeMLモジュールをインポートしてください。SafeML の

図と要素は以下に説明した手法で利用できます。

1. MagicDraw SysMLプロジェクトを開き、“Options” メニューから“Project usages”を選択

する。

(16)

3. “<install.root>/profiles”を選択し、モジュールリストから “safeml.mdzip”を選択する。“Finish”バ トンをクリックする。 button.

(17)

5. SafemLの図を作成するために、モデルの“Containment”リストに右クリックし、 “New

(18)

6. SafeML図に表示されるSafeMLツールバーからSafeMLの要素が作成できます。“New

(19)

7. モデルにあるDefenceとHarmContextの関連は、HarmContextのmatrix analysis図で見るこ とが可能である。“New Diagram”メニューの“Analysis Diagrams”サブメニューから作成 できる。

(20)

3

SafeML

の要

要素

SafeMLの要素と関連は、システム安全のコアコンセプトを記述するために使用します。

(21)

2. ハザードが引き起こす危害(harms) 3. ハザードが危害を引き起こすために必要なコンテキスト(contexts) 4. コンテキストを防ぐ防護手段(defenses) 5. 防護手段が必要となる状態の検出手段(detection methods) 6. 防護手段の結果(defense results) SafeML及びこのユーザガイドで使用している用語の意味を以下に示します。 ハ ハ ハザザザーーードドド (Hazard)システムに存在する危害の原因。ハザードはシステム内に常に存在して おり、 必要なコンテキストが存在するとハザードに関連する危害を発生する危険性があ ります。 ハザードはシステムのコンポーネント、システムの設計及びシステムの利用手 段と関係します。 SafeMLでは、ハザードは「Hazard」要素で記述します。 危 危 危害害害 (Harm)ハザードによって発生する人・資産・環境への危害。ハザードが 起こす具体 的な危害はコンテキストに依存します。SafeMLでは、危害は「Harm」要素で記述 しま す。 ハ ハ

ハザザザーーードドド状状状態態態 (Hazardous situation)あるハザードが危害を発生するために 必要な状態。SafeMLで

は、ハザード状態は「HarmContext」要素で記述します。 ハ ハ ハザザザーーードドド事事事象象象 (Hazardous event)ハザード状態の発生。ハザード事象が成立すると 危害が 発生する危険性があります。SafeMLでは、ハザード事象は「HarmContext」で 記述しま す。 危 危 危害害害事事事象象象 (Harmful event)ハザードが発生した際に危害が発生すること。 安 安

安全全全機機機能能能 (Safety measure)安全を保証するためのシステム機能。 SafeMLでは、「PassiveDefence」

と「ActiveDefence」要素で記述します。 モ モ モニニニタタタ (Monitor)ハザード状態とハザード事象を検出するためのシステム機能。 ハザード状 態またはハザード事象が発生した際に、モニタが安全機能を起動します。 SafeMLでは、 モニタは「ContextDetector」要素で記述します。 SafeMLには、7つの要素とそれらを関係づける関連があります。 SafeMLを使用して作成したモデルの例を図 3に示します。 以下はSafeMLの各要素および関連の説明です。SafeMLを使用するモデルでは、要求 (安 全要求を含む)、ユースケース、コンポーネント等のシステム設計情報をSysMLの 要素で記述 します。以下の説明で、「システムモデル」はSysMLで記述したモデル 部分を示します。

3.1

Hazard

Hazard 要素(表 1)はシステムに存在するまたはシステムに 関連する潜在的なハザードを表 します。例えば、あるシステム要求が危険である場合や、 あるコンポーネントを使用すること で危険が発生する可能性がある場合、これらはハザードとなります。

ハザードは、Preliminary Hazard Analysis や HAZOP 等の一般的なリスク・ハザード・ 安

全分析手法で明確にします。

3.2

Harm

Harm 要素(表 2)はある状態でハザードによって発生する危害事象を 表します。

危害は、Preliminary Hazard Analysis や HAZOP 等の一般的なリスク・ハザード・ 安全分

(22)

« De fenseR esult» Defe nseR esult1 ta gs pr obability of ha rm = X pr obability of occur rence = X ra nge = X seve rity = X « Conte xtDete ctor» Conte xtDete ctor1 ta gs cost = X probability of fa lse positive = X pr obability of tru e positive = X «P a ssiveDe fence » Pass iveD efence 1 ta gs cost = X probability of success = X «A ctiveD efence » A ctive Defe nce1 ta gs cost = X probability of success = X «Har mConte xt» Har mConte xt1 ta gs pr obability of ha rm = X pr obability of occur rence = X ra nge = X seve rity = X «Har m» Har m1 ta gs sa fety scor e = X «Haza rd» Haz ar d1 «r equir em ent» R equir em ent1 «system e lem ent» Block 1 «system c onte xt» Block 2 Use Ca se1 « De fenseR esult» Defe nseR esult2 ta gs pr obability of ha rm = X pr obability of occur rence = X ra nge = X seve rity = X «r equir em ent» R equir em ent2 «r equir em ent» R equir em ent3 «r equir em ent» R equir em ent4 «r equir em ent» R equir em ent5 0..* 0..* 0..* 1..* 0..* 0..* 0..* 0..* 0..* 1..* 1..* 1..* «derive Hzd» «derive Hzd» «derive Hzd» «derive HC » «derive HC » «dete ct» «r eqDe tec tion» «r eqDe fence » «r eqDe fence » bdd [P ack a ge] S af eM L [S af eM L Conceptua l Mode l]

«usecase» Use case 1

«activity » A ctivity 1 «derive HC » Figure 3: SafeMLのすべての要素を使用したモデル例

(23)

Table 1: SafeML::Hazard specification SafeML::Hazard 概 概 概要要要 潜在的なハザード 導 導 導出出出元元元 SysML::Blocks::Block 関 関 関連連連 関関関連連連要要要素素素

deriveHzd SysML::Requirements::Requirement, SysML::Blocks::Block,

UML4SysML::UseCase ハザードの発生源を示す → SafeML::Harm ハザードが引き起こす結果及びその結果を発生させる状態 を示す タ タ タグググ付付付き値値値 型型型 概概概要要要 — —

Table 2: SafeML::Harm specification

SafeML::Harm 概 概 概要要要 一つ以上のハザードから発生する危害 導 導 導出出出元元元 SysML::Blocks::Block 関 関 関連連連 関関関連連連要要要素素素 — — タ タ タグググ付付付き値値値 型型型 概概概要要要

Safety score Real リスクを示す数値。(読み出し専用、開発支

(24)

Table 3: SafeML::HarmContext specification SafeML::HarmContext 概 概 概要要要あるハザードが引き起こす危害を発生させるために必要な状態 導 導 導出出出元元元 SysML::AssociationBlock 関 関 関連連連 関関関連連連要要要素素素

deriveHC UML::Activity, SysML::Blocks::Block,

SysML::Requirements::Requirement, UML::Operation 状態の発生源 タ タ タグググ付付付き値値値 型型型 概概概要要要 Probability of occur-rence String 事象が発生する確率

Probability of harm String 必要な状態が存在する場合に、危害が発生す

る確率 Severity String 危害の最大深刻度 Range String 危害の最大影響範囲

3.3

HarmContext

HaarmContext HarmContext 要素(表 3)はハザードとそのハザードが 引き起こす危害の関連を表しま す。 HazardとHarmContext を合わせるとハザード状態となります。状態が発生すると、 ハザー ド事象となり、危害が発生します。Hazard、HarmContext及びHarmを組み合わせることで 危 害事象を表現します。 SafeMLのモデルでは、HazardとHarmの要素は再利用可能ですが、HarmContextは ある特 定の危害事象を表現します。 SafeMLでは、HarmContextが安全機能の対象となります。

ハザード、危害及びシステムに対するFault Tree Analysis や Human Interface Analysis 等の

安全分析手法によってHarmContextを抽出します。

3.4

ContextDetector

安全機能の中には、対象事象を検出し明示的に起動する必要がある機能が存在します。 SafeMLではこの対象事象を検出するための機能をContextDetector」要素で記述します(表 4)。 ContextDetectorが存在するシステムは、関連する HarmContext を検出する手段が必要となり ます。 単一の ContextDetector で複数の危害状態を検出することも可能です。

3.5

Defences

安全機能はハザード状態、ハザード事象及び危害事象の発生を防ぐか 発生した後の影響を低減 するための機能です。安全機能は PassiveDefence(受動防護手段、表 5)と ActiveDefence (能 動防護手段、表 6)で表現します。 PassiveDefence は、明示的な起動指令が必要ではない安全機能を表します。 PassiveDe-fenceは常に起動された状態となります。 ActiveDefence は、安全を確保する為に明示的に起動することが必要な安全機能を表しま

す。 ある ContextDetector が、HarmContext を検出するとその HarmContext に関連するすべ ての ActiveDefence を起動させます。

(25)

Table 4: SafeML::ContextDetector specification SafeML::ContextDetector 概 概 概要要要ハザード状態・ハザード事象の検出手段 導 導 導出出出元元元 SysML::Blocks::Block 関 関 関連連連 関関関連連連要要要素素素 detect SafeML::HarmContext 検出する HarmContext を示す reqDetection SysML::Requirements::Requirement この ContextDetector を必要とする安全要求を示す タ タ タグググ付付付ききき値値値 型型型 概概概要要要 Probability of true positive String HarmContextを正常に検出する確率 Probability of false positive String HarmContextを誤って検出する確率 Cost String 検出手段を実装するためのコスト Defenceは複数の HarmContext インスタンスと関連することが可能です。これは その安全 機能が複数のハザード状態等を防護することを表現します。

3.6

DefenceResult

DefenceResult 要素は安全機能の結果を表現します(表 7)。

3.7

Tagged values

開発支援ツールを使用する時以外は、SafeML 要素のタグ付き値の記入は必須ではありませ ん。 開発支援ツールはこのタグ付き値に設定された情報を利用して、モデルの安全機能の ギャップ分析や トレードオフ分析などの支援を行います。 タグ付き値を利用する場合は、文字列として設定してください。 この文字列で使用可能な 内容は、ステレオタイプを付加した enumeration で定義します。 各Enumeration で使用するス テレオタイプを以下に示します。

safeml enum severity Stereotype for available “severity” values. safeml enum range Stereotype for available “range” values. safeml enum cost Stereotype for available “cost” values.

safeml enum probability Stereotype for available “probability” values.

章 5で紹介するサンプルモデルで enumeration の例も示します。

4

SafeML支

支援

ツー

ール

SysML/SafeMLモデルの作成・レビューを支援するためのツールです。ツールは、 新しいモデ ルビュー、報告書自動生成及びモデル検証の3つの機能を提供します。 開発支援ツールは、SafeMLの様なモデリング言語で安全情報を記述すると可能になること を示すための ソフトウェアです。

(26)

Table 5: SafeML::PassiveDefence specification SafeML::PassiveDefence 概 概 概要要要 常にハザード状態等を防護する安全機能 導 導

導出出出元元元 SysML::Blocks::Block via SafeML::Defence 関 関 関連連連 関関関連連連要要要素素素 → SafeML::HarmContext 防護対象の HarmContext reqDefence SysML::Requirements::Requirement この安全機能を必要とする安全要求 タ タ タグググ付付付き値値値 型型型 概概概要要要 Probability of suc-cess String ハザード状態等の危害確率や最大深刻さ等を 正常に変更できる確率 Cost String 安全機能を実装するためのコスト

Table 6: SafeML::ActiveDefence specification

SafeML::ActiveDefence 概 概 概要要要ハザード状態等を防護する為に明示的に起動することが必要な安全機能 導 導

導出出出元元元 SysML::Blocks::Block via SafeML::Defence 関 関 関連連連 関関関連連連要要要素素素 → SafeML::HarmContext 防護対象の HarmContext reqDefence SysML::Requirements::Requirement この安全機能を必要とする安全要求 タ タ タグググ付付付ききき値値値 型型型 概概概要要要 Probability of suc-cess String ハザード状態等の危害確率や最大深刻さ等を 正常に変更できる確率 Cost String 安全機能を実装するためのコスト

(27)

Table 7: SafeML::DefenceResult specification SafeML::DefenceResult 概 概 概要要要ハザード状態等を防護した結果 導 導 導出出出元元元 SysML::AssociationBlock 関 関 関連連連 関関関連連連要要要素素素 — — タ タ タグググ付付付き値値値 型型型 概概概要要要 Probability of occur-rence String 事象が発生する確率の修正値

Probability of harm String 必要な状態が存在する場合に、危害が発生す

る確率の修正値 Severity String 危害の最大深刻度の修正値 Range String 危害の最大影響範囲の修正値

4.1

モデ

デル

ルビ

ビュ

ュー

開発支援ツールは、モデルに含まれている安全情報を表形式で表示するモデルビューを提供し ます。 4.1.1 Harmビビビュュュー Harmビューはシステムに存在する危害とその危害が発生する状態を示す表です (図 4)。Harm・HarmContextの 組み合わせ毎に「Undefended case」(防護手段が無い場合)が防護手段を使用しない場合に危 害が起こる確率等を示します。 他の部分は防護手段が存在する場合の危害の発生確率を示しま す。 各列の内容は以下の通りです。 Harm Harm 要素のインスタンス HarmContext 危害を発生させるハザード状態・ハザード事象 Defence HarmContextを防護する安全機能 P(Occur) ハザード状態が発生する確率。防護手段が存在しない場合は HarmContext の確 率、防護手段が存在する場合は関連する DefenceResult の確率を示します。 P(Harm) 危害が発生する確率。防護手段が存在しない場合は HarmContext の確率、防護手 段が存在する場合は関連する DefenceResult の確率を示します。 Range 危害の最大影響範囲。防護手段が存在しない場合は HarmContext の値、防護手段が存 在する場合は関連する DefenceResult の値を示します。 Severity 危害の最大深刻度。防護手段が存在しない場合は HarmContext の値、防護手段が存 在する場合は関連する DefenceResult の値を示します。 P(Success) 防護が成功する確率。防護手段が失敗した場合は、 危害の確率、深刻度等の値が 適用されます。 Safety score 防護手段の相対的な安全さを示す値。この値は絶対的な 安全性の尺度として使 用することはできません。 Cost 防護手段を実装するためのコスト 赤い行は防護手段が存在しないハザード状態を示します。つまり、PassiveDefenceも Ac-tiveDefenceも存在しないHarmContextを示します。

(28)
(29)

4.1.2 Defenceビビビュュュー

Defenceビューはシステムに存在する安全機能の概要を表示します。すべての防護手段とそれに

関連する HarmContext と ContextDetector を示します。

各列の内容は以下の通りです。

Defence PassiveDefence 要素または ActiveDefence の要素インスタンス

HarmContext Defenceが関連する HarmContext インスタンス

ContextDetector Defence が関連する HarmContext に関係しているContextDetector のイン

スタンス P(Detect) 関連する ContextDetector がハザード状態を正常に検出し、防護手段を起動させる 確率(ActiveDefence のみ)。 P(Success) 防護手段が正常に起動しハザード状態を防ぐ確率 Cost 防護手段を実装するためのコスト 4.1.3 ContextDetectorビビビュュュー ContextDetectorビューはシステムに存在する ContextDetector の概要を示します。 各列の内容は以下の通りです。 ContextDetector ContextDetector 要素のインスタンス HarmContext ContextDetectorが検出できるハザード状態 P(FP) 誤検出となる確率。危険状態/事象が発生していないのに、誤って発生したとしてしま う確率 P(TP) 正常検出の確率。危険状態/事象が発生した場合に、正常に検出できる確率 Cost ContextDetectorを実装するためのコスト 4.1.4 HarmContextマママトトトリリリッッックククススス

HarmContext マトリックス はハザード状態(HarmContext)と安全機能 (PassiveDefence と

ActiveDefence)の関連を示します(図 5)。 各列は モデルに存在するHarmContext を示し、 各行はモデルに存在する PassiveDefence と ActiveDefence を示します。 防護手段が存在しないハザード状態は赤く表示されます。セルの数値は、防護手段が存在する場合に、 HarmContext と Defence の組み合わせから 算出した Safety Score を示します。

4.2

報告

告書

の自

自動

動生

生成

PDF形式の安全情報報告書を自動で生成する機能です。出力例を 図 6に示します。

報告書の自動生成は Harm ビュー及び Defence ビューで行うことができます。「Report」

(30)

Figure 5: HarmContext–Defence 関連マトリックス

Harms Report Document

for

Electric kettle 1.0

2013/02/15

Model author(s): Geoffrey Biggs[System engineer],Takeshi Sakamoto[System engineer] Model created: 2012/04/17

Report generated by: Geoffrey Biggs

Position: System engineer

Signature:

2013/02/15

Model date:

Report date:

Harms report for:Electric kettle[v.1.0] Report generated by:Geoffrey Biggs[System engineer]

1.Electrical fire 0.67 Safety score: Electricity Hazard: Sources:

1.1.Harm Context: Contact between water and live electrical components

Sources:

Severity: S3

Range: Many

Medium Probability of harm: High Probability of occurrence:

- [Block] Electric element

1.2.Harm Context: Short circuit of live electrical components

Sources:

Severity: S3

Range: Many

High Probability of harm: Low Probability of occurrence:

- [Block] Switch - [Block] Electric cable

2013/02/15 Report generated: 1 Model created: 2012/04/17 Last updated:2013/02/15

(31)

表示されたダイアログで報告書を作成する開発者の情報を入力し、「Generate」 ボタンを クリックしてください。 報告書には、自動的にダイアグラムを追加することが可能です。ダイアグラムを追加する ためには、 対象事象の名称とステレオタイプを設定する必要があります。 また、ダイアグラ ム自体は手動で作成する必要があります。 Electric Kettle サンプルモデルで、報告書に使用す るダイアグラムの例を示します。 ˆ Harm レポートでは、ダイアグラムは単一の HarmContext インスタンスに関連した情 報を 示すべきです。HarmContext インスタンス毎に1つのダイアグラムを作成し、

ダイアグラムの ステレオタイプに「safeml report harm」を設定し、ダイアグラム名に

HarmContext インスタンスの名称を設定してください。

ˆ Defence レポートでは、ダイアグラムは単一の PassiveDefence もしくは単一の

ActiveDe-fence に関連した情報を示すべきです。Defence インスタンス毎にダイアグラムを作成

し、ダイアグラムの ステレオタイプに「safeml report defence」を設定し、ダイアグラム

に Defence インスタンスと同じ名称を設定してください。

4.3

モデ

デル

ル検

検証

開発支援ツールには、対象モデルのSafeMLメタモデルとの整合性を検証するモデル検証機能も あります。 「Validate」ボタンをクリックすると、すべてのSafeML要素のインスタンスおよび 要素間の関連が メタモデルに整合しているかを自動的に検証します。検証を行った結果、メタ モデルに矛盾する内容が 存在した場合には、結果を新しいウィンドで表示します。また、エ ラーが存在する場合、 そのエラーをダブルクリックすると関係する要素に移動します。

5

サン

ンプ

プル

本章では、SafeMLの利用方法を示すサンプルモデルとサンプルダイアグラムを紹介します。 最初のサンプルは、モデル開発にSafeMLを適用した例です。2つめのサンプルは特定の 情 報をモデル化する手法を示した例です。

(32)

5.1

Electric Kettle

サンプルは、電気ポットのシステムモデルに、Fault Tree Analysisで明らかにした安全情報

を付加した例です。 付加した安全情報はハザード状態(コンテキスト)やそれを防ぐ防衛手段 (ディフェンス)も含みます。 本書ではモデルの一部だけを示します。全体のサンプルモデルは、SafeMLと一緒に Enter-prise Architectのモデルとして配布しています。 この例で示している分析内容とその結果は、あくまでもSafeMLを説明するための例であ り、 完全な分析結果を示してはいません。 5.1.1 プププロロロセセセススス サンプルシステムで用いた開発プロセスを以下で説明します。ここで説明する開発プロセス は、 SafeMLを安全システムの開発で使用するための一例です。 1. システムレベルの要求とユースケースの抽出。SysMLのユースケース図・ 要求図・アク ティビティ図等を使用してモデルを作成します。 また、システムのプロトタイプを開発 しSysMLでモデル化します。 2. 各要求に対して、ハザード・安全分析を実施。分析結果からハザード、危害及び ハザー ド状態・事象をSafeMLの要素を使いモデルに追加します。 3. 防護手段(安全機能)とそれらの防護結果の検討。SafeMLの要素を使用してモデルに 追 加します。 4. 安全機能を実現するために必要な新しいシステム要求(安全要求)の追加。 追加した要素 は、システム設計段階で安全機能を示すBlock に接続するとともに、 安全機能の動作確 認テストをモデルに追加します。 5. 新たなハザードの特定。安全機能を追加した事で発生する新たなハザード等を検討する ために 必要に応じて上記のプロセスを反復します。 5.1.2 シシシススステテテムムムモモモデデデルルル 電気ポットの例を示します。初期段階では、ポットの機能はきわめて単純であり、 スイッチをれるとポットは水を加熱し、スイッチを切ると加熱を止めます。 システムのユースケースを 図 7に示します。 初期設計は機能のみに着目しているため、非常に単純になります。

「Boil water」ユースケースの詳細を図 8のアクティビティ図に示します。 同様に「Pour

water」ユースケースの詳細を図 9のアクティビティ図に示します。 更に、各ユースケースと 要求を満たす為のポットの初期設計を図 10に示します。 5.1.3 シシシススステテテムムムのののハハハザザザーードドド 簡単なハザード分析により、以下のハザードと危害が見つかります。 1. 電気:感電、電気火事の原因 2. 熱:やけどの原因 3. 蒸気:やけどの原因 4. 湯:やけどの原因

危 害が発生する状態を見つける為にFTA(Fault Tree Analysis)を行います。「Water

burns」 (熱湯によるやけど)のFault Tree を図 11に示します。 (このFault Tree では、

確率情報は表示していません。)

Fault Treeを用いた分析により、やけどを発生する複数のminimum cut set(ハザード状態・

(33)

uc [Package] Electric kettle [106 Use cases] Put water in kettle Boil water Stop boiling Pour water <<block,external>> WaterTap <<block,external>> PowerPoint <<block,external>> WaterDestination Class:ElectricKettle Figure 7: 電気ポットのユースケース図

(34)

act [Package] Electric kettle [108 Boil water]

Plug in kettle

:User :PowerPoint :ElectricKettle :Environment

Activate boiling Unplug kettle Stop dispensing electrical energy Begin dispensing electrical energy

Wait for boiling to finish

Deactivate

boiling Stop boiling

Boil water [not finished] :Electricity :Boiling status Boiling deactivation :Command [finished] :Boiling status :Heat :Steam :Noise :Electricity <<continuous>> <<continuous>> <<continuous>> <<continuous>> <<continuous>> <<continuous>>

(35)

act [Package] Electric kettle [110 Pour water]

:User :ElectricKettle :WaterDestination

Tilt kettle towards spout Hold spout over

destination

Wait for sufficient water dispensed Return kettle to the level [not sufficient] :Water :Water quantity [sufficient] :Water quantity <<continuous>> <<continuous>> Dispense water :Water Receive water

Figure 9: 「Pour water」ユースケースのアクティビティ図

:Electrical assembly

E :Electricity BoilingControl

WQ :Water quantity

ibd [Package] Electric kettle [125 Kettle logical connections]

:Switch

ElectricityControl BoilingControl

:Boiling status indicator BoilingStatus E :Electricity :Electrical assembly Ein :Electricity ElectricityControl Eout :Electricity :Spout Win :Water Wout :Water :Water tank WQ: Water quantity Win :Water E :Electricity Wout: ~Water ExcessHeat :Heat Noise :Noise Win: Water Wout :~Water ExcessHeat :Heat N :Noise BoilingStatus Figure 10: システムのプロトタイプ設計(内部ブロック図)

(36)

Water burns Contact with water Water is hot Pouring water by tilting kettle Water spills Pour water guidance Lid leak Lid failure Water leak from tank Over-boiling Boiling too long Boiling too much water

Figure 11: 「Water burns」危害のFault Tree

1. お湯を注ぐ際に、ふたからお湯が漏れる 2. 水を入れすぎ、沸騰時にお湯があふれる 3. ユーザがポットのスイッチを切り忘れ、お湯があふれる 5.1.4 ハハハザザザーードドド状状状態態態((ココンンテテキキスストト))ののモモデデルル化化化 安全分析の結果に基づいて、SysMLのシステムモデルに安全情報を付加します。安全情報 をモ デル化する際の手順を以下に示します。 1. ハザードとそのハザードの原因となるシステム要素(要求、ユースケースまたは システ ムのコンポーネント)を記述します。 2. 発生しえる危害を記述します。 3. ハザードが危害となるコンテキストと、そのコンテキストを発生させるシステム要素 (要求、アクティビティまたはシステムのコンポーネント)を記述します。 安全情報をモデル化する際、ハザードと危害はハザード・リスク分析から抽出し、 コンテ キストはFTA、FMEA等の事故の原因を分析する分析手法から抽出します。 前章のハザード分 析とFTA分析の結果をモデル化するための手順例を以下に示します。 1. 関連するハザードとそのハザードが発生させる危害の明確化。全ての ハザードをHazard要 素を用いてモデルに追加します。また全ての危害をHarm要素を利用 してモデルに追加し ます。

2. フォルトツリーのminimum cut setの明確化。1つのminimum cut setは ハザードによっ

て危害が発生するような状態(コンテキスト)を表します。

3. Minimum cut set毎にHarmContext要素を使いコンテキストをモデルに追加し、

(37)

bdd [Package] Electric kettle illustrative diagrams [Lid leak]

«requirement» Make water available

«Hazard» Boiling water

«activity» Tilt kettle towards spout «usecase» Pour water «Harm» Water burns «block» Lid «HarmContext»

Lid leak while pouring «deriveHzd»

«deriveHzd»

«deriveHC» «deriveHC» «HarmContext»

(a)ふたからお湯が漏れるハザード事象

bdd [Package] Electric kettle illustrative diagrams [Over-boiling]

«requirement» Boil water «Hazard» Boiling water «activity» Boil water «usecase» Boil water «Harm» Water burns «activity» Wait for boiling to finish «HarmContext»

Over-boiling due to failure by user to deactivate «deriveHzd» «deriveHzd» «deriveHC» «deriveHC» «HarmContext» (b) 沸かし過ぎのハザード事象 Figure 12: SafeMLでモデル化されたハザード事象(コンテキスト) 本サンプルでは「お湯」ハザード、「やけど」危害及び「ふたからの漏れ」と「沸かし過

ぎ」 のコンテキストを説明します(図 12)。 図 12aでは、「Tilt kettle towards spout」とい う アクティビティが危害となる振る舞いを表し、「Lid」ブロックはそのアクティビティを 実 行する際に危害となる可能性のあるシステム部分を表します。この場合は、ブロックの 故障に よって危害が発生します。 図 12で示す2つの図は、1つの図とすることも可能です。しかし、 モデルをわかりやすく するためにコンテキスト毎に図を作成することをお勧めします。 「Boiling water」要素はHazard要素のインスタンスです。ユースケースと システム要求か ら発生するハザードなので、それらに繋がっています。

「Water burns」要素はHarm要素のインスタンスです。「Boiling water」要素は 両方の図 に出てきていますが、モデルとしては単一の要素になります。 両方の図で、harmはコンテキスト経由で原因となるハザードと繋がっています。 図 12aで は、コンテキストはふたの漏れです。図で 示したようにユーザがポットを傾けることとふたと の組み合わせでこのコンテキストは表現されます。 ハザード事象はHarmContextの要素で発生 確率が高と指定され、 また、危害が起こる確率が中と設定されています。 図 12bでは、危害を発生するコンテキストは ユーザがスイッチを切り忘れて、お湯を沸か しすぎてあふれることです。 (このサンプルの電気ポットでは自動的に沸騰を止めません。) コンテキストは 「Boil water」アクティビティと「Wait for boiling to finish」アクティビティ で 表現されます。

5.1.5 安安安全全全機機機能能能ののの追追追加加加

のステップは安全機能(防護手段とコンテキスト検出手段)の設計です。 フォルトツリー

のminimum cut setと同様に、コンテキストとシステム情報の関連を 示す図は、そのコンテキ ストの原因を対象に安全機能を設計することが可能です。

電気ポットのサンプルでは、複数のハザード状態・事象が存在します。本サンプルでは、

前章で説明したコンテキストを中心に安全機能の設計を行います。 図 13はある危害事象のハ

ザード情報の例です。潜在的なハザード、 関連するシステム要求とユースケース、ハザード事 象、使用する安全機能 及び動作確認手段を示しています。

(38)

bdd [Package] Electric kettle illustrative diagrams [Lid leak defence]

«requirement» Make water available

«Hazard» Boiling water

«activity» Tilt kettle towards spout

«usecase» Pour water «Harm» Water burns «block» Lid «HarmContext» Lid leak while pouring «deriveHzd»

«deriveHzd»

«deriveHC» «deriveHC»

«HarmContext» «PassiveDefence»Sealed lid

«DefenceResult» Sealed lid result «DefenceResult»

«requirement» Watertight lid seal

«reqDefence» «block» Seal «satisfy» «testCase» Seal is watertight «verify» (a)ふたの漏れに対する防護手段

bdd [Package] Electric kettle illustrative diagrams [Over-boiling defence]

«requirement» Boil water «Hazard» Boiling water «activity» Boil water «usecase» Boil water «Harm» Water burns «HarmContext» Over-boiling due to failure

by user to deactivate «deriveHzd» «deriveHzd» «deriveHC» «HarmContext» «ContextDetector» Water status sensor

«detect»

«requirement» Detect water status

«reqDetection»

«testCase» Sensor correctly detects

water status

«block» Water status sensor

«satisfy» «verify»

«ActiveDefence» Auto cut-off

«DefenceResult» Auto cut-off result «DefenceResult»

«requirement» Automatic cut-off

«requirement» Automatic switch control

«testCase» Sensor correctly detects

water status

«block» Water status sensor

«satisfy» «verify» «reqDefence» «deriveReqt» «deriveReqt» (b) 沸かし過ぎに対する防護手段 Figure 13: SafeMLを利用しモデル化した2つの防護手段

(39)

act [Package] Electric kettle [108 Boil water]

Plug in kettle

:User :PowerPoint :ElectricKettle :Environment

Activate boiling Unplug kettle Stop dispensing electrical energy Begin dispensing electrical energy

Wait for boiling to finish Boil water [not finished] :Electricity :Boiling status [finished] :Boiling status :Heat :Steam :Noise :Electricity <<continuous>> <<continuous>> <<continuous>> <<continuous>> <<continuous>>

Note changed activity: auto-shut-off eliminates the user's required kettle deactivation step.

Figure 14: 改善した「Boil water」ユースケースのアクティビティ図

最初はより簡単なふた漏れのコンテキストを説明します。図 13a で示したように、選択さ れたふた漏れの防護手段はふたにゴムシールを追加することです。 SafeMLのPassiveDefence要 素を利用してモデル化します。受動防護手段である為、 ゴムシームの機能は常に有効です。こ のため、ContextDetector要素は不要です。 ディフェンスとコンテキストの関連はDefenceResultによって特徴付けられます。これは 防 護結果を表現します。本サンプルでは、コンテキストの起こる確率が「High」から 「Low」へ 低減されます(図では示されていません)。コンテキストが発生する場合の危害確率には 影響 がありません。 図 13aで示したように、新しいディフェンスはシステム 設計の変更を発生させました。こ のため、新しい安全要求を追加し、それによって「Seal」という 新しいシステムのコンポーネ ントをふたのコンポーネントに追加しています。 また、機能の確認テストも追加されていま す。 SafeMLの要素によって、原因となるハザード、発生する可能性のある危害、それを発生さ せるコンテキスト、 防護するディフェンス、新しい安全機能のすべてが連携され、トレースが 可能となりました。かし過ぎのコンテキストでは、より複雑なデフェンスが必要です。本サンプルでは、 沸 かし過ぎが発生しないように自動停止機能を追加します(図 13b)。 このディフェンスはActiveDefenseのインスタンス(能動防護手段)であり、この機能を 発動させるための機能が必要となります。本サンプルでは温度センサを使用しています。 図 13bのContextDetectorインスタンスでこの 機能を表現しています。 ふたシールのディフェンスと同様に、ディフェンスとContextDetectorの実装方法を 図 13bに 示します。 自動停止機能の実装は単なるふたシールより複雑であり、システムモデルへの影響が より 大きくなります。ユーザが自分でスイッチを切ることが無くなるため、「Boil water」 ユース ケースのアクティビティ図にも変更が必要です(図 14)。

(40)

:Electrical assembly

E :Electricity BoilingControl

WQ :Water quantity

ibd [Package] Electric kettle [125 Kettle logical connections]

:Boiling status indicator BoilingStatus E :Electricity :Electrical assembly Ein :Electricity ElectricityControl Eout :Electricity :Spout Win :Water Wout :Water Win: Water Wout :~Water ExcessHeat :Heat N :Noise BoilingStatus :Steam vent Sin :~Steam Sout :Steam :Heat insulation EHin :~Heat EHout :Heat S :Steam :Water tank WQ: Water quantity Win :Water E :Electricity Wout: ~Water ExcessHeat :Heat Noise :Noise S :Steam InternalBoilingControl :Switch ElectricityControl BoilingControl InternalBoilingControl Figure 15: 安全設計によって改善された電気ポットの設計を示す内部ブロック図 自動停止機能の実装は、システム設計のコンポーネント間の関係の変更を発生させます。えば、新しいセンサとスイッチの間の接続が必要となります。改善された内部ブロック図 を 図 15に示します。

5.2

レー

ーザ

ザダ

ダイ

イオ

オー

ード

本サンプルではレーザポインタを使用して、ハザード状態・事象によってシステムモデルの 制 約が追加される例を示します。 レーザがユーザの目に入ることがハザードで、目に危害を加える危険性があります。 この ハザードはレーザ光を発生するというシステム要求とレーザダイオードの使用から導出され ます。 選択された防護手段はレーザダイオードの出力を安全なレベルに制限することです。 図 16に示すように、 このディフェンスはレーザダイオードに新しい要求を追加します。 40

(41)

bdd [Package] Laser pointer [Laser hazard]

«requirement» Produce a laser beam for

pointing at things «Hazard» Laser «Harm» Damage to eyesight «block» Laser pointer «HarmContext» Person looks directly

at laser «deriveHzd»

«HarmContext» «PassiveDefence»

Limit laser power

«DefenceResult» Laser power limit result

«DefenceResult»

«requirement» The laser power shall

be limited to 1mW «reqDefence» «testCase» Seal is watertight «block» Laser diode «satisfy» «satisfy» «verify» Figure 16: レーザの出力レベルへのディフェンス 41

Figure 1: SafeML のコンセプト
Figure 2: SafeML とSysMLの関係
Figure 3: SafeML のすべての要素を使用したモデル例
Table 1: SafeML::Hazard specification SafeML::Hazard 概概 概要 要 要 潜在的 なハザード 導導 導出 出 出元元 元 SysML::Blocks::Block 関関 関連 連連 関 関 関連連 連要要 要素素素
+7

参照

関連したドキュメント

These authors successfully used the llnearlzed theory for calculation of wave loading on a vertical circular cylinder extending from a horizontal ocean floor to above the free

Besides, Figure 6 shows the time histories of numerical solutions for rate of work done and convection in addition to fluid field and increase of fluid energy without or

EXCEPT AS EXPRESSLY STATED HEREIN, LOVELAND PRODUCTS, INC., THE MANUFACTURER OR SELLER MAKES NO WARRANTY OF RESULTS TO BE OBTAINED BY USE OF THE PRODUCT. BUYER'S OR USER'S

Princep 4L or Princep Caliber 90 plus Roundup brands: Use as tank mixture for preemergence and postemer- gence control of certain broadleaf and grass weeds where corn will be

Expert can also be used before crop emergence for control of many annual grass and broadleaf weeds in grain or forage sorghum, provided the sorghum seed has been properly treated

(0 .10 - 0 .25) TETRABAN applications should begin prior to disease development and continue throughout the season on 7- to 21-day intervals following the resistance

The irrigation system used for application of LEMUR LV must provide for uniform distribution of LEMUR LV treated water.. Non-uniform distribution might result in crop injury,

Sampling • After the secondary treatment, analysis will be conducted to ensure that the regulatory standards for discharge other than tritium, and to check the tritium