System Requirements

From SEBoK
Revision as of 16:49, 20 July 2011 by Afaisandier (talk | contribs) (Traceability and assignment of System Requirements during design)
Jump to: navigation, search

Introduction, Definition and Purpose of System Requirements

Introduction - This section provides knowledge about the notion of system requirements, the translation of Stakeholder Requirements into System Requirements, the relationships between the system requirements of the System of Interest and those of its systems or system elements, and the related SE activities and methods. The set of baselined System Requirements is one of the major outcomes of these activities. This set represents the problem from a supplier and a designer point of view, and it can be viewed also as a model of the expected System of Interest.

Definition and Purpose - A requirement is “a statement that identifies a system, product or process characteristic or constraint, which is unambiguous, clear, unique, consistent, stand‐alone (not grouped), and verifiable, and is deemed necessary for stakeholder acceptability.” (INCOSE 2010, p. 362). The System Requirements are all of the requirements at the “system level” that have been properly translated from the list of stakeholders' requirements. The System Requirements will form the basis of system design, verification, and stakeholder acceptance. In this context, the “stakeholders” include, but are not limited to, end users, end user organizations, supporters, developers, producers, trainers, maintainers, disposers, acquirers, customers, operators, supplier organizations, accreditors, and regulatory bodies. (ISO/IEC June 2010)

System Requirements play major intricate roles in the engineering activities. They serve:

  • as the essential inputs of the system design activities, in order designers know what characteristics are expected and so being able to give corresponding properties to the solution.
  • as reference for the system validation activities, in order testers may review the requirements during their development checking their right expression as validation reference, and identifying the necessary means to test the system against the requirements.
  • as a communication means, between the various technical staff that interact within the project.

Principles about System Requirements

Translation of Stakeholder Requirements into System Requirements

Quite often, the set of Stakeholder Requirements may contain vague, ambiguous, and qualitative “user-oriented” requirements 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 design and verification activities. The System Requirements resulting from this translation are expressed in technical language useful for design; unambiguous, consistent, with no contradiction, exhaustive, and verifiable. Of course, close coordination with the stakeholders is necessary to ensure the translation is accurate.

As an example, a need or an expectation such as "To manoeuvre easily a car to park it", 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. Analyzing for example the Stakeholder Requirement "Increase the drivability of the car", it will be translated in a set of System Requirements specifying measurable characteristics such as the turning circle (steering lock), the wheelbase, etc.

Traceability and assignment of System Requirements during design

Requirements traceability provides the ability to trace information from the origin of the Stakeholder Requirements at the top level to the lowest level of the system hierarchy - see section "Top-down and recursive approach to system decomposition" in the topic Fundamentals of System Definition. 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 design, the assignment of requirements from one level to lower levels in the system hierarchy can be accomplished using several methods, as appropriate:

  1. Direct assignment: the System Requirement from the higher level is directly assigned to a system or a system element of a lower level (for example, the color used to paint visible parts of the products)
  2. 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.
  3. 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 resulted 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.
  4. Derived requirement (from design): such System Requirements are developed during the design activities as a result of 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.

Classification of System Requirements

Several classifications of System Requirements are possible, depending on the requirements definition methods and/or the design methods used. ISO/IEC 29148:2011 – Systems and software engineering – Life cycle processes – Requirements engineering provides a classification summarized below – see references for other interesting classifications:

  1. Functional requirements: describe qualitatively the system functions or tasks to be performed in operation.
  2. Performance requirements: 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.
  3. Usability requirements: define quality in use such as measurable effectiveness, efficiency, and satisfaction criteria.
  4. Interface requirements: 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.
  5. Operational requirements: define operational conditions or properties under which the system is required to operate or exist. This type of requirements includes human factors and ergonomics, availability, maintainability, reliability, security.
  6. Modes and/or states requirements: define the various Operational Modes of the system in use, and events conducting to Transitions of Modes.
  7. Adaptability requirements: define potential extension, growth or scalability during the life of the system.
  8. Physical constraints: define constraints on weight, volume and dimension applicable on system elements that compose the system.
  9. Design constraints: 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 on-line repository).
  10. Environmental conditions: 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.)
  11. Logistical requirements: 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.
  12. Policies and regulations constraints: define relevant and applicable organizational policies or regulatory requirements that could affect the operation or performance of the system (e.g. labour policies, reports to regulatory agency, health or safety criteria, etc.).
  13. Cost and schedule constraints: define for example the cost of a single exemplar of the system, the expected delivery date of the first exemplar, etc.

Process Approach – System Requirements

Purpose and Principle of the Approach

The purpose of the system requirements analysis process is to transform the stakeholder, user-oriented view of desired services 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

Major activities and tasks performed during this process include:

  1. Analyzing the Stakeholder Requirements to check completeness of expected services and operational Scenarios, conditions, Operational Modes, and constraints.
  2. Defining the System Requirements and its Rationale.
  3. Classifying the System Requirements using suggested classifications classifications – see examples above.
  4. Incorporating the derived requirements (coming from design) into the System Requirements baseline.
  5. Establishing the upward traceability with the Stakeholder Requirements.
  6. Verifying the quality, completeness of each System Requirement and the consistency of the set of System Requirements.
  7. Validating the content and relevance of each System Requirement against the set of Stakeholder Requirements.
  8. Identifying potential Risks (or threats and hazards) that could be generated by the System Requirements.
  9. Synthesizing, recording, and managing the System Requirements and potential associated Risks.

Artifacts and Ontology Elements

This process may create several artifacts such as:

  1. System Requirements Document
  2. System Requirements Justification Document (for traceability purpose)
  3. System Requirements Database, including traceability, analysis, rationale, decisions, and attributes, where appropriate.
  4. 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 handles the ontology elements of the Table below.

