Computing Science Course Outlines

Course Outline - CMPT 475 - Software Engineering II



Catalog Number









2014 Summer (1144)

Software Engineering II

Herbert Tsang   

Vancouver Campus

Calendar Objective/Description

Students will study in-depth the techniques, tools and standards needed in the management of software development. Topics will include software process and quality standards, life cycle models, requirements specification issues, project estimation, planning and tracking, project management tools, team dynamics and management, configuration and change management techniques and tools, metrics, quality assurance and test techniques, professional and legal issues.

Instructor's Objectives

Software system design is a creative activity that calls for abstract models to systematically analyze and reason about requirements, design decisions and conformance criteria, making sure these are properly established and well understood prior to coding. Starting with software process methodologies, advanced abstraction principles and applied formal methods will be studied, emphasizing common concepts and structures of computational logic and discrete mathematics, and their application to requirements analysis, design specification and verification. Students will learn how to use modeling as an effective instrument for making software systems more reliable, the development process more predictable, and overall improve the quality of the resulting product. Besides, students will develop an understanding of the role of software testing, metrics and models for software quality engineering; they will evaluate contrasting methodologies and lifecycle models, explore estimation techniques and metric theory, and apprehend the role of industry standards for quality assurance.


CMPT 275 or 276 and 15 units of upper division courses. Recommended: co-op experience. Students with credit for CMPT 373 may not take this course for further credit.


  • Software system specification and design
  • Contrasting software process management methodologies
  • Requirements analysis, formal specification and design validation
  • Abstraction principles and formalization techniques
  • Rapid prototyping with Abstract State Machines
  • Software testing fundamentals; Managing testing
  • Metrics, models and standards for quality assurance


To be discussed the first week of classes

Students must attain an overall passing grade on the weighted average of exams in the course in order to obtain a clear pass (C- or better).

Reference Books

  • Software Engineering, 9th Edition, Ian Sommerville, Addison-Wesley, 2010, 9780137035151, General reference to basic software engineering principles
  • Abstract State Machines: A Method for High-Level System Design and Analysis, E. Börger and R. Stärk, Springer, 2007, 9783540007029, (9783642621161 - softcover reprint of first edition)
  • Testing Computer Software (2nd Edition), Cem Kaner, Jack Falk, and Hung Quoc Nguyan, John Wiley & Sons, 2009, 9780471358466

Academic Honesty Statement

Academic honesty plays a key role in our efforts to maintain a high standard of academic excellence and integrity. Students are advised that ALL acts of intellectual dishonesty will be handled in accordance with the SFU Academic Honesty and Student Conduct Policies ( ).

Data Last Updated: