How to disconnect cloned diagrams?

Hi everyone,

I am studying on various scenarios in System Analysis. Firstly, I created an [SAB] Diagram. Then, I want to generate another [SAB] diagram for different scenario. I performed this by cloning function. However, I cannot cancel connection between these diagrams. Is there any way to disconnect cloned diagrams to manage separate scenarios in these two diagrams?

The help guide says:
“The contextual menu on a diagram allows to rename or clone an existing diagram (a new diagram is initiated with the same content and layout, which can be very helpful).”. However, I was not able to find more details in the online documentation."

I have tried in the past the diagram feature unsynchronized. However, it seems both the clone and diagram cloned are always synched.
It may well be how the Capella is designed for, to have both diagrams always synched.

However, what is the use case for the clone diagram?

1 Like

@sefatak I don’t get it - what do you mean by “I cannot cancel connection between these diagrams.”? What is connected?

1 Like

@StephaneLacrampe My question is how to unsynchronize cloned diagrams. Is this feature available in Capella?

UnSynchronize from what?

1 Like

Let me explain more. First of all, I created an [SAB] Functional Architecture. Let say its name is “[SAB]-1”.
Then, for a reason in same Capella Project, I cloned “[SAB]-1” and let say, name of the cloned diagram is “[SAB]-2”.

Now, I want to unsynchronize [SAB]-1 and [SAB]-2. Is that possible?

Hi,

It seems you’re confusing cloning and synchronization.

1) Cloning
To ‘clone’ a diagram is just to copy it. This doesn’t mean a modification from one of them would be reported on the other.

2) Synchronizing
On top of that, a diagram can be synchronized or not.
See Help -> User Manual -> Diagram Management -> Advanced Management of Diagrams

  • Synchronizing diagrams is the default behaviour of Capella (all elements will be shown automatically)
  • Unsynchronized means all elements will not be shown automatically

Unsynchronizing a diagram is especially useful to manage big models:

  • Physical Components with hundreds of Ports,
  • Classes with dozens of Attributes,
  • Functions with dozens of Exchanges, etc.

3) Contextual diagrams
Note a diagram can also be contextual to a set of elements.
See Help -> User Manual -> Diagram Management -> Diagram Concepts -> Blank and Contextual Diagrams, Contextual Diagram Elements

  • Blank diagrams are the most common diagrams in Capella. Blank means the user decides which elements should appear on the diagram . This allows him to build focused diagrams, with specific purposes.

  • Contextual diagram are focused on one specific element. These diagrams have specific refresh rues . Examples:

    • A contextual dataflow diagram is centered on one specific Function (which label appears in bold). The refresh strategy is to automatically display all the other Functions exchanging information with the current Function.
    • A contextual external interface diagram is centered on one specific Component. The refresh strategy is to automatically display all Interfaces provided by the current Component, and all the Components providing / requiring these Interfaces.

So, there’s no specific mechanism between a diagram and its clone. However, if you clone a contextual diagram it’s likely that modifications done on one of them will be reported on the other (due to the contextual mechanism)

BR

Samuel

2 Likes

Thank you @SamuelRochet for your comprehensive reply.

I did clone diagrams in the past and one update in one will update the other.
However today, I have tried to replicate the same behaviour and I was not possible. That is, any changes in one or the other will not affect the other diagram, which makes sense as a uses case, where there is the need to clone one diagram and make changes on the cloned for analysis or to show a modified diagram to a different stakeholder.

Thanks,
Hélder

1 Like

@sefatak cloning [SAB]-1 to [SAB]-2 does not create any synchronization between these 2 diagrams.
So I don’t understand what you mean by “I want to unsynchronize [SAB]-1 and [SAB]-2” because they are not synchronized in the first place.
Can you explain what you are doing in [SAB]-2 that makes you say that it is synchronized with [SAB]-1?

@StephaneLacrampe I have two different use cases. These use cases have common functions and functional exchanges, and also separate functions and functional exchanges. At the beginning, I generated the first use case with specified functions and exchanges. Then I clone this diagram, and perform modifications for the second use case. However, the modifications performed on the second use case also appear on the first use case. I don’t want those modifications to be shown on the first use case. So far, I have been using filtering and hide features. But I just wonder if there is another way to solve this issue.

Thanks.

ok, so I would say that this is a major/core feature of Capella (and Sirius): diagrams are views on your semantic models. If your semantic model changes, and if some elements that changed are displayed in your diagram, then your diagram is updated. Otherwise, this will be very misleading for a user if a diagram could show information that is not the actual one on your model. Users will quickly lose confidence in the tool.

Now I think I understand what you are trying to do. What you are calling a use case may be viewed as an “alternative”: You have 2 alternatives, you want to model them and evaluate them.
Cloning a diagram does not mean that you are creating another alternative in your model. It means that you are just cloning a view of your model. With your cloned view, you are still modifying the same model.

So there may be different ways in achieving what you are trying to achieve, but then you would have to be more specific about your context, and the modeling elements you are using. It could range from things like:

  • generate an image of your first SAB, it won’t change when you modify your model…
  • create new elements (functions/exchange) in your model that are separate from your first alternative
  • duplicate your Capella project to study the 2 alternatives
  • use the system to subsystem transition and/or the filtering add-on to manage your alternatives
  • use REC/RPL and libraries

And maybe other ways. but again, this will depend on understanding what you are trying to do and finding the best way to do it with Capella.
Stephane

1 Like

Thanks a lot @StephaneLacrampe.

Thank you @StephaneLacrampe for you reply.

May I confirm with you about the first three options in your message:

  • generate an image of your first SAB, it won’t change when you modify your model.
    What do you mean by an image? Use the function “Export diagram as an image”?

  • create new elements (functions/exchange) in your model that are separate from your first alternative
    Do you mean create packages to organise the model and split the functionality?

  • duplicate your Capella project to study the 2 alternatives.
    What are the options to duplicate diagrams?

Thanks,
Hélder Castro

Question (1): Yes! (I am not saying this is great, but let’s say you’re just in a bid phase and doing a throwable model, this may be an option)
Question (2): Yes that could be an option. Or simply you could have a Functional Chain 1 with 4 functions that represent Alternative 1, a Functional Chain 2 that have 5 different functions not contained in Functional chain 2. These 2 functional chains represent your alternative, and in your finalized model, you won’t keep them both, but while you are studying these 2 alternatives, you may proceed like that
Question (3): Not sure I got your question. What I meant is to create 2 Capella projects and study your 2 alternatives in 2 different separated models. No link between the 2 projects, no duplication of diagrams between them.
Stephane

2 Likes

Thank you @StephaneLacrampe.

Copyright © Eclipse Capella, the Eclipse Capella logo, Eclipse and the Eclipse logo are Trademarks of The Eclipse Foundation.