Importing Telelogic DOORS Requirements and Attributes into a Rhapsody Model Using the Rhapsody Gateway The Rhapsody Gateway serves as the conduit to import requirements from requirements management tools into Rhapsody. This paper shows how the requirements may be imported requirements from DOORS using the XML import. This paper is meant as a quick reference. For more information, see the Rhapsody Gateway documentation (Help->Documentation) and the DOORS documentation. In addition, Telelogic offers a class on using the Rhapsody Gateway. Requirements Engineering Issues: One of the first issues that you have to solve is what attributes your requirements will include. Often companies will want to standardize on a set of attributes. Standardizing attributes allows you to reuse the DOORS template, the Rhapsody Gateway type, and the Rhapsody Gateway filters from project to project. Creating the Rhapsody Gateway Type: The Rhapsody Gateway uses a predefined format, or Type, when interfacing with DOORS. This type identifies to Rhapsody what data from the DOORS formal module comprises the requirement. The easiest way to create a new type is to duplicate an existing one. The Doors Basic type is a good example because it uses the DOORS XML interface. Open the Configuration Window and select Types. Select requirements tools->Doors Basic. Right click and select Duplicate. Rename the duplicated type. For this example, I am using Doors Experimental. The XML Intermediate File The Rhapsody Gateway creates an intermediate file from the DOORS archive. The data contained in this file is determined by filters (see Creating Filters, later in this document). The Rhapsody Gateway only updates the intermediate file when it reads the DOORS database – when you define the document in the project and when you explicitly refresh the file (File->Reload or File->Reload All). An example of the intermediate file is shown below. Notice that every attribute is named Attribute and each Attribute has name/value tag pairs. Identifying the Requirement Both the Doors Basic and the Doors Experimental Types expect the DOORS requirement to have a Boolean attribute called Requirement (If the attribute is true, the text is a requirement). If you need to further refine your requirement definition, you can another Attribute to the definition. In the example below, the Rhapsody Gateway will only recognize requirements as objects in DOORS with the attribute “Requirement” set to true and the attribute “DoorsAttribute” set to red. Creating the second attribute is not obvious. Therefore, we will go through it step-by-step. 1. In the Type editor pane, select Doors Experimental->requirement>Requirement. 2. In the Analysis pane, select the <Object> attribute 3. Click on the XML symbol to make a new attribute 4. Select the Tag radio button 5. In the box that says “Tag_Name”, type “Attribute” 6. Click anywhere on the screen (I click on <Object>) to change the focus 7. Click on the Attribute you just created 8. Click on the XML symbol to make a new attribute 9. Select the Attribute radio button 10. Replace Tag_name with “name” 11. Enter the name of the attribute in the Value box. For example, DoorsAttribute 12. Click on the Attribute you just created in step 2. 13. Click on the XML symbol to make a new attribute 14. Select the Attribute radio button 15. Replace Tag_name with “value” 16. Enter the name of the attribute in the Value box. For example, Red 17. Click anywhere on the screen (I click on <Object>) to change the focus 18. Click Apply if you are finished Identifying Attributes Attributes may be passed to Rhapsody along with the requirement. To identify an attribute: 1. In the Type editor pane, select Doors Experimental->attribute 2. Click the UML indicator to add a new attribute 3. Enter the attribute’s Rhapsody name in the Name box. Note that this name does NOT need to be the same as the DOORS attribute name. 4. Click <TagRef>. Replace TagRef with “Attribute” 5. Select Attribute (that you just created) 6. Click the UML indicator to create a new tag 7. Select the Attribute radio button 8. Replace Tag_name with “name” 9. In the Value box, enter the name of the DOORS attribute 10. Click the UML indicator to create a new tag 11. Replace Tag_name with “value” 12. Select the Identifier radio button 13. Select the Attribute radio button 14. Click anywhere off the attribute name to change the focus (otherwise the parameter will not appear in your selection boxes) Creating Filters Filters affect which requirements are displayed. You can use filters to control which requirements the Rhapsody Gateway will export to the Rhapsody model. To create a new filter, open the filter dialog on the Configuration window. Follow these steps to create the filter: 1. Click the filter icon to create a new filter. Enter a name in the box. 2. Create the filter conditions. Select a condition. To filter on an attribute, select the attribute from the Condition drop down. Filters may include more than one condition. Once you have created a filter, click anywhere to change the focus. Changing the focus enables the filter in other dropdown selection boxes. From Rhapsody to DOORS We often create derived requirements in the Rhapsody model that we want to include in DOORS. These requirements may be any number of model artifacts including use cases. However this paper only concerns itself with Requirements artifacts. To push requirements from Rhapsody to DOORS, create the requirements in the Rhapsody model. Use tags to represent the DOORS attributes. In this example, we have created two requirements. Note the tags will be the attributes when these requirements are imported into the DOORS formal module. After saving the model, the Rhapsody Gateway will ask to be reloaded. Select Yes. The requirements now appear in the Gateway. The next step is to Export Elements to DOORS. All model elements MAY be exported. Often, you will want to export the elements to a new DOORS formal module (for example, to build the SRS). If this is the case, select the archive and indicate the name of the new formal module. Click Export. The Rhapsody Gateway will determine which elements need to be added, deleted, and modified (this dialog is not shown). Before accepting the changes, be sure to close the formal module (if it is open). The changes will be reflected in the DOORS formal module.