Granularity
Home Business Change Analysis & Design Agile Testing Templates About us

Problem Statement
Introduction
What they are
Granularity
Coupling
Flow Proliferation
Description
Dos and Don'ts
Example

Level of Granularity 

In terms of semantics the sole difference between UCs and Component Use Cases is the scope of the system boundary. Component Use Cases should not be interpreted as a more detailed version of the other, also UCs should not be considered analysis and Component Use Cases design. Therefore it is important that the Component Use Case is not written using a detailed design vocabulary. Whilst end-users are not the main customer of these, they should be written in a way that they could review them without being disenfranchised.

Use cases written as detailed design will require greater maintenance, since typically designs often change between iterations, and should the choice of solution change between cycles, then the use case will need to be re-written.

In both cases “what” the system is responsible for doing either in response to the actor stimulus or pre-empting it can be described. Since no “how” is being described both use cases are solution independent.

Of course the Component Use Case is not architecture independent, it can be considered the intersection of the requirements and the architecture (the two parallel drivers of any RUP initiative) 

The only differences between the two artefacts are:

bullet

The Component Use Case will show different (and typically more) interactions between the actor and the system in the flow

bullet

The system responsibilities (the what) are more refined as only a specific part of the system (the component) is being described.

Irrespective of the scope of the system there should be no other difference as to how the use cases are described! To reiterate, there should not be confusion as to some correlation to the level of system scope to the level of detail. Just because the scope is “GCS” or “component”, one isn’t more detailed or design focus or implementation than the other. All that has changed is that new interactions occur – therefore new steps. Therefore the same level of abstraction is appropriate and both are analysis – except one can be thought of analysis of the business analysis domain, the other of the system analysis domain.

Extension/Inclusion Points

Use cases work best where they are end-to-end. Clearly this is easy to achieve where the scope of the system boundary is wide. But even when the scope is small the temptation for functional decomposition – i.e. the prolific use of extends and includes should be avoided. Often careful use of Business Rules (see later) to outline a specific range of conditions can be used as a substitute

Given the existing Component Use Case baseline is to be built on the analysis team may have to accept cases where extension points have not be used appropriately, so an approach to reduce the confusion around these is to be used:

bullet

Extension/Includes should be shown explicitly in the use case description – if the use case is triggered by another use case, then the “calling” use case is described in the triggers, with its Component Use Case number, but see also the following section regarding actors

bullet

The proper use of extension is a ‘special case’, where the extension describes additional set of steps to achieve the special case.

example of explicit extension in triggers

 

4.4.1.1. Trigger

·         Extends “Component Use Case329: Administer User Access”

 

 

bullet

If the use case is extending/including another use case, extension/inclusion should be described as part of discrete step, together with the Component Use Case extended and a textual description of what the Component Use Case is achieving with regards to the flow.

3: Example of explicit extension in flow

 

Main flow – User authorised

13.   System includes “Component Use Case325: Authorise GCS Services”, to establish what services the user is authorised to do.

 

 

bullet

Some extension/inclusion can be assumed, and need not be shown in the flow as it will simply add clutter. An example of this, is any interaction with the common infrastructure (e.g. for authentication and authorisation purposes). Such interaction are best described in the pre-conditions or post-conditions sections.

bullet

Extension/inclusion is never to another or a discrete flow. If this is encountered the use case must be rewritten.

bullet

As a general principle extension/inclusion should be avoided wherever possible to avoid Component Use Cases being over fragmented. This lack of cohesion reduces the likelihood of use case reuse.

Back Next

[1] Although in the case of security these goals can often be the mitigation of key, named risks.

© 2002-2005 Codel Services Ltd

This paper has been prepared by Codel Services Ltd to illustrate how structured business modelling can help your organisation. Codel Services Ltd is an IT Consultancy specialising in business modelling. If you would like further information, please contact us at: Deryck Brailsford, Codel Services Ltd, Dale Hill Cottage, Kirby-Le-Soken, Essex CO13 0EN,United Kingdom. Telephone: +44 (0)1255 862354/Mobile: + 44 (0)7710 435227/e-mail: info@codel-services.com