What Is ReqIF?

ReqIF. Exchange Requirements with the Requirements Interchange Format.

What does ReqIF mean? How does the requirements interchange format work? And what are its advantages?

tooltip text
1

ReqIF stands for Requirements Interchange Format and is used to transfer requirements from one requirements engineering tool to another.

2

The exchange takes place using a ReqIF file in which requirements and other information are defined with special XML tags.

Short definition of ReqIF:

ReqIF stands for “requirements interchange format” and is recommended for exchanging requirements between different requirements engineering tools.

What Is the ReqIF Format and Where Does It Come From?

ReqIF is an abbreviation for Requirements Interchange Format. The format is a metamodel defined by an XML schema. The ReqIF standard was primarily developed to exchange requirements between different requirements engineering tools. Requirements and information about the requirements, including metadata and additional files such as graphics, are recorded in an XML file. This file must have a special structure and special XML tags so that the requirements can be imported from one tool into another.

Instead of using the .xml file extension, the standard recommends the .reqif extension. If the file contains embedded objects, all associated files must be packed (“zipped”) together. The zipped file then receives the .reqiz extension.

The ReqIF standard originated in the automobile industry. The HIS association, consisting of German car manufacturers, defined the RIF standard for the exchange of requirements in 2004. This was necessary because the previous practices, such using a PDF, were prone to errors or different tools with proprietary formats were used. A few years passed and in April 2011, the OMG ReqIF standard was finally published in version 1.0.1 as the successor to RIF. Meanwhile, version 1.2 was released in 2016. Today, the ReqIF format is also used in industries other than the automotive industry.

The standard can be downloaded and viewed here: https://www.omg.org/spec/ReqIF/About-ReqIF/

Advantages of ReqIF

The standard is an open format

The exchange is lossless

Cooperation with partner business is easier

Requirements (incl. requirements attributes and additional files) can be exchanged between different tools

Businesses That Support the ReqIF Format

Audi AG
BMW AG
Continental AG

Daimler AG
Robert Bosch GmbH
Volkswagen AG

Here Is How You Can Work with ReqIF in Practice

More about requirements engineering with objectiF RPM and objectiF RM »

Wissen online: objectiF RPM und objectiF RM

Structure of a ReqIF File

A ReqIF XML file contains both the description of the data types and the data itself. The basic structure of the XML file is summarized in the following graphic:

 

ReqIF - Überblick über die Aufbaudatei

The file begins with the tag < REQ-IF >, which contains the three sections < REQ-IF-HEADER >, < REQ-IF-CONTENT > and
< REQ-IF-TOOL-EXTENSION >.

< REQ-IF-HEADER >: Metadata such as the date of creation are stored here. (mandatory)
< REQ-IF-CONTENT >: Both the description of the data types and the data, i.e. the requirements themselves, are in this section. (mandatory)
< REQ-IF-TOOL-EXTENSION > : Additional information regarding the tool can be documented in this section. (optional)

<REQ-IF-CONTENT>

The following graphic shows the basic structure of < REQ-IF-CONTENT >

Aufbau der ReqIF Datei Content

Datatypes

Data types are defined within the tag < DATATYPES >. The ReqIF standard recognizes data types such as String, Boolean, Integer, Enumeration, Real, Simple, Date and XHTML.

Here are examples for “String”, “Boolean” and “Date”:

Datatypes einer ReqiF Datei

SpecType

The tag < SPEC-TYPES > defines the requirement types (functional requirement, quality requirement, performance requirement etc.), which attributes or properties these requirement types have and which relationships can exist between requirements (refinement, dependency etc.). Standard values for the attributes can also be defined here.

Here’s an example of a requirement type “FUNC-REQ” and the attribute “FUNC-REQ-TXT” of the type “String” (In other words, the type is “Functional requirement”. This makes it so that only a descriptive text can be entered for a requirement of this type):

SpecTypes einer ReqiF Datei

SpecObject

The actual requirements in the ReqIF file are found in < SPEC-OBJECTS >.

Here’s an example of a requirement of the type “FUNC-REQ” with a string value for the attribute “FUNC-REQ-TXT” (a functional requirement with a description text):

Specobjects in ReqIF Datei

SpecRelation

To define a relationship between two requirements in a ReqIF file, the tag < SPEC-RELATIONS > is used. For a relation definition you always need a source and a target element. This ensures traceability.

Here’s an example of a SpecRelation (The requirement “detection of fire” was derived from the requirement “monitoring of ground temperature”):

SpecTypes einer ReqiF Datei

Specification

In the < SPECIFICATIONS > you can list requirements hierarchically. In this sense, it corresponds to a requirements document or requirements specification sheet.

Here’s an example of a specification with SpecHierarchy (the derived requirements are listed beneath the base requirements):

Specifications in einer ReqiF Datei

RelationGroup

Groups of relationships can be represented by a RelationGroup in the ReqIF file.

Here’s an example of a RelationGroup:

RelationGroup in einer ReqiF Datei

Summary: Example and Structure of a ReqIF File

How to Import and Export ReqIF Files with objectiF RPM

It only takes a few clicks to import ReqIF files into objectiF RPM or export your requirements as ReqIF files. Try it out with the free trial version!

 

ReqIF Import and Export in objectiF RPM