SyRS
System Requirements Specification
(sometimes combined with the StRS (29148 8.3.1 Note 1) or BRS (Note 2))
Introduction
From SWEBOK Ch. 1 Section 5.2
Developers of systems with substantial software and nonsoftware components—a modern airliner, for example—often separate the description of system requirements from the description of software requirements. In this view, system requirements are specified, the software requirements are derived from the system requirements, and then the requirements for the software components are specified. Strictly speaking, system requirements specification is a systems engineering activity and falls outside the scope of this Guide.
From 29148:2011 Section 8.3
The System Requirements Specification (SyRS) identifies the technical specifications for the selected system-of-interest and usability for the envisaged human-system interaction. It defines the high-level system requirements from the domain perspective, along with background information about the overall objectives for the system, its target environment and a statement of the constraints, assumptions and non-functional requirements. It may include conceptual models designed to illustrate the system context, usage scenarios, the principal domain entities, data, information and workflows.
The purpose of the SyRS is to provide a description of what the system should do, in terms of the system's interactions or interfaces with its external environment. The SyRS should completely describe all inputs, outputs, and required relationships between inputs and outputs. A SyRS has traditionally been viewed as a document that communicates the requirements of the acquirer to the technical community who will specify and build the system. The collection of requirements that constitutes the specification and its representation acts as the bridge between the two groups and needs to be understandable by both the acquirer and the technical community. One of the most difficult tasks in the creation of a system is that of communicating to all of the subgroups within both groups, especially in one document. This type of communication generally requires different formalisms and languages.
This International Standard suggests a distinction between this structured collection of information and the way in which it is presented to its various audiences. The presentation of the SyRS should take a form that is appropriate for its intended use. This can be a paper document, models, prototypes, other non-paper document representations, or any combination. All of these representations can be derived from this one SyRS to meet the needs of a specific audience. However, care should be taken to ensure that each of these presentations is traceable to a common source of system requirements information. The audience should be made aware that this structured collection of information remains the one definitive source for resolving ambiguities in the particular presentation chosen.
This International Standard also makes a clear distinction between the system requirements (what the system shall do) contained in the SyRS and process requirements (how to construct the system) that should be contained in contract documents such as a Statement of Work.
The SyRS presents the results of the definition of need, the system operational concept, and the system requirements analysis tasks. As such, it is a description of what the system's acquirers expect it to do for them, the system's expected environment, the system's usage profile, performance parameters, expected quality and effectiveness, and verification activities.
Key Resources
Required Reading
System Requirements sebokwiki
29148:2011 Sections 6, 8.3 and 9.4
15288:2015 6.4.3 System requirements definition process
MITRE Systems Engineering Guide: Analyzing and Defining Requirements - pages 314-318.
Other Resources
How to Write the System Requirements Specification for Software Development dzone
Example from Lockheed Martin (PDF) - associated ConOps (PDF)
Example Outline with More Information
"The specific requirements section of a SyRS should be organized such that a consensus of the stakeholders agrees that the organization method aids understanding of the requirements. There is no one optimal organization for all projects."
1. Introduction
Identify who made the document, whom it was made for, the date, version, etc.
1.1 System purpose
Define the reason(s) for which the system is being developed or modified.
Address business value.
1.2 System scope
Define the scope of the system under consideration by
a) Identifying the system to be produced by name.
b) Referring to and stating the results of the earlier finalized needs analysis, in the form of a brief but clear expression of the user's problem(s). It explains what the system will and will not do to satisfy those needs.
c) Describing the application of the system being specified. As a portion of this, it should describe all relevant top level benefits, objectives, and goals as precisely as possible.
What does it do and not do?
1.3 System overview
This can just be a heading for the sections below or contain a brief introduction.
1.3.1 System context
Describe at a general level the major elements of the system, to include human elements, and how they interact. The system overview includes appropriate diagrams and narrative to provide the context of the system, defining all significant interfaces crossing the system's boundaries.
Good place for context diagram.
1.3.2 System functions
Describe major system capabilities, conditions and constraints.
1.3.3 User characteristics
Identify each type of user/operator/maintainer of the system (by function, location, type of device), the number in each group, and the nature of their use of the system.
NOTE: Where appropriate, the user characteristics of the SyRS and SRS should be consistent.
Good place for Use Cases and Use Case Diagram.
1.4 Definitions
Provide a list of terms and abbreviations that are used in a specific way within your document and their meaning, similar to the definitions section in the IEEE Standard. Add to this list as you continue developing the SyRS.
2. References
Similar to a Works Cited. Identify where you got the information that you used to make the SyRS, such as a link to the business mission statement. Add to this section as you develop the SyRS. Can just be a list. Should reference ConOps.
3. System requirements
This can just be a heading for the sections below or brief introduction such as "This section provides the high-level requirements for the Core System, i.e. "What the system shall do". They are organized by the types of requirements and are related to the Needs identified in the ConOps." (from Lockheed example)
3.1 Functional requirements
Define functional requirements applicable to system operation.
The most important section.
Identify actionable behaviors. Describe qualitatively the system functions or tasks to be performed in operation. (sebokwiki)
Use resources on Requirements Specification and Documentation page
3.2 Usability requirements
Define usability (quality in use) requirements. Usability requirements and objectives for the system include measurable effectiveness, efficiency, and satisfaction criteria in specific contexts of use.
From usabilityfirst: An interface should be easy to learn how to use and easy to remember how to use. The latter pertains especially to devices that require infrequent use. Users should not be required to consult a manual each time they need to use a kitchen blender for instance. Bank ATMs and web-based forms, which may be used by anyone, should be simple to use the first time around without instructions.
Usability Requirements for an interface design should support the following from the perspective of its primary users:
Efficiency of use: goals are easy to accomplish quickly and with few or no user errors
Intuitiveness: the interface is easy to learn and navigate; buttons, headings, and help/error messages are simple to understand
Low perceived workload: the interface appears easy to use, rather than intimidating, demanding and frustrating
11 Examples of Usability Requirements - For example, the requirement that 95% of customers rate a tool as fun to use.
3.3 Performance requirements
Define the critical performance conditions and their associated capabilities by including such considerations as
a) Dynamic actions or changes that occur (e.g., rates, velocities, movements, and noise levels).
b) Quantitative criteria covering endurance capabilities of the equipment required to meet the user needs under stipulated environmental and other conditions, including minimum total life expectancy. Indicate required operational session duration and planned utilization rate.
c) Performance requirements for the operational phases and modes.
Define quantitatively the extent, or how well, and under what conditions a function or task is to be performed (e.g. rates, velocities). These are quantitative requirements of system performance and are verifiable individually. Note that there may be more than one performance requirement associated with a single function, functional requirement, or task. (sebokwiki)
How to write Performance Requirements with Example
3.4 System interfaces
Specify requirements for interfaces among system elements and with external entities. Interfaces among system elements should include interfaces with the human element. Interfaces with external entities should include other systems.
Define any interdependencies or constraints associated with the interfaces (e.g., communication protocols, special devices, standards, fixed formats). Each interface may represent a bidirectional flow of information.
A graphic representation of the interfaces can be used when appropriate for the sake of clarity.
Define how the system is required to interact or to exchange material, energy, or information with external systems (external interface), or how system elements within the system, including human elements, interact with each other (internal interface). Interface requirements include physical connections (physical interfaces) with external systems or internal system elements supporting interactions or exchanges. (sebokwiki)
Interfaces may have been identified in the StRS section 4.1 and in the Context Diagram.
From Everything you wanted to know about interfaces, but were afraid to ask - Requirements Experts
“[System 1] shall [interact] with [System 2] [as defined in or having the characteristics shown in] [the document that defines the interface].” “[System 2] shall [interact] with [System 1] [as defined in or having the characteristics shown in] [the document that defines the interface].”
3.5 System operations
Heading
3.5.1 Human system integration requirements
Reference applicable documents and specify any special or unique requirements, e.g., constraints on allocation of functions to personnel and communications and personnel/equipment interactions.
Define any specific areas, stations, or equipment that would require concentrated human engineering attention due to the sensitivity of the operation or criticality of the task (i.e., those areas where the effects of human error would be particularly serious).
NOTE ISO 18529, Ergonomics — Ergonomics of human-system interaction — Human-centred lifecycle process descriptions, contains a formalized model that can be used in the specification, assessment and improvement of the human-centered processes in system development and operation.
Human Systems Integration Requirements Pocket Guide Air Force
3.5.2 Maintainability
Specify the quantitative maintainability requirements that apply to maintenance in the planned maintenance and support environment. Examples are as follows:
a) Time (e.g., mean and maximum downtime, reaction time, turnaround time, mean and maximum times to repair, mean time between maintenance actions)
b) Rate (e.g., maintenance staff hours per specific maintenance action, operational ready rate, maintenance time per operating hour, frequency of preventative maintenance)
c) Maintenance complexity (e.g., number of people and skill levels, variety of support equipment, removing/replacing/repairing components)
d) Maintenance action indices (e.g., maintenance costs per operating hour, staff hours per overhaul)
e) Accessibility to components within systems and to parts within components
Reference StRS section 5 and OpsCon Section (A.2) 5.6.
From Requirements Quest:
DEFINITION: Maintainability is the ease with which faults in a software system can be found and fixed.
ELICITATION: Maintainability requirements address the user concern for how easy it is to upkeep and repair the system. When eliciting maintainability requirements, consider aspects such as maintenance performance metrics, maintenance support features, system maintenance features, system complexity, development process, maintenance process cycle, and possible problems.
EXAMPLE: [Mean preventative maintenance time] The mean preventative maintenance time on applying routine plug-in updates to the RQ Website shall be less than 30 minutes every 2 weeks.
3.5.3 Reliability
Specify the system reliability requirements in quantitative terms, including the conditions under which the reliability requirements are to be met. This may also include the reliability apportionment model to support allocation of reliability values assigned to system functions for their share in achieving desired system reliability.
3.6 System modes and states
If the system can exist in various modes or states define these and, as appropriate, use diagrams.
NOTE The mode of a system refers to a collection of states.
3.7 Physical characteristics
Heading
3.7.1 Physical requirements
Include constraints on weight, volume and dimension. Include the construction characteristics of where the system will be installed, requirements for materials to be used in the item or service covered by this specification, and requirements covering nameplates and system markings, interchangeability of equipment, and workmanship.
Define constraints on weight, volume, and dimension applicable to the system elements that compose the system. (sebokwiki)
3.7.2 Adaptability requirements
Define requirements for growth, expansion, capability, and contraction. For example, if the system will require future network bandwidth, the applicable hardware should be specified with extra card slots to accommodate new network cards as demand increases.
Define potential extension, growth, or scalability during the life of the system. (sebokwiki)
3.8 Environmental conditions
Include environmental conditions to be encountered by the system. The following areas should be addressed: natural environment (e.g., wind, rain, temperature, flora, fauna, fungus, mold, sand, salt spray, dust, radiation, chemical, and immersion); induced environment (e.g., motion, shock, noise, electromagnetic, thermal); electromagnetic signal environment; self-induced environment (e.g., motion, shock, noise, electromagnetic, thermal); threat; and cooperative environment. Consideration should also be given to legal/regulatory, political, economic, social, and business environment.
3.9 System security
Define the system security requirements related to both the facility that houses the system and operational security requirements of the system itself. One example of security requirements might be to specify the security and privacy requirements, including access limitations to the system, such as existence of log-on procedures and passwords, and of data protection and recovery methods. This could include the factors that would protect the system from accidental or malicious access, use, modification, destruction, or disclosure.
Especially in safety-critical embedded systems this might incorporate a distributed log or history of data sets, the assignment of certain functions to different single systems, or the restriction of communications between some areas of the system.
3.10 Information management
Define the requirements for the system's management of information that it receives, generates, or exports. Examples include types and amounts of information the system is required to receive and store, any proprietary or other protections levied on the information the system deals with, and what backup and archiving requirements exist for the information.
3.11 Policies and regulations
Detail any relevant organizational policies that will affect the operation or performance of the system as well as any relevant external regulatory requirements, or constraints imposed by normal business practices. Examples of requirements include multilingual support, labour policies, protection of personnel information, and reports to a regulatory agency.
Specify health and safety criteria, including those basic to the design of the system, with respect to equipment characteristics, methods of operation, and environmental influences such as toxic systems and electromagnetic radiation.
3.12 System life cycle sustainment
Outline quality activities, such as review, and measurement collection and analysis, to help realize a quality system. Life cycle sustainment also includes provision of facilities needed to provide operational- and depotlevel support, spares, sourcing and supply, provisioning, technical documentation and data, support-personnel training, initial cadre training and initial contractor-logistics support.
3.13 Packaging, handling, shipping and transportation
Define requirements imposed on the system to ensure that it can be packaged, handled, shipped and transported within its intended operational context.
4. Verification
Provide the verification approaches and methods planned to qualify the system or system element. The information items for verification are recommended to be given in a parallel manner with the information items in Section 3.
https://www.sebokwiki.org/wiki/System_Verification
Identify how you plan to prove that the requirements listed in section 3 were met.
You can make a table like page 45 on the Lockheed example. See four fundamental methods of requirement verification.
What is developed for this section will be used in the traceability matrix.
5. Appendices
5.1 Assumptions and dependencies
List any assumptions and dependencies applicable to the system requirements that should be taken into account in the allocation and derivation of lower-level system requirements.
5.2 Acronyms and abbreviations
Example Outline
From 29148:2011 8.3.2
1. Introduction
1.1 System purpose
1.2 System scope
1.3 System overview
1.3.1 System context
1.3.2 System functions
1.3.3 User characteristics
1.4 Definitions
2. References
3. System requirements
3.1 Functional requirements
3.2 Usability requirements
3.3 Performance requirements
3.4 System interface
3.5 System operations
3.6 System modes and states
3.7 Physical characteristics
3.8 Environmental conditions
3.9 System security
3.10 Information management
3.11 Policies and regulations
3.12 System life cycle sustainment
3.13 Packaging, handling, shipping and transportation
4. Verification
(parallel to subsections in Section 3)
5. Appendices
Assumptions and dependencies
Acronyms and abbreviations