SE322 · REQBLUEPRINT
Study Blueprint — Do not scale from drawing

Requirements Engineering

Week 03 · Lecture 02 — how architects turn "what the customer wants" into requirements that are actually usable: elicit it, analyze it, write it down right, and prove it's SPECIAL.

Drawn byShoug Alomran
CourseSE322 · Software Design & Architecture
Scale1 : Simplified
Sheets00 – 09
01

Software Architecture Process

The 5 macro-steps

Zooming out from Lecture 01: architecture isn't a single activity, it's a repeatable process with five moving parts.

Mnemonic "Unicorns Design Every Dream Magically"Understand & evaluate requirements → Design the architecture → Evaluate the architecture → Document the architecture → Monitor & control implementation.
1Understand & Evaluate Requirements
2Design the Architecture
3Evaluate the Architecture
4Document the Architecture
5Monitor & Control Implementation

This lecture zooms all the way into step 1 — everything below is about turning raw customer wishes into requirements an architect can actually design from.

02

Requirements Engineering — Overview

4 activities

Requirements engineering is the disciplined, systematic approach to producing good requirements. Architects don't just do it once — they bounce back and forth between requirements and design constantly, and are sometimes deeply embedded in this phase.

Mnemonic "Elephants Always Snack Vegetables"Elicitation → Analysis → Specification → Validation.
1Elicitation — dig up what's needed
2Analysis — fix contradictions/gaps
3Specification — write it down formally
4Validation — stakeholders confirm it's right
03

Elicitation

Digging for requirements

Elicitation identifies stakeholders and uncovers what the customer actually needs (including non-functional requirements) — starting from all the sources that could reveal a requirement.

Common sources

Mnemonic "Silly Giraffes Dance Outside"Stakeholders → Goals → Domain knowledge → Operational/organizational environment.

Different sources can hold similar but conflicting visions of the same system — part of the job is reconciling that later, during Analysis.

Common techniques

Mnemonic "Ice Fish Often Swim"Interviews → Facilitated meetings → Observation → Scenarios.

Interviews

1-on-1 conversations with stakeholders

Facilitated meetings

Group sessions to surface shared needs

Observation

Watching users do their actual work

Scenarios

Walk through concrete usage stories

04

Analysis

Cleaning up the raw material

Raw requirements are often contradictory, incomplete, vague, or just wrong. Analysis clears the air before detailed design begins.

Mnemonic "Cats Prefer Nice Cream"Classification → Prioritization & Negotiation → Conceptual modeling.

1 · Requirement classification

Sorts requirements by nature, along three axes:

Axis Meaning Example
Functional vs. Non-functional What it does vs. how it behaves "Must allow login" vs. "Must load in 2s"
Product vs. Process What the software must do vs. how it's built "Must support payments" vs. "Must be built using Agile"
Imposed vs. Derived Given directly by stakeholders vs. inferred by the dev team "Must run on iOS & Android" vs. "Should use Flutter"

2 · Prioritization & negotiation

  • Identifies the most important functions first (e.g. login security beats theme colors).
  • Refines the schedule — critical features (payment, security) go before "nice-to-haves."
  • Shapes release planning — Release 1: core features; Release 2: extras.
  • Resolves conflicts through negotiation — trade a delayed feature for a must-have one.

3 · Conceptual modeling

Defines the system's boundaries — what's in scope and what's out. This is often where architectural design quietly begins, since decomposing the system is essential groundwork.

Example — Online banking system: Inside: login, balance check, money transfer. Outside: ATM hardware, physical cash withdrawal.

Worked example — Banking App requirements

Requirement Issue found Resolution
R1: Secure login Vague — "secure" undefined Clarify exact login method with stakeholders
R2: Fast & seamless UX Conflicts with R1 — strong security can slow the app Balance speed & security (efficient encryption, smart caching)
R3: Multiple payment methods Incomplete — methods not listed Define required methods explicitly
R4: 24/7 availability Contradicts maintenance downtime needs Plan rolling updates / redundant servers
05

Specification & Validation

Writing it down, then checking it

The results of elicitation and analysis get formally captured and documented so every stakeholder can review them. Stakeholders then check the specified requirements for accuracy, completeness, and feasibility — that's validation.

