Académique Documents
Professionnel Documents
Culture Documents
Software Requirement
Specification
Document No.
Version No.
Created on: 10 January 2002
Last modified on: 1 April 2002 - 6:30 PM
Last modified by: Maryum Zaidi
Chapter 3 Software Requirement Specification
Table of Contents
Software Requirement Specification.......................................................................................................................... 38
Abstract............................................................................................................................................................................ 38
Objectives........................................................................................................................................................................ 38
Introduction..................................................................................................................................................................... 38
FEATURES OF AN SRS............................................................................................................................................... 38
Document Structure ....................................................................................................................................................... 41
SRS Document Template ............................................................................................................................................. 42
Section 1: Introduction..................................................................................................................................... 42
Section 2: Overall description ........................................................................................................................ 42
Section 3: External interface requirements................................................................................................... 42
Section 4: System features .............................................................................................................................. 42
Section 5: Use case model............................................................................................................................... 42
Section 6: Nonfunctional requirements......................................................................................................... 42
Section 7: Graphical User Interface............................................................................................................... 43
Section 8: Data Dictionary .............................................................................................................................. 43
Description of SRS template........................................................................................................................................ 44
SECTION 1: INTRODUCTION ..................................................................................................................................... 45
1.1 Vision Statement...........................................................................................................................................45
1.1.1 Software Purpose...................................................................................................................... 45
1.1.2 Software Scope..................................................................................................................................... 45
1.1.3 Software Perspective........................................................................................................................... 45
1.2 Document conventions and definitions.....................................................................................................45
1.3 Intended audience and reading suggestions............................................................................................45
1.4 References......................................................................................................................................................45
SECTION 2: O VERALL DESCRIPTION ....................................................................................................................... 46
2.1 User characteristics.....................................................................................................................................46
2.2 Operating environment................................................................................................................................46
2.3 Design and implementation constraints...................................................................................................46
2.5 Assumptions and dependencies..................................................................................................................46
SECTION 3: EXTERNAL INTERFACE REQUIREMENTS............................................................................................ 47
3.1 Hardware Interfaces ....................................................................................................................................47
3.2 Software Interfaces.......................................................................................................................................47
3.3 Communications Interfaces ........................................................................................................................47
SECTION 4: SYSTEM FEATURES............................................................................................................................... 48
Template for representing system features .....................................................................................................48
SECTION 5: U SE CASE M ODEL ................................................................................................................................ 49
5.1 Use Case Diagram.......................................................................................................................................49
5.2. Use Case Description.................................................................................................................................49
SECTION 6: ELABORATED USE CASES.................................................................................................................... 51
TEMPLATE FOR ELABORATED USE CASES.............................................................................................................. 51
SECTION 7: U SER INTERFACE .................................................................................................................................. 52
TEMPLATE FOR USER INTERFACE DESCRIPTION .................................................................................................. 52
SECTION 8: NONFUNCTIONAL REQUIRE MENTS..................................................................................................... 53
8.1 Business Rules...............................................................................................................................................53
8.2 Performance Requirements.........................................................................................................................53
8.3 Safety Requirements.....................................................................................................................................53
8.4 Security Requirements.................................................................................................................................53
8.5 Software Quality Attributes........................................................................................................................53
Software Requirement
Specification
Abstract
Software Requirement Specification (SRS) is a fundamental document, which forms the
foundation of software development process. SRS not only lists the requirements of a
system but also has a description of its major features. These recommendations extend
the IEEE standards and include use cases and sequence diagrams to incorporate UML
standards. The recommendations would form basis for providing clear visibility of the
product to be developed serving as baseline for execution of a contract between client
and developer.
Objectives
These recommendations are designed to serve as a reference for standardized preparation
of SRS for software projects. The body of this document contains various templates that
would help guide this process and provide the software engineers with conc rete
framework to accomplish their task. The idea is to help and assist the software engineers
and to promote a scalable structured format to ensure uniformity of concept and practice.
Introduction
Typically, SRS constitutes the agreement between clients and developers regarding the
contents of the software product that is going to be developed. SRS should accurately and
completely represent the system requirements as it makes a huge contribution to the
overall project plan. The software being developed may be a part of the overall larger
system or may be a complete standalone system in its own right. If the software is a
system component, the SRS should state the interfaces between the system and the
software portion.
Features of an SRS
SRS comprise specifications for a software product, program, or set of programs that
perform a certain function in a specific environment. Some integral features a typical
SRS should support are:
1. Functionality
What the software is supposed to do.
2. External Interfaces
How the system interacts with the people using it, or with other systems that
would use it, or other hardware that would invoke it.
3. Performance
Speed, availability, response time, recovery time, recovery time of various
software functions etc.
4. Attributes
What is the portability, correctness, maintainability and security considerations
etc.
5. Design Constraints
Standards to be followed, resource limits, operating environme nts, policies for
database integrity etc.
6. Non functional Requirements
Non functional requirements are the business rules, software quality attributes,
safety requirements, security requirements and performance parameters etc.
To ensure an error and ambiguity free SRS, it is imperative to identify all major
characteristics of a good SRS. Essentially, SRS should comprehensively cover every
requirement that the software has to meet. It is important to note that while writing SRS,
the terminology used for a particular component should be consistent throughout the
document. Every term should represent only one meaning to avoid confusion. It is
recommended that language and grammar of SRS be reviewed by an expert to eliminate
ambiguity.
While writing SRS, conceptual confusions and differences in thought s could create
conflicts in its contents. Generally there are three major types of conflicts in an SRS,
which are as follows:
Each requirement in SRS should be identified to clarify the difference between necessary
and optional components. Clarity ensures better understanding and correct design in the
later stages of development.
An SRS is traceable if the origin of each of its requirements is clear and if it facilitates the
referencing of each requirement in future development or enhancement documentation.
Nevertheless a quality SRS ensures end-to-end traceability. End-to-end traceability might
be explained by chunking it into backward and forward traceability, which are given
below:
It is recommended that UML notation be followed in the SRS document. It would not
only preserve the universality of the concept, but would also be understandable to a
diverse audience at the same time.
Document Structure
Vision Statement
(Purpose, Scope,
Perspective description)
System Features
1
Nonfunctional
requirements
1
Use case
Diagram 1
n n
m n User Interface
Data dictionary Sequence
diagrams
Section 1: Introduction
1.1 Vision Statement
1.1.1 Software Purpose
1.1.2 Software Scope
1.1.3 Software Perspective
1.2 Document conventions and definitions
1.3 Intended audience and Reading suggestions
1.4 References
<Document Title>
Document No.
Version No.
Created on:
Last modified on:
Last modified by:
Section 1: Introduction
Name
Release No.
Version No.
System Subsystem Revision
Description
1.4 References
Provide all text and electronic document resources to which the SRS refers.
• Specific technologies, tools, programming languages, and databases that must be used or avoided
• Required development conventions or standards
• Corporate policies and government rules that influence design and implementation phases.
• Hardware limitations, such as timing requirement or memory specifications or constraints.
• Standard data interchange formats
• Transaction rate required
• Local and network security
• Downtime in terms of:
o Existing environment
o Support
• Scalability in terms of hardware and performance.
Also, identify any dependencies the project has on external factors. For example, if you expect to integrate
into the system some components that are being developed by another project, you are dependent upon that
project to supply the correctly operating components on schedule.
This section is intended to specify any requirements that ensure that the new product will connect properly
to external components. Place a context diagram showing the external interfaces at a high level of
abstraction. Place detailed descriptions of the data and control components of the interfaces in the data
dictionary. If different portions of the product have different external interfaces incorporate an instance of
this section within the detailed requirements for each such portion.
In general terms, the purpose of use case analysis is to document the business process that is to be
supported by the system under development. However, to effectively develop a well-organized application
for that process, use case model must have a much more specific purpose. Use cases must document the
business process to be supported in such a way as to facilitate the identification of operations that support
the business process. Use cases must achieve the following goals in order to be effective for this stated
purpose.
1. Use cases must be an Effective Communication Tool
2. Use cases must be scoped to a Specific Business Goal, which means they must identify Business
Decisions and Actions.
1. Basic Information:
i. Actors
ii. Purpose
iii. Cross References
2. Primary Course of Events: It is the most important part of uses case description and describes the
interaction between the actor and the system. It describes the most common or typical sequence of
events. Exceptions to this flow are identified in next section.
3. Alternate Courses: In this section the alternate or exceptions to the primary course are identified.
4. Sequence Diagram: This is graphical representation of primary course of events.
Basic Information
Actors: <List of actors (external agents), indicating who initiated the use case>
Purpose: <Briefly describe high level description of use case>
Cross References: <Related use cases, which use or are used by this use case>
Feature: <Feature from which the use case is driven>
Scenario Notes
Write concurrency of actions, additional, optional, branching or iterative steps. Refer to
specific action number to ensure understandability.
Post Conditions
Step# Description
Sequentially list conditions expected at the completion of the use case.
User Interface reference List user interface(s) that are related to this use case. Use
numbered list in case of more than one user interface
elements.
9.1 Data 1
Description.
9.2 Data 2
Description.
.
.
.
9.n Data n
Description.
Where-used/how-used List all processes that use the data or control item and how it
is used (e.g., input to process, output from the process, as a
store, as n external entity)
= is composed of
Sequence + and
Selection [|] either-or
Repetition {}n n repetitions of
() optional data
*…* delimits comments
♦ Feature: Lists system features based on which use cases are built.
♦ Use Case ID: Write the ID of the use case for easy lookup
♦ UI ID: Write the user interface ID for this use case.
♦ Priority: Give an appropriate rating to each use case according to its priority
♦ Build Number: Write the reference number to which this feature belongs.
♦ Use Case Cross Ref: Write the related use cases separated with commas.
Technology Options
Technology options and recommendation are derivatives of the non functional
requirements discussed in the software requirement specifications.
Existing system
Give a description of the existing system. Define whether the new system being developed is a part of the
existing system, is an add-on or an integrated component.
Draw a diagram showing the detailed system architecture. If the system being developed has no
relationship with the existing system, mention it clearly.
Performance
Mention the average response time for the system. Show a breakup of the system into use cases and
mention response time for each use case. Some use cases may require more time than others, nevertheless
it should be within realistic limits.
Data volume
Mention the following.
Period Total No. of No. of records in largest Avg. No. of records Size of DB in terms of
tables in DB table in DB per table bytes of data
Availability
Mention the permitted downtime of the system in terms of average and maximum downtime.
Usability
Mention the network latency of the system. Mention if the system will be a web based system
PC 2
PC 1
S/w cost
H/w cost
S/w Licensing cost
Bids