51
SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY Introduction to Requirements Engineering 28.10.2001 Marjo Kauppinen Qure Project Software Business and Engineering Institute (SoberIT) Helsinki University of Technology (HUT)

Introduction to Requirements Engineering

Embed Size (px)

DESCRIPTION

Introduction to Requirements Engineering. 28.10.2001 Marjo Kauppinen Qure Project Software Business and Engineering Institute (SoberIT) Helsinki University of Technology (HUT). Agenda. Basics of Requirements Engineering (RE) Requirements User Requirements Document - PowerPoint PPT Presentation

Citation preview

Page 1: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

Introduction toRequirements Engineering

28.10.2001

Marjo KauppinenQure Project

Software Business and Engineering Institute (SoberIT)Helsinki University of Technology (HUT)

Page 2: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

Agenda

• Basics of Requirements Engineering (RE)

• Requirements

• User Requirements Document

• Requirements Definition Process

• Summary

Page 3: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

Basics of Requirements Engineering (1/2)

requirements definition

specification & design & coding &

testing

acceptance testing

requirements management

Page 4: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

Basics of Requirements Engineering (2/2)

Requirements engineering (RE)

means that requirements for a system are defined,

managed and tested systematically.

Requirements engineering

covers all of the activities involved in discovering, documenting,

and maintaining a set of requirements for a system. The term

engineering implies that systematic and repeatable techniques

should be used to ensure that system requirements are complete,

consistent, relevant etc. [Som97]

Page 5: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

What are Requirements? (1/4)

user and customer requirements for SYSTEM

technical requirements for SYSTEM

User/customer requirements

documents

Technical specifications

Project plan

requirements for PROJECT

Page 6: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

What are Requirements? (2/4)

User/Customer Requirements

Document

Specification DesignRequirements

Definition

Technical

Specifications

Page 7: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

What are Requirements? (3/4)

requirements definition process

specification process

business requirementsuser/customer requirements technical requirements

Why? What? How?

Page 8: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

What are Requirements? (4/4)

• User: The person who operates directly with the system [IEE93].

• Customer: The person who pays for the system and usually (but not

necessarily) decides the requirements [IEE93] .

• Requirement: A function, constraint or other property that the system

must provide to fill the needs of the system’s intended user(s) [Abb86].

• Constraints and properties are also called non-functional requirements

or quality requirements.

Page 9: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

What are User Requirements? (1/7)

Why are user requirements important?

• If a system doesn’t satisfy users’ requirements, it is useless.

• In the worst case, the system is not taken into use at all.

• The most successful systems exceed user’s expectations.

Page 10: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

What are User Requirements? (2/7)

• User requirements tell WHAT the system shall do from user’s point of view.

• We are interested in only those functions and properties visible to the users.

• The system is seen as a black box.

user group A user group B

Page 11: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

What are User Requirements? (3/7)

• Functional requirement – A requirement that specifies a

function or service that a system must be capable of

performing from user’s point of view.

• Non-functional requirement – A requirement that describes

the property of the system including performance, reliability

and usability.

Page 12: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

What are User Requirements? (4/7)

Requirement Analysis: Good user requirement?

The system shall be ready by the end of 2002.

Project requirement

The system shall print a component order on paper.

Poor user requirement. Compare the next requirement.

The user shall be able to print a component order on paper.

Relatively good user requirement. The user is doing something

The user shall be able to send a component order to the factory by email or by fax.

Poor user requirement, because two requirements in one sentence.

Page 13: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

What are User Requirements? (5/7)

Requirement Analysis: Good user requirement?

The system shall be user friendly.

Poor user requirement: Too general, not possible

The component orders shall be stored into the database.

Technical requirement.

The user shall be able to open an existing component order in 3 seconds.

Good user requirement.

Page 14: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

What are User Requirements? (6/7)

Characteristics of a good user requirement:

• One requirement per one sentence.

• Clear structure:

• Functional requirement: The user shall do something.

• Property: The minimum font size shall be 14.

Page 15: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

What are User Requirements? (7/7)

Characteristics of a good user requirement:

• Correct: A requirement contributes to a real user need.

• Understandable: A reader can easily understand the meaning of

the requirement.

• Unambiguous: A requirement has only one possible interpretation.

• Verifiable: A requirement can be tested.

Page 16: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

User Requirements Document (1/18)

• is official statements of user requirements

• says what the system should do without specifying how.

Page 17: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

User Requirements Document (2/18)

Contents

• Introduction: Short description of the system and goals/benefits of the system

• Glossary: Short descriptions of the special terms used in the document

• Overview of the system

• Users

• Functional requirements

• Non-functional requirements: Performance, reliability, usability etc.

• Constraints: Standards, software and hardware constraints required by customer

Page 18: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

User Requirements Document (3/18)

Contents: Overview of the system

• Main functions (services) of the system

• Use case diagrams are a good way to describe the

main functions and the users of the system.

• Basic principle: The system is seen as a black box. We are

interested in only those functions visible to the users.

Page 19: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

User Requirements Document (4/18)

Contents: Overview of the system

Example of Use Case Diagram*: Handling Emergency Alarm Call

passenger service center operator

