As originally defined by Ivar Jacobson, uses cases (UCs) are focused on the interactions between users and systems. The question is how to associate UC requirements, by nature local, concrete, and changing, with broader business objectives set along different time-frames.
Backing Use Cases
On the system side UCs can be neatly traced through the other UML diagrams for classes, activities, sequence, and states. The task is more challenging on the business side due to the diversity of concerns to be defined with other languages like Business Process Modeling Notation (BPMN).
Broadly speaking, tracing use cases to their business environments have been undertaken with two approaches:
- Differentiated use cases, as epitomized by Alister Cockburn’s seminal book (Readings).
- Business use cases, to be introduced beside standard (often renamed as “system”) use cases.
As it appears, whereas Cockburn stays with UCs as defined by Jacobson but refines them to deal specifically with generalization, scaling, and extension, the second approach introduces a somewhat ill-defined concept without setting apart the different concerns.
Differentiated Use Cases
Being neatly defined by purposes (aka goals), Cockburn’s levels provide a good starting point:
- Users: sea level (blue).
- Summary: sky, cloud and kite (white).
- Functions: underwater, fish and clam (indigo).
As such they can be associated with specific concerns:
- Blue level UCs are concrete; that’s where interactions are identified with regard to actual agents, place, and time.
- White level UCs are abstract and cannot be instanciated; cloud ones are shared across business processes, kite ones are specific.
- Indigo level UCs are concrete but not necessarily the primary source of instanciation; fish ones may or may not be associated with business functions supported by systems (grey), e.g services , clam ones are supposed to be directly implemented by system operations.
As illustrated by the example below, use cases set at enterprise or business unit level can also be concrete:
UC abstraction connectors can then be used to define higher business objectives.
Business “Use” Cases
Compared to Cockburn’s efficient (no new concept) and clear (qualitative distinctions) scheme, the business use case alternative adds to the complexity with a fuzzy new concept based on quantitative distinctions like abstraction levels (lower for use cases, higher for business use cases) or granularity (respectively fine- and coarse-grained).
At first sight, using scales instead of concepts may allow a seamless modeling with the same notations and tools; but arguing for unified modeling goes against the introduction of a new concept. More critically, that seamless approach seems to overlook the semantic gap between business and system modeling languages. Instead of three-lane blacktops set along differentiated use cases, the alignment of business and system concerns is meant to be achieved through a medley of stereotypes, templates, and profiles supporting the transformation of BPMN models into UML ones.
But as far as business use cases are concerned, transformation schemes would come with serious drawbacks because the objective would not be to generate use cases from their business parent but to dynamically maintain and align business and users concerns. That brings back the question of the purpose of business use cases:
- Are BUCs targeting business logic ? that would be redundant because mapping business rules with applications can already be achieved through UML or BPMN diagrams.
- Are BUCs targeting business objectives ? but without a conceptual definition of “high levels” BUCs are to remain nondescript practices. As for the “lower levels” of business objectives, users’ stories already offer a better defined and accepted solution.
If that makes the concept of BUC irrelevant as well as confusing, the underlying issue of anchoring UCs to broader business objectives still remains.
Conclusion: Business Case for Use Cases
With the purposes clearly identified, the debate about BUC appears as a diversion: the key issue is to set apart stable long-term business objectives from short-term opportunistic users’ stories or use cases. So, instead of blurring the semantics of interactions by adding a business qualifier to the concept of use case, “business cases” would be better documented with the standard UC constructs for abstraction. Taking Cockburn’s example:
Different levels of abstraction can be combined, e.g:
- Business rules at enterprise level: “Handle Claim” (19) is focused on claims independently of actual use cases.
- Interactions at process level: “Handle Claim” (21) is focused on interactions with Customer independently of claims’ details.
Broader enterprise and business considerations can then be documented depending on scope.
- Use Cases shouldn’t know about classes
- Use Cases & Action Semantics
- Business Processes & Use Cases
- Use Cases are Agile Tools
- Focus: Business Processes & Abstraction
- Yves Wautelet, Stephan Poelmans, “Aligning the Elements of the RUP/UML Business Use-Case Model and the BPMN Business Process Diagram”
3 thoughts on “Focus: Business Cases for Use Cases”
You said it right! I visit your blog pretty often and I always feel
more intelligent afterwards. I shared this post on Facebook and my friends thought it was great too.
Anyhow, I just wanted to let you know that I appreciate what you’re doing here.
Sincerely, Your #1 fan! lol 🙂
I will have a look at Cockburn examples.
It is a good way to link the theories to guide new entrants about the way to go from business cases to use cases.
In practice we kind of do the same thing, but sometimes we fit a proverbial round plug (uC) in square holes – leaving some itches to the business.
An elaboration of what is mentioned above can be used in systematic teaching and expanded to device ways to handle some out of the way business cases which are tough nut to get into UC (examples needed to support this point).