Restoring from achive / baseline set?

Hi,

I have a load of redundant link sets in the "DOORS Links" link module, before i start removing them i want to make sure that i can restore the links if i happen to delete something i shouldn't. I've done some reading on here as well as sifting through the help. I have some questions:

Firstly, i understand the only way to save the module links is by doing a baseline set, is this correct?
How do i restore any links i've deleted, can i just restore the links or do i have to restore the whole project foder?
Do i have to create an "Archive" of the project or can i restore through a baseline set?
What the point of an Archiving when you can baseline everything?

I would be very greatful if anyone can help me with the above questions.

Many Thanks

Alex
aikemp - Mon Jan 30 07:26:21 EST 2012

Re: Restoring from achive / baseline set?
DOORSWizard - Mon Jan 30 08:00:54 EST 2012

I highly recommend you look into using Link attributes. Basically you go into each module that has outgoing links and save the Absolute Numbers of the targets of the link into a link attribute. So for example if object ABC_123 links to DEF_456. You would create a Link_DEF attribute in the ABC module and populate it with 456 for object ABC_123. It just so happes DOORS already provides a script to do this. Open the ABC module in exclusive edit and use the Tools->DXL Library. There is a script in there that does just this, can't recall off the top of my head the exact one.

Once you have the link attributes populated, any time you want to recreate the attributes all you need to do is use Links->Link by Attribute from within any module such as ABC. What's great about this is that I would recommend you delete DOORS Links link modules as a whole and instead use other more meaningful link modules to store your relationship (i.e. Requirements Links, Test Links, Interface Links, etc...)

www.ibm.com/developerworks/rational/champions/

Re: Restoring from achive / baseline set?
aikemp - Mon Jan 30 08:39:18 EST 2012

DOORSWizard - Mon Jan 30 08:00:54 EST 2012
I highly recommend you look into using Link attributes. Basically you go into each module that has outgoing links and save the Absolute Numbers of the targets of the link into a link attribute. So for example if object ABC_123 links to DEF_456. You would create a Link_DEF attribute in the ABC module and populate it with 456 for object ABC_123. It just so happes DOORS already provides a script to do this. Open the ABC module in exclusive edit and use the Tools->DXL Library. There is a script in there that does just this, can't recall off the top of my head the exact one.

Once you have the link attributes populated, any time you want to recreate the attributes all you need to do is use Links->Link by Attribute from within any module such as ABC. What's great about this is that I would recommend you delete DOORS Links link modules as a whole and instead use other more meaningful link modules to store your relationship (i.e. Requirements Links, Test Links, Interface Links, etc...)

www.ibm.com/developerworks/rational/champions/

Hi,

Thanks for the response, I agree with the use of the "DOORS Links" module, i have seperated out all the links into seperate link modules which is why i want to delete the "DOORS Links" module. I just want to back up or take a snapshot of how the links are at the moment in case i delete something i shouldn't. Linking by attribute sounds like a good idea, what will happen to the exsisting links? I'm reluctant to go down this route as my DOORS knowedge is limited and all links are already in place.

Thanks

Alex

Re: Restoring from achive / baseline set?
Craig_Cordrey - Mon Jan 30 09:38:47 EST 2012

In response to your original 4 questions:

1. Yes, to keep the links and the modules consistent at the time of baselining, an archive set is needed. You can archive individual modules, but the links then become meaningless w.r.t. the baselined version of the module.

2. I would normally restore a completely archved project, but the link-by-attribute approach may work, as long as you keep the attributes up-to-date. If you do down the route of using the script mentioned, remember that it will need to be run any time there is a change. Alternately, you could run it immediately before a baseline/archive.

3. A baseline creates a version of the module in the database. You cannot 'roll-back' to a previous baseline or baseline set. Therefore, you would need an Archive from which a previous version of a module could be restored. The link-by-attribute approach manages the link aspects of this, but if you wanted to 'roll-back' to a previous version of the module contents (i.e. not just the links) then you would need to restore a previously archived module or project.

4. An archive gives you an 'offline' (i.e. outside of the database) copy of the module/project at the point of archive. It is independent of baselines - you can archives modules that haven't been baselined, or you can archive modules that have many baselines defined within them.

Re: Restoring from achive / baseline set?
Craig_Cordrey - Mon Jan 30 09:42:59 EST 2012

