56
Developing & Managing Requirements Requirements Engineering Benoy R Nair 27-Aug-2009 1 REQUIREMENTS ENGINEERING

Requirements Engineering

Embed Size (px)

DESCRIPTION

Objectives: 1. To understand the different processes in the realm of ‘Requirements Engineering’. 2. To see the challenges in requirements development and the importance of getting requirements right in an IT project. 3. To understand the different techniques used in different phases and processes of requirements development and management.

Citation preview

Page 1: Requirements Engineering

Developing & Managing Requirements

Requirements EngineeringBenoy R Nair 27-Aug-20091

REQUIREMENTS ENGINEERING

Page 2: Requirements Engineering

Objectives

Requirements EngineeringBenoy R Nair 27-Aug-20092

� To understand the different processes in the realm of ‘Requirements Engineering’.

� To see the challenges in requirements development and the importance of getting requirements right in

an IT project.

� To understand the different techniques used in different phases and processes of requirements

development and management.

Page 3: Requirements Engineering

REQUIREMENT

Requirements EngineeringBenoy R Nair 27-Aug-20093

Page 4: Requirements Engineering

What is a ‘Requirement’?

Requirements EngineeringBenoy R Nair 27-Aug-20094

Page 5: Requirements Engineering

What is a ‘Requirement’?

� “A condition or capability to which a system must conform.”

It can be any one of the following:

– A capability needed by a customer or user to solve a problem or achieve an objective.

– A capability that must be met or possessed by a system to satisfy a contract, standard, specification, regulation, or other formally imposed document.

– A restriction imposed by a stakeholder.

Requirements EngineeringBenoy R Nair 27-Aug-20095

Page 6: Requirements Engineering

From Needs to Requirements

Requirements EngineeringBenoy R Nair 27-Aug-2009

PROBLEM

DOMAIN

SOLUTION

DOMAIN

6

Page 7: Requirements Engineering

Requirement Categories (1)

� Functional Requirements

� Non Functional Requirements (NFRs)

– Performance

– Security

– Logging

– Reliability

Requirements EngineeringBenoy R Nair 27-Aug-20097

Page 8: Requirements Engineering

Requirement Categories (2)

� Functional Requirements

� Technical Requirements

� Operational Requirements

� Transitional Requirements

Requirements EngineeringBenoy R Nair 27-Aug-20098

Page 9: Requirements Engineering

Why do we need requirements?

� Project scoping

� Cost estimating

� Budgeting

� Project scheduling

� Software design

� Software testing

� Documentation and training manuals

Requirements EngineeringBenoy R Nair 27-Aug-20099

Page 10: Requirements Engineering

Why is it important to get the requirements right?

Requirements EngineeringBenoy R Nair 27-Aug-200910

Page 11: Requirements Engineering

Why is it important to get the requirements right?

Requirements EngineeringBenoy R Nair 27-Aug-200911

Phase in which fixed Relative Cost

Requirements 1

Design 3 – 6

Coding 10

Development Testing 15 – 40

Acceptance Testing 30 – 70

Operations 40 – 1000

Page 12: Requirements Engineering

What are the factors that cause projects to be challenged?

12Requirements EngineeringBenoy R Nair 27-Aug-2009

Factors Percentage of Responses

Lack of User Input 12.8%

Incomplete Requirements 12.3%

Changing Requirements 11.8%

Lack of Executive Support 7.5%

Technology Incompetence 7.0%

Lack of Resources 6.4%

Unrealistic Expectations 5.9%

Unclear Objectives 5.3%

Unrealistic Time Frames 3.7%

Other 23.0%

Page 13: Requirements Engineering

Why projects are impaired and ultimately cancelled?

Requirements EngineeringBenoy R Nair 27-Aug-200913

Factors Percentage of Responses

Incomplete Requirements 13.1%

Lack of User Involvement 12.4%

Lack of Resources 10.6%

Unrealistic Expectations 9.9%

Lack of Executive Support 9.3%

Changing Requirements 8.7%

Lack of Planning 8.1%

Didn’t need it any longer 7.5%

Lack of IT Management 4.3%

Technology Illiteracy 9.9%

Page 14: Requirements Engineering

Characteristics of a Good Requirement

� Correct

� Clear

� Understandable

� Unambiguous

� Testable (Verifiable)

� Feasible

� Independent

� Atomic

� Necessary

� Implementation-free

� Consistent

� Complete

� Non-redundant

Requirements EngineeringBenoy R Nair 27-Aug-200914

Page 15: Requirements Engineering

REQUIREMENTS ENGINEERING

Requirements EngineeringBenoy R Nair 27-Aug-200915

Page 16: Requirements Engineering

Requirements Engineering

Requirements EngineeringBenoy R Nair 27-Aug-200916

Page 17: Requirements Engineering

Requirements Development

Requirements EngineeringBenoy R Nair 27-Aug-200917

Page 18: Requirements Engineering

REQUIREMENTS ELICITATION

Requirements Development

