How is it possible to configure and use the “Share Project” option? (right-click on a Project Folder -> Team -> Share Project…)
I looked at the forum and the User Manual and I did not find anything.
At the moment, Capella needs to be connected to a CVS repository…
I also already have TortoiseSVN on my computer. Is it possible to configure and use it easily with Capella?
With what is available
now and open source, collaborative work with Capella can only be based on configuration management systems (Clearcase, SVN, Git, etc.) and rely
Either on diff merge (when multiple persons can edit the model in the same time.
Either on fragmentation (split of the model files in smaller granularity) and exclusive access.
Thales and Obeo are also working on making available
a commercial Capella add-on that allows fine-grained, live concurrent access to the model. This is the solution that is largely used within Thales. A few talks have been given on the topic in EclipseCon conferences I few years ago (see
http:// www.eclipsecon.org/france2013/sessions/collaborative-modelin g-made-live-and-easy.
How can I manage fragmentation of Capella models?
I did not find any information about it in the help section of Capella.
Please find attached a very quick note on how to create fragments in Capella
Hope this helps
The note is not available anymore on this forum… WIll it be possible to publish it again (if it is still up to date 5 years later )
I would say that the easiest way is to use Capella for Teams addon.
It’s not cheap, but it’s a efficient way for a team to collaborate.
Thinking a SVN version might work but the diff work might get hideous to sort out
I certainly concur with John!
Nevertheless here is the pdf you were looking for, and a link to the embedded Capella documentation that you should be able to access once Capella is launched: http://127.0.0.1:50561/help/index.jsp?topic=%2Forg.polarsys.capella.doc%2Fhtml%2FFragment%20management%2FFragment%20management.html&cp=6_1_14
Model fragmentation.pdf (372.7 KB)
All the best,
As I understand EMF model fragmentation is not intended for collaborative work and can’t exclude model diff\merge.
If fragmentation is for collaborative work It may result in invalid mode.
Imagine you have some function in System analysis.
Some function in Logical Architecture model reference this function. (by realize link)
I you need to remove system function you also need to remove reference from Logical Architecture.
If you remove system function and check-in only System analysis fragment you team member will not be able to use it because it’s version of logical architecture reference undefined element to system analysis fragment.
You are not able to work on System Analysis and Logical architecture concurrently. You nee to use merge for Logical architecture in this case also.
It’s also possible to use libraries.
But there is also some restrictions on use cases where they can be used.
In many cases they work. But in many cases they don’t.
I mean diagram’s UI does not full support libraries.
For example you can drag and drop function from library to sequence diagram.
But if you want to divide your model into parts libraries should be used but not fragmentation.
As I understand fragmentation is used to make model files smaller and helps to accelerate model parts loading.
Heads up, those have turned into localhost links now.
The links with 127.0.0.1 are links that should work when you have Capella opened and browse the embbeded documentation
Another alternative to organize collaborative work on different levels of system decomposition is to use System2Subsystem add-on. When used separate Capella projects are created to design different components in different projects. This projects can be edited by different people in parallel. In most cases it does not result in applying diff\merge between projects. But it also possible to apply diff\merge from parent to child projects if some changes occurs related to component of interest.
System2Subsystem add-on helps to create a new Capella project based on base project. It can extracts some sub model using different strategies (vertical, horizontal, …) and can be applied to logical or physical components.
For example System2Substem add-on can be used to create a new project with the purpose of detailed design of a logical component which specification is extracted from the base model.
- First level project contains system model and logical architecture model. Last model defines all logical components and their allocated functions\exchanges\interfaces
- Sustem2Subsystem add-on is used to create next level Capella projects for selected logical components
- Different peoples work on disign of different components in the separate Capella projects
- If changes occurr in the base model that relates to logical components specification they are transfered to the component projects using Sustem2Subsystem add-on (DiffMerge is used)
For logical components System2Subsystem can be used in two ways
- horizontal transition
- vertical trasition
When vertical transition is used logical functions of selected component and it’s actors become system functions in a new Capella project. To desing component an enginner creates logical architecture model in the new project based on the system model created in the new project based on the the logical architecture from the parent project.
System2Substem with vertical transition strategy can be used recursively. When applying in this way original system will be decomposed into logical components recursively in top-down fashion. Logical architecture for each components on all levels of design will be defined in separate Capella models.
When horizontal transition strategy is used System2Subsystem add-on copy logical functions of selected component and it’s actors to logical architecture model. It this case an engineer creates physical architecture model in the new project based on logical model.
It’s also possible to use System2Subsystem for physical components in the same manner.
Using separate Capella project for designing each component helps to investigate different desing alternatives (trade-offs). It’s possible to create different child projects for the same logical component and define different logical architecture in these projects for the same components. This trade-of projects can be stored in different branches of a git repository for the selected component.
Another way in investigating different desing alternatives is to create one universal project to specify all design alternatives in one big project. And after that use Filtering add-on to create separate projects for each design alternative.
Libraryis can be used to build system from components in a down to top fashion. In this way some people create resusable components in libraries. Another people integrate resusable components in integration projects. They work in parallel in different Capella projects. REC\RPL mechanism is used to “instantiate” components\functions in integration project from templates defined in libraries. Diff\Merge can be used to update instance from updated templates in libraries.
It’s possible to define components and functions on all architecture levels in a library. After that REC should be created in the library to make these components\functions usable in integration project.
Library defines template for the component (REC in terms of Capella). Parent project will instantiate component from library template (RPL in terms of Capella).
Data types, classes, interfaces can be defined in libraries and used directly in integration projects.
Tthere is a problem with Merge Tool in Capella 1.4.2 that prevents implementing collaborative work using git branches and Diff\Merge