0% found this document useful (0 votes)
84 views78 pages

Chapter-3 Requirements Elicitation

The document outlines the principles of Software Requirement Engineering, detailing the importance of understanding user and system requirements, and the processes involved in requirement engineering. It describes various types of requirements, including functional and non-functional, and emphasizes the challenges in gathering and documenting these requirements. Additionally, it covers the activities involved in requirement engineering, such as feasibility studies, elicitation, analysis, specification, validation, and change management.

Uploaded by

saralo9687
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
84 views78 pages

Chapter-3 Requirements Elicitation

The document outlines the principles of Software Requirement Engineering, detailing the importance of understanding user and system requirements, and the processes involved in requirement engineering. It describes various types of requirements, including functional and non-functional, and emphasizes the challenges in gathering and documenting these requirements. Additionally, it covers the activities involved in requirement engineering, such as feasibility studies, elicitation, analysis, specification, validation, and change management.

Uploaded by

saralo9687
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Software Engineering

outline

Software Requirement Engineering


• Software requirements
• Types of Requirements
• Requirement Engineering
• Activities in Requirement Engineering
• Characteristics of requirements
• The requirements document
The objectives of this activity are:
 To introduce the concepts of user and system
requirements
 To describe functional and non-functional
requirements

Software requiremnet engineering


 To explain processes of requirement engineering

 To explain how software requirements may be


organised in a requirements document

2
I NTRODUCTION
 If you are required to develop a library
information software system, what will you do
firstly?

Software requiremnet engineering


⚫ What functions that the system may have?
⚫ What behaviors that the system may have?
⚫ What performances that the system may have?
⚫ What is the scope and boundary of the software?
⚫ ...

3
S OFTWARE REQUIREMENTS

 To understand customers‘ requirements about the


software to be developed is extremely important.
 Software requirement is the descriptions of the

Software requiremnet engineering


system services and constraints.
 Sample of software requirements
⚫ Function: borrow book, renew book, …
⚫ Performance: the time of query book must be lower 1
second
⚫ Constraints: software should be deployed and run under
windows O S
⚫ Schedule: development period is 6 months

4
C ONT ‘ D …
 Customers are unable to express requirements
explicitly
⚫ Typically, they can not tell you what they want
clearly.

Software requiremnet engineering


 Stakeholders (Business and Technical groups)
speak different languages.
 Software requirements are often extremely
complex and large scale.
 The requirements that customers or end-users
present are often: incomplete, inaccurate, and
inconsistent.
 That is why engineering requirements is needed

5
R EQUIREMENT E NGINEERING
 Is the process of establishing
- the services that are required of the system, and
- the constraints under which it operates and is
developed.

Software requiremnet engineering


 It covers all activities involved in discovering,
documenting and maintaining a set of
requirements for a computer- based system.
 Helps software engineers to better understand the
problem they will work to solve.
 can influence the development cost, time, effort
and quality.

6
T YPES OF R EQUIREMENTS
1. User requirements
⚫ Often referred to as user needs, describe what
the user does with the system, such as what

Software requiremnet engineering


activities that users must be able to perform.
⚫ Are statements, in a natural language plus
diagrams, of what services the system is
expected to provide and the constraints under
which it must operate.
⚫ The term user requirements to mean high-level
abstract requirements of what the system should
do
7
Problems with natural language
 Lack of clarity & Ambiguity
⚫ Precision is difficult without making the document clear to
read; readers and writers may not interpret words in the
same way
 Over-flexibility

Software requiremnet engineering


⚫ –The same thing may be expressed in a number of different
ways
 Requirements amalgamation & confusion
⚫ –Several different requirements may be expressed together;
functional and non-functional requirements may be mixed
together
 Lack of modularization
⚫ –NL structures are inadequate to structure system
requirements
8
2. System requirements
⚫ system requirements to mean the detailed
description of what the system should do
⚫ set out the system‘s functions, services and
operational constraints in detail.
⚫ The system requirements document (sometimes

Software requiremnet engineering


called a functional specification).
⚫ It should define exactly what is to be implemented.
⚫ It may part of the contract between the system buyer
and the software developers.
⚫ System requirements are the building blocks
developers use to build the system.
⚫ System requirements may be expressed using system
models
9
3. Software specification

⚫ A detailed software description which can serve


as a basis for a design or implementation.
⚫ Bridges the gap between requirements and
design.

