Requirement Pattern Concepts
Requirement Pattern Concepts
What is a Requirement Pattern?
- A template and guide for writing specific types of requirements, such as performance, reports, and backups.
- Helps analysts write high-quality requirements faster by providing structure.
- Example: A "Report Requirement Pattern" assists in defining what a report should include.
Benefits of Requirement Patterns
- Guidance: Suggests information to include, provides advice, and warns of potential pitfalls.
- Saves Time: Eliminates the need to start from scratch.
- Consistency: Ensures similar requirements have a uniform look and feel.
Parts of a Requirement Pattern
- Name: Unique identifier (e.g., "Backup Requirement").
- Basic Details: Owning domain, related patterns, frequency of use, and pattern author.
- Applicability: When to (and not to) use the pattern.
- Discussion: Instructions on how to write the requirement, including things to consider.
- Content: Mandatory and optional elements the requirement must include.
- Template: A fill-in-the-blanks starting point.
- Examples: Realistic sample requirements.
- Extra Requirements:
- Follow-on Requirements: Extends the original requirement; appears immediately after.
- Original: "The system shall generate a sales report."
- Follow-on: "The report shall include total revenue, taxes, and net profit."
- Pervasive Requirements: Automatically apply to all requirements of a certain type (system-wide rules). Defined once but impacts many requirements.
- Examples: "Every report must show the company logo."
- Development Hints: Tips for developers.
- Testing Tips: Guidance on how to test the requirement type.
Organizing Patterns: Domains & Groups
- Domains: Categories for patterns (e.g., "Fundamental," "Data," "User Functions").
- Groups: Patterns with shared features (e.g., security rules for multiple patterns).
Relationships Between Patterns
- Refers to: One pattern mentions another.
- Extends: A pattern is a specialized version of another (e.g., "Advanced Backup" extends "Basic Backup").
Classifying Patterns
- Patterns can be labeled (e.g., Functional vs. Non-Functional).
- Helps automatically classify requirements using those patterns.