Particulars for CALC2¶
Again, you can skip the particulars passage when you have no curiosity in the technicalities of ‘needs’ itself.
The describing text of any requirement (in ‘needs’) is standard rst (reStructuredText). So it can use hyperlinks,
forward-references to other needs and even warning-admonitions.
The full textual definition of Exact Calculator (CALC2) is:
.. demo:: Exact Calculator :ID: CALC2 :tags: demo2 :links: CALC1 This calculator should work with `Fractional Numbers <https://en.wikipedia.org/wiki/Fraction_(mathematics)>`_, and be exact for very big numbers; as defined in :need:`CALC2_1000ND` .. warning:: This implies ``floats`` are not possible in the implementation
The added specification¶
Like all other ‘needs’, the specification for Big fractional numbers (CALC2_1000ND) is straightforward. It links to “earlier” requirements.
.. spec:: Big fractional numbers :id: CALC2_1000ND :links: CALC_ADD;CALC_SUB;CALC_MULT;CALC_DIV :tags: demo2 The :need:`CALC2` ...
There is no prescribed order how the individual ‘needs’ can be linked. It kind of feels more natural to link to “higher level” (in the V-model) ‘needs’, and to one that are described “earlier” (in project-time). But when you can link them in any order.
Similar, a ‘need’ can link to any other ‘need’, independent of its type.
Above we have used a spec, to add this requirement; but a normal req (requirement) is possible too. You can configure any kind of ‘needs’, as you like.
You can even export ‘needs’ in one document and import them in another. For big projects with many levels of modules, and so, specification-documents, this is typical behaviour. In this small calculator example tha is not used.
To be able to trace whetter some test need to be adapted, we only have to add some “links” between the relevant test and the additional (test) specification.
In Big fractional numbers (CALC2_1000ND) that is done by adding some (outgoing) links to the existing tests. You may have to open/click the see the details row.
The incoming links are added automatically.