UML is a standard… Which one?

Nice live discussion with @edseidewitz last week, with some good wine! One subject was UML: past, present and future. UML became a standard: what does that mean?

Let’s see OMG’s web site: “The Unified Modeling Language™ – UML – is OMG’s most-used specification, and the way the world models not only application structure, behavior, and architecture, but also business process and data structure.” Hem. That’s a lot of things for such a small word: a word for a world! Let’s shrink it: UML = the common language to use when you model something.

Say I want to model something. Do I first need to go onto OMG’s website then download the specifications and read them? For sure not. I will better get some UML modeler and play with it. So, which are the most used (= standard) UML modelers? At this time, in the model-usage-oriented-community, there are three of them: MagicDraw, RSA and Sparx’s Enterprise Architect.

First contact: there are tough! As they (especially MD and RSA) try to support the whole specification, and also neighboring specifications as SysML, BPMN and so on, the first contact may be scary. Let’s focus on the UML part. Still tough: in UML 2.x there are 14 diagrams! I don’t speak about the countless added value modeler functionalities like checking model consistency and so on.

First thing: such an amount of underlying capacity and helping functionality is probably useful in some cases, but rarely all together I guess. And even so, how much IT people actually use UML in IT project? (those we pretend to use it don’t count ;D) 10%? 20%? If we want to leverage modeling usage, should’nt we target the other 80%?

Regarding the IT community the main UML asset is… The UML name! And please, don’t talk to me about “DSL”. For sure, from a technical viewpoint every successful modeling practice has to build its own way to give meaning to models. With UML one can use stereotypes and profiles. But as we have a Unified Modeling Language, why should we try to build new ones? This one is not yet so much used, we should rather help it to growth. UML may also be seen as a generic DSL.

Any way, to become a widely used standard, UML has still to show the part of it which may be widely used. Kind of UML core (which could be named: Ultra Light Modeling (ULM: funny in French!)).

And further more, let’s consider the Java community or even the more englobing Eclipse community. How is UML used in the Eclipse community? Easy answer: practices are standardized into the Eclipse Modeling Project (EMP). Inside EMP, the UML implementation is in the EMF project. By the way, EMF has its own UML meta-model implementation (eCore) which is not exactly the same as the MOF OMG’s meta-model. And the truth is that most of the UML tools have to be usable from the Eclipse framework (to reach the very large Eclipse community) and so have progressively switched from their own MOF implementation to a native EMF implementation (that the case for Mia-Studio too).

So, where is the true “UML” standard?

In the UML name, and in everything attached to it from anyone viewpoint about modeling standards

In its standard implementation… Mainly EMF now! (main vendors have converged on EMF)

In the fact that almost nobody is happy with the OMG’s UML complexity, and that everyone is waiting for a usable UML

A funny end for this post:
What does a standard IT specification worth without qualified implementations? Nothing.
What does a good implementation worth if it’s not a standard? Nothing from a business viewpoint.My proposal: let’s OMG and Eclipse Foundation work together to build a usable and implemented UML package.