Requirements EngineeringBenoy R Nair 27-Aug-200918

Page 19: Requirements Engineering

What is Requirements Elicitation?

Requirements EngineeringBenoy R Nair 27-Aug-200919

Page 20: Requirements Engineering

What is Requirements Elicitation?

Requirements EngineeringBenoy R Nair 27-Aug-200920

� The process of discovering the requirements for a system by communication with customers, system

users and others who have a stake in the system

development.

Page 21: Requirements Engineering

So how do we elicit requirements?

� Identify relevant requirements sources.

� Ask them appropriate questions to understand their

needs.

� Look for implications, inconsistencies, and

unresolved issues in gathered information.

� Confirm your understanding of requirements with the

users.

� Synthesize appropriate statements of the requirements.

Requirements EngineeringBenoy R Nair 27-Aug-200921

Page 22: Requirements Engineering

Requirements Elicitation Problems

� Problems of Scope

– The requirements may address too little or too much information

� Problems of Understanding

– Wrong/ different understanding of the requirements within and between groups

� Problems of Volatility

– Changing nature of requirements

Requirements EngineeringBenoy R Nair 27-Aug-200922

Page 23: Requirements Engineering

Problems of Scope

1. The boundary of the system is ill-defined

2. Unnecessary design information may be given

Requirements EngineeringBenoy R Nair 27-Aug-200923

Page 24: Requirements Engineering

Problems of Understanding

� Users have incomplete understanding of their needs.

� Users have poor understanding of computer

capabilities and limitations.

� Analysts have poor knowledge of problem domain.

� User and analyst speak different languages.

� Ease of omitting “obvious” information.

� Conflicting views of different users.

� Requirements are often vague and un-testable, e.g.,

“user friendly” and “robust”.

Requirements EngineeringBenoy R Nair 27-Aug-200924

Page 25: Requirements Engineering

Problems of Volatility

� Requirements evolve over time

Requirements EngineeringBenoy R Nair 27-Aug-200925

Page 26: Requirements Engineering

Challenges of Requirements Elicitation

� “Yes, but…” syndrome

– Stems from human nature and the users’ inability to experience

the software as they might experience a physical device.

� The Undiscovered Ruins

– The more you find, the more you realize still remain.

� “User and Developer” syndrome

– Reflects the profound difference between the two, making

communication difficult.

� “Living with the sins of your predecessors” syndrome

– No trust between the groups based on previous interactions and

earlier experiences.

Requirements EngineeringBenoy R Nair 27-Aug-200926

Page 27: Requirements Engineering

Requirements Elicitation Techniques

� Questionnaire

� Interviewing

� Requirements Workshops

� Brain storming

� Use cases

� Role Playing

� Prototyping

� Story boards

Requirements EngineeringBenoy R Nair 27-Aug-200927

Page 28: Requirements Engineering

REQUIREMENTS ANALYSIS

Requirements Development

Requirements EngineeringBenoy R Nair 27-Aug-200928

Page 29: Requirements Engineering

What is Requirements Analysis?

Requirements EngineeringBenoy R Nair 27-Aug-200929

Page 30: Requirements Engineering

What is Requirements Analysis?

Requirements EngineeringBenoy R Nair 27-Aug-200930

� The process of breaking down user requirements into their components and studying these to develop

a set of system requirements.

The three major goals of this process are:

– Achieve agreement among developers and customers.

– Provide a basis for design.

– Provide a basis for Verification and Validation (V&V)

Page 31: Requirements Engineering

Process Model

� Work Flow Diagramming

� Model Flow Chart Diagramming

� Customer Event Diagramming

� Use Case Diagramming

� Activity Diagrams

� Decision Trees

31

Page 32: Requirements Engineering

Process Modeling (Sample diagrams)

Requirements EngineeringBenoy R Nair 27-Aug-200932

Page 33: Requirements Engineering

Process Modeling (Sample diagrams)

Requirements EngineeringBenoy R Nair 27-Aug-200933

Page 34: Requirements Engineering

Logical Data Model

� Entity Relationship Diagramming

� Data Normalization/ De-Normalization

34

Page 35: Requirements Engineering

REQUIREMENTS SPECIFICATION

Requirements Development

Requirements EngineeringBenoy R Nair 27-Aug-200935

Page 36: Requirements Engineering

What is Requirements Specification?

Requirements EngineeringBenoy R Nair 27-Aug-200936

Page 37: Requirements Engineering

What is Requirements Specification?

Requirements EngineeringBenoy R Nair 27-Aug-200937

� “Complete description of the behavior of the system to be developed.

� Requirements document is a reference document.

� Contract between stakeholders

� Must be maintained over the life of the project

Page 38: Requirements Engineering

Software Requirement Specification Objectives

Requirements EngineeringBenoy R Nair 27-Aug-200938

� Establish agreement between stakeholders

� Firm foundation for design

� Reduce development effort

� Provide a basis for estimating cost and schedule

� Reduce rework effort and cost of quality

� Provide a baseline for validation and verification

� Facilitate transfer

