W3C home > Mailing lists > Public > www-ws-arch@w3.org > June 2002

Use Case Definition

From: Mark Hapner <mark.hapner@sun.com>
Date: Thu, 06 Jun 2002 14:59:45 -0700
Message-ID: <3CFFDB51.E496801F@sun.com>
To: ws-arch-public <www-ws-arch@w3.org>

During a discussion in the use case subgroup several 'definitions' of use case
terminology were quoted. Dave asked them to be posted. Here is mine.

The following is quoted from UML Distilled by Martin Fowler ...

So, what is a use case?

I won't answer this question head-on. Instead, I'll sneak up on it from behind
by first describing a scenario.

A scenario is a sequence of steps describing an interaction between a user and a
system. So if we have a Web-based on-line store, we might have a Buy Poduct
scenario that would say this:

"The customer browses the catalog and adds desired items to the shopping basket.
When the customer wishes to pay, the customer describes the shipping and credit
card informations and confirms the sale. The system checks the authorization on
the credit card and confirms the sale both immediately and with a follow-up

This scenario is one thing that can happen. However, the credit card
authorization might fail. This would be a separate scenario.

A 'use case', then is a set of scenarios tied together by a common user goal. In
the current situation, you have a Buy a Product use case with the successful
purchase and the authorization failure as two of the use case's scenarios.


Use Case Relationships

Use 'include' when you are repeating yourself in two or more separate use cases
and you want to avoid repetition.

Use 'generalization' when you are describing a variation on normal behavior and
you wish to describe it casually. (my note - this is essentially taking a
scenario and elevating it to its own use case without declaring formal extension
points in the use case.)

Use 'extend' when your are describing a variation on normal behavior and you
wish to use the more controlled form, declaring your extension points in your
base use case.
Received on Thursday, 6 June 2002 17:59:46 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 23:05:34 UTC