Use cases
Estimate the cost of a requirement
1.2 * (@Man\ days * 150 + ext@Manufacturing\ Cost)
Here, we see that the result for requirement AA-003
is marked as error because the property @Man days
used in the calculation is not a valid number.
Estimate the total cost of a parent requirement
SUM(ext@Cost, child)
Detect when a parent requirement is over budget
SUM(ext@Cost, child@Uses) > @Budget
Detect when parts composing an assembly are too heavy
SUM(@Weight, child@Refines→child@Uses) > @Max\ weight
Here, we see that the result for requirement AA-003
is marked as error because the property @Weight
used in the calculation is not a valid number.
Measure the coverage of a requirement
Percentage per relationship name
100 * IF(COUNT(child) = 0, 0, COUNT(child@Refines) / COUNT(child))
Here, this will tell you out of all children of BR, how many of them use the relationship ‘@Refines’, this is why it is necessary to specify a relationship name.
Does the requirement have a dependency?
parent@Refines->(key ~ 'BR-%')
  |
To know if a requirement has a parent or child with the relationship ‘@Refines’ with the key ‘BR-%’.
This will give you a true or false answer.
It can also be used with the child relation, and key ~ '%'
Measure the Test Coverage of children requirements
PERCENT(DISTINCT(child@Refines), ext@Test\ result = true)
Percentage of children requirements with relationship Refines, having an external property "Test result" completed