SENG 371

Software Evolution

Units: 1.5

Hours: 3-2

Introduces problems and solutions of long-term software maintenance/evolution and large-scale, long-lived software systems. Topics include software engineering techniques for programming-in-the-large, programming-in-the-many, legacy software systems, software architecture, software evolution, software maintenance, reverse engineering, program understanding, software visualization, advanced issues in object-oriented programming, design patterns, antipatterns, and client-server computing. Culminates in a team project.


  • Credit will be granted for only one of SENG 371, SENG 420.


Undergraduate course in Software Engineering offered by the Software Engineering in the Faculty of Engineering.

Fall 2017 Spring 2018 Summer 2018

Note that not all courses are offered in every term. If a course is not offered, the schedule page will alert you that "No classes were found that meet your search criteria."