Software Requirements Specification Document

Software Requirements Specification (SRS)

IEEE Std 830 is a "recommended practice" for software requirements specification documents.

The IEEE has a different standard for a "Software Requirements Document" (SRD), which is IEEE/EAI 12207.1-1997. If you look in the table at the back of IEEE Std 830-1998 you will see the cross reference tables in Appendix B, showing that these are consistent with one another.

Standards are periodically updated, so there are several versions of IEE STd 830, including IEEE Std 830-1983, -1993, and -1998. These standards also allow some room for discretion. It therefore follows that you may see several different suggested table of contents outlines for SRS documents purporting to be based on this standard.

The IEEE holds the copyright to these documents and sells copies to support its operations. However, you can find copies on the Web. I found one by Googling "IEEE STD 830 pdf": http://cs.uwlax.edu/~riley/CS741Sum10/Examples/830-1998IEEE.pdf.

Table of Contents

The following is on example of an outline for an SRS.

1.  Introduction
      1.1 Purpose
      1.2 Scope
      1.3 Definition, Acronyms, or Abbreviations
      1.4 References
      1.5 Overview
2.  General Description
      2.1  Product Perspective
      2.2  Product Functions
      2.3  User Characteristics
      2.4  General Constraints
      2.5  Assumptions
3.  Specific Requirements
3.1  Functional Requirements
      3.2  Interface Requirements
      3.3  Data Requirements
      3.4  Behavioral Requirements
      3.5  Design Constraints
      3.6  Standard Compliance
      3.7  Environmental Definition
      3.8  HCI

System Requirements Specification

*

SRS Characteristics

SRS

Section One
Overview document for executives describing the system from a management perspective
Section Two
General Description describing the system from a user and system perspective in general terms
Section Three
Detail document for users and developers describing the system in detail terms

Section 1 - Overview

Small examples of each part are set in italic font.

1.1 Purpose

The Purpose section states the goals and objectives of the system. Goals have to do with the general purpose of a system. Goals are fuzzy and non measurable. Goals are decomposed into objectives. Objectives are finite and measurable. You know when you reach them.

example:

The goal of this project is to reduce the time and lines for students receiving financial aid. Objectives are to automatically verify financial aid request for correctness and completeness, track request within FSU, allow on-line access for students to the department of education, allow on-line notification of problems to students for quick correction, and ...
The benefits of this project are increased student moral... (tangible..., intangible...)

1.2 Scope

The Scope section defines the boundaries of a system. These include what is inside the system - what will be designed and programmed.

example:

The scope of this project includes initiation of financial aid, verification of aid packet, tracking of request within FSU, access to DOE tracking, ...
The resulting products of this project include on-line tracking screens, on-line student verification and notification, ... (generally not individual I/O)
The people involved in this project include (names and titles) ... The production of this document was done by ...

1.3 Definition, Acronyms, or Abbreviations

As you begin to define a system, you will encounter words which need definitions and general usage acronyms. These should be documented for new personnel and for clarity of all concerned parties.

example:

FSU - Florida State University
CS - Computer Science
MSES - Masters in Software Engineering Science
DOE - Department of Education
...

1.4 References

example:

Many references may be used to define existing systems, procedures (both new and old), documents and their requirements, previous system endeavors. These references are listed here for others.

example:

DOE document #DOE4564 -Description of DOE Tracking System ...

1.5 Overview

The Overviw section defines the organization of the entire document. It will lay the framework for reading the document.

example:

The remainder of this document is organized as follows. Section 2 describes the ... and explains ... . Section 3 discusses ... and specifies ... . ...

Section 2 - General Description

2.1 Product perspective

example:

This product ... will be the responsibility of the XXX group within the organization. It will do the reporting for the four xxx departments. It serves as a xxx vendor invoicing sytem for the xxx accounting system xxx. It interfaces with the xxx organization and xxx financial system ...

We estimate it will add xxx number of transactions on the PC systems in the district offices and xxx number of transactions on the mainframe during peak hours of daily processing. It will add 2 hours of batch processing in the evening.

The environment of the system includes ORACLE database, Unix operating system, TCPIP communication system.

2.2 Product Functions

This section lists the major functions of the system. James Martin documented the major business functions of all business in his technique on Information Strategy. These include items such as accounts receivable, accounts payable, sales, administration, etc. In this section you should note which major business function is impacted and the minor functions. The section decomposes the function until a verb is encountered to name the processes of the functions.

