1.2.3 Software development
SDLCs
When developing software, teams will often utilise different software development lifecycles (SDLCs) in order to organise and schedule development.
Stages of an SDLC
SDLCs are generally split into a few common stages to describe the different stages of development during a project’s lifecycle.
Analysis
In this stage, the stakeholders will first provide the requirements for the finished product. These requirements will be used to
- Define the problem
- Estimate the feasibility of the project
- Deciding on the scope of the project
- Determining profitability
The point of this stage is to understand the problem provided by the stakeholders, decide whether the project is worth or possible undertaking, and what they want the finished product to be able to do.
This is essentially the same as the analysis section of the programming project.
Design
Development
Testing
Implementation
Evaluation
Maintenance
System development methodologies
The above stages can be grouped together in different ways to create System development methodologies, which determine how teams will approach the development of a project.
Caution
The following sections are GPT-5-mini generated for times sake since I have an assessment tmr lmao
Keep this in mind, and I will rewrite it properly at some point. For now, reference my SLR slides https://docs.google.com/presentation/d/1dP9q9EwFfof6ApVjSG8sWpLyQsiScMqiZhKOeU_q-qg/edit?slide=id.g3aeea336b2d_0_1#slide=id.g3aeea336b2d_0_1
Waterfall
Waterfall is a linear, sequential SDLC where each stage must be completed before the next begins. Typical stages include requirements, design, implementation, testing, deployment and maintenance. Waterfall suits projects with well‑defined, stable requirements.
- Advantages: clear milestones and documentation, easy to manage, predictable schedule for fixed requirements.
- Disadvantages: inflexible to requirement changes, late discovery of design flaws, limited stakeholder feedback until late stages.
Spiral
The Spiral model is an iterative, risk‑driven approach that combines elements of design and prototyping. Each iteration (or “spiral”) includes planning, risk assessment, engineering and evaluation. Successive spirals refine requirements and design while addressing identified risks.
- Advantages: explicit risk management, iterative refinement, suitable for large or high‑risk projects.
- Disadvantages: can be complex and costly to manage; requires expertise in risk analysis.
Rapid Application Development (RAD)
RAD emphasises rapid prototyping and active user involvement rather than lengthy upfront planning. Development proceeds in short cycles producing prototypes that are refined into the final system with frequent user feedback.
- Advantages: fast delivery of functional prototypes, strong user involvement, flexible to requirement changes.
- Disadvantages: less suitable for very large systems, potential for scope creep, depends on availability of end users.
Agile
Agile describes a family of iterative, incremental methods (for example, Scrum) that prioritise customer collaboration, working software and responsiveness to change. Work is organised into short iterations (sprints) with regular review and adaptation.
- Advantages: frequent delivery of working software, continuous customer feedback, adaptable to evolving requirements.
- Disadvantages: requires disciplined teams and stakeholder engagement; less predictability for fixed‑price contracts.
🔥Extreme Programming🔥
Extreme programming is a subset of the Agile methodology that emphasises engineering practices to improve code quality and responsiveness: pair programming, test‑driven development (TDD), continuous integration, simple design and small frequent releases. XP promotes close collaboration with customers and very short feedback loops.
- Advantages: high code quality, rapid response to change, strong developer collaboration.
- Disadvantages: intensive team practices can be demanding to sustain; requires cultural buy‑in.
Sources and further reading
- OCR, “Specification: A Level GCE Computer Science H446” https://www.ocr.org.uk/Images/170844-specification-accredited-a-level-gce-computer-science-h446.pdf
- Agile Alliance, “What is Agile?” https://www.agilealliance.org/agile101/
- Barry Boehm, “A Spiral Model of Software Development and Enhancement” (original Spiral model paper)