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

  1. Name: Unique identifier (e.g., "Backup Requirement").
  2. Basic Details: Owning domain, related patterns, frequency of use, and pattern author.
  3. Applicability: When to (and not to) use the pattern.
  4. Discussion: Instructions on how to write the requirement, including things to consider.
  5. Content: Mandatory and optional elements the requirement must include.
  6. Template: A fill-in-the-blanks starting point.
  7. Examples: Realistic sample requirements.
  8. 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."
  9. Development Hints: Tips for developers.
  10. 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.