This section also includes the "shall list", which specifies what the system should do. Each item in the list is a statement of the form "The system shall ...".

example:

This product builds a system under the major business function of financial management. It is under the sub-function of accounts receivable. It includes the process named issue bills.
The system shall:

accept charges to a persons account.
accept payments to a persons account.
report amount of charges per month, year, and location.
report amount of payments per month, year.
bill persons for amount due, over 30, over 60, and over 90.
adjust accounts.
...

2.3 User characteristics

example:

The users of this system include the business clerks who make charges to a person's bill, the data entry operators who make payments to the bill, the administrators at the district offices who make inquiries against a patient's bill, the managers who review the reports monthly, and the accountants who make adjustments.

The clerks will use an automated credit card debit machine and will be trained on this type of equipment. The data entry operators will use a key to disk machines. The administrators will use a PC intelligent terminal. The managers will use Excel type reporting. The accountants will use a PC intelligent terminal.

2.4 General Constraints

In this section, the constraints of the system are listed. They include hardware, network, system software, and software constraints. It also includes user constraints, processing constraints, timing constraints, and control limits.

example:

The constraints of this system include the following:

...

2.5 Assumptions

This includes assumptions made at the beginning of the development effort as well as those made during the development.

example:

The assumptions are that:

Software Specification Tools - Data Dictionary

Data Dictionary Entry Components

Names may be overloaded, but there must be only one entry with the same name and type.

DeMarco Notation

Can be used to specify items in data dictionary

... = ... is composed of
... +...  and
[ ... / ... ] either/or
{ ... }n repetitions (n times)
( ... ) optional
* ... * comment

This is reminiscent of regular expressions, but what are the differences?

Data Dictionary Entries

should include:

Overloading names is OK, but there should be ONLY ONE entry with the same name AND type.

Example of composition using DeMarco:

SRF = student SSN + student name (student address + classification) + {class information}

class information = class prefix + class number + section number + reference number + (building number + room number)

SRF = student registration file entry

Section 3 - Specific Requirements

Small examples are given for the various subsections.

3.1 Functional Requirements

example of Data Dictionary for shall list:

The system shall allow displaying of student data.
Item NameTypeDescription
1.1shallThe system shall allow editing of data.
1.2shallThe system shall allow saving of needed data.
1.3shallThe system shall allow displaying of data.
1.3.1shall

3.2 Interface Requirements

3.2.1 Interface Requirement Example - Book Order Form

*

Data Dictionary for Interface

example:

Item NameTypeDescriptonConstraintsEnvironment SecurityComposition
BookOrderForminput ScreenThis screen allows input of an order for book(s).noneWeb nonecustomerNumberLabel + customerNumberTextfield + booksListLabel + booksList + submitButton + cancelButton

Data Dictionary for Interface (the elements)

example:

Data Dictionary for Interface (the elements)

example:

Item NameTypeDescripton...ConstraintsEnvironmentSecurity
booksListBoxListBox20x100, 3 entries noneWebnone
booksListBoxLabelLabel"Which of these books have you read?" noneWebnone
bookNameString(20)Name of a book noneWebnone
cancelButtonButtonButton to cancel entry of screen noneWebnone
customerNumberInteger(4)Number assigned to a customer upon their first order through the customer entry screen noneWebnone
customerNumberLabelString"Customer Number:" noneWebnone
customerNumberTextfieldTextfieldTextfield allowing entry of customer number noneWebnone
submitButtonButtonButton to submit data from the screen noneWebnone

Another example of elements of a student screen

Item NameType...Composition or Definition
studentAddrComposite...studentAddrStreet + studentAddrSecondLine + studentAddrCity + studentAddrState + studentAddrZip
studentAddrZipLong Int (5)...student US zip code
studentAddrZipExtendedInt (4)...student US zip extension
studentFirstNameString...20 characters
studentNameComposite...studentNameFirst + studentNameMiddle + studentNameLast

3.3 Data Requirements

Entity Relationship Diagram

example ER diagram

The above example of an ERD is reproduced from a tutorial on ERDs at http://infocom.cqu.edu.au/Courses/spr2000/95169/Extra_Examples/ERD.htm.

Entity Relationship Attribute Diagram

*

The above is another example of an ERD, reproduced from a tutorial on ERDs at http://www.smartdraw.com/resources/centers/software/erd.htm. It includes attributes.

