Requirements Analysis      

Code:

IS130-049

Series:

Information Management

Duration:

3 days

Introduction
What are Requirements?
- Business needs
- Application features
- Software requirements
Why Bother with Requirements?
- Requirements & project failures
- High cost of requirements errors
Requirements & the Product Life Cycle
Managing Changes to Requirements
- Freezing vs. Baselining
- Baselining
- Change control
Systems Engineering perspective of requirements
Requirements Analysis Workflow

Activity Analysis
Characteristics of Human Activity
Object-Oriented
Supported By Tools
Achieves Goals
Performed by Actors
Involves stakeholders
Conforms to Rules
Allocated Responsibilities
Naming activities
Verb-noun template
Activity Verbs
Goals vs. tasks
Developing an Activity Map
Identifying Activities
Object Life Cycles
Resource Life Cycle
Hierarchical
Business Activity Model
Hierarchical Nature of Human Activity
Mission
Functions
Tasks
Decomposing Activities
When to Stop Decomposing
Publishing the Business Activity Mode
l

Information Analysis
Concepts
- Managing by Observing
- Managing With Information
- Activity Life Cycle
- Categories of Information
- Information Requirements
Identifying Information Requirements
- Identifying information requirements from Activity Breakdowns
- Identifying information requirements from Activity Diagrams
- 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 and Scope
Vision
Features
- Features & UML
- Features & Natural Language
- Functional Areas
- Scope
- Publishing the Application Vision and 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
- Importance of a Glossary
Use Case Diagrams
- Including Use Cases
- Specialising Use Cases
- Why Not to Use Extend!
- What is "Extend"?
- 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 and 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


Requirements Analysis

This three-day 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 modelling 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.

The course concludes with a brief discussion of the various approaches to packaging a requirements specification.


Outcomes:

  • a clear understanding of the role of requirements in a software development or acquisition project.
  • ability to apply the techniques discussed during the course to a variety of information systems projects.
  • practical experience in applying the techniques and workflows to a case study.

Prerequisites:


Familiarity with business environments and business information systems. Suitable 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, Developers, Requirements Engineers, Requirements Analysts.