The following lessons introduce the topic of software engineering by comparing two important models of the software life cycle, the Waterfall Model and the Spiral Model, and two paradigms for designing software, the Procedural Paradigm and the Object-Oriented Paradigm (OOP). Each lesson includes a set of review questions which test the important concepts from the lesson and provide practice problems. After reading each lesson, you should work the review questions before proceeding to the next lesson. Use the navigation bar at the top of this page to view the lessons and access the review questions. Each lesson page has a link on the navigation bar which will take you to the review questions for that lesson. To begin your study, click at the top of this page.


  1. Introduction to Software Engineering
  2. Software Life Cycle Models
    1. The Waterfall Model
    2. The Spiral Model
  3. Software Quality Characteristics
  4. Procedural Paradigm
  5. Object Oriented Paradigm
  6. Classes and Inheritance
  7. Comparison of Paradigms
  8. Summary

Learning objectives:

  • Recognize the challenge of writing correct software
  • Understand and reproduce the phases of the software life cycle
  • Compare the procedural paradigm with the OOP
  • Understand the principles of the OOP