Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

Characteristics of Good SRS

The skill of writing a good SRS document usually comes from the
experience gained from writing SRS documents for many projects.
However, the analyst should be aware of the desirable qualities that
every good SRS document should possess. IEEE Recommended Practice
for Software Requirements Specifications[IEEE830] describes the
content and qualities of a good software requirements specification
(SRS). Some of the identified desirable qualities of an SRS document
are the following:
Concise: The SRS document should be concise and at the same time
unambiguous, consistent, and complete. Verbose and irrelevant
descriptions reduce readability and also increase the possibilities of
errors in the document.
Implementation-independent: The SRS should be free of design
and implementation decisions unless those decisions reflect actual
requirements. It should only specify what the system should do and
refrain from stating how to do these. This means that the SRS
document should specify the externally visible behaviour of the system
and not discuss the implementation issues. This view with which a
requirements specification is written, has been shown in Figure 4.1.
Observe that in Figure 4.1, the SRS document describes the output
produced for the different types of input and a description of the
processing required to produce the output from the input (shown in
ellipses) and the internal working of the software is not discussed at
all.

Traceable: It should be possible to trace a specific requirement to the


design elements that implement it and vice versa. Similarly, it should be
possible to trace a requirement to the code segments that implement it and
the test cases that test this requirement and vice versa. Traceability is also
important to verify the results of a phase with respect to the previous phase
and to analyse the impact of changing a requirement on the design elements
and the code.
Modifiable: Customers frequently change the requirements during the
software development development due to a variety of reasons. Therefore, in
practice the SRS document undergoes several revisions during software
development. Also, an SRS document is often modified after the project

Characteristics of Good SRS 1


completes to accommodate future enhancements and evolution. To cope up
with the requirements changes, the SRS document should be easily
modifiable. For this, an SRS document should be well-structured. A wellstructured
document is easy to understand and modify. Having the
description of a requirement scattered across many places in the SRS
document may not be wrong—but it tends to make the requirement difficult
to understand and also any modification to the requirement would become
difficult as it would require changes to be made at large number of places in
the document.

Verifiable: All requirements of the system as documented in the SRS


document should be verifiable. This means that it should be possible to
design test cases based on the description of the functionality as to whether
or not requirements have been met in an implementation. A requirement
such as “the system should be user friendly” is not verifiable. On the other
hand, the requirement—“When the name of a book is entered, the software
should display whether the book is available for issue or it has been loaned
out” is verifiable. Any feature of the required system that is not verifiable
should be listed separately in the goals of the implementation section of the
SRS document.

Characteristics of Good SRS 2

You might also like