I’m currently on a project, which integrates domain specific techniques in the modelling tool Enterprise Architect through UML Profiles.
The domain specfic model almost matches the structure of the composite structure model, with a couple of restrictions though, so I’m trying to use the model as a foundation for my restrictions.
The questions:
1) How can I generally extend models (like composite structure models) which themselves lie in the M1-layer of Meta-Object Facility?
2) Is the element “Part” of composite structure diagrams a metaclass itself, which can be extended by stereotypes in UML profiles?
Since the literature on these topics is not very exhaustive, I’m also looking for suggestions, too.
To answer your first question, from my own experience with MagicDraw UML (MDUML), you can build a Profile on the DSL Profile, if you do not want to directly modify the DSL you have or it is not editable.
Your classes should utilise the same Stereotypes found in the profile, if any or you can make your own and apply them to the new classes you want to add.
Open the profile as a project, if you can. You should be able to thoroughly analyse the building blocks involved and replicate them in a separate project, so as to maintain the integrity of the original UML Profile. The caveat here is that I do not know what exactly you are doing, but following this methodical way of decomposing the UML Profile to build your own will ensure you can extend the models and use them in your project.
I would not recommend building on the Metaclass level if you can help it. If you are building a whole new meta-model then this could be the approach, else from experience, you only need to model classes that constitute the extensions you seek to add (Use Stereotypes and Tags). Then export your project as a module for use by the implementing project – as in MDUML.
Part is NOT a Metaclass in itself. If you have looked and not found it, it is because it is a classifier (for example, a class, collaboration, component) property owned by a composition. I found this document on the EA site, if you have not already seen it.
If I understood your second question, you should be able to extend Part by additional Tags and Property Stereotypes – although it would depend on the features you are looking to add here. Again you do not have to go down to the Metaclass and edit, that would be too extreme in my opinion. If you do though, I would hope you share your insights.
Finally, I have never found EA appealing enough to commercially do these advanced tasks for my projects. In the MagicDraw UML world, where I have consistently documented and customised profiles specific to my domain of interest these steps have been relatively easier and well documented.