CSC/ECE 517 Fall 2007/wiki2 4 dj: Difference between revisions
No edit summary |
|||
(25 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
'''Assignment'''<br> | |||
''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. '' | ''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. '' | ||
='''Introduction'''= | |||
===Definition=== | |||
''A use case is a methodology that helps identify the functional requirements of software. A use-case model describes actors, use cases, and relations among them. Actors represent entities that must exchange information with the system, including users. When an actor uses the system, the system performs a use case. A good use case is a sequence of transactions that yields a measurable result of value for an actor. The collection of use cases is the system's complete functionality.'' | |||
<br> | |||
Use case gives us a list of events which occur from the time the actor begins interacting with the system till the time the final goal is achieved. Other details not relevant to the user are not a part of the use case. | |||
[http://www.ibm.com/developerworks/webservices/library/co-design5.html OO design process: Use cases, an introduction] | |||
===Simple Steps which lead to effective use cases=== | |||
Use Case Writing Steps | |||
1: Identify Classes of Users<br> | |||
↓<br> | |||
2: Outline the Use Case Suite<br> | |||
↓<br> | |||
3: List Use Case Names<br> | |||
↓<br> | |||
4: Write Some Use Case Descriptions<br> | |||
↓<br> | |||
5: Write Steps for Selected Use Cases<br> | |||
↓<br> | |||
6: Evaluate Use Cases<br> | |||
<br> | |||
===Simple Examples=== | |||
<b>Example use case diagram for the library administration machine.</b> | |||
The example show primary actors on the left, goals in the middle, and the supporting | |||
actors on the right. The primary actors are using the system to fulfill the goals. The | |||
supporting actors are helping the system fulfill the goals of the primary actors. In the use | |||
case diagram, the supporting actors that are not human beings are represented using a | |||
different notation. Although, it is optional to do so, it improves the readability of the | |||
diagram. The diagram also shows that more than one actor can fulfill a goal. For | |||
example, both the patron and the librarian is able to check out, check in, and pay a fine. | |||
The librarian can also fulfill additional goals such as adding a book, reporting a book as | |||
stolen, adding a new patron, cancelling the membership of a patron. Showing the system | |||
boundary is very important. In this case, if the system boundary was not shown the reader | |||
of the use case diagram (often the customer) may confuse that the machine will come | |||
with the book record and the patron record. The diagram clearly shows the portion of the | |||
system that will be delivered and clarifies that confusion. | |||
<br> | |||
[[Image:ex1.jpg]] | |||
<b>Example use case diagram for the patient monitoring machine</b> | |||
The figure below shows the use case diagram for the patient monitoring example. Again | |||
the primary actors are shown on the left, goals in the middle, and the supporting actors on | |||
the right. In this example, the immediate primary actors are not human beings. However, | |||
for clarification, I have shown the human actors (nurse, patient) that are interacting with | |||
the system through the immediate primary actors (nurse station, and analog readers). | |||
[[Image:ex2.jpg]] | |||
<br>The above two examples have been borrowed from [http://www.cs.iastate.edu/~cs362/notes/use-case-diagram-examples.pdf here]<br> | |||
<br> | |||
<b>An excellent example which takes you through textual descriptions as well as Use case Diagrams can be found </b>[http://www.dcs.bbk.ac.uk/~steve/lastisc1/sld001.htm here]<br> | |||
<br><br> | |||
The remaining of the article discusses various websites that are useful for understanding Use Cases and Use Case Diagrams from multiple dimensions. | |||
<br> | |||
='''Best for learning about the concept'''= | |||
==[http://en.wikipedia.org/wiki/Use_case Use case Wikipedia]== | ==[http://en.wikipedia.org/wiki/Use_case Use case Wikipedia]== | ||
==='''Likes'''=== | ==='''Likes'''=== | ||
Provides good basic understanding<br> | Provides good basic understanding.<br> | ||
Also provides Use case templates<br> | Also provides Use case templates.<br> | ||
Discusses benefits and limitations of use cases.<br> | Discusses benefits and limitations of use cases.<br> | ||
Provides good references and External links. | Provides good references and External links. | ||
==='''Drawbacks'''=== | ==='''Drawbacks'''=== | ||
Information maybe incorrect/ old<br> | Information maybe incorrect/ old.<br> | ||
No examples are provided to ease learning. | No examples are provided to ease learning. | ||
==='''Review'''=== | ==='''Review'''=== | ||
Wikipedia, the most common information source, seems to carry lot of information on Use Cases and also goes into discussing their benefits and limitations. The page also provides references and external links | Wikipedia, the most common information source, seems to carry lot of information on Use Cases and also goes into discussing their benefits and limitations. The page also provides references and external links.<br> | ||
== [http://en.wikipedia.org/wiki/Use_case_diagram Use Case Diagram Wikipedia] == | |||
=== '''Likes''' === | |||
-Precise explanation of Use Case Diagrams and its notations.<br> | |||
-Also explains advanced concepts like different types of relationships.<br> | |||
-Illustrates the concept with an easy example making it easier for first time readers. | |||
=== '''Drawbacks''' === | |||
-Does not provide a basic understanding of why use cases are required.<br> | |||
-The page uses technical language which might be deterrent for novices.<br> | |||
-Again since it is a wiki page the information could be tampered by anyone. | |||
=== '''Review''' === | |||
-Though the page contains all elements which are instrumental in understanding use cases and use cases diagrams the semantics of use cases could have been better expressed if simple language was used.<br> | |||
='''Teaches advanced concepts '''= | |||
==[http://alistair.cockburn.us/index.php/Structuring_use_cases_with_goals Structuring use cases with goals – AC ]== | ==[http://alistair.cockburn.us/index.php/Structuring_use_cases_with_goals Structuring use cases with goals – AC ]== | ||
==='''Likes'''=== | ==='''Likes'''=== | ||
Written by Alistair Cockburn, the author of Jolt Productivity Award winning book Writing Effective Use Cases.<br> | Written by Alistair Cockburn, the author of Jolt Productivity Award winning book Writing Effective Use Cases.<br> | ||
Provides a more detailed | Provides a more detailed and practical view of Use Case usage.<br> | ||
Describes scenarios and howto control Scenario explosion<br> | Describes scenarios and howto control Scenario explosion.<br> | ||
Also talks about cases where goal-phrase structure can be used<br> | Also talks about cases where goal-phrase structure can be used.<br> | ||
Identifies shortcomings of Use Case | Identifies shortcomings of Use Case. | ||
==='''Drawbacks'''=== | ==='''Drawbacks'''=== | ||
Maybe too much information for some people.<br> | Maybe too much information for some people.<br> | ||
Text is difficult to understand and read.<br> | Text is difficult to understand and read.<br> | ||
Text is not formatted, to make it visually appealing<br> | Text is not formatted, to make it visually appealing. | ||
==='''Review'''=== | |||
A very good page written, by a well known person on Use cases. The page has been written in a very informal tone and contains more information than the space. However, the page is not properly formatted which desont make reading it very intresting.<br> | |||
='''Has the most instructive examples'''= | |||
==[http://www.gatherspace.com/static/use_case_example.html Writing effective Use Case Examples]== | |||
==='''Likes'''=== | |||
Gets right to point without any fluff.<br> | |||
Easy to understand, with diagrams and examples. | |||
==='''Drawbacks'''=== | |||
Has lot of ads and the “Try it” (example) link takes you somewhere else. | |||
==='''Review'''=== | ==='''Review'''=== | ||
Simply loved the website, its just what someone like me looks for to gets things done. Explains howto write Use Cases alongwith an example.<br> | |||
==[http://www.developer.com/design/article.php/10925_2109801_1 Excellent walkthrough with understanding and example]== | |||
==='''Likes'''=== | |||
-The page serves as an excellent resource for learning all facets of Use Cases and Use Case diagrams.<br> | |||
-The entire tutorial is divided in a logical manner starting from basic topics right through advanced stuff.<br> | |||
-The page uses very natural examples from the real world to explain each concept related to Use cases. | |||
==='''Drawbacks'''=== | |||
-Very little has been said about the theory behind Use cases and its evolution i.e. why was a need felt to create an Object Oriented instrument like use cases. | |||
==='''Review'''=== | |||
- An excellent page for people who wish to start off developing Use cases and use cases diagrams just by reading a single webpage.<br> | |||
==[http://www.math-cs.gordon.edu/courses/cs320/ATM_Example/UseCases.html Use Cases for Example ATM System]== | |||
==='''Likes'''=== | |||
One of the best pages found, which explains an example in full length. | |||
==='''Drawbacks'''=== | |||
Has no diagrams<br> | |||
Skips on basic explaining basic terms<br> | |||
Has no inline links to explain, some of the terms used. | |||
==='''Review'''=== | |||
A very good page for anyone who’s looking for a Use Cases for Example ATM System or for an example Use case application for that matter.<br> | |||
='''Some Questions answered '''= | |||
==[http://www.usability.gov/methods/usecases.html Answers Basic Questions]== | |||
==='''Likes'''=== | |||
-Answers basic questions like <br> | |||
•What is a use case? <br> | |||
•What does a use case describe? <br> | |||
•How do you write a use case? | |||
==='''Drawbacks'''=== | |||
-The concept is explained from the point of view of website usability.<br> | |||
-Only the concept is explained without example. | |||
==='''Review'''=== | |||
-A simple page for understanding the concept of use cases.<br> | |||
==[http://ootips.org/use-cases-vs-requirements.html Questions on advanced topics]== | |||
==='''Likes'''=== | |||
Can be considered as set of pages which will help you decide while you start developing use cases for your system. It will help you answer questions like “How Many use cases are required for my system?” | |||
==='''Drawbacks'''=== | |||
-Only the concept is explained without example. | |||
==='''Review'''=== | |||
-A simple page for answering certain questions which arise while development of use cases. | |||
='''External Links'''= | |||
http://www.protoolkits.com/Analysisandrequirements/Analysistechniques/usecases.html<br> | |||
http://web.cecs.pdx.edu/~maier/386/usecase06.pdf<br> | |||
http://ootips.org/use-cases-done.html<br> | |||
http://alistair.cockburn.us/index.php/Use_case_fundamentals<br> | |||
http://alistair.cockburn.us/index.php/Resources_for_writing_use_cases<br> | |||
http://alistair.cockburn.us/index.php/Use_cases%2C_ten_years_later<br> |
Latest revision as of 02:50, 30 October 2007
Assignment
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.
Introduction
Definition
A use case is a methodology that helps identify the functional requirements of software. A use-case model describes actors, use cases, and relations among them. Actors represent entities that must exchange information with the system, including users. When an actor uses the system, the system performs a use case. A good use case is a sequence of transactions that yields a measurable result of value for an actor. The collection of use cases is the system's complete functionality.
Use case gives us a list of events which occur from the time the actor begins interacting with the system till the time the final goal is achieved. Other details not relevant to the user are not a part of the use case.
OO design process: Use cases, an introduction
Simple Steps which lead to effective use cases
Use Case Writing Steps
1: Identify Classes of Users
↓
2: Outline the Use Case Suite
↓
3: List Use Case Names
↓
4: Write Some Use Case Descriptions
↓
5: Write Steps for Selected Use Cases
↓
6: Evaluate Use Cases
Simple Examples
Example use case diagram for the library administration machine.
The example show primary actors on the left, goals in the middle, and the supporting
actors on the right. The primary actors are using the system to fulfill the goals. The
supporting actors are helping the system fulfill the goals of the primary actors. In the use
case diagram, the supporting actors that are not human beings are represented using a
different notation. Although, it is optional to do so, it improves the readability of the
diagram. The diagram also shows that more than one actor can fulfill a goal. For
example, both the patron and the librarian is able to check out, check in, and pay a fine.
The librarian can also fulfill additional goals such as adding a book, reporting a book as
stolen, adding a new patron, cancelling the membership of a patron. Showing the system
boundary is very important. In this case, if the system boundary was not shown the reader
of the use case diagram (often the customer) may confuse that the machine will come
with the book record and the patron record. The diagram clearly shows the portion of the
system that will be delivered and clarifies that confusion.
Example use case diagram for the patient monitoring machine The figure below shows the use case diagram for the patient monitoring example. Again the primary actors are shown on the left, goals in the middle, and the supporting actors on the right. In this example, the immediate primary actors are not human beings. However, for clarification, I have shown the human actors (nurse, patient) that are interacting with the system through the immediate primary actors (nurse station, and analog readers).
The above two examples have been borrowed from here
An excellent example which takes you through textual descriptions as well as Use case Diagrams can be found here
The remaining of the article discusses various websites that are useful for understanding Use Cases and Use Case Diagrams from multiple dimensions.
Best for learning about the concept
Use case Wikipedia
Likes
Provides good basic understanding.
Also provides Use case templates.
Discusses benefits and limitations of use cases.
Provides good references and External links.
Drawbacks
Information maybe incorrect/ old.
No examples are provided to ease learning.
Review
Wikipedia, the most common information source, seems to carry lot of information on Use Cases and also goes into discussing their benefits and limitations. The page also provides references and external links.
Use Case Diagram Wikipedia
Likes
-Precise explanation of Use Case Diagrams and its notations.
-Also explains advanced concepts like different types of relationships.
-Illustrates the concept with an easy example making it easier for first time readers.
Drawbacks
-Does not provide a basic understanding of why use cases are required.
-The page uses technical language which might be deterrent for novices.
-Again since it is a wiki page the information could be tampered by anyone.
Review
-Though the page contains all elements which are instrumental in understanding use cases and use cases diagrams the semantics of use cases could have been better expressed if simple language was used.
Teaches advanced concepts
Structuring use cases with goals – AC
Likes
Written by Alistair Cockburn, the author of Jolt Productivity Award winning book Writing Effective Use Cases.
Provides a more detailed and practical view of Use Case usage.
Describes scenarios and howto control Scenario explosion.
Also talks about cases where goal-phrase structure can be used.
Identifies shortcomings of Use Case.
Drawbacks
Maybe too much information for some people.
Text is difficult to understand and read.
Text is not formatted, to make it visually appealing.
Review
A very good page written, by a well known person on Use cases. The page has been written in a very informal tone and contains more information than the space. However, the page is not properly formatted which desont make reading it very intresting.
Has the most instructive examples
Writing effective Use Case Examples
Likes
Gets right to point without any fluff.
Easy to understand, with diagrams and examples.
Drawbacks
Has lot of ads and the “Try it” (example) link takes you somewhere else.
Review
Simply loved the website, its just what someone like me looks for to gets things done. Explains howto write Use Cases alongwith an example.
Excellent walkthrough with understanding and example
Likes
-The page serves as an excellent resource for learning all facets of Use Cases and Use Case diagrams.
-The entire tutorial is divided in a logical manner starting from basic topics right through advanced stuff.
-The page uses very natural examples from the real world to explain each concept related to Use cases.
Drawbacks
-Very little has been said about the theory behind Use cases and its evolution i.e. why was a need felt to create an Object Oriented instrument like use cases.
Review
- An excellent page for people who wish to start off developing Use cases and use cases diagrams just by reading a single webpage.
Use Cases for Example ATM System
Likes
One of the best pages found, which explains an example in full length.
Drawbacks
Has no diagrams
Skips on basic explaining basic terms
Has no inline links to explain, some of the terms used.
Review
A very good page for anyone who’s looking for a Use Cases for Example ATM System or for an example Use case application for that matter.
Some Questions answered
Answers Basic Questions
Likes
-Answers basic questions like
•What is a use case?
•What does a use case describe?
•How do you write a use case?
Drawbacks
-The concept is explained from the point of view of website usability.
-Only the concept is explained without example.
Review
-A simple page for understanding the concept of use cases.
Questions on advanced topics
Likes
Can be considered as set of pages which will help you decide while you start developing use cases for your system. It will help you answer questions like “How Many use cases are required for my system?”
Drawbacks
-Only the concept is explained without example.
Review
-A simple page for answering certain questions which arise while development of use cases.
External Links
http://www.protoolkits.com/Analysisandrequirements/Analysistechniques/usecases.html
http://web.cecs.pdx.edu/~maier/386/usecase06.pdf
http://ootips.org/use-cases-done.html
http://alistair.cockburn.us/index.php/Use_case_fundamentals
http://alistair.cockburn.us/index.php/Resources_for_writing_use_cases
http://alistair.cockburn.us/index.php/Use_cases%2C_ten_years_later