MIT8107Software Development Life Cycle

Understand how software gets built, then prove it on the exam

Written for a complete beginner. Every abbreviation is spelled out, and every idea gets a plain-English explanation, an everyday analogy and a banking example. Read a module, watch its video lesson, then practise the questions until you score 20/20.

6 modules0 exam-style questions6 narrated video lessons0 abbreviations explained
Study Session 1 · Lesson slides 01

What the SDLC is, its 7 phases, and the models teams choose from

In one sentence: the SDLC (Software Development Life Cycle) is the step-by-step route a team follows to turn "we need an app" into working software, and then keep it working for years.

Think of it like

Building a house. You don't start by pouring concrete. First you decide what house you want and whether you can afford it (planning), ask the family what rooms they need (analysis), get an architect's drawing (design), build it (implementation), have an inspector check it (testing), hand over the keys (deployment), and fix leaks and repaint over the years (maintenance). Software works the same way.

Why the SDLC exists

The textbook opens with TechNova Solutions, a company hired to build a delivery-tracking app for a logistics firm. Without a structured process, the project "spirals into chaos": missed deadlines, blown budgets, an unhappy client. It then describes a government social welfare portal for all 36 states. That project involves biometrics, money, health data, many user types and frequent policy changes. Without an SDLC, requirements get misread, security gets forgotten and policy changes force costly rework.

The book defines the SDLC as a systematic, iterative process for building software that prioritises quality, efficiency, correctness and maintainability. Every phase is planned, documented, reviewed and validated.

The SDLC's dual nature (a favourite exam question)

1. A process model

It defines how software is built: a logical sequence of activities from idea to retirement, so work isn't done "ad hoc".

2. A project management tool

It helps managers monitor timelines, allocate resources, control costs and manage risks, and shows whether the project is healthy.

Four big benefits the textbook lists

  1. A blueprint: it keeps technical work aligned with business goals and user needs.
  2. Predictability and control: you can estimate budget, effort and time, and spot risks early.
  3. Accountability and documentation: every phase leaves artefacts (SRS, design docs, test plans, change logs, deployment records) that form an audit trail for audits, regulators or legal disputes.
  4. Knowledge transfer and team scalability: a new developer can read the documents instead of relying on "tribal knowledge", so onboarding is faster and the team survives staff turnover.

The slides add five roles of the SDLC in software engineering: structure, efficient resource and cost management, risk reduction by catching issues early, consistency and quality assurance, and collaboration among stakeholders.

The 7 phases, one by one

SDLC 1 Planning 2 Analysis 3 Design 4 Implementation 5 Testing 6 Deployment 7 Maintenance feedback loops back
Planning → Analysis → Design → Implementation → Testing → Deployment → Maintenance. Memory hook: "Please Always Design Intelligent Tests, Deploy, Maintain."

1. Planning: "Should we build this, and how?"

The foundation stage. The team defines the scope (what's in and what's out, which prevents scope creep, the uncontrolled growth of features), sets measurable objectives, and runs a feasibility study with three checks:

Technical feasibility

Do we have the technology, tools and skills?

Economic feasibility

Will the benefits outweigh the costs?

Operational feasibility

Can the organisation actually run it and fit it into existing processes?

Key activities: resource allocation (people and technology), budget estimation, risk identification and mitigation, timeline projection using Gantt charts, PERT diagrams (Program Evaluation and Review Technique) or critical path analysis, and initial stakeholder engagement.

2. Requirement Analysis: "What must the system do?"

The team works with clients, end users and business analysts to gather, clarify, prioritise and document requirements.

Functional requirement

What the system does: "Customer can log in", "System generates a monthly statement".

Non-functional requirement

How well it does it: speed, security, reliability, usability. "Transfer completes in 3 seconds", "99.9% uptime".

Techniques: stakeholder interviews (structured, semi-structured or unstructured), workshops including JAD (Joint Application Development) sessions, feasibility studies, and user stories in the format "As a [user], I want [goal] so that [reason]."

Deliverables: the SRS (Software Requirements Specification, the main deliverable), use case models and diagrams, feasibility reports and a prioritised requirement list. Prioritise with MoSCoW: Must have, Should have, Could have (nice but not essential), Won't have this time. The slides also mention cost-benefit analysis and stakeholder influence.

