IREB Certified Professional Requirements Engineering (CPRE)

COURSE OVERVIEW


The hardest single part of building software is deciding precisely what to build. The challenging task of defining detailed requirements is critical for developing any software and if done wrong it can cripple a system and even completely ruin a system.

Requirements engineering is complex and involves a variety of tasks which include the elicitation process, requirements refinement, negotiation and resolving stakeholder conflicts, properly documenting the requirements, applying various modeling techniques and validating and managing the requirements.

Stakeholders can include executives, end users, marketers, technical managers, developers, testers, business analysts and can even include insurance experts, legal advisers and government departments. The number and diversity of the stakeholders necessitate good communication practices.

In this course, you will learn all the best practices of requirements engineering. You will learn how to identify requirement by using various elicitation techniques. You will learn how to document and track requirements. You will know how to negotiate and interact with stakeholders. You will master various modeling techniques and will know how to track and manage the requirements to completion. A variety of tool categories that support requirement engineering will be covered.

 

Who should attend: 

Testers, Test Analysts, Business Analysts, Requirements Engineers, Systems Analyst, any person in ICT with an interest in quality assurance and requirements engineering.

 

Learning Objectives  

Through presentation, discussion, and hands-on exercises, attendees shall:

  • EO 1.1 Knowing symptoms of and reasons for inadequate RE
  • EO 1.2 Knowing the four major activities of RE
  • EO 1.3 Knowing the role of communications in RE
  • EO 1.4 Knowing the skills of a requirements engineer
  • EO 1.5 Knowing the three skills of requirements
  • EO 1.6 Knowing the role of quality requirements
  • EO 2.1 Knowing system context, system boundary and context boundary
  • EO 2.2 Mastering and using system boundary and context boundary
  • EO 3.1.1 Knowing various types of requirements sources
  • EO 3.1.2 Knowing the significance requirements sources and the consequences of disregarded requirements sources
  • EO 3.1.3 Knowing the most important information of stakeholder documentation
  • EO 3.1.4 Knowing important principles in dealing with stakeholders (stakeholder right and duties)
  • EO 3.2.1 Mastering and using the content and significance of Kano model
  • EO 3.3.1 Knowing influencing factors for the choice of elicitation techniques
  • EO 3.3.2 Knowing advantages and disadvantages of elicitation techniques
  • EO 3.3.3 Mastering and using the following types of elicitation techniques and examples for each: survey, creativity, document-centered, observation and supporting techniques
  • EO 4.1.1 Knowing key reason for requirements documentation
  • EO 4.2.1 Knowing the three perspectives of functional requirements
  • EO 4.2.2 Knowing advantages and disadvantages of natural language requirements documentation
  • EO 4.2.3 Knowing the most important model-based requirements documentation form
  • EO 4.2.4 Knowing the advantages of mixed form of requirements documentation
  • EO 4.3.1 Knowing the advantages of standardized document structures
  • EO 4.3.2 Knowing one widespread document structures
  • EO 4.3.3. Knowing important points for a tailored standard structure
  • EO 4.4.1 Knowing activities building on requirement documents
  • EO 4.5.1 Mastering and using quality criteria for requirements documents
  • EO 4.6.1 Mastering and using quality criteria for requirements
  • EO4.6.2 Knowing the two most important style rules for requirements
  • EO 4.7.1 Mastering and using contents and importance of glossary
  • EO 4.7.2 Mastering and using rules for handling the glossary
  • EO 5.1 Mastering and using the five transformational processes in the perception and writing of natural language and their consequences on the formulation of requirements
  • EO 5.2 Mastering and using the five steps for formulating requirements using a requirements template
  • EO 6.1.1 Knowing the term “model” and the properties of models
  • EO 6.1.2 Knowing definition elements of a conceptual modeling language
  • EO 6.1.3 Knowing the advantages of requirements models
  • EO 6.2.1 Knowing the importance of goals in requirements engineering
  • EO 6.2.2 Knowing the two types of goal decomposition
  • EO 6.2.3 Mastering the modeling and using of goal relationships as and/or trees
  • EO 6.3.1 Mastering the modeling of and using use case diagrams
  • EO 6.3.2 Mastering the specification of and using use case specifications
  • EO 6.4.1 Knowing the three perspectives on requirements
  • EO 6.5.1 Knowing the focus of the data perspectives on requirements
  • EO 6.5.2 Mastering and using entity relationship diagrams and UML class diagrams
  • EO 6.6.1 Knowing the focus of the functional perspective on requirements
  • EO 6.6.2 Mastering and using data flow diagrams and UML activity diagrams
  • EO 6.7.1 Knowing the focus of the behavioral perspective on requirements
  • EO 6.7.2 Mastering and using UML state charts
  • EO 7.1.1 Knowing the significance of validating requirements
  • EO 7.2.1 Knowing the significance of conflicts with regard to requirements
  • EO 7.3.1 Knowing the three quality aspects of requirements
  • EO 7.3.2 Mastering and using validation criteria for the quality aspects “content”, “documentation” and “agreement”
  • EO 7.4.1 Knowing the six principles for requirements validation
  • EO 7.4.2 Mastering and using the principles of requirements validation
  • EO 7.5.1 Knowing techniques for requirements validation
  • EO 7.5.2 Mastering and using the validation techniques: commenting (expert opinion), inspection, walkthrough, perspective-based reading, validation via prototypes and use of checklists
  • EO 7.6.1 Knowing activities for requirements negotiation
  • EO 7.6.2 Knowing the types of requirements conflicts
  • EO 7.6.3 Knowing the various conflict resolution techniques
  • EO 7.6.4 Knowing the documentation for conflict resolution
  • EO 8.1.1 Knowing the purpose and definition of attribute schemes
  • EO 8.1.2 Knowing important attribute types for requirements
  • EO 8.2.1 Mastering and using views on requirements
  • EO 8.3.1 Knowing methods for prioritizing requirements
  • EO 8.3.2 Mastering and using techniques for prioritizing requirements
  • EO 8.4.1 Knowing the benefits of requirements traceability
  • EO 8.4.2 Mastering and using classes of traceability relationships
  • EO 8.4.3 Mastering and using forms of representation for traceability relationships
  • EO 8.5.1 Mastering and using versioning of requirements
  • EO 8.5.2 Mastering and using the formation of requirements configurations
  • EO 8.5.3 Mastering and using the formation requirements baselines
  • EO 8.6.1 Knowing the importance of requirements changes
  • EO 8.6.2 Knowing the functions and members of a Change Control Board
  • EO 8.6.3 Mastering and using the elements of a requirements change request
  • EO 8.6.4 Mastering and using different classes of change request
  • EO 8.6.5 Mastering and using a process to handle change request
  • EO 9.1Knowing the eight features of a requirements management tool
  • EO 9.2 Knowing the five aspects in the introduction of requirements engineering tools
  • EO 9.3 Knowing the seven views of requirements engineering tools

