7174
Comment:
|
7175
|
Deletions are marked like this. | Additions are marked like this. |
Line 86: | Line 86: |
{{{#!bibtex abstract=off usekeys=off keywords=off style=alpha | {{{##!bibtex abstract=off usekeys=off keywords=off style=alpha |
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
- [attachment:UMLintro_presentation.pdf Slides], for viewing on screen
- [attachment:UMLintro_handouts.pdf Handouts], for printing, with additional details
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
- Start thinking about how to model a product you designed, using UML diagrams.
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]
Lecture: Object oriented analysis and design (OOA & OOD) (07-03 15.45-17.30 HG 2.80)
- 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.
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]
- 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.
Q&A session (TBA)
Final deliverables
- Report of assignment 2 with UML diagrams.
- Report of assignment 4, with UML diagrams, 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]
[http://www.objectcentral.com/oobook/oobook.htm Essense of Object Oriented Programming]
[http://www.csc.calpoly.edu/~dbutler/tutorials/winter96/crc_b/ Object-Oriented Analysis and Design using CRC Cards]
References
{{{##!bibtex abstract=off usekeys=off keywords=off style=alpha
@BOOK{Buschmann+MeunierETAL-PattSoftArchVolu:96,
- author = {Buschmann, F. and Meunier, R. and Rohnert, H. and Sommerlad, P. and Stal, M.}, title = {Pattern-Oriented Software Architecture, Volume 1: A System of Patterns},
publisher = {John Wiley & Sons, Inc.}, year = 1996,
} @BOOK{Cooper-DesiPattjavaComp:98,
- author = {Cooper, J.W.}, title = {The Design Patterns java Companion}, publisher = {Addision-Wesley Design Patterns Series}, year = 1998,
note = {Free electronic copy available from \url{http://www.patterndepot.com/put/8/JavaPatterns.htm}},
}
@BOOK{Eckel-ThinJava:02,
- author = {Eckel, B.}, title = {Thinking in Java}, publisher = {Prentice Hall}, year = 2002, edition = {3rd},
note = {Free electronic copy available from \url{http://www.mindview.net/Books/TIJ/}},
}
@BOOK{Gamma+HelmETAL-DesiPattElemReus:95,
- author = {Gamma, e. and Helm, R. and Johnson, R. and Vlissides, J.}, title = {Design Patterns -- Elements of Reusable Object-oriented Software}, publisher = {Addison-Wesley}, year = 1995,
}
@book{BUSCHMANN:1996,
- author="Buschmann, F. and Meunier, R. and Rohnert, H. and Sommerlad, P. and Stal, M.", title="Pattern-Oriented Software Architecture, Volume 1: A System of Patterns",
publisher="John Wiley & Sons, Inc.", year=1996,
}
@BOOK{Schmidt+StalETAL-PattSoftArchVolu:00,
- author = {Schmidt, D.C. and Stal, M. and Rohnert, H. and Buschmann, F.}, title = {Pattern-Oriented Software Architecture, Volume 2: Patterns for Concurrent and Networked Objects},
publisher = {John Wiley & Sons}, year = 2000, edition = {1st},
}
}}}