Software requiremnet engineering


⚫ Written for developers

10
Example definition & specification

 User Requirements definition: requirements described


in the language of problem domain
⚫ Example: The software must provide a means of
representing and accessing external files created by

Software requiremnet engineering


other tools
 System Requirements specification: requirements
described in the language of software engineering.
 Example:
⚫ It should allow the user to define the type of files.
⚫ It should be able to process every type of file defined.
⚫ Each file is to be displayed by an icon uniquely
associated with its type.
It should allow the user to choose the icon associated 11
with each file type.
 Different levels of system specification are useful
because they communicative information about
the system to different types of readers.
• Client Managers
• System end-users

Software requiremnet engineering


User Requirements
• Client engineers
• Contractor managers
• System Architects

• System end-users
• Client engineers
System Requirements
• System Architects
• Software developers

Software design • Client engineers


Specification • System Architects
• Software developers 12
F U N C T I O N A L A N D N ON - F U N C T I O N A L R E Q U I R E M E N T S

 Software system requirements are often classified as


functional requirements, non-functional requirements.

Functional requirements - related to functional

Software requiremnet engineering


aspect of software
⚫ are statements of services the system should
provide
⚫ how the system should react to particular inputs a
⚫ how the system should behave in particular
situations.
⚫ In some cases, the functional requirements may also
explicitly state what the system should not do. 13
 Functional requirements describe functionality or
system services.
⚫ What inputs the system should accept?
⚫ What outputs the system should produce?
⚫ What data the system should store that
other systems might use?

Software requiremnet engineering


⚫ What computations the system should perform?
⚫ The timing and synchronization of the above
 Examples:
⚫ The user shall be able to search either all of the
initial set of databases or select a subset from it.
⚫ The system shall provide appropriate viewers for
the user to read documents in the document store.
⚫ Every order shall be allocated a unique identifier,
which the user shall be able to copy to the
account‘s14 permanent storage area.
Non-functional requirements- are not related to
functional aspect of software.
⚫ are constraints on the services or functions offered
by the system.
⚫ They include timing constraints, storage
requirements, reliability constraints on the

Software requiremnet engineering


development process and standards.
⚫ Non-functional requirements often apply to the
system as whole. They do not usually just apply to
individual system features or services.
 Non-functional requirements may be more critical
than functional requirements.
⚫ If these are not met, the system is useless

 Non-functional requirements may be very difficult to


state precisely and imprecise requirements may be
difficult to verify. 15
The types of non-functional requirements
are:
 Product requirements
⚫ These requirements specify product behavior.

Software requiremnet engineering


⚫ Example include performance requirements on how
fast the system must execute and how much
memory it requires; reliability requirements that set
out the acceptable failure rate; portability
requirements; and usability requirements.
 Organizational requirements
⚫ These requirements are derived from policies and
procedures in the customer‘s and developer‘s
organization.
16
⚫ Examples include process standards that must be
used; implementation requirements such as the
programming language or design method used;
and delivery requirements that specify when the
product and its documentation are to be delivered.
External requirements

Software requiremnet engineering



⚫ This broad heading covers all requirements that
are derived from factors external to the system
and its development process. These may include
interoperability requirements that define how the
system interacts with systems in other
organization; legislative requirements that must
be followed to ensure that the system operates
within the law; and ethical requirements.
17
Non-functional requirement types

Software requiremnet engineering


18
Metrics for specifying non-functional requirements

Prope rty Mea sure


Sp eed Processed transaction s/seco nd
User/Ev ent resp onse time
Screen refresh t ime

Software requiremnet engineering


Size K Byt es
Number of RAM ch ip s
Ease o f use Training t ime
Number of help frames
Reliability Mean time t o failure
Probabilit y of unavailability
Rate o f failure occurren ce
Availabilit y
Ro bustn ess T i m e to restart after failure
Percentage of events causin g failure
Probabilit y of dat a corrup tion on failure
Portabilit y Percentage of target dependent statements
Number of target sy st ems 19
D OMAIN REQUIREMENTS
 Domain requirements are derived from the
application domain rather than from specific needs
of system users.

Software requiremnet engineering


 Describe system characteristics and features that
reflect the domain
 They usually include specialized terminologies or
reference to domain concept.
 They may be new
⚫ functional requirements,
⚫ constraints on existing requirements or
⚫ define specific computations.
 If domain requirements are not satisfied, the 20
