|
Requirement Quality Classes
[Previous]  [Next] 
|
![]() |
User Manual [Previous]  [Next] Requirement Quality ClassesA requirement can be tagged with the Syntax:
req <ReqIdentifier> quality {
<QualityClassName> {}
<QualityClassName> {}
...
}
Quality classes are declared with empty bodies. Non-empty bodies are currently accepted by the parser but produce warning 403 and have no effect on generated output. An implementsReq Speed(High); implementsReq Speed(High), Security(Perfect); When alternative designs (typically different mixsets) are each tagged with quality classes referring to the same set of quality requirements, the designs can be compared on a common set of criteria. See Requirement Quality Comparison Table for the generated output, and Requirements for the general requirement-statement syntax. Basic quality requirement declaration
// Quality requirements introduce named quality classes
// (discrete levels of a non-functional property) that can
// later be bound to alternative designs via implementsReq.
req Speed quality {
High {}
Medium {}
Low {}
}
req Security quality {
Perfect {}
SlightlyRisky {}
Weak {}
}
Load the above code into UmpleOnline Binding quality classes to alternative mixsets
// implementsReq binds a requirement (and optionally a specific
// quality class) to the following entity. Each mixset below is
// an alternative design tagged with its own quality levels.
req Speed quality {
High {}
Low {}
}
req Security quality {
Perfect {}
Basic {}
}
implementsReq Speed(High), Security(Perfect);
mixset DesignA {
class FastSecureCar {}
}
implementsReq Speed(Low), Security(Basic);
mixset DesignB {
class SlowCar {}
}
use DesignA;
Load the above code into UmpleOnline |