Course Material


 

Session Plan

The course runs for three days starting at about 08:00 ach day is about 360 minutes of class time, from 8:00 to 4:30. For custom courses, material may be deleted, added, or expanded upon as needed.

Please note that timings are approximate, depending on attendee interest and discussion. All of the lectures include exercises and/or knowledge-check questions except as noted.

The following shows this session plan in relationship to the chapters and sections of the IREB Certified Professional for Requirements Engineering syllabus.

 

1 Introduction and Foundations (75 minutes)

1.1        Introduction

1.2       Symptoms and reasons for inadequate RE

1.3       Major RE activities

1.4       The role of communication n RE

1.5       Skills of a Requirements Engineer

1.6        Requirement types

1.5       The role of quality requirements

2. System and Context boundaries (75 minutes)

2.1       System, System Context and Boundaries

2.2       Determining System and Context Boundaries

3. Requirements Elicitation (90 minutes)

3.1        Requirements sources

3.2        Requirements categorization according to the Kano Model

3.3        Elicitation Techniques

3.3.1     Survey Techniques

3.3.2     Creativity Techniques

3.3.3     Document-centric Techniques

3.3.4     Observation Techniques

3.3.5     Support Techniques

4. Documenting Requirements (120 mins)

4.1       Document Design

4.2        Documentation Types

4.2.1     Perspectives of a system

4.2.2     Requirements Documentation using Natural Language

4.2.3     Requirements Documentation using Conceptual Models

4.2.4     Hybrid Requirements Documents

4.3        Document Structures

4.3.1     Standardized Document Structures

4.3.2     Customized Standard Contents

4.4        Using Requirements Documents

4.5        Quality Criteria for Requirements Documents

4.5.1     Unambiguity and Consistency

4.5.2     Clear Structure