There are several other styles of of ERDs. For example, Visio (TM) omits the diamongs for the relationship names.

ER Data Dictionary

example:

Item NameTypeDescriptonConstraintsEnvironment SecurityComposition
StudentEntityA student, alumnus, or applicant.noneClient SideOnly Admission Department personnel ssn + studentName + studentAddr + studentYearEntered + ...

3.4 Behavior Requirements

Use Case Diagrams

use case diagram

The above example of a use case diagram is reproduced from http://community.borland.com/article/0,1410,30166,00.htm.

For more detail see the notes on use case requirements elicitation and diagrams in the Chapter 10 notes.

Sequence (Event Trace) Diagrams

sequence diagram

The above diagram is reproduced from http://www.math-cs.gordon.edu/local/courses/cs211/ATMExample/Interactions.html.

Data Dictionary for Use Cases

example:

Item NameTypeConstraintsEnvironmentSecurity Composition or DefinitionSiteShall Link
Entry of Admission Student UseCasenoneClient SideOnly Admissions Department Personnelssn + studentName + studentAddr + studentYearEntered + ...all1.5

Class Diagrams

UML class diagram example

The above example of a UML class diagram is reproduced from a very nice tutorial on UML on the web, at http://www.togethersoft.com/services/practical_guides/umlonlinecourse/.

UML class diagram example

The above is another example, which can be found at http://www.smartdraw.com/resources/examples/software/uml8.htm.

Another of many tutorials on class diagrams that can be found on the web is http://www.agilemodeling.com/artifacts/classDiagram.htm

Another tutorial on UML diagrams, including class diagrams, can be found at http://cs.haifa.ac.il/courses/prog_tech/Clect/UML.pdf

See also http://www.jeckle.de/files/uniproc.pdf notes on the Unified Process Model by Ivar Jacobson.

Class Dictionary

example:

Item NameTypeConstraintsEnvironmentSecurity Composition or Definition...
StudentClassnoneServer SideOnly Admissions Department personnelTBA...

Process Diagrams

Several kinds of diagrams may be useful in modeling the interactions of the system to be built with its users and other entities in its environment.

Some of these same diagrams may be useful later, in the design phase, to model the functions and interactions of the components into which the design has decomposed the system.

Data Flow Diagram

See also the Chapter 12 notes on DFDs.

In a requirements specification, only the top level DFD would ordinarily be included. This is sometimes called a Context Diagram.

*

The above diagram is reproduced from http://wiki.cs.uiuc.edu/SEcourse/PAS%3A+Data+Flow+Diagram+-+0+Level<.

Data Flow Diagram

*

The above example of a more complex flowchart-type control-flow process diagram is reproduced from http://sunset.usc.edu/research/reference_architecture/toc_main.html, and example of a "Software Architecture Specification" document. That is a different type of document, but it serves as an example of this type of diagram, while also illustrating that DFDs can be used on more than one context.

See also http://www.agilemodeling.com/artifacts/dataFlowDiagram.htm

A tutorial on data flow diagrams can be found at http://www.smartdraw.com/resources/centers/software/dfd2.htm.

Control Flow Diagram

*

The above example of a flowchart-type control-flow process diagram is reproduced from http://www22.verizon.com/wholesale/local/order/wsg_lo_prcdiagram/0,19414,,00.html.

*

The diagram above is reproduced from tutorial at http://government.popkin.com/methods/idef.htm.

*

The diagram above is reproduced from overview of tutorial on IDEF3 and other IDEF standards at http://www.idef.com/default.html.

See also IDEF0, e.g., the tutorial at http://www.campbell.berry.edu/faculty/jgrout/idef0/ and the actual NIST standard at http://www.itl.nist.gov/fipspubs/idef02.doc.

State Charts

State diagrams or state charts are also used to describe processes.

See also the notes on statecharts in the Chapter 12 notes.

UML Object Diagram for Comm. Controller

*

UML State Chart Detail for Send_Transaction

*

UML State Chart Detail for Receive_Transaction

*

More Complex UML State Chart, With Nested States

*

The above figures are from a tutorial on state charts at http://www.embedded.com/1999/9901/9901feat1.htm.

The tutorial seems to have borrowed in turn from http://www-md.e-technik.uni-rostock.de/ma/gol/ilogix/umlsct.pdf or http://www.frc.ri.cmu.edu/~dsw/realtime/readings/Douglass99.pdf..