At a bank

Functional: "A customer can send money to another bank's account from the mobile app." Non-functional: "The transfer screen loads in under 2 seconds on 3G." User story: "As a customer, I want to save beneficiaries so that I don't retype account numbers."

3. Design: turning the "what" into the "how"

Architects choose the architecture (client-server, microservices, or a single monolithic codebase), design the database schema, build UI mockups and prototypes, and draw diagrams: DFD (Data Flow Diagram: how data enters, moves through and leaves the system) and UML (Unified Modelling Language) class, sequence and component diagrams. They also plan security (authentication, encryption, authorisation), performance and scalability (caching, indexing, load balancing) and pick the technology stack. High-level design covers the overall architecture. Low-level design covers algorithms, database schemas and interface layouts. The output is a set of design documents that serve as the technical blueprint.

4. Implementation (Coding): "Let's build it"

Developers turn the design into code, following coding standards (naming, formatting, comments, error handling), using source control like Git (safe, trackable changes, branches and rollback), building modular pieces, and using practices like Agile, TDD and CI/CD. Peer code reviews catch errors and share knowledge. Documentation written alongside the code includes inline comments, API docs, installation guides and user manuals.

5. Testing: "Does it work as intended?"

This phase detects and fixes errors before release, validates the requirements and checks reliability under real-world stress. It covers unit, integration, system, acceptance, performance and security testing. Session 3 covers each type in detail.

6. Deployment: "How do we deliver it to users?"

The software goes live. Traditional deployment is one big, carefully scheduled event, which may involve downtime, major configuration changes and user training. Modern Agile and DevOps teams deploy small pieces often through CI/CD pipelines. Activities: data migration from old systems, installation and configuration, deployment automation (dev → staging → production) and training for users and administrators. The slides name three strategies: phased rollout, parallel deployment (old and new run side by side) and direct cutover (switch off old, switch on new).

7. Maintenance: keeping it alive

This phase is ongoing, and maintenance can account for up to 70% of the total lifetime cost of software. Learn the four types by heart:

TypeWhat triggers itBank example
CorrectiveA bug or defect is foundTransfers over ₦1m fail with an error. Fix the bug.
AdaptiveThe environment changes: new OS, hardware, database, or a new law or regulationThe Central Bank issues a new rule, or Android releases a new version. Update the app to stay compliant or compatible.
PerfectiveUsers want new features or better performance or usabilityCustomers ask for dark mode, or a faster statement download.
PreventiveNothing is broken yet, but you refactor, update docs and tidy architecture to reduce technical debtRewrite messy 400-line functions before they cause problems.
Exam trap

"No bug, just improved usability after user feedback" = Perfective, not corrective. "New government circular or policy" = Adaptive. "Refactoring with no new bugs" = Preventive. Only an actual defect = Corrective.

SDLC models: different routes through the phases

A model is a strategy for moving through the phases. The textbook's LMS story: project manager Zion at TechNova must build a university Learning Management System and weighs each model. In the end she picks a hybrid: a prototype first to clarify unclear requirements, then Agile for full development.

Waterfall: one step at a time, no going back

Requirements Design Implementation Testing Deployment No going backeach phase signed offbefore the next starts
Water only flows down. Key principle: no phase begins until the previous one is fully completed and signed off. Maintenance follows deployment.
Strengths

Simple, easy to manage, clear milestones, thorough documentation at every phase, good for small or stable projects with fixed requirements.

Weaknesses

Inflexible to change, late testing (bugs found late are costly), minimal customer involvement (users see it only at the end), poor for complex or long projects.

Use it for: government and defence, construction and engineering software, embedded systems and firmware (printers, washing machines), aerospace, and banking systems with strict regulatory compliance. In short, anywhere requirements are fixed and documentation and approvals are mandatory.

V-Model: Waterfall with a matching test for every step

An extension of Waterfall focused on verification and validation. For every development stage there is a corresponding testing phase planned in parallel. For example, while architects design the system, testers write the integration test plans. It catches defects early but is just as inflexible as Waterfall.

Incremental Model: deliver in slices

Split the system into small modules and release the basics first (course registration and login), then add more in later increments (video lectures, then assignments, then grades). This allows partial delivery and user feedback at each stage.

Prototype Model: "I'll know it when I see it"