Table 1. Main ontology elements as handled within system requirements definition

The main relationships between ontology elements are presented in Figure below.

Figure 1. System Requirements relationships with other engineering elements (Alain Faisandier, 2011)

Checking and Correctness of System Requirements

System Requirements should be checked to gauge whether they are well expressed and appropriate. There are number of characteristics which can be used to check System Requirements. The set of System Requirements can be verified using standard peer review techniques and by comparing each requirement against the set of requirements characteristics listed in the Tables of the section "Presentation and Quality of Requirements".

The requirements can be validated using the requirements elicitation and rationale capture described in section "Methods and Modeling Techniques" further.

Methods and Modeling Techniques

Requirements Elicitation and Prototyping

Requirements Elicitation is one approach that requires user involvement, and can be effective in gaining stakeholder involvement and buy-in. QFD (Quality Function Deployment) 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. The inputs to the QFD application are user needs and operational concepts, so it is essential that the users participate. Users from across the life cycle should be included so that all aspects of user needs are accounted for and prioritized.

Early prototyping can help the users and developers identify the functional and operational requirements and user interface constraints through interactive use of system elements, models, and simulations. The prototyping allows for realistic user interaction, discovery, and feedback, as well as some sensitivity analysis. This helps to form a more complete set of requirements by improving the user’s requirements understanding.

Capturing Requirements Rationale

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 is especially powerful in capturing the rationale for stakeholder requirements, as this supports further requirements analysis and decomposition. The rationale can be captured directly in the requirements database. Of course, stakeholder involvement is essential for this process. It is possible to extend the method providing rationale that explains why a set of requirements satisfies a higher-level one – see Hull, Jackson, Dick, “Requirements Engineering”, Springer, Chapter 7.

Some of the benefits include:

  • Reducing the total number of requirements. As requirements are gathered and rationale is required for each, the requirement author may realize that a particular requirement may not be required or supportable, or that it duplicates an existing requirement. Reducing requirements count will reduce project cost and risk.
  • Early exposure of bad assumptions. Many poorly written or incorrect requirements are based upon faulty assumptions. By capturing (and questioning) requirements rationale, incorrect or faulty assumptions can be exposed early in the process, and the related requirements can be eliminated or properly rewritten.
  • 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. The requirements authors may be jumping to solution space, rather that stating the problem to be solved. By properly capturing requirements rationale, these “design requirements” are often exposed and rewritten properly to allow appropriate design latitude to develop a cost-effective solution.
  • Improves communication with the stakeholder community. By capturing the requirements rationale for all Stakeholders Requirements, the line of communication between the users and the designers is greatly improved. This will result in better understanding of the problem space, elimination of ambiguous requirements, and, eventually, a greatly improved system validation process, etc. since the intent of the stakeholders is well-documented and clarified. Adapted from (Hooks and Farry 2000, Chapter 8).

Modeling Techniques

Modeling techniques can be used when requirements must be detailed or refined, or when they address topics not considered during the Stakeholders’ Requirements Definition and Mission Analysis:

  • State-charts models (ISO/IEC June 2010, Section 8.4.2)
  • Scenarios modeling (ISO/IEC June 2010, Section
  • Simulations, prototyping (ISO/IEC June 2010, Section
  • Quality Function Deployment (INCOSE 2010, p. 83)
  • Sequence diagram, Activity diagram, Use case, Requirements diagram of SysML
  • Etc.

Presentation and Quality of Requirements

Generally, requirements are provided in a textual form. Guidelines exist to write good requirements; they include recommendations about sentence syntax, wording (exclusions, representation of concepts, etc.), semantics (specific, measurable, achievable, realistic, testable). Refer to (INCOSE 2010, section

There are several characteristics of requirements and sets of requirements that ensure the quality of requirements. These are used both to aid the development of the requirements and to verify the implementation of requirements into the solution. The two Tables below provide a list and descriptions of the characteristics for individual requirements and for a set of requirements, as adapted from (ISO/IEC June 2010, sections 5.2.5 and 5.2.6).

Table 2. Characteristics of Individual Requirements (ISO/IEC 29148)

Table 3. Characteristics of a Set of Requirements (ISO/IEC 29148)

Requirements in Tables

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-dependant 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

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
  • Clearly indicate and explain unique symbols that represent requirements in the flow chart.

Requirements in Drawings

Drawings also provide a graphical means to define requirements. The type of requirement defined in a drawing depends on the type of drawing. 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.

Application to Product systems, Service systems, Enterprise systems

The classification of System Requirements may have differences between those types of systems.

Practical Considerations about System Requirements

There are several pitfalls that will inhibit the generation and management of an optimal set of System Requirements. See table below.

TABLE - Major pitfalls with definition of System Requirements

The following proven practices in system requirements engineering have repeatedly been shown to reduce project risk and cost, foster customer satisfaction, and produce successful system development. See table below.

TABLE - Proven practices with definition of System Requirements


Please make sure all references are listed alphabetically and are formatted according to the Chicago Manual of Style (15th ed). See the BKCASE Reference Guidance for additional information.


List all references cited in the article. Note: SEBoK 0.5 uses Chicago Manual of Style (15th ed). See the BKCASE Reference Guidance for additional information.

Primary References

All primary references should be listed in alphabetical order. Remember to identify primary references by creating an internal link using the ‘’’reference title only’’’ (title). Please do not include version numbers in the links.

(ISO/IEC June 2010)

IEEE 830

(ISO/IEC 2008)

(van Lamsweerde 2009)

(Faisandier 2011)


Additional References

All additional references should be listed in alphabetical order.

(Roedler et al. 2010)

Article Discussion

[Go to discussion page]