Overlay Display?

I'm looking for a way to display two modules in different projects in the same module.

I have one Module of a released project - I will call this the Original. The second module includes just deltas from the Original. There are links to any of the Original's objects that are overridden in the Delta module. The section numbers are the same between the two modules (or will be after I'm done!).

I have been requested to create a complete module view without adding all of the released Original project objects into the Delta . I am thinking that the easiest way is to use the section numbers to display all objects from the Original under the related section header unless there's a Delta linked. Has anybody done something similar? (I hope this makes sense, it's hard to explain!)

Thanks
Stacy
SystemAdmin - Mon Aug 20 15:28:11 EDT 2012

Re: Overlay Display?
SystemAdmin - Mon Aug 20 15:31:13 EDT 2012

I should probably also add that we're still running Doors 8.3...

Re: Overlay Display?
Mathias Mamsch - Tue Aug 21 04:11:48 EDT 2012

SystemAdmin - Mon Aug 20 15:31:13 EDT 2012
I should probably also add that we're still running Doors 8.3...

If it is not necessary that this is literally a "View" in one of the modules, I would suggest you make a script, which creates a completely new module from both modules, showing the necessary information. You could try fiddeling with attribute DXL and Layout DXL to show a calculated result, but that quickly becomes awkward to do. Regards, Mathias


Mathias Mamsch, IT-QBase GmbH, Consultant for Requirement Engineering and D00RS

Re: Overlay Display?
llandale - Tue Aug 21 14:49:21 EDT 2012

So if I read this right the Original has lots of objects and is "complete", and the Delta module has all the Headings, but only text Objects when there is a difference from the Original; and all such Delta objects are linked to the Original.

[1] Seems to me an Attr-DXL in the Original could do the trick, so long as Delta has no newly inserted requirements.

oOriginal = obj
if    (oOriginal is a Heading) then result = some clever number+Heading display with suitable bolding
elseif(there is an incoming link from the Delta I care about) //
then Result = clever "diff" of the Original text compared to the Delta text
else Result = oOriginal text
obj.attrDXLName = Result

Put that attr alone in its own view in mOriginal, and output it.

[2] If you are sure your Delta has all the same Sections as Original, then since I hate creating "report" modules, you could also just make a report; based on the tried and true "two fingered algorithm":

mOriginal = read(Original, false, true)   // Standard view Required for both modules
mDelta    = read(Delta, false, true)
oOriginal = first(mOriginal)
oDelta    = first(mOriginal)
while (!null oOrginal and !null oDelta)
{  if (oDelta and oOriginal are the exact same Heading)
   {  report oDelta as Heading
      oOriginal = next(oOriginal)
      oDelta    = next(oDelta)
   }
   elseif (oDelta links directly to oOriginal) 
   {      // report paired objects
      report Text Difference
      oOriginal = next(oOriginal)
      oDelta    = next(oDelta)
   }
   elseif (oDelta has no Original link) 
   {      // report newly inserted Delta object
      Report oDelta highlighted (compare it to an empty "from" buffer)
      oDelta = next(oDelta)
   }
   elseif (oDelta has indeed an Original link)
   {      // report ignored Original object
      Report oOriginal
      oOriginal = next(oOriginal)
   }
   else Report Louie made a mistake
}
         // at bottom of one or both modules.  Clean up:
if    ( null oOriginal and !null oDelta) then report the rest of mDelta
elseif( null oOriginal and  null oDelta) then nothing to do
elseif(!null oOriginal and !null oDelta) then you made a mistake
elseif(!null oOriginal and  null oDelta) then report the rest of oOriginal
else report Louie made a mistake

You could use a version of the [2] algorithm in the Attr-DXL solution [1], but it will display rather clumsily.

-Louie

And the peanut gallery will please refrain from discussing which two fingers are used.