Difference: 'uses', 'extends', 'includes'

Answers were Sorted based on User's Feedback



Difference: 'uses', 'extends', 'includes'..

Answer / prasad

"X uses Y" indicates that the task "X" has a subtask "Y";
that is, in the process of completing task "X", task "Y"
will be completed at least once.

"X extends Y" indecates that "X" is a task of the same type
as "Y", but "X" is a special, more specific case of
doing "Y". That is, doing X is a lot like doing Y, but X
has a few extra processes to it that go above and beyond
the things that must be done in order to complete Y.

Is This Answer Correct ?    41 Yes 7 No

Difference: 'uses', 'extends', 'includes'..

Answer / prakatheesh

The <<include>> relationship means that the flow of that
use case is always included.
But a <<extend>> relationship means that the flow of the
extending use case is only
included under specific conditions, which must be specified
as the extension point of the
use case being extended.

Is This Answer Correct ?    32 Yes 6 No

Difference: 'uses', 'extends', 'includes'..

Answer / clark

Includes:

if(TRUE)

include the use case

Extends:

if(condition)

extend the use case

It's a matter of unconditional VS. conditional insertion

(Source : Uml 2002--The Unified Modeling Language
By Jean-Marc Jézéquel, Heinrich Hussmann, Stephen Cook)

Uses:

Defined in UML 1.1

Is This Answer Correct ?    22 Yes 13 No

Difference: 'uses', 'extends', 'includes'..

Answer / naveen sisupalan

If one usecase must use another usecase, then use include
relationship. If one use case may use another usecase, then
use extends relationship. uses relationship is defined in
UML 1.1.

Is This Answer Correct ?    34 Yes 26 No

Difference: 'uses', 'extends', 'includes'..

Answer / julian c

Include vs extends is nothing to do with 'always' or 'sometimes'. In UML 2.x these are dependency arrow stereotypes.

If the base use case is incomplete... i.e. we can not write, build, test and use it without the linked use case then it is MANDATORY that the other use case exists; this requires and <<include>>. Getting hung up on the always/sometimes issue is counter-productive.

If we can write, build, test and use the base use case without the linked use case existing at all then it is NOT dependent on it; the linked use case however describes how it may add functionality to the base use case - THAT'S WHY THE ARROW IS THE OTHER WAY and is stereotyped <<extend>>. The extending use case is OPTIONAL in that we may or may not provide that functionality at all.

The included use case is like a sub function that is called.
An extend use case can change any aspect of the base use case and in several places. Look at it this way; if I use MSWord to open the base use case, turn on track-changes and then edit it to represent changes I want to make (usually but not limited to additional functionality) the extending use case represents those tracked changes.

<<uses>> is UML 1.x and although still prominent in Visio Use Case stencils (finally fixed in Visio 2013) is deprecated.

Is This Answer Correct ?    2 Yes 0 No

Difference: 'uses', 'extends', 'includes'..

Answer / sajad ali

Include usecase is shared can be resuse but extend class
relationship can't shared or reuse

Is This Answer Correct ?    9 Yes 8 No

Difference: 'uses', 'extends', 'includes'..

Answer / hell boy

includes is mandatory
extends is optional
uses is for help

Is This Answer Correct ?    17 Yes 17 No

Post New Answer

More OOAD Interview Questions

Explain about object oriented databases?

0 Answers  


What is a constructor in class?

0 Answers  


Explain persistence?

0 Answers  


What is the difference between class inheritance and interface inheritance?

0 Answers  


Explain about Overloading vs Overriding ?

0 Answers  






How can I be thrown polymorphically?

0 Answers  


Explian following terms: Constraint Rules, Design by contract.

1 Answers   Protech,


Comment: C++ "includes" behavior and java "imports"

1 Answers   Protech,


Can you give some examples of tokens?

0 Answers  


What is constructor and virtual function? Can we call virtual funciton in a constructor?

0 Answers  


What is serialization? How do we implement serialization actually?

0 Answers  


Difference between class and an object?

0 Answers  


Categories