Introduction to Requirements Engineering - SoberIT-Software Business … · 2008. 9. 18. ·...

25
SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 1 Introduction to Requirements Engineering T-76.3601 4.4.2008 Qure, CORE & REflex projects Marjo Kauppinen

Transcript of Introduction to Requirements Engineering - SoberIT-Software Business … · 2008. 9. 18. ·...

Page 1: Introduction to Requirements Engineering - SoberIT-Software Business … · 2008. 9. 18. · SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY 1

Introduction to Requirements Engineering

T-76.36014.4.2008

Qure, CORE & REflex projectsMarjo Kauppinen

Page 2: Introduction to Requirements Engineering - SoberIT-Software Business … · 2008. 9. 18. · SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY2

Goals of the session

Students knowwhat requirements engineering (RE) means

why RE is important

which RE practices are recommended.

Page 3: Introduction to Requirements Engineering - SoberIT-Software Business … · 2008. 9. 18. · SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY3

Agenda

Overview of requirements engineering

Different types and levels of requirements

A small set of good RE practices

Summary

Page 4: Introduction to Requirements Engineering - SoberIT-Software Business … · 2008. 9. 18. · SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY4

Basics of Requirements Engineering

requirements definition

specification & design & coding & module/integration/system testing

requirements management

acceptance testing

Page 5: Introduction to Requirements Engineering - SoberIT-Software Business … · 2008. 9. 18. · SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY5

Basics of Requirements Engineering

Requirements engineeringcovers 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 6: Introduction to Requirements Engineering - SoberIT-Software Business … · 2008. 9. 18. · SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY6

Basics of Requirements Engineering

Requirements engineeringcovers 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 techniquesshould be used to ensure that system requirements are complete, consistent, relevant etc. [Som97]

Requirements engineering means that requirements for a product are defined, managed and tested systematically The purpose of RE is to ensure that products satisfy customer and user needs i.e. provide value for customers and users [Qure, CORE & Reflex].

Page 7: Introduction to Requirements Engineering - SoberIT-Software Business … · 2008. 9. 18. · SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY7

Basics of Requirements Engineering

Requirements engineering

Requirements definition

Requirements management

Acceptance testing

Elicitation

Analysis

Representation

Validation

Change management

Status tracking

Document-based practices

Collaboration-based practices

Page 8: Introduction to Requirements Engineering - SoberIT-Software Business … · 2008. 9. 18. · SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY8

Benefits of RE [RE literature]

Well-documented requirements

are an agreement between the customers and suppliers on what is to be developed

provide the basis for specification and design

support testing

reduce rework

Page 9: Introduction to Requirements Engineering - SoberIT-Software Business … · 2008. 9. 18. · SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY9

Benefits of RE in real projects [Qure]

Without knowing customer needs, it is impossible to develop a good product.

Requirements

describe the collectively accepted objectives.

improve commitment and motivation of the project members.

improve communication outwards from the project.

are the basis for systematic product development.

are the basis for project planning.

Page 10: Introduction to Requirements Engineering - SoberIT-Software Business … · 2008. 9. 18. · SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY10

Different Types of Requirements

Requirement: A function, constraint or other property that the system must provide to fill the needs of the system’s intended user(s) [Abb86].

Functional requirement – A requirement that specifies a function or service that a system must be capable of performing.

Non-functional requirement – A requirement that describes the property of the system including performance, reliability, usability etc.

Constraint - Standards, software and hardware constraints etc

Typical view in the RE literature

Page 11: Introduction to Requirements Engineering - SoberIT-Software Business … · 2008. 9. 18. · SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY11

Levels and types of requirements

Business requirements

User requirements

Technical requirements

Func

tiona

l req

uire

men

ts

Non

-func

tiona

l req

uire

men

ts

Con

stra

ints

Customer and user

needs

Page 12: Introduction to Requirements Engineering - SoberIT-Software Business … · 2008. 9. 18. · SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY12

Different levels of requirements

User needs

User requirements

Technical requirements

Business requirements

Who uses and why?

Current problems and opportunities

What should the system do to satisfy user needs?

Users’ point of view

How is the system implemented?

Technical point of view

Scoping and guiding

Traceability

Page 13: Introduction to Requirements Engineering - SoberIT-Software Business … · 2008. 9. 18. · SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY13

State of the RE Practice

Business requirements

User requirements

Technical requirements

Functional requirements

Non-functional requirements

Constraints

The focus in many projects

Level of abstraction increases => number of details decreases

