Software Requirements Specification (SRS) RECAP: Reference

You might also like

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 34

Software Requirements Specification (SRS) RECAP

Reference:
IEEE Standard 830-1998 for Requirements Specifications
Review: Requirements Process
Documenting Requirements

• SRS contents
• SRS structure
• Sample outlines
SRS contents
The main issues that the SRS should address are:
•  Functionality
•  External interfaces
− to hardware, other software systems, users
•  Performance
− speed, availability, response time, recovery time
•  Quality attributes (NFRs)
− Portability, correctness, maintainability, security, etc.
•  Design constraints
IEEE SRS organization
Table of Contents
Table of Figures
1. Introduction
1.1 Purpose
1.2 Scope
1.3 Definitions, acronyms, abbreviations
1.4 References
1.5 Overview
2. Overall description
2.1 Product perspective
2.2 Product functions
2.3 User characteristics
2.4 Constraints
2.5 Assumptions and dependencies
3. Specific requirements /* variable organization */
Appendices
Index
Section 1. Introduction
1.1 Purpose
•  Purpose of the SRS
•  Intended audience
•  How SRS is to be used
- e.g., contract between vendor and customer?
•  .25-.5 pages
ABM example: Purpose
This document describes the software
requirements and specification for an automated
banking machine (ABM). The document is
intended for the customer and the developer
(designers, testers, maintainers).

The reader is assumed to have basic knowledge of


banking accounts and account services.
Knowledge and understanding of UML diagrams is
also required.
Section 1. Introduction
1.2 Scope
•  Name of the software product
•  Overview of the product – what it will / will not do
•  Benefits, objectives, goals of the product
•  Boundaries of the product
•  .25-.5 pages
ABM example: Scope
The YouBank software enables customers to complete
simple bank account services via a kiosk – called an
automated banking machine (ABM) – that is located off
premise and that need not be owned and operated by
the customer’s bank. The YouBank software identifies
a customer by a card (with magnetic strip and/or chip)
and password. It collects information about a simple
account transaction (e.g., deposit, withdrawal, transfer,
bill payment), communicates the transaction
information to the customer’s bank, and dispenses
cash to the customer. The YouBank software
maintains a log of all transactions; it makes use of
state-of-the-art authentication services.
Section 1. Introduction
1.3 Acronyms, Abbreviations, Definitions, Notational Conventions
•  Domain-specific terminology
–  Model-related terminology should be in the Glossary.

•  Naming conventions
•  Notational conventions, deviations from standard UML
–  e.g., fonts or colour to denote different model elements
ABM: Definition vs. Abbreviation
• Definition:
– Account: A single account at a bank against which
transactions can be applied. Accounts may be of
various types with at least checking and savings. A
customer can hold more than one account.

• Abbreviation:
– maxDailyWD: The maximum amount of cash that a
customer can withdraw from an account in a day
(from 00:00 AM to 23:59 PM) via ABMs.
Section 1. Introduction
1.4 References
• Pre-existing project documentation
• Documentation of stakeholder interviews
e.g., meeting minutes, videos, email

• External info sources


e.g., a textbook on telephony, web pages
Section 1. Introduction
1.5 Overview
Structure of the rest of the SRS, especially:
• Organization for section 3
• Deviations from the standard SRS format
ABM: Overview
The rest of this document is organized as follows.
Section 2 contains a general description of the ABM
product and constraints on requirements. Section 3
identifies the specific requirements, including external
interfaces, use cases, functional requirements, and
behavioral requirements. The document concludes with
an appendix of glossary terms.
Appendices consist also of minutes of customer
interviews and meetings, and do not constitute
additional requirements of the software; all requirements
arising from these minutes have been incorporated into
the specific requirements in Section 3.
Section 2: Overall description
Provides the background for the system requirements:

2.1 Product Perspective


2.2 Product Functions
2.3 User Characteristics
2.4 General Constraints
2.5 Assumptions and Dependencies
Section 2: Overall description
2.1 Product Perspective
Describes the environment of the system
e.g., use-case diagram

System

Home
Bank

Access
Account
Customer
Competitor
Restock Bank
ATM

