CSC/ECE 517 Summer 2008/wiki2 4 uc: Difference between revisions
Line 10: | Line 10: | ||
*# Customer terminates | *# Customer terminates | ||
Even an example as simple as the one shown above can help designers understand the implications, in terms of the system design, so that the system will satisfy the requirements. For example, there are multiple potential exception processing points in this use case; the Agent could determine there is no ticket available, or the price offered may be more than the Customer wants to pay. The Customer may decide not to purchase a ticket for any reason. Both the Customer and Agent will have to be designed to handle these exception cases. | Even an example as simple as the one shown above can help designers understand the implications, in terms of the system design, so that the system will satisfy the requirements. For example, there are multiple potential exception processing points in this use case; the Agent could determine there is no ticket available, or the price offered may be more than the Customer wants to pay. The Customer may decide not to purchase a ticket for any reason. Both the Customer and Agent will have to be designed to handle these exception cases. After satisfactorily working through the use case with the user, the designer will understand the user expects to be able to refuse to purchase the ticket, and the designer can then flow that requirement into the system internals. | ||
Just as use cases help to identify Actors, Roles, and resources, they also help expose internal state and corner cases that designers may miss without this valuable input from the users. In addition, a well developed set of use cases can help designers make the system more robust, by enforcing restrictions on what users are allowed to do at certain points (for example, not allowing a subsequent missile launch, until the user presses a button on the firing panel indicating the previous launch was successful). | Just as use cases help to identify Actors, Roles, and resources, they also help expose internal state and corner cases that designers may miss without this valuable input from the users. In addition, a well developed set of use cases can help designers make the system more robust, by enforcing restrictions on what users are allowed to do at certain points (for example, not allowing a subsequent missile launch, until the user presses a button on the firing panel indicating the previous launch was successful). |
Revision as of 23:54, 25 June 2008
Use Cases
This page provides a review of the Use Case sites on the web. We provide an introductory discussion of Use Cases, including their purpose, applications, and techniques for their construction. In addition, we provide links to some of the best web sites for learning about Use cases, including the sites with the most instructive examples, and those teaching advanced concepts that might not be apparent from a quick search of the web.
Overview
Use Cases are a modeling aid used in software design to describe a sequence of events in a way that both the end users of a system, and the system designers and developers, can each understand completely. Use cases typically describe an event initiated by either a human user or another application, however the event and response are usually external, to maintain separation of responsibility between the designer and the user. The users should not have to be concerned about thread synchronization, for example, and the users should not need to care how the feature will be implemented. By communicating in a common language, end users may indicate what they require from the system, and designers may understand how those externaly visible requirements from the users translate into derived requirements internal to the system, in modules and subsystems not necessarily visible to the users. Most Use Cases simply describe a flow of events from input, or request, to output, or response. A typical use case for purchasing a ticket could be described by a user as follows:
- Customer requests ticket
- Agent determines if space is available and informs customer
- Customer purchases ticket, or declines price offered
- Agent accepts payment and delivers ticket, or terminates
- Customer terminates
Even an example as simple as the one shown above can help designers understand the implications, in terms of the system design, so that the system will satisfy the requirements. For example, there are multiple potential exception processing points in this use case; the Agent could determine there is no ticket available, or the price offered may be more than the Customer wants to pay. The Customer may decide not to purchase a ticket for any reason. Both the Customer and Agent will have to be designed to handle these exception cases. After satisfactorily working through the use case with the user, the designer will understand the user expects to be able to refuse to purchase the ticket, and the designer can then flow that requirement into the system internals.
Just as use cases help to identify Actors, Roles, and resources, they also help expose internal state and corner cases that designers may miss without this valuable input from the users. In addition, a well developed set of use cases can help designers make the system more robust, by enforcing restrictions on what users are allowed to do at certain points (for example, not allowing a subsequent missile launch, until the user presses a button on the firing panel indicating the previous launch was successful).
History
Use Cases were initially developed in the late 1960s by Ivar Jacobsen. Ivar
Benefits of Applying Use Cases
Expose Actors, Resources, and Roles
Anticipate Corner Cases
Applying Use Cases
Place of Use Cases in the Development Process
Techniques and Methods Adjunct With Use Cases
How to Apply Use Cases
Example Use Case
Summary
http://www.developer.com/design/article.php/2109801
http://www.google.com/search?hl=en&q=use+case+examples&start=10&sa=N
http://www.agilemodeling.com/artifacts/systemUseCase.htm
http://atlas.kennesaw.edu/~dbraun/csis4650/A&D/UML_tutorial/use_case.htm
http://www.pols.co.uk/use-case-zone
http://www.pols.co.uk/use-case-zone/use-case-papers
http://www.agilemodeling.com/style/useCaseDiagram.htm
http://www.google.com/search?hl=en&q=%22use+case%22+invented
http://www.hhs.gov/healthit/documents/EHRLabUseCase.pdf
http://jucmnav.softwareengineering.ca/twiki/bin/view/UCM/WebHome
http://en.wikipedia.org/wiki/Use_case
http://alistair.cockburn.us/index.php/Use_cases%2C_ten_years_later
http://www.google.com/search?hl=en&q=use+case+site%3Anist.gov&btnG=Google+Search
http://en.wikipedia.org/wiki/Activity_diagrams
http://en.wikipedia.org/wiki/Unified_Modeling_Language#Modeling
http://www.andrew.cmu.edu/course/90-754/umlucdfaq.html
http://embedded.com/98/9805br.htm
http://shelley.toich.net/projects/CS201/patriot.html
http://www.cert.fr/francais/deri/adele/DOCUMENTS/ariane5.html
http://www.embedded.com/97/feat9610.htm
http://www.embedded.com/9900356?_requestid=504357
http://www.embedded.com/products/softwaretools/175800445?_requestid=504492
http://www.embedded.com/180205522?_requestid=402
http://www.embedded.com/columns/embeddedpulse/9900179?_requestid=442
http://www.google.com/search?q=use+case+discover+%22corner+case%22&btnG=Search&hl=en&sa=2
http://en.wikipedia.org/wiki/User_story
http://msdn.microsoft.com/en-us/library/cc194881.aspx
http://www.usability.gov/methods/usecases.html
http://en.wikipedia.org/wiki/Essential_Unified_Process
http://en.wikipedia.org/wiki/Ivar_Jacobson
http://www.ivarjacobson.com/resources.cfm
http://www.ivarjacobson.com/resources/module/publications_action-download/file_id-172/
http://www.ivarjacobson.com/resources/module/publications_action-download/file_id-167/
http://www.ivarjacobson.com/resources/module/publications_action-download/file_id-173/
http://www.ivarjacobson.com/resources/module/publications_action-download/file_id-171/
http://alistair.cockburn.us/index.php/Main_Page
http://faculty.washington.edu/jtenenbg/courses/360/f02/project/usecaseguidelines.html
http://alistair.cockburn.us/index.php/Writing_Effective_Use_Cases_course
http://alistair.cockburn.us/index.php/Resources_for_writing_use_cases
http://alistair.cockburn.us/index.php/Basic_use_case_template
http://alistair.cockburn.us/index.php/Use_case_fundamentals
http://alistair.cockburn.us/index.php/Structuring_use_cases_with_goals
http://alistair.cockburn.us/index.php/Resources_for_writing_use_cases#Articles_online
http://alistair.cockburn.us/index.php/Resources_for_writing_use_cases#Presentations_online
http://alistair.cockburn.us/images/Usecasesintheoryandpractice180.ppt
http://alistair.cockburn.us/index.php/Basic_use_case_template
http://alistair.cockburn.us/index.php/Resources_for_writing_use_cases#Use_Case_Templates
http://c2.com/cgi/wiki?UseCases