要求
上位システムのニーズに合致した高品質の成果物を、期間内、予算内に提供する(=QCD)ためには第一に「上位システムのニーズ」とは何かを把握する事が必要である。「上位システムのニーズ」をシステムの構築に的確に反映するために、明確化された上位システムの期待を要求(Requirements)と呼ぶ。実現可能性等を考慮して要求を技術者に提供できるよう定量的に記述したものが技術的仕様である。
上位システムのニーズには、「期待」のような漠然としたものも含まれている。必要に応じてインタビューや協議により、システムに対するユーザー要求の明確化(要求分析と要求定義)を図る。要求があいまいなまま開発が進むと改修などの手戻りが生じることとなってしまう。要求には、機能(システムのふるまい)・性能・外部インタフェース・環境・リソース・物理的特性に関するものの他にも、法律や規則、プロジェクト方針のように(それに従わなくてはならないという)制約事項のようなものもある。要求定義の段階で「誰から誰への要求であるか」を明確にすると共に「要求とシステムの実現結果」を考慮し、検証可能な要求を設定する必要がある。実際の要求事項はシステムの状態や運用モード、コンフィギュレーション等を考慮したうえで、これらの組合せによって記述される。また、要求、ニーズ、仕様が識別されていないこともあり、混乱を招くことになるので注意が必要である。[1]
要求の2つの鉄則
- 機能要求:“どのように要求を実現するか?”の前に“それは何か?”,“なぜそれが必要か?”を明確にする。
- 要求は“測定可能”で“テスト可能”でなければならない。