| Date | Notes and Exercises | Reading
Assignments & Tests |
Labs and Projects (lab
template) |
| Week 1 September 07 |
Course Introduction Why OO? Why UML? |
Selic, B., "UML 2.0:
Exploiting Abstraction and Automation" , SD Times, Issue 98, 15
March
2004. (print
version) |
Familiarization with
the Eclipse IDE and the Java
Development Environment
|
| Week 2 September 13 |
The Object
Model |
D. L. Parnas, "On the Criteria to be Used in
Decomposing Systems into Modules", Communications of the ACM, Vol.
15, No. 2, 1972. |
Lab 1 - Review of Java
Language Basics |
| Week 3 September 20 |
Representing
Classes , Objects & Relationships Exercise |
Lab 2 - Modification
of a Java Program |
|
| Week 4 September 27 |
Managing & Representing Requirements (Use Case template) |
|
Lab 3 - Introduction
to Object Collaboration |
| Week 5 October 04 |
Analysis
Concepts: |
A. Cockburn, "An
Open Letter to Object Technology Newcomers" Assignment in OO Concepts
-
(due Friday October 22 @ 1630 hours) |
Lab 4 - Introduction
to Inheritance / Interfaces |
| Week 6 October 11 |
Modeling Interactions |
Lab 5 - Association
Relationships (week 1 of 2) |
|
| Week 7 October 18 |
Design
Concepts: Modeling Classes |
Lab 5 - Association Relationships (week 2 of 2) | |
| Week 8 October 25 |
Modeling Behaviour | Design
Project (week
1 of 2) |
|
| Week 9 November 01 |
Midterm - 01 November @ 1000 hours
|
Design Project (week 2 of 2) | |
| Week 10 November 08 |
Development
Processes Conventional v Evolutionary Unified Process |
P. Kruchten, "Going
Over the Waterfall with the RUP" |
Lab 6 - From UML Diagram to Code |
| Week 11 November 15 |
Patterns and Anti-Patterns | Lab 7 - Implementation Using a Framework (week 1 of 3) | |
| Week 12 November 22 |
Student
Design Reviews |
Lab
7 - Implementation
Using a Framework (week 2 of 3) |
|
| Week 13 November 29 |
"The Bug Wars" | Lab 7 - Implementation Using a Framework (week 3 of 3) |
The
primary objectives of this course are:
At
the end of the course, students will be able to analyze
the requirements of small systems and to design and implement an
object-oriented solution.
For
RMC students, follow your standard course enrollment procedures. For
visiting (Queen's) students, you will need to complete a Queen's-RMC
Visiting Graduate
Student Application, get the appropriate Queen's signatures and submit
it to me for initialing and processing at RMC.
Course enrollment will normally be capped at 24 students.
Classes
will
be held on Tuesdays 1000-1300 hours in Sawyer 5003A. For visiting
(Queen's) students: directions to
RMC/ECE.
Everyone
is expected to be in class. However, if someone is to come and
ask to be
excused from a specific class I will in most every case excuse him/her.
Assisted labs will
be held on Tuesdays from 0800-1000 hours. Attendance at these lab
sessions is optional; lab work can be conducted on any computer with a
Java development environment. Labs should be conducted in pairs
unless absolutely impractical - practice pair programming!
Lab reports are
due
the day
the next lab begins (eg. If Lab 2 is scheduled for 14 Sep and Lab 3 is
scheduled for 21 Sep; the lab report for Lab 2 is due before class on
21 Sep). Marks will be deducted
for poor quality/late reports. You are required to produce a quality
engineering lab
report. The report will be well
formatted and presented. Code listings
will be well formatted, and documented.
You are required to provide a description of your lab
setup/configuration, code/data listings, and a general discussion of
the
conduct of the lab and your findings, in addition to any specific
discussion
required of a particular lab.
Note: The discussion part of the lab is
important. This is where you tell me
what you learned and why it is important.
Lab work areas are to be left
clean at the close of every lab period. You are not to bring food or beverages into
the lab areas. The configuration
of lab computers is NOT to be altered.
MIDTERM
The proposed time frame for the midterm is during week
8. The midterm will include all classes up to and including
week 7 as well as the first 5 labs.
MARKING
Course work will be weighted as follows, out of 100 marks:
The main textbooks for this course:
Another useful reference is any good Java book (for example):