Wednesday, March 5, 2008

Better Use Cases

Use "Use Cases" to:

·        identify and communicate requirements, especially interfaces,
 
·        refine an object model by reviewing object responsibilities and interactions,

·        establish a base for testing,

·        structure the system model into manageable views.

Introduction

Since Ivar Jacobson identified "use cases" in his Object-Oriented Software Engineering (OOSE) methodology, many methodologies have adapted and adopted the technique into their approach. 

Jacobson distinguishes use cases from scenarios, establishing them in his methodology more formally as a model in their own right, with scenarios corresponding to "use case instances."  The use case model consists of the use case diagram, which structures the use cases, and narrative descriptions of individual use cases. Sequence diagrams are used to show how objects in the object model interact in fulfilling the use case

Building the Use Case Model

The use case model is extended and refined along with the object model.  The use case model itself is iterated to ensure it covers the requirements and is structured appropriately.

To define the model:

·        Create a list of candidate use cases with a brief description of each.

·        Prioritize the candidate list and begin describing the use cases.

·        Model the relationships among the use cases.  Review and structure the use cases.  Consider dividing them into small use cases using the extends and uses relationships.  Build a diagram that shows the relationships among the use cases. 

·        Extend the descriptions to secondary use cases.

·        Compare the use cases to the object model.

·        Assess the use cases, revise and restructure.

·        Iterate.

Defining the Use Case model describes aspects of this process in more detail.

As the object model gets larger and more complex, use cases may be identified for subsets of the entire model, to refine the interactions and responsibilities of objects at a more detailed level.

No comments: