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
- Assignment 1, to be finished in 1 week:
Read online: [http://odl-skopje.etf.ukim.edu.mk/uml-help/ UML Tutorial in 7 days] by Slobodan Kalajdziski; You may also download a [attachment:UMLTutorialIn7Days.zip zipped copy] from here for reading offline.
Read in the train: [http://www3.software.ibm.com/ibmdl/pub/software/rational/web/whitepapers/2003/intro_rdn.pdf Introduction to the Unified Modeling Language] (PDF) by Terry Quatrani; Also a local copy [attachment:intro_rdn.pdf here].
Refreshing your Java Objects: [http://www.mindview.net/Books/TIJ/ Thinking in Java]. Local copies: [attachment:TIJ3.ZIP Zipped HTML], [attachment:TIJ3.PDF PDF]
- Chapter 1: introduction to Objects (skip "Java and the Internet", "Why Java succeeds" and "Java vs C++")
- Chapter 16: Analysis and Design
Practice UML diagrams using [http://w3.tue.nl/en/services/dienst_ict/organisatie/groepen/wins/campus_software/ms_visio/ Microsoft Visio 2003] (available as a campus software package). You may also want UML 2.0 stencils from [http://www.phruby.com/stencildownload.html Pavel Hruby]
- Week 2
Lecture: Object oriented analysis and design (OOA & OOD)
- 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.
- Week 3
- Lecture: Design Patters I: Observer, Iterator, Singleton, Factory ...
- 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 4
- Presentation: Everybody gets 5 minutes to present the results of Assignment 2.
- Continue Assignment 3.
- Week 5
- Lecture: Design Patterns II: MVC, PAC
- Assignment 4, to be finished in 2 weeks
Redesign your game from Java A&B, using object-oriented analysis and design approach.
- At least 3 design patterns should be used in the game and identified in the report.
- Week 6
- work. work.
Final deliverables
- Report of assignment 2.
- Report of assignment 4, with source code and executable.
Online Resources
[http://www.uml.org/ Official OMG UML site], but do not try to read the entire UML specification.
[http://bdn.borland.com/article/0,1410,31863,00.html Borland's UML Tutorial]
[http://odl-skopje.etf.ukim.edu.mk/uml-help/ UML Totorial in 7 days] by Slobodan Kalajdziski;
[http://www.holub.com/goodies/uml/ Allen Holub's UML Quick Reference]
[http://www.phruby.com/stencildownload.html UML 2.0 stencils for Visio 2003]