Computer Science · Cheatsheet
Topic 1 · System Fundamentals
Chapter 1 · The software lifecycle
📋 Reference · always available
Software vs hardware
Hardware = physical (chip, screen). Software = invisible instructions (app, OS).
SDLC = 7 stages
Planning → Analysis → Design → Implementation → Testing → Deployment → Maintenance. Memory: P-A-D-I-T-D-M.
Planning
Feasibility study, rough budget, risks. Cheapest stage — biggest leverage.
Analysis
Capture requirements from real stakeholders. Skipping this = building the wrong thing.
Design
Architecture diagrams + UI mockups + data models. Fixing a flaw here is 10–100× cheaper than fixing it after launch.
Implementation
Actual coding. Usually only ~30% of total project time.
Testing layers
Unit → Integration → System → User Acceptance Testing (UAT). UAT = real users approve.
Deployment
Move new system live + migrate data + train users + plan rollback.
Maintenance
Corrective (bugs), Adaptive (env changes), Perfective (new features), Preventive (tidy code). Usually >50% of lifetime cost.
Waterfall
Linear, doc-heavy; each stage finishes before next. Best for stable + regulated (medical, aerospace).
Iterative / Agile
Short sprints; working code each cycle. Best for uncertain + fast-feedback (apps, startups).
Hybrid
Most real projects mix both — Agile day-to-day, Waterfall for major releases.
Brooks's Law
Adding people to a late project makes it later. Communication overhead explodes.
Exam trap
Implementation ≠ Deployment. Implementation = coding; Deployment = rolling out.