USDA Funcspecs PDF
USDA Funcspecs PDF
USDA Funcspecs PDF
Prepared for:
TABLE OF CONTENTS
1.0 INTRODUCTION..............................................................................................................1
1.1 Purpose.....................................................................................................................2
1.2 Scope........................................................................................................................2
1.3 Policy .......................................................................................................................2
1.4 System Description ..................................................................................................2
1.5 Points of Contact......................................................................................................2
1.6 Document References ..............................................................................................2
1.7 Glossary ...................................................................................................................2
2.0 ASSUMPTIONS AND CONSTRAINTS .........................................................................3
2.1 Assumptions.............................................................................................................3
2.2 Constraints ...............................................................................................................3
3.0 CONTEXT..........................................................................................................................3
4.0 FUNCTIONAL REQUIREMENTS.................................................................................4
4.1 Functional Process Requirements ............................................................................4
4.1.1 Requirement Statement................................................................................5
4.1.2 Requirement Cross-Identification................................................................5
4.1.3 Process Requirements ..................................................................................6
4.2 Function N............................................................................................................6
5.0 INTERFACE REQUIREMENTS ....................................................................................6
5.1 User Interfaces .........................................................................................................6
5.2 Hardware Interfaces .................................................................................................6
5.3 Software Interfaces ..................................................................................................7
5.4 Communications Interfaces .....................................................................................7
6.0 DATA REQUIREMENTS ................................................................................................7
7.0 OPERATIONAL REQUIREMENTS..............................................................................8
7.1 Security ....................................................................................................................8
7.2 Audit Trail................................................................................................................8
7.3 Data Currency ..........................................................................................................9
7.4 Reliability.................................................................................................................9
7.5 Recoverability ..........................................................................................................9
7.6 System Availability..................................................................................................9
7.7 Fault Tolerance ......................................................................................................10
7.8 General Performance .............................................................................................10
7.9 Capacity .................................................................................................................10
7.10 Data Retention .......................................................................................................10
8.0 USER CLASSES AND MODES OF OPERATION .....................................................10
8.1 Classes/Categories of Users...................................................................................10
8.2 User Classes Mapped to Functional Features ........................................................11
8.3 Operational Scenarios ............................................................................................11
9.0 GUIDELINES FOR REQUIREMENTS DEVELOPMENT.......................................11
9.1 Criteria for Good Requirement ..............................................................................11
1.0 INTRODUCTION
The System Requirements Specification (SRS) is a formal statement of the application functional
and operational requirements. It serves as a contract between the developer and the customer for
whom the system is being developed. The developers agree to provide the capabilities specified.
The client agrees to find the product satisfactory if it provides the capabilities specified in the
SRS.
Sections 1 through 9 describe the contents of the SRS in accordance with the software
development life cycle (SDLC). Section 10 is provided for informational purposes only and
describes the general requirements for generating a Requirements Traceability Matrix (RTM) in
tandem with the SRS. It provides general guidelines for writing requirements. Section 11
provides information on optional Attachments and Appendices.
A brief description of SRS functions, characteristics, and requirements structure includes the
following:
The SRS provides the following functions:
Designing and developing the application system
Evaluating the product in all subsequent phases of the lifecycle
Determining the success of the project
The SRS has the following characteristics:
Demonstrates that the application provides value to FNS in terms of the business
objectives and business processes.
Contains a complete set of requirements for the application.
Is solution independent. The SRS is a statement of what the application is to donot of
how it works. The SRS does not commit the developers to a design. For that reason, any
reference to the use of a specific technology is inappropriate in an SRS, unless the
technology is listed as a system constraint (see Section 2.2).
The SRS provides the following requirements, where a requirement is defined as a condition
the application must meet for the customer to find the application satisfactory. A
requirement has the following characteristics:
Provides a benefit to the organization. That benefit is directly traceable to the business
objectives and business processes of the FNS.
Describes the capabilities the application must provide in business terms.
Does not describe how the application provides that capability.
Does not describe such design considerations as computer hardware, operating system,
and database design.
Is stated in unambiguous words. Its meaning is clear and unmistakable.
Is stated in the positive mode, using the word "shall" (e.g., The system shall. . .). Only
one instance of "shall" is permitted in a paragraph.
System Requirements Specification (SRS) 1 Delivery Date
Project/System Name Contract No. XXXXXXX
Is verifiable.
1.1 Purpose
In this section, provide the purpose this application is intended to serve. Describe the business
objectives and business processes from the Concept of Operations (ConOps) document and the
cost-benefit analysis (CBA) that this application supports.
1.2 Scope
Give a description of the intended scope of the system, how it will accomplish its purpose.
1.3 Policy
Identify FNS policy decisions that affect the conduct of CM on the project.
1.7 Glossary
Include a list of terms, abbreviations, and acronyms used in this document. If the list is longer
than a page, it can be included as an Appendix or Attachment to the SRS. If an attachment or
appendix is used, include a reference to it here.
2.1 Assumptions
State the assumptions associated with development of the system, where assumptions are defined
as future situations, beyond the control of the project, whose outcomes influence the success of a
project. The following are examples of assumptions:
Availability of a hardware/software platform
Pending legislation
Court decisions that have not been rendered
Future trends in immigration and naturalization
Developments in technology
2.2 Constraints
State the constraints associated with the development of the system, where constraints are
defined as conditions outside the control of the project that limit the design alternatives.
Constraints can be broadly categorized as technical and non-technical. The following are
examples of both types of constraints:
Government regulations
Technical standards imposed on the solution (for example, the use of a specific Database
Management System)
Strategic decisions
Distinguish constraints from preferences, as follows:
Constraints exist because of real business conditions. For example, a delivery date is a
constraint only if there are real business consequences that will happen as a result of not
meeting the date. If failing to have the subject application operational by the specified date
places the FNS in legal default, the date is a constraint.
Preferences are arbitrary. For example, a date chosen arbitrarily is a preference. Preferences,
if included in the SRS, should be noted as such.
3.0 CONTEXT
Provide a context diagram of the system, with explanations as applicable. The context of a
system being developed refers to the connections and relationships between the system and the
outside world. Context Diagrams are often used to illustrate these connections and relationships.
Exhibit 1-1 illustrates a generic context diagram. If users interact with this system, user
interfaces must be shown explicitly in the context diagram.
Exhibit 1-1. Generic Context Diagram
Data 1
Data 3
Interface
Interface
Name 1
Name 2
(User) Data 2 Data 4
System/
Application
Name
Data 7
Interface Data 5 Interface
Name 3 Name 4
Data 6 Data 8
Section/
Requirement ID Requirement Definition
4.5.2 Provide Project Planning Capability
SR4.5.2.0* The system shall provide a project planning capability
SR4.5.2.0.1 The system shall allow authorized users to enter project plans and timelines
SR4.5.2.0.2 The system shall allow authorized users to review, change, or update project plans and
timelines
* For this example, F is used to designate a Functional requirement. Other designations could be DF
for Design Feature or STRQ for Stakeholder Request.
Requirement <Label 1> <Label 2> <Label 3> <Label 4> <Label 5>
Number (a) (b) (c) (d) (e)
# Requirement Requirement Requirement Requirement Requirement
Note: Include the letters (a), (b), (c), etc., or (i), (ii), (iii), etc.
4.2 Function N
Provide the requirements for each function of the system, adding subsections (e.g., 4.2, 4.3, etc.)
as needed and as described in Section 4.
Orders Billing
Billing Notice
Clients Client Billing
Details
Information
Returned
Orders Receive Client Info Invoice
Order
Client Cash
Data Inflow Clients
Clients
Order
Information Payments
Product
Orders Ship
Product
Distribution
Information Product
Product Storage
7.1 Security
The Security Section describes the need to control access to the data. This includes controlling
who may view and alter application data. Use the following criteria:
State the consequences of the following breaches of security in the subject application:
Erasure or contamination of application data
Disclosure of Government secrets
Disclosure of privileged information about individuals
State the type(s) of security required. Include the need for the following as appropriate:
State if there is a need to control access to the facility housing the application.
State the need to control access by class of users. For example, No user may access any
part of this application who does not have at least a (specified) clearance.
State the need to control access by data attribute. State, for example, if one group of
users may view an attribute but may not update it while another type of user may update
or view it.
State the need to control access based on system function. State, for example, if there is a
need to grant access to certain system functions to one type of users, but not to others.
For example, "The system shall make Function N available to the System Administrator
only."
State if there is a need for accreditation of the security measures adopted for this
application. For example, C2 protection must be certified by an independent authorized
organization.
7.4 Reliability
Reliability is the probability that the system will be able to process all work correctly and
completely without being aborted. Reliability is evaluated as follows:
State the following in this section:
What damage can result from failure of this system?
Loss of human life
Complete or partial loss of the ability to perform a mission-critical function
Loss of revenue
Loss of employee productivity
What is the minimum acceptable level of reliability?
State required reliability in any of the following ways:
Mean Time Between Failure is the number of time units the system is operable before the
first failure occurs.
Mean Time To Failure is computed as the number of time units before the system is
operable divided by the number of failures during the time period.
Mean Time To Repair is computed as the number of time units required to perform
system repair divided by the number of repairs during the time period.
7.5 Recoverability
Recoverability is the ability to restore function and data in the event of a failure.
Answer the following questions in this section:
In the event the application is unavailable to users (down) because of a system failure, how
soon after the failure is detected must function be restored?
In the event the database is corrupted, to what level of currency must it be restored? For
example The database must be capable of being restored to its condition of no more than
1 hour before the corruption occurred.
If the processing site (hardware, data, and onsite backup) is destroyed, how soon must the
application be able to be restored?
In this section, state the hours (including time zone) during which the application is to be
available to users. For example, The application must be available to users Monday through
Friday between the hours of 6:30 a.m. and 5:30 p.m. EST. If the application must be available
to users in more than one time zone, state the earliest start time and the latest stop time.
Include the times when usage is expected to be at its peak. These are times when system
unavailability is least acceptable.
7.9 Capacity
List the required capacities and expected volumes of data in business terms. For example, state
the number of cases about which the application will have to store data. For example, The
system shall be able to process a projected volume of 600 applications for naturalization per
month. State capacities in terms of the business. Do not state capacities in terms of system
memory requirements or disk space.
9.2 Unambiguous
It has only one interpretation. It avoids technical jargon. If specific technological terms are
required for clarity, they must be defined in the requirement.
9.3 Complete
It contains all information needed to write software for the requirement that is acceptable to the
customer. It does not contain the phrase to be determined (TBD) unless it is accompanied by a
description of the conditions required for its elimination, as well as a specification of who is
responsible for its elimination.
9.4 Correct
It adequately reflects the desired software function and performance.
9.5 Consistent
It does not conflict with other requirements within the same system or related systems. It agrees
with requirements defined in higher-level system documentation.
9.6 Verifiable
It can be tested and confirmed.
9.7 Appropriate
It adds value to an organization by improving its process. It is within the scope of the current
statement of work.
9.9 Achievable
It can be implemented within project time and budget constraints using available technology.
9.11 Concise
It describes a single need. It is as short as possible without adversely impacting
understandability.
Note: An initial RTM shall be provided in the SRS. The final RTM will be provided as a
standalone document. See Section 11.