UML done right?

Don’t get me wrong, I have modeled my share of use cases, class and sequence diagrams – but I feel that I lack a lot of background knowledge on how to put all together, an uml development process. So I’m currently diving into to the OMG documents at to find out how you would start out modeling in UML with a given methodology. You can more or less easily draw your diagrams with modeling tools like StarUML but I have the impression that with understanding the process and leveraging model transformation the use of UML will be even more useful. I guess I’ll have to get a practical book on that topic as I find myself confused every time I start out with a new project.
(Audio Version)

A trip to java

Once again a long time has passed where I couldn’t find the time or motivation to write a post. I was mainly occupied with the specification of a java application which gave me the opportunity to get to know Sparx System’s Enterprise Architect. I only used the common uml diagram types and the code generation features for this project and they work pretty well. I’d love to make use of the more advanced features though and look into the whole MDA approach a bit more. There is a fundamental difference in just drawing some class diagrams and really developing model driven from the ground up. Projects like AndroMDA to generate complete applications look promising and certainly could reduce the expenses for software development but I doubt I’ll find time to check it out properly any time soon. As for the modelling language I don’t think everything should be done with UML though – the approach to model every aspect in UML and using stereotypes to define “what it means” makes the modeling too confusing and complex imho. Some interesting views on MDA and Software Factories can be found in the podcast MDA vs. Software Factories and some older episodes.

At the moment I’m working on a prototype for another java application and got used to the new java 1.5 features like generics and the new for each loops. The generics are definately the way to go for typesafe collections and I’ll try to use them from here on out. I found the wildcard <? extends> and some other constructions confusing at first but I do understand that there are several restrictions (german link) when using generics. Someone should publish some design patterns for typical cases that require generics.

For that project I also experimented with BeanShell which is basically a java scripting interpreter. I’ll probably use it for custom formulas which are evaluated dynamically within the java application. Easy to use and powerful.

The next component I’ll look into is EJB3 persistence using Hibernate. I have worked with the hibernate tools and reverse enginered some database tables but since I already have the POJO classes and don’t want to create all the old hibernate xml mapping files I might as well check out how to create EJB3 persistence by using annotations. More on that soon.