SE Unit_2_Notes
SE Unit_2_Notes
Functional Requirements
These are the requirements that the end user specifically demands as basic
facilities that the system should offer. All these functionalities need to be
necessarily incorporated into the system as a part of the contract.
These are represented or stated in the form of input to be given to the system, the
operation performed and the output expected. They are the requirements stated by
the user which one can see directly in the final product, unlike the non-functional
requirements.
Example:
What are the features that we need to design for this system?
What are the edge cases we need to consider, if any, in our design?
Non-Functional Requirements
These are the quality constraints that the system must satisfy according to the
project contract. The priority or extent to which these factors are implemented
varies from one project to another. They are also called non-behavioral
requirements. They deal with issues like:
Portability
Security
Maintainability
Reliability
Scalability
Performance
Reusability
Flexibility
Example:
Each request should be processed with the minimum latency?
System should be highly valuable.
Extended Requirements
These are basically “nice to have” requirements that might be out of the scope of
the System.
Example:
Our system should record metrices and analytics.
Service heath and performance monitoring.
Difference between Functional Requirements and Non-Functional
Requirements:
Functional Requirements Non Functional Requirements
Helps you verify the functionality of the Helps you to verify the performance of the
software. software.
Example
Example
1) Emails should be sent with a latency of
1) Authentication of user whenever he/she
no greater than 12 hours from such an
logs into the system.
activity.
2) System shutdown in case of a cyber
2) The processing of each request should be
attack.
done within 10 seconds
3) A Verification email is sent to user
3) The site should load in 3 seconds when
whenever he/she registers for the first time
the number of simultaneous users are >
on some software system.
10000
Software Requirement Specification (SRS)
In order to form a good SRS, here you will see some points that can be used and
should be considered to form a structure of good Software Requirements
Specification (SRS). These are below mentioned in the table of contents and are
well explained below.
Table of Content
Introduction
General description
Functional Requirements
Interface Requirements
Performance Requirements
Design Constraints
Non-Functional Attributes
Preliminary Schedule and Budget
Appendices
Uses of SRS document
Conclusion
Software Requirement Specification (SRS) Format as the name suggests, is a
complete specification and description of requirements of the software that need
to be fulfilled for the successful development of the software system. These
requirements can be functional as well as non-functional depending upon the type
of requirement. The interaction between different customers and contractors is
done because it is necessary to fully understand the needs of customers.
Depending upon information gathered after interaction, SRS is developed
which describes requirements of software that may include changes and
modifications that is needed to be done to increase quality of product and
to satisfy customer’s demand.
Introduction
Purpose of this Document – At first, main aim of why this document is
necessary and what’s purpose of document is explained and described.
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.
Overview – In this, description of product is explained. It’s simply summary
or overall review of product.
General description
In this, general functions of product which includes objective of user, a user
characteristic, features, benefits, about why its importance is mentioned. It also
describes features of user community.
Functional Requirements
In this, possible outcome of software system which includes effects due to
operation of program is fully explained. All functional requirements which may
include calculations, data processing, etc. are placed in a ranked order. Functional
requirements specify the expected behavior of the system-which outputs should
be produced from the given inputs. They describe the relationship between the
input and output of the system. For each functional requirement, detailed
description all the data inputs and their source, the units of measure, and the
range of valid inputs must be specified.
Interface Requirements
In this, software interfaces which mean how software program communicates
with each other or users either in form of any language, code, or message are
fully described and explained. Examples can be shared memory, data streams,
etc.
Performance Requirements
In this, how a software system performs desired functions under specific
condition is explained. It also explains required time, required memory,
maximum error rate, etc. The performance requirements part of an SRS specifies
the performance constraints on the software system. All the requirements relating
to the performance characteristics of the system must be clearly specified. There
are two types of performance requirements: static and dynamic. Static
requirements are those that do not impose constraint on the execution
characteristics of the system. Dynamic requirements specify constraints on the
execution behaviour of the system.
Design Constraints
In this, constraints which simply means limitation or restriction are specified and
explained for design team. Examples may include use of a particular algorithm,
hardware and software limitations, etc. There are a number of factors in the
client’s environment that may restrict the choices of a designer leading to design
constraints such factors include standards that must be followed resource limits,
operating environment, reliability and security requirements and policies that may
have an impact on the design of the system. An SRS should identify and specify
all such constraints.
Non-Functional Attributes
In this, non-functional attributes are explained that are required by software
system for better performance. An example may include Security, Portability,
Reliability, Reusability, Application compatibility, Data integrity, Scalability
capacity, etc.
Preliminary Schedule and Budget
In this, initial version and budget of project plan are explained which include
overall time duration required and overall cost required for development of
project.
Appendices
In this, additional information like references from where information is gathered,
definitions of some specific terms, acronyms, abbreviations, etc. are given and
explained.