Software Requirements Engineering Course
 

Home
Up
Consulting Services
Events & Activities
Library & Information
CSQE Quizzes
About Our Team
How to Contact Us

Software Requirements Engineering is a 3-day course designed to provide a comprehensive knowledge base and practical skills for anyone interested in implementing or improving Software Requirements Development and Management techniques and practices in their organization.  This course starts with an overview of software requirements basics including definitions of terminology, a discussion of the importance of software requirements, an overview of software standards and models related to requirements and an introduction to the requirements engineering process.

Course attendees will learn how to define the vision and scope of a software product, and how to identify the product’s stakeholders.  They will learn and practice utilizing various techniques for eliciting software requirements.  Various models for analyzing requirements will be illustrated and applied to the course's case study.  The course will also discuss translating higher-level business and user requirements into software product requirements.

This course includes an overview of the contents of various documents to specify requirements including a concept of operations document, software requirements specification and a data dictionary.  The requirements validation discussion in this course emphasizes peer reviews and test planning.

Course attendees will learn to establish requirements baselines, perform requirements traceability, and manage requirements change.  This course also includes an overview of requirements related metrics.

Method of Instruction: This course is taught through lecture and interactive discussion.  Actual examples from the software industry are utilized to make the information relevant.  Throughout this course, learned skills are practiced using team exercises and case studies.  For in-house courses, these exercises and case studies can be tailored to include actual examples from your organization in order to make the training even more relevant to your environment.  The emphasis of this course is on techniques that allow the attendees to transition the skills learned in this course to their own work environments.  

Target Audience: Business analysts, system and software requirements analysts, project managers, functional managers, software developers, testers, software quality engineers and other software stakeholders who will be involved in eliciting, analyzing, specifying, validating and/or managing requirements.

Course Objectives: Upon successful completion of this course attendees will be able to:

  •  Understand the basic concepts of software requirements engineering

  •  Select the appropriate requirements elicitation techniques to identify their requirements

  •  Effectively analyze their requirements

  •  Create a requirements specification to communicate their requirements

  •  Utilize various requirements validation techniques to critically evaluate their requirements and to identify defects 

  •  Manage change to their requirements

Course Materials: Student notebooks are designed to provide reference materials that can be utilized by the attendees long after the completion of the course.  These materials include:

  •  Copies of all presentation materials with annotated descriptive notes

  • A bibliography of reference materials

  • An index and glossary of Software Requirements Engineering Terms

Detailed Outlines:

I: Software Requirements – The Basics

1.  What, Why, When and Who of Requirements

a.  What are Requirements

  ·  Requirements Defined

  ·  Levels of Requirements Information

b.  Why are Requirements Important

        ·  Why are Requirements Important?

  ·  Issue: Project Failure

  ·  Issue: Incomplete Requirements

  ·  Issue: Lack of User Involvement

  ·  Issue: Requirements Defects

  ·  Issue: Requirements Churn

  ·  Issue: Wasted Resources

  ·  Issue: Gold Plating

  ·  Issue: Inaccurate Estimates

  ·  Benefits of Good Requirements

c.  When - Requirements & the Life Cycle

  ·  When – Requirements & the Life Cycle

  ·  Requirements Engineering is Iterative

d.  Who – Requirements Stakeholders

e.   “How To” of Requirements Engineering

2.  Standards & Models Related to Requirements

a.  SEI CMM® & CMMISM

  ·  SEI CMM® & CMMISM

  ·  Requirements Management Process Area

  ·  Requirements Development Process Area

  ·  Generic Practices

b.  IEEE Software Engineering Standards

c.  ISO 9001:2000 on Requirements

3.  Requirements Engineering Process

a.  Requirements Engineering Process

b.  Incremental Requirements Development

c.  Requirements Engineering Context

II: Requirements Elicitation

1.  Business Level Requirements  

a.  Purpose of Business Level Requirements

b.  The Idea!

c.  Vision Statement

d.  Vision Statement – Example

e.  Vision Statement – Exercise

f.  Defining Business Objectives

g.  Business Objectives – Examples

h.  Characteristics of “Good” Business Objectives

i.  Product Scope & Limitations

j.  Product Context Diagram

k.  Product Context Diagram – Exercise

2.  Stakeholders

a.  Stakeholder Defined

b.  Benefits of Identifying Stakeholders

c.  Step 1: Identifying Stakeholders

d.  User Types

e.  Step 2: Prune the Stakeholder List

f.  Step 3: Participation Strategy

g.  Identify Stakeholders – Exercise

h.  Stakeholder Conflict Management

i.   Decision Criteria Alternatives

j.   Customer’s Bill of Rights

k.  Customer’s Bill of Responsibilities

