Alistair.Cockburn.us
/ The Crystal Library
(Articles by other people)
|
Use Case FundamentalsNote from Alistair: This Use Case Fundamentals mini-document was sent by someone who had read the article "Structuring Use Cases with Goals", and wrote a digest of it for his group (thanks, Peter). It provides the following information.
What are Actors and Use Cases?Actors are basically users of the system. They are actually user types or categories. Actors are external entities (people or other systems) who interact with the system to achieve a desired goal. Use Cases are what happens when actors interact with the system. An actor uses the system to achieve a desired goal. By recording all the ways our system is used ("cases of use" or Use Cases) we accumulate all the goals or requirements of our system. Therefore: A use case is a collection of possible sequences of interactions between the system under discussion and its Users (or Actors), relating to a particular goal. The collection of Use Cases should define all system behavior relevant to the actors to assure them that their goals will be carried out properly. Any system behavior that is irrelevant to the actors should not be included in the use cases. There are many methods of defining how to pick or create a use case. The use cases in this report are generated using a goal oriented Structuring Methodology presented by Alistair Cockburn of Humans and Technology. Examining all the Actor's goals that the system satisfies yields the functional requirements. Goals summarize system function in understandable verifiable terms of use that users, executives and developers can appreciate and leave little open to interpretation. Use Cases:
Use Cases Do Not...
Use Cases are used during many stages of software development.
Use Case Definitions Primary Actors:The Actor(s) using the system to achieve a goal. The Use Case documents the interactions between the system and the actors to achieve the goal of the primary actor. Secondary Actors:Actors that the system needs assistance from to achieve the primary actors goal. Use Case:A collection of possible scenarios between the system under discussion and external actors, characterized by the goal the primary actor has toward the system's declared responsibilities, showing how the primary actor's goal might be delivered or might fail. Use cases are goals (use cases and goals are used interchangeably) that are made up of scenarios. Scenarios consist of a sequence of steps to achieve the goal, each step in a scenario is a sub (or mini) goal of the use case. As such each sub goal represents either another use case (subordinate use case) or an autonomous action that is at the lowest level desired by our use case decomposition. This hierarchical relationship is needed to properly model the requirements of a system being developed. A complete use case analysis requires several levels. In addition the level at which the use case is operating at it is important to understand the scope it is addressing. The level and scope are important to assure that the language and granularity of scenario steps remain consistent within the use case. There are two scopes that use cases are written from: Strategic and System. There are also three levels: Summary, User and Sub-function.
Scopes: Strategic and SystemStrategic Scope:The goal (Use Case) is a strategic goal with respect to the system. These goals are goals of value to the organization. The use case shows how the system is used to benefit the organization. These strategic use cases will eventually use some of the same lower level (subordinate) use cases. System Scope:Use cases at system scope are bounded by the system under development. The goals represent specific functionality required of the system. The majority of the use cases are at system scope. These use cases are often steps in strategic level use cases Levels: Summary Goal , User Goal and Sub-function.Sub-function Level Use Case:A sub goal or step is below the main level of interest to the user. Examples are "logging in" and "locate a device in a DB". Always at System Scope. User Level Use Case:This is the level of greatest interest. It represents a user task or elementary business process. A user level goal addresses the question "Does your job performance depend on how many of these you do in a day". For example "Create Site View" or "Create New Device" would be user level goals but "Log In to System" would not. Always at System Scope. Summary Level Use Case:Written for either strategic or system scope. They represent collections of User Level Goals. For example summary goal "Configure Data Base" might include as a step, user level goal "Add Device to database". Either at System of Strategic Scope.
The Use Case FormsUse Case Header: The forms contain a use case header that describes the use case using the following fields:
Following the Use Case Header is the collection of scenarios. Scenario Header:For Each Scenario in the Use Case the Scenario header lists the Scenario Name. Each scenario presents its list of steps.
Steps Section:The Steps section of the report is defined by the following fields:
Each Step is assumed to be successful, if there is a significant failure condition for the step that will prohibit the continued success of the scenario then the step may contain and exception. The exception either ends the use case in failure or details the steps required to recover. Exception Header:The exception header can be present for each step and has two fields:
The exception section then details each step required to recover. Validating Use CasesAs stated before, Use Cases are used during many stages of software development.
Needless to say, it is very important that the Use Cases are validated thoroughly. As you are reading these use cases, ask the following questions...
End of document |