Hi Cedric,
Good question.
Here is some synthesis taking into account INCOSE recommendations, some MBSE modelling methodologies (Harmony, OOSE, others) and feedback from industrial companies:
Block Definition Diagram (BDD) and Internal Block Diagram (IBD) give you concepts to express functional breakdown and functional flows and many industrial companies that I know use those diagrams to design their functional architecture because IBD is quite simple to use (boxes in boxes, connectors and ports).
But most of them are not completely satisfied… because decomposition and flows are only some aspects of functional architecture. What about control flow (sequences, decisions, synchronization points…)? how to express performance durations? what about events? IBD is not meant for that. It is where activity comes into the scene and can give you all the concepts you need:
* control flow with ability send and receive signals
* data flow
* an action language that can address any process or algorithm and that can be specialized with « performance » properties (through addition of UML profiles - MARTE for instance).
So the question becomes: should I use BDD + IBD + Activity to depict my functional architecture?
No as « Activity" gives you all you need, including breakdown.
Activities can be decomposed through use of CallBehaviorAction elements and you will see this decomposition in your modelling browser with activities organized in a tree.
And if I want to show this functional breakdown in a diagram (it was Avraham initial question if I’m right)?
Then you can use BDD in a process that is straight forward:
1. create a BDD
2. Drag and drop your function (activity) and all sub functions (activities that are below your function in the model browser). If your tool is fully Sysml compliant, it should automatically create the « composition » relationships between activities as you would have with block decomposition.
3 (optional): you can also drag and drop other activities referenced by your function but that are not sub-functions (reuse of functions exiting elsewhere in the function hierarchy). In that case, modelling tool should create a « reference » relationship, as you would have with blocks.
in SysML, blocks and activities can be used the same way in BDD.
Conclusion: for functional architecture, if you just want to focus on decomposition and data/energy flows, BDD+IBD is OK. If you want more, suggestion is to use activities and use BDD only to show activity decomposition and reuse (reference).
note: using activity concept for function will give you another advantage: it will be easier to map your operational architecture (UC, interactions, actors) with your functions. You start formalizing UC behavior with an activity, and then you can directly call your functions (activities) to support operational scenarios.
Hope it helps,
best
raphaël
> To view this discussion on the web visit
https://groups.google.com/d/msgid/umlforum/707518BF-D64A-406B-9458-175E73B5E3C7%40gmail.com.