[go: up one dir, main page]

0% found this document useful (0 votes)
36 views30 pages

Understanding Requirements Engineering

Requirement engineering is the process of discovering, analyzing, documenting, and validating system requirements, which describe the services provided by a system and its operational constraints. It involves various activities such as feasibility studies, requirements elicitation, documentation, validation, and management, and aims to minimize errors and changes during the software development process. The document outlines the types of requirements, levels of abstraction, and methods for eliciting and managing requirements effectively.

Uploaded by

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

Understanding Requirements Engineering

Requirement engineering is the process of discovering, analyzing, documenting, and validating system requirements, which describe the services provided by a system and its operational constraints. It involves various activities such as feasibility studies, requirements elicitation, documentation, validation, and management, and aims to minimize errors and changes during the software development process. The document outlines the types of requirements, levels of abstraction, and methods for eliciting and managing requirements effectively.

Uploaded by

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

Requirement Engineering

7/12/2024
What is a requirement?
 It is about WHAT not HOW
 Nothing can be said obvious
 Requirements are the descriptions of the
services provided by a system and its
operational constraints
 It may range from a high level abstract
statement to a detailed mathematical
specification
 It may be as complex as a 500 pages of
description
 It may serve as the basis for a bid for a
contract or the basis for the contract itself
What is requirements
engineering?

 It is the process of discovering, analyzing,


documenting and validating the
requirements of the system
 Each software development process goes
through the phase of requirements
engineering
Why requirements?
 What are the advantages of a complete set of
documented requirements?

Ensures the user (not the developer) drives system
functionalities

Helps avoiding confusion and arguments

Helps minimizing the changes
 Changes in requirements are expensive. Changing
the requirements costs:

3 x as much during the design phase

5-10 x as much during implementation

10-100 x as much after release [Code Complete, p30]
Why requirements?
 2/3 of finished system errors are
requirements and design errors
 A careful requirements process doesn’t
mean there will be no changes later
 Average project experiences about 25% changes
in the requirements
 This accounts for 70-80% if the rework of the
project [Code Complete, p40]
 Important to plan for requirements changes
 The case of critical applications
Different levels of
abstraction
 User requirements (abstract +)
 Usually the first attempt for the description of the
requirements
 Services and constraints of the system
 In natural language or diagrams
 Readable by everybody
 Serve business objectives
 System requirements (abstract -)
 Services and constraints of the system in detail
 Useful for the design and development
 Precise and cover all cases
 Structured presentation
Types of requirements
 Functional requirements
 Services the system should provide
 What the system should do or not in reaction to particular
situations
 Non-functional requirements
 Constraints on the services or functions offered by the system
 Examples: Timing constraints, constraints on the
development process (CASE, language, development
method…), standards etc
 Domain requirements
 From the application domain of the system
 May be functional or non-functional
 Examples: Medicine, library, physics, chemistry
 Note: You can have user/system functional/non-functional
requirements.
User requirements

 First attempt to describe functional and non-


functional requirements

Understandable by the user
 Problems:

Lack of clarity - ambiguous language

Requirements confusion - functional, non-functional
requirements, design information are not distinguished

Requirements amalgamation – several requirements are
defined as a single one

Incompleteness – requirements may be missing

Inconsistency – requirements may contradict themselves
User requirements
 Guideline to minimize the issues:
 Separate requirements – separate the requirements,
separate functional and non-functional requirements,
requirements must be clearly identified (e.g. by a number)

Include a rationale for each requirement – helps clarify
reasoning behind the requirements and may be useful for
evaluating potential changes in the requirements
 Invent or use a standard form/template
 Distinguish requirements priorities

Example: MoSCoW (Must, Shall, Could, Want/Will (no TBD))
 Avoid technical jargon
 Testable (write test cases)
 Deliverables
System requirements

 Elaborate the user requirements to get a


precise, detailed and complete version of
them
 Used by designers and developers
 An important aspect is how to present/write
