csc302h — engineering large software systems — winter 2014

required reading

much of the second half of this course is based on the book; The Agile Planning Horizon in Professional Software Development by Dr. David Penny. Dr. Penny was nice enough to grant us permission to use the first five chapters of his book in the course, free of charge!

the excerpt from the book can be downloaded here and is required reading for the remainder of the course.


schedule & slides

weekdatelecture slidesadditional readings
week 1 tuesday, january 7th lecture 0: introduction
thursday, january 9th lecture 1: modeling
week 2 tuesday, january 14th lecture 2: software architecture
thursday, january 16th lecture 3: reverse engineering & design discovery
week 3 tuesday, january 21st lecture 4: sequence & use case diagrams
thursday, january 23rd lecture 5: software development lifecycle
week 4 tuesday, january 28th lecture 6: risk management
thursday, january 30th lecture 7: requirements analysis
week 5 tuesday, february 4th lecture 8: from requirements to design
thursday, february 6th lecture 9: robustness analysis
week 6 tuesday, february 11th lecture 10: verification & validation
  • goodbye world! a presentation by Jim Meyering, maintainer of gnu coreutils, shows that all software, even entrenched legacy stuff like streams in c, can benefit from robustness analysis, v&v, and proper testing.
thursday, february 13th lecture 11: introduction to testing
*** reading week ***
week 7 tuesday, february 25th lecture 12: testing strategies
thursday, february 27th lecture 13: automated testing
week 8 tuesday, march 4th lecture 14: static analysis
thursday, march 6th lecture 15: quality
week 9 tuesday, march 11th lecture 16: software vendor environment
thursday, march 13th lecture 17: software development best practices
week 10 tuesday, march 18th lecture 18: planning
thursday, march 20th lecture 19: planning, continued...
week 11 tuesday, march 25th lecture 20: capacity constraint
thursday, march 27th lecture 21: effort estimation
week 12 tuesday, april 1st lecture 22: buffer — in case we're running behind schedule
thursday, april 3rd lecture 23: course review