Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Is there an exact, but simple and understandable defintion of the distinction between "use case", "User Story" and "Usage Scenario"?

there are quite a bunch of explanation, but right now, I see no one that explains the differences in a single sentence, or two...

(e.g. http://c2.com/cgi-bin/wiki?UserStoryAndUseCaseComparison very long and hard to get, full of discussion)

share|improve this question

migrated from stackoverflow.com Oct 10 '11 at 7:16

This question came from our site for professional and enthusiast programmers.

    
Thank you for your question. For some reason, people who come up with methodologies are never accurate deliberately (I assume)so that their thoughts are never accused to be not applicable to certain situation. This is dragging the entire industry back, where each of us has to create an adaption that works before using the methodology. I hope the community stands against this behavior. Sometimes, you pick 2 books and they define things differently - Science does not work this way. –  Emmad Kareem Oct 10 '11 at 10:03
    
I suggest you check the Wikipedia definition of each of your terms. It may help you understand better what the terms mean. Also note that the terms come from different concepts. For example, user story is an Agile tool/technique and Use Case is an OOA tool/technique. –  Emmad Kareem Jan 5 '12 at 15:04
add comment

7 Answers

up vote 10 down vote accepted

A User Story is a more informal, friendlier and smaller version of a Use Case, minus the UML diagram; it is typically used in iterative scenarios.

A Usage Scenario is a Use Case drawn out into a step-by-step procedure, sometimes accompanied by a flowchart.

share|improve this answer
add comment

To me, the biggest differences between a User Story and a Use Case are:

  • A user story is a lightweight document that can be written on a card (In order to , as a , I want ). A User Story doesn't capture all the details, it's an informal support for the discussion.
  • A use case is an heavyweight document that needs a word document. It describes a "Normal Flow" of steps and/or actions and "Alternative Flows" which are detailed. A Use Case captures all the details, it's a formal specification.

According to Scott W. Ambler on Usage Scenarios, these artifacts look like a Use Case's flow:

A usage scenario, or scenario for short, describes a real-world example of how one or more people or organizations interact with a system. They describe the steps, events, and/or actions which occur during the interaction. Usage scenarios can be very detailed, indicating exactly how someone works with the user interface, or reasonably high-level describing the critical business actions but not the indicating how they’re performed.

Honestly, the differences with a Use Case's flow is not crystal clear, even after reading this paragraph (the last sentence being maybe the most important):

As you can imagine, there are several differences between use cases and scenarios. First, a use case typically refers to generic actors, such as Customer, whereas scenarios typically refer to examples of the actors such as John Smith and Sally Jones. There’s nothing stopping you from writing a generic scenario, but it’s usually better to personalize the scenarios to increase their understandability. Second, usage scenarios describe a single path of logic whereas use cases typically describe several paths (the basic course plus any appropriate alternate paths). Third, in UP-based processes use cases are often retained as official documentation whereas scenarios are often discarded after they’re no longer needed.

I may be wrong, but Usage Scenario really sounds like Use Case flow but rebranded with an Agile touch.

share|improve this answer
    
I think personalizing the scenarios is harmful (at least as I understand it). You say "it’s usually better to personalize the scenarios" - But what if Sally Jones left the company or changed position - What value would the scenario have? –  Emmad Kareem Oct 10 '11 at 9:40
add comment

There isn't an exact definition of any of this stuff. It all varies a little bit (or a lot) from company to company and from system to system.

Your best bet is to find an example already in place for your current project and follow it.

If you are creating a new system, you can find definitions of different types of use cases for whatever system you prefer--Just pick the pattern that seems to communicate your intentions best.

Don't get hung up on names.

share|improve this answer
1  
> Don't get hung up on names. Don't worry, I won't! :) on the other hand, it's a quite desireable goal when in a team all members mean and understand the meaning of a word in a similar manner –  Henning Sep 30 '09 at 15:55
1  
I totally agree-but at a team level. I just find that a "Global" level, I've never seen two people define "Use Case" the same way. –  Bill K Sep 30 '09 at 17:23
    
Not same, but on similar tendencies... and it's at least these tendencies I wanted to know and understand –  Henning Oct 1 '09 at 10:15
add comment

A user story is always informal and describe a user's need. A use case can be either formal or informal, and describes system behavior.

It is possible to have "tech" user stories, the same is not true for use cases.

Once done, the user story is typically discarded. Use cases may be maintained during the product life cycle.

The scope is also different. User stories are typically smaller in scope, and consequently a use case comprises several user stories. A changed requirement for an existing system is described in a new user story, or an updated version of the use case.

The similarity between user stories and uses cases is that both of them are used for planning and scheduling.

share|improve this answer
add comment

I am not familiar with User Story, but when I looked into this several years ago:

A Use Case is a major task.
User Scenarios are the various ways that task can play out. So, Every Use Case has one or more scenarios. The Use Case is the abstract, the User Scenarios are a catalog of all possible instances of that abstract task.

So:
Use Case A: User authenticates with id and password.

Scenarios:
1. ID is recognized, password is correct. ("sunny day" scenario)
2. ID is recognized, password is incorrect.
3. ID is recognized, password is incorrect for third time.
4. ID is not recognized.

I have always thought of use cases as a way of defining requirements in a narrative way for the client in their terms. w/r/t the above, if the client says "But what if they try to log in in between midnight and one when the system is down?", we have discovered another scenario for the authentication task, and some additional requirements.

share|improve this answer
add comment

A user story is from a customer's point of view, sometime it's incorrect or incomplete. It may have no consideration on performance, on error handling, or nothing on the backend.

A use case is from dev's point of view. It's accurate and complete. It should answer all the requirements from customers.

share|improve this answer
add comment

A User Story when decomposed to tasks that are individually assignable to developers may or may not be more granular and constrained in scope than a Use Case Scenario. A User Story is about the need of the User -- a Goal or Outcome from their using the System. Examples of User Stories are: (1) I am a Customer and I want to pay my account balance online --a pretty high-level view (2) I am a Customer and I want to update the expiration year on my stored credit information -- a pretty granular view. At the high-est level of abstraction a Use Case sounds very similar -- Customer Updates Card Expiration Year -- but here its a statement of function rather than goal. As the granularity of the Use Case scenarios are defined they become more about function and procedure. The Post-condition of a Use Case Main Scenario should be the same outcome as that stated in the User Story -- Customer's Credit Card Expiration Year is Updated. Use Case Scenarios describe step-by-step either in text or process flow chart (not necessarily UML or BPM - I use a standard cross-functional flow diagram for clarity and ease of use by untrained consumers of the use case. The bottomline is that User Stories describe Needs and Outcomes (What the System Needs to Deliver) whereas Use Cases describe interactions between Actors required to meet the goal - AND what can go wrong (Extension, Alternate or Error Scenarios) (how the user interacting with the System achieves that outcome) For a discussionin depth on this topic I suggest reading http://c2.com/cgi/wiki?UserStoryAndUseCaseComparison on Alistair Cockburn's website. Since he's a signatory of the Agile Manifesto, the person who coined User Stories and has been considered a Use Case expert for the last couple of decades I think he's an excellent source for more info.

share|improve this answer
1  
This is just a wall of text; can you edit this for readability. –  Martijn Pieters Dec 8 '13 at 21:01
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.