Title: Requirements Gathering Through Use Cases
1Requirements Gathering Through Use Cases
2A Short Course in Use Case Modeling
3Topics of Discussion
- Use Case Definition
- The Primary Uses of Use Cases
- Development of Use Cases
- Potential Problems with Use Cases
- Bibliography and Suggested Reading
4Use Case Definition
- A description of a complete course of events
initiated by a user of the future system and of
the interaction between the user and the system. - (Object-Oriented Software
engineering A Use Case Driven ApproachJacobson
1992) - Â A use case is a typical interaction between a
user and a computer system. - A Use Case is a collection of scenarios.
5The Primary Uses
- Primary Uses What are Use Cases for?
- Use Cases are used primarily to capture the high
level user-functional requirements of a system. - In our research, we have used Use Cases to
develop the core requirements of a system. They
are useful in the development of Enduring
Business Themes and Business Objects, terms that
you should all be familiar with if you have read
the assigned paper,
Accomplishing Software Stability. - Note Use Cases are for modeling what our system
is going to do, not how it will do it.
6Any Other Uses?
- To act as a spring board for the software design
- Something to validate the software design against
- Software Testing and Quality Assurance
7How long do Use Cases go?
- Until all the interactions relate to the same
goal. - Interactions start at the triggering event and
end when the goal is delivered or abandoned.
(From Structuring Use
Cases with Goals by Alistair Cockburn)
8Developing Use Cases
- Remember Use Cases are for modeling WHAT our
system is going to do, not how it will do it. - Other parts of the Unified Modeling Language
(UML), of which Use Cases are but one part, are
designed to model HOW the system is developed.
9The Use Case Template
10A System For Developing Use Cases
- Identify who is going to be using the system
directly. These are the Actors. - Pick One of the Actors.
- Figure out what the Actor wants to do with the
system. These things, that the actor wants to do
with the system, comprise a Use Case. - Decide upon the usual course that this Use Case
will take when that Actor is using the system.
This is the basic course. - Describe that basic course in the description
for the Use Case.
from Use Case Modeling Capturing User
Requirements by Edward Kenworthy
11A System for Developing Use Cases
- Next, figure out if the Use Case has any
alternative paths. If so, add those as extending
Use Cases. - Repeat each of these steps for each Actor.
from Use Case Modeling Capturing User
Requirements by Edward Kenworthy
12Modeling Problem
- You have been asked to develop the software for
an online banking system. As an Object-Oriented
Software Engineer, naturally, you want to start
gathering the requirements from the users. - Who are they?
- These are your Actors!
13Modeling Problem
- Now Pick one!
- What does this actor want to do with the system?
These actions are the Use Case. - Decide on a basic course.
- Does this Use Case have any alternative paths?
Add these as extending Use Cases.
14Visualizing Your Use Cases
- Frequently, a Use Case Diagram is built, to show
the interactions between the Actor and the
system, and to show the different scenarios
associated with the Use Case.
15Sample Use Case Diagram
from Use Case Modeling Capturing User
Requirements by Edward Kenworthy
16Possible Problems with Use Cases
- Over modeling Leads to requirement inflation.
- Use Cases emphasize ordering. This can be
considered to be incompatible with object
technology.
17Bibliography and Suggested Reading
- Object-Oriented Software Engineering A use
Case Driven Approach, by Ivar Jacobsen - Use Case Modeling Capturing User Requirements
by Edward Kenworthy (http//www.zoo.co.uk/z00010
39/PracGuides/pg_use_cases.htm) - Structuring Use Cases With Goals by Alistair
Cockburn - (http//members.aol.com/acockburn/papers/use
cases.htm) - Use Cases Fundamentals by Alistair Cockburn
- (http//members.aol.com/acockburn/papers/Al
tIntro.htm) - OOSC2 The Use Case Principle by Bertrand Meyer
(http//www.elj.com/elj/v1/n2/bm/use-cases/) - The Roles of Use Cases in Analysis by Daniel A.
Rawsthorne, PhD (http//www.pols.co
.uk/usecasezone/UseCaseConcepts.html) - The Misuse of Use Cases By Dr. Timothy Korson
(http//www.software-architects.com/publica
tions/korson/Korson9803om.htm) - Constructing Useful Use Cases By Dr. Timothy
Korson (http//www.software-architects.com/publica
tions/korson/usecase3/)