In a number of threads in this forum (such as; Not Deleting objects in Project Viewer (http://www.sparxsystems.com.au/cgi-bin/yabb/YaBB.pl?board=general;action=display;num=1119440267;start=3#3)), I observed that the there was an inconsistency in the way EA treated the delete key. Also how there was (again) that rather arbitrary distinction between Lines and Shapes.
In another context I got to thinking about the question of naming these types of methods. I've come up with:
[size=16]Removal vs Deletion vs Purging[/size][/font]
[edit]Since the original publication of this Topic, I've come to the view that Purging is a better description than Destruction (the original term) for this function. (It also has the benefit of a different first letter ;) (Apr 2010)[/edit]
Removal merely implies the disassociation between the diagram1 collection and the item
(such as remove class from diagram - but not from model)
Note: Hiding an entire line or shape is conceptually identical to removal. EA allows the hiding of specific Line Segment - but since they've used "Hiding" for "Removal" - they have to call the functionality Suppress (yet it's inverse is Show - rather than say Restore).
Deletion implies that although the item can be deleted, there is the possibility of recovery (say via undo)
Purging explicitly says there is no recovery from this action!
Consequently, where an EA operation directly affects the database (and for which, at present, there is no recovery) we should use the verb Purge. For operations such as on the diagram where there is very often an undo facility we should use Remove or Delete where appropriate.
Thoughts?
Paolo
BTW: you can only suppress one line segment on a line but there must be at least three and it can't be the origin segment.
1clarification as a result of Midnight's post below...
[size=0]©2006 Paolo Cantoni, -Semantica-[/size]
Note: Hiding an entire line or shape is conceptually identical to removal.
Are you sure about this in your first message?
It seems to me that hiding an entire line is not the same as removing the connection from the shape. The "collection" in this case would be context-dependant. Here it means removal from the diagram's DiagramLinks collection, but not the element's "Connectors" collection.
Isn't that good OO practice? Seriously, I do need to make it clear that it's the diagram's collections I'm referring to. And (in the EA context) which set of diagrams I'm talking about. That is, remove in this diagram, but not in that diagram...
Thanx,
Paolo