I know that this topic has been explained and discussed many times on the forum and elsewhere in one way or another but, I still don’t quite get it in Capella. Allow me to explain:
Capella does not allow Modes to be created within States because of a philosophical difference in how Modes and States are defined and understood (probably because of an Arcadia rule, but I am not sure). Its seems from the many documentation, videos and discussions abouth this topic that States and Modes within Capella are somewhat interchangeable but not mixable, or as expressed in Pascal Roques’s book: Systems Architecture Modeling with the Arcadia Method:
“Unfortunately, there is no normalized definition of these two concepts. We therefore have to choose whichever word is the most relevant for our context and will connect most with the readers of the model”, followed by “The two concepts cannot be mixed together in the same diagram”.
However, in my many years of MBSE training (including PPI), I have always had a clear understanding of the differences between States and Modes. In the simplest terms:
State: a Condition of BEING
Mode: a Condition of DOING (Function)
To me (and many other experienced SEs) Modes have always been subordinate to States, in that certain Modes (and their associated Functions) are, quite simply not accessible (or available) in certain States. For example: ‘Autonomous Mode’ is not accessible when the system is in a ‘Crashed State’ or ‘Unpowered State’. Conversely, ‘Autonomous Mode’ could (for example) only be accessible in the ‘Operational State’ and not in the ‘Standby State’. Moreover, the execution of one Mode (and its unique functions) within one State could transition the system to another Mode within a different State. The key here is the within part which seems to emerge, and I hope you are seeing. In the same way, functions are subordinate to Modes in that they are only available within certain Modes albeit not neccesarily exclusive to some modes, or in other words some functions can be found within (i.e. associated with) one Mode AND another (different) Mode. Because of this ‘hierarchical’, or ‘nested’ relationship, we can now further argue that some functions are indirectly available within certain States ONLY because of the associated Mode within that State, and not directly as expressed by Capella. Furthermore, although theoretically possible, one mode (and its functions) could be associated with multiple States, it is not considered good SE practice, and therefore mutual exclusivity between Modes within States should be attempted at all times, as opposed to the previously mentioned possible allowance of overlapping relationship between Modes and functions.
I know there has been much debate about which things should be considered as States and which as Modes (like the debate around ‘On’ and ‘Off’), but to me it does NOT influence this ‘hierarchical’ relationship between States and Modes at all, and clearly it should be necessary (and simple) for a good MBSE tool to be able to express this! I have performed many State/Mode analyses with diagrams and matrices in my life and they all involve the expression of available Modes within States, but I continue to struggle to find how to express this fact in Capella because get bogged down by the details of the tool operation whilst continuously running into the limitation due to the overarching philosophical differences.
I have tried creating Modes within States from the palette but (off course) without success. I have tried various approaches of creating separate State Mode Machines at various levels, some for Modes and others for States and attempted to find a matrix diagram at the sufficient level that would allow me access to express the interrelationship or associations between these States and Modes, but no success.
Am I simply missing a matrix that exists at some level that could allow me to do this?
Am I not creating the correct State/Mode machines at the right level?
Please help me to understand my misunderstanding.