DOORS link attributes: Link Proposal System and scripts


What are link attributes?

Links in DOORS have attributes similar to objects or modules. DOORS creates the system link attributes “Created On / By”, “Modified On / By” etc. – in addition suspect link handling in DOORS is dependent on link attributes, namely “Suspicion Cleared Backwards / Forwards”. Similar to object attributes we can also create link attributes based on the requirements management process: we might e.g. want to store the priority of the link or the reason for linking the objects.

Link attributes and link attribute types are created in link modules, but most often edited in the source modules. It is possible to edit to link attributes in the source modules by using the Object Properties / Links dialog. Select a specific link and press the “Details” button to see or edit link attribute values for that link.


Because this editing action needs many clicks, link attributes are not quite often used. It is possible to edit link attributes also in link modules, but it is even more complicated than in source modules. To display link attribute values in a column is more easier than editing if you create traceability columns using the Analysis Wizard – step 3 allows to select which link attributes are displayed in columns.


Link Proposal System

As an example on how to use link attributes I implemented  a “Link Proposal System”. The main idea is that as users create links the status of those links are maintained by a link attribute.

E.g. we could have an enumerated link attribute Link Status with values of  “Proposed”, “Accepted” and “To be deleted” and set the “Proposed” value to be the default value. Every link created will then have a Link Status of “Proposed”. Thus even though the link exists it is not accepted in this process.

A person reviewing traceability can check the links in a review trace view and set those which are accepted to have “Accepted” Link Status. If a link is not accepted, then it is marked as “To be deleted” – and deleted either manually or with a DXL script.

Standard DOORS usage would use traceability views showing only the links which have been accepted, i.e. links with status of “Proposed” or “To be deleted” are not shown in these views. Of course all the links are visible in DOORS UI and users can browse those, but within this kind of process they are not links which should be used for traceability.


Support scripts

The make the modification of links attributes easier I also wrote a prototype DXL script for modifying single-value enumerated link attributes, such as might be for example used in the Link Proposal System.

The script dialog has two selection lists. The upper shows what outgoing or incoming links the currently selected object has and the lower shows what single-value enumerated link attributes have been created in the link module containing the link and the attribute.

The link selection list shows in addition to the link attribute name also the attribute value. The value can be changed by double-clicking on the selected link attribute name – as this script deals with enumerated attributes, it will cycle through the values for that attribute for each double-click.


The DXL script can be downloaded from


Google Docs: Importing and exporting DOORS requirements


One of the most used export formats in DOORS is the Spreadsheet format (or direct export to Microsoft Excel). This is also the only easily available file format which allows for offline editing as the corresponding Spreadsheet import (from Comma or Tabulator Separated Values files, CSV/TSV) can update existing DOORS data. These exports can also be imported to cloud-based Google Docs allowing for collaborating on DOORS requirements

If it is planned to re-import the modified data to DOORS it is useful to prepare an export view in DOORS. This export view mainly breaks up the main column to separate columns for Object Heading and Object Text so that individual attributes can be updated on re-import. The view should also include the Object Identifier column as this is needed during import.


After exporting from DOORS (File / Export / Microsoft / Excel (and then maybe save as CSV from Excel) or File / Export / Spreadsheet to CSV) the resulting CSV file can be imported to a Google Spreadsheet.


As see from the preview window, Google import for CSV file does not read the column names correctly from the first line of the CSV file. For this reason  it is more useful to do the import to Google Docs straight from an Excel file in XLS / XLSX format, as this file seems to be formatted correctly: gregs

After import the file can be formatted in Google as needed: in the above example I have frozen the first row, set word wrap on for Object Text column and  displayed in bold the Object Heading column and column titles in first row.

As the Google Docs is a cloud based service this file can be now published to specific users. The shared file can also have user settings: how can read the file, who can comment, who can edit the data.


The commenting option in Google Docs can be useful within Google while discussing the requirements, but these comments cannot be exported or printed. gcomment

Modifications done in Google Docs are stored in the Revision history, allowing also to roll-back changes, if needed.


New requirements (new objects) can be added in Google by inserting new rows to the spreadsheet. No Object Identifier details are needed for these as DOORS will give the identifiers on import.

After modifications the file can be exported from Google to DOORS by selecting File / Download as / Comma Separated Values (DOORS can update data only from CSV / TSV files).


The generated CSV file can be imported to DOORS in the original module by selecting File / Import / Spreadsheet. The updated objects can be identified by DOORS by using the Object Identifier as unique key.


After import DOORS will display the result for the import: how many object updated and how many created. If there is a main column in the current view, the modified or created objects are shown as modified by a red change bar before saving the changes.


If your modifications or additions include characters outside of the normal ASCII symbol set (e.g. Finnish text) then it might be useful before importing check the import preview by pressing the Advanced button in the Spreadsheet import dialog and selecting correct “Encoding” for the characters – I used UTF-8 to import the ÄÖ-characters correctly.

For more information on Google Docs see Wikipedia article (also good to read the “Data safety and privacy” chapter here) or Google Drive help