- Support for UML 2.x (with eUML, the eclipse UML2 based model implementation)
- Java module: better Java source code roundtrip
- Java module: reverse engineering of sequence diagrams
First UML2 steps (April 07, 2009)
I did it! My first code for UML2 support is committed, and I'm crossing fingers that no horde of mad developers run after me. I consider myself a UML2 newbie, though I already had some looks into the UML2 superstructure specification and read Bogdan's eUML reports. But other developers have more or less the same entering difficulties (maybe with the exception of Tom, who was mentoring Bogdan).
What I did? Since my eclipse was set up already for ArgoUML, I only had to launch from the existing launch configuration "ArgoUML UML2-EUML debug", and there was UML2 ArgoUML! Creating a class works, but with creating an attribute for it the first problem was already encountered: the default type was not found. It is normally read from the UML profile for standard elements, but the UML1.4 version didn't work of course.
So here was my first quest: get ArgoUML run with an initial UML2.2 standard elements profile. Luckily, creating datatypes/enumerations and saving worked thanks to Bogdan and Tom, so I successfully got my first XMI 2.1 file. Idea: let the profile subsystem load this new internal profile if the model is an UML2 implementation, else the other internal profiles. Eventually it worked, but I had to implement missing model facade methods, mess around with some new TemplateParameter and UML class object code, and change the Profile subsystem a little bit. In the end I found myself having permanently open the UML spec, the eclipse UML2 Javadoc and both our MDR and eUML model implementation code.
Training mission completed, where's the enemy now, Sergeant?
Looking back (April 06, 2009)
I wonder if this wiki could be used as a blog, so I give it a try. Oh, by the way: my english is not the best, so I apologize in advance for all the pain that I will cause to the readers.
On Saturday I had a long phone call with Andreas Rückert, we talked about the early days of ArgoUML. I'm a project member since 2001, but he could tell me what happened the years before, when Jason Robbins and others started everything, and when ArgoUML became open source. I also had a look in our Ohloh project page to study the great commit timelines a little bit. So my first contribution was to change the Java notation in the diagrams into UML notation, because ArgoUML should be a general UML modeling tool, not just for Java programmers. I also remember that later in the same year I changed the class compartements to not only be one text area (!!!) for all attributes (or operations), but one text figure for each of them. After this I found a commit with the comment "starting pluggable diagram support", and I can't even remember, because diagramming is really not my area! Funny...
So these were my beginnings, and since then I (try to) concentrate on reverse engineering and code generation. With long intervals of pausing from ArgoUML, I must admit.