Skip to content
Computing · JC 2 · Computational Thinking Project · Semester 2

Introduction to Software Development Life Cycle (SDLC)

Students will learn about the phases of the SDLC, from planning to maintenance, and different development methodologies.

About This Topic

The Software Development Life Cycle (SDLC) provides a systematic approach to building software, covering phases from planning and requirements analysis to design, implementation, testing, deployment, and maintenance. Students examine how each phase builds on the previous one to deliver reliable, user-focused applications. This structure highlights risks like scope creep if planning is rushed, preparing students for the Computational Thinking Project.

JC 2 students compare traditional Waterfall models, with their sequential steps and documentation emphasis, to Agile methodologies that prioritize iterative sprints, customer feedback, and adaptability. They analyze suitability: Waterfall fits projects with fixed requirements, like banking systems, while Agile suits dynamic environments, such as mobile apps. These comparisons foster critical evaluation of trade-offs in time, cost, and quality.

Active learning benefits this topic greatly because SDLC phases involve collaboration and iteration best practiced through hands-on simulations. When students role-play project teams or build simple prototypes, they experience phase dependencies firsthand, internalize methodology differences via trial and error, and connect theory to the iterative demands of real software projects.

Key Questions

  1. Explain the importance of each phase in the Software Development Life Cycle.
  2. Compare the Waterfall model with Agile methodologies for software development.
  3. Analyze how different SDLC models are suited for various project types.

Learning Objectives

  • Explain the purpose and key activities of each phase within the Software Development Life Cycle.
  • Compare and contrast the sequential nature of the Waterfall model with the iterative approach of Agile methodologies.
  • Analyze the suitability of different SDLC models, such as Waterfall and Agile, for various project types and constraints.
  • Evaluate the trade-offs in terms of time, cost, and quality when selecting an SDLC methodology for a given project.

Before You Start

Introduction to Programming Concepts

Why: Students need a foundational understanding of basic programming constructs to grasp the implementation and testing phases of the SDLC.

Problem Solving and Algorithmic Thinking

Why: Understanding how to break down problems and design solutions is crucial for the requirements analysis and design phases of the SDLC.

Key Vocabulary

Software Development Life Cycle (SDLC)A systematic process that outlines the stages involved in developing and maintaining software, from initial planning to final deployment and upkeep.
Waterfall ModelA linear, sequential approach to software development where each phase must be completed before the next begins, emphasizing documentation and planning.
Agile MethodologiesAn iterative and incremental approach to software development that prioritizes flexibility, customer collaboration, and rapid delivery of working software.
Requirements AnalysisThe phase where detailed needs and specifications for the software are gathered, documented, and agreed upon by stakeholders.
ImplementationThe phase where the actual coding and building of the software components take place based on the design specifications.
DeploymentThe process of releasing the completed software to end-users or into the production environment.

Watch Out for These Misconceptions

Common MisconceptionWaterfall is always better because it is more structured than Agile.

What to Teach Instead

Waterfall suits stable requirements but struggles with changes, while Agile handles uncertainty through iterations. Role-plays reveal how Waterfall delays fixes, helping students see context matters via group debates on project scenarios.

Common MisconceptionSDLC phases are independent and can be skipped if time is short.

What to Teach Instead

Each phase relies on prior outputs; skipping testing leads to bugs in deployment. Simulations where groups omit phases show cascading failures, reinforcing dependencies through shared reflections.

Common MisconceptionAgile means no planning or documentation.

What to Teach Instead

Agile uses lightweight planning in sprints with backlogs and demos. Prototype activities demonstrate ongoing documentation needs, clarifying structure via iterative builds and reviews.

Active Learning Ideas

See all activities

Real-World Connections

  • Software engineers at Google use Agile methodologies, specifically Scrum, to develop and update features for Android applications, allowing for rapid iteration based on user feedback and market trends.
  • Financial institutions like DBS Bank often employ more structured SDLC models, sometimes a hybrid approach, for developing core banking systems where regulatory compliance and data integrity are paramount, requiring thorough documentation and testing at each stage.
  • Game development studios, such as Ubisoft, frequently utilize Agile principles to manage the complex and often changing requirements of video game projects, enabling teams to adapt to new creative ideas or technical challenges during development.

Assessment Ideas

Exit Ticket

Provide students with a scenario describing a software project (e.g., a simple mobile game vs. a secure online banking portal). Ask them to identify which SDLC model (Waterfall or Agile) would be more suitable and justify their choice in 2-3 sentences, referencing specific phases or principles.

Discussion Prompt

Pose the question: 'Imagine a critical bug is discovered just before deployment in a Waterfall project. What are the potential consequences, and how might an Agile approach have mitigated this risk?' Facilitate a class discussion, guiding students to consider the impact on timelines, resources, and stakeholder satisfaction.

Quick Check

Present students with a list of activities (e.g., 'Gathering user requirements', 'Writing code', 'Testing a feature', 'Releasing an update'). Ask them to categorize each activity into the primary SDLC phase it belongs to and briefly explain its purpose within that phase.

Frequently Asked Questions

How can teachers explain SDLC phases to JC 2 students?
Use visual timelines and real Singapore project examples, like TraceTogether app development, to map phases. Break down each with student-led summaries, linking to key questions on phase importance. Follow with quick phase-sorting card activities for reinforcement, ensuring connections to the Computational Thinking Project.
What are key differences between Waterfall and Agile in SDLC?
Waterfall follows a fixed sequence with heavy upfront planning, ideal for clear requirements. Agile uses short cycles for flexibility and feedback, better for evolving needs. Students analyze via charts: Waterfall risks late discoveries, Agile demands collaboration. This prepares them for project model selection.
How does active learning help teach SDLC?
Active methods like role-plays and prototypes let students enact phases, experiencing iterations and failures directly. Small-group simulations build teamwork skills mirroring Agile, while debriefs solidify comparisons. This makes abstract models tangible, boosting retention for the unit project over passive lectures.
Why is maintenance phase important in SDLC?
Maintenance ensures software evolves with user needs, fixing bugs and adding features post-deployment. In Singapore contexts, like government systems, it prevents downtime costs. Students explore via case studies, planning maintenance for prototypes, linking to long-term project success.