/* Google Analytics ----------------------------------------------- */

Saturday, April 11, 2009

Which UML tool to use?

What UML tool to use?

Many free UML tool are used today in my company, so I was looking forward to a solution to unify the landscape.

The current constraints ae:
  • Considering the current economic restrictions, a free tool is easier to "sell" to the management.
  • I want to let architects and developers select and use the tool they need to do their job.I do not want ti impose anything. What I just want them is to document the architecture properly (using some pre-defined views).
  • I should cover solutions architect and enterprise architect needs.
  • I would like to benefit from code generation for Java and dotnet
  • I would like to reuse the work done by the solutions architect to ease the one of enterprise architect
  • I would like to use the tools to find issues as early as possible. Using then some model quality indicator
  • I would lie to benefit from some open source tool developped to enable MDA. Why,
    because we have some legacy applications to modernize (migrate to new technologies or rebuild) and not so much resources to do it, or not quickly enough to please me ;)
  • We converted our team to agile development and scrum. SO I can tell you they are no more passionated by modeling (but more by coding).
  • Java code generation: pattern generation, support of Spring framework is a common need for us.
Eclipse based UML tool and MDA plug-ins

I'm not a big fan of eclipse, but I have to say, that lots of UML tools and MDA plug-ins on the market were built within eclipse realm (very good relationship with OMG and eclipse).
Mostly because they use a subset of MOF implmented at the heart of eclipse called ecore.
So what are we talking about:
  • A new low cost (from free to 300 euro) tools named modelio is now available for download. The express edition is free for all (be careful no XMI export for now, meaning that you're locked with your models in the tool). And only the Java edition and the enterprise edition are to be bought. It seems that modelio was built on the same base as the "french" tool named Objecteering. What I do not know is if it is a spinoff or a full new tool ... At least, what we can say is that its core is very powerful and UML compliant.
  • Two open source UML tool (Topcased UML and Papyrus UML) will be integrated into one eclipse project and available in Q3 2009.
  • I looked also at omondo (not free anymore at all) but very good for Java support and developper way of working.
  • Rational software Architect (as expensive as omondo), huge software solution ...
  • There is a lot of buzz around enterprise architect from Sparx Systems. Not expensive, beautiful graphical modelling, UML 2 compliant. I did have a bad experience when installing it (error message) so I never had a chance to see it working.
  • MagicDraw, very good tool. Especially good for supporting new complex profile like SySML and SOAML.
  • We are also using an enterprise architecture tool called Casewise Corporate Modeler that will be fully UML 2 compliant this year.
  • Microsoft will come into the game in 2010, with OSLO "compatible" (how much?) with MOF.
Concerning MDA, DSL or pure code generation based add-in, the choice is numerous. Most know are acceleo, and openarchitectureware. You can then found on Internet some exotic migration tools, like ant to maven code migration!

Strategy?

Based on my numerous constraints, the easiest path is:
  • Let solutions architect use the free UML tool they want within eclipse. The only constraint is that XMI export should be recognize by other tools used in the team. I have to say that diagram interchange is still not very efficient, but its going better and better.
  • As of today we do not use a UML repository ... But we need one. Subversion should be good enough.
  • For the dotnet guys, it will come with Microsoft massive marketing, so I hope it will be more natural from them.
  • All team will have to model their software architecture with UML (at least at higher level, like package and dependencies) and then enterprise architect will integrate them after each iteration, in the enterprise architecture tool (which will support UML Soon).
I do not think everything should be UML, but for solutions architect I think it is a major help to do their job. For the enterprise architect, we still need a more generic Enterprise architecture tool like casewise, but will be very happy to integrate business object and logical application described in UML.

I will welcome any advise or comments.