Difference between revisions of "System Requirements Definition"

From SEBoK
Jump to navigation Jump to search
m (Text replacement - "SEBoK v. 2.9, released 20 November 2023" to "SEBoK v. 2.10, released 06 May 2024")
 
(148 intermediate revisions by 12 users not shown)
Line 1: Line 1:
System requirements are all of the [[Requirement (glossary)|requirements]] at the ''system level'' that describe the functions which the system as a whole should fulfil to satisfy the [[Stakeholder (glossary)|stakeholders']], expressed in an appropriate set of views, and non-functional requirements expressing the levels of safety, security, reliability etc, which are called for.  
+
----
 +
'''''Lead Author: ''''' ''Tami Katz'' '''''Contributing Authors:''''' ''Lou Wheatcraft, Mike Ryan''
 +
----
 +
The System Requirements Definition process transforms the {{term|Stakeholder (glossary)|stakeholder}} view of desired {{term|Capability (glossary)|capabilities}} into a technical, developer view of how the system can achieve those capabilities. {{Term|System Requirement (glossary)|System requirements}} describe requirements which the {{Term|System-of-Interest (glossary)|system-of-interest}} (SoI) must fulfill to satisfy the {{term|Stakeholder Needs and Requirements (glossary)|stakeholder needs}} and are expressed in an appropriate combination of well-formed textual statements and supporting models or diagrams. Inputs into this process are the life cycle concepts and integrated set of needs generated during the [[System Concept Definition]] activities.  
  
System requirements play major roles in the Systems Engineering, they  
+
System requirements play major roles in systems engineering, as they:
*form the basis of system [[Architecture (glossary)|architecture]] and [[Design (glossary)|design]] activities;
+
* Form the basis of system {{Term|Architecture (glossary)|architecture}} and {{Term|Design (glossary)|design}} activities.
*form the basis of system [[Integration (glossary)]] and [[Verification (glossary)|verification]] activities;
+
* Form the basis of system {{Term|Integration (glossary)}} and {{Term|Verification (glossary)|verification}} activities.
*are a reference for [[Validation (glossary)|validation]], and stakeholder acceptance; and
+
* Provide a means of communication between the various project team members that interact throughout the project.
*a means of communication between the various technical staff that interact within the project.
+
Outputs of the System Requirements Definition process serve as inputs to a number of other technical processes, which include [[System Detailed Design Definition|System Design Definition]], [[System Architecture Design Definition|System Architecture Definition]], and [[System Verification]].
 +
==Principles and Concepts==
 +
System Requirements Definition uses the outcome of the [[System Concept Definition]] activities to address what the system must do so that the integrated set of needs will be realized by the SoI.  As shown in Figure 1, this information is then provided as input to the [[System Architecture Design Definition|System Architecture Definition]] and [[System Detailed Design Definition|System Design Definition]] processes, as well as the System Verification process.
  
Elicitation of Stakeholder Requirements starts in [[Concept Definition]], and will be initially developed though interview and mission analysis. System Requirements are considered in detail during [[System Definition (glossary)]]. Neither can be considered complete until consistency between the two has been achieved, as demonstrated by Traceability, for which a number of iterations may be needed.
+
[[File:Figure SysReqt-1 Original.jpg|thumb|900px|center|'''Figure 1. System Requirements Definition is the first activity in the System Definition Process.''' (SEBoK Original figure derived from ISO 15288-2023)]]
  
==Definition and Purpose of Requirements==
+
Defining requirements is not only an exercise in writing it is also an exercise in engineering.  Every requirement represents an engineering decision as to what the SoI must do, or a quality the system must have, to meet the needs from which they were transformed.  Determination of what the system must do to meet a need is through a process of detailed requirement analysis, which can include the development and use of models, simulations, and prototypes.
A requirement is a statement that identifies a product or process operational, functional, or design characteristic or constraint which is unambiguous, testable or measurable and necessary for product or process acceptability (ISO/IEC 2007).
 
  
To avoid confusion in the multitude of terms around ''[[Requirement (glossary)|requirements]]'', consider the following classifications:
+
A requirement statement is the result of a "formal transformation of one or more needs or parent requirements into an agreed-to obligation for an entity to perform some {{term|Function (glossary)|function}} or possess some quality within specified constraints with acceptable risk." (INCOSE NRM 2022). In this context the use of the term “quality” means an inherent feature or a distinguishing attribute.
*'''Process role or state''': The role the requirement plays in the definition process; for instance, its position in the system block: translated, derived, satisfied; or its state of agreement:  proposed, approved, cancelled.  
 
*'''Level of abstraction''': The level within the definition process for the requirement stands; for instance, stakeholder requirement, system requirement, system element requirement.
 
*'''Type of requirement''': The nature of the requirement itself; for instance functional, performance, constraint, etc.
 
  
Any single requirement may simultaneously be in a particular state, at a particular level abstraction, and of a particular type. For additional explanations about differences between kinds of requirements, refer to chapter 2 of Martin (1997).
+
There are many types of requirements; this article describes the requirements which are used as inputs into the System Architecture and System Design Definition processes.  As such, these requirements can be referred to as design input requirements, which are defined iteratively and recursively as the integrated system is decomposed into subsystems and system elements (the SoI could exist at any level of a system architecture).
  
==Principles Governing System Requirements==
+
==Process for Generating System Requirements==
===Stakeholder Requirements===
+
===Transforming Needs to System Requirements===
The set of [[Stakeholder Requirement (glossary)|stakeholder requirements]] may contain vague, ambiguous, and qualitative ''user-oriented'' need statements that are difficult to use for design or to verify. Each of these requirements may need to be further clarified and translated into ''engineering-oriented'' language to enable proper architecture definition, design, and verification activities. The system requirements resulting from this translation are expressed in technical language useful for architecture and design: unambiguous, consistent, coherentexhaustive, and verifiable. Of course, close coordination with the stakeholders is necessary to ensure the translation is accurate.
+
The System Requirement Definition activities begin with the transformation of the integrated set of needs into a set of requirements for the SoI.  These requirements must be appropriate to the level that the SoI exists within the system architecture and communicate “what” the SoI must do to meet the needs, avoiding requirements that state implementation of “how” to achieve the design realization of the physical SoI.
 +
 
 +
Needs communicate the stakeholder’s perspective concerning their expectations of what they need the system of interest (SoI) to do from an external, black box view.   
 +
 
 +
* Example: The user needs the coffee maker to stop heating water once the user-selected temperature has been achieved.
 +
 
 +
The sources of needs are described in [[Stakeholder Needs Definition]].  These sources include the stakeholder expectations and needs, drivers and constraints, risk analysis, and life cycle concept analysis and maturation activities. These needs are treated as inputs to the System Requirement Definition process, which results in a set of design input requirements for the SoI.
 +
 
 +
Requirements communicate the technical, developer perspective concerning what the SoI must do to meet the stakeholder needs from an internal white box view.
  
As an example, a need or an expectation such as ''To easily maneuver a car in order to park'' will be transformed in a set of stakeholder requirements such as, ''Increase the drivability of the car'', ''decrease the effort for handling'', ''assist the piloting'', ''protect the coachwork against shocks or scratch'', etc. This results in a set of system requirements specifying measurable characteristics.
+
* Example: The Coffee Maker shall stop the heating function once the selected Brew Temperature has been achieved.
  
===Requirements Management===
+
The process of generating a requirement statement is more than changing the subject of the need statement, it is an analysis of what the system must do to achieve what is neededThere are many types of analyses and tools that are used to make this determination:  
Requirements management is performed to ensure alignment of the system and system element requirements with other representations, analysis, and artifacts of the system.  It includes ensuring an understanding of the requirements, obtaining commitment, managing changes, maintaining bi-directional traceability among the requirements and with the rest of the system definition, and alignment with project resources and schedule.  
 
  
There are many tools available to provide a supporting infrastructure for requirements management; the best choice is the one that matches the processes of the project or enterprise. Requirements management is also closely tied to [[Configuration Management|configuration management]] for baseline management and control. When the requirements have been defined, documented, and approved, they need to be put under baseline management and controlThe baseline allows the project to analyze and understand the impact (technical, cost, and schedule) of ongoing proposed changes.
+
* functional analysis,  
 +
* interface analysis,  
 +
* data flow diagrams,
 +
* performance analysis, and
 +
* needs to transformation matrix.   
  
====Traceability and Assignment of System Requirements during Architecture and Design====
+
Requirement analysis for functions and performance can be performed by using system models (supported by [[Model-Based Systems Engineering (MBSE)]] applications). Key enabling model views include activity diagrams, sequence diagrams, state machine diagrams, and structure diagrams (for hierarchy and interfaces). An example functional analysis is shown in Figure 2.
Requirements traceability provides the ability to track information from the origin of the stakeholder requirements at the top level to requirements and other system definition elements at all levels of the system hierarchy (see section "Top-down and Recursive Approach to System Decomposition" in the [[System Definition]] article). Traceability is also used to provide an understanding of the extent of a change as an input to impact analyses conducted with respect to proposed engineering improvements or requests for change.
 
  
During [[Architecture (glossary) |architecture]] definition and [[Design (glossary) |design]], the assignment of requirements from one level to lower levels in the system hierarchy can be accomplished using several methods, as appropriate - see Table 1.
+
[[File:Figure SysReqt-2 Original.jpg|thumb|900px|center|'''Figure 2. Example Function Analysis using a SysML Activity Diagram.''' (SEBoK Original)]]
  
 +
Close and frequent coordination with the stakeholders is necessary to ensure the transformation is accurate and traceability is maintained. This results in a set of system requirements communicating measurable characteristics which can form the basis for {{Term|System Realization (glossary)|system realization}}.  A detailed analysis of a single need statement may result in multiple requirements expressing what the system must do to meet it, including definition of measurable performance criteria (INCOSE NRM 2022). 
  
<center>
+
=== Use of Attributes ===
{|
+
An attribute is additional information associated with an entity which is used to aid in its definition and management. Well-chosen attributes, when properly defined and tracked, can enable correct interpretation and management of requirements throughout the system life cycle. There are several useful attributes to consider:
|+'''Table 1. Assessment Types for a System Requirement.''' (SEBoK Original)
 
!Assignment Type for a System Requirement
 
!Description
 
|-
 
|'''Direct Assignment'''
 
|The system requirement from the higher level is directly assigned to a system or a system element for a lower level (for example, the color used to paint visible parts of the product).
 
|-
 
|'''Indirect Assignment (Simply Decomposed)'''
 
|The system requirement is distributed across several systems or system elements, and the sum or a more complex calculation for distribution is equal to the requirement of higher level (for example, a mass requirement, power distribution, reliability allocation, etc.) with sufficient margin or tolerance. A documented and configuration-managed "assignment budget" for each assignment must be maintained.
 
|-
 
|'''Indirect Assignment (Modeled and Decomposed)'''
 
|The system requirement is distributed to several systems or system elements using an analysis or mathematical modeling technique, and the resulting design parameters are assigned to the appropriate systems or system elements (with appropriate margin). For example, a radar detection requirement may be analyzed; lower-level parameters for output power, beam size, frequencies, etc. will then be assigned to the appropriate hardware and software elements. Again, the analysis (or model) must be documented and configuration-managed.
 
|-
 
|'''Derived Requirement (from Design)'''
 
|Such system requirements are developed during the design activities as a result of the decision of the design team, not the stakeholder community. These requirements may include the use of commercial-off-the-shelf (COTS) items, existing systems or system elements in inventory, common components, and similar design decisions in order to produce a "best value" solution for the customer. As such, these derived requirements may not directly trace to a stakeholder requirement, but they do not conflict with a stakeholder requirement or a constraint.
 
|}
 
</center>
 
  
===Classification of System Requirements===
+
* rationale,
Several classifications of system requirements are possible, depending on the requirements definition methods and/or the architecture and design methods used. (ISO/IEC 2011) provides a classification which is summarized in Table 2 (see references for additional classifications).
+
* trace to source or parent,
 +
* system verification success criteria,
 +
* owner,
 +
* category,
 +
* status,
 +
* criticality, and
 +
* priority.  
  
<center>
+
The use of the rationale attribute helps communicate why the requirement is needed, any assumptions made, the source of numbers, the results of related design studies, or any other related supporting information. This supports further requirements analysis and decomposition, as well as identifying the source of any requirement value. Defining the system verification success criteria helps ensure the requirement is well-formed, is verifiable, and aids in the planning for the project's verification program (INCOSE NRM 2022).
{|
+
=== Categorizing Requirements ===
|+'''Table 2. Example of System Requirements Classification.''' (SEBoK Original)
+
It is useful to organize the requirements into categories, grouping similar types of requirements together within a set.  An example set of categories is shown in Table 1.  While organizations may have different categorizations, for the set of requirements to be complete ''each'' category topic in Table 1 must be addressed. 
!Types of System Requirement
+
{| class="wikitable"
 +
|+Table 1. Example Types of Requirement Categories. (Derived from the INCOSE Needs and Requirements Manual)
 +
!Category
 
!Description
 
!Description
 
|-
 
|-
|'''Functional Requirements'''
+
|Function/ Performance
|Describe qualitatively the system functions or tasks to be performed in operation.
+
|The primary functions and associated performance that the SoI needs to perform in terms of its intended use.  The functions address the capabilities and features the stakeholders expect the SoI to have; performance addresses how well, how many, how fast attributes of the function.  Many of the primary functions involve interactions (interfaces) between the SOI and systems external to the SOI. All critical and high priority needs would be included in this category.
 
|-
 
|-
|'''Performance Requirements'''
+
|Fit/Operational
|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.  
+
|Requirements dealing with functions that deal with a secondary or enabling capabilities, functions, and interactions between the SoI and external systems needed for the system to accomplish its primary functions. This includes functions concerning the ability of the system to interface with, interact with, connect to, operate within, and become an integral part of the macro system it is a part.  Fit includes human system interactions and interfaces as well as both the induced and natural {{term|Environment (glossary)|environments}} (conditions of operations, transportation, storage, maintenance). For example, needs associated with safety, security, power, cooling, transportation and handling, storage, maintenance, and disposal.  
 
|-
 
|-
|'''Usability Requirements'''
+
|Form
|Define quality in use such as measurable effectiveness, efficiency, and satisfaction criteria.
+
|Physical Characteristics. The shape, size, dimensions, mass, weight, and other observable parameters and characterizes that uniquely distinguish a system.  For software, form could address programming language, lines of code, memory requirements.
 
|-
 
|-
|'''Interface Requirements'''
+
|Quality
|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.
+
|Fitness for use.  For example, various “-ilities” such as reliability, testability, operability, availability, maintainability, operability, supportability, manufacturability, and interoperability.  
 
|-
 
|-
|'''Operational Requirements'''
+
|Compliance
|Define operational conditions or properties under which the system is required to operate or exist. This type of requirement includes human factors and ergonomics, availability, maintainability, reliability, security.
+
|Conformance with design and construction standards and regulations.
|-
+
|}
|'''Modes and/or States Requirements'''
+
 
|Define the various operational modes of the system in use and events conducting to transitions of modes.
+
See Table 2 for example requirement statements, attributes and categories.
|-
+
{| class="wikitable"
|'''Adaptability Requirements'''
+
|+'''Table 2. Example Requirement Statements.''' (SEBoK Original)
|Define potential extension, growth, or scalability during the lift of the system.
 
 
|-
 
|-
|'''Physical Constraints'''
+
!'''Reqt  ID'''
|Define constraints on weight, volume, and dimension applicable on system elements that compose the system.
+
!'''Requirement Title'''
 +
!'''Requirement'''
 +
!'''Rationale'''
 +
!'''Category'''
 
|-
 
|-
|'''Design Constraints'''
+
|R1
|Define the limits on the options open to a designer of a solution by imposing immovable boundaries and limits (e.g., the system shall incorporate a legacy or provided system element, or certain data shall be maintained in an online repository).
+
|Variable Temperature Settings
 +
|The Coffee Maker shall have two user-selectable settings for coffee brewing:  Warm:  96°C +/- 2°C, Hot: 100°C+/- 2°C.
 +
|Based on focus group inputs for selectable  temperature; values are from analysis associated with consumer research  surveys and safety regulations.
 +
|Function/Performance
 
|-
 
|-
|'''Environmental Conditions'''
+
|R2
|Define the environmental conditions to be encountered by the system in its different operational modes. Should be addressed the natural environment (e.g. wind, rain, temperature, fauna, salt, dust, radiation, etc.), induced and/or self-induced environment (e.g. motion, shock, noise, electromagnetism, thermal, etc.), threats societal environment (e.g. legal, political, economic, social, business, etc.).
+
|Prohibit Brew if  Container Missing
 +
|If coffee container is not fully inserted into the brew location, the Coffee Maker shall prohibit brew function.
 +
|Protective measure  related to off-nominal use case.
 +
|Function/Performance
 
|-
 
|-
|'''Logistical Requirements'''
+
|R3
|Define the logistical conditions needed by the continuous utilization of the system. These requirements include sustainment (provision of facilities, level support, support personnel, spare parts, training, technical documentation, etc.), packaging, handling, shipping, transportation.
+
|Operational Life
 +
|The Coffee Maker shall have an operational life greater than or equal to 3 years.
 +
|Analysis shows  expected operational service of 1,000 hours over three years of usage, ensuring appliance lasts through the warranty period.
 +
|Quality
 
|-
 
|-
|'''Policies and Regulations'''
+
|R4
|Define relevant and applicable organizational policies or regulatory requirements that could affect the operation or performance of the system (e.g. labor policies, reports to regulatory agony, health or safety criteria, etc.).
+
|User Inputs
|-
+
|The Coffee Maker shall limit the number of user inputs to: Power On, Brew Temperature, Brew Size, Brew Start.
|'''Cost and Schedule Constraints'''
+
|User inputs are assessed from  focus groups to minimum set of inputs to achieve coffee maker full set of life cycle concepts.
|Define, for example, the cost of a single exemplar of the system, the expected delivery date of the first exemplar, etc.
+
|Fit/Operation
 
|}
 
|}
</center>
 
  
==Process Approach==
+
=== Requirements At Levels Within the Hierarchy ===
===Purpose and Principle of the Approach===
+
Requirements definition is an iterative and recursive process performed concurrently with the [[System Architecture Design Definition|Architecture Definition]] Process. Upon determination of the system hierarchy, a requirement tree can be established showing the system level requirements and the supporting requirements at the lower-level elements of the hierarchy. Figure 3 shows an example flow from system requirement to lower-level requirements, and an example requirement tree is shown in Figure 4.
The purpose of the system requirements analysis process is to transform the stakeholder, user-oriented view of desired services and properties into a technical view of the product that meets the operational needs of the user. This process builds a representation of the system that will meet stakeholder requirements and that, as far as constraints permit, does not imply any specific implementation. It results in measurable system requirements that specify, from the supplier’s perspective, what performance and non-performance characteristics it must possess in order to satisfy stakeholders' requirements (ISO/IEC 2008).
 
  
===Activities of the process===
+
[[File:Figure SysReqt-3 NRM Figure 6-20.jpg|thumb|500px|center|'''Figure 3. Example Flow of System Requirements with to Lower-level Requirements.''' This figure is reprinted with permission of Lou Wheatcraft. All other rights are reserved by the copyright owner.]]
Major activities and tasks during this process include
 
#Analyze the stakeholder requirements to check completeness of expected services and [[Operational Scenario (glossary)|operational scenarios (glossary)]], conditions, operational modes, and constraints.
 
#Define the system requirements and their [[Rationale (glossary)|rationale]].
 
#Classify the system requirements using suggested classifications (see examples above).
 
#Incorporate the derived requirements (coming from architecture and design) into the system requirements baseline.
 
#Establish the upward traceability with the stakeholder needs and requirements.
 
#Establish bi-directional traceability between requirements at adjacent levels of the system hierarchy.  
 
#Verify the quality and completeness of each system requirement and the consistency of the set of system requirements.
 
#Validate the content and relevance of each system requirement against the set of stakeholder requirements.
 
#Identify potential [[Risk (glossary)|risks]] (or threats and hazards) that could be generated by the system requirements.
 
#Synthesize, record, and manage the system requirements and potential associated risks.
 
#Upon approval of the requirements, establish and control baselines along with the other system definition elements in conjunction with established configuration management practices.
 
  
===Checking Correctness of System Requirements===
+
[[File:Figure SysReqt-4 Original.jpg|thumb|900px|center|'''Figure 4. Example Requirement Tree using a SysML Package Diagram.''' (SEBoK Original)]]
System requirements should be checked to gauge whether they are well expressed and appropriate. There are a number of characteristics that can be used to check system requirements, such as standard peer review techniques and comparison of each requirement against the set of requirements characteristics listed in Table 2 and Table 3 of the "Presentation and Quality of Requirements" section (below). Requirements can be further validated using the requirements elicitation and rationale capture described in the section "Methods and Modeling Techniques" (below).
 
  
===Methods and Modeling Techniques===
+
Allocation is the process by which the requirements at one level of the physical architecture are assigned to those entities at the next lower level of the architecture that have a role in the implementation of the allocated requirement. This involves an analysis where the project team determines what “role”, if any, each subsystem or system element at the next level of the architecture has in the implementation of the requirement being allocated. Requirements generated at the lower level are referred to as child requirements of an allocated parent requirement.  
====Requirements Elicitation and Prototyping====
 
Requirements elicitation requires user involvement and can be effective in gaining stakeholder involvement and buy-in. Quality Function Deployment (QFD) and prototyping are two common techniques that can be applied and are defined in this section. In addition, interviews, focus groups, and Delphi techniques are often applied to elicit requirements.
 
  
QFD is a powerful technique to elicit requirements and compare design characteristics against user needs (Hauser and Clausing 1988). The inputs to the QFD application are user needs and operational concepts, so it is essential that the users participateUsers from across the life cycle should be included so that all aspects of user needs are accounted for and prioritized.
+
An important concept associated with allocation is budgeting.  Budget refers to the total value of a parameter defined at the system level. The system requirement value may be decomposed to ensure the lower-level elements contribute their portion, enabling the system level to achieve its total value. Budgeted quantities result in requirements that have a dependency - a change in one will result in the need to change anotherBudgeted values can include mass (weight), power usage, bandwidth, time, and quality attributes).  
  
Early prototyping can help the users and developers interactively identify functional and operational requirements and user interface constraints. This enables realistic user interaction, discovery, and feedback, as well as some sensitivity analysis. This improves the users' understanding of the requirements and increases the probability of satisfying their actual needs.
+
==Principles Governing System Requirements==
 +
=== Addressing Interfaces and Interactions ===
 +
For each part of the architecture, an external {{term|Interface (glossary)|interface}} diagram provides the ability to address interactions between the SoI and external systems (Figure 5).  
  
====Capturing Requirements Rationale====
+
[[File:Figure SysReqt-5 NRM Figure 6-10.jpg|thumb|500px|center|'''Figure 5. Interfaces Address Interactions between Systems. ''' This figure is reprinted with permission of Lou Wheatcraft. All other rights are reserved by the copyright owner.]]
One powerful and cost-effective technique to translate stakeholder requirements to system requirements is to capture the rationale for each requirement. Requirements rationale is merely a statement as to why the requirement exists, any assumptions made, the results of related design studies, or any other related supporting information. This supports further requirements analysis and decomposition. The rationale can be captured directly in a requirements database (Hull, Jackson, and Dick 2010).
 
  
Some of the benefits of this approach include
+
The phrase “interface requirement” refers to the specific form or template for a functional requirement that deals with an interaction of a system across an interface boundary with another system. Writing interface requirements is a three-step process (INCOSE NRM 2022):
*'''Reducing the total number of requirements'''. The process aids in identifying duplicates. Reducing requirements count will reduce project cost and risk.
 
*'''Early exposure of bad assumptions'''.
 
*'''Removes design implementation'''. Many poorly written stakeholder requirements are design requirements in disguise, in that the customer is intentionally or unintentionally specifying a candidate implementation.
 
*'''Improves communication with the stakeholder community'''. By capturing the requirements rationale for all stakeholder requirements, the line of communication between the users and the designers is greatly improved. (Adapted from Chapter 8 of (Hooks and Farry 2000)).
 
  
====Modeling Techniques====
+
# Identify the interface boundaries and interactions across those boundaries.
Modeling techniques that can be used when requirements must be detailed or refined, or when they address topics not considered during the stakeholder requirements definition and mission analysis, include
+
# Define the interactions across the interface boundaries (the characteristics of what is crossing the boundary, and media involved).
*State-charts models (ISO/IEC 2011, Section 8.4)
+
# Write the interface requirements.
*Scenarios modeling (ISO/IEC 2011, Section 6.2.3.1)
 
*Simulations, prototyping (ISO/IEC 2011, Section 6.3.3.2)
 
*Quality Function Deployment (INCOSE. 2010, p. 83)
 
*Sequence diagrams, activity diagrams, use cases, state machine diagrams, Systems Modeling Language (SysML) requirements diagrams
 
*Functional Flow Block Diagram for Operational Scenario
 
  
====Presentation and Quality of Requirements====
+
Example interface requirement:
Generally, requirements are provided in a textual form. Guidelines exist for writing good requirements; they include recommendations about syntax of requirements statements, wording (exclusions, representation of concepts, etc.), characteristics (specific, measurable, achievable, feasible, testable, etc.). Refer to INCOSE (2010, Section 4.2.2.2) and ISO/IEC (2011).
 
  
There are several characteristics of both requirements and sets of requirements that are used to aid the development of the requirements and to verify the implementation of requirements into the solution. Table 3 provides a list and descriptions of the characteristics for individual requirements and Table 4 provides a list and descriptions of characteristics for a set of requirements, as adapted from ISO/IEC (2011, Sections 5.2.5 and 5.2.6).
+
* The System shall send telemetry to the Ground System as defined in ICD 123, Table X.
  
 +
=== Model Form of Requirements ===
 +
Requirements can be recorded and managed via a document, database, or in the form of a model: 
  
<center>
+
* Models provide the capability to address completeness in terms of functions, inputs to those functions, sources of those inputs, outputs, and customers (destinations/users) for those outputs.
{|
+
* Models help facilitate communication by making complex systems and processes easier to understand (a picture is worth a thousand words….).
|+'''Table 3. Characteristics of Individual Requirements.''' (SEBoK Original)
+
* Models enable the capture of interdependencies of requirements to other aspects of the system dataset, such as inputs, needs, architecture, test cases, etc.
!Characteristic
+
* Models enable quantitative analyses and execution of simulations.
!Description
 
|-
 
|'''Necessary'''
 
|The requirement defines an essential capability, characteristic, constant, and/or quality factor. If it is removed or deleted, a deficiency will exist which cannot be fulfilled by other capabilities of the product or process.
 
|-
 
|'''Implementation Free'''
 
|The requirement, while addressing what is necessary and sufficient in the system, avoids placing unnecessary constraints on the architectural design.  The objective is to be implementation-independent. The requirement states what is required, not how the requirement should be met.
 
|-
 
|'''Unambiguous'''
 
|The requirement is stated in such a way so that it can be interpreted in only one way. The requirement is stated simply and is easy to understand.
 
|-
 
|'''Consistent'''
 
|The requirement is free of conflicts with other requirements.
 
|-
 
|'''Complete'''
 
|The stated requirement needs no further amplification because it is measurable and sufficiently describes the capability and characteristics to meet the stakeholders' needs.
 
|-
 
|'''Singular'''
 
|The requirement statement includes only one requirement with no use of conjunctions.
 
|-
 
|'''Feasible'''
 
|The requirement is technically achievable and fits within system constraints (e.g., cost, schedule, technical, lethal, regulatory).
 
|-
 
|'''Traceable'''
 
|The requirement is upwards traceable to specific documented stakeholder statement(s) of need, higher tier requirement, or other source (e.g., a trade or design study). The requirement is also downwards traceable to the specific requirements in the lower tier requirements specification or other system definition artifacts. That is, all parent-child relationships for the requirement are identified in tracing such that the requirement traces to its source and implementation.
 
|-
 
|'''Verifiable'''
 
|The requirement has the means to prove that the system satisfies the specified requirement. Verifiability is enhanced when the requirement is measurable.
 
|}
 
</center>
 
 
 
 
 
<center>
 
{|
 
|+'''Table 4. Characteristics of a Set of Requirements.''' (SEBoK Original)
 
!Characteristic
 
!Description
 
|-
 
|'''Complete'''
 
|The set of requirements needs no further amplification because it contains everything pertinent to the definition of the system or system element being specified. In addition, the set contains no to be defined (TBD), to be specified (TBS), or to be resolved (TBR) clauses. Resolution of the TBx designations may be iterative and there is an acceptable time frame for TBx items, determined by risks and dependencies. Note: Some practices are recommended to improve completeness; include all requirement types; account for requirements in all stages of the life cycle; and involve all stakeholders in the requirements elicitation activity.
 
|-
 
|'''Consistent'''
 
|The set of requirements does not have individual requirements which are contradictory. Requirements are not duplicate. The same term is used for the same item in all requirements.
 
|-
 
|'''Affordable'''
 
|The complete set of requirements can be satisfied by a solution that is obtainable/feasible within life cycle constraints (e.g. cost, schedule, technical, legal, regulatory).
 
|-
 
|'''Bounded'''
 
|The set of requirements maintains the identified scope for the intended solution without increasing beyond what is needed to satisfy user needs.
 
|}
 
</center>
 
  
====Requirements in Tables====
+
In MBSE, the model form of requirements can be expressed as a diagram (Figure 6) or within a table in the modeling tool (Figure 7), using well-formed textual statements as part of a requirement model element. Refer to [[Requirements Management]] for further guidance on usage of tools associated with textual and model requirements.
Requirements may be provided in a table, especially when specifying a set of parameters for the system or a system element. It is good practice to make standard table templates available. For tables, the following conventions apply:
 
*Invoke each requirements table in the requirements set that clearly points to the table.
 
*Identify each table with a unique title and table number.
 
*Include the word “requirements” in the table title.
 
*Identify the purpose of the table in the text immediately preceding it and include an explanation of how to read and use the table, including context and units.
 
*For independent-dependent variable situations, organize the table in a way that best accommodates the use of the information.
 
*Each cell should contain, at most, a single requirement.
 
  
====Requirements in Flow Charts====
+
[[File:Figure SysReqt-6 Original.jpg|thumb|900px|center|'''Figure 6. Example of a Model Based Requirement Diagram.''' (SEBoK Original)]]
Flow charts often contain requirements in a graphical form. These requirements may include logic that must be incorporated into the system, operational requirements, process or procedural requirements, or other situations that are best defined graphically by a sequence of interrelated steps. For flow charts, the following conventions apply:
 
*Invoke flow charts in the requirements set that clearly points to the flow chart;
 
*Identify each flow chart with a unique title and figure number;
 
*Include the word “requirements” in the title of the flow chart; and
 
*Clearly indicate and explain unique symbols that represent requirements in the flow chart.
 
  
====Requirements in Drawings====
+
[[File:Figure SysReqt-7 Original.jpg|thumb|900px|center|'''Figure 7. Example of a Model Based Requirement Table.''' (SEBoK Original)]]
Drawings also provide a graphical means to define requirements. The type of requirement defined in a drawing depends on the type of drawing. The following conventions apply:
 
*Drawings are used when they can aid in the description of the following:
 
**Spatial requirements
 
**Interface requirements
 
**Layout requirements
 
*Invoke drawings in the requirements set that clearly points to the drawing.
 
  
===Artifacts and Ontology Elements===
+
=== Addressing Unknowns ===
This process may create several artifacts, such as
+
When initially generating a set of requirements, there is often a set of parameters which may require future analysis to determine their actual value.  One common method to do this is to use a placeholder in the requirement statement to indicate the requirement is drafted, yet further work is needed before it is considered complete.  When a value is unknown, a common approach is to use the "To Be Determined" (TBD) indication within the requirement statement, in place of an actual value. When a value is determined but confidence is low (e.g., feasibility has not been assessed), a method to reflect this is to use the "To Be Resolved" (TBR) indication next to the value. Together, TBRs and TBDs are referred to generically as "TBXs". Keeping track of TBXs allows for awareness of the maturity of the requirements throughout the life cycle and is a valuable metric to evaluate completion and maturity of the integrated set of needs and set of design input requirements.  
*System requirements document
 
*System requirements justification document (for traceability purpose)
 
*System requirements database, including traceability, analysis, rationale, decisions, and attributes, where appropriate.
 
*System external interface requirements document (this document describes the interfaces of the system with external elements of its context of use; the interface requirements can be integrated or not to the system requirements document above).
 
  
This process utilizes the ontology elements described in Table 5.
+
TBXs can lead to risk if not addressed by the project team prior to significant work in establishing the design solution.  TBX management is the process of identifying the TBXs in a requirement set, establishing the work needed to resolve closure of the issue, identifying the owner of the work, and systematically iterating through and completing the actions to enable removal of these placeholders in the requirements.
 +
===Traceability===
 +
Traceability is a powerful way to manage the design input requirements, especially across levels and across subsystems and system elements within a specific level as well as manage the requirements across the life cycle. Traceability helps ensure the requirements trace to their needs, and that they are correct and complete.  Traceability also helps identify allocation of requirements to lower-level system elements of the architecture. Traceability is used to access any impacts of changes to requirements or other types of data across the life cycle, enabling insight into whether that change is beneficial or costly.
  
<center>
+
Defining a traceability relationship model at the beginning of the project enables an understanding of which relationships will be established and managed via traceability throughout the development of the SoI. An example traceability model is shown in Figure 8 (INCOSE NRM 2022).  
{|
 
|+'''Table 5. Main Ontology Elements for System Requirements Definition.''' (SEBoK Original)
 
!Element
 
!Definition
 
----
 
Attributes (Examples)
 
|-
 
|'''System Requirement'''
 
|Statement that expresses an expected characteristic or a constraint using a semantic code (such as natural language, mathematical, arithmetic, geometrical expression). A system requirement is feasible, objective, and verifiable.
 
----
 
Identifier; name; description; parent (result of a stakeholder requirement translation or of a design choice); type (classification); effectivity (immediately applicable, allocated to a later version, etc.); verification method (inspection, analysis, demonstration, test, etc.); decision (result of a trade-off study having led to choosing or rejecting the requirement); status (identified, analyzed, verified, allocated, satisfied). Criticality (importance related to the safety and the availability of the system); weighing/priority (relative importance compared to others); history records (date, author, identification, and contents of the modification, type of modification, reason for the modification); comments.
 
|-
 
|'''Rationale'''
 
|Argument that provides the justification for the selection of an engineering element.
 
----
 
Identifier; name; description (rational, reasons for a requirement to be satisfied).
 
|-
 
|'''Scenario'''
 
|A set of actions/functions representing the dynamic of exchanges between the functions allowing the system to achieve a mission or a service.
 
----
 
Identifier; name; description.
 
|-
 
|'''Risk'''
 
|An event having a probability of occurrence and gravity degree on its consequence onto the system mission or on other characteristics (used for technical risk in engineering). A risk is the combination of vulnerability and of a danger or a threat.
 
----
 
Identifier; name; description; status.
 
|}
 
</center>
 
  
==Practical Considerations about System Requirements==
+
[[File:Figure SysReqt-8 NRM Figure 6-7.jpg|thumb|900px|center|'''Figure 8. Example Traceability Model.''' This figure is reprinted with permission of Lou Wheatcraft. All other rights are reserved by the copyright owner.]]
There are several '''pitfalls''' that will inhibit the generation and management of an optimal set of system requirements, as discussed in Table 6.
 
  
 +
=== Planning for System Verification ===
 +
A best practice is to do early planning for how the project will perform [[System Verification|system verification]]. Defining the system verification success criteria, strategy, and method when the requirements are generated helps ensure the requirement statements are worded properly, are within the scope of the project plans, and demonstrate they have the characteristic of "verifiable". This information can be captured within the attributes defined for the requirement.
  
<center>
+
===Assessing the Requirements===
{|
+
Requirements should be assessed to gauge whether they are well-formed and that they meet the intent of the needs from which they were transformed. Concepts behind assessment of the requirements are captured with the terms "requirement verification" and "requirement validation", which are not the same concepts described for system verification and system validation.  
|+'''Table 6. Major Pitfalls with Definition of System Requirements.''' (SEBoK Original)
 
!Pitfall
 
!Description
 
|-
 
|'''Insufficient analysis of stakeholder requirements'''
 
|The receivers of the stakeholder requirements do not perform a sufficient critical analysis of them; the consequence could be difficulties translating them into system requirements and the obligation to come back to the stakeholders, losing time.
 
|-
 
|'''Insufficient analysis of operational modes and scenarios'''
 
|The operational modes and operational scenarios are not sufficiently analyzed or defined by the person in charge of writing the system requirements. Those elements allow the structuring of the system and its use early in the engineering and help the designer to remember functions and interfaces.
 
|-
 
|'''Uncompleted set of system requirements'''
 
|If the system requirements are not sufficiently precise and complete, there is a great risk that the design will not have the expected level of quality and that the verification and validation of the system will be delayed.
 
|-
 
|'''Lack of verification method'''
 
|Delaying the capture of verification methods and events for each system requirement; identification of the verification approach for each requirement often provides additional insight as to the correctness and necessity of the requirement itself.
 
|-
 
|'''Missing traceability'''
 
|Incorrect or missing traceability of each requirement, both to an upper-level "parent" requirement and allocation to an appropriate system or system element.
 
|}
 
</center>
 
  
 +
* Requirement verification activities address: Are the requirements well-formed, i.e., do the individual requirements and sets of requirements have the characteristics and follow the rules defined in the organizations criteria for well-formed requirements?
 +
* Requirement validation activities address: Do we have the right requirements, i.e., do the requirements clearly communicate the intent of the needs, parent requirements, and other sources from which they were transformed, in a language understandable by the architectural definition, design definition, and manufacturing/coding teams?   Validation addresses if the requirements are correct and are also achievable.
  
The '''proven practices''' in Table 7 have repeatedly been shown to reduce project risk and cost, foster customer satisfaction, and produce successful system development.
+
There are several methods that can be used to verify and validate requirements, such as standard peer review techniques and comparison of each requirement against a set of requirements characteristics and the integrated set of needs. For requirements communicated in a textual form, guidelines exist for writing well-formed requirements; they include recommendations about the syntax of requirements statements, wording (exclusions, representation of concepts, etc.), and characteristics (specific, measurable, achievable, feasible, testable, etc.) (INCOSE GtWR 2023).
 +
===System Requirement Definition Artifacts===
 +
The System Requirements Definition process results in a variety of artifacts:
  
 +
* well-formed requirements recorded in models, databases, or documentation,
 +
* requirement tree,
 +
* traceability of requirements to other data,
 +
* defined interactions across boundaries,
 +
* performance budgets, and
 +
* initial system verification plans.
  
<center>
+
===Requirements Management===
{|
+
Requirements Management (RM) is performed to ensure alignment of the system, subsystem, and system element requirements with other representations, analyses, and artifacts of the system across the life cycle. It includes providing an understanding of the requirements, obtaining commitment, managing changes, maintaining bi-directional traceability among the requirements and with the rest of the system definition, and alignment with project resources and schedule. The [[Requirements Management]] article provides additional guidance on methods for performing requirements management.  
|+'''Table 7. Proven Practices for System Requirements.''' (SEBoK Original)
 
!Practice
 
!Description
 
|+
 
|'''Involve stakeholders'''
 
|Involve the stakeholders early in the system requirements development process.
 
|+
 
|'''Presence of rationale'''
 
|Capture the rationale for each system requirement.
 
|+
 
|'''Always before starting'''
 
|Check that stakeholder requirements are complete as much as possible before starting the definition of the system requirements.
 
|+
 
|'''Peer reviews'''
 
|Organize peer reviews of system requirements with applicable subject matter experts.
 
|+
 
|'''Modeling techniques'''
 
|Use modeling techniques as indicated in sections above.
 
|+
 
|'''Requirements management tool'''
 
|Consider using a requirements management tool, especially for more complex projects. This tool should have the capability to trace linkages between system requirements to show relationships. A requirements management tool is intended to facilitate and support the systematic managing of system requirements throughout the project life cycle.
 
|+
 
|'''Measures for requirement engineering'''
 
|Use typical measures for requirement engineering - refer to the ''Systems Engineering Leading Indicators Guide'' (Roedler et al. 2010). Both process and product measures should be used for requirements engineering. To get the desired insight to facilitate risk-managed requirements engineering, it may be necessary to use more than one measure based on the information needs (risks, objectives, issues) for the requirements. Useful measures include:
 
*Requirements volatility
 
*Requirements trends
 
*Requirements verification progress (plan vs. actual)
 
*Requirements validation progress (plan vs. actual)
 
*TBD and TBR closure per plan
 
*Peer review defects
 
|}
 
</center>
 
  
 
==References==  
 
==References==  
  
 
===Works Cited===
 
===Works Cited===
Hauser, J. and D. Clausing.  1988.  "The House of Quality."  ''Harvard Business Review.'' (May - June 1988).
+
INCOSE. 2022. ''INCOSE Needs and Requirements Manual (NRM)'', version 1.1. INCOSE-TP-2021-002-01.
  
Hooks, I.F., and K.A. Farry. 2000. ''Customer-centered products: Creating successful products through smart requirements management''. New York, NY, USA: American Management Association.
+
INCOSE. 2023. ''INCOSE Guide to Writing Requirements (GtWR)'', version 4. INCOSE-TP-2006-004-04.
  
Hull, M.E.C., Jackson, K., Dick, A.J.J. 2010. ''Systems Engineering''. 3rd ed. London, UK: Springer.
+
===Primary References===
  
INCOSE. 2011. ''Systems Engineering Handbook: A Guide for System Life Cycle Processes and Activities'' Version 3.2.1. San Diego, CA, USA: International Council on Systems Engineering (INCOSE), INCOSE-TP-2003-002-03.2.1.
+
ISO/IEC/IEEE. 2018. ''[[ISO/IEC/IEEE 29148|Systems and Software Engineering - Requirements Engineering]]''. Geneva, Switzerland: International Organization for Standardization (ISO)/International Electrotechnical Commission (IEC)/ Institute of Electrical and Electronics Engineers (IEEE), [[ISO/IEC/IEEE 29148]].
  
ISO/IEC. 2007. Systems and Software Engineering -- Recommended Practice for Architectural Description of Software-Intensive Systems. Geneva, Switzerland: International Organization for Standards (ISO)/International Electrotechnical Commission (IEC), ISO/IEC 42010:2007.
+
ISO/IEC/IEEE. 2023.''[[ISO/IEC/IEEE 15288|Systems and Software Engineering - System Life Cycle Processes]].'' Geneva, Switzerland: International Organization for Standardization (ISO)/International Electrotechnical Commission (IEC), Institute of Electrical and Electronics Engineers (IEEE). [[ISO/IEC/IEEE 15288]]:2023.
  
ISO/IEC/IEEE. 2011. ''Systems and Software Engineering - Requirements Engineering''. Geneva, Switzerland: International Organization for Standardization (ISO)/International Electrotechnical Commission/ Institute of Electrical and Electronics Engineers (IEEE), (IEC), ISO/IEC/IEEE 29148.  
+
INCOSE. 2023. ''[[INCOSE Systems Engineering Handbook|Systems Engineering Handbook]]: A Guide for System Life Cycle Processes and Activities'', version 5.0. Hoboken, NJ, USA: John Wiley and Sons, Inc, ISBN: 978-1-118-99940-0.
  
ISO/IEC/IEEE. 2008. ''Systems and Software Engineering - System Life Cycle Processes.'' Geneva, Switzerland: International Organization for Standardization (ISO)/International Electronical Commission (IEC), Institute of Electrical and Electronics Engineers. ISO/IEC/IEEE 15288:2008 (E).
+
INCOSE. 2022. ''INCOSE Needs and Requirements Manual (NRM)'', version 1.1. INCOSE-TP-2021-002-01.
  
Martin, J.N. 1997. ''Systems Engineering Guidebook: A Process for Developing Systems and Products.'' 1st ed. Boca Raton, FL, USA: CRC Press.
+
INCOSE. 2022. ''INCOSE Guide to Needs and Requirements (GtNR)'', version 1. INCOSE-TP-2021-003-01.
  
===Primary References===
+
INCOSE. 2023. ''INCOSE Guide to Writing Requirements (GtWR)'', version 4. INCOSE-TP-2006-004-04.
 
 
ISO/IEC/IEEE. 2011. ''[[ISO/IEC/IEEE 29148|Systems and Software Engineering - Requirements Engineering]]''. Geneva, Switzerland: International Organization for Standardization (ISO)/International Electrotechnical Commission/ Institute of Electrical and Electronics Engineers (IEEE), (IEC), [[ISO/IEC/IEEE 29148]].
 
 
 
ISO/IEC/IEEE. 2008. ''[[ISO/IEC/IEEE 15288|Systems and Software Engineering - System Life Cycle Processes]].'' Geneva, Switzerland: International Organization for Standardization (ISO)/International Electronical Commission (IEC), Institute of Electrical and Electronics Engineers. [[ISO/IEC/IEEE 15288]]:2008 (E).
 
 
 
INCOSE. 2011. ''[[INCOSE Systems Engineering Handbook]]: A Guide for System Life Cycle Processes and Activities''. Version 3.2.1. San Diego, CA, USA: International Council on Systems Engineering (INCOSE), INCOSE-TP-2003-002-03.2.1.
 
 
 
Lamsweerde, A. van. 2009. ''[[Requirements Engineering]]: From System Goals to UML Models to Software Specifications''. New York, NY, USA: Wiley.
 
  
 
===Additional References===
 
===Additional References===
  
Faisandier, A. 2012. ''Systems Opportunities and Requirements''. Belberaud, France: Sinergy'Com.
+
INCOSE. 2022. ''INCOSE Guide to Verification and Validation (GtVV)'', version 1. INCOSE-TP-2021-004-01.  
 
 
Hooks, I.F., and K.A. Farry. 2000. ''Customer-Centered Products: Creating Successful Products through Smart Requirements Management.'' New York, NY, USA: American Management Association.
 
 
 
Hull, M.E.C., K. Jackson, A.J.J. Dick. 2010. ''Systems Engineering''. 3rd ed. London, UK: Springer.
 
 
 
Roedler, G., D. Rhodes, C. Jones, and H. Schimmoller. 2010. ''Systems Engineering Leading Indicators Guide''.  Version 2.0. San Diego, CA, USA: International Council on Systems Engineering (INCOSE), INCOSE-TP-2005-001-03.
 
  
SEI. 2007. "Requirements Management Process Area" and "Requirements Development Process Area" in Capability Maturity Model Integrated (CMMI) for Development, version 1.2. Pittsburgh, PA, USA: Software Engineering Institute (SEI)/Carnegie Mellon University (CMU).
+
===Relevant Videos===
 +
*[https://www.youtube.com/@incoserwg891 INCOSE Requirements Working Group YouTube Channel]
  
 
----
 
----
  
<center>[[System Definition|< Previous Article]] | [[System Definition|Parent Article]] | [[Architectural Design: Logical|Next Article >]]</center>
+
<center>[[Stakeholder Needs Definition|< Previous Article]] | [[Systems Engineering and Management|Parent Article]] | [[System Architecture Design Definition|Next Article >]]</center>
  
 +
<center>'''SEBoK v. 2.10, released 06 May 2024'''</center>
  
[[Category: Part 3]][[Category:Topic]]
+
[[Category: Part 3]][[Category:Knowledge Area]]
[[Category:System Definition]]
 
{{DISQUS}}
 

Latest revision as of 22:49, 2 May 2024


Lead Author: Tami Katz Contributing Authors: Lou Wheatcraft, Mike Ryan


The System Requirements Definition process transforms the stakeholderstakeholder view of desired capabilitiescapabilities into a technical, developer view of how the system can achieve those capabilities. System requirementsSystem requirements describe requirements which the system-of-interestsystem-of-interest (SoI) must fulfill to satisfy the stakeholder needsstakeholder needs and are expressed in an appropriate combination of well-formed textual statements and supporting models or diagrams. Inputs into this process are the life cycle concepts and integrated set of needs generated during the System Concept Definition activities.

System requirements play major roles in systems engineering, as they:

  • Form the basis of system architecturearchitecture and designdesign activities.
  • Form the basis of system integrationintegration and verificationverification activities.
  • Provide a means of communication between the various project team members that interact throughout the project.

Outputs of the System Requirements Definition process serve as inputs to a number of other technical processes, which include System Design Definition, System Architecture Definition, and System Verification.

Principles and Concepts

System Requirements Definition uses the outcome of the System Concept Definition activities to address what the system must do so that the integrated set of needs will be realized by the SoI. As shown in Figure 1, this information is then provided as input to the System Architecture Definition and System Design Definition processes, as well as the System Verification process.

Error creating thumbnail: File missing
Figure 1. System Requirements Definition is the first activity in the System Definition Process. (SEBoK Original figure derived from ISO 15288-2023)

Defining requirements is not only an exercise in writing it is also an exercise in engineering.  Every requirement represents an engineering decision as to what the SoI must do, or a quality the system must have, to meet the needs from which they were transformed.  Determination of what the system must do to meet a need is through a process of detailed requirement analysis, which can include the development and use of models, simulations, and prototypes.

A requirement statement is the result of a "formal transformation of one or more needs or parent requirements into an agreed-to obligation for an entity to perform some functionfunction or possess some quality within specified constraints with acceptable risk." (INCOSE NRM 2022). In this context the use of the term “quality” means an inherent feature or a distinguishing attribute.

There are many types of requirements; this article describes the requirements which are used as inputs into the System Architecture and System Design Definition processes. As such, these requirements can be referred to as design input requirements, which are defined iteratively and recursively as the integrated system is decomposed into subsystems and system elements (the SoI could exist at any level of a system architecture).

Process for Generating System Requirements

Transforming Needs to System Requirements

The System Requirement Definition activities begin with the transformation of the integrated set of needs into a set of requirements for the SoI. These requirements must be appropriate to the level that the SoI exists within the system architecture and communicate “what” the SoI must do to meet the needs, avoiding requirements that state implementation of “how” to achieve the design realization of the physical SoI.

Needs communicate the stakeholder’s perspective concerning their expectations of what they need the system of interest (SoI) to do from an external, black box view.

  • Example: The user needs the coffee maker to stop heating water once the user-selected temperature has been achieved.

The sources of needs are described in Stakeholder Needs Definition. These sources include the stakeholder expectations and needs, drivers and constraints, risk analysis, and life cycle concept analysis and maturation activities. These needs are treated as inputs to the System Requirement Definition process, which results in a set of design input requirements for the SoI.

Requirements communicate the technical, developer perspective concerning what the SoI must do to meet the stakeholder needs from an internal white box view.

  • Example: The Coffee Maker shall stop the heating function once the selected Brew Temperature has been achieved.

The process of generating a requirement statement is more than changing the subject of the need statement, it is an analysis of what the system must do to achieve what is needed. There are many types of analyses and tools that are used to make this determination:

  • functional analysis,
  • interface analysis,
  • data flow diagrams,
  • performance analysis, and
  • needs to transformation matrix.

Requirement analysis for functions and performance can be performed by using system models (supported by Model-Based Systems Engineering (MBSE) applications). Key enabling model views include activity diagrams, sequence diagrams, state machine diagrams, and structure diagrams (for hierarchy and interfaces). An example functional analysis is shown in Figure 2.

Figure 2. Example Function Analysis using a SysML Activity Diagram. (SEBoK Original)

Close and frequent coordination with the stakeholders is necessary to ensure the transformation is accurate and traceability is maintained. This results in a set of system requirements communicating measurable characteristics which can form the basis for system realizationsystem realization. A detailed analysis of a single need statement may result in multiple requirements expressing what the system must do to meet it, including definition of measurable performance criteria (INCOSE NRM 2022).

Use of Attributes

An attribute is additional information associated with an entity which is used to aid in its definition and management. Well-chosen attributes, when properly defined and tracked, can enable correct interpretation and management of requirements throughout the system life cycle. There are several useful attributes to consider:

  • rationale,
  • trace to source or parent,
  • system verification success criteria,
  • owner,
  • category,
  • status,
  • criticality, and
  • priority.

The use of the rationale attribute helps communicate why the requirement is needed, any assumptions made, the source of numbers, the results of related design studies, or any other related supporting information. This supports further requirements analysis and decomposition, as well as identifying the source of any requirement value. Defining the system verification success criteria helps ensure the requirement is well-formed, is verifiable, and aids in the planning for the project's verification program (INCOSE NRM 2022).

Categorizing Requirements

It is useful to organize the requirements into categories, grouping similar types of requirements together within a set. An example set of categories is shown in Table 1. While organizations may have different categorizations, for the set of requirements to be complete each category topic in Table 1 must be addressed.

Table 1. Example Types of Requirement Categories. (Derived from the INCOSE Needs and Requirements Manual)
Category Description
Function/ Performance The primary functions and associated performance that the SoI needs to perform in terms of its intended use.  The functions address the capabilities and features the stakeholders expect the SoI to have; performance addresses how well, how many, how fast attributes of the function.  Many of the primary functions involve interactions (interfaces) between the SOI and systems external to the SOI. All critical and high priority needs would be included in this category.
Fit/Operational Requirements dealing with functions that deal with a secondary or enabling capabilities, functions, and interactions between the SoI and external systems needed for the system to accomplish its primary functions. This includes functions concerning the ability of the system to interface with, interact with, connect to, operate within, and become an integral part of the macro system it is a part.  Fit includes human system interactions and interfaces as well as both the induced and natural environmentsenvironments (conditions of operations, transportation, storage, maintenance). For example, needs associated with safety, security, power, cooling, transportation and handling, storage, maintenance, and disposal.
Form Physical Characteristics. The shape, size, dimensions, mass, weight, and other observable parameters and characterizes that uniquely distinguish a system.  For software, form could address programming language, lines of code, memory requirements.
Quality Fitness for use.  For example, various “-ilities” such as reliability, testability, operability, availability, maintainability, operability, supportability, manufacturability, and interoperability.
Compliance Conformance with design and construction standards and regulations.

See Table 2 for example requirement statements, attributes and categories.

Table 2. Example Requirement Statements. (SEBoK Original)
Reqt ID Requirement Title Requirement Rationale Category
R1 Variable Temperature Settings The Coffee Maker shall have two user-selectable settings for coffee brewing:  Warm: 96°C +/- 2°C, Hot: 100°C+/- 2°C. Based on focus group inputs for selectable temperature; values are from analysis associated with consumer research surveys and safety regulations. Function/Performance
R2 Prohibit Brew if Container Missing If coffee container is not fully inserted into the brew location, the Coffee Maker shall prohibit brew function. Protective measure related to off-nominal use case. Function/Performance
R3 Operational Life The Coffee Maker shall have an operational life greater than or equal to 3 years. Analysis shows expected operational service of 1,000 hours over three years of usage, ensuring appliance lasts through the warranty period. Quality
R4 User Inputs The Coffee Maker shall limit the number of user inputs to: Power On, Brew Temperature, Brew Size, Brew Start. User inputs are assessed from focus groups to minimum set of inputs to achieve coffee maker full set of life cycle concepts. Fit/Operation

Requirements At Levels Within the Hierarchy

Requirements definition is an iterative and recursive process performed concurrently with the Architecture Definition Process. Upon determination of the system hierarchy, a requirement tree can be established showing the system level requirements and the supporting requirements at the lower-level elements of the hierarchy. Figure 3 shows an example flow from system requirement to lower-level requirements, and an example requirement tree is shown in Figure 4.

Error creating thumbnail: File missing
Figure 3. Example Flow of System Requirements with to Lower-level Requirements. This figure is reprinted with permission of Lou Wheatcraft. All other rights are reserved by the copyright owner.
Error creating thumbnail: File missing
Figure 4. Example Requirement Tree using a SysML Package Diagram. (SEBoK Original)

Allocation is the process by which the requirements at one level of the physical architecture are assigned to those entities at the next lower level of the architecture that have a role in the implementation of the allocated requirement. This involves an analysis where the project team determines what “role”, if any, each subsystem or system element at the next level of the architecture has in the implementation of the requirement being allocated. Requirements generated at the lower level are referred to as child requirements of an allocated parent requirement.

An important concept associated with allocation is budgeting. Budget refers to the total value of a parameter defined at the system level. The system requirement value may be decomposed to ensure the lower-level elements contribute their portion, enabling the system level to achieve its total value. Budgeted quantities result in requirements that have a dependency - a change in one will result in the need to change another. Budgeted values can include mass (weight), power usage, bandwidth, time, and quality attributes).

Principles Governing System Requirements

Addressing Interfaces and Interactions

For each part of the architecture, an external interfaceinterface diagram provides the ability to address interactions between the SoI and external systems (Figure 5).

Error creating thumbnail: File missing
Figure 5. Interfaces Address Interactions between Systems. This figure is reprinted with permission of Lou Wheatcraft. All other rights are reserved by the copyright owner.

The phrase “interface requirement” refers to the specific form or template for a functional requirement that deals with an interaction of a system across an interface boundary with another system. Writing interface requirements is a three-step process (INCOSE NRM 2022):

  1. Identify the interface boundaries and interactions across those boundaries.
  2. Define the interactions across the interface boundaries (the characteristics of what is crossing the boundary, and media involved).
  3. Write the interface requirements.

Example interface requirement:

  • The System shall send telemetry to the Ground System as defined in ICD 123, Table X.

Model Form of Requirements

Requirements can be recorded and managed via a document, database, or in the form of a model:

  • Models provide the capability to address completeness in terms of functions, inputs to those functions, sources of those inputs, outputs, and customers (destinations/users) for those outputs.
  • Models help facilitate communication by making complex systems and processes easier to understand (a picture is worth a thousand words….).
  • Models enable the capture of interdependencies of requirements to other aspects of the system dataset, such as inputs, needs, architecture, test cases, etc.
  • Models enable quantitative analyses and execution of simulations.

In MBSE, the model form of requirements can be expressed as a diagram (Figure 6) or within a table in the modeling tool (Figure 7), using well-formed textual statements as part of a requirement model element. Refer to Requirements Management for further guidance on usage of tools associated with textual and model requirements.

Error creating thumbnail: File missing
Figure 6. Example of a Model Based Requirement Diagram. (SEBoK Original)
Error creating thumbnail: File missing
Figure 7. Example of a Model Based Requirement Table. (SEBoK Original)

Addressing Unknowns

When initially generating a set of requirements, there is often a set of parameters which may require future analysis to determine their actual value.  One common method to do this is to use a placeholder in the requirement statement to indicate the requirement is drafted, yet further work is needed before it is considered complete. When a value is unknown, a common approach is to use the "To Be Determined" (TBD) indication within the requirement statement, in place of an actual value. When a value is determined but confidence is low (e.g., feasibility has not been assessed), a method to reflect this is to use the "To Be Resolved" (TBR) indication next to the value. Together, TBRs and TBDs are referred to generically as "TBXs". Keeping track of TBXs allows for awareness of the maturity of the requirements throughout the life cycle and is a valuable metric to evaluate completion and maturity of the integrated set of needs and set of design input requirements.

TBXs can lead to risk if not addressed by the project team prior to significant work in establishing the design solution. TBX management is the process of identifying the TBXs in a requirement set, establishing the work needed to resolve closure of the issue, identifying the owner of the work, and systematically iterating through and completing the actions to enable removal of these placeholders in the requirements.

Traceability

Traceability is a powerful way to manage the design input requirements, especially across levels and across subsystems and system elements within a specific level as well as manage the requirements across the life cycle. Traceability helps ensure the requirements trace to their needs, and that they are correct and complete. Traceability also helps identify allocation of requirements to lower-level system elements of the architecture. Traceability is used to access any impacts of changes to requirements or other types of data across the life cycle, enabling insight into whether that change is beneficial or costly.

Defining a traceability relationship model at the beginning of the project enables an understanding of which relationships will be established and managed via traceability throughout the development of the SoI. An example traceability model is shown in Figure 8 (INCOSE NRM 2022).

Figure 8. Example Traceability Model. This figure is reprinted with permission of Lou Wheatcraft. All other rights are reserved by the copyright owner.

Planning for System Verification

A best practice is to do early planning for how the project will perform system verification. Defining the system verification success criteria, strategy, and method when the requirements are generated helps ensure the requirement statements are worded properly, are within the scope of the project plans, and demonstrate they have the characteristic of "verifiable". This information can be captured within the attributes defined for the requirement.

Assessing the Requirements

Requirements should be assessed to gauge whether they are well-formed and that they meet the intent of the needs from which they were transformed. Concepts behind assessment of the requirements are captured with the terms "requirement verification" and "requirement validation", which are not the same concepts described for system verification and system validation.

  • Requirement verification activities address: Are the requirements well-formed, i.e., do the individual requirements and sets of requirements have the characteristics and follow the rules defined in the organizations criteria for well-formed requirements?
  • Requirement validation activities address: Do we have the right requirements, i.e., do the requirements clearly communicate the intent of the needs, parent requirements, and other sources from which they were transformed, in a language understandable by the architectural definition, design definition, and manufacturing/coding teams?   Validation addresses if the requirements are correct and are also achievable.

There are several methods that can be used to verify and validate requirements, such as standard peer review techniques and comparison of each requirement against a set of requirements characteristics and the integrated set of needs. For requirements communicated in a textual form, guidelines exist for writing well-formed requirements; they include recommendations about the syntax of requirements statements, wording (exclusions, representation of concepts, etc.), and characteristics (specific, measurable, achievable, feasible, testable, etc.) (INCOSE GtWR 2023).

System Requirement Definition Artifacts

The System Requirements Definition process results in a variety of artifacts:

  • well-formed requirements recorded in models, databases, or documentation,
  • requirement tree,
  • traceability of requirements to other data,
  • defined interactions across boundaries,
  • performance budgets, and
  • initial system verification plans.

Requirements Management

Requirements Management (RM) is performed to ensure alignment of the system, subsystem, and system element requirements with other representations, analyses, and artifacts of the system across the life cycle. It includes providing an understanding of the requirements, obtaining commitment, managing changes, maintaining bi-directional traceability among the requirements and with the rest of the system definition, and alignment with project resources and schedule. The Requirements Management article provides additional guidance on methods for performing requirements management.

References

Works Cited

INCOSE. 2022. INCOSE Needs and Requirements Manual (NRM), version 1.1. INCOSE-TP-2021-002-01.

INCOSE. 2023. INCOSE Guide to Writing Requirements (GtWR), version 4. INCOSE-TP-2006-004-04.

Primary References

ISO/IEC/IEEE. 2018. Systems and Software Engineering - Requirements Engineering. Geneva, Switzerland: International Organization for Standardization (ISO)/International Electrotechnical Commission (IEC)/ Institute of Electrical and Electronics Engineers (IEEE), ISO/IEC/IEEE 29148.

ISO/IEC/IEEE. 2023.Systems and Software Engineering - System Life Cycle Processes. Geneva, Switzerland: International Organization for Standardization (ISO)/International Electrotechnical Commission (IEC), Institute of Electrical and Electronics Engineers (IEEE). ISO/IEC/IEEE 15288:2023.

INCOSE. 2023. Systems Engineering Handbook: A Guide for System Life Cycle Processes and Activities, version 5.0. Hoboken, NJ, USA: John Wiley and Sons, Inc, ISBN: 978-1-118-99940-0.

INCOSE. 2022. INCOSE Needs and Requirements Manual (NRM), version 1.1. INCOSE-TP-2021-002-01.

INCOSE. 2022. INCOSE Guide to Needs and Requirements (GtNR), version 1. INCOSE-TP-2021-003-01.

INCOSE. 2023. INCOSE Guide to Writing Requirements (GtWR), version 4. INCOSE-TP-2006-004-04.

Additional References

INCOSE. 2022. INCOSE Guide to Verification and Validation (GtVV), version 1. INCOSE-TP-2021-004-01.

Relevant Videos


< Previous Article | Parent Article | Next Article >
SEBoK v. 2.10, released 06 May 2024