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 seminar 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.

This course will emphasize

  • 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 seminar, 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.


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.


Lecture with many group discussions and practice sessions.

We provide a diagnostic of current requirements practices that all participants complete prior to the training. This serves to introduce topics that will be covered in the training, and helps the instructor understand where to emphasize content in the course.

Participants get a complete snapshot of the results (statistically anonymous, of course), as well as feedback on where the group lies relative to others that have taken the diagnostic in the past.


Software Requirements Overview

  • Introduction to seminar, objectives, participant expectations
  • Classifying different kinds of requirements information
  • Requirements definitions
  • A requirements development process
  • Context diagram
  • Practice session: Drawing a context diagram
  • User classes and actors
  • Practice session: Identifying actors

Use Cases: What, Why, and How

  • What use cases are and are not
  • Scenarios and use cases
  • Use-case diagrams
  • A use-case development process
  • Discovering use cases
  • Practice session: Identifying use cases and drawing a use-case diagram
  • Anatomy of a use case
  • Preconditions and postconditions
  • Practice session: Identifying preconditions and postconditions
  • Chaining use cases
  • The normal flow, alternative flows, and exceptions
  • Practice session: Identifying exceptions
  • Writing good use cases
  • Three iterations of use-case development
  • Analysis models and use cases
  • The use-case include and extend relationships

Use-Case Elicitation Workshops

  • The use-case workshop process
  • Facilitating requirements workshops
  • Prioritizing use cases
  • Practice session: Writing a detailed use case

From Use Cases to Software

  • Use cases and functional requirements
  • Reviewing use cases
  • Use cases and software testing
  • Practice session: Writing functional requirements
  • Use-case traps to avoid

This course has been licensed from Karl Wiegers and Process Impact.

Please contact us for more information regarding this offering.

  • What’s Happening

  • On The Road Again

    Jim frequently travels across Western Canada for engagements, and welcomes opportunities to meet, run a workshop, Diagnostic or Lunch and Learn session.

    Contact Jim if you would like to connect around any of the upcoming dates:

    • Blissfully at home in Vancouver, BC over the summer!
  • What People are Saying

    Jim is simply one of the smartest and most knowledgeable software development professionals I have ever met. His vast knowledge of the discipline is both leavened and enhanced by his acute awareness of and sensitivity to “the real world” of what actually occurs with real developers in actual practice. Jim is also a warm, open, honest person – rare gifts and an asset in any consultant.

    — Bonar Harris