Developing Use Cases

Course Description
Use cases have been in the software development terminology for quite some times. When they were first introduced, they were intended as aids to software design in object-oriented approaches.  However, this technique is now used throughout the Solution Development Life Cycle from idea inception for a project to specifying test cases.

This course identifies how business analysts can apply Use Cases to the processes of defining what the existing problem is, analyzing the problem, defining the solution, and validating the usability of the system.
Who Should Attend

Analysts and information gatherers who need an efficient way of modeling the interfaces/processes that involve users and systems
Business analysts who need to define the business problem, business solution, or business requirements
IT managers who need to understand the impact of complex business processes especially involving multiple systems
Software developers who are using a Unified Modeling Language (UML) to model and diagram their implementations
Business managers and users who want to better understand the processes they are working in, and the solutions and improvements that are being implemented

What You Will Learn
You’ll learn how to:

Apply the use case method to define the problem domain and discover the conditions that need improvement in a business process
Employ use cases in the analysis of requirements and information to create a solution to the business problem
Translate use cases into requirements

Course Overview
Getting Started

Introductions
Course structure
Course goals and objectives

Foundation Concepts

Overview of use case modeling

What is a use case model?
The “how and why” of use cases
When to perform use case modeling
Where use cases fit into the solution life cycle
Use cases in the problem domain
Use cases in the solution domain
Use case strengths and weaknesses
Use case variations
Use case driven development

Use case lexicon

Use cases
Actors and roles
Associations
Goals
Boundaries

Use cases and other techniques

Prototyping
Storyboarding
Scenarios
The development life cycle

Elicitation with Use Cases

Overview of the basic mechanics and vocabulary of use cases
Apply methods of use case elicitation to define the problem domain, or “as is” process
Use case diagrams

Why diagram?
Partitioning the domain
Use case diagramming guidelines
How to employ use case diagrams in elicitation
Guidelines for use case elicitation sessions
Eliciting the problem domain

Use case descriptions

Use case generic description template
Alternative templates
Elements
Pre and post conditions
Main Success Scenario
The conversation
Alternate paths
Exception paths
Writing good use case descriptions
Eliciting the detailed workflow with use case descriptions

Additional information about use cases

Analyzing Requirements with Use Cases

Applying use case analysis to existing requirements

Confirming and validating requirements with use cases
Confirming and validating information with use cases

Defining the actors and use cases in a set of requirements
Creating the scenarios
Essential (requirements) use case

Use case level of detail

Use Case Analysis Techniques

Generalization and Specialization

When to use generalization or specialization
Generalization and specialization of actors
Generalization and specialization of use cases
Examples
Associating generalizations
Subtleties and guidelines

Use Case Extensions

The <<extend>> association
The <<include>> association
Applying the extensions
Incorporating extension points into use case descriptions
Why use these extensions?
Extensions or separate use cases
Guidelines for extensions
Applying use case extensions

Patterns and anomalies

Redundant actors
Linking hierarchies
Granularity issues
Non-user interface use cases

Quality considerations

Use case modeling errors to avoid
Evaluating use case descriptions
Use case quality checklist

The Relationship of Use Cases and Business Requirements

Creating a Requirements Specification from Use Cases
Flowing the conversation into requirements
Mapping to functional specifications
Adding non-functional specifications
Relating use cases to other artifacts

Wire diagrams and user interface specifications
Tying use cases to test cases and scenarios
Project plans and project schedules

The Relationship of Use Cases and Functional Specifications

System use case

Reviewing business use cases
Balancing use cases

Use case realizations

Expanding and explaining complexity
Activity diagrams
State Machine diagrams
Sequence diagrams

Applying what we know

Extension points
Use case chaining

Identifying decision points

Use Case Good Practices

The documentation trail for use cases
Use case re-use
Use case checklist

Summary

What did we learn, and how can we implement this in our work environment?


Schedule

Course Area Duration Dates Location Price Enrollment