Part 1: Fundamental Concepts of Computing
8. The Software Development Life Cycle (SDLC)
The Software Development Life Cycle (SDLC)
Real software is rarely written in one sitting. Teams follow a repeatable process called the Software Development Life Cycle (SDLC) — a sequence of phases that takes an idea from "wouldn't it be nice if…" all the way to a running, maintained product. Knowing the phases helps you understand where your coding fits into the bigger picture.
The Six Phases
| Phase | Goal | Typical output / artifact |
|---|---|---|
| 1. Requirements | Understand exactly what the software must do and for whom. | Requirements document, user stories |
| 2. Design | Decide how it will work before coding — structure, data, and algorithms. | Diagrams, flowcharts, pseudocode, data models |
| 3. Implementation | Write the actual source code that realises the design. | Source code in a version-control system |
| 4. Testing | Check the software does what it should and find defects. | Test cases, bug reports, test results |
| 5. Deployment | Release the software so real users can use it. | Live application, release notes |
| 6. Maintenance | Fix issues, improve, and adapt to changing needs over time. | Patches, updates, new versions |
A Real Example
Imagine building a simple to-do list app. Requirements: users want to add, tick off, and delete tasks. Design: sketch the screen, decide each task stores a text and a done/not-done flag, and plan the "mark complete" algorithm as a flowchart. Implementation: write the code. Testing: try adding 100 tasks, deleting the last one, leaving the list empty — does anything break? Deployment: publish the app to a store or website. Maintenance: months later, add a "due date" feature users requested and fix a bug on old phones. Notice how design leaned directly on the flowcharts and algorithms from earlier chapters.
Waterfall vs Agile
There are different ways to move through the phases. The traditional Waterfall model runs each phase once, fully, in strict order — like water flowing down steps. Modern Agile (iterative) approaches do a little of every phase repeatedly in short cycles (often one to four weeks), delivering a small working slice each time and welcoming change.
| Aspect | Waterfall | Agile / Iterative |
|---|---|---|
| Order of phases | Once, strictly in sequence | Repeated in short cycles |
| Handling change | Hard — plan is fixed early | Easy — change welcomed each cycle |
| First usable version | Only at the very end | Early and often |
| Best suited to | Stable, well-understood projects | Projects where needs evolve |
The SDLC as a Cycle
The word "cycle" is deliberate: after deployment and maintenance, user feedback feeds new requirements, and the loop begins again. Software is never truly "finished" — it grows and adapts.
Where Algorithms and Flowcharts Fit
The Design phase is exactly where the skills from the previous chapters pay off: you use flowcharts, pseudocode, and your knowledge of algorithms to plan a solution before writing code. Good design makes implementation faster and testing easier. The SDLC shows that programming is one important part of a larger, disciplined craft — and that thinking clearly up front is what separates professional software from a pile of hopeful code.