CSC302: Engineering Large Software Systems

(Winter term 2012)


About the Course

This course is an introduction to the theory and practice of large-scale software system design, development, and deployment. Topics include project management; advanced UML; reverse engineering; requirements inspection; verification and validation; software architecture; performance modeling and analysis.

Note: This page is for Winter 2012. Web pages for older versions of the course have been archived:

General Course Handouts

Lecture Notes & Weekly Readings

(CC) Some Rights ReservedAll teaching materials on this website are available for use under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License, except where noted otherwise. Links to papers on the IEEE electronic library (marked ) are available only to subscribers. U of T has an institutional subscription, so these links should work from anywhere on campus. Please respect the copyrights on all material on this site.

Assignments and Exams

Note: All assignments will be based on an existing open source code base.

Peer review process: All term assignments are team assignments. For each of the assignments, everyone needs to also fill out the peer review form, to indicate your opinion of how each member of the team performed.

Assignment 1: Reverse Engineering and Design Recovery Assignment 2: Implemented Change Requests Assignment 3: Requirements Analysis for new features Assignment 4: Midterm Exam: Final exam:

Contact Details


Prof. Steve Easterbrook
web page:
phone: 978-3610 (please use only for emergencies)
Office: BA3259 (Bahen Center)
Office Hours: TBD