How to compare, merge two DOORS modules?

I have two requirements modules imported by me from Customer's  Rev A and Rev B documents. 

Using standard DOORS feature, I can compare these two modules and see changes, updates to requirements in a new column created by DOORS module comparison wizard.


Instead, I want to baseline the "module Rev A" and then merge the "module Rev B" into current  (not baseline) version of Rev A so that after merger I see Rev B updates as superimposed into the Baseline version and accessed as the updated current version.


Can this be done using built-in DOORS feature, please?

If not, is there a simple DOORS DXL program, that I can use to accomplish, please?

Or is it possible to give, simple outline of a DXL program that can be improved easily and quickly please?  I have DOORS 9.5 version.


Thanks and best regards,
Mike


MikeMelon - Tue Oct 07 22:13:59 EDT 2014

Re: How to compare, merge two DOORS modules?
MikeMelon - Wed Oct 08 03:03:01 EDT 2014

In the above question, the modules DO NOT have any links.


Can I do the following steps as a solution to my previous question?


1. Create baseline of Revision A module and name it as Baseline A.
2. Delete all object from the current version of the module A.
3. Create baseline of empty current version and name it as baseline "Empty"
4. Export Revision B of the Word doc into the "current version that has no objects  (i.e. after creating Empty baseline) of Revision A module"
5. Save "Revision B Doc's module" that is in the "current version of Revision A module" as Baseline B.


Are these steps, a correct solution to the question, I have asked above, please? Thanks in advance.

Re: How to compare, merge two DOORS modules?
pommCannelle - Wed Oct 08 08:21:06 EDT 2014

( This is not a merge anymore ... 
In order to be abble to make a merge, you should try to learn to deal with :
- new objects, (use the parent object to know where to insert it ;) )
- missing objects, 
- modified objects, 
- moved objets, 
- traceabiity.

And my last tip ... parse your module once per object level o:)
Have fun and post your code if you are in trouble !)

Re: How to compare, merge two DOORS modules?
Mike.Scharnow - Wed Oct 08 10:00:54 EDT 2014

MikeMelon - Wed Oct 08 03:03:01 EDT 2014

In the above question, the modules DO NOT have any links.


Can I do the following steps as a solution to my previous question?


1. Create baseline of Revision A module and name it as Baseline A.
2. Delete all object from the current version of the module A.
3. Create baseline of empty current version and name it as baseline "Empty"
4. Export Revision B of the Word doc into the "current version that has no objects  (i.e. after creating Empty baseline) of Revision A module"
5. Save "Revision B Doc's module" that is in the "current version of Revision A module" as Baseline B.


Are these steps, a correct solution to the question, I have asked above, please? Thanks in advance.

You could of course do this, but you would not gain anything from that approach:

assume Revision A contains 10 paragraphs.

assume Revision B contains 12 paragraphs. three paragraphs have been removed, 5 new ones have been inserted, 4 have been changed, 3 have not been changed.

 

When you import Revision A to DOORS, they objects' absolute numbers will range from 1 to 10.

Now you baseline, empty and refill your module with Revision B. the new objects' absolute numbers will range from 11 to 22.

You would have no information available that tells you whether the old object "1" has changed or not.

 

The main problem here is to identify corresponding paragraphs / requirements / textual information / pictures / tables etc.

I'm afraid there is no easy solution for your problem.

 

Re: How to compare, merge two DOORS modules?
llandale - Wed Oct 08 16:32:14 EDT 2014

I don't use the compare wizard, so I presume it creates a Layout of differences.  This only works if the modules have common ancestory which results in objects with the same absolute number (or Object ID) as being the same object.  If that is true, I wonder how it "displays" a new object in B...

Anyway, you could edit the layout such that when it finds matching objects, just display the "B" value instead of comparing, which it probably does with the "diff" function.  When that column looks right, edit the DXL again, when there are paired objects don't just display the B value, also set it the A Object Text.

I DXL to do this has some serious problems, mostly dealing with objects that are in different places in B than in A (they moved a section).  Once you figure that out, you can find and remember corresponding objects (with the same AbsNo) and set the A text.  Then use a two-fingered algorith (oA = next(oA); oB = next(oB)) finding objects that are not paired.  If A exists and not B, then either delete (oA) or set the text to "DELETED".  If B exists but not A, you'll need to insert a new object in A to correspond to B.  Inserting and object will force you to keep track of the "previous" object in A for each level, which you can do with a stack.  Yuuuuuck.

-Louie