社会・産業のデジタル変革
公開日:2025年2月17日
独立行政法人情報処理推進機構
デジタル基盤センター
本Tipsページでは、STAMP Workbenchの便利な利用方法/操作方法やSTAMP/STPA分析手法に関するちょっとした勘所をいくつか紹介します。一部の操作方法はマニュアルにも掲載されていますが、頻繁に問い合わせのある項目をピックアップして本Tipsページでも紹介しています。
また、STAMP Workbench使用において発生し得る軽微な問題を回避するための注意事項についても記しています。
本ページに示すノウハウなどは必ずしも汎用的なものではなく、「こうしたらうまくいった」という実施体験者からいただいた意見等も掲載しています。本Tipsページをご参考としてご自身で良いと感じた方法、効果的・高効率な方法を取り入れ、皆様の分析作業が改善されますことを望みます。
皆様からお問い合わせいただいた内容は、このTipsページへの掲載を検討します。お問い合わせに限らず、皆様が工夫された利用方法などありましたら、本Tipsページに掲載し、多くの方々と共有できることを期待しています。
お問い合わせおよび利用方法の情報提供などは「お問い合わせ先」メールアドレス宛てに送信ください。
ツールとして常に有効にする方法ではなく、プロジェクトファイル毎の設定です。
STAMP Workbenchで、文字サイズを変更したいプロジェクトファイル(.stmpファイル)を開く。
左上プロジェクトビューのタブに STPA手順/構造ツリー/マップ/図 があります。「構造ツリー」タブを選択。
プロジェクトファイル名を選択し、コンテキストメニューを開く(右クリック)。
下図では「中級-#7」がプロジェクトファイル名。
プルダウンメニューから、「フォントの設定」を選択。
「フォントの指定」ダイアログで、「自動」が選択されているので、オフにする。
文字フォントのサイズを数字で選択。デフォルトは16。
設定できるサイズは6から18まで。
OKを押して確定する。
選択したフォント指定はすべての図や表に適用される。別の方法を使って、CS図上の一部の文字列のみ文字色やフォントを変更することもできる。
コントロールストラクチャー図(CS図)において一部の文字列のみ文字色やフォントを変更することができます。全ての表で一部の文字単位で文字色を変更する機能はありません。
CS図やコントロールループ図において、CA、FB、input、outputなど色を変更したいコンポーネントや文字列を選択して、ツール画面にある帯状のツールバーで「文字色の設定」を押して色を選択する。変更できるのは文字色とフォント種類で、文字サイズは変更できない。
変更できない例:文字単位で色を変更
変更できる例:文字列全体の色とフォントの変更
STAMPのコントロールストラクチャー図(CS図、CLD)において、input/outputは、外界からシステム内のコンポーネントへの入力/システム内のコンポーネントから外界への出力を意味します。
CS図、あるいはコントロールループ図(CL図、CLD)において、コンポーネント間の線は制御(CA)またはフィードバック(FB)であり、input/outputは入力元や出力先のコンポーネントが現れません。
但し、「外界モデル」の項に記したように、外界の何とのinput/outputかを示したいときには外界モデルというコンポーネントを配置して、その外界モデルコンポーネントとシステム内コンポーネントの間をinput/output線で結ぶ方法もあります。
その場合、STAMP Workbenchではinput/output線がCA線(赤い矢印線)またはFB線(青い矢印線)で結ばれるので、線の色を黒に変更すると良いです。
CA、FB、input/outputの違いを線の色で明確に区別することをお勧めします。
この対策はツールが自動的にサポートすることが望ましいですが現状サポートできていません。
下図では、inputの文字も線もCAと同じ赤になっているので、CAと勘違いし易い。
変更したい線を選択すると線色変更のボタンが有効になる。
下図では外界からのinputの文字色と線色の両方を黒に変更した。CS図上でCAとinputの違いが明確になった。
コントロールストラクチャー図(CS図)を編集する際、コンポーネントやCA/FB線などを削除する場合、削除対象を選択してからコンテキストメニューを開く(右クリックする)と、「モデルから削除(Ctrl+D)」と「図から削除(Delete)」を選択できる。
「モデルから削除(Ctrl+D)」を選択することをお勧めします。
「図から削除(Delete)」とすると見かけ上は見えなくなりますが、モデルとして残っている(コンポーネント抽出表にも残っている)ので、後で何らかの編集をしているときに図に復活することがあり戸惑うことが有り得ます。不要と判断したら「モデルから削除(Ctrl+D)」を選択することをお勧めします。
UCA表や対策表に列を増やしたいことがあります。例えば、
等々、STAMP Workbenchへの機能拡張要望が多々あります。STAMP Workbenchは汎用的かつ基本的な機能を実装しており、とりあえずたいていの場合は事足りることを想定しているので、IPAによる機能拡張予定はありません。このような要望については、次の2通りの対応策があります。
【対応策1】
利用者様自身が(IPAがオープンソースとして公開している)ソースコードを改編して機能追加することも可能です。モデリングツール一般に精通していない技術者様でも、実は、列を追加する程度の改編は然程ハードルの高いものではありません。プログラミングの腕に覚えのある方ならば、ソースコードにザックリ目を通していただければお判りいただけるかと思います。ソースコード改編後のビルド方法も公開しています。改編して利用されている事例は国内外から報告されています。
【対応策2】
STAMP Workbenchで作成した表をExcel出力して、Excel上で列追加する。
(1)UCA表や対策表ウィンドウの右上にある「右向き矢印」を押す。
下図はUCA表の場合。
対策表の場合も同じ。
(2)「保存」のウィンドウを開いたら、保存先を選択して「保存」ボタンを押す。
保存先にExcel表(.xlsxファイル)が保存されるので、Excelを起動して任意に列追加などを行う。
STAMP WorkbenchからExcelへのエクスポート機能は有るが、ExcelからSTAMP Workbench へのインポート機能は無い。
Excelで編集した内容を自動的にSTAMP Workbenchに取り込むことはできない点に注意のこと。
デフォルトの保存先フォルダーはProgram Filesフォルダーなので書き込みできません。必ず、プロジェクトファイル(.stmpファイル)と同じフォルダーなど、書き込み可能なフォルダーを選択してください。
CS図を見て議論するときにCA,FBに番号があると話が早いです。
CA,FBの番号振り直しは次のようにすると簡単です。
UCAの番号はUCA表で整理できるが、FBの番号はCS図かコンポーネント抽出表でやるしかないので不整合が出そうな気がする。できることなら、(一般的にはCAとFBは対になるので)コントロールループを成すCAと対応付くFBが同じ番号になると良いが、自動的にナンバリングするのは難しそう。せめて、番号の重複を無くすくらいはできると良い。
この対策はツールが自動的にサポートすることが望ましいが現状サポートできていません。
下図のように「アクセル」や「ブレーキ」といった同名のCAがあるときなど、レビュー時に言葉だけでは区別が面倒なのでCS図に番号が表示されると便利。
CS図の中でCA1、CA2、・・のように番号を振る。
UCA表で順番が上下逆なのが気になる。
UCA表でNo欄の番号を選択してドラッグし、移動したいところまでマウスカーソルを移動してドロップする。
UCA表の中のUCA番号(UCA12-N-1など)は自動的に変わるので、手作業での修正は不要。同時に、対策表の中のUCA番号なども自動的に変わるので、UCA表以外に対して手作業での修正は不要。
STAMP Workbenchを用いて分析(思考)するとき、異なる画面を行ったり来たりするのは思考の妨げになるので、関係する情報を一度に見たくなります。そういうときにはSTAMP Workbenchの「ウィンドウ」機能を用いて、1画面内に複数のWindowを表示することが有効です。
同時に見たいWindowを開く。
ツールバーの「ウィンドウ」を選択してポップアップウィンドウを開く。
ポップアップウィンドウで、「上下に並べて表示」、「左右に並べて表示」、「上下左右に並べて表示」から並べたい配置を選ぶ。
画面を最大化するため、左側のプロジェクトペインを隠す。プロジェクトペインの右上の◀ボタンを押す。
マルチウィンドウになったら、それぞれのウィンドウサイズを変更したり、配置を変えて、見易くする。
下図の1枚目は2つのWindowを同時に表示。2枚目は3つのWindowを同時に表示。
1枚目の図では、CS図とUCA表を同時に見ながらUCAを考えるときに良く使うものと思われる。この例では、CS図の中の着目するCAに関するコントロールループのみを表示している。2枚目の図では、コントロールループとUCAを見ながらHCFやシナリオを考えるときに有効。
CS図を見ながらCAやUCAを考えているとき、考えている最中の対象コンポーネントの責務やinput/outputなどを確認する場合、コンポーネント抽出表を見れば書いてあるが、画面を変えずにサッと確認したいことがある。その場合は、画面左下のペインに表示させることができる。
CS図で対象コンポーネントを選択。
画面左下のペインでベースタグを押す(デフォルトはベースタグの画面が表示されている)。
プロセスモデルの入力もこの画面のプロセスモデルタグを押してから入力、編集できる。
プロセスモデルをコンポーネント内に表示するには、CS図でコンポーネントを選択し、コンテキストメニューを開き(右クリック)、「プロセスモデル区画の表示」を選択する。
プロセスモデルをコンポーネント内に表示すると、表示する分だけコンポーネントが大きくなるので、CS図内でのコンポーネント配置を再度編集する必要がある。プロセスモデルを表示してみて見難いと思ったら、「プロセスモデル区画の表示」をオフにして戻せば良い。
分析している最中に、一時的にプロセスモデルを表示したいと思った時だけ表示するのでも良い。UCAを識別するときにはプロセスモデルの表示がとても有用だが、分析結果をレビューするときには相互作用に注目して欲しいのでプロセスモデルの表示は目障り、というケースもある。
Power Pointでは難しいことですが、STAMP Workbenchはモデリングツールなので、表示のオン/オフ切り替えは容易ですし、切り替えの際に修正ミスも有り得ません。利用場面に応じて柔軟に切り替えてご利用ください。
UCAを識別するときには、CAとFBから成るコントロールループの単位を対象として考える。
下図のようなCS図において、外界からのinputをトリガーとして、必ず「CA1 → CA2 → FB2 → FB1」の順番となるシステムもあります。その場合、CA1に関するUCAを識別するのに「CA1 → FB1」のコントロールループで考えるのか、「CA1 → CA2 → FB2 → FB1」のコントロールループで考えるのか、悩ましいことがあります。
結論から言うと、UCAの識別においてはどちらでも構いません。
但し、ハザードシナリオを抽出する際には、「CA1 → CA2 → FB2 → FB1」のコントロールループの方が考え易いかもしれません。
UCAの識別では「CA1 → FB1」のコントロールループで考えて、ハザードシナリオの抽出では「CA1 → CA2 → FB2 → FB1」のコントロールループで考える、というのでも構いません。
STAMP/STPAは柔軟な手法であって、このような細かなルールを強制しません。
UCAを識別するときには原因を考えないようにします。原因を考えながらUCAを識別しようとすると、原因を思いつかないケースではUCAが識別できなくなります。原因を先に考えたら、対象システムについての知見が有るか否かに分析結果が依存することになります。
UCAの識別では、4つのガイドワードを参考にして、漏れの無い『観点』から論理的に識別します。STAMP/STPAにおいて、『観点』として漏れが無いことを示せることが重要で、分析の有効性を説明する際の肝となります。
それでも原因を思いつくことはあります。それは不必要な思いつきではなく、次のステップでHCFやハザードシナリオを特定する際にとても有用な思いつきです。その貴重な思いつきは捨てることなくメモに残しておき、次のステップに役立てます。
大事なことは、UCAを識別するときには先に原因を考えない。思いついてもその原因だけに捕らわれないように我慢することです。
コントロールループ図(CL図、CLD)は必ずしも描かなくても良いです。
コントロールループ図を描く目的は、CA・FBからなるコントロールループの中に存在し得るハザード要因(HCF)を探しやすくすることです。CS図でコンポーネントの数が多く、少し複雑な場合には着目するCAのコントロールループが見づらくなるため、対象コントロールループだけを抜き出してコントロールループ図を作成します。しかし、それほど複雑なCS図でなかったり、コントロールループを見失うことが無いCS図ならば、コントロールループ図を作成する意味がありません。
下図では、Open/CloseのCAを含むコントロールループは、Open/CloseのCAとゲート開閉状態のFBから成ることが明確なのでCL図を作成するまでもない。下図のように対象CAを発出するコンポーネントを選択すると、そのコンポーネントが直接関与するCA線とFB線がハイライトされて見易くなる。
コントロールストラクチャー図(CS図、CSD)やコントロールループ図(CL図、CLD)において、一般的にはシステム外のコンポーネントは記述しません。しかし、外界の何とのインタラクション(何からinputを受け取る/何に対してoutputを発出する)かを記述しておきたい場合もあります。その場合は、外界モデルとしてコンポーネントを記述する方法が都合が良いでしょう。
但し、気を付けて欲しいことは、外界モデルとのCAやFBのやり取りは無いはずです。外界モデルとのやり取りはinput/outputだけになります。CAやFBが出てきたときにはシステム境界の定義が曖昧になっていると考えられるので、現在の分析対象範囲はどこまでなのかを再確認してください。
下図では分析において「環境」を意識するように外界モデルとして明記。
対策表の備考欄に、手動でHCFのシナリオをコピーしている。
このコピー作業を自動化するか、対策表に列を追加してシナリオが自動的に表示されると良い。
この対策はツールが自動的にサポートすることが望ましいが現状サポートできていません。
下図では、HCF表と対策表の2つのWindowを上下に並べて2画面表示しているが、対策表の備考欄にシナリオをコピーしておけば2画面表示しなくても済む。
対策のところに【機能】【運用】【教育】など分類を記載し後から見やすくした。
対策表をExcel出力して、列を増やし、それぞれの対策に【機能】【運用】【教育】などの分類を記載して、後で他の人が対策表を見たときに、次の開発ステージであるコンポーネント設計に対するコンポーネント安全制約なのか、運用で考慮するという対策なのか、設計者・運用担当者に対して教育すべき事項なのか、が分かるようにした。
このように自社独自、自プロジェクト独自のIDや分類などを表に追加する機能はSTAMP workbenchに備わっていないので、Excelファイルに出力してからExcelで列を追加して対応した。
人のコミュニケーションの対策例として3wayコミュニケーションという方法がある。
3wayコミュニケーションとは伝達→復唱→確認のこと。
(「指示する」、「指示を復唱する」、「指示をもう1回繰り返して確認する」)
「○○してください」
「○○ですね?」
「はい、○○です」
原子力業界では一つの操作ミスが重大なトラブルに繋がったり、地域住民の信頼を損ねることに成り得るためコミュニケーションは重要な課題として捉えられており、3wayコミュニケーションが行われているそうだが、3wayコミュニケーションの伝達→復唱→確認という一連の流れは原子力業界以外でも重要な指示に対して有効と考えられる。対策例として参考にして欲しい。
Windowsの設定で「ハイコントラストモード」を有効にして、「ハイコントラスト:黒」とすると一部の文字が読めない問題が確認されています。STAMP Workbenchは「ハイコントラストモード」での文字・図形色自動変更に対応していないため、黒地に黒文字/黒線のような設定となり文字が読めなくなる現象です。ツール -> システムプロパティの「ダイアグラムエディタ」や「新規図要素のスタイル」で背景・図形・線・文字の色を選択することをお試しください。
システムプロパティ画面を起動
「ダイアグラムエディタ」で背景や図要素の色を変更
「新規図要素のスタイル」で文字・線色を変更
MS Officeの性能限界への対応方法です。Excelでは既定の列幅最大値が255文字(MS Officeのバージョンに依る)となっているため、STAMP Workbenchで表の列幅(セル幅)を256文字以上にした場合、Excel出力時にエラーが発生する可能性があります。
4K以上のディスプレイで高解像度設定し、かつ縮小表示して、STAMP Workbenchのウィンドウを全画面表示し、更にセル幅が255文字を超えるようにした場合、STAMP Workbenchの表をExcel出力したときにエラーが発生します。但し、エラー発生時にSTAMP Workbenchが保持するデータが壊れたり、失われたりすることはありません。
Excel出力を実施する前に、STAMP Workbenchのウィンドウ幅を少し小さめに変更することで問題を回避できます。
デジタル基盤センター デジタルエンジニアリング部 ソフトウェアエンジニアリンググループ
2025年2月17日
公開