Top Banner
L3 - Requirements Engineering, Critical Systems Engineering, 2011 Slide 1 Requirements Engineering Professor Ian Sommerville
28

Requirements Engineering (CS 5032 2012)

Jan 13, 2015

Download

Technology

Ian Sommerville

An introduction to requirements engineering for students with no previous background in this area. Part of critical systems engineering course, CS 5032.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Requirements Engineering (CS 5032 2012)

L3 - Requirements Engineering, Critical Systems Engineering, 2011 Slide 1

Requirements Engineering

Professor Ian Sommerville

Page 2: Requirements Engineering (CS 5032 2012)

L3 - Requirements Engineering, Critical Systems Engineering, 2011 Slide 2

Requirements and systems

User world

Software-based system

Requirements

Photo © Liam Quinn

Page 3: Requirements Engineering (CS 5032 2012)

L3 - Requirements Engineering, Critical Systems Engineering, 2011 Slide 3

What are system requirements?

• Requirements are defined during the early stages of a system development as a specification of what should be implemented or as a constraint of some kind on the system.

• They may be:– a user-level facility description,

– a detailed specification of expected system behaviour,

– a general system property,

– a specific constraint on the system,

– information on how to carry out some computation,

– a constraint on the development of the system.

Page 4: Requirements Engineering (CS 5032 2012)

L3 - Requirements Engineering, Critical Systems Engineering, 2011 Slide 4

Examples of requirements

• Functional requirements“If a patient is known to be allergic to a particular medication, then prescription of that medication shall result in a warning message being issued to to the prescriber”

• Non-functional requirements“The system shall be available to all clinics during normal working hours (Mon-Fri, 0830-1730). Downtime during normal working hours shall not exceed 5 seconds in any one day”

• Domain requirements“The system shall implement patient privacy provisions as set out in the 1998 Data Protection Act”

Page 5: Requirements Engineering (CS 5032 2012)

L3 - Requirements Engineering, Critical Systems Engineering, 2011 Slide 5

What is requirements engineering?

• Requirements engineering covers all of the activities involved in discovering, documenting, and maintaining a set of requirements for a computer-based system.

• The use of the term ‘engineering’ implies that systematic and repeatable techniques should be used to ensure that system requirements are complete, consistent, relevant, etc.

Page 6: Requirements Engineering (CS 5032 2012)

L3 - Requirements Engineering, Critical Systems Engineering, 2011 Slide 6

Are requirements important?

• European Software Process Improvement Training Initiative (1996)

“The principal problem areas in software development and production are the requirements specification and the management of customer requirements”

• In a study of errors in embedded systems, it was found that:

“... difficulties with requirements are the key root-cause of the safety-related software errors that have persisted until integration and system testing”

Page 7: Requirements Engineering (CS 5032 2012)

L3 - Requirements Engineering, Critical Systems Engineering, 2011 Slide 7

What happens if the requirements are wrong?

• The system may be delivered late and cost more than originally expected.

• The customer and end-users are not satisfied with the system. They may not use its facilities or may even decide to scrap it altogether.

• The system may be unreliable in use with regular system errors and crashes disrupting normal operation.

• If the system continues in use, the costs of maintaining and evolving the system are very high.

Page 8: Requirements Engineering (CS 5032 2012)

L3 - Requirements Engineering, Critical Systems Engineering, 2011 Slide 8

Why is RE difficult?• Changing environments

– Businesses operate in a rapidly changing environment so their requirements for system support are constantly changing.

• Differing views– Multiple stakeholders with different goals and

priorities are involved in the requirements engineering process.

• Unclear opinions– System stakeholders do not have clear ideas about

the system support that they need.

• Politics and people– Requirements are often influenced by political and

organisational factors that stakeholders will not admit to publicly.

Page 9: Requirements Engineering (CS 5032 2012)

L3 - Requirements Engineering, Critical Systems Engineering, 2011 Slide 9

Requirements engineering terminology

Terms that you should understand

Stakeholders, viewpoints and concerns

Page 10: Requirements Engineering (CS 5032 2012)

L3 - Requirements Engineering, Critical Systems Engineering, 2011 Slide 10

Stakeholders

• People or roles who are affected, in some way, by a system and so who can contribute requirements or knowledge to help you understand the requirements

• Example – medical system stakeholders– Doctors

– Nurses

– Patients

– Hospital managers

– Administrators

– Owners of other connected systems

Page 11: Requirements Engineering (CS 5032 2012)

L3 - Requirements Engineering, Critical Systems Engineering, 2011 Slide 11

Viewpoints

• Viewpoints are a way of organising and grouping requirements that have been elicited from stakeholders

• The requirements generally represent the views and needs of a class or type of stakeholder

• Examples of viewpoints– End-user viewpoint

– Managerial viewpoint

– System administration viewpoint

– Engineering viewpoint

Page 12: Requirements Engineering (CS 5032 2012)

L3 - Requirements Engineering, Critical Systems Engineering, 2011 Slide 12

Stakeholders and viewpoints

