Course Description: "Exploring User Requirements with Use Cases"

Karl Wiegers

Process Impact


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:


On completion of this course, the student will be able to:

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