Concept: Functional Decomposition |
A common use case anti-pattern is to decompose use cases into functional chunks rather than flows that describe the value of using the system in a particular way.
Relationships
Related Elements | Detail Use-Case Scenarios Essential Use Cases Strategies to Avoid Functional Decomposition
Main Description
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).
More Information
Concepts | Essential Use Cases Use Case Granularity
Guidelines | Strategies to Avoid Functional Decomposition
© Copyright IBM Corp. 1987, 2009. All Rights Reserved.