Guide To Writing A Software Requirements Specification
Guide To Writing A Software Requirements Specification
UNIVERSITY OF RWANDA
MASTERS OF ICT
PREPARED BY:
Abstract
Any application starts with an idea, and the development begins with a Software Requirements
Specification (SRS) document. You might have a truly brilliant and unique digital product idea,
but the journey to the implementation phase ultimately defines whether your application will
succeed or fail. The SRS document is a vital part of this journey.
Approaching software development without documentation and a clear plan leads to a chaotic
implementation process, costly reworks, delays, or even a failed project. In fact, inadequate or
incomplete requirements are the most common reason for project failure. However, it possible to
avoid all these issues and lay the groundwork for a successful outcome by creating accurate and
understandable SRS documentation.
In this work, we explore the essentials of this document, why it’s a cornerstone for any software
project, and what makes up an effective SRS. Moreover, we’ll look on how to write a SRS to
make it a practical guide for stakeholders and all participants involved in the project
development.
1.INTRODUCTION
Software requirements specification is a technical document describing your project’s
functionality, features, design, limitations, and goals. Simply put, an SRS outlines how an
application should operate and how the product development team should build it. While you as
a client may use it to define your project expectations and deliverables, your software
development company will use it to assess the amount of work, define the technology stack, and
estimate the project cost.
Just as a statement of work (SOW), this document is crucial, especially when you outsource
software development. An SRS document serves as a project roadmap for you and your
dedicated team, leaving little room for confusion and misunderstandings. As a single source of
truth that everyone can refer to, the requirement document sheds light on product specifications
and deadlines, ensuring a shared understanding and alignment.
Moreover, it’s next to impossible to develop an app exactly what you expect without an SRS.
That’s why writing down clear software requirements guarantees your development team will
build the product matching your needs. an SRS is helpful for:
Investors, if there are to evaluate the prospects of software to make an informed decision
any
3
Software engineers to define the programming languages and plan their work
Outline the functions the app will have Outline how the app will perform
Identify the app’s core features Identify the way the app should behave
Explain what the app must do Explain how the app should do it
Ensure the app meets user requirements Ensure the app meets user expectations
Finally, repeat these steps for each user type. Thus, you’ll create a comprehensive set of software
use cases that accurately represent how your application will be actually used. By following
these steps, you’ll create software that truly delights your users.
5.1 Explicit
An SRS requires clear and easy-to-read content using agreed terminology so that all members of
the product development process can easily understand it. Very handy are visuals like diagrams,
models, or schemes as they can explain some points straight away.
5,2 Measurable
Unless the software requirements are measurable, it will be hard to know whether you are going
in the right direction and whether the team is completing the milestones. Project managers have
to understand how to assess the project progress and validate and verify the end product against
the specifications. So, make your requirements measurable.
5.3 Complete
The SRS document must contain all the features you want to build with enough detail for your
development team to complete the project: software requirements, assumptions, dependencies,
and prerequisites. The stakeholders should check whether every part of it is described or if any
details are missing.
5.4 Viable
When writing the specifications, you should take into account the budget, timeframe, and tech
realities of the current environment.
5.5 Flexible
Note that an SRS is a living document that may be updated and refined throughout the
development process, so it’s important to keep it flexible and adjustable.
5.6 Verifiable
It’s also vital to make the document available to all development team members so they can refer
to it whenever necessary. The indicator of clear requirements would be no questions for
clarification or demands for more details from the team.
5.7 Consistent
The software requirements in the document shouldn’t contradict each other. Also, the format of
the whole SRS should be consistent, and ensure you use the same terminology throughout the
paper.
5.8 No Implementation Constraints
Although an SRS requires detailed information, we don’t recommend you make it overly
specific, impose technological or architectural solutions, or specify a design methodology, as it
may restrict software development.
10
5.9 Accurate
SRS documentation should accurately depict the product’s functionality, specifications, and
instructions so that the team members have no additional questions while using it. So, make sure
every requirement has only one possible interpretation by avoiding subjective suggestions,
ambiguity, and loopholes.
By adhering to these characteristics, you can create an SRS document that meets the needs of all
stakeholders and provides a comprehensive and clear plan of action for your development team.
6.A Software Requirement Specification Typical Example
Below, we provide a condensed SRS document example for a mobile shopping app,
“FashionStyle”.
6.1 Introduction
This document outlines the development plan for “FashionStyle”, a mobile app that will allow
users to browse and purchase clothes from different brands. This plan is intended for software
engineers, designers, and investors of the project.
6.2 Overall Description
In the age of e-commerce, users are constantly seeking convenient ways to shop. However, with
so many brands and products available online, it can be overwhelming for customers to find what
they want. “FashionStyle” aims to solve this problem by offering a platform where consumers
can easily find and buy fashion items from a variety of brands.
6.3 Customers
The target customers are primarily fashion-conscious individuals who prefer to shop online.
They are likely to be tech-savvy and comfortable using mobile apps to make purchases.
6.4 Functionality
Users should be able to create an account with email or social media.
Users should be able to browse and search for clothes based on brand, category, color, and price
range.
Users should be able to view product details, such as descriptions, images, and reviews.
Users should be able to add products to a cart and checkout securely.
Users should be able to receive push notifications about new arrivals, sales, and promotions.
6.5 Platform
The app will be built using React Native, a cross-platform framework that will allow for
both IOS and Android app development. The app will connect to a REST API created with
Node.js and MongoDB to store and retrieve information.
11
List of abbreviations:
1.SRS: software requirement and specification
2.SOW: statement of work
3. REST: representational state transfer
4.API: application programming interface
References
1.https://www.techtarget.com/searchsoftwarequality/definition/software-requirements-
specification
2.https://www.Krazytech.com
3. https://www.perforce.com/blog/alm/how-write-software-requirements-specification-srs-
document
4. https://relevant.software/blog/software-requirements-specification-srs-document/