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

PhaseGoalTypical output / artifact
1. RequirementsUnderstand exactly what the software must do and for whom.Requirements document, user stories
2. DesignDecide how it will work before coding — structure, data, and algorithms.Diagrams, flowcharts, pseudocode, data models
3. ImplementationWrite the actual source code that realises the design.Source code in a version-control system
4. TestingCheck the software does what it should and find defects.Test cases, bug reports, test results
5. DeploymentRelease the software so real users can use it.Live application, release notes
6. MaintenanceFix 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.

AspectWaterfallAgile / Iterative
Order of phasesOnce, strictly in sequenceRepeated in short cycles
Handling changeHard — plan is fixed earlyEasy — change welcomed each cycle
First usable versionOnly at the very endEarly and often
Best suited toStable, well-understood projectsProjects 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.

1. Requirements 2. Design 3. Implementation 4. Testing 5. Deployment 6. Maintenance feedback loops back

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.