What is the difference between 'includes', 'extends' and 'uses'?
Solution 1
includes and uses are the same. From http://www.agilemodeling.com/essays/useCaseReuse.htm above
An include dependency, formerly known as a uses relationship in UML v1.2 and earlier
Solution 2
Nice writeup here: http://www.agilemodeling.com/essays/useCaseReuse.htm
Summary from that article:
- An extending use case continues the behavior of a base use case.
- An include dependency 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.
- The inheriting use case would completely replace one or more of the courses of action of the inherited use case.
Solution 3
The include
relationsionship is usually used in use cases to signify that one use case uses the other. In contrast the use
relationship is used in UML to show dependencies between models, that one model requires the other in order to function.
Here are the quotes from IBM's documentation.
Include relationships
In UML modeling, an include relationship is a relationship in which one use case (the base use case) includes the functionality of another use case (the inclusion use case). The include relationship supports the reuse of functionality in a use case model.Usage relationships
In UML modeling, a usage relationship is a type of dependency relationship in which one model element (the client) requires another model element (the supplier) for full implementation or operation.
To recap (as I understand it) includes
is a dependency in the model while use
is a dependency in the functionality.
Solution 4
"includes" and "uses" indicates the mandatory use case where as "extends" indicates the optional use case.
Comments
-
SMUsamaShah almost 2 years
In a use case diagram what is the difference between
<<includes>>
,<<extends>>
and<<uses>>
? Are<<includes>>
and<<uses>>
are the same thing? -
SMUsamaShah over 13 yearswhat i understood is that
<<uses>>
is used between any usecase that is used, while<<includes>>
is a so called sub-usecase of a usecase. Right? -
SMUsamaShah over 13 yearsWell this is expected project presentation exam question, hope my teacher get it right :)
-
Krishna Oza over 10 yearsMy question is since an included use case is a mandatory part of some use case, What is the purpose of depicting it. ? I simlply write the Main use case and will explain the included use case in the use case text(story).
-
DwB over 10 yearsYou draw the included use case because you want to clearly point out that the included use case is not duplicate but is, instead, shared functionality. Duplicate being coded more than once, shared being coded once.
-
Souradeep Nanda over 7 yearsLink is broken, please fix.