Use-case flowdown is an activity for deriving functional requirements for
systems and their elements. Flowdown can be applied to add detail within
a model level or to specify elements at a lower model level. For example,
flowdown can be used to determine system services at the context level.
Similarly, it can be used at the analysis level to identify subsystem
services and to break subsystems into further subsystems. It is important to note that flowdown may be applied recursively -- in other words, whitebox elements become blackbox for the next application. This allows the team to reason about large systems at the appropriate level of specificity. Repeated application of the flowdown activity allows teams to add detail while managing a consistent level of abstraction.
It also permits concurrent design; that is, each whitebox entity can be
specified sufficiently to be treated as a blackbox entity for further design
by separate teams. You can use this approach not only to derive requirements for elements of the analysis model, but also, with little modification, to determine system requirements from business requirements. Performing flowdown in the hierarchical manner we described above results in an interesting relationship between services and use cases: blackbox services become whitebox use cases. Use cases describe how an entity and elements in its context collaborate to fulfill some purpose. Here, the purpose of the use-case flowdown is to support delivery of a system service.
The realization of the service consists of use-case scenarios. For each UML subsystem, you can build a context diagram showing system actors with which the subsystem collaborates, as well as the peer subsystems with which it shares a dependency relationship (these are akin to the enterprise and internal actors discussed under System Specification in Part I). From the subsystem point of view, the service realization is exactly how it collaborates with its actors to carry out its role. This is exactly a use-case scenario. Note that flowdown does change
the common value heuristic of use-case analysis. The use cases in flowdown provide value to the blackbox entity, and not necessarily to any of the participating actors.