All software is developed through a structured process. The Software Development Life Cycle (SDLC) is a framework describing the stages from identifying a problem to delivering a working solution. AQA requires you to understand the analysis and design phases.
The analysis stage establishes what the system needs to do. It begins with understanding the problem and identifying the stakeholders — anyone affected by or who will use the new system.
| Method | Description | Strength | Weakness |
|---|---|---|---|
| Interviews | Talking directly to stakeholders | Detailed, qualitative information | Time-consuming; subjective |
| Questionnaires | Written surveys sent to many users | Reaches many people quickly | May miss nuance; low response rates |
| Observation | Watching users perform current tasks | Reveals real workflow (not what they think they do) | Time-consuming; Hawthorne effect |
| Document analysis | Reviewing existing forms, reports | Reveals current data structures | May miss unwritten processes |
What the system MUST DO
Constraints on HOW it must work
The design stage determines how the system will meet the requirements. Good design produces a blueprint detailed enough for developers to implement without ambiguity.
Decomposition is the process of breaking a large, complex problem into smaller, more manageable sub-problems. Each sub-problem can then be solved independently. This is a fundamental technique in computational thinking.
Abstraction means focusing on the essential features of a problem while ignoring irrelevant detail. At the design stage, this means capturing what information needs to flow through the system without specifying every line of code.
| Notation | Used for | Example use |
|---|---|---|
| Structure charts | Show hierarchical decomposition of a program — modules and sub-modules | Showing how a login module calls password validation and session creation |
| Pseudocode | Describe algorithms in plain language before coding; platform-independent | Writing out the logic of a search algorithm |
| Flowcharts | Visualise algorithms with decision branches | Showing the logic of a login validation with loops |
| Data flow diagrams | Show how data moves between processes, data stores, and external entities | Showing how customer data flows from form submission to database |
| Prototypes | Early working versions to demonstrate features and gather feedback | A clickable wireframe of an app for user testing |
A prototype is an early, incomplete version of a system created to explore ideas and gather feedback before full implementation. Showing a prototype to stakeholders reveals misunderstandings about requirements early — when fixing them is cheap — rather than after full development.
Two types: throwaway prototyping (built quickly to test an idea, then discarded) and evolutionary prototyping (prototype is refined iteratively into the final product).
8 questions · 20 marks
| Term | Definition |
|---|
Timed exam conditions.