system may be unworkable.
 Example: Library System domain requirements

⚫ There shall be a standard user interface to all


databases which shall be based on the Z39.50
standard.
is design constraint that specifies user interface to the

Software requiremnet engineering



database must be implemented according to specific
library standard.
⚫ Because of copyright restrictions, some received on-
line documents must be deleted immediately after
arrival. Depending on the user‘s requirements,
these documents will either be printed locally on the
system server for manually forwarding to the user
or routed to a network printer.

21
Domain Requirement Issues

 Understandability
⚫ Requirements are expressed in the language of the
application domain.

Software requiremnet engineering


⚫ This is often not understood by software engineers developing
the system.
⚫ Involvement of domain expert may resolve the
problem.
 Implicitness
⚫ Domain specialists understand the area so well that
they do not think of making the domain requirements
explicit.
22
R EQUIREMENT E NGINEERING
 Goal: Obtain and understand software
requirements in a complete, consistent and
accurate way, and generate software requirement
specification (SRS) document.

Software requiremnet engineering


 Scope:
⚫ Communication
⚫ Planning Requirement
Engineering
⚫ Modeling
 Analysis of requirements
 Design of software

⚫ Construction
 Coding
 Testing

⚫ Deployment 23
A CTIVITIES IN R EQ U IREMENT E NGINEERING

 The processes used for R E vary widely depending


on the application domain, the people involved and
the organisation developing the requirements.

Software requiremnet engineering


 However, there are a number of generic
activities common to all processes
⚫ Feasibility
studies
⚫ Requirements elicitation and analysis
⚫ Requirement specification
⚫ Requirements validation
⚫ Requirements change management

24
R EQUIREMENT E NGI NE E RI NG P R O CE S S …

Software requiremnet engineering


Feasibility
study

Determining
if running the
project is
feasible

25
FEASIBILITY STUDY

A feasibility study decides whether or not


the proposed system is worthwhile.
 A short focused study that checks;

Software requiremnet engineering


⚫ If the system contributes to organisational
objectives;
⚫ If the system can be engineered using current
technology and within budget;
⚫ If the system can be integrated with other
systems that are used.

26
C ONT ‘ D …

 Based on information assessment (what is


required), information collection and report
writing.

Software requiremnet engineering


 Questions for people in the organisation
⚫ What if the system wasn‘t implemented?
⚫ What are current process problems?
⚫ How will the proposed system help?
⚫ What will be the integration problems?
⚫ Is new technology needed? What skills?
⚫ What facilities must be supported by the
proposed system?
27
R EQUIREMENTS ELICITATION & A NALYSIS
 Requirements elicitation is the practice of collecting the
requirements of a system from users, customers and
other stakeholders.
 Sometimes referred to as "requirement gathering― or
requirements discovery.

Software requiremnet engineering


 Involves technical staff working with other stakeholders
to find out about
 the application domain
 the services that the system should provide

 the system‘s operational constraints

 Multi-disciplinary and human-centred activity.


 The most difficult, most critical, most error-prone,
and most communication-intensive aspect of
software development.
 Requirement Analysis has some tool support 28

⚫ E.g. RequisitePro, M S Visio


Problems of requirements elicitation

 Why Requirements elicitation and analysis is


a difficult process? Because
⚫ Stakeholders often don‘t know what they really
want from the computer system.

Software requiremnet engineering


⚫ Stakeholders naturally express requirements in
their own terms.
⚫ Different stakeholders have different requirements.
⚫ Political factors may influence the requirements of
the system.
⚫ The requirements change during the analysis
process. New stakeholders may emerge and the
business environment change
29
 Requirements elicitation & analysis process activities
involves:
⚫ Domain understanding
⚫ Requirement collection

Software requiremnet engineering


⚫ Classification (into coherent clusters)
⚫ Conflict resolution and identification of
unpractical requirements
⚫ Prioritization
⚫ Requirement checking (e.g. Eliminate, combined
and modified requirements)

30
R EQUIREMENTS ANALYSIS

 Different models may be produced during the


requirements analysis activity.
 Requirements analysis may involve three

Software requiremnet engineering


structuring activities which result in these
different models
⚫ Partitioning. Identifies the structural (part-of)
relationships between entities
⚫ Abstraction. Identifies generalities among entities
⚫ Projection. Identifies different ways of looking at a
problem
 System models are covered in detail later.