system requirements
 Natural language is often used!
 The difference between user and system
requirements must not be thought as a detail
System requirements
 Example: If sales for current month are below target sales,
then report is to be printed unless difference between
target sales and actual sales is less than half of difference
between target sales and actual sales in previous month, or
if difference between target sales and actual sales for the
current month is less than 5%.

 Problems:
 Difficult to read

 Ambiguity: sales and actual sales, 5% of what?

 Incomplete: what if sales are above target sales?


Writing system
requirements
 Natural language (informal requirements)
 Reviled by academics
 But widely practiced: everybody can read them, finding
a better notation is hard
 Structured natural language
 Forms/templates are used to bring some rigor to
natural language presentations
 Graphical notations
 Using boxes, arrows… but they mean different things
to different people
 Formal specification
 Based on logic, state machines…
 Hard to understand for many people
Non-functional requirements
 They can be further categorized into:
 Product requirements

Product behavior

Ex: Timing, performance, memory, reliability,
portability, usability
 Organizational requirements

Policies and procedures in the customer’s and
developer’s organizations

Example: Process requirements, implementation
requirements, delivery requirements
 External requirements

Factors externals to the system and the development
process

Example: Interoperability, legislation, ethics
 Non-functional requirements may be more critical than
functional requirements. (The system may be useless…)
Non-functional requirements
Non-functional
requir ements

Product Or ganizational External


requirements requir ements requirements

Ef ficiency Reliability Portability Interoperability Ethical


requir ements requirements requirements requirements requirements

Usability Delivery Implementation Standards Legislative


requirements requirements requir ements requirements requirements

Performance Space Privacy Safety


requirements requir ements requirements requirements
Non-functional

requirements
It is important to be able to
test/verify/check non-functional
requirements
Pro perty Mea sure
Sp eed Pro cessed tran sactio n s/seco n d
User/Ev en t resp o n se time
Screen refresh time
Size K By tes
Nu mb er o f RAM ch ip s
Ease o f u se Train in g time
Nu mb er o f h elp frames
Reliab ility Mean time to failu re
Pro b ab ility o f u n av ailab ility
Rate o f failu re o ccu rren ce
Av ailab ility
Ro b u stn ess Time to restart after failu re
Percen tag e o f ev en ts cau sin g failu re
Pro b ab ility o f d ata co rru p tio n o n failu re
Po rtab ility Percen tag e o f targ et d ep en d en t statemen ts
Nu mb er o f targ et sy stems
Requirement engineering
 5 important activities:
 Feasibility study
 Requirements elicitation and analysis
 Requirements documentation
 Requirements validation
 Requirements management
Requirement engineering
Feasibility Requirements
study elicitation and
analysis
Requirements
specification
Feasibility Requirements
report validation
System
models
User and system
requirements

Requirements
document
Feasibility study
 It is done at first to decide whether or not the
project is worthwhile
 Look at different perspectives:

Market analysis, financial, schedule, technical,
resource, legal…
 Should make you aware of the risks
 Doing the study

Consult information sources: managers, software
engineers, end users…

Based on information collection (interviews, surveys,
questionnaires…)
 Should be short (2-3 weeks)
Feasibility study
 What if the system wasn’t implemented?
 What are current process problems?
 Do technical resources exist?
 What is the risk associated with the technology?
 Is new technology needed? What skills?
 How will the proposed project help?
 How does the proposed project contribute to the
overall objectives of the organization?
 Have the benefits identified with the system being
identified clearly?
Feasibility study
 What will be the integration problems?
 What facilities must be supported by the
system?
 What is the risk associated with cost and
schedule?
 What are the potential
disadvantages/advantages?
 Are there legal issues?
 Are there issues linked with the fact that this is
an offshore project?
 …
