# Tutorial

Here is a hands-on step-by-step guide that you can use to check out Together DOORSIntegration.

### Create a simple Together project

1). Start Together.

2). Create new Together project named "DTLSample.tpr".

3). On the <default> Class diagram, create a new class "ClassA"

4). In ClassA add new operations: "operationA1", "operationA2" and attributes: "attributeA1", "attributeA2"

5). The same way create ClassB with operations: "operationB1", "operationB2" and attributes: "attributeB1", "attributeB2"

### Export the project to DOORS

1). Start DOORS.

2). Open any DOORS project (or create new one)

3). In the main DOORS menu choose "DOORSConnect" | "Together" | "Start Session"

The window with message "DXLServer started" will appear.
This means DOORS is ready to communicate with Together.
Close this window.

4). In Together select "Modules" tab ().

5). Expand the System" and "Doors Link" nodes in the tree view.

The following tree nodes are included in the displayed nodes:

> 1. Find Object in DOORS
> 2. Find Element in Together
> 3. Send to Doors
> 4. Synchronize module in Doors

6). Right-click on "Send to Doors" node and choose "Run" in the speed menu.

The "Send to DOORS" dialog box will appear.

7). Click OK.

After some delay the message box will appear with text:

"Sending to DOORS completed.
10 object(s) created.
0 object(s) modified."

8). Acknowledge the message box.

9). Go to DOORS and select the newly displayed "DOORS Formal module..." window .

You will see DOORS Formal module "DTLSample.tpr" representing Together's model. This is what is referred to in DOORS as a "surrogate" module. For each element in the Together model the appropriate object in the surrogate module is created. These objects are connected each other so as to correspond to the package/diagram tree maintained in the Together model.

You can see the exact same tree in DOORS if you select the "Display graphical view" button in the DOORS toolbar.

Not all objects created in the surrogate module correspond to model elements. Some objects are used for grouping model elements of the same type.

10). Set DOORS surrogate module window in table mode.

11). Select object titled "1.1 ClassA". This object represents "ClassA" element
of the model in Together.

12). Click right mouse over this object and choose Edit.
You will see object's Attributes dialog box.

13.) In the listbox "Attributes" choose "Together Element Identifier" attribute.

You will see its value is something like: "TIDde0737eaef". This is the element identifier by which the correspondence between the DOORS object and the Together model element is maintained. You can create links to this objects from other modules in your DOORS project and in such a way track links from your requirements in DOORS to the elements in Together model.

14). Now invoke the Attributes dialog for object titled "1.1.1.Operations".

If you look at its "Together Element Identifier" attribute you will see its value is empty. This surrogate module object doesn't correspond any element in the model. It is a grouping object.

15). Now, save surrogate module and close its window.

### Finding a Together model element in DOORS

Let's see how to go quickly from a model element in Together to the corresponding object in the DOORS surrogate module.

1). Go to class diagram in Together.

2). Select the "operationB1" member in ClassB and leave it selected.

3). Right-click "Find object in DOORS" node of modules tree and click "Run".

After some work the message box will appear with the text: "1 object(s) found in DOORS". You can close this.

4). Go to the DOORS formal module window. You will see the object "ClassB.operationB1():void" selected and filtered.

5). Unselect the filtering button on the toolbar. You will see all objects in the model with the found object selected.

6). Close the surrogate module window.

### Synchronizing the surrogate module

Now, let's see how to synchronize the surrogate module in DOORS with the model in Together after the model has been considerably changed.

1). Remove "attributeA1" and "operationA1" in ClassA.

2). Using mouse, drag "operationB1" and "attributeB1" from ClassB to ClassA.
(This we will consider as "big changes" in the Together model!)

3). Right-click on "Synchronize module in DOORS" item the Modules tab and select "Run".
After a little work the following message box appears:

"Synchronization with DOORS completed.
0 object(s) created
2 object(s) modified|
2 object(s) marked deleted".

4). Close the message box and go to surrogate module window in DOORS.
You will see the just- modified and marked "deleted" objects are filtered.

5). Unselect filtering, then in the combo-box on the toolbar select the "DTL Deleted elements" view.

Now, you can see: "operationA1" and "attributeA1" in ClassA (which was deleted in the model) marked as "deleted" in the surrogate module; "operationB1" and "attributeB1" appear in ClassA instead of ClassB.

Now new surrogate module contents quite corresponds new contents of Together model. And at the same time if you had any links to these objects from other requirements in your DOORS project all these links would be safe.

### Using DOORS to find a Together model element

Finally, let's see how to go quickly from any object in the surrogate module to the corresponding element in Together model.

Let's find the model element corresponding to object "ClassB.operationB2():void" of surrogate module.

1). Look at the object's attributes, find value of the "Together Element Identifier"
attribute and remember it (or write it down somewhere).

2). Go to Together and select the module node "Find Element in Together" and run it as
you ran the previous modules. The "Find Element in Model" dialog will appear.

3). Enter the element identifier you want to find and press OK.

Soon a message box will appear: "Element found. See selected element in the current diagram". Acknowledge it. You will see element "operationB2" in ClassB enter the selected state.

That's what we needed to find!

Now you can exercise all these Together DOORS Link steps with some larger model. Try, for example, "CashSales" sample project that is included with Together.