Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing features for Functional Chains #273

Closed
kairibu opened this issue Apr 13, 2023 · 3 comments
Closed

Missing features for Functional Chains #273

kairibu opened this issue Apr 13, 2023 · 3 comments

Comments

@kairibu
Copy link

kairibu commented Apr 13, 2023

We found several missing attributes for functional chains:

Improvements
Model.la.all_functional_chains is not implemented
Model.la.all_functional_chains[x].involved_components is not available
Model.la.all_functional_chains[x].involved_functional_chains: it is possible to nest functional chains, can this be represented by the library?
Model.la.all_functional_chains[x].involving_functional_chains: see comment above
Model.la.all_functional_exchanges[x].involving_functional_chains
Model.la.all_component_exchanges[x].Kind == [UNSET | ASSEMBLY | DELEGATION | FLOW] missing
Model.la.all_functions[x].Kind == [DUPLICATE | FUNCTION | SPLIT | ROUTE | SELECT | GATHER] missing

ewuerger added a commit that referenced this issue Jul 18, 2023
@ewuerger
Copy link
Collaborator

I was able to implement:
• Model.la.all_functional_chains is not implemented
• Model.la.all_component_exchanges[x].Kind == [UNSET | ASSEMBLY | DELEGATION | FLOW] missing
• Model.la.all_functions[x].Kind == [DUPLICATE | FUNCTION | SPLIT | ROUTE | SELECT | GATHER] missing

The others are a bit unclear for me. In FunctionalChain diagrams one is able to describe the FunctionalChain with Functions, Exchanges, ControlNodes and SequenceLinks. One can reference other chains, but there is no nesting. What can be achieved is to create a new FunctionalChain underneath the existing Chain. But I don't see how this is then an involvement. Usually Capella manages involvements via an extra dummy XML element. Then how can you involve Components here? And last: what is the difference between involved and involving?

Cheers

@kairibu
Copy link
Author

kairibu commented Jul 18, 2023

I need to look into the comment further, but quick answer to the last question: involved / involving are the two different directions of the relationship.

Heating water is involved in making coffee

Making coffee involves heating water

It is clearer for realized/ realizing or deployed/ deploying for me tbh.

Thanks for the support, cheers

@dedfritzi
Copy link

I was able to implement: • Model.la.all_functional_chains is not implemented • Model.la.all_component_exchanges[x].Kind == [UNSET | ASSEMBLY | DELEGATION | FLOW] missing • Model.la.all_functions[x].Kind == [DUPLICATE | FUNCTION | SPLIT | ROUTE | SELECT | GATHER] missing

The others are a bit unclear for me. In FunctionalChain diagrams one is able to describe the FunctionalChain with Functions, Exchanges, ControlNodes and SequenceLinks. One can reference other chains, but there is no nesting. What can be achieved is to create a new FunctionalChain underneath the existing Chain. But I don't see how this is then an involvement. Usually Capella manages involvements via an extra dummy XML element. Then how can you involve Components here? And last: what is the difference between involved and involving?

Cheers

Let me try to answer your questions.

"One can reference other chains, but there is no nesting."
This is correct and what was meant here. When I understand it correctly this is modelled inside Capella as 'Functional Chain Reference'. The term nesting was not really correct when phrasing the problem.

"Usually Capella manages involvements via an extra dummy XML element. Then how can you involve Components here?"
Here I can't help. I have no knowledge about the XML representation of the model.

"And last: what is the difference between involved and involving?"
These terms just refer to the two directions you can look at a functional chain involvement by another functional chain. It is comparable with the parent - owned component relation that exists for logical components.

involved: one functional chain B can involve (make use of) several other functional chains (A, D)) and hence are visible within the LFCD for functional chain B. This property gives a list of all functional chains (A,D) that are used (involved) in one functional chain B.

involving: one functional chain A can be involved by several other functional chains B/C, which means it is visible in several different LFCDs (one for B and one for C). This property gives a list of all functional chains (B,C) that involve functional chain A.

B involves A
B involves D
A is involved by B
D is involved by B
C involves A
A is involved by C

I hope this helps a little.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants