Book a Demo

Author Topic: Show non existing dependencies  (Read 3471 times)

SinoTech

  • EA Novice
  • *
  • Posts: 8
  • Karma: +0/-0
  • I love YaBB 1G - SP1!
    • View Profile
Show non existing dependencies
« on: May 19, 2006, 07:52:32 am »
Dear forum,
unfortunatelly I run in some problems. Now we're working on a big project with several partners. Till now each partner has specified one or more services in an own sub-package and has specified needed data types (classes) by their own. Yesterday we came up with the idea to create a separate package holding all needed data types (There were several data types specified twice since of the need by several partners). However, after moving all the specified data types from the sub-packages of each service editor to the global package, I was asked why there are data types specified twice, and then I was told to simply delete those doubles. Unfortunatelly when deleting those, they were also removed from the existing class diagrams (which I've realized tody :( ) , including inheritance and dependency arrows.

We have a backup, but unfortunatelly this is two days old.
I assume there's no way to recovery the deleted classes? But perhaps there's a way to see in which class diagrams they were removed (Something as a history for each class diagram)? Can't believe classes are removed from all class diagrams without give the possibility to check where they was removed.

Best regards,

Sino
« Last Edit: May 19, 2006, 08:37:59 am by SinoTech »

thomaskilian

  • Guest
Re: Show non existing dependencies
« Reply #1 on: May 20, 2006, 01:01:38 pm »
Sino,
I guess you have bad luck here. Once you delete an element from the model it is lost completely. You might set up database triggers to add traces, but this is not done by default. It might be worth an enhancement request, but that won't help you in the short turn :(

SinoTech

  • EA Novice
  • *
  • Posts: 8
  • Karma: +0/-0
  • I love YaBB 1G - SP1!
    • View Profile
Re: Show non existing dependencies
« Reply #2 on: May 23, 2006, 03:07:13 am »
Thank you for your answer, that was something I've expected :(. Think I'll send a request about adding something as this in future versions (e.g. Used classes in a class diagram which doesn't exist anymore, could get highlighted in red color. So everyone working at that diagram could see what's wrong and update it. Simply deleting references when the object gets deleted is not a good idea).

Anyway, there's another question. When deleting an object in the "project view" (The tree like view) I can't use the undo function (I have not closed and restart the EA but simply deleted an object in the projects view and no undo is possible). The "undo" option in "Edit" menu is deactivated and it is only working if doing changes on a diagram, but not if doing something in the project view. So is there a way to make the undo function also working in the project View?

Thanks is advance.

Best regards,

Sino

«Midnight»

  • EA Guru
  • *****
  • Posts: 5651
  • Karma: +0/-0
  • That nice Mister Grey
    • View Profile
Re: Show non existing dependencies
« Reply #3 on: May 23, 2006, 03:57:31 am »
Hi Sino,

Sorry this is a bit long-winded, but I want you to be completely clear on what is happening. That way you can get EA working for rather than against you.

The answer to your second concern - deleting in the Project View - is that here you are doing something a bit different than on a diagram.

The Project View is a list - actually the list as far as the UI is concerned - of what exists in the project. Each icon in the Project View represents the actual item in the project.

Contrast this with a diagram. Even though I can use a diagram as an easy way to enter items into the project, what's shown is only a representation of the item itself. I could later add another representation of the same item to another diagram. Each diagram could have different display settings - features might be shown on one but not the other, parameter display could be set to 'full' on one and 'type only' on the other, and so on - but the diagrams are both showing images of the same[/i[ item. Only a single instance of item itself exists within the model. This single instance is what is shown in the Project View tree.

When you delete an item from a diagram, you are by default only removing that representation of the item, but not the item itself from the model. If you were to open the other diagram, its copy of the item would still be there. And if you dragged the item from the Project View onto yet another diagram it would appear as expected.

