Requirements Interchange Format (ReqIF) is an open industry standard for exchanging requirement documents between requirements management (RM) tools. ReqIF is based on a generic XML file format and has several advantages compared to CSV files, which store tabular data in plain text:
You can use ReqIF to migrate whole requirements projects from another RM tool, such as IBM Rational DOORS and Rational DOORS Next Generation (DNG), Polarion Requirements, Windchill, or Visure.
You can also use ReqIF to import high-level requirements managed in another RM tool. For instance, you might need to share stakeholder requirements specifications or international standards stored in Rational DNG with new requirements projects managed in ReqView.
Note: ReqView supports one-time import of the latest ReqIF version 1.2 only. Iterative import and update from ReqIF is planned for ReqView 2.15.
You can import requirements from ReqIF packages, including their hierarchy, attributes, relations, and attachments, using an automatic one-click import process. No configuration should be required for ReqIF packages that follow the recommended attribute naming conventions, see ReqIF Implementation Guide by ProSTEP iViP association.
To import a ReqIF package into the current ReqView project, click File, mouseover Import, and select ReqIF Package. In the file picker dialog, choose an imported ReqIF file (.xml, .reqif, .reqifz or .zip). The application will then load the ReqIF package and open the Configure ReqIF Import dialog displaying the list of specifications found in the ReqIF file:
You can edit the list of ReqIF specifications to import, see Select ReqIF Specifications. Press the OK button to import the chosen ReqIF specifications as new documents into your current project.
In the Configure ReqIF Import dialog, press the Autofill button to load advanced settings for your ReqIF package in JSON format. This will prefill the config based on the current input, showing settings only for the selected specifications and taking the input attribute mapping into account. Press the button again after making some changes to the config to refresh the configuration.
To select ReqIF specifications to import, list the value of either LONG-NAME
or IDENTIFIER
for each desired ReqIF specification in the reqifSpecifications
configuration property (array). All ReqIF specifications will be imported if the reqifSpecifications
array is not present in the config.
Example: Import ReqIF specifications with LONG-NAME
set to "Software Requirements Specification" and "Glossary".
{ "reqifSpecifications": [ "Software Requirements Specification", "Glossary" ]}
To map ReqIF specification attributes to ReqView documents properties, set the reqviewDocumentProperties
configuration property (object):
id
or name
(string)LONG-NAME
or IDENTIFIER
of the imported ReqIF specification (string)Example: Set the ReqView document identifier to the value of LONG-NAME
for all imported ReqIF specifications.
{ "reqviewDocumentProperties": { "id": "LONG-NAME" }}
Example: Set the ReqView document identifier to the value of ReqIF.Prefix
or IDENTIFIER
(in order of preference) for all imported ReqIF specifications:
{ "reqviewDocumentProperties": { "id": ["ReqIF.Prefix", "IDENTIFIER"] }}
Example: Set the ReqView document identifier to "SRS" for the imported ReqIF specification with LONG-NAME
equal to "Software Requirements Specification".
{ "reqviewDocumentProperties": { "id": { "Software Requirements Specification": "SRS" } }}
The default configuration for setting values of ReqView document properties is:
{ "reqviewDocumentProperties": { "id": ["ReqIF.ForeignID", "ReqIF.Prefix", "LONG-NAME", "IDENTIFIER"], "name": ["ReqIF.Description", "ReqIF.Name", "LONG-NAME"] }}
By default, ReqView imports all attributes of ReqIF specification objects. ReqView document object attributes have unique identifiers created from LONG-NAME
or IDENTIFIER
of ReqIF specification object type attribute definitions. "ReqIF." prefix is removed from all attribute IDs. If attribute data types clash then attribute IDs are prefixed with LONG-NAME
or IDENTIFIER
of the ReqIF specification object type attribute to disambiguate them.
To configure the attributes mapping from ReqIF specification objects to ReqView document objects, set the reqifObjectAttributes
configuration property (object):
LONG-NAME
or IDENTIFIER
of an imported ReqIF specification object attribute (string)null
to ignore the attributeIf the ReqIF specification object attribute is not defined for any imported specification object then it is ignored. You can also explicitly ignore a ReqIF specification object attribute by setting the null
value in the configuration.
Example: Set values of ReqView system attribute text from ReqIF specification object attribute RichText for all imported document objects.
{ "reqifObjectAttributes": { "RichText": "text" }}
To configure the mapping for a given ReqIF specification object type, set values of the reqifObjectAttributes
configuration property as follows:
LONG-NAME
or IDENTIFIER
of an imported ReqIF specification object type (string)LONG-NAME
or IDENTIFIER
of an imported ReqIF specification object attribute (string)null
to ignore the attributeExample: Set values of ReqView system attribute heading from ReqIF specification object attribute Title defined for the ReqIF specification object type Section Type.
{ "reqifObjectAttributes": { "Section Type": { "Title": "heading" } }}
Example: Ignore import of attribute ReqIF.ChapterNumber defined for all ReqIF specification objects and attribute Description defined for ReqIF specification object type Section Type.
{ "reqifObjectAttributes": { "ReqIF.ChapterNumber": null, "Section Type": { "Description": null } }}
Unless explicitly overridden, the following default mapping is applied automatically (it doesn’t need to be added manually):
{ "reqifObjectAttributes": { "ReqIF.ChapterName": "heading", "ReqIF.Text": "text" }}
Note: To keep the config concise, the Autofill function will not prefill those defaults.
Let’s assume that we have received a ReqIF file exported from ProR open-source tool. Download the example ReqIF file used in this tutorial.
We need to import ReqIF specifications Specification Document and Glossary as new ReqView documents with IDs SPEC and GLOSSARY and set their names. We need to map ReqIF specification object attributes to ReqView document attributes as follows:
Follow these steps:
Click File, then Import, and finally ReqIF Package from the main menu.
Select the imported ReqIF file
In the Configure ReqIF Import dialog, click Autofill to prefill the configuration details automatically.
Adjust the JSON configuration in the Configure ReqIF Import dialog as follows:
{ "reqifSpecifications": [ "Specification Document", "Glossary" ], "reqviewDocumentProperties": { "id": { "Specification Document": "SPEC", "Glossary": "GLOSSARY" }, "name": { "Specification Document": "Specification", "Glossary": "Glossary" } }, "reqifObjectAttributes": { "Description": "text", "Known Problems": null, "Section Type": { "Description": "heading" }, "Use Case Type": { "Description": "heading" } }}
Click Autofill again to update the configuration by default values.
Click OK to import the ReqIF file.
As a result, ReqView successfully imports SPEC document with a list of use cases, GLOSSARY document with the definition of common terms, and traceability links between use cases to the related terms in the glossary: