Coder Profile - Show off your skills, get a coder profile.
 
 
 
Use Cases
Software Development
Intro

Today I will be talking about use cases. This article is not about programming, but rather about planning software projects.

A use case documents a feature that a user should have with the program. In a professional project, there are hundreds of use cases, one for every way the user can interact with the program. These use cases are developed with the client and the developers. It is a critical step, because it sets the basis for a lot of the subsequent work for the developers. Ultimately use cases create a list of things your program should be able to do.

Developers can then follow this list and deliver software that accomplishes everything that the user wants. I see them as a godsend in project planning. You can group related cases together and their placement will almost directly relate to their placement in code. With an explicit list in front of you, it becomes much easier to see all the features your development team must finish. This become a lot more important as the size of the project increases.

Although use cases are usually used by professional software development firms, I would recommend that programmers use them for their personal project. They can really simplify the problem and they stress breaking the problem down. It's really a great tool and I encourage all programmers to use them, if the project is large enough to warrant it.

Formating use cases.

Formating use cases is really subjective to style. Some are very detailed, while others are generalized. With that said, you should try different styles and levels of details for yourself and see which ones help you the most and give your the best ROI. One that I personally use would look something like this:

----------------------------------------------
<Title of use case>
<Summary>
<Stakeholders> //This list the people and systems that this feature will interact with.
<Prerequisites> //Things that need to be true for this feature to be available.
<Scenario> //A non-technical description of the steps to accomplish this task.
-----------------------------------------------

Here is an example for use case for something for a game of poker.

Making a bet

Summary: The game player is prompted to make a bet every time another card is dealt.
Stakeholders: The player
Prerequisites:
-The player must have enough money to bet.
-The player's best cannot exceed the computer's cash level.
Scenario:
- The player selects an amount to bet
- The bet is validated based on the prerequisites above
- If the bet is valid, subtract the funds from the players level.
- Else print out a message and stop the bet process.
- Add the bet to the overall pot.

----------------------------------------------------

This is a very simple example, but as you can see, this use case tells us exactly which feature we need, how it will work and how. Having an array of use cases for all the features of your programming project can really make the build process very smooth. Of course, clients may want features added and removed throughout the project, and this can be easily expressed with use cases.

That's the basis of using use cases. If I missed something critical, let me know.


Posted By Cinjection
Please login to rate coding articles.

Click here to register a free account with us.
Comments
Please login to post comments.
 
Cinjection     Posted 24 Days Ago
 
 
Good point. I'm generally not a fan of Agile, but it's a good point.
 
MorbidMorvick     Posted 26 Days Ago
 
 
It probably goes into another article but use cases are the basis for testing. Unit
Tests and other test cases are created from a single or multiple Use Cases and
validate the scenario steps.

Also, found some grammar issues "how it will work and how" last para.
Also, "The player's best cannot exceed the computer's cash
level." best=bet.

Also nice format for use cases but I think for the general programmer a more agile
process methodology might work better. Like say user stories to capture requirements.
 
samar     Posted 32 Days Ago
 
 
listing the use cases of the system witch is being developed
is the first step of software engineering process
the use cases specify the functional requirements of the system is being
developed
they must be simple enough to be understood by the user
 
Cinjection     Posted 208 Days Ago
 
 
Thanks!
 
Festering-Hate     Posted 208 Days Ago
 
 
Very informative and useful Cinjection, nice job.

10/10.
 
Cinjection     Posted 255 Days Ago
 
 
Thanks! I thought that they are useful enough to warrant a tutorial on them.
 
Izzmo     Posted 256 Days Ago
 
 
A very good article. Before this, I have never heard of 'Use Cases'.
Usually, at my place of employment, we just call them "Sprint Planning"
under SCRUM. Of course, that is different from Use Cases.
Page 1 of 1
More Articles By This Author
Use Cases
Recently Posted "Software Development" Articles
Software engineering <:: before we start::>
Planning: The First Step Towards Good Codeing
Use Cases
Buffer Overflow Protection
Versioning Your Application
Recently Rated "Software Development" Articles
Software engineering <:: before we start::>
Use Cases
Buffer Overflow Protection
Planning: The First Step Towards Good Codeing
Versioning Your Application
source codes Categories articles
Browse All
Business & E-Commerce (1)
Databases (1)
Design & Creativity (1)
Internet & Web Sites (1)
Life In General (2)
Operating Systems (3)
Other (2)
Programming (48)
Security (10)
Software Development (5)
Web Development (15)
search Search Inside
Software Development
 
 
Part of the MyPingle Network
Development Blog :: Make A Donation :: Contact Me
Terms & Conditions :: Privacy Policy :: Documents
Version 1.44.00
Copyright © 2007 - 2008, Scott Thompson, All Rights Reserved