Home
3IEEE Software Requirements Specification (SRS)
3

Topic 3 of 9 · Lab IV · open-ended

IEEE Software Requirements Specification (SRS)

Functional and non-functional requirements, what makes a requirement good, how requirements are gathered, and how to write an SRS with the IEEE template, priorities and traceability.

← → move between slides · F full screen · M slide list

Before we start

Why this matters

Ask five students what “a fast, user-friendly library system” means and you will get five different systems.

Requirements turn wishes into statements everyone reads the same way — and that a tester can check. Mistakes here are the most expensive kind: a missing requirement found after release can cost many times more to fix than one found on paper.

This is an open-ended lab: you will write the SRS for your own system using the IEEE structure.

Outline · Lab IV · open-ended

Topics in this chapter

Select a topic to jump to the slide that explains it.

  1. Requirements basics
  2. Functional vs non-functional
  3. Writing good requirements
  4. The requirements process
  5. IEEE SRS template
  6. Priorities and traceability
  7. Your own SRS

Concept 1 of 15

What a requirement is

A requirement is a statement of something the system must do, or a quality or constraint it must satisfy. The Software Requirements Specification (SRS) collects all of them in one agreed document.

  • It is the contract between customer and developers: what will be delivered.
  • Designers use it to build the DFD, UML and UI; testers use it to write test cases.
  • A requirement says what, not how: “the system shall store each loan” — not “use a MySQL table called loans”.

Concept 1 of 15

What a requirement is (cont.)

User requirements are written for customers; system requirements refine them for developers.
User requirements (from the manual): the user can withdraw money, make an account enquiry, transfer money. System requirement: the system can store, retrieve and update data.

Concept 2 of 15

Functional and non-functional requirements

Functional requirements (FR)

What the system does: services, calculations, data it stores, reactions to input.

  • The system shall let a customer withdraw cash.
  • The system shall print a mini statement.
  • The system shall transfer money to another account.

Non-functional requirements (NFR)

How well it does it, or constraints on it: performance, security, usability, reliability…

  • The ATM shall respond within 2 seconds.
  • All traffic to the bank shall be encrypted.
  • The service shall be available 99.5% of each month.
A quick test: if you remove an FR, the system loses a feature. If you remove an NFR, the feature still exists but becomes slower, less safe or harder to use.

Interactive

Sort the requirements

Functional vs non-functional

Types of non-functional requirement

The classification in the lab manual (Figure IV.1), after Ian Sommerville.

Functional vs non-functional

Types of non-functional requirement (cont.)

GroupExamples
Product: how the software behavesusability, efficiency (performance, space), reliability, portability
Process / organisational: how it is developeddelivery dates, implementation language, standards to follow
External: from outside the projectinteroperability with other systems, ethics, law: privacy, safety

Other names you will meet: availability, maintainability, scalability, security, testability — together called software quality attributes.

Concept 5 of 15

What makes a good requirement

The IEEE recommended practice (IEEE 830) says each requirement, and the SRS as a whole, should be:

QualityMeaningFails when…
Correctit states something the system really must donobody actually needs it
Unambiguousit has exactly one interpretation“fast”, “user-friendly”, “etc.”
Completeevery needed behaviour, input and error case is covered“what if the card cannot be read?” has no answer
Consistentno two requirements conflictone says 3 PIN tries, another says 5
Rankedeach has a priority (and stability)everything is “high priority”
Verifiablea test can show it is met“the system shall be reliable”
Modifiableorganised so changes are easythe same fact is repeated in many places
Traceableeach has an ID and a known originno IDs, so tests cannot refer to it

Write each one as “The system shall …”, one requirement per sentence, with an ID such as FR-3 or NFR-PERF-1.

Interactive

Check a requirement

Interactive

Check a requirement (cont.)

Several of the examples are the non-functional requirements printed in the lab manual (4.4.3). They show why vague words must be replaced by numbers.

Concept 7 of 15

The requirements engineering process

  1. Elicitation: find out what stakeholders need — interviews, questionnaires, observation, studying existing documents and forms, workshops, prototypes.
  2. Analysis: remove conflicts and duplicates, find missing cases, set priorities.
  3. Specification: write the SRS.
  4. Validation: review it with users; can every requirement be tested?
  5. Management: control changes after the SRS is approved (change requests, version numbers).
TechniqueGood for
Interviewdeep understanding of one role (librarian)
Questionnairemany users quickly (200 students)
Observationwhat people really do, not what they say
Document analysisforms, registers, rules already in use
Prototype / wireframediscovering UI requirements (topic 9)

Concept 8 of 15

The IEEE SRS structure

