reqif icon indicating copy to clipboard operation
reqif copied to clipboard

Support DOORS extension for relations

Open danwolstenholme-mujin opened this issue 6 months ago • 1 comments

I'm working on a tool to read ReqIF files from DOORS where one has requirements that are refined from the other. With many of these relations, they're recorded with SPEC-RELATION elements, with one requirements in SOURCE and the other in TARGET, so I just have to look up the values here in each document. However, with many of them, one of the SPEC-OBJECT-REFs doesn't point to a SPEC-OBJECT at all, but instead I see something like the following:

<rm:SPEC-OBJECT-EXTENSION>
    <SPEC-OBJECT-REF>_a123456789-1a2b-5a6b-1a2b-18216f297a4c</SPEC-OBJECT-REF>
    <rm:CORE-SPEC-OBJECT-REF>_987654321-3c4d-7a8b-1a2b-652715efedf3</rm:CORE-SPEC-OBJECT-REF>
</rm:SPEC-OBJECT-EXTENSION>

So my SOURCE ref points to the _987654321... ref in "rm:CORE-SPEC-OBJECT-REF", and then the other ref points to an actual SPEC-OBJECT in the reqif file. There doesn't seem to be a way to do this lookup currently with this reqif library. Would it be possible to add it please?

danwolstenholme-mujin avatar Jul 04 '25 09:07 danwolstenholme-mujin

Hello @danwolstenholme-mujin,

It looks like you are dealing with a custom extension by Doors which this library indeed does not support. In general, this library hasn't been designed to work with extensions until now because no user reported such a need strongly.

If I understand your issue correctly, we would first need to create an integration test that parses and unparses a ReqIF example that has <rm:SPEC-OBJECT-EXTENSION> and a corresponding implementation. This will teach the reqif library to convert this XML to corresponding Python classes/objects.

When that was in place, we would be able to create this kind of lookup in the library itself or it would be straightforward to write your own code on top of what the library does.

In any case, I believe I would need a minimal realistic example that features a ReqIF file with a scenario you describe: However, with many of them, one of the SPEC-OBJECT-REFs doesn't point to a SPEC-OBJECT at all, but instead I see something like the following....

Could you attach here such a valid ReqIF XML produced by Doors that I could use to implement this?

In addition, could you attach any documentation regarding this SPEC-OBJECT-EXTENSION? Querying is with Google does not seem to return anything relevant, so I guess it is an internal/proprietary feature of Doors? It is fine if you don't have access to such documentation, I can implement it without. I would like to understand the reason this extension exists and why the lookups are done in this strange way like you describe.

stanislaw avatar Jul 13 '25 12:07 stanislaw