Hi everyone,
Stephen, here is another cut at the composition section from
multiple specifications. I've re-categorized according to the new
dimensions of inclusion. I've also generated newer forms of the Widget
examples to describe these dimensions. The examples use your
suggestion of "generalizing" the TA to express specification
relationships (ie. the predicate specifies target conformance to the
spec, and the prerequisite describes the relationship to a referenced
spec).
I hope I've captured our resolutions from the F2F, but feel free to
suggest or rewrite my language as appropriate.
Thanks, Regards,
Kevin L
3.5.2 Composition of Assertions
There are three dimensions that describe how assertions from a
referenced specification may be included within an umbrella
specification:
'wholesale or partial', 'mandatory or conditional', 'changed or
unchanged'. These relationships between specifications can be expressed
using a TA. This form of a TA is a specific form of an assertion, as
it expresses some form of conformance (like a conformance clause).
Multiple dimensions can be expressed within these relationships (for
example, a subset of TAs from a reference spec may be conditionally
included in an umbrella spec).
Inclusion (wholesale or partial)
Wholesale inclusion describes the simple case where a target in an
umbrella specification is completely conformant to the assertions of a
referenced specification.
TA id: widget-TA100-8
Target: Widget
Normative Source: specification requirement 118 in WidgetSpec 1.0
Prerequisite: [the widget] is conformant to WidgetMobile Small Box
Specification 1.2
Predicate: [the widget] is conformant to WidgetSpec 1.0
Prescription Level: mandatory
Interpretation: "All widgets conformant to the WidgetSpec1.0 must
also be conformant to the WidgetMobile Small Box Specification 1.2"
Partial inclusion describes a case where a target in an umbrella
specification is conformant to some subset of assertions in a
referenced specification. Expression of this relationship can be
achieved via grouping constructs (using 'tagging')
TA id: widget-TA100-9
Target: Widget
Normative Source: specification requirement 119 in WidgetSpec 1.0
Prerequisite: [the widget] is conformant to the "smaller box"
Conformance Profile of the Mini-Widget Small Box Specification 1.2.
Predicate: [the widget] is conformant to WidgetSpec 1.0
Prescription Level: mandatory
Note: "Some portion of the TAs for the Mini-Widget Small Box
Specification 1.2 are tagged to indicate their inclusion in the Smaller
Box conformance profile"
Interpretation: "All widgets conformant to the WidgetSpec1.0
specification must also be conformant to the 'smaller box' assertions
of the WidgetMobile Small Box Specification 1.2"
Inclusion (mandatory or conditional)
This dimension of inclusion describes the conditionality whether
assertions in an umbrella specification is conformant to a referenced
specification. The prerequisite of the assertion may:
a. require that optional portions of the referenced spec be
implemented in the umbrella,
b. conditionally require optional portions of the referenced spec
be implemented in the umbrella (for example, based on the presence of
hardware or some other such support), or
c. make remaining (required) portions of the referenced spec be
optional
The example of widget-TA100-8 already shows how a widget
describes mandatory conformance. The following widget describes a
conditional conformance:
TA id: widget-TA100-10
Target: Widget
Normative Source: specification requirement 120 in WidgetSpec 1.0
Prerequisite: IF [the widget] has restriction of box size 760 mm x 480
mm x 100 mm or less THEN [the widget] is conformant to the Conformance
Profile of the Mini-Widget Small Box Specification 1.2.
Predicate: [the widget] is conformant to WidgetSpec 1.0
Prescription Level: mandatory
Interpretation: "All widgets conformant to the
WidgetSpec1.0 specification must also be conformant to the assertions
of the WidgetMobile Small Box Specification 1.2 IF the widget is
smaller (or equal) in size to 760 mm x 480
mm x 100 mm "
Inclusion (unchanged or changed)
This dimension of inclusion describes where an umbrella specification
is conformant to a referenced specification, where some subset of
assertions must be modified. This assumes some partitioning of the
unchanged assertions and modified assertions (via tagging, as in
'partial inclusion' above).
From the referenced Spec:
TA id: Small Box widget-TA433-1
Target: Small Box Widget
Normative Source: specification requirement 192 in Small Box WidgetSpec
1.0
Predicate: [the widget] MAY weigh 15 ounces or less
Prescription Level: mandatory
For the modified assertions in the referenced spec, the original TAs
must be invalidated, and new 'modified TAs' must be created to express
the changed meanings.
From the referenced Spec (modified TA):
TA id: Small Box widget-TA433-1
Target: Small Box Widget
Normative Source: specification requirement 192 in Small Box WidgetSpec
1.0
Predicate: [the widget] MAY weigh 15 ounces or less
TAG: INVALIDATEDFOR-MOD_WIDG1.0
Prescription Level: mandatory
TA id: Small Box widget-TA433-1-MOD_WIDG1.0
Target: Small Box Widget
Normative Source: specification requirement 192 in Small Box WidgetSpec
1.0
Predicate: [the widget] MUST weigh less than 15 ounces
TAG: VALIDFOR-MOD_WIDG1.0
Prescription Level: mandatory
Finally, the Umbrella spec will specify the relationship for including
modified assertions:
TA id: widget-TA100-9
Target: Widget
Normative Source: specification requirement 122 in WidgetSpec 1.0
Prerequisite: [the widget] is conformant to the "VALIDFOR-MOD_WIDG1.0"
Conformance Profile of the Mini-Widget Small Box Specification 1.2.
Predicate: [the widget] is conformant to WidgetSpec 1.0
Prescription Level: mandatory
Interpretation: "All widgets conformant to the
WidgetSpec1.0 specification must conform to (modified) Mini-Widget
Small Box Specification 1.2."
Typically, assertions are modified in a referenced specification to be
strengthened in a few ways:
- strengthening the prescription level of an assertion (eg. x MAY
do y => x MUST do y), or
- strengthening the meaning of an assertion with additional
requirements (eg. IF x THEN z => IF (x AND y) THEN z).
|