LevSelector.com New York
home > Design Patterns

Design Patterns

- intro & common patterns
- algorithms
- UML

 
intro & common patterns home - top of the page -
History:
1970-s: "A Pattern Language" , by C. Alexander, et al. , 1977 (available at amazon.com)
1980-s: Hillside Group - Beck, Ward, Coplien, Booch, Kerth, Johnson, etc.
1995 - the famous book - "Design Patterns: Elements of Reusable Object Oriented Software", 1995, by the so-called Gang of Four (GoF), that is Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides - see their photo:
Common patterns - examples in Java:
A 3-volume series "Patterns in Java" by Mark Grand contains approx. 135 patterns with Java code examples on CDs.
See patterns descriptions on Mark Grand's home page which has outlines of all 3 volumes:
  • vol1 - basic 41 patterns
  • vol2 - 50 patterns that apply to phases of the software development cycle other than design
  • vol3 - 44 patterns for the enterprise

Here is a one-page compilation of all 3 outlines.


 

http://g.oswego.edu/dl/pd-FAQ/pd-FAQ.html  -  FAQ
http://hillside.net/patterns/patterns.html - Patterns Page

Here is a list of some common patterns:
Model-View Controller | The Clone Idiom | Prototype | Factory | Singleton | Abstract Factory | Bridge | Proxy | Iterator | Composite | Flyweight | Interpreter | Visitor | Chain of Responsibility | Memento | Command | All of Me | State | Decorator | Observer | Adapter | Facade | Template | Mediator | Strategy

See longer list with definitions and examples here:
http://wiki.cs.uiuc.edu/PatternStories/DesignPatterns
http://hillside.net/patterns/catalogs/
 

gee.cs.oswego.edu/dl/cpj/ - Concurrent Programming in Java : Design principles and patterns. Online Supplement to the book.
g.oswego.edu/dl/ca/ - Christopher Alexander: An Introduction for Object-Oriented Designers
wwwseg.cs.hut.fi/tik-76.278/group6/awtpat.html - Patterns in Java AWT
www.industriallogic.com/papers/learning.html - A Learning Guide To Design Patterns
www.industriallogic.com/patterns/index.html - The Design Patterns Study Group of New York City
www.swtech.com/dpattern/ - very good site
www.swtech.com/dpattern/books/ - list of books (links to amazon.com)
www.meurrens.org/ip-Links/java/designPatterns/books.html - another list of books (goes back to 1977 C.Alexander).
www.akumiitti.fi/~orava/TKK/patterns/ - Design Patterns and the Java AWT - article discusses prototype application
www.alumni.caltech.edu/~croft/research/java/pattern/ - Design Patterns in Java : Conservator, Observer, Singleton,  Waiter.
www.hillside.net//patterns/books/ - list of books with short descriptions
www.irisa.fr/prive/jezequel/DesignPatterns/ - Introduction to "Design Patterns and Contracts" (Book)
www.patterndepot.com/put/8/JavaPatterns.htm - The "Design Patterns Java Companion" by James W. Cooper
(Download the entire book as a zipped PDF file, or download all of the Java example code)
www.cs.wustl.edu/~schmidt/patterns-ace.html - Patterns for Concurrent, Parallel, and Distributed Systems

 
Algorithms home - top of the page -

www.pads.uwaterloo.ca/Bruno.Preiss/books/opus5/html/book.html - Data Structures and Algorithms with Object-Oriented Design Patterns in Java (by Bruno R. Preiss,, Canada)

 
UML home - top of the page -
UML (Unified Modeling Language) - is used to develop object-oriented programs.
UML was conceived by Rational and its chief scientist Grady Booch (who soon joined forces with Ivar Jacobson and Jim Rumbaugh).
UML is an accepted standard of the Object Management Group (OMG), home of CORBA ( http://www.omg.org/ ).
UML specifies how to describe class (of objects), object, association, responsibility, activity, interface, use case, package, sequence, collaboration, and state.

FAQs:
www.rational.com/uml/gstart/faq.jtmpl - quick start FAQ
www.microgold.com/Stage/UML_FAQ.html - old faq
www.uml-zone.com/umlfaq.asp -
www4.informatik.tu-muenchen.de/papers/KER99.html -
coweb.cc.gatech.edu/cs2340/255 -
www.jguru.com/jguru/faq/faqpage.jsp?name=UML -
www.cs.ukc.ac.uk/pubs/1999/977/ -

Links:
www.dmoz.org/Computers/Software/Object_Oriented/Methodologies/UML/ - UML on "Open Directory"
www.cetus-links.org/oo_uml.html - many links, structured by subject
www.google.com/search?q=UML&cat=gwd%2FTop%2FComputers - UML on Google

Books (UML):
The definitive guides are from Grady Booch, Jim Rumbaugh, and Ivar Jacobson (The Addison-Wesley Object Technology Series) :
  The Unified Modeling Language User Guide
  The Unified Modeling Language Reference Manual
  Unified Software Development Process

UML Distilled, Second Edition: A Brief Guide to the Standard Object Modeling Language (The Addison-Wesley Object Technology Series) by Martin Fowler, Kendall Scott (Contributor), Grady Booch
Fundamentals of Object-Oriented Design in UML (The Addison-Wesley Object Technology Series) by Meilir Page-Jones, Larry L. Constantine
Applying UML and Patterns - The Complete Video Course (Boxed Set) [NTSC] by Craig Larman
www.softpro.com/softpro/object-oriented-uml.html - books about UML.
www.rosearchitect.com/ - Rose Architect - magazine (free)
www.rational.com/uml/gstart/online.jtmpl - online tutorials

More Links:
www.iconixsw.com/Spec_Sheets/UnifiedOM.html -  A Unified Object Modeling Approach - includes a brief but illustrated introduction to UML.
stud2.tuwien.ac.at/~e8726711/ummw1.html - this article has relatively full explanation of UML.
www.rational.com/uml - A Unified Modeling Language Resource Center is available at Rational Software.
www.rational.com/uml/resources/documentation/index.jtmpl- documentation
www.platinum.com/corp/uml/uml.htm - Computer Associates UML Center
www.ics.uci.edu/pub/arch/uml/uml_books_and_tools.html - UML books and tools
www.objectsbydesign.com/ - Objects by Design (tools, etc.)
www.qoses.com/ - QOSES - portal
www.sdmagazine.com/uml/ - Software Development Online
www.objectnews.com/uml.htm - Object News newsletter

Tools:
www.rational.com/products/rose/index.jtmpl - Rational Rose - the world's leading visual modeling tool.
www.togethersoft.com/together/togetherJ.html - TogetherJ from TogetherSoft
www.cetus-links.org/oo_ooa_ood_tools.html - lists many tools
www.magicdraw.com - MagicDraw is a visual UML modeling and CASE (computer-aided software engineering) tool with teamwork support.
www.ArgoUML.org - open source
www.gentleware.com/products/index.php3 - commercial version of ArgoUML called Poseidon for UML . The community addition is free which includes all UML diagrams and all implemented diagram elements. You can save and load projects, generate Java code, reverse engineer from Java code and much more. It offers everything ArgoUML offers plus some extra features like undo/redo, drag-and-drop, copy/cut/paste and a better stability.
www.sparxsystems.com.au/ea_downloads.htm - a tool called Enterprise Architect.  It is relatively cheap(less than $200) and fullfills our needs which consist mostly of documenting Use Cases, Class Diagrams and Sequence Diagrams.  It also does code generation.