Skip to content
Computer Science · Grade 12 · Software Engineering Principles · Term 4

Introduction to Software Engineering

Students will learn about the software development lifecycle and the importance of systematic approaches to building software.

Ontario Curriculum ExpectationsCS.SE.4CS.PM.1

About This Topic

Agile and Waterfall are the two primary methodologies for managing software projects. This topic compares the traditional, linear Waterfall approach, where each phase must be finished before the next begins, with the modern, iterative Agile approach, which focuses on small, frequent updates and constant feedback. In the Ontario Grade 12 curriculum, students apply these principles to their own projects, learning how to manage time, resources, and changing requirements.

Understanding these frameworks is essential for any student entering the tech workforce, as they dictate how teams collaborate and communicate. Agile is particularly popular in the Canadian startup scene, while Waterfall is often found in large-scale infrastructure projects. Students grasp this concept faster through structured discussion and peer explanation, where they can experience the 'frustration' of a rigid plan versus the 'flexibility' of an iterative one.

Key Questions

  1. Explain why software engineering principles are essential for developing complex software systems.
  2. Differentiate between coding and software engineering as disciplines.
  3. Analyze the potential consequences of not following a structured software development process.

Learning Objectives

  • Compare and contrast the Waterfall and Agile software development methodologies, identifying key differences in their phases and iterative nature.
  • Analyze the impact of specific software engineering principles, such as requirements gathering and testing, on project success and product quality.
  • Evaluate the suitability of Waterfall and Agile methodologies for different types of software projects, justifying choices based on project scope and client needs.
  • Design a basic project plan for a small software application, selecting either Waterfall or Agile and outlining the initial steps according to the chosen methodology.

Before You Start

Introduction to Programming Concepts

Why: Students need a foundational understanding of writing code and basic programming structures before learning how to manage the process of building larger software systems.

Problem Solving and Algorithmic Thinking

Why: The ability to break down problems into smaller steps and design logical solutions is fundamental to all software development methodologies.

Key Vocabulary

Software Development Lifecycle (SDLC)A framework that outlines the stages involved in creating and maintaining software, from initial planning to deployment and retirement.
Waterfall ModelA linear, sequential approach to software development where each phase, such as requirements, design, implementation, verification, and maintenance, must be completed before the next begins.
Agile MethodologyAn iterative and incremental approach to software development that emphasizes flexibility, collaboration, customer feedback, and rapid delivery of working software.
SprintA short, time-boxed period, typically 1-4 weeks, during which a specific set of work is completed and made ready for review in an Agile development process.
Requirements EngineeringThe process of defining, documenting, and maintaining requirements for a software system, ensuring that the final product meets user needs and business objectives.

Watch Out for These Misconceptions

Common MisconceptionAgile means there is no plan and you just start coding.

What to Teach Instead

Agile requires *more* frequent planning, just in smaller chunks. A 'sprint planning' simulation helps students see that Agile is highly structured, even if it is flexible.

Common MisconceptionWaterfall is 'bad' and Agile is 'good'.

What to Teach Instead

Waterfall is better for projects where the requirements cannot change, like building a bridge or medical software. Peer-led case studies of different industries help students see the value of both models.

Active Learning Ideas

See all activities

Real-World Connections

  • Software engineers at Shopify, a Canadian e-commerce platform company, use Agile methodologies to rapidly develop and deploy new features for online businesses, responding quickly to market changes.
  • Large government IT projects, such as the development of new public transit ticketing systems in Toronto, may still utilize aspects of the Waterfall model for its structured phases and clear documentation requirements, especially when dealing with extensive hardware integration.
  • Video game development studios often employ hybrid approaches, blending Agile sprints for core gameplay mechanics with more structured phases for final polish and release, ensuring both creativity and timely delivery.

Assessment Ideas

Exit Ticket

Provide students with a scenario describing a software project (e.g., building a simple mobile game vs. upgrading a national banking system). Ask them to identify which methodology, Waterfall or Agile, would be more appropriate and write two sentences explaining their choice.

Discussion Prompt

Pose the question: 'Imagine a client changes their mind about a key feature halfway through a project. How would this situation be handled differently in a Waterfall project versus an Agile project? What are the potential challenges in each case?' Facilitate a class discussion comparing the outcomes.

Quick Check

Present students with a list of project characteristics (e.g., 'clear, unchanging requirements', 'need for rapid feedback', 'complex integration with existing systems'). Ask them to categorize each characteristic as more aligned with Waterfall or Agile principles.

Frequently Asked Questions

What is a 'Sprint' in Agile development?
A sprint is a short, fixed period of time (usually 1-4 weeks) where a team works to complete a specific set of tasks. At the end of the sprint, the team should have a working piece of software to show the client.
How can active learning help students understand project management?
Project management is about behavior and communication, which can't be learned from a book. Active learning, like the 'Paper Plane Factory' simulation, allows students to feel the stress of a deadline and the impact of a mid-project change. These experiences make the theoretical benefits of Agile much more obvious and practical.
Why is Waterfall still used in some industries?
In industries like aerospace or construction, a mistake in the design phase can be catastrophic and expensive to fix later. Waterfall ensures that every detail is checked and approved before any 'building' begins, which is safer for high-risk projects.
What is a 'Scrum Master'?
A Scrum Master is like a coach for an Agile team. Their job isn't to tell people what to do, but to remove obstacles and make sure the team is following the Agile process correctly so they can work efficiently.