MSIS-811 Unit 4

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 32

Advanced Systems Analysis and Design –MSIS811

Requirements Engineering
Topics covered

 Functional and non-functional requirements


 Requirements engineering processes
 Requirements elicitation
 Requirements specification
 Requirements validation
 Requirements change

10/20/2024 Chapter 4 Requirements Engineering 2


Requirements engineering

 The process of finding out, analyzing, documenting


and checking the services that a customer requires
from a system and the constraints under which it
operates and is developed.
 The system requirements are the descriptions of the
system services and constraints that are generated
during the requirements engineering process.

10/20/2024 Chapter 4 Requirements Engineering 3


What is a requirement?

 The term ‘requirement’ is not used consistently in


the software industry.
 In some cases, a requirement is simply a high-level,
abstract statement of a service that a system should
provide or a constraint on a system.
 At the other extreme, it is a detailed, formal
definition of a system function.

10/20/2024 Chapter 4 Requirements Engineering 4


Types of requirement

 User requirements
 Statements in natural language plus diagrams of the
services the system provides and its operational
constraints. Written for customers.
 System requirements
 A structured document setting out detailed descriptions of
the system’s functions, services and operational
constraints. Defines what should be implemented so may
be part of a contract between client and contractor.

10/20/2024 Chapter 4 Requirements Engineering 5


User and system requirements

10/20/2024 Chapter 4 Requirements Engineering 6


Agile methods and requirements

 For most large systems, there is a clearly identifiable


requirements engineering phase before the
implementation of the system begins.
 There are usually subsequent changes to the
requirements and user requirements may be
expanded into more detailed system requirements
 However, the agile approach of concurrently eliciting
the requirements as the system is developed is
rarely used for large systems development

10/20/2024 Chapter 4 Requirements Engineering 7


Agile methods and requirements continued…

 Many agile methods argue that producing detailed


system requirements is a waste of time as
requirements change so quickly.
 The requirements document is therefore always out
of date.
 Agile methods usually use incremental requirements
engineering and may express requirements as ‘user
stories’ as we discussed earlier.
 This is practical for business systems but
problematic for systems that require pre-delivery
analysis (e.g. critical systems) or systems developed
by several teams.
10/20/2024 Chapter 4 Requirements Engineering 8
Functional and non-functional requirements

10/20/2024 Chapter 4 Requirements Engineering 9


Functional and non-functional requirements

 Functional requirements
 Statements of services the system should provide,
how the system should react to particular inputs and
how the system should behave in particular situations.
 May state what the system should not do.
 Non-functional requirements
 Constraints on the services or functions offered by the
system such as timing constraints, constraints on the
development process, standards, etc.
 Often apply to the system as a whole rather than
individual features or services.

10/20/2024 Chapter 4 Requirements Engineering 10


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.

10/20/2024 Chapter 4 Requirements Engineering 11


Imprecision requirements

 Problems arise when functional requirements are


not precisely stated.
 Ambiguous requirements may be interpreted in
different ways by developers and users.
 Consider the requirements:
1. A user shall be able to search the appointments lists for all
medical clinics
2. The system shall generate each day, for each clinic, a list of
patients who are expected to attend appointments that day
3. Each staff member using the system shall be uniquely identified
by his or her eight-digit employee number

10/20/2024 Chapter 4 Requirements Engineering 12


 It is natural for a system developer to interpret an ambiguous
requirement in a way that simplifies its implementation
 The above first requirement states that a user shall be able to
search the appointments lists for all clinics.
 Patients may have an appointment at one clinic but actually go to a
different clinic. If they have an appointment, they will be recorded
as having attended, irrespective of the clinic
 The medical staff member specifying this may expect ‘search’ to
mean that, given a patient name, the system looks for that name in
all appointments at all clinics which is not explicit requirement.
 System developers may interpret the requirement in a different
way and may implement a search so that the user has to choose a
clinic then carry out the search

10/20/2024 Chapter 4 Requirements Engineering 13


Requirements completeness and consistency

 In principle, requirements should be both complete


and consistent.
 Complete
 They should include descriptions of all facilities required.
 Consistent
 There should be no conflicts or contradictions in the
descriptions of the system facilities.
 In practice, because of system and environmental
complexity, it is impossible to produce a complete
and consistent requirements document.

10/20/2024 Chapter 4 Requirements Engineering 14


Non-functional requirements

 These define system properties and constraints e.g.


reliability, response time and storage requirements.
Constraints are I/O device capability, system
representations, etc.
 Non-functional requirements, such as performance,
security, or availability, usually specify or constrain
characteristics of the system as a whole.
 Non-functional requirements may be more critical
than functional requirements. If these are not met,
the system may be useless.

10/20/2024 Chapter 4 Requirements Engineering 15


Goals and requirements

 Non-functional requirements may be very difficult to


state precisely and imprecise requirements may be
difficult to verify.
 Goal
 A general intention of the user such as ease of use.
 Verifiable non-functional requirement
 A statement using some measure that can be objectively
tested.
 Goals are helpful to developers as they convey the
