PBR_SysML1.5_20150423

advertisement
Property-based Requirements in SysML 1.5
Author: Manas Bajaj | manas@intercax.com | Intercax
Date: Apr 9, 2015
Goal: The goal of this document is to list the pros and cons of relaxing the existing constraints
on SysML requirements to enable semantically-richer representation of property-based
requirements in SysML. The contents are meant to inspire discussion and resolution among the
PBRWG members, and to create draft proposal for SysML 1.5 RTF for inclusion of Propertybased Requirements in SysML 1.5.
1. Property ownedOperation must be empty
TBD
Relaxing this constraint is consistent with making «requirement» a classifier, like any other. Signal
reception, for example, doesn’t make sense for a requirement. Would it actually be desirable to keep this
constraint?
Relieving this constraint may be necessary for including verification operations/tests. Further discussion
needed before tightly integrating test concepts with requirements.
Analogous to constraint
blocks/constraint properties, which are disallowed from having behaviors.
2. Property ownedAttribute must be empty
Relaxation of this constraint would provide semantically richer representation of primitive
properties (~value properties) of requirements, reuse of requirements (~shared/reference
properties), decomposition of requirements (~part properties), and mathematical definition of
requirement (~constraint properties). In this section, we will address value and constraint
properties on requirements. Refer to discussion in constraint 3 below for reuse and
decomposition.
With property-based requirements, requirements can have primitive properties, as shown in
diagram fragments on Figure 1. The Wheel Requirement has value properties - diameter and
max diameter. It also has a constraint property dia constraint that is elaborated using
parametrics, as shown below in Figure 1. The parametric model provides a math representation
of the typical shall statement in requirement text.
Figure 1 - Properties on requirements
3. Classes stereotyped by «requirement» may not participate in associations
Relaxation of this constraint would provide semantically richer representation of requirement
reuse in the context of other requirements, and requirements decomposition.
Figure 2 shows requirement decomposition and reuse today with SysML 1.4.
Requirement decomposition is done using nesting of child requirements in the parent
requirement. The Power Requirement has 2 nested requirements - Max Power Requirement
and Min Power Requirement. This is how we create requirement structures in SysML 1.4. So,
we use namespaces to represent requirement structure which is not correct semantically since
we mix the idea of location of an element with the composition of the element.
Figure 2 - Requirement decomposition and reuse today
Requirement reuse is very challenging with SysML 1.4. Consider that we need to reuse the
Power Requirement in 2 different requirement specifications - Customer Specification and
Design Specification. This is very common in system engineering projects. When a project is
initiated and the customer specifications are created, the Power Requirement surfaces as one
of the key requirements from the customer. When the design specification is created (based on
the Customer Specification) for the internal design team to start system development, the
Power Requirement is used as-is since it is well-defined.
To reuse the Power Requirement in both the Customer Specification and Design Specification,
we have to create a dummy child (nested) requirements in both and then create a copy
relationship to the Power Requirement, as shown in Figure 3. Obviously, the “copy” relationship
is a qualitative relationship (dependency) and hence we cannot do much with it, such as
defining parametrics at the Customer Specification and Design Specification that would use the
properties of the Power Requirement.
Figure 3 illustrates requirement reuse and decomposition using Property-based Requirement
concept.
For reuse, we can use reference/shared association relationship (white/no diamond), and for
decomposition we can use composite association relationship (black diamond). As shown in
Figure 3, the reuse of Power Requirement is enabled by the shared association relationship
from the Customer Specification and Design Specification to the Power Requirement. No more
dummy requirements need to be created as we do in SysML 1.4. This will also allow us to define
parametrics at the Customer Specification and Design Specification requirement that can use
properties of the Power Requirement.
Figure 3 - Requirement decomposition and reuse with PBR
Requirement decomposition is enabled by using the composition relationships from the Power
Requirement to the Max Power Requirement and Min Power Requirement. Now, there is a
clear distinction between requirement structure and nesting. The Max Power Requirement and
Min Power Requirement may or may not be nested in the Power Requirement. Their location in
the model does not imply usage. So, requirements can start following the same reuse and
structure pattern that have for the rest of SysML elements, e.g. blocks and activities.
To investigate:
● Semantics of associations that are navigable at both ends. Check the semantics for
blocks.
4. Classes stereotyped
generalizations.
by
«requirement»
may
not
participate
in
Relaxation of this constraint would enable semantic representation of requirement reuse by
defining generalization hierarchies. In general, one can define a taxonomy of requirements in a
domain once this constraint is relaxed.
The Snow Wheel Requirement shown in Figure 4 extends the Wheel Requirement by defining
additional value properties - chain thickness and spike height. The Snow Wheel Requirement
inherits the diameter and max diameter value properties, dia constraint constraint property,
and the strength requirement for the material of the wheel.
Figure 4 - Requirement generalization
5. A nested classifier of a class stereotyped by «requirement» must also be
stereotyped by «requirement»
This constraint should also be replaced by something that implies the following in effect.
Requirements can participate in association relationships only with other requirements and
constraint blocks. For the latter, the association must be a directed association from a
requirement to a constraint block.
The primary rationale for the existing constraint in SysML has been that nested requirements
represent requirement decomposition. So, it did not make sense for a requirement to have
non-requirements (e.g. blocks) in the structures.
However, with the property-based requirement approach, we are making a clear distinction
between nesting (for namespaces) versus associations (for reuse and decomposition). It is
possible to nest constraint blocks (used for defining constraints on requirements) in the
requirement. In the future, if requirements are represented (refined) using activities or other
SysML elements, then these elements may also be nested in the requirement.
6. Classes stereotyped by «requirement» may not be used to type any other
model element.
This constraint must be relaxed since it will allow us to represent requirement reuse and
decomposition, as shown in Figures 3 and 4.
Additional capabilities needed for PBR beyond relaxing constraints for
requirement in SysML 1.4
1. Requirement description should be smart text such that words / phrases can be bound
to other model elements, e.g. properties on the same requirement or other model
elements.
2. When the referenced model elements are changed (name change, value change, etc.),
then the requirement text should automatically update.
< TBD >
Download