Craig_Cordrey - Mon Jan 30 09:38:47 EST 2012
In response to your original 4 questions:

1. Yes, to keep the links and the modules consistent at the time of baselining, an archive set is needed. You can archive individual modules, but the links then become meaningless w.r.t. the baselined version of the module.

2. I would normally restore a completely archved project, but the link-by-attribute approach may work, as long as you keep the attributes up-to-date. If you do down the route of using the script mentioned, remember that it will need to be run any time there is a change. Alternately, you could run it immediately before a baseline/archive.

3. A baseline creates a version of the module in the database. You cannot 'roll-back' to a previous baseline or baseline set. Therefore, you would need an Archive from which a previous version of a module could be restored. The link-by-attribute approach manages the link aspects of this, but if you wanted to 'roll-back' to a previous version of the module contents (i.e. not just the links) then you would need to restore a previously archived module or project.

4. An archive gives you an 'offline' (i.e. outside of the database) copy of the module/project at the point of archive. It is independent of baselines - you can archives modules that haven't been baselined, or you can archive modules that have many baselines defined within them.

IGNNORE MY PREVIOUS POST WHICH MIXED THE TERMS ARCHIVE AND BASELINE!

Hopefully this one is at least consistent with terminology.

When are we going to be allowed to edit our own posts?!?

In response to your original 4 questions:

1. Yes, to keep the links and the modules consistent at the time of baselining, a baseline set is needed. You can baseline individual modules, but the links then become meaningless w.r.t. the baselined version of the module.

2. I would normally restore a completely archived project, but the link-by-attribute approach may work, as long as you keep the attributes up-to-date. If you do down the route of using the script mentioned, remember that it will need to be run any time there is a change. Alternately, you could run it immediately before a baseline/archive.

3. A baseline creates a version of the module within the database. A baseline set allows you to create a version of modules and their associated links within the database. You cannot 'roll-back' to a previous baseline or baseline set. Therefore, you would need an Archive from which a previous version of a module could be restored. The link-by-attribute approach manages the link aspects of this, but if you wanted to 'roll-back' to a previous version of the module contents (i.e. not just the links) then you would need to restore a previously archived module or project.

4. An archive gives you an 'offline' (i.e. outside of the database) copy of the module/project at the point of archive. It is independent of baselines - you can archives modules that haven't been baselined, or you can archive modules that have many baselines defined within them.

Re: Restoring from achive / baseline set?
aikemp - Mon Jan 30 10:18:55 EST 2012

Craig_Cordrey - Mon Jan 30 09:42:59 EST 2012
IGNNORE MY PREVIOUS POST WHICH MIXED THE TERMS ARCHIVE AND BASELINE!

Hopefully this one is at least consistent with terminology.

When are we going to be allowed to edit our own posts?!?

In response to your original 4 questions:

1. Yes, to keep the links and the modules consistent at the time of baselining, a baseline set is needed. You can baseline individual modules, but the links then become meaningless w.r.t. the baselined version of the module.

2. I would normally restore a completely archived project, but the link-by-attribute approach may work, as long as you keep the attributes up-to-date. If you do down the route of using the script mentioned, remember that it will need to be run any time there is a change. Alternately, you could run it immediately before a baseline/archive.

3. A baseline creates a version of the module within the database. A baseline set allows you to create a version of modules and their associated links within the database. You cannot 'roll-back' to a previous baseline or baseline set. Therefore, you would need an Archive from which a previous version of a module could be restored. The link-by-attribute approach manages the link aspects of this, but if you wanted to 'roll-back' to a previous version of the module contents (i.e. not just the links) then you would need to restore a previously archived module or project.

4. An archive gives you an 'offline' (i.e. outside of the database) copy of the module/project at the point of archive. It is independent of baselines - you can archives modules that haven't been baselined, or you can archive modules that have many baselines defined within them.

Hi Craig,

Many thanks for your response; it has provided some much needed insight within the team. Initially I had copied the link module in hope that, if i needed to, i could delete the original and rename the copy, not sure if this would have worked. Thank full all redundant link sets are now removed

Many Thanks

Alex

Re: Restoring from achive / baseline set?
Craig_Cordrey - Mon Jan 30 11:13:18 EST 2012

