Course Description: "Exploring User Requirements with Use Cases"
Use cases are an effective and widely used technique for eliciting software requirements. The use-case approach focuses on the goals that users have with a system, rather than emphasizing system functionality. This one-day course presents the use-case approach to requirements elicitation in a practical and straightforward fashion.
Many practice sessions give the student opportunities to try some of the techniques described. Topics covered include:
- Business, user, and functional requirements
- The requirements development process
- Identifying user classes and actors
- Scenarios and use cases
- Anatomy of a use case
- Use case diagrams and other analysis models
- Documenting a use case
- Conducting use-case elicitation workshops
- Deriving functional requirements from use cases
- Reviewing use cases
- Using use cases to design test cases
On completion of this course, the student will be able to:
- Describe the value of use cases in requirements elicitation.
- Identify use cases for a project.
- Identify and describe actors.
- Lead a use-case elicitation workshop.
- Write use case descriptions at various levels of detail.
- Apply use cases to develop functional requirements and test cases for a software system.
Audience: This course will be useful to requirements or business analysts, user representatives, software developers,
testers, project managers, and anyone else who needs to understand the user requirements for a software system.
Format: Lecture with many group discussions and practice sessions.
Outline for "Exploring User Requirements with Use Cases" Course
I. Software Requirements Overview (30 minutes)
A. Introduction to course, objectives, participant expectations
B. Classifying different kinds of requirements information
C. Requirements definitions
D. A requirements development process
E. Context diagram
F. Practice session: Drawing a context diagram
G. User classes and actors
H. Practice session: Identifying actors
II. Use Cases: What, Why, and How (20 minutes)
A. What use cases are and are not
B. Scenarios and use cases
C. Use-case diagrams
D. A use-case development process
E. Discovering use cases
F. Practice session: Identifying use cases and drawing a use-case diagram
G. Anatomy of a use case
H. Preconditions and postconditions
I. Practice session: Identifying preconditions and postconditions
J. Chaining use cases
K. The normal flow, alternative flows, and exceptions
L. Practice session: Identifying exceptions
M. Writing good use cases
N. Three iterations of use-case development
O. Analysis models and use cases
P. The use-case include and extend relationships
III. Use-Case Elicitation Workshops
A. The use-case workshop process
B. Facilitating requirements workshops
C. Prioritizing use cases
D. Practice session: Writing a detailed use case
IV. From Use Cases to Software
A. Use cases and functional requirements
B. Reviewing use cases
C. Use cases and software testing
D. Practice session: Writing functional requirements
E. Use-case traps to avoid