- intro & common patterns
|intro & common patterns||home - top of the page - email|
• 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
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://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:
- 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 - email|
- Data Structures and Algorithms with Object-Oriented Design Patterns in
Java (by Bruno R. Preiss,, Canada)
|UML||home - top of the page - email|
• 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/ -
• 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
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
• 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
• 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.