31
R EQ U I REMENTS ELICITATION T ECHNIQUES
• Requirements Elicitation is the process to find out the
requirements for an intended software system by
communicating with client, end users, system users

Software requiremnet engineering


and others who have a stake in the software system
development.
⚫ There are various ways to discover requirements
⚫ Interview
⚫ Brainstorming
⚫ Prototyping
⚫ Delphi Technique
⚫ Ethnography
⚫ Scenarios
⚫ Use cases
32
I NTERVIEW
 Conducted through formal or informal interviews,
the R E team puts questions to stakeholders about
the system that they use (if any) and the system to

Software requiremnet engineering


be developed.
⚫ Ask about specific details
⚫ about the stakeholder‘s vision for the future
⚫ Ask if they have alternative ideas
⚫ Ask for other sources of information
⚫ Ask them to draw diagrams

 Don‘t ask questions like what do you want‘.


33
I NTERVIEW ….
 Interviewers should be open-minded, willing to
listen to stakeholders and should not have pre-
conceived ideas about the requirements.

Software requiremnet engineering


 There are two types of interview
⚫ Closed interviews where a pre-defined set of
questions are answered.
⚫ Open interviews where there is no pre-defined
agenda and a range of issues are explored with
stakeholders.
 Normally a mix of closed and open-ended
interviewing are used together.
34
I NTERVIEW …
 Interviews are good for getting an overall
understanding of what stakeholders do and how
they might interact with the system.

Software requiremnet engineering


 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.

35
B RAINSTORMING

 Brainstorming refers to the process of systematic


and liberal generation of a large volume of ideas
from a number of participants.

Software requiremnet engineering


 In a brainstorming session you (moderator) gather
together a group of people, create a stimulating and
focused atmosphere, and let people come up with
ideas without risk of being ridiculed.
 The facilitator notes down all ideas on a whiteboard.

 J o i n t Application Development ( J A D ) is a
technique based on intensive brainstorming sessions.
36
P ROTOTYPING
 Software customers and end users usually find it
very difficult to express their real requirements
 Prototyping provide insight to the new

Software requiremnet engineering


functionalities by demonstrating a new prototype
⚫ The simplest kind: paper prototype.
 a set of pictures of the system that are shown to users
in sequence to explain what would happen
⚫ The most common: a mock-up of the system‘s U I
 Written in a rapid prototyping language
 Does not normally perform any computations, access any
databases or interact with any other systems
 May prototype a particular aspect of the system
37
 Can be combined with other techniques
Software requiremnet engineering
38
P ROTOTYPING …
D ELPHI T ECHNIQUE
 The Delphi technique is an iterative technique
in which information is exchanged in a written
form until a consensus is reached.
 For example participants may write down their

Software requiremnet engineering


requirements, sorted in order of importance.
 The sets of requirements obtained are
distributed to all participants, who reflect on
them to obtain a revised set of requirements.
 The procedure will be repeated several times
until sufficient consensus is reached .

39
E THNOGRAPHY
 Ethnography is an observational technique that
can be used to understand social and
organizational requirements.

Software requiremnet engineering


 A social scientists spends a considerable time
observing and analysing how people actually work.
 People do not have to explain or articulate their
work.
 Social and organisational factors of importance
may be observed.
 Ethnographic studies have shown that work is
usually richer and more complex than suggested
40
by simple system models.
Other requirement elicitation techniques involves:
⚫ Read documents (organizational charts,
procedures, rules, etc), manuals (user or

Software requiremnet engineering


operational manuals) and discuss requirements
with users
⚫ Shadowing important potential users as they do
their work
 ask the user to explain everything he or she is doing
⚫ Session videotapeing

41
S CENARIOS
 Scenarios are descriptions of how a system is used
in practice.
 They are helpful in requirements elicitation as
people can relate to these more readily than

Software requiremnet engineering


abstract statement of what they require from a
system.
 Scenarios are particularly useful for adding detail
to an outline requirements description
 Scenarios descriptions include
⚫A description of the starting situation;
⚫ A description of the normal flow of events;
⚫ A description of what can go wrong;
⚫ Information about other concurrent activities;
⚫ A description of the state when the scenario finishes.42
Scenario Example: ATM

 Scenario
⚫ Tiruwork uses an ATM

Software requiremnet engineering