Stakeholders

Requirements

VP1VP2

VP4VP3

Provide information about

Page 13: Requirements Engineering (CS 5032 2012)

L3 - Requirements Engineering, Critical Systems Engineering, 2011 Slide 13

Concerns

• Are issues that an organisation must pay attention to and that are systemic i.e. they apply to the system as a whole

• They are cross-cutting issues that may affect all system stakeholders and the requirements from these stakeholders

• Concerns help bridge the gap between organisational goals (what the organisation has to achieve) and system requirements (how a system contributes to these goals)

Page 14: Requirements Engineering (CS 5032 2012)

L3 - Requirements Engineering, Critical Systems Engineering, 2011 Slide 14

Concerns

Software and hardware

Operators and managers

Society

The organisation

SafetyAvailabilitySecurity

Page 15: Requirements Engineering (CS 5032 2012)

L3 - Requirements Engineering, Critical Systems Engineering, 2011 Slide 15

Requirements engineering processes

Different views of the processes involved in requirements

engineering

Page 16: Requirements Engineering (CS 5032 2012)

L3 - Requirements Engineering, Critical Systems Engineering, 2011 Slide 16

The systems engineering process

Page 17: Requirements Engineering (CS 5032 2012)

L3 - Requirements Engineering, Critical Systems Engineering, 2011 Slide 17

RE process context

Page 18: Requirements Engineering (CS 5032 2012)

L3 - Requirements Engineering, Critical Systems Engineering, 2011 Slide 18

RE process inputs and outputs

Page 19: Requirements Engineering (CS 5032 2012)

L3 - Requirements Engineering, Critical Systems Engineering, 2011 Slide 19

RE process activities

Page 20: Requirements Engineering (CS 5032 2012)

L3 - Requirements Engineering, Critical Systems Engineering, 2011 Slide 20

RE process iteration

Page 21: Requirements Engineering (CS 5032 2012)

L3 - Requirements Engineering, Critical Systems Engineering, 2011 Slide 21

Requirements engineering problems

Fundamental issues that mean that establishing requirements for complex systems will

always be a difficult technical and organisational problem

Page 22: Requirements Engineering (CS 5032 2012)

L3 - Requirements Engineering, Critical Systems Engineering, 2011 Slide 22

Requirements change

• System requirements reflect the world outside of the system. As this is constantly changing then the requirements will inevitably also change

– Technology changes

– Organisational changes

– Market changes

– Economic changes

– Political and legal changes

• It is often difficult to understand the implications of changes for the requirements as a whole

Page 23: Requirements Engineering (CS 5032 2012)

L3 - Requirements Engineering, Critical Systems Engineering, 2011 Slide 23

Stakeholder perspectives

The problem and the required system

Social perspectiveTechnical perspective

ObjectsFunctionsRoles ...

User perspectiveInteractionsUsability

Management perspective

Certificationperspective

Customerperspective

Page 24: Requirements Engineering (CS 5032 2012)

L3 - Requirements Engineering, Critical Systems Engineering, 2011 Slide 24

Stakeholder uncertainty

• Key stakeholders have other jobs to do!– Developing detailed requirements for future systems

often cannot be given a high priority by the senior people who will be affected by these requirements.

– They therefore are unable to express their requirements except as vague, high-level descriptions

Page 25: Requirements Engineering (CS 5032 2012)

L3 - Requirements Engineering, Critical Systems Engineering, 2011 Slide 25

How good are the requirements?

• There are no objective ways to compare alternative sets of requirements

– The impact of a system on a business is very hard to understand so therefore we cannot tell which might be the ‘best’ system for any particular business

Page 26: Requirements Engineering (CS 5032 2012)

L3 - Requirements Engineering, Critical Systems Engineering, 2011 Slide 26

Process variability

• The level of detail required in a requirements specification differs greatly depending on the type of product that is being developed

– A railway signalling system is a very detailed specification that can be validated by authorities outside of the organisation procuring the software

– A computer game specification is a storyboard with pictures and examples

• They use completely different processes involving different types of people to derive these specifications

• Scope for process standardisation and support is therefore limited

Page 27: Requirements Engineering (CS 5032 2012)

L3 - Requirements Engineering, Critical Systems Engineering, 2011 Slide 27

Politics and people

• Many system requirements are influenced by the politics in an organisation. Decisions on requirements are not made on a rational basis but are made because of the personal goals of stakeholders

• Requirements engineers may not understand the politics and, even when they do, they may not be able to challenge the ‘political’ requirements

• People providing requirements for a system may not be convinced that the system is necessary or may feel that other systems should have a higher priority. They may actively or passively refuse to cooperate in the requirements engineering process

Page 28: Requirements Engineering (CS 5032 2012)

L3 - Requirements Engineering, Critical Systems Engineering, 2011 Slide 28

Summary

• Requirements engineering is a key component of system development processes.

• If we pay attention to requirements, we reduce later problems in system development and operation

• Requirements engineering will always be difficult because the requirements are reflections of a rapidly changing business environment