I’ve decided to describe the main reason why I am trying to find a way to use BT inside functional decompositon. It seems to me more practical and more easy.
I will explain my thoughts on some use case.
Let’s start from functional decomposition that is standard and is a simple list of leaf-functions grouped in some hierarchy. Let’s look at some leaf-function. At some stage of modeling it can be atomic and does not have sub-functions. The function bahaviour can be defined usind textual description. This leaf functions is allocated to some components and involved into it’s behaviour, for example is called on some transition.
On the next stage Modeler can decide to use modeling to add details to it’s behaviour specification to make it more formal than simple textual description.
To achive this Modeler needs to add severla sub functions and define behaviour for original function in which new subfunctions are used. If BT are used inside functinal decomposition it’s very simple to do this step to the next level of function\behaviour decomposition and specification. Original function can be continue to be allocated to the same component. All you need for behaviour specification is to add new sub functions using BT notation.
It’s not simple to understand and use the right “Capella way” to do the same thing.
- Decompose original function into sub function
- Allocate new subfunctions into the same component as original function. Allocation for original function is not valid after it was decomposed.
- Change statchart for the existing component to add detailed behavior of original function.
- Or create new component, allocate new subfunctions to it, create new statechart and define original function behaviour.
It’s very simple common use case but very hard and not obvious solution using “Capella way”.
Please correct me if my understanding of “Capella way” in this scenario is not correct.
In my opinion it would be great to have a new way to define bahaviour inside functional decompositions adding behaviour semantics to composite functions. And after that allocate composite function with behaviour defined to components. It could be more scalable and simple approach.