Graphical Software Design with UML and XMI
I'm currently studying parallel modules in UML and Java and whilst reading through the notes for UML an idea occurred to me.
If you could store the semantics of a UML diagram in an XML format you could tranform your models into SVG diagrams, XHTML documentation and even generate a framework of code for the implementation of a computer program.
A computer program could be designed graphically using a drag and drop application with SVG and collaboratively using a version control system. This would also, in theory, make it much easier to implement your program in multiple languages if you wished. In combination with reverse engineering of code into UML it would allow people graphical, textual and code views of an application, depending on personal preference or their role in the development process.
As this is quite an obvious use of UML I searched the web for UML and XML to find out who had already done this.
I found:
- a paper called Using XML and SVG to Generate Dynamic UML Diagrams by Justin Elsberry and Nicholas Elsberry at Central Washington University.
- An OASIS activity called the UML to XML Design Rules Project
- A Wikipedia article on XMI
- The Eclipse Modelling Framework which can generate code from models described in XMI.
- The Umbrello UML Modeller as an example of a graphical application for generating UML diagrams stored in XMI and exportable to XHTML and SVG.
I'd be interested if anyone has experience of using these types of tools in practice and how useful they are.


I'm interested too...
I guess most programmers use paper to create their designs.. at least, those who are not unlucky enough to work in over-bureaucratic corporations. A copy of "Denim" and a graphics tablet (or better, tablet PC) might provide a viable alternative, I think we'll look into that.
But even still, it would be handy to be able to click one button to generate a UML diagram that could be compared to the original paper version.