Requirements Engineering

Requirements engineering elicits, analyses, specifies and validates what a system must do (functional) and how well (non-functional), producing a clear, traceable and prioritised specification that drives the rest of development.

Key formulas & points

Skim these first — then read the full notes below.

  • Elicitation via interviews, workshops and observation
  • Ambiguous requirements cause rework and disputes
  • MoSCoW prioritisation: Must, Should, Could, Won't

Topic details

Introduction

This Sommerville topic covers getting the requirements right. You learn elicitation techniques, distinguish functional from non-functional requirements, write unambiguous specifications, prioritise with methods like MoSCoW, and maintain traceability from requirement to test.

Key relations & formulas

Formulas (Indian textbook notation)

  • functionalrequirement:thesystemshalldoXfunctional requirement: the system shall do X

Formulas (Indian textbook notation)

  • nonfunctionalrequirement:performance,security,usabilityconstraintsnon-functional requirement: performance, security, usability constraints

Formulas (Indian textbook notation)

  • traceability:requirementIDdesignelementtestcasetraceability: requirement ID → design element → test case

Notation and sign conventions

Relation 1 —
functionalrequirement:thesystemshalldoXfunctional requirement: the system shall do X

Formulas (Indian textbook notation)

  • functionalrequirement:thesystemshalldoXfunctional requirement: the system shall do X
Write this relation with symbols exactly as in Software Engineering — Roger Pressman before substituting numbers. Examiners award partial marks for a correct setup even when arithmetic slips.
Relation 2 —
nonfunctionalrequirement:performance,security,usabilityconstraintsnon-functional requirement: performance, security, usability constraints

Formulas (Indian textbook notation)

  • nonfunctionalrequirement:performance,security,usabilityconstraintsnon-functional requirement: performance, security, usability constraints
Write this relation with symbols exactly as in Software Engineering — Roger Pressman before substituting numbers. Examiners award partial marks for a correct setup even when arithmetic slips.
Relation 3 —
traceability:requirementIDdesignelementtestcasetraceability: requirement ID → design element → test case

Formulas (Indian textbook notation)

  • traceability:requirementIDdesignelementtestcasetraceability: requirement ID → design element → test case
Write this relation with symbols exactly as in Software Engineering — Roger Pressman before substituting numbers. Examiners award partial marks for a correct setup even when arithmetic slips.

Concept in depth

Requirements engineering matters because the most expensive defects are requirements defects — building the wrong thing correctly. Functional requirements state behaviours, while non-functional requirements set quality constraints (performance, security, usability) that often shape architecture more than features do. Good requirements are unambiguous, testable and prioritised, because not everything can be built at once; MoSCoW makes the trade-offs explicit. Traceability links each requirement forward to the design that realises it and the test that verifies it, so the impact of a change can be assessed and completeness demonstrated. Elicitation is a discovery process, since stakeholders rarely state their true needs completely at the outset.

Assumptions and validity limits

State assumptions explicitly before using any relation for requirements engineering — steady state, uniform properties, linear elastic material, ideal gas, incompressible flow, etc., as applicable.
Wrong assumptions invalidate the entire solution even when the formula is correct. In Software Engineering viva and GATE descriptive questions, listing valid assumptions often earns separate marks.

Step-by-step problem approach

1. Read the question and list given data with SI units (common in Software Engineering papers).
2. Draw a neat labelled diagram where applicable — examiners in Indian universities award diagram marks even when arithmetic slips.
3. Identify which relation from this topic applies to requirements engineering.
4. Use equation 1:
functionalrequirement:thesystemshalldoXfunctional requirement: the system shall do X
.
5. Use equation 2:
nonfunctionalrequirement:performance,security,usabilityconstraintsnon-functional requirement: performance, security, usability constraints
.
6. Substitute values, compute, and verify units and sign (direction).
7. State conclusion in one line — e.g. safe/unsafe, stable/unstable, feasible/infeasible.

Applications & exam relevance

Requirements Engineering appears in product teams and IT services. In Indian it software curricula this topic is tested because it connects theory to SDLC, requirements, and quality.
GATE and semester exams often combine requirements engineering with earlier units — revise prerequisites before attempting mixed problems.
Industry interview panels sometimes ask: "Where did you use requirements engineering?" — answer with a lab, mini-project, or plant visit example if possible.

Common mistakes in exams

Students conflate functional with non-functional requirements, write vague untestable statements, and neglect non-functional requirements until architecture is fixed. Skipping traceability makes change impact and coverage impossible to assess.

Quick revision checklist

Before attempting requirements engineering problems, confirm you can:
1. Elicitation via interviews, workshops and observation
2. Ambiguous requirements cause rework and disputes
3. MoSCoW prioritisation: Must, Should, Could, Won't
Revise the solved examples in Software Engineering — Roger Pressman and one previous-year GATE or university paper for this unit.

Worked examples

Try the problem first — open the solution when you are ready to check.

Functional versus non-functional

Problem

Classify: (a) "the system shall let users reset their password" and (b) "the system shall respond within 2 seconds".

Solution

(a) is a functional requirement (a behaviour the system provides); (b) is a non-functional requirement (a performance constraint on how well it behaves).

Conceptual check — Requirements Engineering

Problem

In a Software Engineering semester or GATE paper you are asked: "State the main assumption, the governing relation, and one practical consequence of requirements engineering." What should a complete answer include?

📖 Standard books (India)

  • Software EngineeringRoger Pressman

    Read: Syllabus unit

    SDLC, Agile, and software metrics