KEMBAR78
Lecture 5 Software Requirement Specification | PDF | Use Case | Software
0% found this document useful (0 votes)
9 views25 pages

Lecture 5 Software Requirement Specification

The document outlines the importance and structure of a Software Requirements Specification (SRS) in software development, emphasizing its role as a roadmap for stakeholders. It details the components of an SRS, including functional and non-functional requirements, and provides guidelines on how to write one effectively. The document also highlights the goals of an SRS, such as improving communication among team members and aiding in project validation.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views25 pages

Lecture 5 Software Requirement Specification

The document outlines the importance and structure of a Software Requirements Specification (SRS) in software development, emphasizing its role as a roadmap for stakeholders. It details the components of an SRS, including functional and non-functional requirements, and provides guidelines on how to write one effectively. The document also highlights the goals of an SRS, such as improving communication among team members and aiding in project validation.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 25

SOFTWARE REQUIREMENT

SPECIFICATION

Lecture-5
INTRODUCTION

 Without a map it can get tough traveling to a new


city or country. You wouldn’t know what transport
to take or which direction to travel in, making it
almost impossible to reach your destination.

Similarly, in software development, you are


unable to create the right product without
proper documentation of software
requirements.
 SRS document is one of the most critical documents in
software development. It describes how a software
system should be developed. Simply put, an SRS
provides everyone involved with a roadmap for that
project.

 A software requirements document (also known as software requirements

specifications) is a document that describes the intended use-case, features, and

challenges of a software application.

 These documents are created before the project has started development in

order to get every stakeholder on the same page regarding the software’s

functionality.
WHY IS AN SRS DOCUMENT IMPORTANT?

 An SRS document describes what a client wants and what

developers will provide. It is the written agreement on every

detail of the product.

 Having a clear set of requirements ensures that a

development team creates software that meets the clients’

needs. An SRS will help with estimating the cost of work

and covering the project scope. It also gives coders an idea of

the tech stack they’ll need and helps them plan their work,
WHY IS AN SRS DOCUMENT IMPORTANT?

An SRS is important because it is a single source of information

and expectations, which prevents misunderstandings between

project managers, developers, designers, and testers.

1. Designers get project insights through SRS documents so


they can match the design to the use case.

2. Testers get the guidelines for creating test cases that match
the business’s needs.

3. End-users use the SRS to understand the software.

4. It provides investors with an overview of the system’s


features so they can make investment decisions.
WHAT DOES AN SRS INCLUDE?

An SRS document typically includes these elements:

 The purpose of the software being developed

 An overall description of the software

 The functionality of the software or what it is supposed to do

 Performance of the software in a production situation

 Non-functional requirements

 External interfaces or how the software will interact with hardware or other

software it must connect to

 Design constraints or the limitations of the environment that the software will run

in
HOW TO WRITE A SOFTWARE REQUIREMENT SPECIFICATION
DOCUMENT
six steps involved in creating an SRS document in software engineering:
1. Create an Outline
The first step in the process is to create an outline for SRS document. You can create this
yourself or use an existing SRS template as a starting point. Here is a basic example of an
SRS outline:
1. Introduction
2. Purpose
3. Intended Audience
4. Intended Use
5. Scope
6. Definitions
7. Overall Description
8. User Needs
9. Assumptions and Dependencies
10. System Features and Requirements
a) Functional Requirements
b) External Interface Requirements
c) System Features
d) Non-functional Requirements
2. Define the Purpose

1. Define the product’s scope

2. Describe the value it will deliver

3. Show who will use the software

4. Detail how it will help with the intended users’ job


3. Give an Overview

After defining the product’s purpose, summarize how it will work.

Here you will give a general description of the software’s features

and how they fit the user’s needs.


4.Describe Functional and Non-functional
Requirements

Describe the functional requirements in enough detail so

developers can get to work and the non-functional requirements

like security specifications and performance.


5. Add Supplemental Details

The last step in creating the draft of SRS document in software

engineering is adding any details that could help developers finish

the job in the form of appendixes, glossaries of terms, and

references.

6. Get Approval

Once you have added enough details to the SRS to describe what

