Welcome

Hi, my name is Andy Bulka and I am a software developer.  I love design patterns and UML.

I have written several design patterns that you can use in your projects.  For example why not implement Relationship Manager in your next project and never worry about wiring pointers, backpointers and one-to many-relationships in your code again!

This website also holds my blog on UML and pattern based software development.  These blog entries are often based on presentations that I have given to live audiences at various programmer enthusiast user groups or conferences.

The Patterns Movement

Capturing hard-won software design experience in the form of design patterns and architectural patterns is a noble cause that everyone can contribute to.  You can contribute by writing patterns and maybe even coming to a Plop patterns conference. Basically when you see a software development technique a few times, and see that it isn't yet documented - write it up in Pattern format and give it a name!  A pattern is more than just a "tip" or technique though - a pattern represents an abstract idea - that can be implemented in various ways depending on your circumstances.

There are a couple of things I would like to see happen in the patterns world.

First, there I think there needs to be a single authoritative repository of patterns. Yes an attempt has been made - a catalog book and and various websites - but nothing authoratative.  I'm starting a list of links here.

Secondly, it would be nice to have deep design pattern support in UML within all our favourite IDE's.  For example Netbeans has it all - coding, form design, UML and design pattern support - albiet not as integrated as it could be and not as polished as it could be.  On top of that we need the UML to be executable with the possibility of building software without code.  I muse a bit about this in my blog entry on software visualisation and my paper on design pattern tools.  Patterns at all levels need to be core visual building blocks of an IDE rather than a design ghost that floats around in the background of the code base.

My Design Patterns

Relationship Manager Pattern

A central mediating class which records all the one-to-one, one-to-many and many-to-many relationships between a group of selec...

Model Gui Mediator Pattern

The MGM pattern is a variation of MVC (model view controller) or MVP (Model View Presenter) but takes into account the use of mo...

Transformation Interface Pattern

The Transformation Interface is both a design pattern and an architectural pattern. It describes an interface or layer, which o...

Design Pattern Automation

As design patterns become more mainstream, various IDE’s (Integrated Development Environments) and UML modelling software env...

My Talks

See my blog page for details - note that I am transitioning these pages from another system so please be patient as I update this site - Andy, January 2009.

Products

If you would like me to run a design patterns course or consult on your next software design, please check out my product page.  There is also a python UML tool you might be interested in, plus references to products I have developed over the years esp. the worldclass argumentation visualisation software Rationale and bCisive.