Shown in the image below is an example of an actor that can perform an action and this action branches into several options (none of them HAVE to be performed). My question is whether the arrows coming from "Manage my events" should be "include" or "extend". In other words, is "include" or "extend" more appropriate if I want to depict a use case branching out into other optional use cases? enter image description here


if you take a look at UML Specification.

Include : An Include relationship specifies that a UseCase contains the behavior defined in another UseCase.


Extend : A relationship from an extending UseCase to an extended UseCase that specifies how and when the behavior defined in the extending UseCase can be inserted into the behavior defined in the extended UseCase.

So your example means that when a user "manage my event", he always (includes) "Update event", "Add event", and "Invite participant".

I guess that you wanted to model the fact that "manage my event", may be extended by "Update event", "Add event", and "Invite participant". If I am right, "Extend" relationship would be better cf below.

enter image description here

  • as a second thought, won't inheritance fit this case more? I mean, make "Update event", "Add event" and "Invite participants" inherit from "Manage my events" instead of extending it. – erap129 Mar 11 at 9:38
  • It is possible.... I would recommand you to describe your use cases. If your actor has a "Manage my events" use case and in some case this managing is extended by adding an event, keep your current modelling. – Red Beard Mar 12 at 12:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.