| Use CasesThis page, part of a series on UML, describes what Use Cases are and how to use them to develop and test applications.
| Topics this page:
|
|
$45 The Object Advantage: business process engineering with object technology, by Jacobson, I., Ericsson, M. and Jacobson, A. Addison-Wesley, May 2001. Applies object-oriented technology to the business process engineering (BPR) model. $35 Writing Effective Use Cases by Alistair Cockburn (name pronounced "Coburn") of usecases.org. Addison-Wesley, Oct. 2000. 270 pages. $32 Practical Software Requirements (Manning Publications October 1, 1998) by Benjamin L. Kovitz gives a structure.
Software Requirements, 2nd edition (Microsoft Press February 26, 2003)
by Karl E. Wiegers presents a jargon-free introduction to the best practices in requirements
discovery, verification and validation.
$36 Mastering the Requirements Process (Addison-Wesley August 12, 1999) by Suzanne & James Robertson $45 Effective Requirements Practices (Addison-Wesley arch 8, 2001) by Ralph R. Young $35 Software Requirements (Addison-Wesley, January 16, 2002) by Soren Lauesen Visual-paradigm's Online Tutorial UML Use Case diagram of the RUP Testing Discipline
|
Use cases are useful for several reasons throughout the development life cycle:
Use cases can be presented graphically in a diagram or in prose form, somewhat structured and highly structured. Types of Use Case ActivitiesActivities performed in a use case may be categorized this way:
Use Case DiagramsUse case diagrams are external view of a system's interactions with the outside world. Therefore, the system under discussion is illustrated as a single entity. Each line represents a channel of dialog between the actor and the system. The oval use case icon encapsulates how the system achieves its goal -- structuring mechanism for interaction diagrams. The actual software is often structured in a completely different way.RelationshipsLines in a use case represent more than a transfer of data or command, as in traditional flow chart and UML Activity Diagrams.Lines in a UML use case between an actor and the system represent a more abstract concept of relationship of communication, acquaintance, or inheritance. A use case circle can be more than a user invoking an on-demand service that passively waits until called upon. A Use case circle can be event-driven, which proactively notifies one or more subscribers when specific events occur. Services that run on their own without formal invocation may be better represented as an (automated) actor rather than as a use case circle. UsesThe relationship lines labled with the <<uses>> stereotype illustrates how two use cases are combined.
ExtendsThe relationship line labled <<extends>> illustrates a special case: conditional (optional) or exception behavior.A sample of a generalization relation is of a business use case "Withdraw Cash". Examples of use cases Subordinate to it would be:
"Withdraw cash from ATM Machine". Another sample of a generalization relation is of when different technologies are used to achieve the same ends:
"Register using website". To identify extensions in your application, look through boundary values and states in your data, where a user may, while performing a business use case, optionally:
IncludesThe relationship line labled with the <<includes>> streotype illustrates where a business use case is a part of the aggravation of many larger business processes. ;) Whoops. I mean the aggregation of a more comprehensive use case. This is why the relationship arrow point into the aggregate (higher level) use case.
BoundariesA box defines the boundaries of related use cases. Lines from a box point to lower-level entities -- subdivision -- subgoals.This sample use case diagram is from the Professional version of Microsoft Visio 2002 software. It's called a “Jacobson use case model” because use cases were popularized by Ivar Jacobson, one of the gurus who joined Rational corporation and defined the Unified Modeling Language (UML). This sample is within the “software” category because it is a widely accepted documentation protocol for Object Oriented design and programming. A “scenario” results from sequencing interactions. A use case defines a collection of possible scenarios. A use case is a collection of scenarios, each with a different triggering event. The main course is the simplest scenario, the one in which everything goes right and goal is achieved without difficulty — all the subordinate use cases succeed. Alternative courses (and there can be any number of them) describe deviations from that basic course. Use cases are one aspect of a complete design, described in this graphic from a pdf file named “Structure and Style in Use Cases for User Interface Design” at Larry Constantine's website:
|
Use cases should not assume or specify a particular user interface object, such as “push the start button” or “press the screen”. |
Use Case ProseThere is no industry standard to describe use cases using sentences, but here is a typical example:
More Structured Use Case ProseAlistair Cockburn suggests a general form of prose using a event/response pair :
Convert to active voice the verbs listed in Sample Action Verbs Thus, typical sentences might look like:
Structured Use Case ProseVarious authors have proposed methods to better structure use case writeups.Alistair Cockburn's template provides space for information that is filled out over several passes during the life of the project. An example is descriptions for failed Extensions to the use case.
|
Related information to use cases:
| Your first name: Your family name: Your location (city, country): Your Email address: |
Top of Page
Thank you! |