一般的に,要件は
- 技術制約 (Technical Constraint)
- ビジネス制約 (Business Constraint)
- 機能要件 (Functional Requirement)
- 品質特性 (Quality Attribute)
の4つに分類され、これらはアーキテクチャ決定要因 (Architectural Drivers) と称される。制約とは、アーキテクトが自由度を持たない既に決定された設計方針を指す。
ソフトウェアが実現するべき品質の特性は
- Availability (可用性)
- Modifiability (変更容易性)
- Performance (性能・速度)
- Security (堅牢性)
- Testability (テスト容易性)
- Usability (使いやすさ)
の6つに大きく分けられる。そして品質特性の分析に非常に有効なツールが、「品質特性シナリオ (Quality Attribute Scenario)」である。機能要件の分析にはユースケースを、品質特性の分析には品質特性シナリオを用いる場合が多い。
品質特性シナリオは、文字通りシステムが備えるべき品質特性のシナリオを記述するというもので、以下の6つの要素から成る。
- Stimulus (刺激) システムに影響を与えるコンディション
- Source (発生源) Stimulus を生み出した要素
- Environment (環境) Stimulus が発生した状況・環境
- Artifact (成果物) Stimulus によって刺激を受けた成果物
- Response (応答) Stimulus によって持たらされるべき動作
- Response measure (応答測定) 評価可能なシステムの応答単位