SSOFTENG 310 focuses on the maintenance and evolution of software products. Software maintenance activities represent a substantial proportion of the development effort undertaken over the lifetime of a software system. Through this course, we will explore the principles and techniques of software maintenance, both well-established and emerging.
Part 1: Introduction to software maintenance and evolution.
The first part of the course will introduce software evolution and maintenance. We will cover various software development practices, techniques, and tools to help build good quality applications that are easier to comprehend, maintain, reuse, and evolve.
Coursework for this part will consist of: contributing code to a software project with other contributors, identifying and preventing code quality and maintainability related issues, managing dependencies, performing code reviews, and writing a reflection essay on continuous code quality control.
Part 2: Working with legacy code.
In part two of the course, we will explore the challenges of maintaining a preexisting codebase. The topics covered will include, legacy code, technical debt, refactoring, debugging, and user-generated requirements.
Students will experience working with legacy code first-hand, as they are given an existing codebase, and will be required to maintain and evolve the product, through the second half of the course.