intentions of the system users.

10/20/2024 Chapter 4 Requirements Engineering 16


Requirements engineering processes

10/20/2024 Chapter 4 Requirements Engineering 17


Requirements engineering processes

 The processes used for RE vary widely depending


on the application domain, the people involved and
the organisation developing the requirements.
 However, there are a number of generic activities
common to all processes
 Requirements elicitation and analysis;
 Requirements validation;
 Requirements management.
 In practice, RE is an iterative activity in which these
processes are interleaved.

10/20/2024 Chapter 4 Requirements Engineering 18


Requirements elicitation and analysis

 Sometimes called requirements elicitation or


requirements discovery.
 Involves technical staff working with customers to
find out about the application domain, the services
that the system should provide and the system’s
operational constraints.
 May involve end-users, managers, engineers
involved in maintenance, domain experts, trade
unions, etc. These are called stakeholders.

10/20/2024 Chapter 4 Requirements Engineering 19


The requirements elicitation and analysis
process

10/20/2024 Chapter 4 Requirements Engineering 20


 Software engineers work with a range of system
stakeholders to find out about the application
domain, the services that the system should provide,
the required system performance, hardware
constraints, other systems, etc.
 Stages include:
 Requirements discovery,
 Requirements classification and organization,
 Requirements prioritization and negotiation,
 Requirements specification.

10/20/2024 Chapter 4 Requirements Engineering 21


Requirements discovery
 The process of gathering information about the
required and existing systems and distilling the user
and system requirements from this information.
 Interaction is with system stakeholders from
managers to external regulators.
 Systems normally have a range of stakeholders.

10/20/2024 Chapter 4 Requirements Engineering 22


Interviewing

 Formal or informal interviews with


stakeholders are part of most RE processes.
 Types of interview
 Closed interviews based on pre-
determined list of questions
 Open interviews where various issues are
explored with stakeholders.

10/20/2024 Chapter 4 Requirements Engineering 23


Interviews in practice

 Normally a mix of closed and open-ended


interviewing.
 Interviews are good for getting an overall
understanding of what stakeholders do and how
they might interact with the system.
 Interviewers need to be open-minded without pre-
conceived ideas of what the system should do
 You need to prompt the use to talk about the system
by suggesting requirements rather than simply
asking them what they want.

10/20/2024 Chapter 4 Requirements Engineering 24


Problems with interviews

 Application specialists may use language to


describe their work that isn’t easy for the
requirements engineer to understand.
 Interviews are not good for understanding domain
requirements
 Requirements engineers cannot understand specific
domain terminology;
 Some domain knowledge is so familiar that people find it
hard to articulate or think that it isn’t worth articulating.

10/20/2024 Chapter 4 Requirements Engineering 25


Requirements classification and
organization
• This activity takes the unstructured collection of
requirements, groups related requirements, and
organizes them into coherent clusters.

• The most common way of grouping requirements is


to use a model of the system architecture to identify sub-
systems and to associate requirements with each sub-
system. In practice, requirements engineering and
architectural design cannot be completely separate
activities.

10/20/2024 Chapter 4 Requirements Engineering 26


Requirements prioritization and
negotiation
• When multiple stakeholders are involved,
requirements will conflict.

• This activity is concerned with prioritizing


requirements and finding and resolving requirements
conflicts through negotiation.

• Usually, stakeholders have to meet to resolve


differences and agree on compromise requirements.

10/20/2024 Chapter 4 Requirements Engineering 27


Requirements specification
 The process of writing the user and system
requirements in a requirements document.
 User requirements have to be understandable by
end-users and customers who do not have a
technical background.
 System requirements are more detailed
requirements and may include more technical
information.
 The requirements may be part of a contract for the
system development
 It is therefore important that these are as complete as
possible.
10/20/2024 Chapter 4 Requirements Engineering 28
The Software Requirements Document
 The software requirements document is the official
statement of what is required of the system
developers.
 Should include both a definition of user
requirements and 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.

10/20/2024 Chapter 4 Requirements Engineering 29


Requirements validation
 Concerned with demonstrating that the requirements
define the system that the customer really wants.
 Requirements error costs are high so validation is
very important
 Fixing a requirements error after delivery may cost up to
100 times the cost of fixing an implementation error.

10/20/2024 Chapter 4 Requirements Engineering 30


Requirements checking

 Validity. Does the system provide the functions


which best support the customer’s needs?
 Consistency. Are there any requirements conflicts?
 Completeness. Are all functions required by the
customer included?
 Realism. Can the requirements be implemented
given available budget and technology
 Verifiability. Can the requirements be checked or
verified?

10/20/2024 Chapter 4 Requirements Engineering 31


Requirements management

 Requirements management is the process of


understanding and controlling changes to system
requirements

 You need to keep track of individual requirements and


maintain links between dependent requirements so
that you can assess the impact of requirements
changes.

 The formal process of requirements management


should start as soon as a draft version of the
requirements document is available.
10/20/2024 Chapter 4 Requirements Engineering 32

You might also like