<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=OCUP_Use_Case_Diagram</id>
	<title>OCUP Use Case Diagram - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=OCUP_Use_Case_Diagram"/>
	<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=OCUP_Use_Case_Diagram&amp;action=history"/>
	<updated>2026-04-21T08:51:02Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://training-course-material.com/index.php?title=OCUP_Use_Case_Diagram&amp;diff=28118&amp;oldid=prev</id>
		<title>Filip Stachecki: /* Include⌘ */</title>
		<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=OCUP_Use_Case_Diagram&amp;diff=28118&amp;oldid=prev"/>
		<updated>2015-10-06T07:46:59Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Include⌘&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:Private]]&lt;br /&gt;
[[Category:OCUP]]&lt;br /&gt;
==Use Case Basics⌘==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Use cases&amp;#039;&amp;#039;&amp;#039; are used to model the &amp;#039;&amp;#039;&amp;#039;requirements&amp;#039;&amp;#039;&amp;#039; of a system (what a system is supposed to do)&lt;br /&gt;
* The key concepts associated with use cases are &amp;#039;&amp;#039;&amp;#039;actors&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;use cases&amp;#039;&amp;#039;&amp;#039;, and the &amp;#039;&amp;#039;&amp;#039;subject&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
===Use Case Diagram⌘===&lt;br /&gt;
[[File:OCUPUseCaseDiagram.png]]&lt;br /&gt;
* describes the relationships among a set of use cases and the actors participating in these use cases&lt;br /&gt;
* it does NOT describe behavior or flows (&amp;#039;&amp;#039;&amp;#039;WHO&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;WHAT&amp;#039;&amp;#039;&amp;#039;, not &amp;#039;&amp;#039;&amp;#039;HOW&amp;#039;&amp;#039;&amp;#039;)&lt;br /&gt;
===Actor⌘===&lt;br /&gt;
[[File:OCUPActor.png]]&lt;br /&gt;
* a &amp;#039;&amp;#039;&amp;#039;role&amp;#039;&amp;#039;&amp;#039; played by an &amp;#039;&amp;#039;&amp;#039;external entity&amp;#039;&amp;#039;&amp;#039; - a user or any other system that interacts with the subject&lt;br /&gt;
* may represent roles played by human users, external hardware, or other subjects&lt;br /&gt;
* Notation: &amp;quot;stick man&amp;quot; icon (with the name above or below) or rectangle&lt;br /&gt;
===Relationships Between Actors⌘===&lt;br /&gt;
[[File:ActorRelationship.png]]&lt;br /&gt;
*Generalization&lt;br /&gt;
*Specialization&lt;br /&gt;
&lt;br /&gt;
===UseCase⌘===&lt;br /&gt;
[[File:OCUPUseCase.png]]&lt;br /&gt;
* the specification of a set of actions performed by a system and produce a &amp;#039;&amp;#039;&amp;#039;result&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* a &amp;#039;&amp;#039;&amp;#039;complete&amp;#039;&amp;#039;&amp;#039; set of actions that perform a function for a particular actor&lt;br /&gt;
* Notation: an ellipse (with the name inside or below) or rectangle with stereotype&lt;br /&gt;
&lt;br /&gt;
===Subject⌘===&lt;br /&gt;
[[File:UseCaseSubject.png]]&lt;br /&gt;
* a system (subject) is a box containing use cases&lt;br /&gt;
* defines boundaries and responsibilities&lt;br /&gt;
* actors are &amp;#039;&amp;#039;&amp;#039;always external&amp;#039;&amp;#039;&amp;#039; to a system&lt;br /&gt;
&lt;br /&gt;
===Relationships Between Actors and Use Cases⌘===&lt;br /&gt;
[[File:UseCaseActorRelationship.png]]&lt;br /&gt;
*an &amp;#039;&amp;#039;&amp;#039;association&amp;#039;&amp;#039;&amp;#039; expresses a communication path between the actor and the use case&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;directed association&amp;#039;&amp;#039;&amp;#039; from the active to the passive element (who initiated the communication)&lt;br /&gt;
* association with &amp;#039;&amp;#039;&amp;#039;multiplicity&amp;#039;&amp;#039;&amp;#039; like 0..*, 2..*, *, etc&lt;br /&gt;
** &amp;#039;&amp;#039;&amp;#039;at the actor end&amp;#039;&amp;#039;&amp;#039; - more than one actor instance is involved in initiating the use case&lt;br /&gt;
** &amp;#039;&amp;#039;&amp;#039;at the use case end&amp;#039;&amp;#039;&amp;#039; - an actor can be involved in multiple use cases of that type&lt;br /&gt;
===Relationships Between Use Cases⌘===&lt;br /&gt;
Three types of relationship:&lt;br /&gt;
* «include»&lt;br /&gt;
* «extend»&lt;br /&gt;
* generalization&lt;br /&gt;
====Include⌘====&lt;br /&gt;
[[File:include-use-case.png]] © uml-diagrams.org&lt;br /&gt;
* defines that a use case contains the behavior defined in another use case, behavior of the included use case is inserted into the behavior of the including use case&lt;br /&gt;
* included use case is &amp;#039;&amp;#039;&amp;#039;not optional&amp;#039;&amp;#039;&amp;#039;, and is &amp;#039;&amp;#039;&amp;#039;always required&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
[[File:include-two-use-cases.png]] © uml-diagrams.org&lt;br /&gt;
&lt;br /&gt;
* include relationship is intended to be used when there are &amp;#039;&amp;#039;&amp;#039;common&amp;#039;&amp;#039;&amp;#039; parts of the behavior of two or more use cases&lt;br /&gt;
* this common part is then extracted to a separate use case, to be included by all the base use cases having this part in common&lt;br /&gt;
&lt;br /&gt;
====Include Example⌘====&lt;br /&gt;
[[File:OCUPInclude.png]]&lt;br /&gt;
* basic flow of events is &amp;#039;&amp;#039;&amp;#039;incomplete&amp;#039;&amp;#039;&amp;#039; without the inclusion&lt;br /&gt;
&lt;br /&gt;
====Extend⌘====&lt;br /&gt;
[[File:OCUPExtend.png]]&lt;br /&gt;
* a relationship from an extending use case to an extended use case &lt;br /&gt;
* specifies how and when the behavior defined in the extending use case can be inserted into the extended use case&lt;br /&gt;
* the extension takes place at &amp;#039;&amp;#039;&amp;#039;extension point&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* basic flow of events should still is &amp;#039;&amp;#039;&amp;#039;complete&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=====Extension Point⌘=====&lt;br /&gt;
[[File:ExtensionPointNotation.png]]&lt;br /&gt;
&lt;br /&gt;
====Generalization⌘====&lt;br /&gt;
[[File:Generalization.png|385px]]&lt;br /&gt;
* the specific use case inherits the features of the more general use case&lt;br /&gt;
====Abstract Use Case⌘====&lt;br /&gt;
[[File:OCUPAbstractUseCase.png]]&lt;br /&gt;
* does not provide a complete declaration and can typically not be instantiated&lt;br /&gt;
* is intended to be used by other use cases, e.g., as a target of generalization relationship&lt;br /&gt;
* the name of an abstract Use Case is shown in &amp;#039;&amp;#039;italics&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
===Use Case Diagram Example⌘===&lt;br /&gt;
[[File:UseCaseDiagramExampleWithNumbers.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Questions&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Which use case could be abstract?&lt;br /&gt;
# Which actors are passive?&lt;br /&gt;
# Are dashed arrows (1, 2, 3) include or extend relationships?&lt;br /&gt;
# Which use case needs to have an extension point?&lt;br /&gt;
&lt;br /&gt;
===Questions⌘===&lt;br /&gt;
* What is the difference between an actor and a user?&lt;/div&gt;</summary>
		<author><name>Filip Stachecki</name></author>
	</entry>
</feed>