You are on page 1of 6

Software Engineering Lab Manual (18B17CI672)

4
Software Requirement
Specification (SRS)
Software Engineering Lab Manual (18B17CI672)

Lab 4: Software Requirement Specification (SRS)


Objectives
 Gain a deeper understanding of the Software Requirement Specification
phase and the Software Requirement Specification (SRS).
 Learn how to write requirements and specifications.

1. Outline
 Review of the requirements engineering process.
 Write requirements and specifications.
 Software Requirement Specification (SRS).

2. Background
A requirement is a statement of a behavior or attribute that a system must possess for the system to be
acceptable to a stakeholder.

Software Requirement Specification (SRS) is a document that describes the requirements of a


computer system from the user's point of view. An SRS document specifies:
 The required behavior of a system in terms of: input data, required processing, output data,
operational scenarios and interfaces.
 The attributes of a system including: performance, security, maintainability, reliability,
availability, safety requirements and design constraints.

Requirements engineering is a systematic approach to eliciting, organizing and documenting the


requirements of a system. It is a process that establishes and maintains agreement between the
customer and the project team on the changing requirements of a system.

Requirements engineering is important because, by organizing and tracking the requirements and
managing the requirement changes, you improve the chances of completing the project on time and
under budget. Poor change management is a key cause of project failure.

2.1 Requirements Engineering Process


Requirements engineering process consists of four phases:
 Requirements elicitation: getting the customers to state exactly what the requirements are.
 Requirements analysis: making qualitative judgments and checking for consistency and
feasibility of requirements.
 Requirements Documentation: documenting the requirement in the specified format.
 Requirements review: this is ongoing activities which start from the beginning of RE. The
requirements are review and verify at any stage of the RE process.

2.2 Writing Requirements


Requirements always need to be correct, unambiguous, complete, consistent, and testable.

2.3 Writing Specifications


Specification is a description of operations and attributes of a system. It can be a document, set of
documents, a database of design information, a prototype, diagrams or any combination of these
things.
Software Engineering Lab Manual (18B17CI672)

Specifications are different from requirements: specifications are sufficiently complete ─ not only
what stakeholders say they want; usually, they have no conflicts; they describe the system as it will
be built and resolve any conflicting requirements.

2.4 Software Requirement Specification (SRS)


Remember that there is no “Perfect SRS”. However, SRS should be:
 Correct: each requirement represents something required by the target system.
 Unambiguous: every requirement in SRS has only one interpretation
 Complete: everything the target system should do is included in SRS (no sections are marked
TBD-to be determined).
 Verifiable: there exists some finite process with which a person/machine can check that the
actual as-built software product meets the requirements.
 Consistent in behavior and terms.
 Understandable by customers.
 Modifiable: changes can be made easily, completely and consistently.
 Design independent: doesn't imply specific software architecture or algorithm.
 Concise: shorter is better.
 Organized: requirements in SRS are easy to locate; related requirements are together.
 Traceable: each requirement is able to be referenced for later use (by the using paragraph
numbers, one requirement in each paragraph, or by using convention for indication
requirements)

3. Exercise

Write Software Requirement Specification of you project individually.


Do the meeting beyond the class to finalize common SRS

4. Deliverables
 SRS of the Project
Software Engineering Lab Manual (18B17CI672)

Example

Online Bookstore System


1. Introduction
1.1 Purpose
The purpose of the Online Bookstore System is to provide a platform for users to browse,
search, and purchase books online. It aims to streamline the process of buying books and
managing orders for both customers and administrators.

1.2 Scope
The Online Bookstore System will include features such as user registration, browsing books
by category, searching for specific titles, and adding books to a shopping cart, placing orders,
and managing inventory. It will also provide administrative functionalities for managing
books, users, and orders.

1.3 Definitions, Acronyms, and Abbreviations


SRS: Software Requirements Specification
UI: User Interface
API: Application Programming Interface

2. Overall Description
2.1 Product Perspective
The Online Bookstore System will be a standalone web application accessible via standard
web browsers. It will integrate with payment gateways for processing transactions and will
utilize a database to store book information, user data, and order details.

2.2 Product Features


o User registration and authentication
o Browse books by category
o Search for books by title, author, or keyword
o View detailed book information including price, author, and description
o Add books to a shopping cart
o Proceed to checkout and place orders securely
o View order history and track order status
o Admin panel for managing books, users, and orders

2.3 User Classes and Characteristics


Guest Users: Can browse books and search for titles without registering.
Registered Users: Can perform all actions available to guest users, plus save addresses, track
orders, and manage account settings.
Administrators: Have access to administrative functionalities such as adding/editing books,
managing users, and processing orders.

3. Specific Requirements
3.1 External Interface Requirements
3.1.1 User Interfaces
The UI shall be intuitive, responsive, and accessible across various devices and screen
sizes. Users shall be able to navigate through the website using a menu-based
navigation system.
Software Engineering Lab Manual (18B17CI672)

3.1.2 Hardware Interfaces


The system shall be hosted on dedicated servers with the following minimum
specifications:

Processor: Dual-core Intel Xeon or equivalent


RAM: 16 GB DDR4
Storage: 512 GB SSD
Network Interface: Gigabit Ethernet
The servers must be capable of supporting the required software stack,
including the web server, database server, and application runtime
environment.

The system shall be accessible from client devices, including desktop computers,
laptops, tablets, and smart phones.

3.1.3 Software Interfaces


The system shall integrate with payment gateways such as PayPal and Stripe for
processing online payments. The system shall utilize a relational database (e.g.,
MySQL) to store and retrieve book information, user data, and order details. The
application shall be accessible via standard web browsers such as Google Chrome,
Mozilla Firefox, and Safari.

3.2 Functional Requirements


3.2.1 User Management
Users shall be able to register for an account by providing a valid email address and
password. Registered users shall be able to log in using their credentials securely.
3.2.2 Book Management
Administrators shall be able to add new books to the system, including title, author,
category, price, and description. Administrators shall be able to edit existing book
details and delete books from the system.
3.2.3 Order Management
Users shall be able to add books to their shopping cart and proceed to checkout. Users
shall be able to view their order history and track the status of their orders.
Administrators shall be able to view all orders placed, mark orders as processed, and
update order statuses.

3.3 Non-Functional Requirements


3.3.1 Performance
The system shall respond to user interactions (e.g., searching for books, adding items
to the cart) within 2 seconds under normal load conditions. The system shall be able to
handle a concurrent user load of up to 1000 users without significant performance
degradation.
3.3.2 Security
User passwords shall be stored securely using industry-standard encryption
algorithms. The system shall implement HTTPS encryption to ensure secure
communication between the client and the server.
Software Engineering Lab Manual (18B17CI672)

You might also like