UML Frustrations, Part 2
More news about the UML Frustrations
. Together with my customer, we have created a sample model directly in MagicDraw (not converted from Rose) and exported it to Eclipse UML. This worked well.
So I guess the original problems are mostly not to blame on MagicDraw's XMI Export, it seems the Rose-to-MagicDraw converter does strange things. Seems like the converter creates a model with names that include <, > and & for which MagicDraw does not include an escape step before export.
Today I had to work with UML models again - after a long time of working with domain specific meta models. I had to write a code generator to generate C++ code from a UML model (that was very C++-specific).
And although I was using a decent UML tool (MagicDraw 15), it didn't work. I couldn't even read the exported XMI into Eclipse/oAW, since the exported XMI contained <, > and & characters in model element names (C++ generic types, reference attributes, etc.). The Eclipse UML2 XMI Parser (actually, it was the underlying Xerces) failed.
Now, I am not yet sure who to blame (MagicDraw, Eclipse UML2, the Rose importer from which the MagicDraw model was built), but one thing is clear: as soon as you touch UML/XMI, you run into those damned tool integration problems!
It is really frustrating: you get up early in the morning, motivated to work on the stuff, and you can't even read the model exported by a (decent, I thought) UML tool.
Replying to Martin Fowler's recent posts
, in the context of writing his book on DSLs, recently had two interesting blog posts (this one
, and that one
I agree with some parts (e.g. the MDA stuff), and strongly disagree with other parts.
Now, because I had to go flying
for the last two days (yipieeh :-)) I did not immediately reply, and hence, Sven was faster
:-). I agree with everything Sven says, and I don't repeat it here.
However, there's one interesting issue that pops up from time to time: repositories. From time to time, people (including me and Sven) point out that it is some kind of problem to store models in repositories. The arguments basically center around the fact that "we want to manage everything as files, in CVS or SVN".
Now, I agree to that, however:
What if you don't have any text at all, if you store everything
in models and repositories, don't all the integration problems go away then? Of course you still need a diff/merge facility (based on the models' concrete syntax, not XML!) and a way to version things, but assuming your infrastructure provides that, wouldn't that be ok?
Also, what is a repository in the first place? A couple of text files in a file system clearly isn't a repository. A database storing an AST clearly is.
But what about a CVS/SVN? What about a bunch of text files arranged in a specific directory structure, with an index file rebuilt from time to time by an indexer?
My point is that a repository is not per se a bad thing, provided the following criteria: (1) you store all your relevant stuff in it (2) it provides versioning facilities (3) supports diff/merge on a meaningful abstraction level.
As it happens, CVS/SVN provides all of this for text files. Hence, it is the lowest common denominator "repository".
Any comments or thoughts? I would really like to get a somewhat better grasp on this repository thing, to find out what *really* is the problem.
Labels: eclipse, openarchitectureware
Software Engineering in Practice @ ICSE
At next year's ICSE
in Vancouver there's a special track for practitioners. You might want to take a look at the CfP
Podcasting considered Real Media!
Some people still doubt that podcasters are considered "real media" by the mainstream. Well, I guess here
is impressive proof that this notion is wrong. Stephen Force, the guy behind the Airspeed
podcast, has just won the first prize: a one-hour media ride with the US Air Force Thunderbirds
Needless to say I am extremely jealous :-) Maybe I should give up podcasting about software, and rather do some aerospace stuff :-)
Video: Managing Variability in Product Lines
The JAOO folks have kindly recorded my 2007 presentation
on managing variability in product lines (slides
). Among other things, it showcases some of the PLE features available in openArchitectureWare.
Labels: eclipse, openarchitectureware