Software Design & Development · Analysis

SDD2 — Analysis: Purpose, Scope, Boundaries, IPO and Functional Requirements

📅 Mon 17 Aug 2026 · P1+P2 (double)
~120 minutes
Learning intentions
Success criteria
Warm up — recap from SDD1
Answer all three questions, then check your answers.
Question 1
What is the first phase of the iterative development process?
Question 2
Which development methodology uses short cycles called sprints?
Question 3
In which phase of the iterative development process would you create pseudocode and draw structure diagrams?

Key vocabulary

Purpose
A concise statement of what a software system is for and why it is being built.
Scope
What the software project does cover: the agreed features, functions, and deliverables that will be developed.
Boundaries
What the software project explicitly does not cover: its exclusions and limits.
IPO
Inputs enter the system, processes are what the system does with them, and outputs are the results it produces.
Functional requirement
A statement of something the system must do, always phrased as "The system must…"
End-user
The person (or people) who will use the finished software day-to-day.
Stakeholder
Anyone affected by the software — including end-users, managers, clients, and others who have an interest in the outcome.
Scope creep
The tendency for a project to expand beyond its original plan as new features are continuously added.

Why analysis comes first

The first phase of the iterative development process is analysis. Its job is to make sure everyone — the client, the development team, and the end-users — agrees on exactly what the software is supposed to do before a single line of code is written. Skipping or rushing analysis is one of the most common causes of failed software projects: teams end up building the wrong thing, or building things that the client didn't actually need.

During analysis, the development team gathers information by interviewing stakeholders, observing current working practices, and studying any existing systems. They use this to produce a clear written record of requirements. Everything that comes later — design, implementation, testing — depends on getting this right.

Purpose

The purpose of a software system is a short, plain-English statement that answers two questions: what does this software do, and who is it for? A good purpose statement is specific enough to guide decisions throughout the project, but short enough to be understood by someone who isn't a developer.

Examples of well-written purpose statements:

Notice that each statement names the who (pupils, librarians, gym members, staff) and the what (borrow/return books, book classes, manage bookings). There is no mention of how the system will work internally — that comes later in the design phase.

Scope and boundaries

Once the purpose is agreed, the team defines the scope: what the project does cover. The scope lists the agreed features, functions, and deliverables that will be developed. For a school library system, searching the catalogue, recording loans, and producing overdue-loan warnings could all be in scope.

The boundaries are the project's explicit limits: what it does not cover. Boundary statements record exclusions such as "The system will not calculate or collect overdue fines" or "The system will not manage pupil attendance." Making these exclusions clear prevents assumptions and scope creep, where extra features are added beyond the agreed scope and cause budgets or deadlines to overrun.

During analysis, the team may also record the system's interfaces: which users or external systems interact with it and where data enters or leaves. Interfaces are useful supporting context, but they are not the definition of scope or boundaries. Inputs and outputs belong in the IPO analysis described below; a boundary is an exclusion or limit on the project.

Functional requirements and IPO

A functional requirement is a statement of something the system must be able to do. Every functional requirement is phrased the same way:

"The system must…"

Using "must" (not "should" or "might") signals that this is a definite requirement, not a wish list. Functional requirements describe what the system does — never how it does it. Describing the how is the job of the design phase.

One way to organise functional requirements is IPO: inputs, processes, and outputs. An input is data that enters the system, such as a pupil ID or a selected book. A process is what the system does with input data to produce a result, such as checking a borrowing limit, searching a catalogue, calculating a total, or recording a loan. The process is the action performed by the system; it is distinct from the input data and from the result produced. An output is information or another result produced by the system, such as search results, a warning message, a receipt, or an order summary.

For example, in a book search the title entered is an input, searching the catalogue for matching records is a process, and displaying the matching books is an output. A complete analysis checks all three categories so that the team knows what data is needed, what the software must do with it, and what result users should receive.

Examples of correctly phrased functional requirements for a school library system:

These are specific, measurable, and describe behaviour — not technology. Compare them to statements that are not functional requirements:

End-users and stakeholders

Different people have different needs from the same system. A stakeholder is anyone with an interest in the project — this includes end-users (the people who use the software daily), managers, clients who are paying for it, and sometimes even competitors. Part of the analysis phase is identifying all stakeholders and gathering their requirements.

Stakeholders can have conflicting requirements. For example, end-users might want a fast, simple interface, while managers want detailed audit logs of every action. The development team must resolve these conflicts during analysis, before design begins. Discovering a conflict after the system has been built is far more expensive to fix.

Worked examples

Example 1 — Library management system
1
Scenario: A secondary school wants a system to manage book loans. Pupils can borrow up to 3 books at once. Librarians can manage the catalogue and see who has each book.
2
Purpose: "The purpose of this system is to allow pupils to borrow and return books from the school library, and to let librarians manage the catalogue and monitor outstanding loans."
3
Scope and boundaries:
Scope — project deliverables
  • ✓ Pupils searching for books
  • ✓ Borrowing and returning books
  • ✓ Librarians adding/removing books
  • ✓ Overdue loan warnings
Boundaries — exclusions
  • ✗ Processing overdue fines
  • ✗ Ordering new stock
  • ✗ Pupil attendance records
4
Functional requirements:
  • The system must allow pupils to search for books by title or author.
  • The system must prevent a pupil from borrowing more than 3 books at once.
  • The system must record which pupil has borrowed each book.
  • The system must display an alert if a book has been on loan for more than 14 days.
Each requirement begins with "The system must", describes a specific behaviour, and avoids saying how it will be implemented.
Example 2 — School canteen pre-ordering app
1
Scenario: A school canteen wants an app where pupils order their lunch in advance each morning. This will reduce queuing at lunchtime and help the kitchen prepare the correct quantities.
2
Purpose: "The purpose of this app is to allow pupils to pre-order their school lunch each morning, reducing queuing and giving the canteen staff accurate order counts."
3
Scope and boundary: The scope covers displaying the daily menu, accepting one advance order per pupil, and giving the kitchen an order summary. A boundary is: "The app will not process payments; cash will still be taken at the counter."
4
IPO classification:
  • Inputs: pupil ID number, daily menu entered by canteen staff, selected lunch item.
  • Processes: check that the pupil has not already ordered, validate that the order is before 10:30am, record or update the order, total the quantities required.
  • Outputs: order confirmation for the pupil and the completed order summary for the kitchen.
5
Functional requirements:
  • The system must allow pupils to log in using their school ID number.
  • The system must display today's lunch menu.
  • The system must allow pupils to place one order per day before 10:30am.
  • The system must allow pupils to cancel or change their order before 10:30am.
  • The system must generate a summary of all orders for the canteen at 10:30am.
The IPO list separates data entering the app from what the app does and the results it produces. Those processes and outputs can then be written as specific, testable functional requirements.
Example 3 — Identifying functional requirements in a list
1
Task: From the list below, identify which statements are functional requirements and which are not. Explain each decision.
2
A: "The system must be easy to use."
Verdict: Not a functional requirement. It doesn't describe a specific behaviour. What does "easy to use" mean? There's no way to test whether the system passes or fails this requirement.
3
B: "The system must allow users to register an account using their email address and a password."
Verdict: Functional requirement. It describes a specific action the system must support. It is testable — you can check whether the system lets users register.
4
C: "The project must be delivered by 1 December 2026."
Verdict: Not a functional requirement. This is a project deadline — a constraint on the team, not a description of what the system does.
5
D: "The system must send a booking confirmation email within 5 minutes of a successful booking."
Verdict: Functional requirement. Specific, measurable, and describes system behaviour.
A functional requirement must describe something the system does. It must be specific enough to test.
Now you try
A local gym wants a membership management system. Members should be able to book exercise classes online using an app. Staff need to be able to manage bookings and view how many spaces are left in each class.

Write: (a) a purpose statement · (b) three project deliverables in scope · (c) one boundary statement · (d) classify the scenario's inputs, processes, and outputs · (e) three functional requirements
⚠️ Common mistakes — examiner feedback
📝 Exam tip

When a question asks you to write functional requirements, always use "The system must…" and always refer to the scenario. Copying the phrasing from the scenario shows the examiner that your requirements are relevant. Vague or generic answers (not referring to the specific scenario) receive zero marks even if the format is correct.

Task Set A — Core questions

Task Set A — Core questions
Work through all questions, then check your answers.
Question 1
What is the term for a statement that describes something the system must do?
Question 2
Which of the following is a correctly phrased functional requirement?
Question 3
Complete the sentence: "The _______ of a software project defines the agreed features, functions, and deliverables that will be developed."
Question 4
A team is building a school library app. Which statement identifies a boundary of this project?
Question 5
What term describes the tendency for a project to expand beyond its original plan as new features are continuously added?
Question 6
Describe what is meant by the 'purpose' of a software system. (2 marks)
Question 7
Which of the following best describes 'scope creep'?
Question 8
A school wants to build an app that lets pupils view their timetable and homework tasks, and lets teachers set homework. Write four functional requirements for this system. (4 marks)
Question 9
A cinema booking system lets a customer select a film showing and seats. It checks seat availability, calculates the price, reserves available seats, and displays a booking confirmation. Identify and classify the scenario's inputs, processes, and outputs. (6 marks)
Question 10
Explain the difference between scope and boundaries, and give one reason why boundaries must be identified during analysis. (3 marks)

Task Set B — Extension

Task Set B — Extension · Beyond the specification
Longer written answers — no auto-check. Discuss your answers with your teacher.
Extension 1
A client says: "I want a simple website to sell handmade jewellery." Write: (a) a purpose statement for the system, (b) three project deliverables in scope, (c) two boundary statements identifying what the project will not cover, and (d) four functional requirements.
Extension 2
Explain what is meant by a stakeholder and give an example of two stakeholders for an online banking system who might have conflicting requirements. Describe the conflict. (3 marks)
Extension 3
A functional requirement states: "The system should be fast." Explain why this is a poor functional requirement and rewrite it to make it specific and testable. (2 marks)
📁 File this in OneNote under:
Higher Computing Science → Software Design & Development → SDD2
📌 Teacher notes — not for pupils

Double period. No coding yet — this is a fully written/discussion lesson. Analysis is the foundation everything else builds on; pupils who understand requirements writing will find testing and evaluation much easier later.

Suggested timing: 10 min warm-up + vocab scan · 20 min notes (walk through examples 1 and 2 together, use think-pair-share for example 3) · 10 min "now you try" (pairs) · 40 min Task Set A · 10 min Task Set B (extension pairs) · 10 min debrief.

Common pupil confusion: they write requirements in the form "The user can…" or "Users should be able to…" — be firm that the correct form is "The system must…". This distinction is consistently examined.

Task Set B Q3 (poor functional requirement) is a favourite exam question style — worth spending time on as a class.