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 material:
      • [http://www.objectcentral.com/oobook/oobook.htm Essense of Object Oriented Programming] Several chapters of this book by Wampler are available online. Chapter 2 is a very good overview of object-oriented programming.

      • [http://www.csc.calpoly.edu/~dbutler/tutorials/winter96/crc_b/ Object-Oriented Analysis and Design using CRC Cards] CRC (Control, Responsibilities, and Collaborators) cards are an important tool for identifying and defining the classes you need for your program. They are an excellent low-tech method requiring only index cards.

    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