Logo

Exploring User Requirements with Use Cases

Copyright © 2004 by Karl E. Wiegers

This is a self-training version of Process Impact's popular 1-day live seminar. The course consists of 8 modules with nearly 6 hours of audio and many practice activities that provide a solid introduction to the powerful use-case technique for understanding what users need to be able to accomplish with a software system. Each module contains slides that animate and advance automatically, with a synchronized audio presentation. Each module has several reference documents available, including magazine articles, templates, sample requirements documents, and other work aids. You can also access those reference documents from the module descriptions on this page. From this page you can also print a PDF version of a 2-up handout master of the slides and accompanying worksheets. Several modules include short quizzes so you can test your knowledge of the key points in the module. The course consists of the following modules:

  1. Objectives and Agenda
  2. Software Requirements Overview
  3. Users and Actors [available for preview]
  4. Use Cases: What and Why
  5. Anatomy of a Use Case
  6. Advanced Use-Case Modeling
  7. Use-Case Elicitation Workshops
  8. From Use Cases to Software

Course Description and Outline

View License Terms


Instructor

The instructor for this presentation is Dr. Karl Wiegers, Principal Consultant at Process Impact, who developed the course and has presented it live to many seminar audiences.

Karl's Biography
Process Impact web site
Send Karl email

Textbooks

Two textbooks are recommended for this course. The first is Software Requirements, 2nd Edition, by Karl E. Wiegers, published by Microsoft Press in 2003. This book provides a comprehensive introduction to software requirements engineering, with Chapter 8 devoted to use cases. The course modules refer you to specific chapters in the book where other topics are addressed.

Order from Amazon.com

Several books on use cases have been published in recent years. I recommend you begin with Use Cases: Requirements in Context, 2nd Edition by Daryl Kulak and Eammon Guiney, published by Addison-Wesley in 2003.

Order from Amazon.com

System Requirements

Click on the links below to download some of the products mentioned here.


Module 1: Objectives and Agenda (15 minutes)

This module presents an overview of the "Exploring User Requirements with Use Cases" course. It describes the system requirements for getting full value from the course and how to use the presentation player. It also summarizes the course objectives and the agenda for the remaining modules.

Reference documents for this module:

(back to top)

Module 2: Software Requirements Overview (70 minutes plus 3 practice sessions)

Module 2 presents a brief introduction to the domain of software requirements engineering. It provides definitions and examples of various types of requirements information and describes how to classify user input into these various categories. Use cases are defined and examples of good and not-so-good use case names are shown. I describe where use cases fit into an overall requirements development process. I also describe a vision statement and context diagram, useful tools for defining your system boundary. This material is covered in Chapters 1, 3, 5, and 7 in Software Requirements, 2nd Edition.

Reference documents for this module:

(back to top)

Module 3: Users and Actors (28 minutes plus 1 practice session) [available for preview]

In this module I describe the difference between stakeholders, customers, and users. We discuss the idea of user classes for a product and the concept of "actors," roles that users perform with respect to the system. Actors interact with the system through use cases. User classes are discussed in Chapter 6 of Software Requirements, 2nd Edition and actors are explained in Chapter 8.

Start Presentation

Reference documents for this module:

(back to top)

Module 4: Use Cases: What and Why (58 minutes plus 2 practice sessions)

In this module you will learn why use cases are a valuable tool for requirements elicitation on many projects. We'll discuss the relationship between scenarios and use cases. The use-case diagram from the Unified Modeling Language is introduced. Practice sessions give you a chance to identify and model some use cases for some sample products. We'll also talk a little about prioritizing use cases. This material is the subject of Chapters 8 and 14 in Software Requirements, 2nd Edition.

Reference documents for this module:

(back to top)

Module 5: Anatomy of a Use Case (87 minutes plus 2 practice sessions)

This module describes the various components of a use case in detail, presenting a robust use-case template. We'll examine the preconditions, postconditions, normal flow, alternative flows, and exceptions. I'll describe three iterations of use case refinement and present some guidance to help you judge just how much detail you need to put into each use case. Several practice sessions provide an opportunity to write a moderately complex use case.

Reference documents for this module:

(back to top)

Module 6: Advanced Use-Case Modeling (19 minutes)

This short module describes the "include" and "extend" relationships that you can define between pairs of use cases, showing how to represent these on the UML use-case diagram. I also show some examples of using analysis models to augment the textual information found in a use-case description.

Reference documents for this module:

(back to top)

Module 7: Use-Case Elicitation Workshops (30 minutes)

The requirements analyst often facilitates or participates in collaborative requirements elicitation workshops. This module presents some suggestions for facilitating such workshops, using a case study of an actual project to illustrate the approach. This material is the subject of Chapter 7 in Software Requirements, 2nd Edition.

Reference documents for this module:

(back to top)

Module 8: From Use Cases to Software (43 minutes plus 2 practice sessions)

Use cases aren't an end in themselves. They're a tool to help the analyst discover the functional requirements that developers need to implement. This final module describes a thought process for going from use cases to a software requirements specification. Use cases also provide a valuable starting point for developing user acceptance tests. Chapter 10 in Software Requirements, 2nd Edition provides a lot of information about writing good requirements.

Reference documents for this module:

(back to top)