CSV Roundtrip with DOORS

This tutorial describes workflow of roundtrip CSV synchronization between ReqView and a IBM Rational DOORS module in following four steps:

  1. A DOORS user exports chosen DOORS module into CSV.
  2. The DOORS user then converts CSV into encrypted ReqView document and sends this document to an offline reviewer.
  3. The offline reviewer modifies ReqView document and optionally shares it with other reviewers who can modify it as well. The last reviewer sends ReqView document to the DOORS user.
  4. The DOORS user imports changes from ReqView Document into DOORS

Note: DOORS CSV import is not able to handle modification of document structure - add, move or delete requirements therefore you can synchronize back into DOORS only changes in the attributes and new comments.

CSV Export of DOORS Module

As the first step you need to define CSV export for a chosen DOORS module – which requirements (rows) and attributes (columns) will be exported to a CSV file.

  1. Open chosen DOORS module to be reviewed:

    DOORSUserNeedsStandardView.png

  2. Define ‘CSV Export View’ with at least the following columns: Absolute Number, Object Heading, Object Text and Object Level. Optionally you can also define a filter selecting only desired rows, e.g. only given section of the document.

    DOORSUserNeedsCSVExportView.png

  3. Switch to ‘CSV Export View’ view and choose File / Export / Spreadsheet menu to open Export Spreadsheet dialog:

    DOORSUserNeedsSpreadsheetExportDialog.png

  4. Choose Export: Displayed columns, Include: Display set only, check Include attribute names/column titles in first row and Data separator: Comma options. Then browse for a file location of the exported CSV file and by Advanced button change Encoding option to UTF-8. Then press Export button.

Import CSV in ReqView

Before opening a CSV document in ReqView you need to convert it to internal ReqView data format by ReqView Synchronizer command line tool.

The Synchronizer needs a JSON conversion configuration file as an argument.

  1. Prepare configuration file for conversion of DOORS CSV exports into ReqView data format. Check the following example configuration file:

    {
    "name": "Test document",
    "attributes": {
    "status": {
    "type": "enum",
    "values": [
    { "label": "Draft", "key": "draft" },
    { "label": "Approved", "key": "approved" },
    { "label": "Rejected", "key": "rejected" }
    ]
    }
    },
    "mapping" : [
    { "attribute": "doorsId", "external": "Absolute Number"},
    { "attribute": "heading", "external": "Object Heading"},
    { "attribute": "text", "external": "Object Text"},
    { "attribute": "level", "external": "Object Level"},
    { "attribute": "discussion", "external": "ReqView_Discussion"},
    { "attribute": "history", "external": "ReqView_History"},
    { "attribute": "status", "external": "ReqView_Status"}
    ]
    }

    JSON

    Section mapping describes the mapping of columns from DOORS CSV export to requirement attributes in ReqView data format. For instance, DOORS attribute Absolute Number is assigned to ReqView attribute doorsId. Please note that Synchronizer automatically generates unique identifiers in ReqView id internal attribute.

    Section attributes describes custom defined values of status attribute. You can use it to force each ReqView Desktop user to choose status only from a given set of values, for instance ‘draft’, ‘accepted’, and ‘rejected’. Each status value consists of a unique key and a label presented as column heading in ReqView Desktop.

    For more information check section Custom Requirements Attributes.

  2. Convert the CSV file into ReqView by running ReqView Synchronizer with following command prompt arguments:

    $ synchronizer.exe --import -i <file> -f CSV -c <file> -o <file>

    For example:

    $ synchronizer --import –i ReqViewUserNeeds.csv -f CSV –o ReqViewUserNeeds.reqw –c DOORSImportCfg.json

  3. Send the created JSON file to a reviewer.

Review Document

  1. Install ReqView Desktop Chrome App application from Google Chrome Web Store.

  2. Run ReqView Desktop:

    ../fea_content.png

  3. Choose menu File > Open or shortcut CtrlO to show Open Requirements Document dialog. Choose ReqView file ReqViewUserNeeds.reqw created in the previous section.

  4. After opening the document you should see the same requirement structure as in DOORS - Table of Contents is in the left pane, the center pane contains the Requirements Table with tree hierarchy and the right pane contains the Discussion and History related to the selected requirement in Requirements Table.

  5. From menu File / User Settings adjust your contact details – name, email and company. This information will be automatically attached to each comment and each requirement modification to identify its author.

  6. Review the document - edit requirement status directly in the Requirements Table and add comments by Edit > New Comment menu item, button or CtrlM shortcut.

  7. The changes done in the document are automatically saved into application persistency storage, however, the opened file on your local drive is not changed. You can save the document into a new ReqView file containing all changes by File / Save As menu item or CtrlS shortcut.

  8. You can distribute the new ReqView file to another reviewer or send it back to the user who can import it back to DOORS.

Import Changes into DOORS

After all offline reviewers have finished modifications of the ReqView document, it can be sent to the DOORS user who can export it into DOORS. The export is done in two steps, at first the ReqView document is converted into CSV format suitable for DOORS export, then the CSV file is imported into DOORS.

  1. Convert the CSV file into ReqView by running ReqView Synchronizer with the following command prompt arguments:

    $ synchronizer.exe --export -i <file> -o <file>

    For example:

    $ synchronizer --export –i ReqViewUserNeeds.reqw –o ReqViewUserNeeds.csv

  2. Open the original requirements module in DOORS and then from menu File / Import / Spreadsheet open the Import Spreadsheet DOORS dialog:

    DOORSUserNeedsSpreadsheetImportDialog.png

  3. Choose Import attributes: By column labels option, Import options: Update existing objects and Update: All Objects options. Then choose the created CSV file and with the Advanced button change Encoding option to UTF-8. Then press the Import button.

  4. When you first import ReqView changes into DOORS you will be asked if DOORS should create nonexistent attributes with additional ReqView information. The names of these attributes were specified in ReqView configuration file. For our example above, confirm creation of the following three DOORS text attributes: ReqView_Status, ReqView_Discussion and ReqView_History.

  5. In the next Select Key dialog choose Absolute Number attribute as the unique identifier for import.

  6. Define a new view ReqView_View containing the new attributes ReqView_Status, ReqView_Discussion and ReqView_History and check imported changes before saving:

    DOORSUserNeedsReqViewView.png

Updated for version 2.5.0