Skip to Content »

Tech Life of Recht » UML and modelling techniques

 UML and modelling techniques

  • April 13th, 2007
  • 8:07 pm

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?

2 People had this to say...

Gravatar

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.

[...] 9:35 pm In relation to my post about UML, and my experiments with Haskell, I’ve realized that I jave a handicap, which I have no reason to believe isn’t also hindering a lot of other people. I started programming quite a few years ago (on my grandmothers C64, actually, at about the age of . Of course, it was not methodical or anything, and it more or less remained unstructured until I started at university. One of the first things we learned was object oriented modeling with UML. I’ve talked a little about UML, but actually object orientation turns out to be a more fundamental problem. Without any doubt, OO has helped me tremendously in the past, but I’ve realized that it’s also become a hindrance. Why? Quite simply because I can’t think of a problem without modeling it in OO terms. Some might see this as a force, which it probably is in some situations, but we live in times where language paradigms are getting mixed up – just look at Ruby and RoR, .NET 3.5 – and this means that us OO people might be getting a hard time utilizing the languages. Of course, working with something like Haskell only makes it worse, as it contains no objects at all. There are some concepts which can be mapped, but programs are structured and modeled differently. The OO thinking has proved to me to be the biggest problem with learning Haskell. Learning a new syntax, new apis, and so on, is not much trouble, but Thinking in Functions is. [...]

Want your say?

* Required fields. Your e-mail address will not be published on this site

You can use the following XHTML tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>