The lab manual follows the widely used IEEE-style template (based on IEEE 830-1998, whose successor is ISO/IEC/IEEE 29148). Use these headings for your SRS chapter:

  1. Introduction — purpose, document conventions, intended audience and reading suggestions, project scope, references.
  2. Overall description — product perspective, product features, user classes and characteristics, operating environment, design and implementation constraints, user documentation, assumptions and dependencies.
  3. System features — for each feature: description and priority, stimulus/response sequences, functional requirements.
  1. External interface requirements — user, hardware, software and communications interfaces.
  2. Non-functional requirements — performance, safety, security, software quality attributes, business rules.
  3. Other requirements — database, legal, internationalisation, reuse.
  4. Appendices — glossary, analysis models (DFD, UML), list of open issues (TBD).

IEEE SRS template

1. Introduction and project scope

  • Purpose: identify the product and version this SRS covers, and whether it is the whole system or one subsystem.
  • Intended audience: developers, project managers, testers, users, documentation writers — and which sections each should read first.
  • Project scope: a short description of the software, its benefits, objectives and goals, related to the organisation’s strategy.
  • Conventions and references: fonts, priority rules, other documents this one depends on.

Example: ATM Management System (AMS)

This SRS specifies release 1.0 of the software for an Automated Teller Machine. The AMS lets bank customers withdraw cash, check balances, print mini statements and transfer funds at any time without a bank clerk, reducing branch queues and staff cost. Out of scope: deposit of cash and cheques, and the bank’s central accounting system, which is an external system.

IEEE SRS template

2. Overall description

  • Product perspective: is it new, a replacement, or part of a larger system? A block diagram of the main parts and interfaces helps.
  • Product features: a high-level list; details come in section 3.
  • Operating environment: hardware, OS, other software it must coexist with.
  • Constraints: regulations, hardware limits, required language or database, security rules.
  • Assumptions and dependencies: e.g. “the bank server offers an API for balance queries”.
User classCharacteristicsUses
Customerany age, no training, may have poor eyesightwithdraw, balance, statement, transfer
Bank operatortrained staffload cash, view logs, set limits
Maintenance techniciantechnical, rare usediagnostics, hardware status

Distinguish the favoured user class (customers) from the less important ones.

IEEE SRS template

3. System features: one feature in detail

3.1 Withdraw cash

Description and priority: A verified customer withdraws cash from a chosen account. Priority: High (benefit 9, penalty 9, cost 5, risk 6 on a 1–9 scale).

Stimulus/response sequences

  1. Customer selects “Withdraw” → system shows amount choices.
  2. Customer enters 5,000 Tk → system checks balance and daily limit.
  3. Check passes → system dispenses cash, prints receipt, returns card.
  4. Check fails → system shows the reason and offers a smaller amount.

Functional requirements

  • FR-3.1.1 The system shall accept amounts in multiples of 500 Tk between 500 and 20,000 Tk.
  • FR-3.1.2 The system shall reject a withdrawal larger than the available balance and display “Insufficient funds”.
  • FR-3.1.3 The system shall reject a withdrawal that would exceed the daily limit of 50,000 Tk.
  • FR-3.1.4 The system shall debit the account only after the cash has been taken.

IEEE SRS template

3. System features: one feature in detail (cont.)

Include how the product responds to errors and invalid input: that is where most real defects hide.

IEEE SRS template

4. External interfaces and 5. non-functional requirements

InterfaceATM example
User15" touch screen, keypad, audio jack; every screen has Cancel; error messages in Bangla and English
Hardwarecard reader, cash dispenser, receipt printer, camera
Softwarebank core system API v2; logs to the bank’s monitoring server
CommunicationsTLS 1.3 over the bank’s private network; message format ISO 8583
TypeMeasurable NFR
PerformanceBalance shown within 2 s for 95% of requests
SafetyIf power fails mid-transaction, no account is debited without cash being dispensed
SecurityCard blocked after 3 wrong PINs; PIN never stored or logged in clear text
Availability99.5% per month, excluding a 2-hour weekly maintenance window
Usability90% of first-time users complete a withdrawal without help

Concept 13 of 15

Prioritising requirements

Not everything can be built first. Two common methods:

MoSCoWMeaning
Must havethe release fails without it
Should haveimportant, but a workaround exists
Could havenice if time allows
Won’t have (this time)agreed to leave out

The template also allows rating each feature on a 1–9 scale for benefit, penalty (of leaving it out), cost and risk, then ranking by value.

Everything marked “High” means nothing is. Aim for a mix — roughly half Must, the rest Should and Could.

Priorities and traceability

Traceability

Give every requirement an ID and follow it through the project. A traceability matrix shows where each requirement is designed and tested — and exposes gaps.

RequirementUse case (topic 6)Design (topics 5, 7, 8)Screen (topic 9)Test case
FR-3.1.1 amounts in multiples of 500UC-02 Withdraw cashDFD 2.0; Account.withdraw()S-04 AmountTC-07, TC-08
FR-3.1.2 insufficient fundsUC-02 (alternative flow)sequence diagram, alt fragmentS-05 ErrorTC-09
NFR-SEC-1 block after 3 PINsUC-01 AuthenticateCard.block()S-02 PINTC-03
FR-5.1 print statementUC-04 Mini statement———

