Requirements document structure

Download Report

Transcript Requirements document structure

CO2401 Software Development
• Teaching structure
– Lecture
– Labs
• Assessment
– Assignment 50%
– Exam 50%
CO2401 Software Development
•
•
•
•
•
•
•
•
Project Lifecycle
Requirements
HCI & GUI
Design
Code
Testing
Quality
Evaluation
Objectives
1. To introduce the idea of system requirements
and the requirements engineering process for
software systems
2. To explain how requirements engineering fits
into a broader system engineering process
3. To explain the importance of the system
requirements document (SRS)
Software systems
Computer systems fall into two broad categories
•
User-configured systems where a purchaser puts
together a system from existing software products
•
Custom systems where a customer produces a set of
requirements for hardware/software system and a
contractor delivers that system
Software systems (continued)
Classes of custom systems
•
•
•
Information systems
Primarily concerned with processing information
Embedded systems
Systems where software is used as a controller in a
hardware system (e.g. video camera)
Command and control systems
A combination of information systems and embedded
systems where special purpose computers provide
information which is collected and stored and used to
make decisions
Terminology
•
System requirements
Define what the system is required to do and constraints under
which it will be required to operate
•
Requirements engineering
The structured set of activities involved in developing system
requirements (are accountable for approx 15% of system
development costs)
•
Requirements document
The formal statement of system requirements
•
System stakeholders
Anyone affected by the system
•
Requirements management
The processes involved in making changes to requirements
Requirements document structure
IEEE/ANSI 830-1993 standard recommended
structure for software requirements documents
1 Introduction
1.1
1.2
1.3
1.4
1.5
Purpose of document
Scope of the product
Definitions, acronyms and abbreviations
References
Overview of the remainder of the document
Requirements document structure
2 General description
2.1
2.2
2.3
2.4
2.5
2.6
Product perspective
Product functions
User characteristics
General constraints
Assumptions and dependencies
Apportioning of requirements
3 Specific requirements
- Covering functional, non-functional and interface requirements
4 Appendices
5 Index
Requirements document structure
1 Introduction
1.1 Purpose
This sub-section should
– Describe the purpose of the SRS
– Specify the intended audience of the SRS
Requirements document structure
1 Introduction
1.2 Scope
This sub-section should
–
Identify the software product(s) to be produced by name
–
Explain what the software product(s) will do and not do
–
Describe the application of the software including benefits,
objectives and goals
–
Be consistent with higher level specifications if they exist
Requirements document structure
1 Introduction
1.3 Definitions, acronyms and abbreviations
This sub-section should
–
Provide the definitions of all terms a complete list
of all terms, acronyms and abbreviations required
to properly interpret the SRS
–
This information may be provided by reference to
one or more appendixes in the SRS or reference to
other documents
Requirements document structure
1. Introduction
1.4 References
This sub-section should
– Provide a complete list of documents referenced
elsewhere in the SRS
– Identify each document by title, report number (if
applicable), date and publishing organisation
– Specify the sources from which the references can be
obtained
Requirements document structure
1. Introduction
1.5 Overview
This sub-section should
–
Describe what the rest of the SRS should contain
–
Explain how the SRS is organised
Requirements document structure
2
General description
2.1
2.2
2.3
2.4
2.5
2.6
3
Product perspective
Product functions
User characteristics
General constraints
Assumptions and dependencies
Apportioning of requirements
Specific requirements
- Covering functional, non-functional and interface requirements
4
5
Appendices
Index
Requirements document structure
2. General description
2.1 Product perspective
This sub-section should
•
Put the product in perspective with other related products
•
If the product is totally self-contained it should be stated here.
•
If the product is a component of a larger system, functionality of
the software to the requirements of the larger system should be
stated and interfaces between the two systems should be stated.
Block diagrams may be useful for showing components and
interfaces of two systems.
Requirements document structure
2. General description
2.1 Product perspective (continued)
This sub-section should also describe how the software operates
inside various constraints. For example, these could include:
•
•
•
•
•
•
•
•
System interfaces
User interfaces
Hardware interfaces
Software interfaces
Communication interfaces
Memory
Operations
Site adaptation requirements
Requirements document structure
2. General description
2.2 Product functions
This sub-section provides a summary of the major functions that
the software will perform. For example, and SRS for an
accounting program may use this part to address customer
account maintenance, customer statement and invoice
preparation.
For the sake of clarity:
•
•
The functions should be organised in a way that makes them
understandable to anyone reading the document
Textual or graphical methods can be used to show the functions and
their relationships. Such a diagram is not intended to show a
design of the product, but simply shows the logical relationships
among variables.
Requirements document structure
2. General description
2.3 Constraints
This sub-section should provide a general description of any
other items that will limit the developers options. These include:
•
•
•
•
•
•
Regulatory policies
Hardware limitations
Interfaces to other applications
Reliability requirements
Criticality of the application
Safety and security considerations
Requirements document structure
2. General description
2.4 Assumptions and dependencies
This sub-section should list each of the factors that affect the
requirements stated in the SRS.provide a general description of
any other items that will limit the developers options. These
include:
•
•
•
•
•
•
Regulatory policies
Hardware limitations
Interfaces to other applications
Reliability requirements
Criticality of the application
Safety and security considerations
Requirements document structure
2. General description
2.5 Apportioning of requirements
This sub-section should identify requirements
that may be delayed until future versions of
the system
Requirements document structure
3. Specific requirements
This section of the SRS should contain all the
software requirements to a level of detail
sufficient to enable designers to design a
system to satisfy those requirements, and
testers to test that the system satisfies those
requirements.
Requirements document structure
3. Specific requirements (continued)
These requirements should include at a
minimum a description of every input (stimulus)
into the system, every output (response) from
the system, and all functions performed by the
system in response to an input or in support of
an output.
Requirements document structure
3. Specific requirements
As this is often the largest and most important part of the
SRS, the following principles apply:
a)
b)
c)
d)
Specific requirements should be stated in conformance with all
the characteristics described in the section titled “Characteristics
of a good SRS”
Specific requirements should be cross-referenced to earlier
documents that relate
All requirements should be uniquely identifiable
Careful attention should be given to organising the requirements
to maximise readability
Requirements document structure
3. Specific requirements
The items that compromise requirements are:
3.1
3.2
3.3
3.4
3.5
3.6
3.7
External interfaces
Functions
Performance requirements
Logical database requirements
Design constraints
Software system attributes
Organising the specific requirements
Requirements document structure
3. Specific requirements
3.1 External interfaces
This part should contain a detailed description of all
inputs into and outputs from the software system.
It should complement the interface descriptions from
section 2 of the document and should not repeat the
information from there
Requirements document structure
3. Specific requirements
3.1 External interfaces (continued)
This part should include both content and format as follows:
a) Name of item
b) Description of purpose
c) Source of input or destination of output
d) Valid range, accuracy and/or tolerance
e) Units of measure
f) Timing
Requirements document structure
3. Specific requirements
3.1 External interfaces (continued)
g)
h)
i)
j)
k)
l)
Relationships to other inputs/outputs
Screen formats/organisation
Window formats/organisation
Data formats
Command formats
End messages
Requirements document structure
3. Specific requirements
3.2 Functions
Functional requirements should define the fundamental
actions that must take place in the software in accepting
and processing the inputs and and in processing and
generating the outputs.
Functional requirements are generally listed as “shall”
statements starting with “The system shall…”
Requirements document structure
3. Specific requirements
3.2 Functions (continued)
Functional requirements include:
a)
b)
c)
d)
e)
Validity checks on the inputs
Exact sequence of operations
Responses to abnormal situations (e.g., overflow,
communication facilities, error handling and recovery)
Effect of parameters
Relationship of inputs to outputs, including
i.
ii.
Input/output sequences
Formulas for input to output conversion
Requirements document structure
3. Specific requirements
3.3 Performance requirements
This subsection should specify both the static and
dynamic numerical requirements placed on the software
or on the human interaction with the software as a
whole.
Static numerical requirements are sometimes identified
under a separate section titled “Capacity”
Requirements document structure
3. Specific requirements
3.3 Performance requirements (continued)
Static numerical requirements may include the
following:
a)
b)
c)
The number of terminals to be supported
The number of simultaneous users to be supported
Amount and type of information to be handled
Requirements document structure
3. Specific requirements
3.3 Performance requirements (continued)
Dynamic numerical requirements may include the
following:
a)
b)
The numbers of transactions and tasks
The amount of data to be processed within certain time periods
for both normal and peak workload conditions
Requirements document structure
3.
Specific requirements
3.3 Performance requirements (continued)
All performance requirements should be stated in measurable terms:
For example:
95% of the transactions shall be processed in less than one second
Rather than:
An operator shall not have to wait for the transaction to complete
Note: Numerical limits applied to one specific function are normally
specified as part of the processing subparagraph description of that
function
Requirements document structure
3. Specific requirements
3.4 Logical database requirements
This part should specify the logical requirements for any
information that is to be placed in a database. This may include the
following:
a) Types of information used by various functions
b) Frequency of use
c) Accessing capabilities
d) Data entities and their relationships
e) Integrity constraints
f) Data retention requirements
Requirements document structure
3. Specific requirements
3.5 Design constraints
This part should specify design constraints that can be imposed by other
standards, hardware limitations etc
3.5.1 Standards compliance
The standards section should specify the requirements derived from existing
standards or regulations. They may include the following:
a)
Report format
b)
Data naming
c)
Accounting procedures
d)
Audit tracing
e.g. this could specify a requirement for software to trace processing activity
Requirements document structure
3. Specific requirements
3.6 Software system attributes
There are a number of attributes of software that can serve as requirements.
It is important that required attributes can be specified so that their
achievement can be verified. The following is a partial list of examples:
3.6.1 Reliability
3.6.2 Availability
3.6.3 Security
3.6.4 Maintainability
3.6.5 Portability
Requirements document structure
3. Specific requirements
3.6 Software system attributes
3.6.1 Reliability
Should specify the factors required to establish the required
reliability of the software system at the time of delivery
3.6.2 Availability
Should specify the factors required to guarantee a defined
availability level for the entire system such as checkpoint,
recovery and restart
Requirements document structure
3. Specific requirements
3.6 Software system attributes
3.6.3 Security
Should specify the factors that protect the software from accidental or
malicious access, use, modification, destruction, or disclosure. Specific
requirements in this area could include the need to:
a)
b)
c)
d)
e)
Utilise certain cryptographical techniques
Keep specific log or history data sets
Assign certain functions to different modules
Restrict communications between some areas of the program
Check data integrity for critical variables
Requirements document structure
3. Specific requirements
3.6 Software system attributes
3.6.4 Maintainability
Should specify attributes of software that relate to the ease of
maintenance of the software itself. There may be some
requirement for certain modularity, interfaces, complexity etc
Note: Requirements should not be placed her because just
because they are thought to be good design practises
Requirements document structure
3. Specific requirements
3.6 Software system attributes
3.6.5 Portability
Should specify attributes of software that relate to the ease of porting
the software to other host machines and/or operating systems. This
may include the following:
a)
b)
c)
d)
e)
Percentage of components with host dependant code
Percentage of code that is host dependant
Use of a proven portable language
Use of a particular compiler or language subset
Use of a particular operating system
Requirements document structure
3. Specific requirements
3.6 Software system attributes
3.6.5 Portability
Should specify attributes of software that relate to the ease of porting
the software to other host machines and/or operating systems. This
may include the following:
a)
b)
c)
d)
e)
Percentage of components with host dependant code
Percentage of code that is host dependant
Use of a proven portable language
Use of a particular compiler or language subset
Use of a particular operating system
Requirements document structure
3. Specific requirements
3.7 Organising the specific requirements
For anything but trivial systems the detailed
requirements tend to be extensive. For this reason, it is
recommended that careful consideration is given to
organising these in manner optimal to understanding.
There is no one optimal organisational for all systems.
Different classes of systems lend themselves to different
organisations of requirements in section 3 of the SRS.