� Serve as a basis for enhancement

Page 39: Requirements Engineering

SRS Document

Requirements EngineeringBenoy R Nair 27-Aug-200939

� Known as ‘Black-box specification’

� Concentrates on

– ‘What’ needs to be done

– Carefully avoids the ‘how to do’ aspects

� Serves as a contract

Page 40: Requirements Engineering

Issues SRS writer must address

Requirements EngineeringBenoy R Nair 27-Aug-200940

� Functionality

� External Interfaces

� Performance

� Attributes

� Design Constraints

Page 41: Requirements Engineering

Specification Principles

Requirements EngineeringBenoy R Nair 27-Aug-200941

� Separate functionality from implementation

� Develop model of desired behavior of the system

� Establish the context in which software operates

� Define the environment in which system operates

The following are NOT included in a SRS:

– Project Requirements: Cost, delivery schedules, staffing, reporting procedures

– Design Solutions

– Product Assurance Plan: Quality Assurance plans, Configuration Management procedures, Verification & Validation procedures

Page 42: Requirements Engineering

REQUIREMENTS VERIFICATION & VALIDATION

Requirements Development

Requirements EngineeringBenoy R Nair 27-Aug-200942

Page 43: Requirements Engineering

What is Requirements Verification & Validation?

Requirements EngineeringBenoy R Nair 27-Aug-200943

Page 44: Requirements Engineering

What is Requirements Verification?

Requirements EngineeringBenoy R Nair 27-Aug-200944

� Proving that each requirement has been satisfied

� Can be done by logical argument, inspection,

modeling, simulation, analysis, expert review, test, demonstration

Page 45: Requirements Engineering

What is Requirements Validation?

Requirements EngineeringBenoy R Nair 27-Aug-200945

� Ensuring that the set of requirements is correct, complete & consistent.

� Ensuring that a model can be created that satisfies the requirements.

� Ensuring that a real-world solution can be built and

tested to prove that it satisfies the requirements.

Page 46: Requirements Engineering

Requirements V & V: Objectives

Requirements EngineeringBenoy R Nair 27-Aug-200946

� Certify that the requirements document is an acceptable description of the system to be

implemented

� Check requirements document for:

– Correctness, completeness and consistency

– Conformance to standards

– Requirement conflicts

– Technical errors

– Ambiguous requirements

Page 47: Requirements Engineering

Requirements: Analysis & Validation

Requirements EngineeringBenoy R Nair 27-Aug-200947

� Analysis works with raw requirements as elicited from the system stakeholders.

– “Have we got the right requirements?” is the key question to be answered at this stage.

� Validation works with final draft of the requirements

document i.e. with negotiated and agreed

requirements.

– “Have we got the requirements right?” is the key question to be answered at this stage.

Page 48: Requirements Engineering

Requirements V & V: Inputs & Outputs

Requirements EngineeringBenoy R Nair 27-Aug-200948

Requirements

V & V

Requirements

Document

Organisational

Knowledge

Organisational

Standards

List of problems

Agreed actions

Page 49: Requirements Engineering

Requirements Management

Requirements EngineeringBenoy R Nair 27-Aug-200949

Page 50: Requirements Engineering

What is Requirements Management?

Requirements EngineeringBenoy R Nair 27-Aug-200950

Page 51: Requirements Engineering

What is Requirements Management

Requirements EngineeringBenoy R Nair 27-Aug-200951

Page 52: Requirements Engineering

Requirements Management: Key Activities

Requirements EngineeringBenoy R Nair 27-Aug-200952

� Understand relationships among key stakeholders and involve them

� Identify change in requirements

� Managing & controlling requirements changes

� Identify and track requirements attributes

� Trace requirements

Page 53: Requirements Engineering

Requirements Management Plan

Requirements EngineeringBenoy R Nair 27-Aug-200953

� A component of Project Management Plan

� Details the plans and processes for managing

requirements through out the entire project life cycle.

Requirements Management Plan

Page 54: Requirements Engineering

Requirement Management Metrics

Requirements EngineeringBenoy R Nair 27-Aug-200954

� To measure and improve effectiveness of the requirements processes.

Typical metrics collected:

– Number of Requirement defects

– Requirement Review efforts

– Changes raised

Page 55: Requirements Engineering

Requirements Traceability

Requirements EngineeringBenoy R Nair 27-Aug-200955

� ‘The ability to describe and follow the life of a requirement, inboth forwards and backwards direction (i.e. from its origins, through its development and specification, to its subsequent deployment and use, and through all periods of on-going refinement and iteration in any of these phases’

– To ensure the object of the requirements conforms to the requirements by associating each requirement with the object via the traceability matrix.

– Concerned with documenting the life of a requirement.

– To find the origin of each requirement and track every change which was made to this requirement

Page 56: Requirements Engineering

Requirements Change Management

Requirements EngineeringBenoy R Nair 27-Aug-200956

� Process to manage changes in requirements (over the entire project life cycle)

� Key elements:

– Change Process

– Change Tracking System