見える化する要求仕様 〜 EARS(Easy Approach to Requirements Syntax)を活用したシステム要求の書き方 〜
Automotive SPICE 4.0 に関するコラム、今回は「EARSを活用した要求文の書き方」についてお届けいたします。
はじめに
システム開発において、明確で一貫性のある要求仕様を書くことは極めて重要です。しかし、要求の記述が曖昧であったり、解釈の余地が大きいと、後の開発フェーズで認識のズレや仕様変更が発生し、コストや工数の増加につながります。
そこで、本コラムでは「EARS(Easy Approach to Requirements Syntax)」という手法を紹介します。EARSは要求を定義するためのテンプレートで、要求をシンプルかつ明確に記述するための構文を提供し、解釈のブレを防ぐことができます。
EARSの基本構造
EARSは要求の表現方法を体系化し、以下の6つの基本パターンを定義しています。
1.Ubiquitous(一般的な要求): 常に適用される要求に使用します
-
-
- 形式: 「The [システム] shall [動作]」
- 例: 「システムは、車両の衝突が検知された場合、適切なエアバッグを30ミリ秒以内に展開しなければならない」
-
2.Event-driven(イベント駆動要求): あるイベントが発生した場合に適用される要求に使用します
-
-
- 形式: 「When [イベント], the [システム] shall [動作]」
- 例: 「正面衝突を検知した場合、システムは30ミリ秒以内にフロントエアバッグを展開しなければならない」
-
3.State-driven(状態駆動要求): システムが特定の状態にある場合に適用される要求に使用します
-
-
- 形式: 「While [状態], the [システム] shall [動作]」
- 例: 「車両が走行中である間、システムは衝突を検知するために衝撃センサーを監視しなければならない」
-
4.Optional(オプション要求): 追加機能やオプションの機能に関する要求に使用します
-
-
- 形式: 「Where [条件], the [システム] shall [動作]」
- 例: 「車両が助手席用エアバッグを搭載している場合、システムは助手席の占有センサーを監視しなければならない」
-
5.Unwanted Behavior(望ましくない動作の要求): 望ましくない状況を回避するための要求に使用します
-
-
- 形式: 「If [条件], the [システム] shall not [動作]」
- 例:「助手席に乗員がいない場合、システムは助手席エアバッグは展開してはならない。」
-
6.Complex(複雑な要求): 複数の条件やイベントを組み合わせて記述する要求に使用します
-
-
- 形式: 「When [イベント], if [条件], then the [システム] shall [動作]」
- 例: 「正面衝突が検知され、かつ助手席が占有されている場合、システムは助手席のエアバッグを展開しなければならない。」
-
EARSの適用時に注意すべきポイント
EARSを活用すると、要求の曖昧さを減らし、明確な仕様を記述できます。しかし、EARSの形式に従っているだけでは、必ずしも適切な仕様になるとは限りません。 要求の内容そのものが不適切だと、意図しない動作を引き起こす可能性があります。
例えば、Unwanted Behavior(望ましくない動作の要求)として以下のような仕様を考えてみます。
「車両が静止している間, システムはエアバッグを展開してはならない。」
この要求の意図が「エアバッグ誤展開の防止」だとしても、そのままでは 停車中に衝突された場合でもエアバッグが展開しない可能性 があります。本来ならエアバッグが展開すべき状況でも、要求の誤解によって安全性が損なわれる恐れがあります。
こうした問題を防ぐためには、要求の意図を明確にし、条件を具体的に記述すること が重要です。例えば、以下のように修正すると、誤展開を防ぎながら、必要な場合には展開できる仕様になります。
「車両が静止中かつ衝突の加速度が 1.0g 未満の場合, システムはエアバッグを展開してはならない。」
このように、EARSの形式を活用しつつも、要求の意味や影響を慎重に検討することが求められます。
EARSを活用する際の留意点
EARSを適用する際には、以下の点に注意することで、より適切な要求仕様を記述できます。
- 簡潔かつ明確に: 余計な修飾を避け、短く分かりやすい表現を心がける。
- 一貫性の確保: SHALL(〜しなければならない)の使い方を統一し、主語を明確にする。
- 必要十分な情報を含める: 曖昧な表現を避け、要求に不足がないようにする。
- トレーサビリティを意識: システム仕様や上位要件との整合性を確保する。
まとめ
EARSは、シンプルな構文によって要求の曖昧さを排除し、仕様の誤解や抜け漏れを防ぐのに有効な手法です。ただし、形式に従うだけでは不十分であり、意図や条件を明確に記述することが重要 です。特に、エアバッグのような安全性が求められるシステムでは、適切な要求仕様が欠かせません。
皆さんのプロジェクトでは、要求仕様をどのように記述していますか?EARSの活用を検討してみてはいかがでしょうか?
おわりに
今回のコラムはいかがでしたでしょうか?
今後も数回にわたってAutomotive SPICE 4.0に関するコラムをお届けいたしますので、ご期待ください。
(安部 宏典)