University of Sydney · FACULTY OF SOFTWARE ENGINEERING

ELEC5618 · Software Quality Engineering

- one subject, every graph, every model, every mark
Software Engineering14 Chapters10-page Bible
Our own words - no uploaded lecturer files
Updated for this semester
Chapter 4 of 12 · ELEC5618

Software Requirement Specification and Use Cases

Week 4 of University of Sydney ELEC5618 Software Quality Engineering builds a Software Requirements Specification (SRS) to the IEEE 830 structure — functional and non-functional requirements, product perspective and quality attributes — and models behaviour with use cases, activity diagrams and state diagrams. A good SRS is the baseline that later verification and validation check against, and this chapter feeds the individual SRS deliverable in the group project.

In this chapter

What this chapter covers

  • 01Functional vs non-functional requirements: services for the user vs constraints (reliability, security, performance, usability, portability); requirements state WHAT not HOW
  • 02The three SRS models: data model, functional/information-flow model, behavioural model
  • 03IEEE 830 SRS structure: 1 Introduction · 2 Overall Description (product perspective, functions, users, constraints) · 3 Specific Requirements · 4 Supporting Information
  • 04Characteristics of a good SRS: unambiguous, complete, verifiable, consistent, modifiable, traceable, usable
  • 05Benefits of an SRS: baseline for V&V, basis for cost/schedule estimation, prevents mixing functional/non-functional requirements
  • 06Use cases: an actor achieving a goal; template slots (goal, scope/level, pre-condition, success/failed end conditions, actors, trigger, steps)
  • 07Use-case diagram relationships: association (actor–use case), «include» (always occurs), «extend» (sometimes occurs), generalization
  • 08Activity diagrams (action, control flow, decision/merge, fork/join, guards) and state diagrams (Event[Guard]/Action)
Worked example · free

Removing ambiguity from a non-functional requirement

Q [4 marks]. An SRS contains the requirement: 'The system should let users quickly access their own reports and be secure.' Identify what makes it a poor requirement, split it into atomic verifiable requirements, label each as functional or non-functional, and note the IEEE 830 quality characteristics you are improving. (4 marks)
  • +1Diagnose the ambiguities: 'quickly' is not measurable (violates verifiable/unambiguous); 'their own reports' mixes an access-control rule with a performance idea and is vague; 'be secure' is untestable as written. One sentence also bundles several requirements together (violates modifiable/traceable).
  • +1Split into atomic requirements. R1 (functional): 'A user shall be able to retrieve a report they own.' R2 (non-functional, performance): 'A report shall load within 2 seconds for 95% of requests under normal load.' (State the assumed threshold.)
  • +1Continue: R3 (functional, access control): 'The system shall reject any request by a user to read a report they do not own, returning an authorization error.' R4 (non-functional, security): 'Report data shall be transmitted over an encrypted channel.'
  • +1Map to IEEE 830 characteristics: each rewritten requirement is now unambiguous (measurable terms), verifiable (each has a testable condition), and traceable/modifiable (one requirement per statement, individually identifiable). State any assumption (e.g. the 2-second target) explicitly.
