The Syllabus and Lecture Notes
- (This course assumes experience with Java. Here is the
specific Java background expected)
- Course Overview [(UML Distilled 2; HFOOA&D 10)]
- Warm-up topic: Java GUI programming with Swing [Sun Tutorial, TIJ Ch 14]
- (Self-study: The Unified Modeling Language (UML)
[HFOOA&D pp.577,3,180-185,206-207,296-297,567-569, etc; UML Distilled
Chapters 1,3-12,14; Ambler
UML Intro])
- Requirements [HFOOA&D 2,3,6,10p488-510]
- Use-cases [HFOOA&D 2,3; UML Distilled Chapter 3?]
- Initial architecture modeling [HFOOA&D 6]
- Domain modeling [HFOOA&D 6]
- Object-Oriented Design [HFOOA&D
4,5,7, 10p510-515]
- Domain analysis to discover initial classes [HFOOA&D 4, 7]
- Use-case elaboration [HFOOA&D 4,5]
- Design Principles [HFOOA&D 4,5,8]
- Software Architecture design: Packages, components,
deployment
- Implementation, Testing and Iterating [HFOOA&D
9, 10p515-end]
- Planning iterations and releases [HFOOA&D 9,10]
- Advanced Java Coding [Bloch Effective Java book]
- (self-study: CASE Tools [OOSE
CASE tools resources page])
- Testing: principles and unit testing [HFOOA&D 9,
Appendix I #8]
- Refactoring [Fowler Refactoring book]
- Design
Patterns [HF Design Patterns book]
Notes
- Readings are listed [in brackets]. Textbooks referenced above
are detailed on the course textbooks page.
- The lecture notes are linked above. The notes may not be up-to-date
until around the time when that topic is
covered in lecture. During the covering of that topic, the lecture
notes will likely be being updated and extended.
- The dateline maps the syllabus
topics onto class sessions, and also gives dates assignments are
given out and are due.