CSC444F — Software Engineering

Professional Software Development

Prof. David A. Penny
Lectures: Mondays (Starting Sep.11) Bahen 1103, 7:10pm - 9:00pm
Office Hours: Mondays after lectures at 9:00pm

Course Overview

This course will teach you how to setup and run a software organization or project that is capable of consistently delivering high quality software on predictable dates.

Topics include advanced uses of source code control, defect and feature tracking, reproducible automated builds, automated regression testing, release planning and tracking, feature specifications, architectural control, effort tracking, process control, and business planning. These are the core practices used in commercial software development.


Prof. Penny is an Adjunct Professor with the Department of Computer Science (cross-appointed to EE) at UofT. He has spent over 20 years in various individual contributor, management, and contractor roles within software development organizations including IBM Canada, Algorithmics, Annuity Systems, Electronics Workbench, and Ceryx where he is currently CIO.


The textbook for the course is a 352 page manuscript written by Prof. Penny that will be available for sale before and after the lectures at a cost of $40 cash per copy.


Assignment 115%Self-Aware Programming
Assignment 215%Release Planning
Midterm30%All lecture material to-date, closed book, no aids
Final Examination40%All lecture and practicum material, closed book, no aids
Assignments handed late will incur a late penalty of 20% absolute. Assignments will not be accepted more than 1 week late.


Sep.11 Top 10, planning (ch.1,2) 
Sep.18 Release planning (ch.3,4) 
Sep.25 Capacity Constraint (ch.5,A,C)Assignment 1 out
Oct.2Torsten - LifecyclesStochastic Capacity Constraint (ch.6,B,C) 
Oct.16Gennady - Software ToolsReleases, Versions (ch.7,8)Assignment 1 due
Oct.23 Source Control (ch.9)Midterm (7:10-8:00pm BA1103) - Lecture to follow
Oct.30Jocelyn - Design By ContractBuilds, Testing (ch.10)Assignment 2 out
Nov.6Sotirios - Ant and JUnitDefect and Feature Tracking (ch.11,12)Assignment 2 prelim release plan due
Nov.13Torsten - Tracking/SCC ToolsProcess Control (ch.13) 
Nov.20Jocelyn - Application ProfilingArchitectural Clarity (ch.14) 
Nov.27Genady - RUPBusiness Aspects (ch.15,16) - Exam ReviewAssignment 2 due


  1. Introduction
  2. Planning
  3. Release Planning Overview
  4. Capacity Constraint, Deterministic Release Plan
  5. Stochastic Release Plan, Stochastic Release Plan
  6. Releases and Versions
  7. Source Control and Builds
  8. Notes on A1, midterm, and A2
  9. Testing
  10. Defect Tracking
  11. Feature Tracking
  12. Process Control
  13. Architecture Control
  14. OOA Example
  15. Business Planning