Tuesday, September 21, 2004 04:58 AM
The basic difference between extends and generalize is that both of them are opposites. To extend is to specialize a use case.
Basically when you are extending an use case which is generic, you will add specifications which will work under a given set of circumstances and hence you are making it specialized.
Let us take a simple use case of a passenger trying to buy a subway train ticket from a ticket vending machine.
Passenger ----> Deposit Money
Now Deposit Money can be extended by two use cases namely "Deposit Coins" and "Deposit Notes".
These individual use cases are now extended use cases of the generic use case "Deposit Money"
However the reverse will happen when you are generalizing. You take a specific interaction , remove all the circumstantial specifications from it, then you have a generalization.
The same relationship can be envisaged as a generalization or a specialization(extend) based on the direction of traversal of the relationship.
Hope this helps