UNIT-2
Software Requirement
IEEE defines Requirement as: A condition or capability needed by a user to solve a problem or achieve an
objective
They are important because they:
• Communicate expectations of the uses
• Guide the development process
• Reduce the risk factors in the process
Requirements are of two types namely:
➢ Functional
➢ Non Functional
Functional
These are the specifications that define how the software application should behave and what are its properties.
They can be defined as “Something the system must do”.
They defines operations, actions and activities to be performed
Examples:
1) System must send a confirmation when order is placed (ex –meesho,flipcart etc)
2) Email when new account/password updates happen(gmail will send update when you change password or
create a new mail id)
3) It must check the user authencity(genuineness) while user tries to login –Enter number displayed or
confirmation email
Non Functional Requirements
These are system qualities that define how a system should behave rather than what it does
Example:1) website must load in 3 seconds
2) App must be downloaded in 5 seconds etc
They include the following
• Usability- Usability is a measure of how easy it is to use a product to perform prescribed tasks.
• Efficiency- It is the ability of software applications to deliver results in a timely manner while consuming
the least amount of system resources.
Key Metrics for measuring efficiency
1. Response Time: This metric measures the time taken by a software application to respond to a user’s request.
Faster response times indicate higher efficiency.
2. Throughput: Throughput measures the number of tasks or transactions a software application can handle within
a given time frame. Higher throughput indicates improved efficiency.
3. Resource Utilization: Resource utilization measures the amount of system resources, such as CPU and memory
that a software application consumes. Lower resource utilization indicates higher efficiency.
• Reliability- Software reliability is the probability that the software will operate failure-free for a specific
period of time in a specific environment.
• Portability- Software portability refers to the ability of software to be efficiently used across different
environments without losing functionality or quality.
Performance - Performance is part os the non functional requirements of a software, it can be defined as how
efficiently a software can accomplish its tasks.
Security - Software security is simply a collection of methods used to protect computer programs and the
sensitive information handled by them against malicious attacks. It covers a wide range of functions to safeguard
software and its correlated data on privacy, accuracy, and accessibility respectively.
User Requirements
They can defined as the requirements set by the user for the functionality of software.
Ex:1) Number of pages in a website(4 or 5)
2) Website is static, dynamic or responsive
3) Payment options-gpay, paytym, cash on delivery
System Requirements
They are defined as the specifications (instructions) that a computer needs to run a program or hardware device
successfully.
Hardware requirements-CPU, Memory, hard drive space
Software requirements-OS Version and drivers
Interface specification is defined as a standardized mechanism that allows different subsystems to communicate
effectively and operate as independent modules.
Three types of interfaces
1. Procedural interface—Used for calling the existing programs by the new programs
2. Data structures—Provide data passing from one sub-system to another
3. Representations of Data
--Ordering of bits to match with the existing system
--Most common in real-time and embedded system
SRS Software Requirements document
The requirements document is the official statement of what is required of the system developers. It should
include both a definition of user requirements and a specification of the system requirements. It is NOT a
design document. As far as possible, it should set of WHAT the system should do rather than HOW it
should do it
The Software Requirements document
Suggests that there are 6 requirements that requirement document should satisfy. It should
• Specify only external system behavior
• Specify constraints on the implementation.
• Be easy to change
• Serve as reference tool for system maintainers
Purpose of SRS
It can be used for Communication document between the Customer, Analyst, system developers, maintainers, and
clearly supports and controls overall project.
IEEE requirements standard
It defines a generic structure for a requirements document that must be instantiated for each specific system.
– Introduction.
– General description.
– Specific requirements.
– Appendices.
– Index
IEEE requirements standard (detailed)
1 Introduction
✓ Purpose
✓ Scope
✓ Definitions,
✓ Acronyms and Abbreviations
✓ References
✓ Overview
2. General description
✓ Product perspective
✓ Product function summary
✓ User characteristics
✓ General constraints
✓ Assumptions and dependencies
3. Specific Requirements
✓ Functional requirements
✓ External interface requirements
✓ Performance requirements
✓ Design constraints
✓ Attributes eg.security,availability,maintainability,transferability/conversion
✓ Other requirements
4. Appendices
5. Index
Requirements Engineering Process
Requirements engineering is the discipline that involves establishing and documenting requirements. The various
activities associated with requirements engineering are feasibility study, elicitation and analysis, specification,
verification, validation and management.
Feasibility Study
It is performed on a software to understand to understand the viability (ability to work successfully) of the
product.
By Understanding a project's feasibility we can understand how software product will perform in the market,
what will work, what will not work and how competitors have created and how will this will product survive.
Requirement Elicitation and Analysis
Requirement elicitation is a process that involves gathering, researching, defining, structuring, and clarifying the
requirements of a product. As a result of elicitation, a Business Analyst creates a set of project objectives. These
objectives should be understandable for each team member and represent all the client's demands and needs.
The term Analysis refers to the investigation of above process whether the data gathered is correct or not. It is
cross verifying the data we have gathered by various methods.
Requirements Elicitation Process
1. Requirement Discovery—Interaction with stakeholder to collect their requirements including domain and
documentation
2. Requirements classification and organization—consistent clustering of requirements from unstructured
collection of requirements
3. Requirements prioritization and negotiation—assigning priority to requirements
--Resolves conflicting requirements through negotiation
4. Requirements documentation--Requirements be documented and placed in the next round of spiral
Spiral Representation of Requirements Engineering Process
Process represented as three stage activity. Activities are organized as an iterative process around a spiral. Early
in the process, most effort will be spent on understanding high-level business and the use requirement. Later in
the outer rings, more effort will be devoted to system requirements engineering and system modeling
Three level processes consists of:
1. Requirements elicitation
2. Requirements specification
3. Requirements validation
Requirements validation is the process of checking that requirements defined for development, define the system
that the customer wants.
Requirements management is a set of techniques for documenting, analyzing, prioritizing and agreeing on
requirements so that engineering teams always have current and approved requirements.