Engineering 9874 Software Design and Specification

Instructor Dr. D. K. Peters
Lectures Tu, Th 0900-1015 EN4033
Office hour Tu, Th 1330-1430 or by appointment
T.A. Pouria Shaker (e-mail: pouria)

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-1015 Examples/Handouts Suggested reading
1Tu 01.10 Introduction Info. sheet
2Th 01.12 Overview of Software Design & Development Bruegge & Dutoit Ch. 1, 3
3Tu 01.17
4Th 01.19 Requirements Capture Use cases: Template, ATM Transaction ATM Customer Sign-in ATM Withdraw Cash
5Tu 01.24 Class Design Bruegge & Dutoit Ch. 4, 5
6Th 01.26 CRC Template, Dots Main CRC
7Tu 01.31 Bruegge & Dutoit Ch. 6
We 02.01 Assignment 1
8Th 02.02
9Tu 02.07 Dots class diagram Poseidon: dots.zuml, PNG: DotsClassDiagram.png
10Th 02.09 Interactions dotsR1.zuml, TurnSequenceDiagram.png
Fr 02.10 Assignment 2
11Tu 02.14 Patterns Bruegge & Dutoit Ch. 8
12Th 02.16
Tu 02.21 Mid-term Break no lecture
13Th 02.23 Patterns (cont'd)
Fr 02.24 Assignment 3
14Tu 02.28 Inheritance & Delegation Soccer UML
15Th 03.02 Soccer interface code
16Tu 03.07
17Th 03.09 Frameworks Updated Soccer code and javadoc
Fr 03.10 Assignment 4
18Tu 03.14 Behaviour Specification: Statecharts Updated code (see the change log for a list of changes), Simulator jar, Team jar (jars updated 2005.04.05 00:08) (see these instructions for how to use these).
19Th 03.16 Constraint Specification: OCL Network layer, SCORE Protocol Bruegge & Dutoit Ch. 9, Also Warmer & Kleppe.
20Tu 03.21
21Th 03.23
22Tu 03.28 University OCL files (zip)
23Th 03.30 Verification
Fr 03.31 Assignment 5
24Tu 04.04 Testing with JUnit Simulator model tester, and updated jars Simulator jar, Team jar (see the change log).
25Th 04.06 Review 2005 Final exam (with whitespace removed), Formula sheet for exam Updated code Simulator jar, Team jar, Simulator tester (revised 2006.04.07 0900)
Fr 04.07 Assignment 6


The following are useful books for this course:

  1. 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
  2. Martin Fowler, UML Distilled: A Brief guide to the Standard Object Modeling Language, 3rd edition, Addison-Wesley 2004. ISBN: 0-321-19368-7.
  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. 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
  5. 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.


Final Exam50%

Note: Assignments will not all be of equal value.

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
What's Wrong with Use Cases
These are some useful starting points for all kinds of information about use cases.
Poseidon for UML
Visual Paradigm
A couple of UML tools that are compeditors for Rational Rose. Both of these offer free 'community 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
Steps to RMI
Helpful tips from Dr. Norvell

back to Dennis Peters' homepage

Last modified: Fri 2006.04.07 at 09:01 NDT by Dennis Peters