The Model Driven Software Network

Raise your level of abstraction

I was reading yesterday Geert Bellekens post on this forum and realized that I am not the only to think about free models exchange or even donation.
Many companies have advanced projects models which had used UML but all this information is not reusable by others. These models can be reuse and would save a lot of money and add value to any project. We had in the past the pattern design which tried to reuse existing knowledge but this was too limited.

Why don't we use today existing models ? I would say that the main reason why we don't use existing models is because of wrong UML software tool architecture. Each tool has its own model for both graphical and UML grammar. Eclipse found a good compromise with the use of a standard GMF but the project failed to reach UML need because more focusing on providing an universal graphical model and not a specialized UML modeling solution.

What are today's solutions: The only reasonable solution I see today is to add both front office (e.g. UML graphical design/editor) and back office (UML grammar) modeling requirements for an UML project. It seems to me that today modelers are only interested in the front office. Modelers only use UML graphical designs and don't imagine the dark side power of UML modeling if they also integrate the back office :-)

What are the market value of using both the UML back office as well as the front office: The main value I see which is explained by Geert Bellekens in his post is to be able to share models. I also see another powerful use which is to get full modeling project structure for Telecom, Banking, Insurance etc...industries and immediately get code using MDD technologies.
Could we imagine :
- the value of having an existing model which has previously be done ? This would be just magic :-)
- by drag and drops recreating views of this existing model inside your own graphical UML Editor ?
- adding your specific requirements inside an existing model already created ?
- creating the skeleton of your application in less than 10 minutes by just using existing model and model driven code generation ?
- adding iterative between models and codding at each requirement validation test ?

Yes, today if we start and build our model using a standard metamodel which should be common to each tool we can reach this level of quality. This is today possible using the EclipseUML2 metamodel which is open source and a standard OMG UML 2.2 specification.
If you have doubt on technical point of view why model interchange is not really possible we can talk about it because this is my domain of expertise.







Please apologize for the next few lines but as a company we need to make our living so .....Note that if you have existing model developped into UML 1.x it would be really a too bad to loose them. We have an offshore team based in Tunisia which can manually upgrade all existing UML model to the latest UML 2.2 specification. These models would be tested inside Eclipse with RSA and Omondo EclipseUML before delivery. It is today impossible to upgrade from UML 1.x to UML 2.2 by programmatic, this is why it should be done manually. you can still try to do it, but the result will be mediocre and the internal cost a lot higher than asking specialize teams to do it.

Reply to This

Replies to This Discussion

Vlad,

I agree with you, there is a distinct value in sharing models.
As a modelling consultant, me and my colleagues Koen and Christophe have worked at a range of different customers. Although most of these customers worked in different domains we still saw that we had to solve the same problems over and over again.

I'm not so sure about complete models like you suggested for banking or insurance, but there are certainly business patterns that can be re-used.

A company selling computers, or loans, or something else, they all need the concept of a product, party, order, orderline etc...

These similarities in the different models we worked on was one of the reasons we started with http://themodelfactory.org and http://webuml.org.

We got tired of solving the same problems over and over again so with these initiatives we hope to create a community that contributes models or patterns to our repository so we can re-use them when we go to our next customer.

The technical problem of model interchange was then one of the first roadblocks we encountered. We did consider using the Eclipse UML2 metamodel, but we found it to be too heavy. We needed something lightweight so we started our own track with http://umlcanvas.org.

Currently we are working on model interchange with existing case tools, starting with Enterprise Architect.
Once we reach a certain level of completeness we will expand the support to other case tools as well. Eclipse UML2 is probably going to be one of the top candidates because of its clean UML2.2 implementation. (which should make writing the adapter trivial)

Geert

Reply to This

Thanks for you reply Geert,

I know that Eclipse UML2 metamodel is complex and require an important personal investment. To become a metamodel architect you need about 18 months full time codding which is painful. I think that if you are integrator, consultant or modeller you need to focus on modeling business concepts related to customers needs and certainly not on building framework from strach. This is like driving a company or a car. Do you need to be a good mechanic to drive your company ? You certainly can drive your car without having any knowledge of mechanics. This is even better because you can focus on what is really important and add value to your customer.
This is why I don't think as an integrator you have to go so deep in the metamodel manipulation.

Modeling is complex and we need solid and robust foundation on which we can build advanced architecture this is why Eclipse UML2 is complex. The more complex it is the more powerful modeling could be :-)
Don't be afraid of complexity if it is your job but if you have no time for that maybe your time is not focus on what is really important for your daily job !!
For example you are talking about:
- Enterprise Architect. Do you know that EA has a proprietary model which is a kind of database. This is not related to any model and trying to provide an EA export to UML2 should be EA vendor job and not yours ? why do you do this job ?
- http://themodelfactory.org and http://webuml.org but this is related to graphical presentation of a model. It would not be a such difficult job to provide a dynamic html creator for Eclipse UML2 metamodel which respect the latest OMG specification and built on the top of a solid metamodel. We have already done a research RCP project on this domain and it worked really well. The reason we never publish the software is because no company were interested in using an html viewer to build model. Companies prefer to have UML diagrams integrated within an IDE (e.g. Eclipse).

What is interesting in your post is that you don't think that a full project model can be reused. This is exactly where is the current problem of our community.
If we have models, I mean about few thousands of models, then you will certainly be able to find a model which could be used for your customer. Having a model allows you to generate 80% or even more of a project with traditional MDD technologies.

Why we don't have any large model donated to the community ?
I have talked with few modelers who explained me that they spend 10 years of their life in creating simulation cases and models which could be translated to UML2. They refuse today to donate models because if they donate their models then what would be their remaining value on the market if it is open source or free ?
We need to find a business model in which you can purchase an existing UML 2 model and therefore pay the creator for his/her time and maintenance. I don't see any other evolution in the model reuse if we don't find a business model. The problem is that users want everything for free while model creator want to get paid for their job so ......

Reply to This

RSS

Badge

Loading…

© 2010   Created by Mark Dalgarno on Ning.   Create a Ning Network!

Badges  |  Report an Issue  |  Privacy  |  Terms of Service