Home MGM pattern TI Transformation Interface RM Relationship Manager The Road to Bridge Pattern Automation in UML Training Courses


Andy's Published Patterns

These three patterns are substantial works which have been presented at KoalaPlop (Asian Pacific Conference on Pattern Languages of Programs) in both 2000 and 2001.  My shepherds were Jim Coplien (MGM pattern), Ali Arsanjani (TI pattern) and James Noble (RM pattern).   These final versions incorporate comments and reviews from the attendees of KoalaPlop 2000 and 2001.

Here are the patterns in pdf format, which looks more professional than the html pages offered here.

Model Gui Mediator.pdf
Relationship Manager.pdf
Transformation Interface.pdf

Design Pattern Automation.pdf (not available in HTML format yet)
Note: There is an update to this talk entitled "Design Pattern support in UML tools - part II" which I gave on October 2006 to the Melbourne Patterns Group, Australia - click here for the powerpoint plus a video of some of the demo.

Design Pattern Courses - for your company

Andy can deliver a design patterns course to you programming team on your company's premises.  Check out the details here.

Latest download - Relationship Manager for .NET

I have implemented RM Relationship Manager for .NET using the Boo language (porting it from Python). See it at  RM for .NET

Andy's Latest Patterns Talk 

"The road to Bridge" - presented at the Melbourne Patterns Group, 23 March 2005.  

A story of how we get from patterns like the Interface pattern to Factory, Strategy, Proxy, Adapter, and finally to Bridge.  Its all about being able to swap implementations.

The Patterns Movement

I'm a big fan of patterns and UML diagrams.  Capturing hard-won software design experience in the form of design patterns and architecture patterns is a noble cause that everyone can contribute to.  You can contribute by writing patterns and coming to the Plop patterns conferences.

I believe the most urgent work is now to find and document all the patterns in an existing, substantial and mature class library / langauge IDE framework.  The Java, Python and Delphi class libraries are all worthy candidates.  Because the class libraries we are starting with are already relatively complete, I contend that any resulting collection of patterns would therefore form a complete pattern language - a rare (some say impossible) thing in the patterns world.

Automating patterns

cycleAll1.gif (11801 bytes)

I know, I know, patterns are for the designer's brain, being more abstract than any particular implementation that an IDE software may provide.  Nevertheless, why not automate particluar implementations of patterns - why not?

The above animated GIF is from ModelMaker, a Delphi UML modelling tool that has automated patterns to a degree I don't think anyone else has achieved.  Modelmaker actively maintains patterns - so that when classes change, the pattern adapts by renaming or adding methods etc..  Very cool.  You can delete patterns from your UML model and they clean up after themselves.

TogetherJ has similar technology.  For example you can drag a line from one class to another, and this invokes a wizard which asks what sort of vector or list class to use to implement this association - then generates the code for you. 

I look forward to the day when patterns templates and refactoring editors are built into all IDE's.

Then of course I want to plug the patterns together like LEGO blocks... When will this dream come true?  Perhaps LEGO is not the best metaphor.  Multidimensional aspect oriented, role based LEGO? 

Design Pattern Automation.pdf (not available in HTML format yet)

Revised: 26 Jan 2009 00:14:36 -0600.