SRS(要求仕様書)には何を書くのか?

IEEEなどの規格化団体は、設計および SRS を作成する際に必要な情報として以下の9個のトピックを挙げています。

 

1. Interfaces(インターフェイス)

2. Functional Capabilities(機能)

3. Performance Levels(パフォーマンスレベル)

4. Data Structures/Elements(データ要素/構造)

5. Safety(安全性)

6. Reliability(信頼性)

7. Security/Privacy(セキュリティ/プライバシー)

8. Quality(品質)

9. Constraints and Limitations(制約と制限事項)

 

全ての分野において、全てプロジェクトに適用できる標準的な要求仕様書のテンプレートは存在しません。SRSに記述すべき個別要求は、会社間でも違うし、同一の会社においてもプロジェクト毎に異なり、全く同じ要求事項というものはないからです。先ずは、参考となる既存のテンプレートや仕様書をベースに書き始め、必要に応じて変更しながら書き進めるのが良いと思います。 以下は基本的なSRSのアウトラインの例で、IEEE 830-1998の規格がベースになっています。

 

1. Introduction(はじめに)

    1.2 Document conventions(文書の規約)

   1.3 Intended audience(対象読者と読み方の提案)

   1.4 Additional information(プロジェクトスコープ)

   1.5 References(参考文献)

2. Overall Description(概説)

   2.1 Product perspective(製品の背景)

   2.2 Product functions(製品の特性)

   2.3 User classes and characteristics(ユーザークラスと特徴)

   2.4 Operating environment(稼働環境)

   2.5 User environment(ユーザー環境)

   2.6 Design/implementation constraints(設計と実装の制約条件)

   2.7 Assumptions and dependencies(前提条件と依存関係)

3. External Interface Requirements(外部インターフェイス要求)

   3.1 User interfaces(ユーザーインターフェイス)

   3.2 Hardware interfaces(ハードウェアインターフェイス)

   3.3 Software interfaces(ソフトウェアインターフェイス)

   3.4 Communication protocols and interfaces(通信インターフェイス)

4. System Features(システム特性)

   4.1 System feature A(システム特性A)

      4.1.1 Description and priority(説明と優先順位)

      4.1.2 Action/result(入力/応答シーケンス)

      4.1.3 Functional requirements(機能要求)

   4.2 System feature B(システム特性B)

5. Other Nonfunctional Requirements(他の非機能要求)

   5.1 Performance requirements(性能要求)

   5.2 Safety requirements(安全性要求)

   5.3 Security requirements(セキュリティー要求)

   5.4 Software quality attributes(ソフトウェア品質属性)

5.5 Project documentation(プロジェクトドキュメント)

   5.6 User documentation(ユーザードキュメント)

6. Other Requirements(その他要件)

Appendix A: Terminology/Glossary/Definitions list(付録A:用語/用語/定義リスト)

Appendix B: To be determined(付録B:未定)

  

以下は、プロジェクトに合わせ、さらにカスタマイズした例です。

1. Scope

   1.1 Identification

   1.2 System overview

   1.3 Document overview

2. Referenced documents

   2.1 Project document

   2.2 Other documents

   2.3 Precedence

   2.4 Source of documents

3. Requirements

   3.1 Required states and modes

   3.2 Capability requirements

   3.3 External interface requirements

   3.4 Internal interface requirements

   3.5 Internal data requirements

   3.6 Safety requirements

   3.7 Security requirements

   3.8 Environment requirements

   3.9 Computer resource requirements

   3.10 Software quality factors

   3.11 Design and implementation constraints

4. Qualification Provisions

   4.1 Test

   4.2 Analysis 

5. Requirements Tractability

Provided under separate document.

6. Notes

6.1 Acronyms and Abbreviations 

6.2 Glossary of terms