list of dots Digital Research Alliance of Canada logo  NSERC logo  University of Ottawa logo / UniversitĂ© d'Ottawa

User Manual    [Previous]   [Next]   

Requirement Quality Comparison Table

Once alternative designs have been tagged with quality classes through implementsReq (see Requirement Quality Classes), the Plain Requirements Doc generator can emit a comparison table. The table lists every quality requirement as a row and every quality-tagged mixset as a column, so the alternatives can be compared on a shared set of criteria.

The feature is activated with the reqQC suboption of the PlainRequirementsDoc generator. From inside an Umple file:

generate PlainRequirementsDoc;
suboption "reqQC";

Or from the command line:

umple -g PlainRequirementsDoc -s reqQC your_model.ump

In UmpleOnline you can also select Requirements Doc with Comparison Table from the Generate dropdown, which invokes the same generator with reqQC pre-applied without requiring the suboption "reqQC"; directive in the source file.

The currently-active mixset (the one selected via a use statement or through the UmpleOnline feature-tree selector) is prefixed with an asterisk in the generated table header.

See also Sorting Requirements for other suboptions supported by the same generator, including reqSortID, reqSortStat, and reqHideNotImpl.


Generating a comparison table for two alternative mixsets

// Full example producing the alternative-design comparison
// table. The reqQC suboption of PlainRequirementsDoc emits an
// HTML table with one row per quality requirement and one
// column per quality-tagged mixset.

generate PlainRequirementsDoc;
suboption "reqQC";

require subfeature [1..1 of {DesignA, DesignB}];

req Speed userStory {
  who { architect }
  what { compare speed across designs }
}

req Speed quality {
  High {}
  Low {}
}

req Security userStory {
  who { architect }
  what { compare security across designs }
}

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