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