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.