Quickly build a rough working model with limited features to get feedback when requirements are unclear. The prototype evolves until stakeholders know what they want.

Agile: short cycles, constant feedback

Agile is iterative and incremental. Work is split into sprints (short, fixed-length cycles of 1–4 weeks), each producing working software that users review. The Agile cycle in the textbook: Plan → Design → Develop → Test → Launch → Review → Deploy, then loop back.

The Agile Manifesto (2001) has four values. The item on the left is valued more, though the item on the right still matters:

  1. Individuals and interactions over processes and tools
  2. Working software over comprehensive documentation
  3. Customer collaboration over contract negotiation
  4. Responding to change over following a plan

And 12 principles, which examiners describe as scenarios:

#PrincipleYou'll recognise it when…
1Customer satisfaction through early and continuous deliveryCustomers get working pieces early, not after a year
2Welcome changing requirements, even lateA late change request is accepted, not resisted
3Deliver working software frequently (weeks, not months)Releases every 2 weeks
4Business people and developers work together dailyThe business analyst sits with devs every day
5Build projects around motivated individualsTrust the team, give them tools and support
6Face-to-face conversation is most efficientWalk over and talk instead of long emails
7Working software is the primary measure of progressProgress = features that work, not pages of docs
8Sustainable paceNo endless overtime or "crunch": fixes burnout
9Technical excellence and good designClean code and refactoring keep you agile
10Simplicity: maximise the work not doneDon't build features nobody asked for
11Self-organising teams produce the best designsThe team decides how to do the work
12Regular reflection and adjustmentRetrospectives at the end of each sprint

Scrum (Agile framework): sprints, a product backlog (prioritised list of everything to build, owned by the Product Owner) and daily stand-ups (15 minutes: what I did yesterday, what I'll do today, any blockers). Kanban: a visual board, limits on work in progress and continuous flow instead of fixed sprints. Session 4 covers both in depth.

Use Agile for: web and mobile apps, startups, dynamic markets, anything where requirements will change. Weakness: may lack formal documentation, is less suitable for fixed contracts or heavy regulation, and needs experienced, collaborative people.

Spiral: loops of risk analysis

1 Objectives / Planningset goals, gather requirements 2 Risk analysisevaluate alternatives, prototype 3 Engineeringdesign, code, integrate, test 4 Evaluation / Reviewcustomer feedback, plan next loop progress →cumulative cost ↑
Introduced by Barry Boehm in 1986 (the textbook's date). Each loop is one phase of development. As the spiral widens, cumulative cost and product maturity both increase.

Spiral combines Waterfall's structure with prototyping's flexibility and puts risk analysis at every loop. The textbook's quadrant names: Objective Identification → Alternate Evaluation and Risk Analysis → Product Development → Review and Next-Phase Planning. Best for: large, high-budget, high-risk projects, evolving requirements, critical systems (defence, aerospace, banking, healthcare), and research. Weaknesses: expensive, complex, needs risk-analysis experts, and too much overhead for small projects.

Compare the three main models (Table 1.1)

CriteriaWaterfallAgileSpiral
StructureSequentialIterativeIterative and risk-driven
FlexibilityLowHighMedium
Risk managementLow (risks found late)Medium (through incremental releases)High (assessed every cycle)
Best forFixed, simple, regulated projectsRapid, evolving projectsLarge, complex, high-risk projects
How to pick in 5 seconds
  • Requirements fixed by law, heavy documentation, sign-offs → Waterfall
  • Waterfall but testers plan tests in parallel with each stage → V-Model
  • Requirements unclear or changing, short deadline, frequent feedback → Agile/Scrum
  • High technical risk or unknowns, big budget → Spiral
  • Stakeholders say "we'll know when we see it" → Prototype
  • "Release basic features first, add more in stages" → Incremental

Summary

  • The SDLC is both a process model and a project management tool, with 7 phases.
  • Planning = scope, objectives, feasibility (technical, economic, operational). Analysis = requirements and the SRS. Design = "how". Implementation = code. Testing = verify. Deployment = deliver. Maintenance = corrective, adaptive, perfective, preventive (up to 70% of cost).
  • Waterfall suits fixed requirements, Agile suits change, Spiral suits risk, the V-Model adds parallel testing, Prototype suits unclear needs, and Incremental delivers in slices.