When I started at university in ‘98, one of the first things I learned was UML modelling and object orientation. If I’m not very wrong the same course, with the same book, is still used. While UML is fine for some things, it just doesn’t handle all cases very well.
After I started at Trifork, I learned about an extension of UML: Color Modelling by Peter Coad. It’s a nice extension, which moves focus from notation to domain modelling.
However, very few people know about color modelling, and even those who do see it as a little “old skool” – I don’t quite know why, but that’s also how I feel about it.
And that’s about it. There are lots of UML tools, and new ones are created all the time, but there seems to be no progress in modelling itself – almost nobody questions why UML is the one and only modelling language we have, even though it doesn’t scale, it tries to have a strict notation, although most developers use UML for sketching, it makes users focus on technical details, and much more.
Now, I don’t pretend that I have a better solution, but isn’t it a little strange that everything has stopped with UML?
Personally, I’d like a next generation modelling technique which
- focuses on the domain, not the notation
- scales better. Who has ever tried making a complete UML model of a large system, and actually found it useful?
- incorporates some of the new stuff out there: Web 2.0, SOA, and so on
- makes it possible to express system aspects like security, auditing, and so on
- has less focus on objects – we are, after all, living in times where functional programming is on the move, just try modelling a Haskell application with UML
The question now is: What to do? Is there already something out there, which I’ve missed completely?




You should have a look at BPMN. Altough it’s not there to model all the applications, it’s really doing a great job at designing business process. More, it’s a very good way to design web services and SOA, while being able to orchestrate the services.
The problem with UML, for me, is that it tries to model all the applications possible.
It doesn’t try to solve a problem.
I work for Intalio, and we have a designer that does that.
Our designer is based on the Eclipse STP BPMN modeler, on which we contribute very actively.
You can check it out here.