The last row has no design, screen or test yet: the matrix makes that visible before the deadline does.

Concept 15 of 15

Open-ended SRS: writing one for your own project

  1. List the stakeholders and interview at least two real users.
  2. Name the user classes; for each, list what they need to do (these become features).
  3. For each feature write the description, priority, stimulus/response and numbered FRs, including error cases.
  4. Write measurable NFRs for at least performance, security, usability and availability.
  5. Describe the interfaces and constraints.
  6. Review: run each requirement through the quality checklist and the requirement checker earlier in this topic.
  7. Get the SRS approved and freeze it; later changes go through a change log.
“Open ended” means there is no single right SRS. You are graded on whether your requirements are complete, consistent and testable for the system you chose — and whether your later diagrams trace back to them.

Worked example 1 of 3

Worked example 1

Classify each as FR or NFR: (a) “A librarian shall add a new book record.” (b) “The search shall return results within 3 seconds.” (c) “The system shall send an SMS 2 days before a due date.” (d) “The system shall run on Android 11 and later.”
Show the solution
(a) FR — a service. (b) NFR, performance. (c) FR — a behaviour the system performs (the 2 days is part of the function). (d) NFR, portability / operating environment.

Worked example 2 of 3

Worked example 2

Rewrite so it is verifiable: “The system should be secure.”
Show the solution
Split it into testable statements: “NFR-SEC-1 The system shall require a password of at least 8 characters.” “NFR-SEC-2 The system shall lock an account for 15 minutes after 5 failed logins.” “NFR-SEC-3 The system shall store passwords only as salted hashes.”

Worked example 3 of 3

Worked example 3

Two requirements say “The loan period shall be 14 days” and “Students may keep books for 3 weeks”. Which quality fails, and how do you fix it?
Show the solution
Consistency fails: the two conflict. Ask the stakeholder (the librarian) which is right, keep one statement, and if the period differs by user class, say so explicitly: “14 days for students, 30 days for staff”.

Practice

Practice (1 of 2)

Try each one on paper first, then check your answer.

1. List the six main sections of the IEEE-style SRS template.
Show the answer
Introduction; Overall description; System features; External interface requirements; Non-functional requirements; Other requirements (plus appendices).
2. Give one non-functional requirement for each: performance, security, usability — for a Library Management System.
Show the answer
Performance: search results within 2 s for a catalogue of 50,000 books. Security: only librarians can delete records; all logins over HTTPS. Usability: a new student can reserve a book within 3 minutes without help.
3. What is the difference between a user requirement and a system requirement?
Show the answer
A user requirement is a high-level statement in the customer’s language (“members can reserve books”). System requirements refine it precisely for developers (“the system shall hold a reservation for 48 hours, then release it”).

Practice

Practice (2 of 2)

Try each one on paper first, then check your answer.

4. Lab task hint: which user classes does the Library Management System scenario mention?
Show the answer
Students and staff (members/users) and the librarian. Consider whether an administrator is needed too — your SRS should justify each class.
5. Why must each requirement have an ID?
Show the answer
So it can be traced to designs and test cases, referred to in change requests and reviews, and counted when checking coverage.
6. Which elicitation technique would you use to learn how librarians really issue books, and why?
Show the answer
Observation (possibly with a short interview): people often describe the official process, but watching shows the real steps and workarounds.

Check yourself

Quiz

Resources

Further learning (cont.)

ArticleMoSCoW method ↗Must, Should, Could, Won’t prioritisation.ArticleRequirements traceability ↗Forward and backward traceability and the traceability matrix.GuideProcess Impact (Karl Wiegers) ↗Articles and templates by the author of the SRS template used in the lab manual.
BookSoftware Requirements, 3rd ed. — Karl Wiegers & Joy BeattyMicrosoft Press, 2013. The practical guide to eliciting, writing and managing requirements.
BookSoftware Engineering, 10th ed. — Ian SommervillePearson, 2015. Chapter 4 covers requirements engineering and the NFR classification.

Summary

Summary

  • An SRS is the agreed list of what the system must do (FR) and how well or under what constraints (NFR).
  • NFRs: product (usability, efficiency, reliability, portability), process and external (legal, ethical).
  • Good requirements are correct, unambiguous, complete, consistent, ranked, verifiable, modifiable and traceable.
  • Write “The system shall …”, one idea per sentence, with an ID and a number wherever quality is involved.
  • IEEE sections: introduction, overall description, system features, external interfaces, NFRs, other.
  • Prioritise (MoSCoW or 1–9 ratings) and trace each requirement to design and tests.