3-4 要件仕様書(SRS)

Software Requirements Specification

要件仕様書(SRS: Software Requirements Specification)は、 システムが満たすべき要件を正式に文書化したものである。 本節では、SRSの構成、記述方法、そしてレビューと承認のプロセスについて解説する。

1. SRSの目的と重要性

1.1 SRSとは

SRS(Software Requirements Specification)は、ソフトウェアシステムに 求められる機能・性能・制約を体系的に記述した文書である。 IEEE 830やISO/IEC/IEEE 29148で標準化されている。

1.2 SRSの役割

SRSは開発プロジェクトにおいて重要な役割を果たす。

利用者 SRSの役割
発注者・ユーザー 期待するシステムの確認、受入基準の根拠
設計者 設計の入力、設計判断の根拠
開発者 実装すべき機能の理解
テスター テストケース作成の根拠
プロジェクトマネージャー スコープ管理、変更管理の基準
保守担当者 システム仕様の理解、変更影響分析
SRSは契約の基盤
SRSは発注者と受注者の合意文書であり、契約の基盤となる。 「言った・言わない」の紛争を防ぎ、スコープの明確化、 変更管理の基準として機能する。

2. SRSの構成

2.1 IEEE 830に基づく構成

IEEE 830(現在はISO/IEC/IEEE 29148に統合)では、 SRSの標準的な構成を定義している。

セクション 内容
1. はじめに 目的、スコープ、用語定義、参考文献、概要
2. 全体説明 製品の視点、機能、ユーザー特性、制約、前提条件
3. 具体的な要件 機能要件、非機能要件(性能、インターフェース等)
付録 モデル、プロトタイプ、未解決事項

2.2 機能要件の記述

機能要件は、システムが提供する機能を具体的に記述する。 一般的に以下の形式で記述される。

項目 内容
要件ID 一意の識別子 FR-ORD-001
要件名 簡潔な名称 注文登録
説明 要件の詳細説明 ユーザーは商品を選択し注文を登録できる
入力 必要な入力データ 商品ID、数量、配送先
処理 システムの処理内容 在庫確認、金額計算、注文データ保存
出力 処理結果 注文番号、確認メール送信
優先度 重要度 Must
関連要件 依存する要件 FR-INV-001(在庫管理)

2.3 ユーザーストーリー形式

アジャイル開発では、ユーザーストーリー形式で要件を記述することが多い。

ユーザーストーリーのフォーマット
「[ユーザータイプ]として、[機能]をしたい。なぜなら[価値]だからだ。」
例:「購入者として、過去の注文履歴を確認したい。なぜなら再注文を簡単にしたいからだ。」
要素 説明
ユーザーストーリー ユーザー視点での機能記述
受入基準 ストーリーが完了とみなされる条件
ストーリーポイント 相対的な規模・複雑さの見積り

3. 要件の品質基準

3.1 良い要件の特性

IEEE 830では、SRSが満たすべき品質特性を定義している。

特性 説明 チェックポイント
正確性 記述が事実と一致 ステークホルダーの確認を得ているか
曖昧でない 唯一の解釈のみ可能 「など」「適切な」などの曖昧な語がないか
完全性 すべての要件が含まれる TBD(未定)が残っていないか
一貫性 要件間に矛盾がない 同じ用語が同じ意味で使われているか
検証可能性 達成をテストで確認可能 具体的な数値や条件があるか
追跡可能性 出所と影響が追跡可能 要件IDと関連が記録されているか
変更可能性 変更が容易 重複がなく、構造化されているか

3.2 避けるべき表現

要件記述では曖昧な表現を避ける必要がある。

避けるべき表現 問題点 改善例
「速く」「高速に」 基準が不明 「3秒以内に」
「使いやすい」 主観的 「3ステップ以内で完了」
「など」「その他」 範囲が不明確 具体的に列挙
「適切な」「必要に応じて」 判断基準が不明 具体的な条件を記述
「できれば」「可能な限り」 必須かどうか不明 Must/Shouldを明示
「現行通り」の危険性
「現行システムと同様」という記述は要件として不十分である。 現行システムの仕様が文書化されていない場合、解釈の相違が発生する。 具体的な機能・仕様を明記すべきである。

4. 要件トレーサビリティ

4.1 トレーサビリティとは

要件トレーサビリティとは、要件の出所(ビジネス要件)から 成果物(設計、コード、テスト)までの追跡可能性を確保することである。

4.2 トレーサビリティマトリックス

要件トレーサビリティマトリックス(RTM)は、 要件と関連成果物の対応を表形式で管理するツールである。

要件ID 要件名 設計書 ソースコード テストケース
FR-001 ユーザー登録 DD-2.1 UserRegister.java TC-001〜005
FR-002 ログイン認証 DD-2.2 AuthService.java TC-010〜020
NFR-001 応答時間3秒以内 DD-5.1 - PT-001
トレーサビリティの効果
変更の影響分析:要件変更時に影響範囲を特定できる。
テストカバレッジ:すべての要件がテストされているか確認できる。
監査対応:規制産業での証跡として活用できる。

5. レビューと承認

5.1 SRSレビュー

SRSはステークホルダーによるレビューを経て承認される。 レビューでは前述の品質特性を確認する。

レビュー形式 特徴 適用場面
インスペクション 形式的、チェックリスト使用 重要なSRS、規制対応
ウォークスルー 著者主導で説明 一般的なレビュー
ピアレビュー 同僚による非形式レビュー 日常的な確認

5.2 ベースライン化

レビュー・承認されたSRSはベースラインとして管理される。 以降の変更は変更管理プロセスを通じて行われる。

変更管理のポイント

すべての変更要求を記録する。
変更の影響(コスト、スケジュール、品質)を評価する。
変更管理委員会(CCB)で承認/却下を判断する。
承認された変更をSRSに反映し、バージョンを更新する。
関係者に変更を周知する。

第3章完了
要件定義の全体像を学習しました。 次は「第4章 設計」で、要件をシステム設計に落とし込む方法を学習しよう。
参考文献
[1] IEEE (1998). IEEE Std 830-1998.
[2] ISO/IEC/IEEE (2018). ISO/IEC/IEEE 29148:2018.
[3] Wiegers, K. (2013). Software Requirements 3rd Edition.