cs223: software engineering lecture 6: requirement engineering

29
CS223: Software Engineering Lecture 6: Requirement Engineering

Upload: samantha-robbins

Post on 18-Jan-2018

229 views

Category:

Documents


0 download

DESCRIPTION

Objective After the end of the class students should be able to o Define software requirement o Identify components of software requirement o Differentiate between functional and non-functional requirement

TRANSCRIPT

Page 1: CS223: Software Engineering Lecture 6: Requirement Engineering

CS223: Software EngineeringLecture 6: Requirement Engineering

Page 2: CS223: Software Engineering Lecture 6: Requirement Engineering

Recap

• Software development process model

• Iterative Model

• Timeboxing Model

Page 3: CS223: Software Engineering Lecture 6: Requirement Engineering

Objective

After the end of the class students should be able to

o Define software requirement

o Identify components of software requirement

o Differentiate between functional and non-functional requirement

Page 4: CS223: Software Engineering Lecture 6: Requirement Engineering

Introduction

• It is concerned with o Elicitation, o Analysis, o Specification, and o Validation of software requirements

• Management of requirements during the whole life cycle of the software product

• Software projects are critically vulnerable when the requirements related activities are poorly performed

Page 5: CS223: Software Engineering Lecture 6: Requirement Engineering

Topics of discussionSoftware

Requirement

Process

Model

Management

Quality

Elicitation Analysis

Classification

Design

Negotiation

Analysis

Specification

SRS

Validation

Review

Verification

Test

Considerations

Change management

Tracing

Measurement

Page 6: CS223: Software Engineering Lecture 6: Requirement Engineering

Definition

• It is a property that must be exhibited by something

• To solve some problem in the real world

• A complex combination from various people at different levels of an organization

• Objects connected with this feature from the environment in which the software will operate

Page 7: CS223: Software Engineering Lecture 6: Requirement Engineering

Few important terminologies

• Product and process requirement

• Functional and Nonfunctional Requirements

• Emergent requirement

• Quantifiable requirement

• Avoid vague and unverifiable requirements

Page 8: CS223: Software Engineering Lecture 6: Requirement Engineering

System and Software requirement

• International Council on Software and Systems Engineering (INCOSE)

• Software (user) requirementso Statements, in a natural language plus diagrams

o Services the system is expected to provide to system users and the constraints under which it must operate.

• System requirementso Detailed descriptions of the software system’s functions, services,

and operational constraints.

o Define exactly what is to be implemented (Functional specification)

Page 9: CS223: Software Engineering Lecture 6: Requirement Engineering

Example

User requirement specification

• Generate monthly report

System requirement specification

• On the last working day of the month

• Automatically generate after 17.30 hrs.

• Created for each office

• Restricted access to valid user

Page 10: CS223: Software Engineering Lecture 6: Requirement Engineering

Different Users

User Requirements

Client managers

System end-users

Client engineers

Contractor managers

System Architects

System Requirements

System end-users

Client engineers

System architects

Software developers

Page 11: CS223: Software Engineering Lecture 6: Requirement Engineering

Functional and Non-functional requirements

• Functional

o statements of services the system should provide

o System reaction to a particular input

o System behaviour at a particular situation

o What a system should not do (optional)

• Non-Functional

o Constraints on the services or functions offered by the system

timing constraints,

constraints on the development process,

constraints imposed by standards

o Applicable to the entire system, not on parts

Page 12: CS223: Software Engineering Lecture 6: Requirement Engineering

Functional requirements

• Describe functionality or system services.

• Depend on the type of software, expected users and the type of

system where the software is used.

• Functional user requirements may be high-level statements of what

the system should do.

• Functional system requirements should describe the system services

in detail.

Page 13: CS223: Software Engineering Lecture 6: Requirement Engineering

A case study

• A user shall be able to search the appointments lists for all clinics.

• The system shall generate each day, for each clinic, a list of

patients who are expected to attend appointments that day.

• Each staff member using the system shall be uniquely identified by

his or her 8-digit employee number.

Page 14: CS223: Software Engineering Lecture 6: Requirement Engineering

Requirements imprecision

• Problems arise when requirements are not precisely stated.

• Ambiguous requirements may be interpreted in different ways by

developers and users.

• Consider the term ‘search’ in requirement 1

o User intention – search for a patient name across all

appointments in all clinics;

o Developer interpretation – search for a patient name in an

individual clinic. User chooses clinic then search.

Page 15: CS223: Software Engineering Lecture 6: Requirement Engineering

Requirements completeness and consistency

• Requirements should be both complete and consistent.

• Complete

oThey should include descriptions of all facilities required.

• Consistent

oThere should be no conflicts or contradictions in the descriptions

of the system facilities.

• It is a challenging task to meet both the conditions

Page 16: CS223: Software Engineering Lecture 6: Requirement Engineering

Non-functional requirements

• These define system properties and constraints

o E.g. reliability, response time and storage requirements.

o Constraints are I/O device capability, system representations, etc.

• Process requirements may also be specified mandating a particular