serviceman

* Kone Research Center has given a permission to present this use case diagram as an example.

Making Emergency Alarm Call

Dispatching Job

Reporting

Konect System

Helping Passenger out of Elevator

Page 20: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

User Requirements Document (5/18)

Contents: Overview of the system Checklist for Use Case Diagrams

• Are the actor names consistent and unambiguous?

• Is it clear which use cases are inside and which outside the system?

• Are the use cases written from the user’s point of view not from the

system’s point of view?

• Does the use case diagram have too many use cases (not more than 8)?

• Is the use case diagram clear and easy to read (not a spider’s net)?

Page 21: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

What Is the Contents of User Requirements Document? (6/18)

Users:

Name of

user group

Description Number of

users

Passengers Passengers are persons that use an

elevator.

Tens of

thousands

Service operators Service operators are persons that

monitor the status of the elevators.

50

Servicemen Servicemen are persons that make

both regular service visits and call

up (fault) visits.

3000

Page 22: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

User Requirements Document (7/18)

Contents: Functional Requirements

• Use cases are a good way to document functional requirements.

• Use cases originally developed by Jacobson and Rumbaugh

[Rum94].

• [Rum94]: J. Rumbaugh, “Getting Started: Using Use Cases to Capture

Requirements”, JOOP, September 1994.

Page 23: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

User Requirements Document (8/18)

Contents: Functional RequirementsTemplate for Use Case Description

• Use Case: Name of the use case

• Summary: Short description of the use case

• Actors: List of users and other systems that interacts directly with a system

• Preconditions: Description of “start situation” and goals of the users

• Basic sequence: Descriptions of the main actions of the user

• Exceptions: Descriptions of special situations

• Postconditions: Description of “end situation”

Page 24: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

User Requirements Document (9/18)

Contents: Functional RequirementsExample for Use Case Description

• Use Case: Making Emergency Alarm Call

• Preconditions: An elevator has stopped between floors and there is a passenger in

the elevator. The passenger wants to get out of the elevator safely and as fast as

possible.

• Actors: Passenger and service center operator

• Summary: An entrapped passenger pushes the emergency alarm button in order to

get help. A service center operator receives the emergency alarm call and informs the

passenger that a serviceman will come and let the passenger out of the elevator.

* Kone Research Center has given a permission to present this use case as an example.

Page 25: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

User Requirements Document (10/18)

Contents: Functional RequirementsExample for Use Case Description

Basic sequence:

• Step 1: The passenger presses the emergency alarm button.

• Step 2: The service center operator gets a visible notification about the emergency alarm

call on the screen with an optional audio signal.

• Step 3: The service center operator accepts the emergency alarm call to be handled.

• Step 4: The system opens voice connection between the service center operator and the

passenger.

• Step 5: The system indicates the service center operator and the passenger that voice

connection is open.

• Step 6: The system guides the service center operator what information to ask from the

passenger.

• Step 7: The service center operator informs the system that the emergency alarm call is

correct.

Page 26: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

User Requirements Document (11/18)

Contents: Functional RequirementsExample for Use Case Description

Exceptions:

• Step 1: If an entrapped passenger does not push the alarm button long enough (less

than 3 seconds), the system alerts the passenger with voice announcement.

• Step 7: If the passenger has pressed the emergency alarm button by accident, the

service center operator informs the system that the emergency alarm call is false. The

system resets the emergency alarm call.

Postconditions: The entrapped passenger knows that service center operator

will contact a serviceman who will be helping the passenger out of the elevator safely

and as soon as possible.

Page 27: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

User Requirements Document (12/18)

Contents: Functional RequirementsChecklist for Use Case Descriptions

• Is the use case description too long (not more than 15 actions)?

• Is the use case description logical from user’s point of view?

• Does the use case describe the functions from the users’ point of view?

• Is the use case described using user’s language not computer slang?

• Does the use case contain no design and implementation information?

Page 28: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

User Requirements Document (13/18)

Characteristics

Correctness Every requirement contributes to a real need.

Unambiguity Every requirement has only one possible interpretation.

Understandability Readers can easily comprehend the meaning of all requirements with a minimum of explanation.

Verifiable Every requirement can be tested.

Page 29: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

User Requirements Document (14/18)

Characteristics

Consistency No subset of individual requirement conflict.

Completeness Everything that the system is supposed to do is included in the requirements document.

Traceability Every requirement has a unique number.

Modifiability A document’s structure and style are such that any changes are made easily, completely, and consistently.

Page 30: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

User Requirements Document (15/18) Purpose

• to describe what a system does from the user’s point of view

• to get feedback from users and customers

• to guide design

• to guide testing

• to guide project planning and follow-up

• to provide material for user manuals

• to provide material for marketing and selling

Page 31: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

User Requirements Document (16/18)

Stakeholders

User Requirements

Document

users

customers

marketing and sales personnel

designers

testers

user manual writersproject manager

Page 32: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

User Requirements Document (17/18)

Objectives

Objective ofUser Requirements Documents

Quality Aspect

To be an agreement between the customers andsuppliers on what the system is to do

Product Quality

To provide the basis for software specification anddesign.

