Can some one explain me the difference between extends and include. What i understand from my reading is that "A use case which uses extends is an independent component" where as "A use case which uses include is a dependent component and cannot exist independently" It would be great if someone share their comments on this topic.
An extend dependency is a generalization relationship where an extending use case continues the behavior of a base use case. The extending use case accomplishes this by conceptually inserting additional action sequences into the base use-case sequence. This allows an extending use case to continue the activity sequence of a base use case when the appropriate extension point is reached in the base use case and the extension condition is fulfilled. When the extending use case activity sequence is completed, the base use case continues. An extending use case is, effectively, an alternate course of the base use case. In fact, a good rule of thumb is you should introduce an extending use case whenever the logic for an alternate course of action is at a complexity level similar to that of your basic course of action. Many use-case modelers avoid the use of extend dependencies as this technique has a tendency to make use-case diagrams difficult to understand. Another way to indicate potential reuse within use-case models exists in the form of include dependencies. An include dependency, formerly known as a uses relationship in UML v1.2 and earlier, is a generalization relationship denoting the inclusion of the behavior described by another use case. The best way to think of an include dependency is that it is the invocation of a use case by another one. You use include dependencies whenever one use case needs the behavior of another. Introducing a new use case that encapsulates similar logic that occurs in several use cases is quite common. For example, you may discover several use cases need the behavior to search for and then update information about students, indicating the potential need for an �Update Student Record� use case included by the other use cases. This is an abstract of a doc I downloaded sometime back. I found this immensly useful. Hope you feel the same way .