The Model Driven Software Network

Raise your level of abstraction

Xavier Seignard

Models repositories : What about the exisitng tools?

Hello,
I think models repositories are really important for teamwork purposes in big companies, with large models split in lots of modules.
So I'm wondering what's the existing tools for managing models? I only know the TeamWork plugin for MagicDraw.

And what is your feeling about models repositories, what's the clues?

Regards,

Xavier
http://mdwhatever.free.fr

Views: 10

Reply to This

Replies to This Discussion

Well, ABSE revolves around the notion of an Atom Library, which is a metamodel repository. In fact ABSE is totally dependent on it. You build an ABSE model by instantiating metamodels from the Atom Library. There is no other way in fact, so you must always create and then reuse.

Since Atoms also feature construction constraints, the Atom Library can teach, guide, or otherwise force developers to follow an established architecture. Description and other Atom Parameters that the repository creators might wish to add will guide the developer in the model discovery process.

However, these Atom Libraries are only used to manage ABSE Atoms.

If you don't know about ABSE you can learn about it here.
You should take a look at the concept of "Megamodel" developed by the AtlanMod team which is the central part of our global model management approach. See: http://www.emn.fr/z-info/atlanmod/index.php/Global_Model_Management

Our approach is available as an Eclipse project: http://www.eclipse.org/gmt/am3/
Thanks everybody for your answers!

Here is why I think about model repositories :

The company where I work have a model describing its whole business logic. This whole business logic is split in smaller models. Each of these represents a delimited/hermetic field of the business logic (urbanism). Each field can evolve/change separately.
Then, on the top of these business units, you can gather the ones you want in order to model the flow of business objects which are exchanged between the layers of the software.

The context I describe require two needs :
- The first one is being able to load business units in your object flow model.
- The second one, because business units can evolve over the time, is the need to version them.

The goal of splitting a model in smaller ones is to minimize the merging problems.
The aim of model repositories (a repo like maven repos for instance) here is to provide "models on the shelves".

I started an implementation on top of maven2 and nexus. Re-using the concepts of release version ans snapshot version for models.

Regards,

Xavier
You might be interested to check MetaEdit+ as it comes with a repository which can store billions of design elements. So it scales differently than file-based tools. Also the multi-user capabilities provide concurrency at a very fine-grained level allowing multiple developers to work on the same model, a diagram, or even on the same design object. This minimizes significantly the merging needs, and as you said, provides support for reuse.

Since MetaEdit+ is a tool for Domain-Specific Modeling the repository not only stores models but also the metamodels, generators and notations. This is particularly important in any bigger use because then the latest modifications to modeling languages and code generators are available to all users in real-time: there is no need to compile a language prior to making it available.

For more details on multi-user side see http://www.metacase.com/mep/multi-user.html and on versioning see http://www.metacase.com/support/45/documentation/versioning.html
I really like the multi-user side you describe in MetaEdit+. I should take time to study it.
Thanks for the links.

Regards,

Xavier

RSS

Badge

Loading…

© 2012   Created by Mark Dalgarno.   Powered by .

Badges  |  Report an Issue  |  Terms of Service