RIF meets ReqIF
ReqIF is the new OMG standard for requirements interchange. RIF is the predecessor to it and already supported by many tools like DOORS. RMF delivers both the standards as Ecore models. However, there are quite a few differences between the two standards making them type incompatible.
The main differences lies in,
1. Element naming.
For example, the element RIF is now called REQIF, SpecHierarchyRoot is now Specification and so on.
2. More specification types.
If you know the RIF model already, you would know the concept of SpecTypes. This element allows creation of new types. In RIF and ReqIF, SpecObjects (the instance values) and SpecRelations (relations between instances) are typed. However, in RIF, both refer to the same SpecType element, where as ReqIF has different types called SpecObjectType for SpecObject, SpecRelationType for SpecRelation and some more new types.
3. More attribute definition and value types.
RIF had only a single attribute definition type called AttributeDefinitionSimple. ReqIF extends this for different the different data types as AttributeDefinitionInteger, AttributeDefinitionReal, AttributeDefinitionString etc. Same for values as AttributeValueInteger, AttributeValueReal, AttributeValueString etc.
4. RIF XML uses no XML attributes where as ReqIF uses a lot of them.
For example, IDENTIFIER is an XML element in RIF whereas it is a XML attribute in ReqIF.
This brings us to the question – how do I convert my existing RIF files to the new ReqIF format? Considering the fact that there are a lot of industry samples in RIF format, we thought of writing a RIF to ReqIF converter. The transformer takes in a RIF file and transforms it into a ReqIF, retaining all its contents. You could also do an in-memory transformation between the two models.
This is how a RIF source than we passed to our converter looks like after transformation.
I suppose RMF will support them both….
Also will the converter be committed to the repository?
RMF will deliver Ecore models for RIF 1.1, RIF 1.2 and ReqIF 1.0.1. The UI will however be based on ReqIF 1.0.1. The converter is currently not planned to be part of the initial code contribution.
Are there any example ReqIF files? I’m looking to implement ReqIF as an intermediate format for requirements between two tools (which seems like a natural thing to do with ReqIF).
I’ve read the spec, and sort of get the general idea, but it is difficult to quantify what exactly needs to be done from everything. Some examples / tutorials that build up from small to bigger would really help.
Hi Vadim, you could use http://www.eclipse.org/rmf/pror/ to create ReqIF files. I did see some sample files on the OMG or ProStep pages earlier. Cannot find it anymore :(
Yeah, I’ve been fiddling that and trying to wrap my head around it.