Owner
ABM: Product perspective
The ABM network does not work independently. It works
together with the banks’ computers and the software run by
the network’s banks.
•  Communication interface – Each ABM communicates
with a host machine via a dedicated telephone line. At
least three interbank network protocols are supported:
Interact, Plus, Cirrus.
•  Software interface – ABM software will run on Windows
XP. A software component responsible for authenticating
customers is yet to determined.
•  Hardware interface – The software will run on a CPU yet
to be chosen. The input interfaces include a magnetic
and chip card reader to be chosen, and a PIN pad to be
chosen. The output interfaces include a display screen,
a cash dispenser, and a record printer.
ABM: Product perspective
• User interfaces
•  Customer – The customer user interface should be
intuitive, such that 99.9% of all new ABM users are able to
complete their banking transactions without any
assistance.
•  Owner – The owner is responsible for removing deposits
and adding cash to ABMs. There should be a simple
interface (e.g., a switch or button) that they can use to
initialize the ABM whenever they restock; there should be
no learning curve.
•  Maintainer – The maintainer is responsible for adding new
ABMs to the network and servicing existing ABMs. A
maintainer should be possible to add a new ABM to the
network within 1 hour.
Section 2: Overall description
2.2 Product Features
An overview of the system’s main features
• Complete list of “brief” use-case descriptions
• Features will be specified in detail in Section 3
Section 2: Overall description
2.3 User Characteristics
•  Assumptions about the user, their background, how
much training he/she will need
− e.g., different user interfaces for expert vs. novice users

•  Only user characteristics that affect the software


requirements
ABM: User characteristics
• There are several users of the ABM network:
•  Customers are simply members of the general public
with no special training.
•  The owner need have no special education or
experience.
•  Maintainers must be experienced network
administrators, to be able to connect new ABMs to the
host machine and to the interbank networks.
Section 2: Overall description
2.4 General Constraints
Sources of other constraints on requirements
• regulatory policies
• hardware limitations
• parallel operation
• audit functions
• control functions
• criticality of the application
• safety and security considerations
• standards
• laws
Section 2: Overall description
2.5 Assumptions and Dependencies
•  Assumptions about input/environmental behaviour
− hardware never fails
− ABM casing is impenetrable
− limited number of transactions per day (sufficient paper for
receipts)
− limited amount of money withdrawn per day (sufficient
money)

•  Conditions could cause the system to fail


•  Changes to the environment that could lead to
changes in the software requirements
Section 3: Specific requirements
•  Detailed software requirements and specification
3.1 External Interfaces
3.2 Functions
3.3 Performance Requirements
3.4 Design Constraints
3.5 Quality Requirements
Section 3: IEEE organization
3.1 External Interfaces
•  Domain Model
•  Detailed descriptions of all inputs and outputs
•  Name of input (or output)
•  Description of purpose
•  Source of input or destination of output
•  Valid range, accuracy, and/or tolerance
•  Units of measure
•  Timing Relationships to other inputs/outputs
•  Screen formats/organization
•  Window formats/organization
•  Data formats
•  Command formats
Section 3: IEEE organization
3.2 Functional Requirements
•  Use case descriptions (“fully dressed”)
•  Sequence diagrams
•  Functional specifications
•  State machine model
•  Constraints
Section 3: IEEE organization
3.3 Performance requirements
Stated in concrete terms:
− number of terminals to be supported
− number of simultaneous users to be supported
− amount and type of information to be handled
− number of transactions to be processed within a set time period
− normal workload conditions vs. peak workload conditions

3.5 Design constraints


3.6 Quality attributes
Nonfunctional properties (besides performance) expressed
as testable constraints
Appendices
• Glossary: The glossary serves as a central place to
give a brief description of each term (class, attribute,
function, variable).
•  The glossary is a simplified version of what was
previously often called a data dictionary.

• Index: The index maps each important word or phrase


to the numbers of all pages in which it appears. When
combined with the glossary, cross-referencing is easy.
Other Artifacts that Express Requirements
User manual Test plan
DeMarco and McConnell
In Software Project Survival Guide, Steve
McConnell says:
"Prior to placing the prototype under change control,
work can begin on a detailed user documentation (called
the User Manual/ Requirements Specification). This is
the documentation that will eventually be delivered to the
software’s end users. Typically, this documentation is
developed at the end of the project, but in this book’s
approach, it is developed near the beginning."
Lisa and MacIntosh
• It is said that the user manual for the Lisa and
Macintosh computers were written completely
before implementation of their software began.

• The user manuals were given to systems


programmers as the SRS of the user interfaces
(UIs) and of the underlying systems.
Good User Manuals
Without meaning to be formal documentation, good user
manuals have the following elements in common:
•  Lexicon! Descriptions of underlying and fundamental
concepts of the software
•  A good way to organize the lexicon is around the
abstractions identified in the domain model
•  Use Cases! A graduated set of examples each showing
•  a problem situation the user faces
•  some possible user actions to the problem, in the form of
commands to the software
•  the software’s response to these commands
•  Reference Manual! A systematic summary of all the
commands
User Manual vs. SRS
User Manuals SRSs
• Favours users • Favours developers
• Is use-case centric • Is feature/function
centric
• Needs to be created
as part of product • Might not be looked at
after coding starts
• More likely to be kept
up to date • Harder to “cheat” and
handwave over details
• Can be input to test-
case generation
Summary
Software Requirements Specifications (SRS)
•  IEEE standard for organizing an SRS
•  User manual as SRS

You might also like