Requirements Management With UML

Duration: 2 days
Type: intermediate


This course provides a comprehensive introduction to requirements management using the UML and Use Cases. The target audience is requirements analysts, business analysts and managers but the course can also be useful for developers seeking a more in-depth understanding of how requirements are captured.

The course begins with an introduction to how requirements management is used in modern software processes, including Agile methodologies. The process of capturing and developing Use Cases is then covered in detail, with special attention paid to supplementing Uses Cases with additional documents as required. Finally the course provides an overview of how Use Cases are realized by the development team, and how the analyst can best facilitate the work of architects, designers and coders.

All of the UML diagrams are introduced during the course, including the new features of UML 2.0. By default the course does not use a specific UML editor, but any modeling tool can be covered if required.


Delegates should have several years experience in software development

List of Modules

Introduction to the UML

The origins and uses of UML
The 4 + 1 views of your system
An overview of each UML diagram
Review of popular UML tools
Using UML within Agile development
Using UML within the Unified Process

Introduction to Requirements Analysis

The most important job in software development
Identifying project stakeholders
Finding sources of requirements
Interviewing sources successfully
Identifying and avoiding problems
Correcting mistaken beliefs about coding
Managing scope and controlling change
Tracing requirements into implementation

Working With Use Cases

Identifying Actors and Use Cases
Common mistakes when identifying actors
Treating the system as a black box
Working with CRUD based Use Cases
Scoping and specifying more complex Use Cases
Reviewing stories via a Use Case Diagram
Modeling Use Cases initiated by the system
Modeling Use Cases that consult human actors

Writing Use Case Reports

The purpose of a Use Case Report
Deciding on the correct level of detail
Specifying flows of events as a dialog
Identifying the basic flow (happy path)
Identifying alternate and exceptional flows
Coping with conditionality in flows of events

Advanced Use Case Reports

When one Use Case should include another
When one Use Case should extend another
Generalization relationships between Use Cases
Generalization relationships between Actors

Supplementing Use Case Reports

Using Activity Diagrams to describe events in detail
Options for creating User Interface Prototypes
Mistakes to avoid when working with screenshots
Advantages and disadvantages of using pseudo-code

Capturing Non Functional Requirements

Problems capturing non functional requirements
Special considerations for Web Applications
Performance, usability and reliability requirements

Moving From Requirements to Implementation

Understanding the design/code/test process
The importance of Object Oriented Programming
How classes are extracted from Use Cases

Understanding Use Case Realizations

How a design is created by realizing Use Cases
Describing classes using VOPC Diagrams
Defining behavior using Sequence Diagrams
Supplementing Class Diagrams with Statecharts
Grouping classes into components
Documenting deployment scenarios