0% found this document useful (0 votes)
3 views8 pages

SE Unit_2_Notes

The document outlines the critical process of requirements analysis in software development, distinguishing between functional and non-functional requirements. Functional requirements specify what the system should do, while non-functional requirements define the quality attributes and constraints of the system. Additionally, it discusses the structure and importance of a Software Requirement Specification (SRS) document, which serves as a roadmap for development and ensures stakeholder communication.

Uploaded by

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

SE Unit_2_Notes

The document outlines the critical process of requirements analysis in software development, distinguishing between functional and non-functional requirements. Functional requirements specify what the system should do, while non-functional requirements define the quality attributes and constraints of the system. Additionally, it discusses the structure and importance of a Software Requirement Specification (SRS) document, which serves as a roadmap for development and ensures stakeholder communication.

Uploaded by

anurag22092002
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 8

Functional and Non-functional requirements

Requirements analysis is a very critical process that enables the success of a


system or software project to be assessed. Requirements are generally split into
two types: Functional and Non-functional requirements.

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

A functional requirement defines a system A non-functional requirement defines the


or its component. quality attribute of a software system.

It places constraints on “How should the


It specifies “What should the software
software system fulfill the functional
system do?”
requirements?”

Non-functional requirement is specified by


Functional requirement is specified by
technical peoples e.g. Architect, Technical
User.
leaders and software developers.

It is mandatory. It is not mandatory.

It is captured in use case. It is captured as a quality attribute.

Defined at a component level. Applied to a system as a whole.

Helps you verify the functionality of the Helps you to verify the performance of the
software. software.

Non-Functional Testing like Performance,


Functional Testing like System, Integration,
Stress, Usability, Security testing, etc are
End to End, API testing, etc are done.
done.

Usually easy to define. Usually more difficult to define.

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.

Uses of SRS document


 Development team require it for developing product according to the need.
 Test plans are generated by testing group based on the describe external
behaviour.
 Maintenance and support staff need it to understand what the software product
is supposed to do.
 Project manager base their plans and estimates of schedule, effort and
resources on it.
 customer rely on it to know that product they can expect.
 As a contract between developer and customer.
 in documentation purpose.

FAQs on SRS Format


1. Why is it important to define the scope of an SRS document?
Defining the scope in an SRS document helps the customer understand the goals
and worth of the software. It also has details about how much it will cost to create
and how long it will take, so that the project’s limits are clear.
2. What are functional requirements in an SRS document, and why are they
important?
Functional requirements describe how the software system is supposed to work,
including how it should react to inputs and make outputs. They help you figure
out what the software needs to do and give you a place to start building and
testing it.
Conclusion
Software development requires a well-structured Software Requirement
Specification (SRS). It helps stakeholders communicate, provides a roadmap for
development teams, guides testers in creating effective test plans, guides
maintenance and support employees, informs project management decisions, and
sets customer expectations. The SRS document helps ensure that the software
meets functional and non-functional requirements, resulting in a quality product
on time and within budget.

Difference between Generic Software


Development and Custom Software
Development
Generic Software Development: Generic software development is a process
executed by the developers that develops the software product. The type of
project under this development are product software projects. Usually, this
product is made for all types of business needs which has a positive demand in
the market over a duration of time. Software development companies develop
generic software on their own and handled it to a group of customers having a
similar need.
Custom Software Development: Customer software development is a mechanism
by which a company develops the product for an individual client. The type of
project under this development are service software projects. Individual client
may be a company or group of persons. This product mostly has a distinct need in
the market only for a limited time and is for the specialized business needs.
Software development companies develop custom software at cost of particular
customers. Let’s see the difference between Generic software development and
Custom software development:
Generic software product
S.No. development Custom software development

The generic software development is Customer software development is


1. done for developing a general purpose done to develop a software product as
software. per the needs of particular customer.

In this development process, the In this development process, the end-


2. software developers have to depict the user requirements can be aggregated
end-users specifications. by communicating by them.

From designing and marketing This development does not require


3. perspective, this type of development is marketing, because it is developed for
very difficult. appropriate group of users.
Generic software product
S.No. development Custom software development

Large number of users may be using This type of software is used by


4.
this kind of software. limited number of users.

Quality is the main criterion in


Quality of the product is not a customer software product. Best
5.
preference for generic software. quality of the product is focused for
customer or company.

Customer determines the process of


Development team controls the process
6. software development in this type of
of generic software development.
product.

Generally the software developed is


Software product is of high cost as the
economical. There may be some hidden
7. particular product for customer is
costs such as installation and
developed.
implementation cost.

Inventory control and management


Example of generic software product
8. system are examples of customer
development is Word-editing software.
software development.

You might also like