Engineering 9874 Software Design and Specification

Instructor Dr. D. K. Peters
Lectures M, W, F 0900-0950 EN4033
Office hour W 1500-1600, F 1400-1500 or by appointment
T.A. Liangjie He
Office: ER4054
Office Tel No: 737-8843

Outline | Lecture schedule | Evaluation | Web Submit | Links | FAQ

Detailed Lecture Schedule and Examples

The following is the tentative schedule of lectures and assignments for the term. Lecture topics may change slightly as the term progresses. Click an assignment to view it. Click on a topic to view printable form (Portable Document Format) of the class notes. These may not always be available in advance of the lectures and are not to be considered a substitute for attending class.

If you need information about the file formats, or instructions for downloading them check here.

#Date Deadline Lecture 0900-0950 Examples/Handouts Suggested reading
1M 01.07 Introduction Info. sheet
2W 01.09 Overview of Software Design & Development
3F 01.11
4M 01.14
5W 01.16 Requirements capture
6F 01.18 Use cases: Template, ATM Transaction, ATM Customer Sign-in, ATM Withdraw Cash
7M 01.21 Class Design
8W 01.23
9F 01.25
10M 01.28
11W 01.30 Assignment 1 Interactions
12F 02.01
13M 02.04 Patterns
14W 02.06
15F 02.08
16M 02.11 Project team selection
17W 02.13 Assignment 2 Review
18F 02.15 Mid-term Test
M 02.18 Mid-term Break, no lectures How to Run SOCCER
W 02.20
19F 02.22 Inheritance & Delegation
20M 02.25
21W 02.27
22F 02.29 Frameworks
23M 03.03 Behaviour Specification: Statecharts Example Soccer model, view, team: soccerDpetersOb.jar
24W 03.05
25F 03.07 Soccer Tester
26M 03.10 Alarm Clock statechart
Revised ISimulatorNet, javadoc.
27W 03.12 Constraint Specification: OCL University model,
Airline model
28F 03.14 Project part 1
29M 03.17
30W 03.19 Verification
F 03.21 Good Friday, no lecture
31M 03.24 Verification (cont'd)
32W 03.26 Updated soccer model, view, team: soccerDpetersOb.jar
33F 03.28
34M 03.31 Project part 2 Testing with JUnit 2005 Final, 2006 Final
35W 04.02
36F 04.04 Review 2005 Final solutions, 2006 Final solutions
Mid-term solutions
Formula sheet


The following are useful books for this course. The first three are the main books:

  1. Robert C. Martin. Agile Software Development: Principles, Patterns, and Practices. Prentice-Hall, 2003. ISBN: 0-13-597444-5
  2. Bernd Bruegge and Allen H. Dutoit, Object-Oriented Software Engieering: Using UML, Patterns, and Java, 2nd edition, Pearson Prentice-Hall 2004. ISBN: 0-13-0471100
  3. Jos Warmer and Anneke Kleppe, Object Constraint Language: Getting Your Models Ready for MDA, 2nd edition, Addison-Wesley 2003. ISBN: 0-321-17936-6.
  4. Martin Fowler, UML Distilled: A Brief guide to the Standard Object Modeling Language, 3rd edition, Addison-Wesley 2004. ISBN: 0-321-19368-7.
  5. Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley 1994. ISBN: 0-201-63361-2
  6. David Flanagan, Java in a Nutshell, 5th edition, O'Reilly & Associates, 2005, ISBN: 0-59600-773-6.
The first one I've listed as the textbook. The others are useful references.


Assignments (2)10%
Project (2 parts)30%
Mid-term test10%
Final Exam50%

Related Links

How to Write JavaDoc Comments
A good introduction to properly commenting your code so that javadoc produces useful results. I strongly encourage you to follow it.
Java Traps for C++ Programers
Dr. Norvell's tips that will be helpful if you're more familiar with C++ than Java.
Klasse Objecten OCL Centre
Some good information about OCL and a tool for writing it.
The Java Tutorial at Sun
This is a great place to learn what you need to know about programming in Java.
Usecases dot org
Use Case Zone
These are some useful starting points for all kinds of information about use cases.
Poseidon for UML and Apollo for Eclipse
Visual Paradigm
Some UML tools that are compeditors for Rational Rose. All of these offer free editions.
Creating a GUI with JFC/Swing
This trail in the Java tutorial outlines about all you need to know about how to make a GUI work in Java/Swing.
Some Tips on setting up and using Eclipse
These are howto tips from Prof. M. P. Bruce-Lockhart. You may well find them helpful.
Design Patterns Wiki
A page in Wiki Wiki Web that is a great starting point for information on patterns.
Anti Patterns
Patterns about how not to do something.
Framework Definition
Another Wiki page, this time as a starting point for reading about frameworks

back to Dennis Peters' homepage

Last modified: $Date: 2008-09-29 09:36:11 -0230 (Mon, 29 Sep 2008) $ ($Revision: 501 $) by $Author: dpeters $