4.5.3     Modifiability and Extendibility

4.5.4     Completeness

4.5.5     Traceability

4.6        Quality Criteria for Requirements

4.7        Glossary

5. Documenting Requirements in Natural Language (60 minutes)

5.1        Effects of Natural Language

5.1.1     Nominalization

5.1.2     Nouns without Reference Index

5.1.3     Universal Quantifiers

5.1.4     Incompletely Specified Conditions

5.1.5     Incompletely Specified Process verbs

5.2        Requirement Construction using Templates

6. Model-Based Requirements Documentation (300 minutes)

6.1        The Term Model

6.1.1     Properties of Models

6.1.2     Modeling Languages

6.1.3     Requirements Models

6.1.4     Advantages of Requirements Models

6.1.5     Combined Use of Models and Natural Language

6.2        Goal Models

6.2.1     Goal Documentation Using AND/OR Trees

6.2.2     Example of AND/OR Trees

6.3        Use Cases

6.3.1     UML Use Case Diagrams

6.3.2     Use Case Specifications

6.4        Three perspectives on the Requirements

 

6.5        Requirements Modeling in the Data Perspective

6.5.1     Entity-Relationship Diagrams

6.5.2     UML Class Diagrams

6.6        Requirements Modeling in the Functional Perspective

6.6.1     Data Flow Diagrams

6.6.2     Models of the Functional Perspective and Control Flow

6.6.3     UML Activity Diagrams

6.7        Requirements Modeling in the Behavioral Perspective

6.7.1     Statecharts

6.7.2     UML State Diagrams

7. Requirements Validation and Negotiation (150 minutes)

7.1.1     Fundamentals of Requirements Validation

7.1.2     Fundamentals of Requirements Negotiation

7.3        Quality Aspects of Requirements

7.3.1     Quality Aspect “Content”

7.3.2     Quality Aspect “Documentation”

7.3.3     Quality Aspect “Agreement”

7.4        Principles of Requirements Validation

7.4.1     Principle 1: Involvement of the Correct Stakeholders

7.4.2     Principle 2: Separating the Identification and the Correction of Errors

7.4.3     Principle 3: Validation from Different Views

7.4.4     Principle 4: Adequate Change of Documentation Type

7.4.5     Principle 5: Construction of Development Artifacts

7.4.6     Principle 6: Repeated Validation

7.5        Requirements Validation Techniques

7.5.1     Commenting

7.5.2     Inspection

7.5.3     Walk-through

7.5.4     Perspective-Based Reading

7.5.5     Validation through Prototypes

7.5.6     Using Checklists for Validation

7.6        Requirements Negotiation

7.6.1     Conflict Identification

7.6.2     Conflict Analysis

7.6.3     Conflict Resolution

7.6.4     Documentation of the Conflict Resolution

8. Requirements Management (150 minutes)

8.1        Assigning Attributes to Requirements

8.1.1     Attributes for Natural Language Requirements and Models

8.1.2     Attribute Scheme

8.1.3     Attribute Types of Requirements

8.2        Views on Requirements

8.2.1     Selective Views on the Requirements Foundation

8.2.2     Condensed Views on the Requirements

8.3        Prioritizing of Requirements

8.3.1     Method for Requirements Prioritization

8.3.2     Techniques for Requirements Prioritization

8.4        Traceability of Requirements

8.4.1     Advantages of Traceable Requirements

8.4.2     Purpose-Driven Definition of Traceability

8.4.3     Classification of Traceability Relations

8.4.4     Representation of Requirements Traceability

8.5 Versioning of Requirements

8.5.1     Requirements Versions

8.5.2     Requirements Configurations

8.5.3     Requirements Baselines

8.6        Management of Requirements Changes

8.6.1     Requirements Changes

8.6.2     The Change Control Board

8.6.3     The Change Request

8.6.4     Classification of Incoming Change Request

8.6.5     Basic Method for Corrective and Adaptive Changes

9. Tool Support (60 minutes)

9.1        General Tool

9.2        Modeling Tools

9.3        Requirements Management Tools

9.3.1     Specialized Tools for Requirements Management

9.3.2     Standard Office Applications

9.4        Introducing Tools

9.5        Evaluating Tools

9.5.1     Project View

9.5.2     User View

9.5.3     Product View

9.5.4     Process View

9.5.5     Provider View

9.5.6     Technical View

9.5.7     Economic View