Contextualize SAB against a Capability

Hi all, I have searched the forum, the Capella help at the two locations and Pascal’s and Jean-Luc’s books on the subject and cant find anything. So asking here…

I am just working at the System Analysis layer currently and running Capella 1.4.2.

I would like to contextualize a SAB diagram against the capability. When i try to do so the capability cannot be selected, only the functional chains, modes/states and exchange scenarios. Am I missing something or is this intended as not possible?

The reason for this is that I am approaching a requirements review design gate. I have created various capabilities expressing the high level objectives of the system and expressed these through functional chains and exchange scenario diagrams. I would like to show the contextual SABs and ES diagrams to explain each capability in engineering reviews to validate the requirements before the formal design gate. Using capabilities to organise the information is really useful. Contextualizing the SAB against the whole capability would be the easiest way of doing this.

I do have multiple functional chains for each capability. Is this wrong and making this more complex that it needs to be? The system I am designing is mechanical,electrical and electronic so for example; I have a functional chain relating to the flow of high voltage power through the system, separate to the functional chain relating to the control aspects, under one capability. Should I really be combining these functional chains such that there is only one per capability? Or is my approach ok? Sometimes the functional chains are shared by multiple capabilities. For example the flow of power through the system (which i have as its own functional chain) is used by multiple capabilities with different functional chains related to the control aspects. This helps when making new SDFB for each capability as I can use the functional chain modelling accelerators. Hopefully that makes sense!

Would appreciate any advice on either the way I am am using functional chains or the specific question about Contextualizing the SAB against a Capability.

Thank you!

Capella Help on the subject:

Capella Guide > User Manual > Tips and Tricks > Diagram Accelerators > Contextualize Your Diagram To Selected Model Elements
Capella Guide > User Manual > Diagram Management > Diagram Concepts > Blank and Contextual Diagrams, Contextual Diagram Elements

To help explain what I am doing I created a really quick generic model without intellectual property issues…

This is an example SAB similar to how I have modelled my functional chains.

As you can see, it itsnt possible to contextulize against a capability.

The functional chains are allocated to the capabilities.

This is an interesting question.

In fact, Functional Chains are not “allocated” to Capabilities, they can just be declared “involved”, which is weaker, but it is not even mandatory.
Moreover a FC can be linked to several Capabilities (and reversely).

So I think that is why Capella would have difficulties to infer which elements must be present on a SAB, regarding a specific Capability…

My two cents.

I think someone from Thales may have some insights on your question, hopefully, they may be able to bring some answers to you.
My 2 cents:
An option may be, at some point, to use the Python 4 Capella addons to generate automatically your diagrams - don’t know how easy and useful that would be for your case, but maybe an option to consider at some point.

For me the need is real and legitimate. I advise often to do one or several xAB(s) by Capability.
But one capability is described by sevral FCs and scenarios and in almosts cases (as soon as the system is a bit complex. ) involving a lots of functions and functional exchanges ; so in these cases, it is not reallistic to retrieve all these elements in one unic xAB (the diagram would be not readable too many elements and I don’t speak to make a good layout). The solution could be to synchronise one Cabability in several xABs (by distributing the FCs between the different xABs by example). But this feature is much more complex to develop than a classic synchronisation between a diagram and model elements and probably why it was never developed. @SBonnet do yo have an idea about that?

Thank you @pascal.roques and @StephaneLacrampe for your input. It is good to know that I am not missing a trick within the tool. I will be able to achieve what I would like by looking at which functional chains have involvement to the capability then selecting them when creating the contextualized diagram. I will get a member of my team to looking into creating a python4capella script to automate all the creation of the diagrams in just a few clicks. I think this could be very useful in the future.

It is interesting however that this presentation (hyperlinked) given by Stéphane at the INCOSE Workshop 2020 shows the following image on slide 13.

This shows the importance of having a strong association between capabilities and functional chains/scenarios. Do we need to reconsider the reasonably weak link between between functional chains and capabilities given this meta model? Functional chains are a new “big thing” in MBSE but they do not tell the whole story to describe use cases/high level functionality… that link to the capability is needed.

@SMonier, currently for my use case it is manageable to create one SAB per capability however I am currently only working at the system analysis level. If we wanted to achieve the same at the logical or physical layers then I agree with you that you might need several xABs to fully describe the capability. One bit of functionality that might be useful was asked about in this thread recently… (without a response)

Contextual elements - combinatorial logic

You could select a capability and for example a mode with AND logic to reduce the diagram down. Not available today however but I do think that having AND/OR options when contextualizing a diagram would be really powerful!

One tool that I do find useful however is the copy and paste of diagram layouts. You can copy the layout from a master xAB then paste it using the elements shown. This means that for each diagram you don’t have to work out/re-organise the layout each time.

Thanks :grinning:

Links between Functional Chains and Capabilities may be weak, but not necessairly: Capabilities may be the owners of Functional Chains (composition kind relation), which is quite strong:


And even if they are owned by a capability, they can still be involved in other Capabilities. Capella provides both weak and strong links, which can be a little bit misleading, but it allows for different policies to put in place in projects according to their modelling strategies.

PS : please consider sharing your Python4Capella script to populate diagrams from capabilities :slight_smile:

1 Like

@JNavas, we have tried creating a script to automatically create diagrams and populate by capability but as confirmed in this forum post… Creation of Diagrams Issues we cant create new diagrams with Python4Capella. Think it is only possible once the diagram has been created.

Yes, Python 4 Capella is new so there is probably a couple of things still missing, but it is just a matter of adding these things, please consider contributing to it as a possible way forward.