見出し画像

要求仕様書とは何か

要求仕様書は、ソフトウェア工学では

「ソフトウェア要求仕様昔(SRS:Software Requirements Specification)」
「システム要求仕様書(SyRS: System Requirements Specification)」

と呼ばれる文書で、ソフトウェアやシステムに対する顧客の必要十分要求を記述した文書のことを指します。わかりやすく言うと

 「これさえ満たせば合格(報酬を支払う)」

という発注者(お客さま)のニーズを整理した資料といえます。

「要望リスト」がシステムに関する必要条件だけを記述したものであるのに対し、「要求仕様書」は当該システムの全てを定義し、システム開発から試験、納品、品質保証までのあらゆる過程の基礎となる文書です。

要求仕様書は何もないところから生まれるわけではありません。
要求仕様書は要望リストを基本として作られます。

要望リストの内容を整理して矛盾をなくし、必須機能を追加し、制約条件を明確にしたものが要求仕様書となります。図にするとこんな感じです。

要求仕様書を作成する目的は、

 「顧客が発注したシステム」「エンジニアが受注したシステム」

のイメージを同一化することです。そしてこの要求仕様書を作成することで、顧客から「これは違う」と言われないようにする(保身のためではなく、お客さまの期待を裏切らないようにする)ことです。

実際の要求仕様書の作成では次のような作業を行います。

  1. 顧客の「常識」の文書化

  2. 顧客の要望聞の矛盾やあいまいさの解消

  3. 受注者としての説明責任

  4. システムの機器構成の適正化

  5. 開発中や開発後の機能変更や機能追加要求の削減

また、要求仕様書の作成はお客さまに対しても次のような利点をもたらします。

  • 要求に関する明確化と具体化

  • システム開発費用の最適化

  • 開発期間の最適化

  • 期待通りの運用開始

  • 顧客の満足

そして、お客さまが期待していた以上の効果を持つシステムを要求仕様書として提案することで、お客さまの信頼を向上させることも可能です。

つまり、エンジニアにとっての要求仕様書は、単に消極的にお客さまに対する自己防衛の手段として利用するものではなく、積極的にお客さまの要求を理解し、顧客満足を高めるためのツールとしても有用ということになります。


要求仕様書に関する絶対的なテンプレートはありません。

お客さまが要望するシステムの必要十分条件を誤解のない方法で記述し、システムの全体像を表現していれば十分です。しかし、自然言語でダラダラと表記するだけでは必ずと言っていいほど「表現力」と「読解力」の間に差が生じ、後々の認識齟齬を生み出してしまいかねませんので、文章で表現するのであればルール化を。そうでないならできるだけ図表化をしたほうがいいでしょう。

最も有名な要求仕様書に関するドキュメントとしては、IEEE(米国電気電子技術者協会)が提案する2つの要求仕様書があります。

ひとつは、ソフトウェア用要求仕様書である

 「ソフトウェア要求仕様書(SRS:Software Requirements Specifications)」

と、システム全体に関する要求仕様である

 「システム要求仕様書(SyRS:System Requirements Specifications)」

です。

しかし、これら2つの仕様書は大規模システムには向いていますが重複する記述部分もあり、小規模システムの場合には向いていません。必要最低限に抑えておきたいなら、たとえば次の様なテンプレートに従って記載するといいでしょう。

  1. イントロダクション
    1.1 システムの目的
    1.2 システムの範囲
    1.3 専門用語や頭文字語、略語の定義
    1.4 参照、引用
    1.5 概要

  2. システム開発の前提条件
    2.1 システム開発の背景
    2.2 システム開発の制約条件
    2.3 ユーザークラスの定義

  3. システム要件
    3.1 機能要求
    3.2 性能目標
    3.3 品質特性
    3.4 制約条件
    3.5 物理的条件
    3.6 セキュリティ目標
    3.7 システムの操作性
    3.8 システムのライフサイクルと維持管理
    3.9 仮定と依存関係

  4. インターフェース
    4.1 ユーザーインターフェース
    4.2 ハードウェアインターフェース
    4.3 ソフトウェアインターフェース
    4.4 通信インターフェース

いただいたサポートは、全額本noteへの執筆…記載活動、およびそのための情報収集活動に使わせていただきます。