⚫ She enters her card and P I N into the ATM
⚫ She requests withdrawal of 4000 ETB
⚫ Tiruwork receives a printed receipt, takes out her bank
card and the money and leaves

 Observations
⚫ Describes a single instance of using the system
⚫ Does not describe all possible ways the system can be
used
43
U S E CASES
 Use cases are a scenario-based technique for
describing requirements
 Use cases are more effective in capturing functional
requirements

Software requiremnet engineering


 Use cases identify the users of the system (actors)
 Use cases identify the tasks (use cases)
 Use cases relate the users and the tasks
 Use cases are typically illustrated with U M L as stick
figures or similar diagrams
U M L(unified Modelling Language) is a standard for
modelling object-oriented software requirements and design.
 A set of use cases should describe all possible
interactions with the system
 Sequence diagrams may be used to add detail to use-
cases by showing the sequence of event processing in 44
the system.
Software requiremnet engineering
45
Use Case Example: Withdraw

Software requiremnet engineering


Withdraw

<<include>>

Authen
ticate

. <<include>> stereotype to include use cases


Details in textual description

46
Example: Withdraw Use Case Event Flow

Actor steps System steps


1. Authenticate [Link] displays options

Software requiremnet engineering


3. Client selects ―Withdraw‖ 4. ATM queries amount

5. Client enters amount 6. ATM returns bank card


7. ATM outputs specified
amount in ET B

47
S OFTWARE REQUIREMENTS CHARACTERISTICS

 Gathering software requirements is the


foundation of the entire software development
project. Hence they must be clear, correct and well
– defined.

Software requiremnet engineering


 Should say what, not how. Why?

 A complete Software Requirement Specifications


must be:
⚫ Correct: does what the client wants, according to
specification.
 This quality is like motherhood and apple pie—How can
you accomplish this?
 Ask the client: keep a list of questions for the client

 Prototyping: explore the risky aspects of the system with 48


the client
C ONT ‘ D ..
⚫ Verifiable/Testable: can determine whether the
requirements have been met
 But how do verify a requirement like ―user-friendly‖ or ―it
should never crash‖?

Software requiremnet engineering


⚫ Unambiguous: every requirement has only one
interpretation
⚫ Consistent: no internal conflicts
 If you call an input "Start and Stop" in one place, don't call it
"Start/Stop" in another
⚫ Complete: has everything designers need to create
the software

49
C ONT ‘ D ..

⚫ Understandable: stakeholders understand it


well enough to buy into it
 Deal only with the problem- requirements should state

Software requiremnet engineering


―what‖ is required at the appropriate system level, not
―how‖
 Can there be a tension between understandability and
the other desiderata?
⚫ Modifiable: requirements change!
 Changes should be noted and agreed upon, in the
specification.
⚫ Traceable
 Each requirement should be contained in a single,
numbered paragraph so that it may be referred to in 50
other documents
S OFTWARE R EQUIREMENT S PECIFICATION
 It is a document created by system analyst after
the requirements are collected from various
stakeholders
 Is a complete description of the behavior of the system

Software requiremnet engineering


to be developed.
 The requirements specification document states in
precise and explicit language those functions and
capabilities a software system must provide, as well
as stating any required constraints by which the
system must abide.
 Recommended approaches for the specification of
software requirements are described by I E E E 830-
1998.
51
G UI D E LI NE S FOR WRITING R EQUIREMENT
S PECIFICATION
 User requirements must be written in natural
languages because they have to be understood by
people who are not technical experts.

Software requiremnet engineering


 Invent a standard format and use it for all
requirements.
 Use language in a consistent way. Use shall for
mandatory requirements, and should for desirable
requirements.
 Use text highlighting to identify key parts of the
requirement.
 Avoid the use of computer jargon. 52
C ONT ‘ D …

 However natural-language specification has


problems
⚫ Ambiguity

Software requiremnet engineering


The readers and writers of the requirement must
interpret the same words in the same way. N L is
naturally ambiguous so this is very difficult
⚫ Over-flexibility
The same thing may be said in a number of different
ways in the specification
⚫ Lack of modularization
N L structures are inadequate to structure system
requirements
53
Alternatives to natural language

 To avoid/minimize limitations of N L specification we


have the following alternative.
⚫ Structured natural language
depends on defining standard forms or templates to express

Software requiremnet engineering



requirements specification
 E.g. Form-based node specification