Page 14: Introduction to Requirements Engineering - SoberIT-Software Business … · 2008. 9. 18. · SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY14

Requirements Definition Process

requirements definition

specification & design & coding & module/integration/system testing

requirements management

acceptance testing

Page 15: Introduction to Requirements Engineering - SoberIT-Software Business … · 2008. 9. 18. · SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY15

Requirements Definition ProcessAn Iterative Model

Analysis

Representation

Validation

Elicitation

Business goals

An approved set of requirements

Page 16: Introduction to Requirements Engineering - SoberIT-Software Business … · 2008. 9. 18. · SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY16

Requirements Definition Process

Elicitation and analysis practices:Identify user groups

Discover customer and user needs actively by interviewing and observing

Prioritize needs i.e. identify essential needs from users’ point of view

Page 17: Introduction to Requirements Engineering - SoberIT-Software Business … · 2008. 9. 18. · SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY17

Requirements Definition Process

Representation practices:Apply use cases to document functional requirements

Use case diagrams for describing the overview of system

Use case descriptions for documenting functional requirements from users’ point of view

Use Case: xxxxx

Summary: yyyyy

Actors:

Preconditions:

Basic sequence:

Exceptions:

Postconditions:

Page 18: Introduction to Requirements Engineering - SoberIT-Software Business … · 2008. 9. 18. · SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY18

Requirements Definition Process

Validation practices:Use multi-disciplinary teams to review requirements

Organize informal inspections for a small set of requirements

Page 19: Introduction to Requirements Engineering - SoberIT-Software Business … · 2008. 9. 18. · SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY19

Agile methods: RE related practices in Scrum [Schwaber 2004]

Product BacklogThe list of prioritized requirements (??)

Product owner responsible for contents and prioritization (??)

Dynamic; management constantly changes the product backlog to identify what the product needs to be appropriate, competitive, and useful (??)

Sprint Backlog (a month)The tasks that a Team defines for turning the product backlog into an increment of shippable product functionality (??)

New functionality demonstrated at the end of Sprint (??)

?? How to perform these practices successfully in real product development projects?

Page 20: Introduction to Requirements Engineering - SoberIT-Software Business … · 2008. 9. 18. · SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY20

Good principles from agile methods

Customer involvement (XP)

Linking requirements and testing (XP)

Collaboration (Scrum)

Linking requirements and project planning (Scrum)

What about good old requirements practices?

Page 21: Introduction to Requirements Engineering - SoberIT-Software Business … · 2008. 9. 18. · SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY21

Summary: Good old RE practices

Elicitation

Analysis

Representation

Validation

Discover customer and user needs actively

Prioritize customer and user needs

Apply use cases for representing requirements

Use multi-disciplinary teams to review requirements

Do not forget the importance of communication and collaboration.

Page 22: Introduction to Requirements Engineering - SoberIT-Software Business … · 2008. 9. 18. · SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY22

Summary

Lessons learned from practice:

Deep understanding of user needs is essential and challenging.

Requirements improve

commitment and motivation of project members

communication.

Requirements are the basis for

systematic product development

project planning.

Page 23: Introduction to Requirements Engineering - SoberIT-Software Business … · 2008. 9. 18. · SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY23

Requirements Engineering:The Heart of Software Engineering

Useful and successful products and systems that provide value for customers and users

Requirements engineering

Deep understanding of customer and user needs

Product development and software engineering

Page 24: Introduction to Requirements Engineering - SoberIT-Software Business … · 2008. 9. 18. · SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY24

Glossary: Key conceptsUser: The person who operates directly with the system [IEE98].

Customer: The person who pays for the system and usually (but not necessarily) decides the requirements [IEE98] .

User needs refer to problems that hinder users in achieving their goals, or opportunities to improve the likelihood of users’ achieving their goals [Kuj02].

User requirement: A user requirement is an externally visible function, property or constraint that the system must provide to fill the needs of the system’s intended users.

Page 25: Introduction to Requirements Engineering - SoberIT-Software Business … · 2008. 9. 18. · SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY

SoberITSoftware Business and Engineering Institute

HELSINKI UNIVERSITY OF TECHNOLOGY25

References

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

New York, 1986.

[IEE98] IEEE Recommended Practice for Software Requirements Specifications,

IEEE Std 830-1998, the Institute of Electrical and Electronics Engineers, New York,

1998.

[Kuj02] S. Kujala, User Studies: A Practical Approach to User Involvement for

Gathering User Needs and Requirements. [PhD Thesis], Helsinki University of

Technology, Department of Computer Science and Engineering, (2002)

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

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