Kira Resari
Kira Resari

Reputation: 2430

Export ReqIF from DOORS via DWA

My goal is to export a DOORS project to a ReqIF using Java. How can I achieve that? I know it is possible to do it manually in the DOORS client, so I assume that there's a way to automate that as well.

Currently, the closest I've come to this is by using DWA, OSLC and LYO to export a single requirement into an XML string. However, that also has massive problems, in the form that fields or informations get lost.

What I want is a sort of pipeline where I can ensure that if I import a ReqIF File to DOORS, I can then export it and get the same thing back out again.

However, currently, what I observe happening is this:

ReqIF (Input)               DOORS                   OSLC (Output)
------------------------------------------------------------------------------------------------
ReqIF.ForeignID             ForeignID               doorsAttribute:absoluteNumber
                            Absolute Number         dcterms:identifier
AdditionalInfo              AdditionalInfo          m_property:attrDef-1003
                            Created By              doorsAttribute:createdBy [One Value]
ReqIF.ForeignCreatedBy      ForeignCreatedBy        doorsAttribute:createdBy [A different value]
                            Created On              doorsAttribute:createdOn [One Value]
ReqIF.ForeignCreatedOn      ForeignCreatedOn        doorsAttribute:createdOn [A different value]
                                                    dcterms:created
ReqIF.ForeignCreatedThru    Created Thru            doorsAttribute:createdThru
FollowupReference           FollowupReference       rm_property:attrDef-1006
FollowupReference2          FollowupReference2      rm_property:attrDef-1007
FunctionalApportionment     FunctionalAppointment   [LOST]
ImplementerName             ImplementerName         [LOST]
IsReq                       IsReq                   rm_property:attrDef-1015
ReqIF.ForeignModifiedBy     ForeignModifiedBy       doorsAttribute:modifiedBy [One Value]
                            Last Modified By        doorsAttribute:modifiedBy [A different value]
ReqIF.ForeignModifiedOn     ForeignModifiedOn       doorsAttribute:modifiedOn
                            Last Modified On        doorsAttribute:modifiedOn
                                                    rm_property:attrDef-8
                                                    dcterms:modified
ReqIF.ChapterName           Object Heading          doorsAttribute:objectHeading
                            Object Number
ReqIF.Name                  Object Short Text       doorsAttribute:objectShortText
                                                    dcterms:description
ReqIF.Text                  Object Text             rm:primaryText
Paragraph Style             Paragraph Style         rm_property:attrDef-1016
Picture                     [LOST]
PictureName                 [LOST]
PictureNum                  [LOST]
Rational                    Rational                rm_property:attrDef-1017
Req-Id                      Req-Id                  rm_property:attrDef-1018
ReqSafetyLevel              ReqSafetyLevel          [LOST]
SourceReference             SourceReference         rm_property:attrDef-1020
SourceReference2            SourceReference2        rm_property:attrDef-1021
StageFrom                   StageFrom               [LOST]
StageTo                     StageTo                 [LOST]
VerificationMethod          VerificationMethod      [LOST]
VerificationState           VerificationState       rm_property:attrDef-1025
VerifierComment             VerifierComment         rm_property:attrDef-1026
                                                    oslc:instanceShape
                                                    acp:accessControl
                                                    dcterms:contributor
                                                    oslc:serviceProvider

Obviously, this approach has some problems, most notably that certain values from the original ReqIF input never reach the OSLC output. But there's also the issue that some fields in the outputted XML have the same title and are thus indistinguishable, but contain different values. Here's some samples of the output:

        <doorsAttribute:modifiedBy rdf:parseType="Literal"><div>ForeignModifiedBy: bcsthfr</div></doorsAttribute:modifiedBy>
        <doorsAttribute:modifiedBy rdf:parseType="Literal">kira_resari</doorsAttribute:modifiedBy>

        <doorsAttribute:modifiedOn rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2015-01-14</doorsAttribute:modifiedOn>
        <doorsAttribute:modifiedOn rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2020-08-07</doorsAttribute:modifiedOn>

That's why I'm now looking for a different approach that would simply return to me the ReqIF, as imported, either as a string or file. Is that possible, and if yes how can I do it?

Upvotes: 2

Views: 289

Answers (0)

Related Questions