the system is supposed to do, it is time to have the stakeholders

approve the document.


HOW TO WRITE SOFTWARE USE CASES IN AN SRS
SRS TEMPLATE
THE FOLLOWING IS A SIMPLE SRS TEMPLATE:

Table of Contents
1. Introduction
 1.1 Purpose of this document

 1.2 Scope of this document

 1.3 Overview

 1.4 Business Context


2. General Description

 2.1 Product Functions

 2.2 Similar System Information

 2.3 User Characteristics

 2.4 User Problem Statement

 2.5 User Objectives

 2.6 General Constraints


 3. Functional Requirements

3.1. what system will do


3.2. List of services the system should provide
3.3. List of services/ functions which user want
from software
3.4
4. Interface Requirements

 4.1 User Interfaces


 4.2 Hardware Interfaces

 4.3 Communications Interfaces

 4.4 Software Interfaces


5. Performance Requirements
• Response Time

• Workload

• Scalability

• Platform
6. Other non-functional attributes
 6.1 Security

 6.3 Reliability

 6.4 Maintainability

 6.5 Portability

 6.6 Extensibility

 6.7 Reusability

 6.8 Application Affinity/Compatibility


7. Operational Scenarios

1. Description of an imagined sequence of events that


includes the interaction of the product or service with
its environment and users, as well as interaction among
its product or service components.
2. A set of actions or functions representing the dynamic
of exchanges between the functions allowing the
system to achieve a mission or a service.
3. Stories which describe the expected utilization of the
future system in terms of actions.
8. Preliminary Use Case Models and Sequence
Diagrams

 8.1 Use Case Model


 8.2 Sequence Diagrams
10. Appendices
 10.1 Definitions, Acronyms, Abbreviations

 10.2 References
Software Requirements Document
1. Introduction
1.1 Purpose: Set the expectations for the outcome of the product.
1.2 Intended Audience: Who is the software for? Who is the end-user? Will the software
be used internally at a company or externally?
1.3 Intended Use: What is the software for? What problem is it solving?
1.4 Scope: Explain the scope of the software. What are the main goals and objectives?
How do they relate to the company’s goals?
1.5 Definitions and Acronyms: Provide an overview of any definitions the reader
should understand before reading on.
2. Overall Description: Describe what you are building and for who.
2.1 User Needs: Explain the user needs for this software.
2.2 Assumptions and Dependencies: What assumptions are you making that could
cause an error in your approach? Is the project reliant on any other factors that could
affect the development of the software?
3. System Features and Requirements
3.1 Functional Requirements: Take time to define the functional requirements that
are essential for the software to build.
3.2 External Interface Requirements: Are there any UX and UI requirements that
you must keep in mind as you build?
3.3 System Features: What features are required for the software to even work.
3.4 Nonfunctional Requirements: Are there any non-functional requirements that you
need to address (i.e. budget, team, etc.)
FEATURES OF AN SRS
An SRS should have following characteristics:
• Correct -- should accurately reflect product functionality and specification at
any point of time.
• Unambiguous -- should not be any confusion regarding interpretation of the
requirements.
• Complete -- should contain all the features requested by a client.

• Consistent -- same abbreviation and conventions must be followed throughout


the document.
• Ranked for importance and/or stability -- every requirement is important.
But some are urgent and must be fulfilled before other requirements and some
could be delayed. It’s better to classify each requirement according to its
importance and stability.
• Verifiable -- an SRS is verifiable only if every stated requirement can be
verified. A requirement is verifiable if there is some method to quantifiably
measure whether the final software meets that requirement.
• Modifiable -- an SRS must clearly identify each and every requirement in a
systematic manner. If there are any changes, the specific requirements and the
dependent ones can be modified accordingly without impact the others.
• Traceable – an SRS is traceable if the origin of each of its requirements is
clear and if it makes it easy to reference each requirement in future
development.
THE GOALS OF AN SRS

1. Provide feedback to the customer, ensuring that the IT


company understands the issues the software system
should solve and how to address those issues.

2. Help to break a problem down into smaller components


just by writing down the requirements.

3. Speed up the testing and validation processes.

4. Facilitate reviews.

You might also like