Functionally decomposed use cases are the result of breaking up user tasks within the system into smaller steps,
operations or functions, and then documenting each as a separate use case. These use cases end up being
function focused, not user driven. It is also common for decomposed use cases to include
system-specific data and user interface design (clicks, buttons, menus etc.). This places artificial constraints on the
designers and developers of the system and makes use cases brittle. Changes to specific data or UI designs that are
included in the use case often require a re-write.
Functionally decomposed use cases can make communication between stakeholders and developers more difficult because
each use case only describes part of a process or business scenario. It doesn't deliver any value on its own in terms
of the results users expect from the system.
A developer looking at a decomposed use case is seeing only part of the business process picture and doesn't have
the complete context for the functionality they are building. The piece-part nature of decomposed use cases can also
hinder iteration planning by making it difficult to determine which combination of use cases covers the highest
priority functionality.
Test cases for unit testing can be easily derived from functionally decomposed use cases, however, functional
decomposition makes it harder to derive higher level test cases (system/integration or user acceptance test cases).
|