3.  Requirements Elicitation Techniques

a.  Direct-Two-Way Communications

b.  Before the Interview

c.  Open-Ended Questions

d.  Context-Free Questions

e.  During the Interview

f.  Listening Actively

g.  Interviewing Tips

h.  After the Interview

i.   Focus Groups

j.   Focus Group Meeting

k.  Focus Group - Exercise

l.   Facilitated Requirements Workshop

m.  Benefits of Facilitated Requirements Workshops

n.  Facilitator Do’s & Don’ts

o.  Documentation Studies

p.  Other Requirements Elicitation Techniques

III: Requirements Analysis

1.  Requirements Modeling

a.  Requirements Modeling

  ·  Benefits of Models

  · Types of Models

b.  Object Oriented Models

  ·  Use Cases

  ·  Step 1-3: Use Case Diagram

  ·  Step 4: Develop a Use Case for Each Interaction

  ·  Use Case Steps

  ·  Use Case Exercise

  ·  Other Use Case Information

  ·  Class Diagram

  ·  Sequence Diagram

  ·  Sequence Diagram – Exercise

  ·  Activity Network

c.  Structured Analysis Models

  ·  Data Flow Diagram

  ·  Entity Relationship Diagram

  ·  State Transition Diagram

  ·  State Transition Table

d.  Other Models

  ·  Process Flow Diagram

  ·  Decision Tree

  ·  Event/Response Table

  ·  Event/Response Table – Exercise

2.  Identifying Product Requirements

a.  Levels of Requirements Information

b.  Use Case -> Functional Requirements

c.  Use Case -> Functional Requirements – Example

d.  Data Requirements

e.  Data Requirements – CURDL

f.  Use Case -> Nonfunctional Requirements

g.  Quality Attributes

h.  Usability Requirements – Examples

i.  Measurable Nonfunctional Requirements

j.  Use Case Diagram -> External Interface Requirements

k.  Product Requirements – Exercise

l.   Class Diagrams -> Product Requirements

m.  Data Flow Diagrams -> Product Requirements

3.  Prototyping

a.  Prototype

b.  Prototyping Suggestions

4.  Prioritizing Requirements

a.  Benefits of Prioritizing Requirements

b.  Prioritization Considerations

c.  Prioritization - 1st Pass

d.  Prioritization - 2nd Pass

IV: Requirements Specification

1.  Concept of Operations

a.  Documenting User Level Requirements

b.  Concept of Operations Document  

2.  Software Requirements Specification

a.  System Requirements

b.  System vs. Software Requirements

c.  Software Requirements Specification

d.  Writing "Good" Requirements

3.  Data Dictionary

a.  Data Dictionary

b.  Data Dictionary Notation

c.  Data Dictionary – Example

V: Requirements Validation

1.  Requirements Review

a.  Reviews Defined

b.  Cost of Rework

c.  Hold Many Peer Reviews

d.  Inspection Process

e.  Inspection Meeting

f.  Who Should Inspect Requirements

g.  Requirements Completeness

h.  Requirements Checklist

i.   Requirements Checklist - Each Requirement

j.  Ambiguity

k.  Peer Review – Exercise

2.  Requirements Test Planning

a.  Testability

b.  Writing Test Cases

c.  Test Matrix – Example

VI: Requirements Management

1.  Establishing & Maintaining Baselines

a.  Baseline Defined

b.  Types of Baselines

c.  Requirements Specification Acquisition

d.  Sign-Off

2.  Traceability

a.  Traceability Defined

b.  Bi-Directional Traceability

c.  Benefits of Requirements Traceability

d.  Traceability Matrix

e.  Traceability Tagging

3.  Requirements Change Management

a.  Configuration Control Procedures

b.  Configuration Control Process

c.  Approval Authority Process

d.  Impact Analysis

4.  Requirements Metrics

a.  Goal/Question/Metric

b.  Requirements Size

c.  Requirements Churn

d.  Defect Per Requirements

e.  Requirements Defect Backlog

f.  Traceability

g.  Requirements Status

Customized Software Requirements Engineering Courses:

Customized Courses:  Our Software Requirements Engineering course is modularized so that it can be easily customized for in-house course offerings that focus on the specific content and topics needed to meet your organization’s exact training requirements. 

The Westfall Team can also customize this course or any of our other standard courses or develop unique software engineering, quality and project management courses to meet your exact in-house training needs and specifications.  For example, class exercises can be tailored to include actual examples from your organization in order to make the training more relevant to your environment. 


For more information about this course or other courses offered by The Westfall Team

Send an email to:  lwestfall@westfallteam.com

Or call: 972-867-1172

© 1999-2008 Westfall Team, Inc.