Friday, April 06, 2007

More UML bashing

Further to my cryptic message of a few weeks back.

Mark, who is next door to my office, is working on a big project (metamodel will probably wind up being 60-100 classes, at a guess), where one of the deliverables is a UML profile.

Particularly horrifying (to me - I won't speak for him) this week has been watching him try to come to grips with the part of the UML metamodel dealing with templates (somewhere in superstructure). Like any part of UML, it involves skipping through different chapters, volumes and even versions of the UML spec to track down from whence each property has come, then tearing out hair when one realises that it is a case of either:

  • A simple idea modelled in a very complicated or unintuitive way (e.g. Partial ordering in Interactions, as I looked at with Jacques a while back), or

  • A simple modelling made complicated by being defined through indecipherably long and indirect chains of inheritance and package merges.



Mark's case was a mix. Some of it is relatively simple/logical when you can grok the spec (no easy task). On the other hand, there are some things (ParametrableElement) that are really quite weird.

Another observation is that some people in the project insist that, since a UML profile is a deliverable, they build their metamodel with that of UML in mind. Being a metamodel purist, I would say the opposite: they should concentrate on the essential ideas of their language, and then worry about the profile when they get to that. I'd be interested to hear people's takes.

0 comments: