software-engineering

Definition

Requirement

A condition or capability needed by a user to solve a problem or achieve an objective. Requirements serve as the basis for the contract between the client and the developer.

Life Cycle Stages

  1. Elicitation: Gathering requirements from stakeholders (Client, Users, Documentation, Observations).
  2. Design: Creating models and specifications.
  3. Implementation: Coding the solution.
  4. Validation: Quality assurance to ensure we are building the right product.

Types

Requirements are broadly classified into two categories:

  1. Functional Requirements: What the system does.
  2. Non-functional Requirements: How the system performs or is constrained.

Artifacts

Actors

Actor

Represents a role played by a user, external system, or physical environment that interacts with the system.

Scenarios

Scenario

A specific, concrete description of what people do and experience when using the system.

  • Focus: Behavior from the User POV.
  • Goal: Understandable common cases.

Use Cases

Use Case

A generalization of scenarios. A list of steps describing the interaction between an actor and the system to achieve a goal.

  • Focus: Completeness (describing all possible flows).

Validation

Requirements Validation is a QA step occurring after elicitation to ensure quality criteria (correctness, consistency, completeness, clarity, realism, verifiability).

  • Reviews: Manual inspection of documents.
  • Prototyping: Building a mock-up to validate user needs.