Building Better Reqts - SysML
Building Better Reqts - SysML
Revision History
Table of Contents
1 Introduction ............................................................................................................................ 3
1.1 Purpose............................................................................................................................. 3
1.2 Scope ................................................................................................................................ 3
1.3 Approach .......................................................................................................................... 3
2 References .............................................................................................................................. 4
2.1 Referenced Material ........................................................................................................ 4
2.2 Abbreviations and Acronyms ........................................................................................... 4
2.3 Definition of Terms........................................................................................................... 4
3 Understanding Requirements Best Practices ......................................................................... 7
3.1 Purpose and Scope ........................................................................................................... 7
3.2 Eliciting Requirements ..................................................................................................... 7
3.2.1 Current Best Practices............................................................................................... 7
3.3 Building Requirements ..................................................................................................... 9
3.3.1 Current Best Practices............................................................................................... 9
4 Building Better Requirements Engineering with SysML ....................................................... 14
4.1 Purpose and Scope ......................................................................................................... 14
4.2 Improved Requirements Engineering with SysML ......................................................... 14
4.2.1 Well-Formed Requirement Statements.................................................................. 14
4.2.2 Improved Requirement Attributes ......................................................................... 15
4.3 Process for the Development of System Requirements ................................................ 19
4.3.1 Convert Stakeholder Requirements into Well-Formed System Requirement
Statements ............................................................................................................................ 19
4.3.2 Analyze System Requirements ............................................................................... 20
4.3.3 Represent System Requirements and Intent with SysML Elements ...................... 20
4.3.4 Capturing Design and Verification .......................................................................... 21
4.3.5 Formal Review of System Requirements ................................................................ 21
1 Introduction
1.1 Purpose
It is an accepted fact in Systems Engineering (SE) that the quality of a system’s requirements
largely impacts how well the system will fully address the stakeholder’s concerns. Current SE
efforts place a heavy focus on developing and managing requirements properly, and though it is
known to be a value-added effort, requirements development and management is still arduous
and costly. Furthermore, the current methods for developing requirements requires that the SE
organization have a rigorous method for development in place and method for how to handle
requirements change without allowing creep.
SE, including requirements management, is also undergoing a paradigm shift as both the
community is beginning to incorporate the use of the Systems Modeling Language, SysML. This
paradigm shift not only demands that we adapt how requirements are managed, but also
provides the unique opportunity to improve how requirements are developed and managed
and, if done right, could potential reduce the time and cost associated with the management of
the requirements.
Therefore, the purpose of this document is to compile information gathered from various
sources to propose a better method for developing and maintaining requirements using SysML.
1.2 Scope
This document will specifically address requirements development and management standards
and best practices and how those can be incorporated using SysML. The goal is to provide an
initial plan for how requirements could be developed and managed with SysML but will likely
be improved upon as lessons are learned during implementation. Additionally, this document
will address potential features within SysML that could be used to better develop or manage
requirements.
However, this document will not cover the SysML language basics or any aspect that is not
associated with the development or maintenance of requirements. Nor does this document
attempt to cover any aspect of SE outside of requirements, though it will cover how the
requirements will be related to these aspects, i.e. how requirements are link to a verification or
physical architecture.
1.3 Approach
This document presents a compilation of existing guidance, standards and white papers with
the intent of explaining what a good requirement is, how requirements are developed with
traditional SE methods, and what could be done with SysML to improve those methods.
This compilation is followed with the author’s recommend plan for developing and maintaining
requirements using SysML to improve requirement rigor and potentialy reduce time and cost
for requirements management.
2 References
2.1 Referenced Material
1. INCOSE Requirements Working Group Technical Paper, “Guide for Writing
Requirement”, INCOSE-TP-2010-006-01, Rev 1
2. AFIS MBSE Technical Committee Technical Paper, “Requirements and Architecture
within Modelling Context”, ISBN 978-2-900969-00-7, December 2016
3. IEEE International Standard, “Systems and software engineering-Life cycle processes-
Requirements engineering”, ISO/IEC/IEEE 29148, First Edition 2011-12-01
4. deLamre, Mike, INCOSE Infrastructure Working Group Pamphlet, “Managing
Requirements for Design”, INCOSE-PI-2015-003-1.0, Version 1.0
5. Friednethal, Stanford; Moore, Alan; Steiner, Rick Textbook, “A Practical Guide to
SysML”, ISBN 978-0-12-800202-5, 2015
6. Delligatti, Lenny Textbook, “SysML Distilled: A Brief Guide to the Systems Modeling
Language”, ISBN 978-0-32-192786-6
7. Wikipedia Page, “Model-Based Systems Engineering”,
https://en.wikipedia.org/wiki/Model-based_systems_engineering, accessed December
19, 2018.
Requirements engineering
Interdisciplinary function that mediates between the domains of the acquirer and supplier to
establish and maintain the requirements to be met by the system, software or service of
interest. 3
Requirements management
Throughout the life cycle of a system, product, or service. 3
Stakeholder
Individual or organization having a right, share, claim, or interest in a system or in its possession
of characteristics that meet their needs and expectations. 3
System
A set of elements that interact with one another and can be viewed as a whole that interact
with its external environment to achieve an objective. 5
System Architecture
Fundamental concepts or properties of a system in its environment embodied in its elements,
relationships, and in the principles of its design and evolution. 2
System-Of-Interest
System whose life cycle is under consideration. 3
System Requirement Specification
Structured collection of the requirements (functions, performance, design constraints, and
attributes) of the system and its operational environments and external interfaces. 3
Traceability
Process used primarily to ensure the continuity and completeness in the refinement of the
need (specification and requirement set) in the solution. 2
Trade-off
Decision-making actions that select from various requirements and alternative solutions on the
basis of net benefit to the stakeholders. 3
User
Individual or group that benefits from a system during its utilization. 3
Validation
Confirmation, through the provision of objective evidence, that the requirements for a specific
intended use or application have been fulfilled. 3
Verification
Confirmation, through the provision of objective evidence, that specified requirements have
been fulfilled. 3
• Define System Domains: The system domains refer to each of the specific conditions of
a given instance where the SOI is used. For instance, if the SOI is a knife, there could be
a domain related to self-defense and another for cutting food. Each domain may
interact with different other systems (i.e. an adversary or a cucumber) and may require
different functionality for each one (i.e. poisoned-tipped or sanitary).
Typically, a system’s domain is defined by outlining all other systems it will interact with,
and any known interfaces between the systems. The domain should also define the
users of the SOI, its stakeholders and the environment the SOI will operate in when
applicable.
• Define Use Cases: The Use Cases of a system represent the highest level of abstraction
for defining the functionality of the SOI within a given domain in terms of how it is used
to achieve the goals of its various users. Use Cases can be derived from Mission
Scenarios, Operational Scenarios, or other interpretation of stakeholder needs. Use
Cases will also begin to define how the interfacing systems and the SOI will interact.
• Define Key Performance Parameters: Though it may go by many names the intent of
these Key Performance Parameters (KPPs) is to have specific parameters that are critical
to users or stakeholders in order to measure how well the design of the system is
meeting its goals. KPPs are typically associated with the first degree of functionality that
will achieve its mission. For example, assume a KPP of a missile is to travel above a
certain velocity to avoid detection. Though many parameters may impact speed (weight,
shape, etc.) the KPP is just the missile’s cruising velocity.
The KPP’s should be tied to the SOI and to which stakeholder requirement it is held to as
it is common to have competing KPPs and their priority will need to be weighed.
• Define System’s Constraints: These are the perceived high-level constraints placed on
the SOI for a specific domain. These are often simplified and defined in more detail as
the detailed design work occurs. An example of a high-level constraint could be the
intended location for the storage of the SOI may only allow object below a set weight to
be stored, this would put a constraint on the SOI in the form of a maximum weight.
The various definitions of the SOI can be document in the Concept of Operations (CONOPS)
document or any other document (or model) that is readily available to all of stakeholders.
It is important that the system is well defined before transforming the elicited stakeholder
requirements into requirement statements or there is a significant risk of misinterpreting
the intent of the system.
3.3.1.2 Constructing Well Formed Requirement Statements
Constructing well formed requirement statements can begin after the first iteration of eliciting
stakeholder requirements and should be revised with each iteration. The first step in
constructing the requirements is to analyze the complete set of requirements by identifying
and prioritizing the conflicting, missing, incomplete, ambiguous, inconsistent, incongruous or
unverifiable requirements. Negotiation of requirements among stakeholders may be necessary
to resolve conflicts between schedule, budget, or performance of the system. The results of
these negotiations must be documented as part of the requirement’s rationale.3 Note that
Table 1 includes characteristics of sets of requirements which help guide the analysis of the
requirement sets.
Once all the requirement set problems have been resolved, ensure that all stakeholders needs
and expectations for the requirements set have been addressed. If the set of requirements is
inline with stakeholder intent the requirements should then be recorded in a suitable form for
requirements management.3 Table 1 and Table 2 provide guidance for writing proper singular
requirements.
Table 1: Characteristics of Well-Formed Requirements and Requirement Sets
Action
Object
Constraint
Value
• Graphical and standard notation helps reflecting expectations in a concise and less
ambiguous way
• Problems can be viewed from controlled viewpoints, which can assist with developing
comprehensive requirements, and creating scoped sets of data similar data for
assessments
• Assist with measuring progress in capture
• Model brings a centralized definition for requirements where all characteristics and
attributes can be contained
• Improved granularity through structured development through the levels of abstraction.
The following sections provide detailed explanations of implementations for gaining these
benefits through modeling.
4.2.1 Well-Formed Requirement Statements
Ensuring that requirements are captured in well-formed statements is a cornerstone of
requirements engineering. The best practices outlined in section 3.3 still provide the best
guidance for writing well-formed requirements. SysML alone provides no way to develop better
written requirements. However, it may be possible to develop validation rules, perhaps based
on the rules outlined in the INCOSE Guide for Writing Requirements, that could assess the text
property of requirements and highlight those that may be violating a rule. This would likely be a
serious and costly effort and is outside the scope of this document.
will have 2 satisfy relationships. This would be unusual and should include a rationale
element to clarify why these relations exist the way they do.
• How Many: Each requirement should have a rationale attached. Additionally, one
rationale element should be added to each element or relationship where extra
explanation is beneficial. Every element and relationship should have only one rationale,
but they should only be added if element or relationship needs additional explanation to
be fully understood.
4.2.2.3 Traceability
• Who: Requirements/Systems Engineer
• What: 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 artefacts. That is, all
parent-child relationships for the requirement are identified in tracing such that the
requirement traces to its source and implementation.
• Why: Bi-directional traceability is a technique that can be used to:
o Improve the integrity and accuracy of all requirements, from the system level all
the way down to the lowest level system element;
o Allow tracking of the requirements development and allocation with related
measures such as requirements coverage, compliance, and complexity;
o Provide a means of documenting and reviewing the relationships between layers
of requirements that capture certain aspects of the design; and
o Support easier maintenance and change implementation of the system in the
future.3
• Where: Traceability can be captured using “Trace” and “DeriveReqt” relationships
between requirement elements. The trace information can also be viewed/maintained
within a requirement’s specification.
• How: Requirements traceability is captured using the Trace dependency relationship to
show which external requirements, documents or stakeholders motivated or imposed
the requirement on the system. Additionally, as the system requirements are
decomposed into design requirements, the DeriveReqt dependency relationship is used
to capture show and understand how the design will satisfy the system’s requirements.
• How Many: All system requirements will require a minimum of 1 Trace dependency
relationship to ensure requirements are needed, but many requirements may have
more than 1. Most systems requirements will have one or several DeriveReqt
dependency relationships, though some requirements may only be satisfied by the
whole system and will not decompose into design requirements (NOTE: the
requirement rationale should also include the reasoning if no DeriveReqt is used).
• How Many: A requirement may have no type or may have several types. However, each
requirement should be assessed to see which types, if any, apply.
4.2.2.6 Model Representation
• Who: System Modeler/System Engineer
• What: An attribute that shows how the intents of the requirement have been
incorporated within the system model. This is direct relationship between the
requirement and the element(s) that represent its intent.
• Why: In order to reach completeness, there is a need to ensure that all requirements
have been analyzed and considered in the modeling architecture.
• Where: This dependency relationship can be built within the element’s specification,
graphs or on an allocation matrix. Ultimately all of these will build the relationship the
same in the model.
• How: The specific relationship used to represent the connection between a requirement
and its model representation has some debate, but the general consensus is to use the
‘Refine’ dependency relationship as the intent is in line with this purpose and prevent
the development of unnecessary customization which can have costly impacts when
attempting to connect various models from different modeling organizations.
• How Many: Each requirement will need at least one modeling element (in addition to
the requirement element) to represent its intent. However, most requirements will have
1-3 elements that are directly responsible for representing its intent.
4.2.2.7 Alignment with Design
• Who: Design Agent
• What: The relationship between the requirements and the design is documented.
• Why: The way in which requirements flow down through the layers of abstraction
should reflect the design, and therefore the flow-down structure should be connected
to the design. The documentation of such relationships also aids analysis of the impact
on design of changing requirements. This relationship will also help during integration
and verification where proof that the system as designed and built meets the
requirements.1
• Where: This dependency relationship can also be built within the element’s
specification, graphs or on an allocation matrix. Ultimately all of these will build the
relationship the same in the model.
• How: The ‘Satisfy’ dependency relationship, part of the SysML standard, is included
specifically to capture a requirement’s alignment with design. The other end of the
relationship should be a block that represents a logical or physical implantation of the
design.
• How Many: Every requirement should have at least one block satisfying it. Occasionally
a requirement may need to be satisfied by two or three blocks, but these instances
should have the rationale attached to the satisfy relationship that can explain the
reason the requirement can only be satisfied by multiple parts of the design.
4.2.2.8 Alignment with Evidence / Verification
• Who: Design Agent/Stakeholder(approval)
• What: The relationship between requirements and verification artifacts is documented
to trace individual requirements to those validation and verification artifacts that
provide evidence for the satisfaction of that requirement and, in turn, to the results of
the validation and verification actions.
• Why: The requirements set not only supports the design, but also drives the collection
of evidence needed to support assurance, conformance and acceptance. Evidence is
collected through the planning and execution of validation and verification methods,
such as analysis, inspection, demonstration and test. The relationship between
requirements and validation/verification artifacts should therefore be documented, so
that the adequacy, necessity and outcomes of the verification and validation activities
can be accessed. The documentation of such relationships also aids analysis of the
impact on verification and validation of changing requirements.1
• Where: This dependency relationship can also be built within the element’s
specification, graphs or on an allocation matrix. Ultimately all of these will build the
relationship the same in the model.
• How: The SysML ‘Verify’ Relationship can connect the artifacts or verification cases to
the individual requirements
• How Many: Every requirement should have at least one verify relationship. The
requirement can have as many verify relationships as needed to ensure the requirement
is fully verified, however rationale should be included if multiple verifications are
needed.
In order to maintain an understanding the requirements intent and what influenced it, it is
important to capture the rationale of the requirement, section 4.2.2.2, as well modeling each
requirements ‘Trace’ relationship, section 4.2.2.3.
It is recommended to involve stakeholders through the process of developing the requirement
statements and their rationale. An informal review of the full set of requirement statements
can be conducted to ensure all stakeholders intents have been captured and agreed upon.
4.3.2 Analyze System Requirements
Once the full set of requirements has been developed and agreed upon, the requirements are
analyzed to determine their priority, category and overall impact on design. The design agent
should work with stakeholders to develop a prioritization for each of the requirements which
are the captured in the model, section 4.2.2.4. The design agent, especially the lead systems
engineer, should then work to apply the types to requirements where appropriate, section
4.2.2.5.
The requirements will also be assessed to define the system to be developed. Section 3.3.1.1
provides some guidance on how major aspects of the system can be defined. The system
description will also assist with the next step as many elements will be part of modeling the
requirement intent.
4.3.3 Represent System Requirements and Intent with SysML Elements
As the system is beginning to be defined, the relationships to how the requirements are
impacting that definition should be captured. This is best done using the refine relationship
between an added element and the requirement responsible for its addition, as outlined in
section 4.2.2.6. Additionally, Table 4 provides an example short list of the rationale for using
various elements for various requirement types.
Table 4: Example of Modeling Elements for Refining Requirement Intent
• Ensure that all stakeholder concerns and needs have been addressed
• All requirement statements are well-formed and inline with the guidance provided in
the INCOSE Guide to Writing Requirements
• Ensure the system context and use cases have been defined
• Each of the attributes, described in section 4.2.2, have been properly developed for
every requirement.