IDE, programming language or development method.

• Non-functional requirements may be more critical than functional

requirements.

o If these are not met, the system may be useless.

Page 17: CS223: Software Engineering Lecture 6: Requirement Engineering

Types of nonfunctional requirement Non-functional Requirement

Product

UsabilityEfficiency

Performance

Space

Dependability Security

Organizational

Environmental

Operational

Development

External

Regulatory Ethical Legislative

Accounting

Safety/Security

Page 18: CS223: Software Engineering Lecture 6: Requirement Engineering

Non-functional requirements implementation• Non-functional requirements may affect the overall architecture of a

system rather than the individual components.

o Minimize communications between components.

• A single non-functional requirement may generate a number of related functional requirements that define system services that are required.

o It may also generate requirements that restrict existing

requirements.

Page 19: CS223: Software Engineering Lecture 6: Requirement Engineering

Non-functional classifications

• Product requirementso Delivered product must behave in a particular way

o e.g. execution speed, reliability, etc.

• Organisational requirementso Consequence of organisational policies and procedures

o e.g. process standards used, implementation requirements, etc.

• External requirementsoRequirements which arise from factors which are external to the

system and its development process

o e.g. interoperability requirements, legislative requirements, etc.

Page 20: CS223: Software Engineering Lecture 6: Requirement Engineering

Examples of nonfunctional requirements

Product requirement• The MHC-PMS shall be available to all clinics during normal

working hours (Mon–Fri, 0830–17.30). • Downtime within normal working hours shall not exceed five

seconds in any one day.

Organizational requirement• Users of the MHC-PMS system shall authenticate themselves

using their health authority identity card.

External requirement• The system shall implement patient privacy provisions as set out

in HStan-03-2006-priv.

Page 21: CS223: Software Engineering Lecture 6: Requirement Engineering

Goals and requirements

• Non-functional requirements may be very difficult to state precisely

• Imprecise requirements may be difficult to verify.

• Goal

o A general intention of the user such as ease of use.

• Verifiable non-functional requirement

o A statement using some measure that can be objectively tested.

• Goals are helpful to developers as they convey the intentions of the

system users.

Page 22: CS223: Software Engineering Lecture 6: Requirement Engineering

Usability requirements

• Should be easy to use by medical staff and should be organized in such a way that user errors are minimized. (Goal)

• Medical staff shall be able to use all the system functions after four hours of training.

• After this training, the average number of errors made by experienced users shall not exceed two per hour of system use. (Testable non-functional requirement)

Page 23: CS223: Software Engineering Lecture 6: Requirement Engineering

Metrics for specifying nonfunctional requirements

Property MeasureSpeed • Processed transactions/second

• User/event response time• Screen refresh time

Size • Mbytes• Number of ROM chips

Ease of use • Training time• Number of help frames

Reliability • Mean time to failure• Probability of unavailability• Rate of failure occurrence• Availability

Robustness • Time to restart after failure• Percentage of events causing failure• Probability of data corruption on failure

Portability • Percentage of target dependent statements• Number of target systems

Page 24: CS223: Software Engineering Lecture 6: Requirement Engineering

Domain requirements

• The system’s operational domain imposes requirements on the

system.

oFor example, a train control system has to take into account the

braking characteristics in different weather conditions.

• Domain requirements be new functional requirements, constraints

on existing requirements or define specific computations.

• If domain requirements are not satisfied, the system may be

unworkable.

Page 25: CS223: Software Engineering Lecture 6: Requirement Engineering

Train protection system

• This is a domain requirement for a train protection system:

• The deceleration of the train shall be computed as:

o Dtrain = Dcontrol + Dgradient

o Dgradient is 9.81ms2 * compensated gradient/ alpha

o The values of 9.81ms2 /alpha are known for different types of

train.

• It is difficult for a non-specialist to understand the implications of

this and how it interacts with other requirements.

Page 26: CS223: Software Engineering Lecture 6: Requirement Engineering

Domain requirements problems

• Understandability

o Requirements are expressed in the language of the application

domain;

o This is often not understood by software engineers developing

the system.

• Implicitness

o Domain specialists understand the area so well that they do not

think of making the domain requirements explicit.

Page 27: CS223: Software Engineering Lecture 6: Requirement Engineering

The software requirements document

• The software requirements document is the official statement of

what is required of the system developers.

• Include both

o A definition of user requirements

o A specification of the system requirements.

• It is NOT a design document.

• As far as possible, it should set of WHAT the system should do

rather than HOW it should do it.

Page 28: CS223: Software Engineering Lecture 6: Requirement Engineering

Key points

• Requirements for a software system set out what the system should do and

define constraints on its operation and implementation.

• Functional requirements are

o statements of the services that the system must provide or are

descriptions of how some computations must be carried out.

• Non-functional requirements

o Constrain the system being developed and the development process

being used.

• They often relate to the emergent properties of the system and therefore

apply to the system as a whole.

Page 29: CS223: Software Engineering Lecture 6: Requirement Engineering

Thank youNext Lecture: Requirement Engineering