======================================================================
	           Together 4 Link add-in 1.0 for

			DOORS 4.1.4.0 SR2

			README Information
======================================================================


Table of Contents
=================

1.0 What is Together DoorsIntegration?
2.0 Installation Procedure
3.0 Running integration sample


1.0 What is Together DoorsIntegration?
======================================

Together DoorsIntegration lets you transfer data between DOORS and Together, allowing you to add 
traceability to your software design process.

The main purpose of integration is that all necessary information about Together model is 
kept in DOORS "surrogate" module. Each element of the model, which users want to track out 
somehow from DOORS, has in "surrogate" module a specific representative object.


2.0 Installation Procedure
==========================

Before installing Together DoorsIntegration add-in, you should have Together Enterprise 
or Together Control Center version 4.0 or higher and DOORS 4.1.4.0 SR2 installed on your computer.

Run setup.exe (<TogetherHome>\lib\DoorsIntegration\DoorsIntegration.exe) and follow setup 
instructions at the installation process.

After installation you should have following subdirectories created:

<DoorsHome>\lib\dxl\addins\doorsconnect\together
<DoorsHome>\tools\doorsconnect\together

Additionaly, following line should be added to the end of file 
<DoorsHome>\lib\dxl\startup.dxl:

#include <addins/doorsconnect/together/dtl.inc>

If this line already exists in specified file, no changes should be applied to it.

WARNING: if you have any modified GenDoc's templates save them separately before 
installation since your changes might be lost!


3. Running Integration Sample
=============================
 
1). Start Together.

2). Create new project with name "DISample".

3). On <default> Class Diagram create class "ClassA"

4). Add in ClassA new operations: "operationA1", "operationA2"
    and attributes: "attributeA1", "attributeA2"

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

6). Start DOORS.

7). Open any project (or create new one)

8). In the main DOORS menu select following items: 
    "DOORSConnect" | "Together" | "Start Session"

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

9).  In Together select "Modules" tab.

10). "Open System" | "QSS-DoorsIntegration" tree view item.

     The following tree items will appear:

     1. Find Object in DOORS
     2. Send to Doors
     3. Synchronize module in Doors 
     4. Start server
     5. Stop server

11). Click right mouse over "Send to Doors" item and select "Run" in 
     the local menu.
     "Send to DOORS" dialog box will appear.
     Click OK.
     After some delay the message box will appear with text:
      "Sending to DOORS completed. 
       10 object(s) created. 
       0 object(s) modified."
 
     Acknowledge the message box.

12). Go to DOORS and select "DOORS Formal module..." window newly
     appeared. You will see DOORS Formal module "DISample.tpr" representing
     Together's model. Next I will call such modules in DOORS as "surrogate" 
     modules. For each element in Together model the appropriate object in 
     surrogate model is created. These objects are connected each other so 
     to correspond package/diagram tree maintained in the Together model. 
     You can see just the same tree in DOORS if you select 
     "Display graphical view" button in DOORS toolbar. 
     Not all objects created in surrogate module correspond to model elements. 
     Some objects are used for grouping model elements of the same type.
     
13). Set DOORS surrogate module window in table mode.
     Select object titled "1.1 ClassA". This object represents
     "ClassA" element of the model in Together.
     Click right mouse over it and choose Edit. You wll see object's
     attributes dialog box. 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 DOORS object and 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.

     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 grooping object.
 
14). Now, save surrogate module and close its window.
     Go to class diagram in Together.
     Let's see how to go quickly from a model element in Together 
     to correspondent object in DOORS surrogate module. 
     Select there "operationB1" element in ClassB and leave it selected.
     Click right mouse over "Find object in DOORS" item of modules tree.
     Click "Run".
     After some work the message box will appeare with the text:
     "1 object(s) found in DOORS". Close it. 
     Go to DOORS formal module window. You will see "ClassB.operationB1():void"
     object selected and filtered. Unselect filtering button on the toolbar.
     You will see all objects in the model with the found object selected.

     Close the surrogate module window.

15). Now, let's see how to synchronize the surrogate module in DOORS 
     with the model in Together after the model has been considerably 
     changed.
  
     Remove "attributeA1" and "operationA1" in ClassA.
     Using mouse, drag "operationB1" and "attributeB1" from
     ClassB to ClassA. This we will consider as "big changes"
     in Together model.

     Click right mouse over "Synchronize module in DOORS" item
     in Together modules tree and select "Run". After a little work
     the following message box appear:
        "Synchronization with DOORS completed.
         0 object(s) created
         2 object(s) modified
         2 object(s) marked deleted".

     Close the message box and go to surrogate module window in DOORS.
     You will see just modified and marked "deleted" objects are filtered.
     Unselect filtering.
     In combo-box at the toolbar select "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.
     
     So, 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
     link would be safe.
     

16). At the last, let's see how to go quickly from any object in the surrogate
     module to the corresponding element in Together model.
     
     In Together system menu Select "Start server" item and run it.
     Let's find the model element corresponding to object 
     "ClassB.operationB2():void" of surrogate module.

     Go to DOORS.
     In the main DOORS menu select following items:
     "DOORSConnect" | "Together" | "Find element in Together"

     Soon the message box 
     "Element found. See selected element in the current diagram"
     will appear.
     Acknowledge it.
     You will see element "operationB2" in ClassB get selected.
     That's what we needed to find!


17). Now, you can exercise all these Together-DOORS Integration 
     steps with some larger model. Try, for expamle, "CashSales" 
     sample model.


