1. HOME
  2. ソリューション
  3. 「要求」の仕様化の方法

「要求」の仕様化の方法

「要求」を仕様化するにはどうしたらよいか?

「仕様」は開発者への作業指示

「仕様」とは前述の通り「要求」を実現するためのシステムの具体的な動きや制限を表したものです。

これは開発者への「どのように作るか」という作業指示と言い換えることもできるので、開発者が設計・実装するのに十分な詳細度で記載する必要があります。

下図はクルーズコントロールシステムの「要求」と「仕様」の例を表したものです。システムの「目標スロットル開度を算出」という要求の具体的な実現方法として、「目標加減速度と実スロットル開度を用いて2次元テーブルから目標スロットル開度を決定する」という「仕様」を導出しています。

【上位要求】対象が提供すべき機能・サービスの概要:メインSWが押されたらその時点の走行速度で定速走行を行う、▲▼SWが押されたら、定速走行の速度を調整する【下位要求】機能・サービスを実現するたえに必要な振舞いの記述:メインSWが押されたことを認識する、現在の速度を取得し、範囲内であれば希望速度として設定する、希望速度から目標スロットル開度を算出、その値になるようにモータを駆動する【仕様】振舞いを実装する際の作り方の指示:現在の速度と希望速度の差を計算して、その値から目標加減速度を決定する、目標加減速度と実スロットル開度を用いて2次元テーブルから目標スロットル開度を決定する

仕様のヌケモレを防ぐには

「要求」を基にして「仕様」を作成しても、ただ思いついた「仕様」を書いていくというやり方では「仕様」のヌケモレを防ぐことはできません。

作成した「仕様」をレビューすることでヌケモレを検出する方法も有効ですが、レビューは多くの工数を必要とする手法であり、レビューだけでヌケモレを防止するのでは効率的とはいえません。

仕様を作成する段階でヌケモレを防止する仕組みを導入すれば、最初から品質の高い「仕様」を作成することができ、レビュー工数も削減することができます。

ヌケモレを防止する仕組みとしては、時系列分割、構成分割、状態分割、共通分割という思考のフレームワークを用いることが有効です。これは、「要求」から「仕様」を導出する過程で、例えば「構成の視点で要求を分割するとどのような仕様が導出できるか?」と考えることで、適切な「仕様」を導出する手法です。

これらのフレームワークは「仕様」を導出する場合だけではなく、上位要求から下位要求を導出する場合にも用いることができます。

さらに、このように導出した仕様からテストシナリオを抽出してテスト仕様書を作成することで、テストの段階でもヌケモレを防止できるというメリットもあります。詳細は「要求仕様書とモデルからテスト仕様書を作成」をご覧ください。

「仕様」のヌケモレを防ぐには【構成分割】時間的な順序を持たない「機能」や「構成」に着目して仕様を導出する【時系列分割】時間軸に沿った動作・処理に着目して仕様を導出する【状態分割】すでに見えている「状態」に着目して仕様を導出する【共通分割】複数の要求や仕様に共通する部分を切り出す

頑張ってるけど、ちっとも楽にならない…何で?

すぐに成果を出すために頑張ってるけど、自前ではもう限界

効果的だろうけど高額なコンサルには手がでない…

あなたに合う一番最適な解決方法を
エクスモーションがご提案いたします。

USDM要求の定義と仕様化に関する記事を見る

他のソリューションを見る

関連コラム