What is the real novelty of the FAS method, compared to the existing use-case based approaches form software engineering?
The FAS method shows that activity models can be used not only for information processing systems but also for heterogeneous systems, which may be processing energy, force or matter in addition to information. The derived blocks are not necessarily software elements, but functional blocks to be in general allocated to different physical elements in such a heterogeneous system.
Why or when to distinguish between functional group and functional block?
The distinction may seem artificial. Actually, we do recommend only using functional blocks and not functional groups to those users who do not see the value of the functional groups. However, there are a context in which the separation of functional blocks from functional groups may create value for different reasons:
- Lifecycle aspects: the functional groups represent fundamental architecture decisions whereas the functional blocks represent the actual functional architecture. The latter will be worked out more when working on the architecture. Therefore functional groups and functional blocks may be part of different baselines and may, therefore, need to be decoupled.
- Compatibility aspects: The FAS method is independent of the modeling language. In order to make it fit well to different modeling languages, we wanted to separate the element used for grouping (i.e. the functional group) from the element on which the functional block diagrams are based (i.e. the functional block). This should ensure that modeling languages which have a very rigid way of representing block diagrams can still support the grouping of functions via a suitable model element, which may be a different element than the ones used in block diagrams. Since our SysML examples for using the FAS method use the model element block for both the functional group and the functional block and since our card technique uses the same kind of card for both, it is confusing especially for users of SysML or paper cards that the functional group and the functional block are distinguished in general in the method description. As mentioned it is OK to give up on the distinction where it is confusing.
Why are functional blocks named with nouns like “Music Player” and not with verb-noun combinations like “Play Music”?
Our convention is to use verb-noun combinations for functions, which are in the FAS method represented by Use Case Activities. Functional blocks, however, are in general a grouping of several functions, so it is not always possible to find a suitable verb-noun combination – but it should always be possible to find a suitable noun if the block makes sense.
The complete set of naming conventions around the method is as follows:
- Use Cases: The name is a verb-noun combination as seen from the actor’s perspective (example: Listen to Music)
- Use Case Activity: The name is a verb-noun combination as seen from the system’s perspective (example: Play Music)
- Functional Block: The name is a noun (example: Music Player)