Difference Analysis Report
A Difference Analysis report can be created from two ReqIF archives or files. For details on how to create a report, see the topic Difference Analysis Feature.
Understanding the Format of a Difference Report
To view the contents of a report, select the report in the Reports folder. This will update the report table on the right hand side of the application window.
The report is displayed as a table containing multiple columns and rows. Additionally, the individual rows are grouped under sections forming a structure of folders containing differences.
To understand how the difference analysis feature works, it's necessary to explain the concepts of element and difference.
Types of Differences
The concept of difference applies to 'how' something has changed. Fundamentally, there are four types of differences
- CHANGED - an element (see below) exists in both ReqIFs but has changed
- CREATED - an element has been added i.e., it is found in ReqIF2 but is missing from ReqIF1
- DELETED - an element has been deleted i.e., it is found in ReqIF1 but is missing in ReqIF2
- MOVED - an element that exists in both ReqIFs has moved (e.g., a SpecObject in the SpecObject Hierarchy)
Note: If you decide to compare the same ReqIFs in the reverse order, the concept of Creation and Deletion are similarly reversed.
Types of Elements
The concept of element applies to 'what' has changed. An element is an item of difference and covers a broad range from Identifiable properties such as longName and desc to AttributeValue theValue fields and entire objects such as SpecObject. When an element difference is detected, the type of the element and its context are displayed for a better understanding of the impact of the change.
The following is the full list of element types
- ATTRIBUTEDEFINITION
- ATTRIBUTEVALUE
- DATATYPEDEFINITION
- RELATIONGROUP
- SPECHIERARCHY
- SPECIFICATION
- SPECOBJECT
- SPECRELATION
- SPECTYPE
- HEADER
- FIELD
- ENUMVALUE
- CLASS
There is a structural relationship between types of elements. For example, a FIELD such as longName can apply to any Identifiable object type such as SpecObject in which case a FIELD difference will also imply, in this case, a SPECOBJECT difference. Alternatively, a FIELD difference such as title would imply also a HEADER difference. A more complex structural relationship is with the longName FIELD of an AttributeDefinition. Such as FIELD difference would imply a difference in the SPECTYPE owning the AttributeDefinition.
Difference Report Columns
The differences table contains the following columns
- Identifier - where the element is an Identifiable object, the identifier of the element is shown
- Class - the element class name
- Element - an identification of the element that is different
- ReqIF1 - the element value in the first ReqIF (for CHANGED and DELETED difference types)
- ReqIF2 - the element value in the second ReqIF (for CHANGED and CREATED difference types)
Selecting a Difference Row for more Detailed Information
You can select any difference row in the report for a more detailed view of the difference in a separate window located below the difference table. Depending on the type of difference, this window will show content for ReqIF1 only, ReqIF1 and ReqIF2 as two individual windows side by side or ReqIF2 only.
Details Window for a CREATED Difference
When you select a difference corresponding to a created element, the details window will update with information about the element as it exists in ReqIF2. For FIELD differences, simply the text of the property is displayed. For more complex differences such as a created AttributeValue, details about the associated AttributeDefinition and DatatypeDefinition along with the theValue property are displayed. For AttributeValueXHTML values, the rich content is displayed along with details of any OLE objects and images contained in the value. For any difference that is an Identifiable, you can click on the identifier field to navigate to the created object in the ReqIF file.
Details Window for a DELETED Difference
When you select a difference corresponding to a deleted element, the details window will update with information about the element as it exists in ReqIF1.
Details Window for a CHANGED Difference
When you select a difference corresponding to a changed element, the details window will update with information about the element as it exists in ReqIF1 and also the element as it exists in ReqIF2 side by side.
Details Window for a MOVED Difference
The only use case contributing towards a move difference is a change to SpecHierarchy structure of a Specification where a SpecObject located at a particular point within the Specification structure is moved to another position within the same Specification.