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.
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
Small examples of each part are set in italic font.
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...)
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
...
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
...
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 ...
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 ... . ...
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.
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.
...
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.
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:
The hardware must be secured from any internet access.
...
The software must be:
DB2 database on mainframe and PC
Audit functions include the State Audit Control Board.
MVS operating system on the mainframe
Windows NT on PC's
TCPIP for PC communications
SNA Network
Batch processing must be limited to 2 hours during evening.
On-line processing must not impact the current schedule.
This includes assumptions made at the beginning of the development effort as well as those made during the development.
example:
The assumptions are that:
This system will not need any more or less personnel.
All existing personnel are trainable.
...
Names may be overloaded, but there must be only one entry with the same name and type.
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?
should include:
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
Small examples are given for the various subsections.
example of Data Dictionary for shall list:
Item Name | Type | Description |
---|---|---|
1.1 | shall | The system shall allow editing of data. |
1.2 | shall | The system shall allow saving of needed data. |
1.3 | shall | The system shall allow displaying of data. |
1.3.1 | shall | The system shall allow displaying of student data.
3.2.1 Interface Requirement Example - Book Order Form
example:
Item Name | Type | Descripton | Constraints | Environment | Security | Composition | BookOrderForm | input Screen | This screen allows input of an order for book(s). | none | Web | none | customerNumberLabel + customerNumberTextfield + booksListLabel + booksList + submitButton + cancelButton |
---|
example:
example:
Item Name | Type | Descripton | ... | Constraints | Environment | Security |
---|---|---|---|---|---|---|
booksListBox | ListBox | 20x100, 3 entries | none | Web | none | |
booksListBoxLabel | Label | "Which of these books have you read?" | none | Web | none | |
bookName | String(20) | Name of a book | none | Web | none | |
cancelButton | Button | Button to cancel entry of screen | none | Web | none | |
customerNumber | Integer(4) | Number assigned to a customer upon their first order through the customer entry screen | none | Web | none | |
customerNumberLabel | String | "Customer Number:" | none | Web | none | |
customerNumberTextfield | Textfield | Textfield allowing entry of customer number | none | Web | none | |
submitButton | Button | Button to submit data from the screen | none | Web | none |
Item Name | Type | ... | Composition or Definition |
---|---|---|---|
studentAddr | Composite | ... | studentAddrStreet + studentAddrSecondLine + studentAddrCity + studentAddrState + studentAddrZip |
studentAddrZip | Long Int (5) | ... | student US zip code |
studentAddrZipExtended | Int (4) | ... | student US zip extension |
studentFirstName | String | ... | 20 characters |
studentName | Composite | ... | studentNameFirst + studentNameMiddle + studentNameLast |
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.
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.
example:
Item Name | Type | Descripton | Constraints | Environment | Security | Composition |
---|---|---|---|---|---|---|
Student | Entity | A student, alumnus, or applicant. | none | Client Side | Only Admission Department personnel | ssn + studentName + studentAddr + studentYearEntered + ... |
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.
The above diagram is reproduced from http://www.math-cs.gordon.edu/local/courses/cs211/ATMExample/Interactions.html.
example:
Item Name | Type | Constraints | Environment | Security | Composition or Definition | Site | Shall Link |
---|---|---|---|---|---|---|---|
Entry of Admission Student | UseCase | none | Client Side | Only Admissions Department Personnel | ssn + studentName + studentAddr + studentYearEntered + ... | all | 1.5 |
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/.
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.
example:
Item Name | Type | Constraints | Environment | Security | Composition or Definition | ... |
---|---|---|---|---|---|---|
Student | Class | none | Server Side | Only Admissions Department personnel | TBA | ... |
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.
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<.
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.
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 diagrams or state charts are also used to describe processes.
See also the notes on statecharts in the Chapter 12 notes.
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..