|
|
|
|
|
Use CaseIn software engineering, a use case is a technique for capturing the potential requirements of a new system or software change. Each use case provides one or more scenarios that convey how the system should interact with the end user or another system to achieve a specific business goal. Use cases typically avoid technical jargon, preferring instead the language of the end user or domain expert. Use cases are often co-authored by software developers and end users. In 1986, Ivar Jacobson, an important contributor to the UML and Unified Process, originated the concept of the use case. Jacobson’s idea was influential and seminal. Numerous contributions have been made to the subject since then, but the most significant, influential and comprehensive, in terms of defining what use cases are and how to write them effectively, was provided by Alistair Cockburn, in his book Writing Effective Use Cases. During the 1990's use cases have rapidly become the most common practice for capturing functional requirements. This is especially the case within the object-oriented community where they originated, but their applicability is not restricted to object-oriented systems, because use cases are not object orientated in nature. Scope and goals of a use case Each use case focuses on describing how to achieve a single business goal or task. From a traditional software engineering perspective a use case describes just one feature of the system. For most software projects this means that multiple, perhaps dozens, of use cases are needed to fully specify the new system. The degree of formality of a particular software project and the stage of the project will influence the level of detail required in each use case. A use case defines the interactions between external actors and the system under consideration to accomplish a business goal. Actors are parties outside the system that interact with the system; an actor can be a class of users, roles users can play, or other systems. Use cases treat the system as a "black box", and the interactions with system, including system responses, are as perceived from outside the system. This is deliberate policy, because it simplifies the description of requirements, and avoids the trap of making assumptions about how this functionality will be accomplished. A use case should: - describe a business task to serve a business goal
- have no implementation-specific language
- be at the appropriate level of detail
- be short enough to implement by one software developer in single release.
Use Case diagrams Many people are introduced to use cases via UML, which defines a graphical notation for representing use cases. UML does not define standards for the written format to describe use cases, and thus many people have the misapprehension that this graphical notation defines the nature of a use case; however, a graphical notation can only give the simplest overview of a use case or set of use cases. The UML standard is the most popular standard for graphical notation of use cases. However, there are a number of alternative standards. Writing a use case Degree of detail Alistair Cockburn in Writing Effective Use Case identifies three degrees of detail in writing use cases. Brief A brief use case consists of a few sentences summarizing the use case. It is highly suitable for use in a spreadsheet used for planning software development. A brief use case can be easily inserted in a spreadsheet cell, and allows the other columns in the spreadsheet to record business priority, technical complexity, release number, etc. Casual A casual use case consists of a few paragraphs of text, covering the items mentioned above, elaborating the use case in the form of a summary or story. Fully dressed A fully dressed or complex use case is a formal document based on a long template with fields for various sections; and it is the most common understanding of the meaning of a use case. Fully dressed use cases are discussed in detail in the next section on use case templates. Appropriate use Some software development methodologies do not require anything more than a casual use case to define requirements. However, some other development methodologies require fully dressed or detailed use cases to define requirements. The larger and more complex the project, the more likely it will be necessary to use fully dressed use cases. Use case templates There is no agreed template for documenting detailed or fully dressed use cases. There are a number of competing schemes and individuals are encouraged to use templates that work for them or the project they are on. Standardisation for each project is more important than the detail of a specific template. However, there is considerable agreement about the core sections; and so beneath different terminology and order there is an underlying similiarity between most use cases. Typical sections include: - Use Case Name
- Iteration
- Summary
- Preconditions
- Triggers
- Basic course of events
- Alternative paths
- Postconditions
- Business rules
- Notes
- Author and date
Different templates often have additional sections, e.g. assumptions, exceptions, recommendations, technical requirements. There may also be industry specific sections. Use case name The use case name provides a unique identifier for the use case. It should be written in the verb/noun format and should be sufficient for the end user to understand what the use case is about. Iteration Often an iteration section is needed to inform the reader the stage a use case has reached. The initial use case developed for business analysis and scoping may well be very different to evolved version of that use case when the software is being developed. Older versions of the use case may still be current documents, because they may be valuable to different user groups. Summary The summary section is used to capture the essence of the scenario before the main body is complete. It provides a quick overview which is intended to save the reader from having to read the full contents of a use case to understand what the use case is about. Preconditions A preconditions section is used to convey any conditions that must be true when a user initiates a use case. They are not however the triggers that initiate a use case. Triggers The Triggers section describe the starting condition(s) which cause a use case to be initiated. Basic course of events At a minimum, each use case should convey a primary scenario, or the typical course of events. The main basic course of events is often conveyed as a set of usually numbered steps, for example: - 1) The system prompts the user to logon.
- 2) The user enters his name and password.
- 3) The system verifies the login information.
- 4) The system logs user on to system.
...and so on. Alternate paths Use cases may contain secondary paths, or alternate scenarios which are variations on the main theme. Exceptions, or what happens when things go wrong, may also be described, either within the alternative paths section or in a section on their own. The Alternative paths make use of the numbering of the basic course of events to show at which point they differ from the basic scenario, and if appropriate where they rejoin. The intention is to avoid repeating information unnecessarily. An example of an alternative path would be: - 1) The system recognizes cookie on users machine.
- 2) Go to step 4 (Main path)
An example of an exception path would be: - 3) The system does not recognizes users logon information
- 4) Go to step 1 (Main path)
Postconditions The post-conditions section summarizes the state of affairs after the scenario is complete. Business rules Business rules are written or unwritten rules that determine how an organisation conducts its business with regard to a use case. Business rules are a special kind of assumption. Business rules may be specific to a use case or apply across all the use cases, and indeed all the business. Notes Experience has shown that whatever template is used, analysts discover there is always important information that doesn't fit the structure of the template. Therefore each template usually includes a section for such seemingly inevitable information. Author and date This section should list when this version of the use case was created and who documented it. It should also list and date any versions of the use case from an earlier stage in the development which are still current documents. The author is traditionally listed at the bottom, because it is not considered to be essential information; use cases are intended to be collaborative endeavours and they should be jointly owned. Benefits of Use Cases Use cases are a newer, more agile format for capturing software requirements. They are often contrasted to large, monolithic documents that attempt but fail to completely convey all possible requirements before construction of a new system begins. Use cases have a number of advantages: - Use cases have proved to be easily understandable by business users, and so have proven an excellent bridge between software developers and end users.
- Use cases are useful for scoping. Use cases make it is easy to take a staged delivery approach to projects; they can be relatively easily added and removed from a software project as priorities change.
- Use cases are traceable.
- Use cases can also serve as the basis for the estimating, scheduling, and validating effort.
- Use cases discourage premature design
- Use cases don't use a special language.
- Use cases allow us to tell stories. It is very easy to describe a use case in a concrete way by turning it into a story or scenario.
- Use cases are reusable within a project. The use case can evolve at each iteration from a method of capturing requirements, to development guidelines to programmers, to a test case and finally into user documentation.
- Use cases are concerned with the interactions between the user and the system. They make it possible for user interface designers to become involved in the development process either before or in parallel with software developers.
- Use cases put requirements in context, they are clearly described in relationship to business tasks.
- Use case alternative paths capture additional behaviour that can improve system robustness.
Limitations of Use Cases Use cases are not without their limitations: - Use cases may be excellent for capturing the functional requirements of a system, but they are not so suited to easily capturing the non-functional requirements. Despite the overenthusiastic claims of some use case proponents, other methods are required to capture non-functional requirements.
- Use cases templates do not automatically ensure clarity. Clarity depends on the skill of the writer(s).
- Use cases are not as easy to understand as proponents suggest. There is a learning curve involved in learning to interpret them correctly for end users and programmers alike.
- Exponents of Extreme Programming often consider use cases too needlessly document centric, preferring to use the simpler approach of user stories.
- Use cases have been criticised by usability designers for introducing user interface design too early in the process. Given that use cases describe the interaction between a user and the system, there is obviously overlap with user interface design. Poorly written use cases can encode overly detailed and arbitrary user interface design in their descriptions of interactions, even though one of the principles of use cases is that implementation specific information should not be added.
See also External links
|
 |
|
| Copyright 2005-2009 OnPedia.com. All Rights Reserved |
|
|