notesonly.in

One notebook for every subject — open it anywhere.

Log in

Requirements Engineering: Complete Beginner's Guide

Requirements engineering is the disciplined process of discovering what a software system must do, writing it down precisely, and making sure it stays correct as the project evolves. A requirement is a single statement of need, such as "the app must let users reset their password by email" or "search results must appear within 2 seconds".

It matters because most software failures are requirements failures, not coding failures. Industry experience consistently shows that fixing a misunderstood requirement after release costs far more than clarifying it up front — teams literally build the wrong product at full price. Good requirements engineering is the cheapest insurance a project can buy.

Key Concepts

  • Functional requirements: what the system must do — features, behaviours and rules, like "calculate GST on every invoice".
  • Non-functional requirements: how well the system must do it — speed, security, reliability and usability, like "handle 1,000 simultaneous users" or "encrypt all passwords".
  • Elicitation: gathering requirements through interviews, surveys, observation of current work, and prototypes shown to stakeholders.
  • SRS (Software Requirements Specification): the formal document that records every agreed requirement in precise, testable language.
  • Validation: checking requirements for completeness, consistency and feasibility before design begins, often through reviews and prototypes.
  • Traceability: linking each requirement forward to design, code and tests, so nothing gets lost and every test maps back to a stated need.

How It Works

  • Step 1 — Elicitation: analysts interview the canteen manager, watch how orders are taken today, and demo a rough prototype to surface needs nobody stated, like "the app must work when the Wi-Fi drops".
  • Step 2 — Analysis: conflicting wishes are resolved (the manager wants detailed reports; the staff want fewer taps), vague wishes are sharpened into measurable statements, and requirements are prioritised.
  • Step 3 — Specification: everything is written into the SRS with unique IDs, such as REQ-014: "The system shall confirm an order within 3 seconds of payment."
  • Step 4 — Validation: stakeholders review the SRS, prototypes confirm the tricky parts, and testers check that every requirement is actually testable.
  • Step 5 — Management: change requests go through impact analysis and approval, so a "small" new feature cannot silently derail the schedule.

Worked Example

A team must prioritise 4 requirements for a library app. Each gets a value score (1–5) and an effort score (1–5); priority = value ÷ effort, and the team has 40 hours.

  1. R1 "issue books": value 5, effort 2 → priority 5 ÷ 2 = 2.5. Estimated 10 hours.
  2. R2 "fine calculator": value 4, effort 4 → priority 4 ÷ 4 = 1.0. Estimated 20 hours.
  3. R3 "search catalogue": value 3, effort 1 → priority 3 ÷ 1 = 3.0. Estimated 5 hours.
  4. R4 "email reminders": value 2, effort 5 → priority 2 ÷ 5 = 0.4. Estimated 25 hours.
  5. Order by priority: R3 (3.0), R1 (2.5), R2 (1.0), R4 (0.4). Taking R3 + R1 + R2 uses 5 + 10 + 20 = 35 hours, which fits inside 40.
  6. R4 needs 25 more hours but only 5 remain, so it moves to the next release — a decision backed by numbers, not opinions.

Common Misconceptions

  • "Requirements are just a feature list." Non-functional requirements — performance, security, usability — decide whether users tolerate the product, and they are requirements too, with the same need for precision.
  • "More requirements mean a better specification." Bloated, contradictory or untestable requirements ("the system should be user-friendly") create confusion, not clarity. Fewer precise requirements beat many vague ones.
  • "Requirements never change after sign-off." They always change; that is why change management exists. The goal is controlled evolution, not frozen perfection.

Real-World Applications

  • Government tenders: contracts are awarded against an SRS, so precision there is legally binding.
  • Agile teams: user stories and acceptance criteria are requirements engineering in small, continuous doses.
  • Safety-critical systems: aircraft and medical-device software trace every line of code back to a validated requirement.

Requirements engineering turns "build me something good" into a precise, testable contract. Elicit widely, specify measurably, validate early and manage change deliberately — and the team will build the right product the first time.