Software Design and Analysis

Title: Software Design and Analysis Code: CSCI 2040U

Instructor: Jarek Szlichta, jaroslaw [dot] szlichta [at] uoit [dot] ca

Office hours: Tuesdays 2-3pm  (except reading week)

TA:  Guilherme Damasio, Guilherme.FetterDamasio [at] uoit [dot] ca

Spencer Bryson, Spencer.Bryson [at] uoit [dot] ca

TA office hours TBD (upon request)

Description and Course Outline: see Blackboard

Marking Scheme: Labs and Project 30% (10% + 20%),  Midterm : 20%, Final Midterm : 35%, Participation/Presentation: 15%.

Policies: Refer to following link. Refer to UOIT Faculty of Science academic policies

Required readings: 

Required: Applying UML and Patterns, Craig Larman – see the link on Blackboard

Optional: Introduction to Software Engineering Design: Processes, Principles and Patterns with UML2 – Christopher Fox

Lecture Notes (always check newest version of the slides):

1. Introduction  PDF

2. Inception, Requirements, Activity Diagrams PDF In-Class-Activities PDF

3. Use Cases PDF   In-Class-Activities PDF

4. Unified Process and Agile PDF

5. Domain Models PDF

6. Generalization PDF  In Class-Activities PDF

7. Interaction Diagrams PDF

8. Design Model PDF

9. State Diagrams PDF

10. Package Diagrams PDF

11. A journey in software development, or how to do what you want and get away with it (invited talk by Dmitri Shuralyov; Sourcegraph (previously Triggit), startups in California, also open source contributor) Link

11. Patterns PDF

12. More Patterns PDF

13.  UML Deployment and Persistence PDF

14. TDD and Refactoring PDF


Labs start in the week of 22nd of January.

Lab tasks will be posted on Blackboard


Any student who misses an examination  without a valid medical reason and documentation will receive zero for that examination/tutorial. Those with medical documentation will either be given a makeup exam/tutorial or will have the weight of the examination (final exam/midterm) added to the final exam.

  1. Midterm: Fundamentals (27th of Feb, Tue), Applications (1st of March, Thursday).
  2. Final Midterm: Fundamentals (3rd of April, Tue), Applications (5th of April, Thursday).
  3. Project part II deadline submission, Monday’s, Tuesday’s  and Wednesday’s lab group (6th of April, midnight), Friday’s lab group (9th of April, midnight).