The structure of a requirements document
Chapter Description
Preface This should define the expected readership of the document and describe its
version history, including a rationale for the creation of a new version and a
summary of the changes made in each version.
Introduction This should describe the need for the system. It should briefly describe the
system’s functions and explain how it will work with other systems. It should
also describe how the system fits into the overall business or strategic
objectives of the organization commissioning the software.
Glossary This should define the technical terms used in the document. You should not
make assumptions about the experience or expertise of the reader.
User requirements Here, you describe the services provided for the user. The nonfunctional
definition system requirements should also be described in this section. This
description may use natural language, diagrams, or other notations that are
understandable to customers. Product and process standards that must be
followed should be specified.
System architecture This chapter should present a high-level overview of the anticipated system
architecture, showing the distribution of functions across system modules.
Architectural components that are reused should be highlighted.
21
The structure of a requirements document
Chapter Description
System This should describe the functional and nonfunctional requirements in more detail.
requirements If necessary, further detail may also be added to the nonfunctional requirements.
specification Interfaces to other systems may be defined.
System models This might include graphical system models showing the relationships between
the system components and the system and its environment. Examples of possible
models are object models, data-flow models, or semantic data models.

System evolution This should describe the fundamental assumptions on which the system is based,
and any anticipated changes due to hardware evolution, changing user needs, and
so on. This section is useful for system designers as it may help them avoid design
decisions that would constrain likely future changes to the system.

Appendices These should provide detailed, specific information that is related to the
application being developed; for example, hardware and database descriptions.
Hardware requirements define the minimal and optimal configurations for the
system. Database requirements define the logical organization of the data used by
the system and the relationships between data.
Index Several indexes to the document may be included. As well as a normal alphabetic
index, there may be an index of diagrams, an index of functions, and so on.
22
A spiral view of the requirements engineering
process

23
Problems of requirements elicitation and analysis

 Stakeholders don’t know what they really want.

 Stakeholders express requirements in their own terms.

 Different stakeholders may have conflicting requirements.

 Organisational and political factors may influence the system requirements.

 The requirements change during the analysis process. New stakeholders may
emerge and the business environment may change.

Chapter 4 Requirementsengineering 24
Requirements elicitation and analysis process

25
Key points
 The software requirements document is an agreed statement of the
system requirements. It should be organized so that both system
customers and software developers can use it.

 The requirements engineering process is an iterative process


including requirements elicitation, specification and validation.

 Requirements elicitation and analysis is an iterative process that can


be represented as a spiral of activities – requirements discovery,
requirements classification and organization, requirements
negotiation and requirements documentation.
26
Methods of Eliciting
Requirements
Interview
Scenario
Use case
Ethnography

27
Requirements checking with User
 Validity. Do requirements match customer's real 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?
 How to check
 Requirements reviews
 Prototyping
 Test-case generation
28
Expect and manage change to requirements

Establishes the level of requirements management detail


that is required.
Requirements management decisions:
 Requirements identification Each requirement must be uniquely
identified so that it can be cross-referenced with other requirements.
 A change management process This is the set of activities that assess
the impact and cost of changes. I discuss this process in more detail
in the following section.
 Traceability policies These policies define the relationships between
each requirement and between the requirements and the system
design that should be recorded.
 Tool support Tools that may be used range from specialist
requirements management systems to spreadsheets and simple
29
database systems.
Requirements change management
 Deciding if a requirements change should be accepted
 Problem analysis and change specification
• During this stage, the problem or the change proposal is analyzed to check that
it is valid. This analysis is fed back to the change requestor who may respond
with a more specific requirements change proposal, or decide to withdraw the
request.

 Change analysis and costing


• The effect of the proposed change is assessed using traceability information and
general knowledge of the system requirements. Once this analysis is completed,
a decision is made whether or not to proceed with the requirements change.

 Change implementation
• The requirements document and, where necessary, the system design and
implementation, are modified. Ideally, the document should be organized so that
changes can be easily implemented.

30

You might also like