TableOfContents

Owning a hammer doesn't make one an architect.

Introduction

So you have done Java A and even B. Congratulations. Have you also found that Java offers something that is more than a programming language? With this assignment, we will try to wrap up your knowledge about Java, or any other object-oriented programming language you know (C++, Object Pascal, Python, Ruby ...), to get the essence of object orientation, to turn yourself from a craftsman back to a designer: Use object orientation as a tool to slice the complex into the simple, and put them back again in a structured way.

Schedule

Week 1
  • Lecture: An introduction to UML (21-02 15.45-17.30 HG 2.80)
    • [attachment:UMLintro_presentation.pdf Slides], for viewing on screen
    • [attachment:UMLintro_handouts.pdf Handouts], for printing, with additional details
  • Assignment 1, to be finished in 2 weeks:
    Week 2
  • No lectures.
  • Continue Assignment 1.
  • Week 3
  • Lecture: Object oriented analysis and design (OOA & OOD) (07-03 15.45-17.30 HG 2.80)

  • Assignment 2, to be finished in 2 weeks:
    • Modeling (not programming!) a product designed by yourself, using use case diagrams, class diagrams, sequence diagrams and activity diagrams.
    • Reading materials (TBD)
    Week 4
  • Lecture: Design Patters I: Observer, Iterator, Singleton, Factory ... (14-02 15.45-17.30 HG 2.80)
  • Continue Assignment 2.
  • Assignment 3, to be finished in 2 weeks:
    • Reading: [http://www.patterndepot.com/put/8/JavaPatterns.htm The Design Patterns java Companion]

    • You may also refer to the following famous books (if you are lucky, you may grab a copy from the university library):
      • GoF: [#Gamma+HelmETAL-DesiPattElemReus:95 Design Patterns -- Elements of Reusable Object-oriented Software]

      • POSA 1: [#BUSCHMANN:1996 Pattern-Oriented Software Architecture, Volume 1: A System of Patterns]

      • POSA 2: [#Schmidt+StalETAL-PattSoftArchVolu:00 Pattern-Oriented Software Architecture, Volume 2: Patterns for Concurrent and Networked Objects]

    Week 5
  • No lectures.
  • Presentation: Everybody gets 5 minutes to present the results of Assignment 2. (21-03 15.45-17.30 HG 2.80)
  • Continue Assignment 3.
  • Assignment 4, to be finished in 3 weeks
    • Redesign the application you did for Java B, using object-oriented analysis and design approach.
    • Implement it.
    • At least 3 design patterns should be used in the application and identified in the report.
    Week 6
  • No Lectures
  • Contine Assignment 4
  • Week 7
  • Lecture: Design Patterns II: MVC, PAC (03-04 15.45-17.30 HG 2.80)
  • Continue Assignment 4
  • Week 8
  • Q&A session (TBA)

  • Deadline of reports (TBA)
  • Final deliverables

    Online Resources

    References