Unit Overview
Software development
CIE A-Level Computer ScienceΒ· 5 min read π n/a
1. Unit at a glance
This unit follows the natural flow of a real-world software project, starting from planning and requirement gathering, moving through design and implementation, then covering testing, release, and ongoing post-release maintenance. Each sub-topic builds on the previous one to give you a complete end-to-end understanding of how software is developed.
A core unifying theme across this unit is learning how to match the right methodology and approach to the size, scope, and requirements of different projects, from small personal tools to large enterprise applications.
This unit is split into 7 ordered sub-topics, following the flow of a typical development project:
Software lifecycle
Covers common lifecycle models (waterfall, agile, spiral) and their appropriate use cases.
β β β± 6 min
Requirement analysis
Explains how to elicit, document, and validate functional and non-functional user requirements.
β β β± 5 min
Software design methods
Introduces structured and object-oriented design approaches and core modelling tools.
β β β β± 7 min
Testing
Covers different testing levels, types, and strategies for verifying software functionality.
β β β β± 6 min
Debugging
Explains systematic approaches to identifying, isolating, and fixing software defects.
β β β β± 4 min
Software maintenance
Describes the different categories of post-release software maintenance.
β β β± 5 min
Software project management
Covers project planning, risk management, team roles, and quality assurance.
β β β β± 7 min
2. Common Pitfalls
Wrong move:
Confusing when to use agile vs waterfall lifecycle models
Why:
Choosing the wrong model often leads to scope creep, missed deadlines, or unmet stakeholder requirements
Correct move:
Match your lifecycle model to the stability of requirements and size of the project
Wrong move:
Treating testing as a final step only after all code is written
Why:
Testing should start early to catch costly issues in requirements and design before implementation
Correct move:
Incorporate testing activities at every stage of the development lifecycle
3. Quick Reference Cheatsheet
Concept | Key Summary |
|---|---|
Functional requirements | Define what a software system must do (features, actions, outputs) |
Non-functional requirements | Define how a system performs (speed, security, usability, reliability) |
Waterfall model | Linear sequential model, best for fixed, stable requirements |
Agile model | Iterative incremental model, best for projects with evolving requirements |
Unit testing | Tests individual small code components in isolation |
Integration testing | Tests how multiple combined components work together |
System testing | Tests the complete, fully integrated software system |
Corrective maintenance | Post-release work to fix discovered defects |
What's Next
Begin this unit by exploring core software lifecycle models, the foundation for all other topics in this unit. Once you complete all sub-topics in this unit, you can move on to the first topic of the next unit covering database fundamentals for CIE A-Level Computer Science.
