The Syllabus and Lecture Notes

  1. (This course assumes experience with Java. Here is the specific Java background expected)
  2. Course Overview [(UML Distilled 2; HFOOA&D 10)]
  3. Warm-up topic: Java GUI programming with Swing [Sun Tutorial, TIJ Ch 14]
  4. (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])
  5. 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]
  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
  7. 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]
  8. Refactoring [Fowler Refactoring book]
  9. Design Patterns [HF Design Patterns book]

Notes