SE Unit II
SE Unit II
Ananthapuramu
Department of Computer Science and Engineering
MCA (R20)
Software Engineering
SEMESTER - II L-T-P-C: 3-0-0-3
UNIT–II:
Requirements: Importance of Requirement Analysis, User Needs, Software
Features and Software Requirements. Classes of User Requirements :
Enduring and Volatile, Sub phases of Requirement Analysis, Functional and
Non-functional requirements, Barriers to Eliciting User requirements, The
software requirements document and SRS standards, Requirements
Engineering, Case Study of SRS for a Real Time System. Tools for
Requirements Gathering: Document Flow Chart, Decision Table, Decision
Tree, Introduction to non-traditional Requirements.
Requirements
The software requirements are description of features and
functionalities of the target system. Requirements convey the expectations
of users from the software product. The requirements can be obvious or
hidden, known or unknown, expected or unexpected from client’s point of
view.
Requirement Engineering
The process to gather the software requirements from client, analyze
and document them is known as requirement engineering. The goal of
requirement engineering is to develop and maintain sophisticated and
descriptive ‘System Requirements Specification’ document.
User Needs:
Customers have needs and requirements. A customer need establishes
the relationship between the organization and the customer (example: I need
(or want) an iPad). Requirements are those characteristics that determine
whether or not the customer is happy. (Examples: a requirement is that the
iPad is user-friendly, has to be fast in data storage and retrieval, etc.)
Software Requirement:
Requirement is a condition or capability possessed by the software or
system component in order to solve a real world problem. The problems can
be to automate a part of a system, to correct shortcomings of an existing
system, to control a device, and so on.
Examples
A system goal – The system should be easy to use by experienced
controllers and should be organized in such a way that user errors are
minimized.
A verifiable non-functional requirement – Experienced controllers shall
be able to use all the system functions after a total of two hours training.
After this training, the average number of errors made by experienced users
shall not exceed two per day.
Requirements measures
Requirements interaction
Conflicts between different nonfunctional requirements are common in
complex systems
Spacecraft system
To minimize weight, the number of separate chips in the system should
be minimized
To minimize power consumption, lower power chips should be used
However, using low power chips may mean that more chips have to be
used. Which is the most critical requirement?
2.2.c Domain requirements
Requirements that come from the application domain of the system and
that reflect characteristics of that domain
In order to form a good SRS, here you will see some points which can be
used and should be considered to form a structure of good SRS. These are as
follows:
1. Introduction
2. General description
3. Functional Requirements
4. Interface Requirements
5. Performance Requirements
6. Design Constraints
7. Non-Functional Attributes
8. Preliminary Schedule and Budget
9. Appendices
Software Requirement Specification (SRS) Format as name suggests,
is complete specification and description of requirements of software that
needs to be fulfilled for successful development of software system. These
requirements can be functional as well as non-requirements depending upon
type of requirement. The interaction between different customers and
contractor is done because it’s necessary to fully understand needs of
customers.
1. Introduction:
(i) Purpose of this Document: At first, main aim of why this
document is necessary and what’s purpose of document is explained
and described.
(ii) Scope of this document: In this, overall working and main
objective of document and what value it will provide to customer is
described and explained. It also includes a description of development
cost and time required.
(iii) Overview: In this, description of product is explained. It’s simply
summary or overall review of product.
Requirements Elicitation:
It is related to the various ways used to gain knowledge about the
project domain and requirements. The various sources of domain knowledge
include customers, business manuals, and the existing software of same
type, standards and other stakeholders of the project.
Requirements specification:
This activity is used to produce formal software requirement models.
All the requirements including the functional as well as the non-functional
requirements and the constraints are specified by these models in totality.
During specification, more knowledge about the problem may be required
which can again trigger the elicitation process.
Verification: It refers to the set of tasks that ensures that the software
correctly implements a specific function.
Validation: It refers to a different set of tasks that ensures that the software
that has been built is traceable to customer requirements.
Requirements management:
Requirement management is the process of analysing, documenting,
tracking, prioritizing and agreeing on the requirement and controlling the
communication to relevant stakeholders. This stage takes care of the
changing nature of requirements. It should be ensured that the SRS is as
modifiable as possible so as to incorporate changes in requirements
specified by the end users at later stages too. Being able to modify the
software as per requirements in a systematic and controlled manner is an
extremely important part of the requirements engineering process.
Context Diagram
A context diagram helps in understanding the entire system by one DFD
which gives the overview of a system. It starts with mentioning major
processes with little details and then goes onto giving more details of the
processes with the top-down approach.
The context diagram of mess management is shown below.
Decision Trees
Decision trees are a method for defining complex relationships by describing
decisions and avoiding the problems in communication. A decision tree is a
diagram that shows alternative actions and conditions within horizontal tree
framework. Thus, it depicts which conditions to consider first, second, and so
on.
Decision Tables
Decision tables are a method of describing the complex logical
relationship in a precise manner which is easily understandable.
It is useful in situations where the resulting actions depend on the
occurrence of one or several combinations of independent conditions.
It is a matrix containing row or columns for defining a problem and the
actions.
Components of a Decision Table
Condition Stub − It is in the upper left quadrant which lists all the
condition to be checked.
Action Stub − It is in the lower left quadrant which outlines all the
action to be carried out to meet such condition.
Condition Entry − It is in upper right quadrant which provides
answers to questions asked in condition stub quadrant.
Action Entry − It is in lower right quadrant which indicates the
appropriate action resulting from the answers to the conditions in the
condition entry quadrant.
The entries in decision table are given by Decision Rules which define the
relationships between combinations of conditions and courses of action. In
rules section,
Y shows the existence of a condition.
N represents the condition, which is not satisfied.
A blank - against action states it is to be ignored.
X (or a check mark will do) against action states it is to be carried out.
For example, refer the following table −
CONDITIONS Rule 1 Rule 2 Rule 3 Rule 4
Purchase amount = Rs - Y Y N
10,000/-
Regular Customer - Y N -
ACTIONS
Give 5% discount X X - -
Give no discount - - X X