The original is ambiguous ('quickly', 'secure'), untestable and bundles several requirements. Split it into R1 (retrieve own report — functional), R2 (load ≤ 2 s for 95% of requests — non-functional/performance, assumption stated), R3 (reject access to others' reports — functional/access control) and R4 (encrypt report data — non-functional/security). This improves the unambiguous, verifiable, modifiable and traceable characteristics of IEEE 830.
Sia tip — Every non-functional requirement needs a measurable target and a way to verify it — replace words like 'quickly', 'user-friendly' and 'secure' with numbers or concrete conditions, and split one sentence per requirement so each is traceable. If a threshold is not given, state your assumption. Ask Sia to critique your rewritten requirements against the IEEE 830 characteristics.
Glossary

Key terms

Functional requirement
A statement of a service the system provides for the user — what the software does in response to inputs. Usually the bulk of an SRS.
Non-functional requirement (NFR)
A constraint on the software or the project rather than a service: reliability, security, performance, usability, availability, portability and so on. NFRs need measurable targets to be verifiable.
IEEE 830 SRS
The recommended-practice structure for a Software Requirements Specification: Introduction, Overall Description, Specific Requirements and Supporting Information. Its successor is ISO/IEC/IEEE 29148.
Good-SRS characteristics
An SRS should be unambiguous, complete, verifiable, consistent, modifiable, traceable and usable through operation and maintenance. These are the qualities V&V later checks the requirements against.
Use case
A description of how an actor (a role outside the system) uses the system to achieve a goal, written in natural language with template slots: goal, scope/level, pre-condition, success and failed end conditions, actors, trigger and steps.
Include vs Extend
In a use-case diagram, «include» means the sub use case always occurs during the base (arrow base → included); «extend» means it only sometimes occurs (arrow extending → base). Associations link an actor to a use case, never actor–actor or use-case–use-case.
FAQ

Software Requirement Specification and Use Cases FAQ

What is the difference between functional and non-functional requirements?

Functional requirements describe services the system provides — what it does in response to inputs. Non-functional requirements are constraints on how well it does them — reliability, security, performance, usability, portability and so on. Requirements should say what, not how, and every non-functional requirement needs a measurable target so it can be verified.

What structure should an SRS follow?

The IEEE 830 recommended practice: Section 1 Introduction (purpose, scope, definitions, references, overview), Section 2 Overall Description (product perspective, product functions, user characteristics, constraints, assumptions), Section 3 Specific Requirements (external interfaces, functions, performance, quality attributes), and Section 4 Supporting Information. A good SRS is unambiguous, complete, verifiable, consistent, modifiable and traceable.

How do include and extend differ in a use-case diagram?

«include» means the included use case always runs as part of the base use case (you can't complete the base without it), drawn base → included. «extend» means the extending use case only sometimes runs — it adds optional behaviour — drawn extending → base. Associations connect an actor to a use case only; you never draw an association between two actors or between two use cases.

Can AI help me write a good SRS or use case?

Yes. Sia can critique a requirement against the IEEE 830 characteristics, help you split an ambiguous sentence into atomic verifiable requirements, and check a use-case template or an include/extend diagram for correctness. Use it to learn the structure; it does not complete graded deliverables, and the University of Sydney academic-integrity policy applies.

Study strategy

Exam move

Practise the two moves examiners test: writing testable requirements and structuring them correctly. Take vague sentences and rewrite them into atomic, measurable, verifiable requirements, labelling each functional or non-functional and naming the IEEE 830 characteristic you improved — this is a recurring short-answer and scenario task. Memorise the IEEE 830 section skeleton and the good-SRS characteristics as a checklist you can recite. For modelling, be able to draw a small use-case diagram with a correct association, one «include» and one «extend», and read an activity or state diagram (decision/merge, fork/join, guards; Event[Guard]/Action). Because this feeds the project's SRS deliverable, apply it to your own feature as you revise. Confirm assessment details on Canvas.

Working through Software Requirement Specification and Use Cases in ELEC5618? Sia is AskSia’s AI Software Engineering tutor — ask any ELEC5618 Software Requirement Specification and Use Cases question and get a clear, step-by-step explanation grounded in how ELEC5618 is taught and assessed. Read this chapter free, then take your hardest questions to Sia.

A+Everything unlocked
Unlocks this Bible + all 13 of your University of Sydney subjects - and 1,000+ Bibles across every Australian university.
Sia - your ELEC5618 tutor, unlimited, worked the way the exam marks it
The full 10-page Bible + practice bank with worked solutions
Chrome extension - sync your LMS so Sia knows your deadlines
Bilingual EN / Chinese on every Bible and every Sia answer
$25/ month
30-day money-back · cancel in one tap · how it works
Unlock the full ELEC5618 Bible + 13 University of Sydney subjects解锁完整 ELEC5618 Bible + University of Sydney 13 门科目
$25/mo