UML is now generally accepted as the standard modelling language in the industry, but its presence on the internet is non existing.
UML users are tight to their desktops modelling in their CASE tools, but we hardly have any means to share the models we create, or collaborate online.
The webUML initiative aims to set UML free and release it to the web.
I see two technical problems in the traditional UML modeling in order to use our models and exchange them with other users.
- the idea that the important model is the UML graphical diagram was right 10 years ago but now it has no real sense. New technology allows to map the full project on a single UML metamodel which is composed by one to many UML diagrams (e.g. model). If you have one single model and not hundred of them as today then you can exchange it with other users.
- the dynamic UML graphical creation from a metamodel has never been really investigated. I mean that with just a drag and drop users should be able to create UML views from their existing model and add connectors (e.g. associations, dependencies, inheritance etc....). As explained above because the UML diagram is the model and not a view of a metamodel then this dynamic UML graphical creation is impossible.
btw, I asked the Omondo research team three years ago to dynamically create UML diagrams from a standard metamodel and it worked really well. We needed 2 years to complete the task which was delivered in 2009.
Last time I have visited a large group which has 10 RSA models. I must admit that the Rational generated xmi is really very very clean, just perfect and working at project level too. My customer problem was to model more than one project and recreate dynamic view from existing models. We have drag and dropped all these models inside EclipseUML 2008 which is compatible with RSA 7.5 model and have create a single modeling project from 10 other projects. We have then extracted manually from the model hundred of UML diagrams from the models composed by 10 models and reuse the same element in more than one project. Really cool and it works well :-)
I would say that if you want to add value in your model and not just at diagram level then I would recommend to use the EclipseUML2 model and not EMF directly. This metamodel is the standard OMG UML 2.2 metamodel. It also is used by many tools such as RSA, Borland, Papyrus, Topcased, Omondo etc......The only problem is that Omondo is the only tool able to aggregate models from other tools because the use of the metamodel directly from MOF. Other tools are creating XMI from their own model. I mean that the first requirement should be to have a clean XMI export based on a standard and for me the only reliable standard today is EclipseUML2, so please forget about other metamodels for UML use because your models once finished will not be reusable.
Reuse of existing models allows to work at diagram level with traditional tools, I mean to create a static diagram from your models after transformation. You can also work at multi project level and create dynamic UML diagrams from your metamodel which has previously merged all the other models. This is a lot better I think :-)
you raise a couple of interesting points there. Allow me to put them a bit in context with regard to the webUML initiative and its current goals.
Currently the webUML initiative tries to raise awareness and allow people to start discussing the concept of using the web as a way to communicate using UML. It is important to note that the webUML initiative does not want to create a technological platform, but (for now) facilitate the discussion that might result in a functional platform and protocol to allow improved operability.
But you stressed this very explicitly in your reply: you see "technical problems", so I guess we're on the same level here. :-)
We hope that you will continue to follow our effort and will soon join the discussions as we roll out a forum on the site to allow these kind of ideas to grow and evolve.
And of course, if you feel that you too support the idea, sign up as a supporter. We will need all the support we can get to build a momentum to be able to start discussing these issues with the actual people that define and create our tools.
I have signed today.
My experience related to UML models started with Novosoft in 2001 which was a good metamodel for UML 1.x. Our EclipseUML free edition was using Novosoft from 2002 to 2004/2005 as internal models and EMF as graphical and for generation purposes.
In 2004 the Eclipse UML has started and Kenn Hussey has taken the lead on this project. Omondo has migrated to adopt this Eclipse UML metamodel in 2004 in order to be UML 2.0 compliant. Many companies have adopted the same metamodel in the last few years.
We have stopped using EMF as our internal model in 2007 and now directly use the metamodel. This is the same file you get when you export xmi from a UML tool. You can therefore get xmi by export or directly manipulating this xmi without export/transformation, which is better I think.
My quick start recommendation is to define the scope of xmi model exchange. For example the latest UML 2.2 metamodel is using packages to save its information as folder at the root of the UML project. It is therefore important to immediately identify at which level the model exchange will work. I mean at diagram level only, at package level, at project level or multi project levels. The minimum requirement should be package. Professional uses requires for me project level. Let's talk about it on your forum or here :-)