CH-3 (Software Engineering)
CH-3 (Software Engineering)
THREE
Requirements
Elicitation
Overview of requirements Elicitation
Encompass all activities involved in discovering the requirements of a system
System developers and engineers work in close relationship with customer and
end-users to
Find out more about the problem to be solved
To describe the functionality of the system
Understand the application domain (“speak its language”)
Hardware constraints … and so forth
Not just a simple process about fishing for requirements, but a highly complex
process:
Customer rarely have a clear picture of their requirements
Different people have conflicting requirements
Bridging the gap between user and developer:
2
Requirements elicitation concepts
Requirements elicitation is the process of gathering, analyzing, and defining the
needs and expectations of stakeholders for a software system. Some key concepts
in requirements elicitation include:
1. Stakeholder identification: Identifying all individuals or groups who have a vested interest
in the software system and understanding their needs and expectations.
3
Cont…
5. Requirement documentation: Documenting the requirements in a clear and organized
manner to serve as a reference for the development team.
4
Fundamental Requirement Gathering techniques
6
issues to discuss at a brainstorming session
Who is this system for?
7
What information will people need to do their jobs?
What are our organizations strategic goals and objectives ?Does this
system support them?
8
How can we do this faster?
How can we do this cheaper ?
How can we do this better?
9
Types of requirements
There are two main types of requirements in software engineering:
Functional Requirements
Define what the software should do, such as user interactions, data
processing, and system behavior.
Non-functional Requirements
These specify the quality attributes or constraints that the software
system must satisfy.
14
Cont…
Complete:- All features of interest are described by requirements
16
Requirements Elicitation activities
Identifying Actors
Actors represent external entities that interact with the system
What external hardware or software system will the system interact with?
17
Identifying scenarios
Developers observe users and develop a set of detailed scenarios for
typical functionality provided by the future system.
18
Identifying use cases
Once developers and users agree on a set of scenarios, developers
derive from the scenarios a set of use cases that completely represent
the future system.
19
Identifying relationships
Refining use cases
among use cases
developers ensure that the developers identify dependencies
requirements specification is
complete by detailing each use among use cases. They also
case and describing the behavior consolidate the use case model
of the system in the presence of
errors and exceptional conditions. by factoring out common
functionality. This ensures that
the requirements specification is
consistent.
20
Identifying nonfunctional requirements
21
Requirements validation techniques
22
Requirement Document
The software requirements document (SRS) is the official statement of
what is required of the system developers
It should include both the user requirements for a system and a
detailed specification of the system requirements.
The requirements document has diverse set of users, for example :
System customers, Managers, System Engineers, System Test
Engineer, System Maintenance Engineers
Writing SRS
• Write each clause so that it contains only one requirement
• Avoid having one requirement refer to another requirement
• Collect similar requirements together
23
Requirement Document…
The requirement document should be
Complete - the set of requirements must be complete.
If requirements are missing, then the product will also be incomplete.
It is likely that the missing requirements will turn up at inopportune times and
cause problems throughout the project life cycle.
Consistent - set of requirements must be consistent.
If there are requirements in your specification that conflict with each other,
then the product will not be able to meet all of your requirements.
Inconsistencies must be resolved in order for your project to succeed.
Updateable
If you have to change a requirement (create, edit, or delete), you must be able
to evaluate the impact of that change on all of the other requirements.
24
Requirement Document…
Traceability - Each requirement should be contained in a single,
numbered paragraph so that it may be referred to in other
documents:
Prioritization - Each requirement has to be ranked against the
others according to its implementation importance.
More over SRS should
Specify external system behaviour
Specify implementation constraints
Easy to change
Serve as reference tool for maintenance etc
25
IEEE 830-1998. requirements standard
1. Introduction to the Document 3.2 Functional Requirements
1.1 Purpose of the Product 3.2.1 Class 1
1.2 Scope of the Product 3.2.2 Class 2
…
1.3 Acronyms, Abbreviations, Definitions
3.3 Performance Requirements
1.4 References
3.4 Design Constraints
1.5 Outline of the rest of the SRS 3.5 Quality Requirements
2. General Description of Product 3.6 Other Requirements
2.1 Context of Product 4. Appendices
2.2 Product Functions
2.3 User Characteristics 5. Index
2.4 Constraints
2.5 Assumptions and Dependencies
3. Specific Requirements
3.1 External Interface Requirements
3.1.1 User Interfaces
3.1.2 Hardware Interfaces
3.1.3 Software Interfaces
3.1.4 Communications Interfaces
26
Requirements management
Requirements management is the process of managing changing
requirements during the requirements engineering process and
system development.
Requirements change for the following reasons:
The priority of requirements from different 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.
Requirement change management should be applied to all proposed changes to
the requirements so that changes are treated consistently and the changes to
the requirements document are made in controlled way.
27
Requirement change management...
Principal stages to change management process are
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.
From an evolution perspective, requirements fall into two classes
Enduring requirements: Stable requirements derived from the core
activity of the customer organisation. May be derived from domain models
E.g. a hospital will always have doctors, nurses, etc.
Volatile requirements: Requirements which change during
development or when the system is in use.
In a hospital, requirements derived from health-care policy 28
Requirements management planning
During the requirements engineering process, you have to plan and
decide on:
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;
CASE tool support
The tool support required to help manage requirements change
29
END of Chapter 3
30