Product Quality

To support verification and validation of the system Product Quality

To avoid later redesign, recoding and retesting Project Quality

To support a preliminary effort estimation Project Quality

Page 33: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

User Requirements Document (18/18)

Objectives

Quality of Requirements Engineering Processes

Quality of Software Product

Quality of Software Project

Quality of Requirements Document

Page 34: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

Requirements Definition Process (1/14)

requirements definition

specification & design & coding &

testing

acceptance testing

requirements management

Page 35: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

Requirements Definition Process (2/14)

requirements definition process

business requirementsuser requirements

document

requirements elicitation

requirements analysis

requirements representation

requirements validation

Page 36: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

Requirements Definition Process (3/14)

Elicitation is the process of discovering the requirements for a system

• through consultation with users, customers and other stakeholders

• from system documents, domain knowledge and market studies

• through “brain storming”.

Page 37: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

Requirements Definition Process (4/14)

Realities of requirements elicitation

• Stakeholders do not often know what they want.

• Users and customers use a language of their own.

• Different stakeholders have different viewpoints.

• The business environment is dynamic.

Page 38: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

Requirements Definition Process (5/14)

Requirements elicitation practices:

• Identify and consult all stakeholders.

• Record requirements sources.

• Record requirements rationale.

• Prototype poorly understood requirements.

• Define users’ processes.

Page 39: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

Requirements Definition Process (6/14)

Analysis is the process of establishing an agreed set of requirements and discovering

• missing requirements

• requirements conflicts

• ambiguous requirements

• overlapping requirements

• unrealistic requirements.

Page 40: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

Requirements Definition Process (7/14)

Realities of requirements analysis

• Conflicting requirements require negotiations.

• Proper analysis requires hard thinking, time and effort.

Page 41: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

Requirements Definition Process (8/14)

Requirements analysis practices

• Use checklists for requirements analysis.

• Plan conflict resolution.

• Prioritise requirements.

• Assess requirements risks.

Page 42: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

Requirements Definition Process (9/14)

Representation is the process of describing individual requirements in a

• concise,

• understandable, and

• unambiguous way.

Page 43: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

Requirements Definition Process (10/14)

Realities of requirements representation

• Requirements are read more often than they are written.

• Readers of requirements come from diverse backgrounds.

• Writing clearly and concisely is not easy.

Page 44: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

Requirements Definition Process (11/14)

Requirements representation practices

• Use standard templates for describing requirements.

• Use simple and consistent language.

• Use diagrams.

• Specify requirements quantitatively.

Page 45: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

Requirements Definition Process (12/14)

Validation is the process of checking the requirements for

• omissions,

• conflicts, and

• ambiguities and

• for ensuring that the requirements follow quality

standards.

Page 46: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

Requirements Definition Process (13/14)

Realities of requirements validation

• The main problem of requirements validation is that

there is no existing document which can be a basis for

the validation.

• If you do not allow sufficient time for validation, you will

almost certainly end up with requirements problems.

Page 47: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

Requirements Definition Process (14/14)

Requirements validation practices

• Organise formal requirements inspections.

• Use multi-disciplinary teams to review requirements.

• Use validation checklists.

• Write a draft user manual.

• Propose requirements test cases.

Page 48: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

Summary (1/2)

User requirements

definitionUser requirements management

Design, coding and system testing

Acceptance testing

Requirements Engineering

Useful and Successful Products

Page 49: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

Summary (2/2)

• There is huge potential for improvement in RE.

• RE is a big challenge and an opportunity for organisations

and individuals.

Page 50: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

References• [Abb86] R. Abbott, An Integrated Approach to Software Development, John

Wiley, New York, 1986.

• [Hsi93] P. Hsia, A. Davis and D. Kung, “Status Report: Requirements

engineering,” IEEE Software, pp. 75-79, November 1993

• [IEE94] IEEE Recommended Practice for Software Requirements

Specifications, IEEE Std 830-1993, the Institute of Electrical and Electronics

Engineers, New York, 1994

• [Kot98] G. Kotonya and I. Sommerville, Requirements Engineering - Processes

and Techniques, John Wiley & Sons, New York, 1998.

• [Saw99] P. Sawyer, I. Sommerville and S. Villier, “Capturing the Benefits of

Requirements Engineering,” IEEE Software, pp. 78-85, March/April 1999.

• [Som97] I. Sommerville and P. Sawyer, Requirements Engineering - A Good

Practice Guide, John Wiley & Sons, New York, 1997.

Page 51: Introduction to Requirements Engineering

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY

Literature

• S. Robertson, J. Robertson and G. Weinberg, Mastering the Requirements

Process, Addison-Wesley Pub Co, 1999

• G. Kotonya and I. Sommerville, Requirements Engineering - Processes

and Techniques, John Wiley & Sons, New York, 1998.

• G. Scheider and J. Winters, Applying Use Cases, A Practical Guide,

Addison-Wesley Pub Co, 1998.

• A. Cockburn, Writing Effective Use Cases, Addison-Wesley Pub Co, 2001.

• D. Kulak and E. Guiney, Use Cases: Requirements in Context, Addison-

Wesley Pub Co, 2000.