For a specification to actually be usable, each requirement must show a set of desired characteristics — covered next.

06

The "SPECIAL" Traits of a Good Requirement

Exam gold
Mnemonic "Six Cats Chase Colorful Ants Vigorously"Specific, Correct, Complete, Consistent, Attainable, Verifiable.

SSpecific — clear (not open to interpretation), concise (brief), exclusive (states one thing only).

Specific? Requirement
No The software shall search the database. (search for what?)
Yes The software shall search for a product using the product ID.
No The software shall be secure and fast. (secure how? fast how?)
Yes Server acknowledgment shall be sent within ½ second of receiving a request.

CCorrect — accurately describes a desired system function; incorrect requirements cause incorrect/undesired behavior.

Example: a registration form correctly rejects a duplicate username/password combo with a clear error — matching exactly what was specified.

CComplete — individually (each requirement fully detailed) and collectively (the whole set covers all functionality in the SRS). Incomplete requirements → incomplete design → incomplete system.

Complete? Requirement
No The software shall generate product reports.
Yes The software shall generate product reports consisting of description, picture, and price; reports shall be in PDF format.

CConsistent — doesn't prevent the design/construction of other requirements (no conflicts).

✅ "Support online payments" + "Support credit cards" (compatible). ❌ "Must be offline only" + "Must support online payments" (conflict).

AAttainable — realistically achievable within project constraints (time, technology, budget, resources); applies to both product and process.

Attainable? Requirement
No The software shall execute on all future operating systems.
Yes The software shall execute on the Microsoft Windows 7 platform.

VVerifiable — there must be a way to measure/test that it's been met. Un-verifiable requirements can never be "proven" done — a serious early flaw.

Verifiable? Requirement
No The system shall maximize communication speed.
Yes The system's data rate shall be no less than 1 Mbps.

💡 The recurring pattern across all six: turn vague adjectives ("secure," "fast," "maximize") into numbers, limits, or explicit conditions.

07

Vague vs. Good — Side by Side

Pattern recognition drill

The exam loves handing you one sentence and asking "is this valid?" Train your eye on this pattern:

Vague requirement Why it fails Fixed version
"The software shall be secure and fast." Not specific, not verifiable — no measurable target "Login shall use AES-256 encryption; response time ≤ 1s."
"The system shall maximize communication speed." Not verifiable — no baseline or number "Data rate shall be no less than 1 Mbps."
"The software shall search the database." Not specific — missing search criteria "Shall search for a product using the product ID."
"The app must handle 1 billion users on a $500 budget." Not attainable — unrealistic given constraints "The app must handle 1,000 concurrent users."
08

Quick Self-Test

Cover the answer, then click
What are the 4 activities of requirements engineering?
Elicitation, Analysis, Specification, Validation.
4 common sources of requirements?
Stakeholders, Goals, Domain knowledge, Operational/organizational environment.
4 common elicitation techniques?
Interviews, Facilitated meetings, Observation, Scenarios.
3 classification axes during Analysis?
Functional vs. Non-functional; Product vs. Process; Imposed vs. Derived.
Where does architectural design often quietly begin?
During conceptual modeling — because defining system boundaries requires decomposition.
What are the 6 SPECIAL traits of a good requirement?
Specific, Correct, Complete, Consistent, Attainable, Verifiable.
Why is "the software shall be secure and fast" invalid?
It's not specific (no defined meaning for "secure"/"fast") and not verifiable (no measurable target).
What makes a requirement "attainable"?
It can realistically be achieved within time, technology, budget, and resource constraints.
What's the difference between "complete individually" and "complete collectively"?
Individually = each requirement is fully detailed on its own. Collectively = the whole set covers 100% of the system's functionality in the SRS.
What are the 5 macro-steps of the software architecture process?
Understand & evaluate requirements → Design → Evaluate → Document → Monitor & control implementation.
09

What's Next

Preview

Next session: designing the software architecture using the 4+1 View Model

Logical

Object model

Development

Module organization

Process

Concurrency & workflow

Physical

Deployment on hardware

Plus the +1 User (Use-Case) View tying them all together — already covered in the Sheet 09 of the Chapter 2 Blueprint if you want a refresher.