CSC/ECE 517 Fall 2007/wiki2 4 np
Use cases. There are even more pages on the Web on use cases than on MVC. If someone wants to learn about them, what should (s)he do? Look at the first few hits in Google? I expect we can do better than that. Write a review of the use-case sites on the Web. Which are best for learning about the concept? Which have the most instructive examples? Which teach advanced concepts that are not apparent in perusing most use-case sites? Read at least several dozen pages before deciding how to organize your overview
What are use cases
A use case is a technique used in software and systems engineering to capture the functional requirements of a system.
They describe in a sequence of steps,the interaction between the initiator of the interaction—and the system itself. The initiator of the interaction is called as Actor. Actors can be end users,hardware devices or other systems,basically someone who takes part in the series of activities in a system.
Each use case is a complete series of events, from the point of view of the actor.One or more scenarios may be generated from each use case, corresponding to the detail of each possible way of achieving that goal.
There are numerous websites and resources on the topic of “Use cases”. We attempt to provide a guide to most useful ones among them. The rest of this page provides links to websites which provide more in depth information describing the use of use cases,use cases templates, examples, and advanced concepts , along with reviews of those sites.
The links are grouped as per the topics which will make it easy to find a related site.Within the group We have compared these on the basis of following criteria:
Level: beginner / intermediate / advanced
Content: short / medium / long
Introduction
These are introductory tutorials explaining the basics of use cases. Most of them are short and priliminary.
Beginner
• http://www.cragsystems.com/SFRWUC/index.htm
- Level: beginner
- Content: long
This is a web-based tutorial that introduces beginners to use cases. It clearly illustrates with appropriate examples the concepts related to use cases. It further describes application of use cases in documenting functional requirements. It also has a short quiz, a test and an exercise at the end. Excellent navigation is a plus.
• http://www.csc.calpoly.edu/~dbutler/tutorials/winter96/use/
- Level: beginner
- Content: short
This short tutorial discusses how use-cases fit into the framework of user-centered analysis. It gives a sample use case of ATM cash withdrawal. It also describes the role of use cases in design and testing phase.
Beginner /intermediate
• http://en.wikipedia.org/wiki/Use_case
- Level: beginner / intermediate
- Content: medium
This wiki provides an introduction to use case concepts in very simple terms, so seems to be a good starting point for early beginners.
• http://www.parlezuml.com/tutorials/usecases/usecases_intro.pdf
• http://parlezuml.com/tutorials/usecases/usecases.pdf
- Level: beginner / intermediate
- Content: short
These are very short and simple tutorials by Jason Gorman that explain the basics of use cases. Apart from use cases, the author covers the related concepts such as actors, system, scenarios. He also explains special use cases: <<extend>> and <<include>> and provides a brief explanation of how use cases can be part of agile development process.
• http://www.bredemeyer.com/use_cases.htm
- Level: beginner / intermediate
- Content: short
This is a one-page document illustrating how use cases can be effective means to gather functional requirements. It provides valuable pointers to other use-case resources. Though short, it is quite informative for new learners.
• http://alistair.cockburn.us/index.php/Use_case_fundamentals
- Level: beginner / intermediate
- Content: short
This is a good website which deals with the scope of use cases..It provides a brief description of use cases and actors along with analysis of use case reports.It also describes steps involved in validation of use cases.
• http://courses.softlab.ntua.gr/softeng/Tutorials/UML-Use-Cases.pdf
- Level: beginner / intermediate
- Content: medium
This presentation offers succinct definitions for various terms related to use cases, also provides notational guide for documenting use case diagrams. It explains how to build scenarios ( flow of events in a use case).
Advanced
• http://alistair.cockburn.us/index.php/Structuring_use_cases_with_goals
- Level: intermediate / advanced
- Content: long
Here is a great guide to use cases by Alistair Cockburn, a renowned strategist and one of the leaders of agile movement. Though the article quite reader-friendly, it expects the reader to be familiar with at least the basic concepts. It offers brief descriptions of terms involved and analysis of use case reports.
How to write use cases
Writing use cases are not confined to drawing use case diagram. Rather, a written use case is a brief but complete text description of every identified use case (functionality) of the system identified. Some of the instructive articles on this topic are as follows
Beginner
• http://infogenium.typepad.com/inside_infogenium/2007/07/getting-started.html
- Level: beginner
- Content: short
Here is a short tutorial for developers that are intimidated by the requirement documentation phase using the use cases. It explains the steps involved in capturing the requirements, introduces the concept of use-case brief. It illustrates the concepts with a file attachment example.
Intermediate
• http://www.informit.com/articles/article.aspx?p=30084&seqNum=8&rl=1
- Level: intermediate
- Content: medium
Here is an article that clearly distinguishes between a good use case and a bad use case. It gives an example of course registration for students and then explains writing the use case descriptions.
• http://www.answers.com/topic/use-case?cat=technology
- Level: intermediate
- Content: long
This is a comprehensive article that starts off with an overview of use cases and provides an excellent reference for how to write use cases. It also comments on various types of use-cases based on the functionality (business/system) or degree of detail (brief / casual / fully dressed). It elaborates on various sections of use case description.
Writing effective use cases
• http://www.gatherspace.com/static/use_case_example.html
- Level: intermediate / advanced
- Content: long
Explains the art of writing effective use cases by considering an example of writing use cases for a mock Ebay site. The practical nature of the example makes it an interesting exercise.
• http://alistair.cockburn.us/index.php/Sampler_of_good_%26_bad_use_cases
- Level: intermediate / advanced
- Content: short
The above link provides some sample good and bad use cases. These can act as Dos and Don'ts for developers.
Format/Template of use cases
It's useful to have a template for use case so that there are less chances of missing out on anything.
• http://alistair.cockburn.us/index.php/Basic_use_case_template
An excellent link which shows how to structure use cases. Provides different use case templates.
Use case diagrams
Pictorial representation of the use case is depicted using use case diagrams. Here are the links to use case diagram tutorials.
• http://en.wikipedia.org/wiki/Use_case_diagram
- Level: basic /intermediate
- Content: medium
This wiki link contains representation of use case generalization along with the notations for use case relationships like extend include.
• http://www.agilemodeling.com/artifacts/useCaseDiagram.htm
• http://www.andrew.cmu.edu/course/90-754/umlucdfaq.html#uses
- Level: intermediate
- Content: medium
The above links cover creation and understanding of Use Case Diagrams
Examples
Beginner
• http://www.objectmentor.com/resources/articles/usecases.pdf
- Level : Beginner
- Content :Short
This provides a simple example and explains use cases with use case diagrams for some of the functionalities.
• http://www.w3.org/2002/06/ws-example
- Level : Beginner
- Content : Short
This is a comprehensive example.It takes up a travel reservation system and attempts to explain different scenarios like checking availability of tickets,booking flights and hotels.It explains with great detail each scenario.
• http://www.agilemodeling.com/essays/useCaseReuse.htm
- Level : Beginner
- Content : Short
This is example taking up only one scenario ”Enroll in University” uses narrative style of writing a use case.
Beginner/ Intermediate
• http://www.soi.wide.ad.jp/class/20040034/slides/07/9.html
- Level :Beginner/Intermediate
- Content : Long
This is an excellent presentation which takes up a real-life ‘elevator’ example and provides multiple use-case descriptions for use cases.Since it relates to the real world it is easy for beginners to understand.
• http://www.cs.colorado.edu/~kena/classes/6448/s05/reference/usecases/examples.html
- Level :Beginner/Intermediate
- Content : Short
This is a one-page guide that illustrates the use case briefs, user-level and summary level use case given the actor-goal list and narrative of the system from the user.
• http://courses.softlab.ntua.gr/softeng/Tutorials/UML-Use-Cases.pdf
- Level : Beginner/Intermediate
- Content : Medium
This is an excellent example describing how to write use cases for different scenarios in a system. It takes up a courseware example breaking down different scenarios and explaining use cases.
Advanced
• http://www.se.cuhk.edu.hk/~seg3430/2007/tutorial/tutorial04.pdf
- Level : Intermediate/Advanced
- Content : Long
Though quite long, this link describes use cases for a credit card payment service.
Advanced Concepts
Pluggable use cases:
http://alistair.cockburn.us/index.php/Pluggable_use_cases
This introduces readers to concept of Pluggable use cases.
Essential use-cases:
http://www.agilemodeling.com/artifacts/essentialUseCase.htm
Essential use-case can be thought of as a less verbose and more succint version of the use case description. This document compares the traditional use case to essential use case.
Future direction:
http://alistair.cockburn.us/index.php/Use_cases%2C_ten_years_later
This article predicts the direction of future research in the field of use cases.
Tools
Rational Rose:
One of the most popular tool for use-case driven development.
http://www-306.ibm.com/software/awdtools/developer/rose/index.html
Sun Java Studio Enterprise:
Sun Java Studio Enterprise offers a UML tool.
http://developers.sun.com/jsenterprise/
Visual case:
UML & E/R Database Design Tool
Quick references
Some quick references for studying use cases
• http://www.oreilly.com.cn/samplechap/uml20inanutshell/UML20-ch07.pdf
• http://www.cs.rit.edu/~jaa/CS4/Lectures/UseCase.PDF
• http://www.alagad.com/go/blog-entry/uml-use-case-diagrams
• http://www.cs.nmsu.edu/~jeffery/courses/371/lecture.html
Good Tutorials
• http://www.parlezuml.com/tutorials/usecases/usecases.pdf
• http://www.readysetpro.com/whitepapers/usecasetut.html
Two very easy and informative tutorials for beginners who are not familiar with use cases. Both the tutorials contain some very good and simple examples coupled with easily understandable pictures. The first tutorial focuses on use case driven development and UML diagrams while the second deals with writing effective use cases.
Presentations Online
• https://users.cs.jmu.edu/bernstdh/web/common/lectures/slides_use-cases.php
This presentation describes writing use cases along with constructing use case diagrams
• http://www-rohan.sdsu.edu/faculty/rnorman/course/ids306/Lect_c4.ppt
This is a very good presentation that explains the concepts with familiar real life examples.
• http://www.cragsystems.com/SFRWUC/index.htm
This web-based tutorial describes creating a Use Case Model of the functional requirements for a computer system.
Books
Following are good books for learning use cases
[Writing Effective Use Cases by Alistair Cockburn ]
[Object-Oriented Software Engineering: A Use Case Driven Approach by Ivar Jacobson ]
References on the Web
Books:
1. Jocabson, Ivar. Basic Use-Case modeling, Report on Object Analysis and Design, 1(2): 15-19, 1994
2. Jocabson, Ivar. Baisc Use-Case Modeling (Continued), Report on Object Analysis and Design, 1(3): 7-9, 1994
3. Rumbaugh, James. Journal of Object-Oriented Programming: 8-12, 23, Sept. 1994
Online Resources:
Alistair Cockburn Home Page: http://alistair.cockburn.us/index.php/Main_Page
Tutorial links: http://www.answers.com/topic/use-case?cat=technology
All the links mentioned in the review.