Course Description

This 3-day Requirements Analysis training course describes an approach to requirements analysis that can be applied by Requirements Analysts with different levels of experience. Underpinning the approach is the concept of use cases that describe requirements from the perspective of the users of a software application.

The course first shows participants how to undertake an activity analysis based on the concepts of activity theory. This is followed by a discussion of how to identify and analyse the information requirements associated with activities. Participants are then shown how to create a conceptual model of the problem area using class diagrams.

The conceptual model provides a context for the identification of requirements and the development of a use case model. A number of techniques for identifying and describing requirements are discussed. The discussion includes the role of business rules and the benefits of an application vision and scope statement.

The course then moves on to a detailed discussion of the theory of use cases and their practical application. The course shows participants how to develop UML use case diagrams and document use case scenarios.

Pre-requisites

Who is this course for?

  • Process Engineers, Software Engineering Process Group (SEPG) Staff
  • Methodologists, Process Improvement Staff
  • Business Analysts, Business Systems Analysts, Systems Analysts, Functional Analysts
  • Software Development Managers, Software Engineers, Software Developers
  • Requirements Engineers, Requirements Analysts

Further Training

Course content

Introduction
What Are Requirements?
Business Needs
Application Features
Software Requirements
Why Bother With Requirements?
Requirements & Project Failures
The High Cost of Requirements Errors
Requirements & the Product Life Cycle
Managing Changes to Requirements
Freezing Requirements vs. Baselining Requirements
Baselining Requirements
Change Control
A Systems Engineering Perspective of Requirements
Requirements Analysis Workflow
Activity Analysis
Characteristics of Human Activity
Naming activities
Verb-noun template
Activity Verbs
Goals vs. tasks
Developing an Activity Map
Identifying Activities
Object Life Cycles
Resource Life Cycle
Business Activity Model
The Hierarchical Nature of Human Activity
Mission
Functions
Tasks
Decomposing Activities
When to Stop Decomposing
Publishing the Business Activity Model
Information Analysis
Concepts
Managing by Observing
Managing With Information
The Activity Life Cycle
Categories of Information
Information Requirements
Identifying Information Requirements
Identifying information requirements from Activity Breakdowns
Identifying information requirements from Activity Diagrams
The Information Requirements Catalogue
Information Samples
Data Elements
Derivation Rules
Describing with Natural Language
Describing with Activity Diagram
Subject Areas
Publishing the Information Requirements Catalogue
Conceptual Modelling
Why Conceptual Modelling?
Conceptual Modelling Concepts
Classification
Abstraction
Reification
Classes
Attributes
States
Operations
Events
UML Classes
Responsibilities
Constraints
Associations (facts)
Multiplicity
Composition (Part of)
Aggregation (Collection of)
Generalisation (Type of)
UML Class Diagrams
Objects
UML Objects
Object Diagrams
Identifying Classes
Class Archetypes
Event or Period of Time
Party, Place or Thing
Role
Type
Where to Look?
What to Challenge?
Subject Areas
Publishing the Conceptual Model
Requirements Definition
Why Requirements Definition?
Requirements Concepts
Types of Requirement
Requirements Deliverables
Business Rules and System Constraints
What are Business Rules?
Classification of Business Rules
Where to Document Business Rules?
How to Document Business Rules?
Business Rules vs. Software Requirements
Publishing the Business Rules Catalogue
Vision & Scope
Features & UML
Features and Natural Language
Functional Areas
Scope
Publishing the Application Vision & Scope
Software Requirements Specification
Formal Requirements
Requirements Characteristics
Interface Requirements
Software interfaces
Network interfaces
Hardware interfaces
Functional Requirements
Functional Requirements & UML
Functional Requirements Natural Language
Functional Areas
Storage Requirements
Logical Data Model
Data Dictionary
Non-Functional Requirements
Quality attributes (ISO9126)
Constraints
Non-Functional Requirements & UML
Publishing the Software Requirements Catalogue
Use Case Modelling
Why Use Case Modelling?
Use Case Concepts
Use Case and Activity Theory
Naming Use Cases
The Importance of a Glossary
Use Case Diagrams
Including Use Cases
Specialising Use Cases
Why Not to Use Extend!
What is “Extend”?
The Correct Approach to Specialisation
A Better Approach to External Scenarios
Use Case Steps
The subject…verb…object template
Actor as the Subject
System as the Subject
Time as a Trigger
How to Handle “Actorless” Use Cases
Repetition
Repeating Steps
Concurrent Steps
Use Case Scenarios
Main Scenario
Alternate Scenarios
Handling Business Rules
Handing Functional & Non-Functional Requirements
Dealing With System-Wide Functional Requirements
Interface Requirements
Handling Interface Requirements
Data Dictionary
Prototype
Organising Use Cases Into Functional Areas
Use Cases & Business Processes
UML Activity Diagram
UML Sequence Diagram
Use Case Templates
Use Case Templates
Levels of Use Case Description
Use Case Narrative
Publishing the Use Case Model