aikemp - Mon Jan 30 10:18:55 EST 2012
Hi Craig,

Many thanks for your response; it has provided some much needed insight within the team. Initially I had copied the link module in hope that, if i needed to, i could delete the original and rename the copy, not sure if this would have worked. Thank full all redundant link sets are now removed

Many Thanks

Alex

Having done a quick bit of experimenting, that approach (copying the link module) would not have worked. When you copy the link module, the copy has no links contained within it, only the definition of the link sets. The link information is actually held within the Source module of the link, though I notice that if you delete the Link Module then the link information in the Source module is lost.

So it looks as though you need a 'consistent pair' of both Source Module and Link Module.

Re: Restoring from achive / baseline set?
llandale - Mon Jan 30 19:31:00 EST 2012

DOORSWizard - Mon Jan 30 08:00:54 EST 2012
I highly recommend you look into using Link attributes. Basically you go into each module that has outgoing links and save the Absolute Numbers of the targets of the link into a link attribute. So for example if object ABC_123 links to DEF_456. You would create a Link_DEF attribute in the ABC module and populate it with 456 for object ABC_123. It just so happes DOORS already provides a script to do this. Open the ABC module in exclusive edit and use the Tools->DXL Library. There is a script in there that does just this, can't recall off the top of my head the exact one.

Once you have the link attributes populated, any time you want to recreate the attributes all you need to do is use Links->Link by Attribute from within any module such as ABC. What's great about this is that I would recommend you delete DOORS Links link modules as a whole and instead use other more meaningful link modules to store your relationship (i.e. Requirements Links, Test Links, Interface Links, etc...)

www.ibm.com/developerworks/rational/champions/

You mean "Object Attributes" that house the desired target absolute number. That's different from "Link Attributes" which are rather tricky things but let you assign information about the Link itself.
obj.NameAttr <- Object Attr
lnk.NameAttr <- Link Attr

Re: Restoring from achive / baseline set?
llandale - Mon Jan 30 19:39:42 EST 2012

You cannot "move" a LinkSet. You need to replicate all the links in the old link-set and create identical ones in the new link-set, Save, then delete the old link-set which will delete all the old links as well, then Save again.

The other poster's suggestions for Link-By-Attribute seems a good way to go.

Not sure how this fits vis-a-vis module baselines.

The hard part is looking at all these DOORS links modules' link-sets and deciding into which approved system link module they belong.

You can avoid much of this trouble by creating a "DOORS links" module in every folder and then deleting it. Folks will then not be able to mindlessly create these rougue links; unless they are clever enough ... oh never mind.

  • Louie

Re: Restoring from achive / baseline set?
rain_bow - Tue Jan 31 11:04:31 EST 2012

llandale - Mon Jan 30 19:39:42 EST 2012
You cannot "move" a LinkSet. You need to replicate all the links in the old link-set and create identical ones in the new link-set, Save, then delete the old link-set which will delete all the old links as well, then Save again.

The other poster's suggestions for Link-By-Attribute seems a good way to go.

Not sure how this fits vis-a-vis module baselines.

The hard part is looking at all these DOORS links modules' link-sets and deciding into which approved system link module they belong.

You can avoid much of this trouble by creating a "DOORS links" module in every folder and then deleting it. Folks will then not be able to mindlessly create these rougue links; unless they are clever enough ... oh never mind.

  • Louie

I once had a contract with a company and I advised them not to use "DOORS Links" module. But their in house wiz kids strongly disagree and encourage the team to use the "DOORS Links" module.

Me being a contractor could only chuckle to myself and let the wiz kids have their way, I could chuckle because I knew I would be back to fix the problems created by the wiz kids.

Re: Restoring from achive / baseline set?
llandale - Tue Jan 31 15:55:08 EST 2012

rain_bow - Tue Jan 31 11:04:31 EST 2012
I once had a contract with a company and I advised them not to use "DOORS Links" module. But their in house wiz kids strongly disagree and encourage the team to use the "DOORS Links" module.

Me being a contractor could only chuckle to myself and let the wiz kids have their way, I could chuckle because I knew I would be back to fix the problems created by the wiz kids.

Well, as long as you don't care about such things as the "type" of relationship and only care that there "is" a relationship, then random DOORS Links modules doesn't matter.