Contrast this with deleting an item in the Project View. Here you are removing the [i[actual
single instance of the item from the project. Once removed it is gone, entirely. Any diagram that had a representation of the item is out of date, and is immediately amended to remove the image of the item.

The same is true for any connector (link) that an item participates in. When a representation of an item is removed from a diagram, so too are representations of its links. When the actual item is removed from a project, all links it participated in become invalid (since one or both ends now go noplace) and they too are removed from the project. The links no longer appear on any diagram.

By default EA will warn you when you delete an item in the Project View; you have to confirm deletion. By default EA should at least ask you, when you delete a link or an item from a diagram, whether you want to delete that image of the link or item or remove it from the model.

In the case of deleting an item from a diagram it is possible to set EA to always work the same way (delete only from the diagram or remove entirely from the model). This (setting the default) is easy to do without really noticing, and thereafter you don't get asked.

Try deleting from a diagram wth control-delete (or shift-delete if that does not work) and see if you get a dialog. Pay close attention to what it says.

In the case of the Project View, I am not sure if you can turn the warning off. I keep thinking that I have seen some way to do that, but I really don't what to set that option. I'll happily live with a few extra keystrokes in order to have a safety valve.  I sometimes have to delete a bunch of elements from a model. When this happens I either take the time to go through them and answer OK to each, or drag them into an empty temporary package and delete the package (and thus its contained elements).

HTH,
David
No, you can't have it!

thomaskilian

  • Guest
Re: Show non existing dependencies
« Reply #4 on: May 23, 2006, 05:15:50 am »
Quote
(e.g. Used classes in a class diagram which doesn't exist anymore, could get highlighted in red color. So everyone working at that diagram could see what's wrong and update it. Simply deleting references when the object gets deleted is not a good idea).

You can do this be advanced search: Search for Orphans. So you will find elements not in use. You might write an add-in to create regularly reports also.

Eve

  • EA Administrator
  • EA Guru
  • *****
  • Posts: 8108
  • Karma: +119/-20
    • View Profile
Re: Show non existing dependencies
« Reply #5 on: May 23, 2006, 03:21:01 pm »
Quote
You can do this be advanced search: Search for Orphans. So you will find elements not in use. You might write an add-in to create regularly reports also.

I interpreted what they were wanting as the opposite.  After deleting a class out of the project view, keep showing it on diagrams (in red) so that it could be fixed.  ie. The object on this diagram has been orphaned from the object it's representing.

SinoTech

  • EA Novice
  • *
  • Posts: 8
  • Karma: +0/-0
  • I love YaBB 1G - SP1!
    • View Profile
Re: Show non existing dependencies
« Reply #6 on: May 26, 2006, 01:57:14 pm »
Quote
I interpreted what they were wanting as the opposite.  After deleting a class out of the project view, keep showing it on diagrams (in red) so that it could be fixed.  ie. The object on this diagram has been orphaned from the object it's representing.

Yes, that's correct. We're woking with several partnerws on our repository and, to explain it a little bit more clearly,  there are currently two problems:


1. Orphaned types
Every partner is specifying its own service. Unfortunatelly we haven't defined a set of common types at the beginning and so every service editor has specified types by their own needs. At present we have defined a bunch of common types, where some were already defined by service editors (they defined them before because they had need them). We have deleted those of the service editors and told them to use the new defined one.
So in that case it would be very helpful if orphaned links would be highlighted in the diagrams rather than simply delete.

2. Undo
Since we are working with several partners on the repository, deleting a type from the project is regular (hoping that's the right word ;-) ). e.g. A partner want to delete an own specified type (they are still allowed to define types by themselve if they are not already specified in the common types), and clicks accidently on the wrong entry. In that case the only way to undo it, is to load the last backup into the data base, but in my opinion it should also be possible to simply do an undo as it is possible if woking on a diagram.

Best regards,

Sino
« Last Edit: May 26, 2006, 01:58:56 pm by SinoTech »