⚫ Design description languages
 similar to programming languages but with additional,
more abstract features
 E.g. Program Description language (PDL)

⚫ Graphical notations
 a graphical language, supplemented by text
annotations, is used to define functional requirements
(e.g. use-case diagrams 54
 Mathematical/formal specifications
⚫ based on mathematical concepts such as finite-state
machines or sets; unambiguous specifications reduce
arguments between customers and contractors but most

Software requiremnet engineering


customers don't understand formal specifications

55
Example: structured Natural Language

Software requiremnet engineering


56
Design description languages
 uses a language like a programming language but
with more abstract features to specify the
requirements by defining an operational model of

Software requiremnet engineering


the system.
 E.g. Program Description language (PDL)
⚫ PDL- is a language derived from a programming
language like Ja va and Ada.
⚫ PDLs results in a very detailed specifications and,
sometimes, they are too close to the implementation
for inclusion in a requirement document.
⚫ This notation is only understandable to people with
programming language knowledge 57
Example: Part of an ATM specification in PDL

Software requiremnet engineering


58
Graphical notations
⚫ A graphical language, supplemented by text annotations
is used to define the functional requirements for the
system.
⚫ Examples: Structured Analysis and Design Technique
(SADT) and use-case descriptions.

Software requiremnet engineering


Mathematical specifications
⚫ notations based on mathematical concepts such as finite-
state machines or sets.
⚫ Is unambiguous specifications which reduce the
arguments between customer and contractor about
system functionality.
⚫ However, most customers don‘t understand formal
specifications and are reluctant to accept it as a system
contract. 59
R EQ U IREMENT S VALIDATION

 Concerned with demonstrating that the


requirements define the system that the

Software requiremnet engineering


customer really wants.
 Requirements error costs are high so
validation is very important
⚫ Fixinga requirements error after delivery may
cost up to 100 times the cost of fixing an
implementation error.

60
R EQUIREMENTS VALIDATION …

 During the requirements validation process,


different types of checks should be carried out on
the requirements in the requirement document.
⚫ Validity. Does the system provide the functions

Software requiremnet engineering


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?

61
R EQUIREMENTS VALIDATION TECHNIQUES

 Requirements reviews
⚫ Systematic manual analysis of the requirements.
 Prototyping

Software requiremnet engineering


⚫ Usingan executable model of the system to check
requirements .
 Test-case generation
⚫ Developing tests for requirements to check
testability.
 Automated consistency analysis
⚫ Checkingthe consistency of a structured
requirements description 62
R EQ U IREMENT S MANAGEMENT

 Requirements management is the process of


managing changing requirements during the
requirements engineering process and system

Software requiremnet engineering


development.
 Requirements are inevitably incomplete and
inconsistent
⚫ New requirements emerge during the process as
business needs change and a better understanding
of the system is developed;
⚫ Different viewpoints have different requirements
and these are often contradictory.
63
R EQU IREMENTS MANAGEMENT …
 Requirements change for the following
reasons:
⚫ The priority of requirements from different

Software requiremnet engineering


viewpoints changes during the development
process.
⚫ System customers may specify requirements
from a business perspective that conflict with
end-user requirements.
⚫ The business and technical environment of the
system changes during its development.

64
R EQUIREMENTS MANAGEMENT PLANNING

 Duringthe requirements engineering process,


you have to plan:

Software requiremnet engineering


⚫ Requirements identification: How requirements are
individually identified;
⚫ A change management process: The process
followed when analysing a requirements change;
⚫ Traceability policies: The amount of information
about requirements relationships that is
maintained;
⚫ C A S E tool support: The tool support required to
help manage requirements change; 65
T RACEABILITY
 Traceability is concerned with the relationships
between requirements, their sources and the
system design

Software requiremnet engineering


 Source traceability
⚫ Links from requirements to stakeholders who
proposed these requirements;
 Requirements traceability
⚫ Links between dependent requirements;
 Design traceability
⚫ Links from the requirements to the design;
66
CASE TOOL SUPPORT

 Requirements storage (Data Dictionary)


⚫ Requirements should be managed in a secure,
managed data store.
 Change management

Software requiremnet engineering


⚫ The process of change management is a workflow
process whose stages can be defined and
information flow between these stages partially
automated.
 Traceability management
⚫ Automated retrieval of the links between
requirements.

67
R EQUIRE ME NTS C H A N G E MANAGEMENT

 Should apply to all proposed changes to the

Software requiremnet engineering


requirements.
 Principal stages
⚫ Problem analysis. Discuss requirements problem
and propose change;
⚫ Change analysis and costing. Assess effects of
change on other requirements;
⚫ Change implementation. Modify requirements
document and other documents to reflect change.
68
Software requiremnet engineering
69
MANAGEMENT
CHANGE
T H E REQUIREMENTS DOCUMENT
 The software requirements document (sometimes called
the software requirements specification or SRS) is an
official description of a software system to be developed,
laying out functional and non-functional requirements,
and may include a set of use cases that describe

Software requiremnet engineering


interactions the users will have with the software.
 It should include both the user requirements for a
system and a detailed specification of the system
requirements.
 It is N O T a design document. As far as possible, it
should set of WHAT the system should do rather than
H O W it should do it
 Should include both a definition and a specification of
requirements.

70
 The requirements document should
⚫ specify external system behaviour
⚫ specify implementation constraints
⚫ easy to change

Software requiremnet engineering


(but changes must be managed)
⚫ serve as reference tool for maintenance
⚫ record forethought about the life cycle of the
system (i.e. predict changes)
⚫ characterise responses to unexpected events

 The requirements document has diverse set of


users ranging.
71
Users of a requirements document

Specify the requirements and


r e a d t h e m to c h e c k that they
System customers m e e t their n e e d s . T h e y
specify changes to the
requirements

U s e the requirements

Software requiremnet engineering


Managers d o c u m e n t to p l a n a b i d for
the s ys t e m a n d to p l a n the
system development process

U s e t h e r e q u i r e m e n t s to
S ystem engineers u n d e r s t a n d w h a t s y s t e m i s to
be developed

S y s t e m test U s e t h e r e q u i r e m e n t s to
engineers d e v e l o p validation tests for
the system

System U s e the r e q u i r e m e n t s to help


maintenance understand the system and
engineers t h e r e l a t i o n s h i p s b e t w e e n its
parts
72
R EQ UIREMENTS L E V E L O F S PECIFICATIONS

• Survey shows that one of the problems with requirements


specifications was the uneven level of specification
• Different writing sytles
• Difference in experience

Software requiremnet engineering


• Different formats
• Overspecifying requirements
• Underspecifying requirements
• Recommendations to reduce unevenness
• Write each clause so that it contains only one requirement
• Avoid having one requirement refer to another requirement
• Collect similar requirements together

73
I E E E R E Q U I R E M E N T S STANDAR D
1. Introduction to the Document
1. Purpose of the Product
2. Scope of the Product

Software requiremnet engineering


3. Acronyms, Abbreviations, Definitions
4. References
5. Outline of the rest of the S R S
2. General Description of Product
1. Context of Product
2. Product Functions
3. User Characteristics
4. Constraints
5. Assumptions and Dependencies

74
3. Specific Requirements
1. External Interface Requirements
1. User Interfaces
2. Hardware Interfaces
3. Software Interfaces

Software requiremnet engineering


4. Communications Interfaces
2. Functional Requirements
1. Class 1
2. Class 2

3. Performance Requirements
4. Design Constraints
5. Quality Requirements
6. Other Requirements
4. Appendices
5. Index
75
S UMMARY
 Requirements set out what the system should do and
define constraints on its operation and implementation
 Functional requirements set out services that the
system should provide

Software requiremnet engineering


 Non-functional requirements constrain the system
being developed or the development process.
 User requirements are high-level statements of what
the system should do
 User requirements should be written using natural
language, tables and diagrams
 System requirements are intended to communicate the
functions that the system should provide
 System requirements may be written in structured
76
natural language, a P D L or in a formal language
 The requirements engineering process includes a
feasibility study, requirements elicitation and analysis,
requirements specification, requirement validation and
requirements management.
 Requirements elicitation and analysis is iterative
involving domain understanding, requirements

Software requiremnet engineering


collection, classification, structuring, prioritisation and
validation.
 Systems have multiple stakeholders with different
requirements.
 Social and organisation factors influence system
requirements.
 Requirements validation is concerned with checks for
validity, consistency, completeness, realism and
verifiability.
77
• Business changes inevitably lead to changing requirements.
• Requirements management includes planning and change
management.
• A software requirements document is an agreed statement of the
system requirements

Software requiremnet engineering


78

You might also like