Description
DNG ReqIF Export shall ensure the following:
If there is a link from / to a Base Artefact in DNG and we export a Binding Artefact corresponding to this Base Artefact, the Binding Artefact in ReqIF shall have all the same links that the Base Artefact has in DNG.
In other words: The exported Binding Artefact in ReqIF shall inherit the links of the Base Artefact in DNG.
Motivation / Reason
DNG can have links from / to Base Artefacts, instead of links from / to Binding Artefacts (Base Artefacts reused in a module).
Links from / to Base Artefacts are also displayed in the corresponding Binding Artefacts (with a small icon indicating that the link is not from / to the Binding Artefact, but the Base Artefact).
The current situation regarding DNG ReqIF Export regarding links from / to Base Artefact is as follows (as of DNG 7.0.2):
Let us assume the following situation in DNG:
-There is a link between 'Base Artefact A' and 'Base Artefact B' (Base Artefact A => Base Artefact B)
-'Base Artefact A' and 'Base Artefact B' are reused as 'Binding Artefact A' and 'Binding Artefact B' in Module M
If we now export module M, the ReqIF will be as follows:
-DNG ReqIF Export exports Base Artefacts and every separate occurrence of their Binding Artefacts as separate SPEC-OBJECTS (i.e. separate SPEC-OBJECTS with unique ReqIF IDs)
=>In ReqIF, 'Base Artefact A' and 'Binding Artefact A' are not the same SPEC-OBJECT (as they have different ReqIF IDs)
-There is only a link between SPEC-OBJECTS 'Base Artefact A' and 'Base Artefact B'
*If we only export Module M and do not explicitly add 'Base Artefact A' and 'Base Artefact B' to ReqIF Definition, link in ReqIF references source and target SPEC-OBJECTS (i.e. 'Base Artefact A' and 'Base Artefact B') that are not actually part of the ReqIF => Link cannot be resolved by importing tool
-There is no link between SPEC-OBJECTS 'Binding Artefact A' and 'Binding Artefact B'
-The information that 'Base Artefact A' and 'Base Artefact B' are "the same" (and thus that the Binding Artefact should have the same links as the Base Artefact) is in the TOOL-EXTENSION
In our opinion this is an incorrect ReqIF representation of the DNG link situation.
Our reasoning is as follows:
-Currently, DNG ReqIF Export exports Base Artefacts and every separate occurrence of their Binding Artefacts as separate SPEC-OBJECTS (i.e. separate SPEC-OBJECTS with unique ReqIF IDs)
*There is an ongoing discussion in the ReqIF Implementor Forum that this behavior should be changed; in short, the proposal is "The ReqIF standard compliant way to export re-used requirements is by exporting a single SpecObject and referencing that SpecObject from multiple SpecHierarchies", i.e. Base Artefacts should be the same SPEC-OBJECT as their Binding Artefacts in ReqIF, not separate SPEC-OBJECTS
*ReqIF Implementor Forum Issue: https://prostep-ivip.atlassian.net/browse/REQIF-145
*I have also created Ideas that DNG ReqIF Export / Import shall handle reused requirements / SPEC-OBJECTS this way:
Export: https://ideas.ibm.com/ideas/ENGRMDN-I-520
Import: https://ideas.ibm.com/ideas/ENGRMDN-I-548
*If these Ideas / potential recommendation by the ReqIF Implementor Forum are implemented for DNG ReqIF Import / Export, the current Idea may be obsolete
*The current Idea is valid for the current handling of Base Artefacts vs. Binding Artefacts by DNG ReqIF Export / Import
-To reiterate: DNG ReqIF Export exports Base Artefacts and every separate occurrence of their Binding Artefacts as separate SPEC-OBJECTS
-The information that these separate SPEC-OBJECTS are "the same" is only in TOOL-EXTENSIONS
-There currently is no way in ReqIF to model that two SPEC-OBJECTS (with different ReqIF IDs) are "the same" (outside of TOOL-EXTENSIONS, which are an optional, non standardized part of ReqIF
-No tool is obliged to export any particular information into TOOL-EXTENSIONS; no tool is obliged to import any particular information from TOOL-EXTENSIONS (or obliged to "understand" TOOL-EXTENSIONS from a particular exporting tool)
=>No tool is obliged to be able to import the DNG-specific TOOL-EXTENSIONS that state that 'Base Artefact A' and 'Binding Artefact A' are "the same", and that 'Binding Artefact A' should have all the links of 'Base Artefact A'
-If we ignore the TOOL-EXTENSIONS - which we are allowed to, because no tool is obliged to import them - the ReqIF exported by DNG ReqIF Export states that there is no link between 'Binding Artefact A' and 'Binding Artefact B'
-In our opinion, this would be against user expectation as DNG shows that there is a link between 'Binding Artefact A' and 'Binding Artefact B'
-It is correct that this link is 'actually' between their Base Artefacts, but DNG ReqIF Export exports Base Artefacts and Binding Artefacts as separate SPEC-OBJECTS and there is no way in (Standard) ReqIF to model that two SPEC-OBJECTS (with different ReqIF IDs) are "the same"
In our opinion, the approach regarding the "Standard" part of ReqIF and TOOL-EXTENSIONS should be as follows:
-"Standard" part of ReqIF (i.e. without TOOL-EXTENSIONS) should contain the best representation of the export data that is possible using standard ReqIF
*It may be impossible to model some toolspecific aspects (e.g. the fact that Base Artefacts are the same as their Binding Artefacts, but Base Artefacts have links the Binding Artefacts do not "really" have)
*In such case, the "Standard" part of ReqIF should contain the best possible representation
*In the specific case described in this idea, our opinion is that the best possible representation is that the Binding Artefacts in ReqIF HAVE links ("more correct" than them not having any links)
-TOOL-EXTENSIONS part of ReqIF shall be used to model toolspecific aspects that cannot be modelled using "Standard" part of ReqIF
*In the specific case described in this idea, the TOOL-EXTENSIONS could specify the following:
'Base Artefact A' and 'Binding Artefact A' are "the same"
The following links involving 'Binding Artefact A' actually only exist for 'Base Artefact A': ... (i.e. importing tool that "understands" these TOOL-EXTENSIONS only imports links for Base Artefact)