Uml Diagrams
Uml Diagrams
Things
Things are the most important building blocks of UML. Things can be −
• Structural
• Behavioral
• Grouping
• Annotational
Structural Things
Structural things define the static part of the model. They represent the physical and
conceptual elements. Following are the brief descriptions of the structural things.
Class − Class represents a set of objects having similar responsibilities.
Interface − Interface defines a set of operations, which specify the responsibility of a class.
Collaboration −Collaboration defines an interaction between elements.
Use case −Use case represents a set of actions performed by a system for a specific goal.
Node − A node can be defined as a physical element that exists at run time.
Behavioral Things
A behavioral thing consists of the dynamic parts of UML models. Following are the
behavioral things −
Interaction − Interaction is defined as a behavior that consists of a group of messages
exchanged among elements to accomplish a specific task.
State machine − State machine is useful when the state of an object in its life cycle is
important. It defines the sequence of states an object goes through in response to events.
Events are external factors responsible for state change
Grouping Things
Grouping things can be defined as a mechanism to group elements of a UML model
together. There is only one grouping thing available −
Package − Package is the only one grouping thing available for gathering structural and
behavioral things.
Annotational Things
Annotational things can be defined as a mechanism to capture remarks, descriptions, and
comments of UML model elements. Note - It is the only one Annotational thing available. A
note is used to render comments, constraints, etc. of an UML element.
Relationship
Relationship is another most important building block of UML. It shows how the elements
are associated with each other and this association describes the functionality of an
application.
There are four kinds of relationships available.
Dependency
Dependency is a relationship between two things in which change in one element also affects
the other.
Association
Association is basically a set of links that connects the elements of a UML model. It also
describes how many objects are taking part in that relationship.
Generalization
Generalization can be defined as a relationship which connects a specialized element with a
generalized element. It basically describes the inheritance relationship in the world of objects.
Realization
Realization can be defined as a relationship in which two elements are connected. One
element describes some responsibility, which is not implemented and the other one
implements them. This relationship exists in case of interfaces.
UML Diagrams
UML diagrams are the ultimate output of the entire discussion. All the elements, relationships
are used to make a complete UML diagram and the diagram represents a system.
The visual effect of the UML diagram is the most important part of the entire process. All the
other elements are used to make it complete.
UML includes the following nine diagrams, the details of which are described in the
subsequent chapters.
• Class diagram
• Object diagram
• Use case diagram
• Sequence diagram
• Collaboration diagram
• Activity diagram
• Statechart diagram
• Deployment diagram
• Component diagram
UML - Architecture
UML plays an important role in defining different perspectives of a system. These
perspectives are −
• Design
• Implementation
• Process
• Deployment
Structural Modeling
Structural modeling captures the static features of a system. They consist of the following −
• Classes diagrams
• Objects diagrams
• Deployment diagrams
• Package diagrams
• Composite structure diagram
• Component diagram
Structural model represents the framework for the system and this framework is the place
where all other components exist. Hence, the class diagram, component diagram and
deployment diagrams are part of structural modeling. They all represent the elements and the
mechanism to assemble them.
The structural model never describes the dynamic behavior of the system. Class diagram is
the most widely used structural diagram.
Behavioral Modeling
Behavioral model describes the interaction in the system. It represents the interaction among
the structural diagrams. Behavioral modeling shows the dynamic nature of the system. They
consist of the following −
• Activity diagrams
• Interaction diagrams
• Use case diagrams
Structural Things
Graphical notations used in structural things are most widely used in UML. These are
considered as the nouns of UML models. Following are the list of structural things.
• Classes
• Object
• Interface
• Collaboration
• Use case
• Active classes
• Components
• Nodes
Class Notation
UML class is represented by the following figure. The diagram is divided into four parts.
• The top section is used to name the class.
• The second one is used to show the attributes of the class.
• The third section is used to describe the operations performed by the class.
• The fourth section is optional to show any additional components.
Classes are used to represent objects. Objects can be anything having properties and
responsibility.
Object Notation
The object is represented in the same way as the class. The only difference is the name which
is underlined as shown in the following figure.
Interface Notation
Interface is represented by a circle as shown in the following figure. It has a name which is
generally written below the circle.
Interface is used to describe the functionality without implementation. Interface is just like a
template where you define different functions, not the implementation. When a class
implements the interface, it also implements the functionality as per requirement.
Collaboration Notation
Collaboration is represented by a dotted eclipse as shown in the following figure. It has a
name written inside the eclipse.
Collaboration represents responsibilities. Generally, responsibilities are in a group.
Actor Notation
An actor can be defined as some internal or external entity that interacts with the system.
An actor is used in a use case diagram to describe the internal or external entities.
The usage of Initial State Notation is to show the starting point of a process.
The usage of Final State Notation is to show the termination point of a process.
Component Notation
A component in UML is shown in the following figure with a name inside. Additional
elements can be added wherever required.
Component is used to represent any part of a system for which UML diagrams are made.
Node Notation
A node in UML is represented by a square box as shown in the following figure with a name.
A node represents the physical component of the system.
Node is used to represent the physical part of a system such as the server, network, etc.
Behavioral Things
Dynamic parts are one of the most important elements in UML. UML has a set of powerful
features to represent the dynamic part of software and non-software systems. These features
include interactions and state machines.
Interactions can be of two types −
• Sequential (Represented by sequence diagram)
• Collaborative (Represented by collaboration diagram)
Interaction Notation
Interaction is basically a message exchange between two UML components. The following
diagram represents different notations used in an interaction.
Interaction is used to represent the communication among the components of a system.
Package Notation
Package notation is shown in the following figure and is used to wrap the components of a
system.
Annotational Things
In any diagram, explanation of different elements and their functionalities are very important.
Hence, UML has notes notation to support this requirement.
Note Notation
This notation is shown in the following figure. These notations are used to provide necessary
information of a system.
Relationships
A model is not complete unless the relationships between elements are described properly.
The Relationship gives a proper meaning to a UML model. Following are the different types
of relationships available in UML.
• Dependency
• Association
• Generalization
• Extensibility
Dependency Notation
Dependency is an important aspect in UML elements. It describes the dependent elements
and the direction of dependency.
Dependency is represented by a dotted arrow as shown in the following figure. The arrow
head represents the independent element and the other end represents the dependent element.
Association Notation
Association describes how the elements in a UML diagram are associated. In simple words, it
describes how many elements are taking part in an interaction.
Association is represented by a dotted line with (without) arrows on both sides. The two ends
represent two associated elements as shown in the following figure. The multiplicity is also
mentioned at the ends (1, *, etc.) to show how many objects are associated.
Association is used to represent the relationship between two elements of a system.
Generalization Notation
Generalization describes the inheritance relationship of the object-oriented world. It is a
parent and child relationship.
Generalization is represented by an arrow with a hollow arrow head as shown in the
following figure. One end represents the parent element and the other end represents the child
element.
Extensibility Notation
All the languages (programming or modeling) have some mechanism to extend its
capabilities such as syntax, semantics, etc. UML also has the following mechanisms to
provide extensibility features.
• Stereotypes (Represents new elements)
• Tagged values (Represents new attributes)
• Constraints (Represents the boundaries)
Extensibility notations are used to enhance the power of the language. It is basically
additional elements used to represent some extra behavior of the system. These extra
behaviors are not covered by the standard available notations.
Structural Diagrams
The structural diagrams represent the static aspect of the system. These static aspects
represent those parts of a diagram, which forms the main structure and are therefore stable.
These static parts are represented by classes, interfaces, objects, components, and nodes. The
four structural diagrams are −
• Class diagram
• Object diagram
• Component diagram
• Deployment diagram
Class Diagram
Class diagrams are the most common diagrams used in UML. Class diagram consists of
classes, interfaces, associations, and collaboration. Class diagrams basically represent the
object-oriented view of a system, which is static in nature.
Active class is used in a class diagram to represent the concurrency of the system.
Class diagram represents the object orientation of a system. Hence, it is generally used for
development purpose. This is the most widely used diagram at the time of system
construction.
he following class diagram has been drawn considering all the points mentioned above.
Object Diagram
Object diagrams can be described as an instance of class diagram. Thus, these diagrams are
more close to real-life scenarios where we implement a system.
Object diagrams are a set of objects and their relationship is just like class diagrams. They
also represent the static view of the system.
The usage of object diagrams is similar to class diagrams but they are used to build prototype
of a system from a practical perspective.
Component Diagram
Component diagrams represent a set of components and their relationships. These
components consist of classes, interfaces, or collaborations. Component diagrams represent
the implementation view of a system.
During the design phase, software artifacts (classes, interfaces, etc.) of a system are arranged
in different groups depending upon their relationship. Now, these groups are known as
components.
Finally, it can be said component diagrams are used to visualize the implementation.
Deployment Diagram
Deployment diagrams are a set of nodes and their relationships. These nodes are physical
entities where the components are deployed.
Deployment diagrams are used for visualizing the deployment view of a system. This is
generally used by the deployment team.
Note − If the above descriptions and usages are observed carefully then it is very clear that all
the diagrams have some relationship with one another. Component diagrams are dependent
upon the classes, interfaces, etc. which are part of class/object diagram. Again, the
deployment diagram is dependent upon the components, which are used to make component
diagrams.
Behavioral Diagrams
Any system can have two aspects, static and dynamic. So, a model is considered as complete
when both the aspects are fully covered.
Behavioral diagrams basically capture the dynamic aspect of a system. Dynamic aspect can
be further described as the changing/moving parts of a system.
UML has the following five types of behavioral diagrams −
• Use case diagram
• Sequence diagram
• Collaboration diagram
• Statechart diagram
• Activity diagram
Use Case Diagram
Use case diagrams are a set of use cases, actors, and their relationships. They represent the
use case view of a system.
A use case represents a particular functionality of a system. Hence, use case diagram is used
to describe the relationships among the functionalities and their internal/external controllers.
These controllers are known as actors.
Sequence Diagram
A sequence diagram is an interaction diagram. From the name, it is clear that the diagram
deals with some sequences, which are the sequence of messages flowing from one object to
another.
Interaction among the components of a system is very important from implementation and
execution perspective. Sequence diagram is used to visualize the sequence of calls in a
system to perform a specific functionality.
Collaboration Diagram
Collaboration diagram is another form of interaction diagram. It represents the structural
organization of a system and the messages sent/received. Structural organization consists of
objects and links.
The purpose of collaboration diagram is similar to sequence diagram. However, the specific
purpose of collaboration diagram is to visualize the organization of objects and their
interaction.
Statechart Diagram
Any real-time system is expected to be reacted by some kind of internal/external events.
These events are responsible for state change of the system.
Statechart diagram is used to represent the event driven state change of a system. It basically
describes the state change of a class, interface, etc.
State chart diagram is used to visualize the reaction of a system by internal/external factors.
Activity Diagram
Activity diagram describes the flow of control in a system. It consists of activities and links.
The flow can be sequential, concurrent, or branched.
Activities are nothing but the functions of a system. Numbers of activity diagrams are
prepared to capture the entire flow in a system.
Activity diagrams are used to visualize the flow of controls in a system. This is prepared to
have an idea of how the system will work when executed.
Note − Dynamic nature of a system is very difficult to capture. UML has provided features to
capture the dynamics of a system from different angles. Sequence diagrams and collaboration
diagrams are isomorphic, hence they can be converted from one another without losing any
information. This is also true for Statechart and activity diagram.
STAR UML TUTORIAL
Modeling with UseCase Diagram
The following elements are available in a usecase diagram.
• Actor
• UseCase
• Associa on
• Derected Associa on
• Generaliza on
• Dependency
• Include
• Extend
• System Boundary
• Package
Actor
Semantics
An actor defines a coherent set of roles that users of an entity can play when interacting with
the entity. An actor may be considered to play a separate role with regard to each use case
with which it communicates.
Procedure for creating Actor
In order to create Actor, click [Toolbox] -> [UseCase] -> [Actor] button and click the position
where to place Actor. Actor is shown in the form of stick man or rectangle with icon, that is
select [Format] -> [Stereotype Display]
decoration view. To display actor in decoration view,
-> [Decoration] menu item or select [Decoration] item in [ ] combo button on toolbar.
UseCase
Semantics
The use case construct is used to define the behavior of a system or other semantic entity
without revealing the entity’s internal structure. Each use case specifies a sequence of actions,
including variants, that the entity can perform, interacting with actors of the entity.
Procedure for creating UseCase
In order to create UseCase, click [Toolbox] -> [UseCase] button and click the position where
to place UseCase on the [main window].
UseCase is expressed in the forms of textual, decoration, iconic. To change UseCase's view
style, select menu item under [Format] -> [Stereotype Display] or select [ ]button's
combo item.
2. And press [Enter] key. Several Actors associated with the UseCase are created and arranged
ver cally.
2. Press [Enter] key and several elements associated with selected element are created and
arranged automa cally.
Generalization
Semantics
Generalization is the taxonomic relationship between a more general element (the parent) and
a more specific element (the child) that is fully consistent with the first element and that adds
additional information.
Procedure for creating generalization
In order to make generalization, click [Toolbox] -> [UseCase] ->[Generalization] button,
drag from child element and drop to parent element in the [main window].
ti
ft
ti
Procedure for creating multiple child actors inherited from actor
To create multiple elements inherited from some element,
1. Enter with "<=" string as following at the quick dialog, and several elements inherited from
selected element are created at once.
2. Child elements are generated below selected element and arranged automa cally.
If you want to create multiple parent element at once, enter "=>" string instead of "<=" in the
quick dialog.
Dependency
Semantics
A dependency is a type of relationship that signifies that one element, or group of elements,
acting as the client depends on another element or group of elements that act as a supplier. It
is a weak relationship that denotes that if the supplier is changed the client may be affected. It
is a unidirectional relationship.
Procedure for creating dependency
In order to create dependency, click [Toolbox] -> [UseCase] -> [Dependency] button, drag
element and drop to other element depended.
ti
Procedure for creating other usecase depended by current usecase
Enter with "-->" string at the quick dialog as following.
Include
Semantics
An include relationship defines that a use case contains the behavior defined in another use
case.
Procedure for creating include
In order to create include relationship, click [Toolbox] -> [UseCase] -> [Include] button,
drag from element including and drop to element included in the [main window].
Extend
Semantics
An extend relationship defines that instances of a use case may be augmented with some
additional behavior defined in an extending use case.
Procedure for creating extend
In order to create extend, click [Toolbox] -> [UseCase] -> [Extend] button, drag from
element extending and drop to element extended in the [main window].
System Boundary
Semantics
A System Boundary is a type of partition that represents the boundary between the thing you
are representing with the use cases (inside the boundary) and the actors (outside the
boundary). Its most typical usage is the boundary of an entire system. Use cases can be used
to represent subsystems and classes and so the boundary may be more specific than an entire
system. A package with a stereotype topLevel can be used as a boundary and name space
within the use case model to denote the same thing as the use case boundary.
Procedure for creating system boundary
In order to create system boundary, click [Toolbox] -> [UseCase] -> [System Boundary]
button, drag from the starting point of system boundary and drag to right-bottom point of
system boundary.
Package
Semantics
A package is a grouping of model elements. Packages themselves may be nested within other
packages. A package may contain subordinate packages as well as other kinds of model
elements. All kinds of UML model elements can be organized into packages.
Procedure for creating package
In order to create package, click [Toolbox] -> [UseCase] -> [Package] button and click at
the location where package will be placed in the [main window].
Subsystem
Semantics
Whereas a package is a generic mechanism for organizing model elements, a subsystem
represents a behavioral unit in the physical system, and hence in the model.
Procedure for creating subsystem
In order to create subsystem,
1. Click [Toolbox] -> [Class] -> [Subsystem] bu on.
ti
ti
ti
ti
ti
ti
ti
ti
ti
tt
2. And click at the loca on or boundary where subsystem will be placed in the [main window].
3. Then a subsystem is created on the class diagram and subsystem quick dialog is opened. At
the quick dialog, enter the subsystem name.
4. Between interface and subsystem, providing interface rela onship is created nally.
Class
Semantics
A class is the descriptor for a set of objects with similar structure, behavior, and relationships.
Procedure for creating class
In order to create class,
1. Click [Toolbox] -> [Class] -> [Class] bu on.
2. And click at the posi on where class will be placed in the [main window].
3. A new class is created on the diagram and class quick dialog is opened.
4. At the quick dialog, enter the class name and press [Enter] key.
In the case of using model, select class in the [main window] or in the [model explorer],
right-click the selected class, select [Add] -> [Operation] popup menu, and you can do.
2. At [opera ons] tab of the [collec on editor], you can add opera on by using bu on.
4. At the [Parameters] tab of the [collec on editor], you can add parameter by using
bu on.
2. At [Raised Signals] tab of the [collec on editor], you can add excep on to the opera on by
using bu on.
tt
tt
ti
ti
ti
ti
3. At [Select a Signal] dialog, select signal or excep on raised by opera on and click [OK]
bu on.
2. Drag it.
tt
tt
ti
ti
ti
3. Drop it into another class.
Select class in the [main window] or the [model explorer], right-click, and select [Add]
-> [TemplateParameter] popup menu. Then you can add template to class.
2. And click the class where the port will be contained in the [main window].
2. And click the class where the part will be contained in the [main window].
2. Drag from one part and drop to the other part in the [main window].
Interface
Semantics
An interface is a specifier for the externally-visible operations of a class, component, or
other classifier (including subsystems) without specification of internal structure.
Procedure for creating interface
In order to create class,
1. Click [Toolbox] -> [Class] -> [Interface] bu on.
2. And click at the posi on where interface will be placed in the [main window]. Then
interface quick dialog is opened. Enter the interface name at the quick dialog.
ti
ti
tt
3. Press [Enter] key. Then the result is as follows.
2. Drag from one(Class, Port, Part, Package, Subsytem) and drop to interface in the [main
window].
Enumeration
Semantics
An Enumeration is a user-defined data type whose instances are a set of user-specified
named enumeration literals. The literals have a relative order but no algebra is defined
on them.
Procedure for creating enumeration
In order to create enumeration,
1. Click [Toolbox] -> [Class] -> [Enumera on] bu on.
2. And click at the posi on where enumera on will be placed in the [main window].
Signal
Semantics
A signal is a specification of an asynchronous stimulus communicated between
instances. The signal is a child to Classifier, with the parameters expressed as
Attributes. A Signal is always asynchronous. A Signal is associated with the
BehavioralFeatures that raise it.
Procedure for creating signal
In order to create signal,
ti
ti
ti
ti
tt
1. Click [Toolbox] -> [Class] -> [Signal] bu on.
2. And click at the posi on where signal will be placed in the [main window].
Exception
Semantics
An exception is a signal raised by behavioral features typically in case of execution
faults. An Exception is associated with the BehavioralFeatures that raise it.
Procedure for creating exception
In order to create exception,
1. Click [Toolbox] -> [Class] -> [Excep on] bu on.
2. And click at the posi on where excep on will be placed in the [main window].
Association
Semantics
An association is an association among exactly two classifiers (including the possibility
of an association from a classifier to itself).
ti
ti
ti
ti
tt
tt
Procedure for creating association
In order to create association,
1. Click [Toolbox] -> [Class] -> [Associa on] bu on.
2. Drag from one associated and drop to another in the [main window].
DirectedAssociation
Procedure for creating directed association
Procedure for creating directed association is equal to association's.
1. Click [Toolbox] -> [Class] -> [DirectedAssocia on].
Procedure for creating element having directed association by shortcut creation syntax
In order to create element having directed association, use shortcut creation syntax,
1. Double-click element. At the quick dialog, enter name of elements that have directed
associa on a er "->" string and separate names with ",".
ti
ft
2. Press [Enter] key and mul ple elements associated with selected element are created and
arranged automa cally.
Aggregation
Semantics
An aggregate is a more specific type of association. The aggregate is signified by a
hollow diamond on the point where the association connects with the classifier
(association end). Aggregate adds the concept of whole and part to the 'vanilla'
association. The classifier at the hollow diamond end is the whole.
Procedure for creating aggreate
In order to create aggregation,
1. Click [Toolbox] -> [Class] -> [Aggrega on] bu on.
ti
ti
ti
tt
2. Drag from one associated and drop to another in the [main window].
2. Press [Enter] key and classes aggregated to selected class are created and arranged
automa cally.
Composition
Semantics
A composite is a more specific type of association. The composite is signified by a filled
diamond on the point where the association connects with the classifier (association
ti
ft
end). Composite adds the concept of whole and part to the "vanilla" association and
responsibility for the lifetime of the parts. The classifier at the filled diamond end is the
whole.
Procedure for creating composition
In order to create composition,
1. Click [Toolbox] -> [Class] -> [Composi on] bu on.
2. Drag from one class and drop to another class composed in the [main window].
2. Press [Enter] key and classes composing selected class are created and arranged
automa cally.
Generalization
Semantics
Generalization is the taxonomic relationship between a more general element (the
parent) and a more specific element (the child) that is fully consistent with the first
element and that adds additional information. It is used for classes, packages, usecases,
and other elements.
Procedure for creating generalization
In order to create generalization,
1. Click [Toolbox] -> [Class] -> [Generaliza on] bu on.
ti
ft
ti
tt
2. Drag from child element and drop to parent element in the [main window].
2. The children classes are created below selected class and arranged automa cally.
2. The parent classes are created above selected class and arranged automa cally.
Dependency
Semantics
A dependency indicates a semantic relationship between two model elements (or two
sets of model elements). It relates the model elements themselves and does not require a
set of instances for its meaning. It indicates a situation in which a change to the target
element may require a change to the source element in the dependency.
Procedure for creating dependency
In order to create dependency,
1. Click [Toolbox] -> [Class] -> [Dependency] bu on.
2. Drag and drop between elements in the [main window] in depending direc on.
ft
tt
ti
ti
3. A new dependency between two classes is created.
2. Press [Enter] key and dependent elements by selected class are created and arranged
automa cally.
Realization
Semantics
A realization signifies that a relationship exists between a set of elements that form a
specification (the client) and another set of elements that form the implementation (the
supplier).
Procedure for creating realization
In order to create realization,
ti
ft
1. Click [Toolbox] -> [Class] -> [Realiza on] bu on.
2. Drag and drop between elements in the [main window] in realiza on direc on.
AssociationClass
Semantics
An association class is an association that is also a class. It not only connects a set of
classifiers but also defines a set of features that belong to the relationship itself and not
any of the classifiers.
Procedure for creating association class
In order to create association class,
1. Click [Toolbox] -> [Class] -> [Associa onClass] bu on.
2. Drag from associa on and drop to the class as associa on class in the [main window].
ti
ti
ti
tt
ti
3. The result is as follows.
Object
Semantics
An object represents a particular instance of a class. It has identity and attribute values.
A similar notation also represents a role within a collaboration because roles have
instance-like characteristics.
Procedure for creating object
In order to create object,
1. Click [Toolbox] -> [Class] -> [Object] bu on.
2. And click at the posi on where object will be placed in the [main window].
In the case of using object model, select object in the [main window] or in the [model
explorer], right-click the selected object, select [Add] -> [Attribute Link] popup menu,
and you can add Attribute Link.
ti
ti
tt
In the other case, select [Collection Editor...] popup menu of object or click button in
slots property on properties window. At [Slots] tab of the [collection editor], you can add
attribute link by using button.
Link
Semantics
A link is a tuple (list) of object references. Most commonly, it is a pair of object
references. It is an instance of an association.
Procedure for creating link
In order to create Link,
1. Click [Toolbox] -> [Class] -> [Link] bu on.
2. Drag from one Object and drop to the other Object in the [main window].
tt
3. The result is as follows.
Relationship
Procedure for reconnecting to another element
In order to reconnect to another element,
1. Drag the end of rela onship.
Object
Procedure for creating object
In order to create object,
1. Click [Toolbox] -> [Sequence] -> [Object] bu on.
2. And click at the posi on where object will be placed in the [main window].
3. Object quick dialog is shown. At the quick dialog, enter the object name.
3. If class property is not assigned, you can't change object to ac ve object. The result is as
follows.
2. At the [Enter element name] dialog, enter the new class name.
Procedure for creating outgoing from object stimulus by using shortcut creation syntax
In order to create outgoing stimulus from selected object to another object,
1. Double-click from-object, or select from-object and press [Enter] key to pop up quick dialog.
2. At the quick dialog, enter s mulus name a er "->" string ("<-" string for incoming and "<->"
for outgoing with return).
3. Press [Enter] key and outgoing s mulus from selected object to target object is created and
placed at the last order.
Stimulus
ti
ti
ti
ft
tt
fi
Semantics
A Stimulus is a communication between two Instances that conveys information with the
expectation that action will ensue. A Stimulus will cause an Operation to be invoked, raise a
Signal, or cause an Instance to be created or destroyed.
Procedure for creating stimulus
In order to create stimulus,
1. Click [Toolbox] -> [Sequence] -> [S mulus] bu on.
2. Drag from one object, and drop to the other(object or lifeline) in the [main window] in
outgoing direc on.
3. S mulus quick dialog is opened. Enter the s mulus name at the quick dialog and press
[Enter] key.
3. Select opera on on the [Select an opera on] dialog, and click [OK] bu on.
3. New opera on is added to the class and text is lled at the quick dialog (This procedure is
valid when there exists assigned class.). Press [Enter] key.
Procedure for creating previous stimulus of current stimulus by using shortcut creation
syntax
In order to create previous stimulus to current stimulus,
ti
ti
ti
fi
tt
ti
fi
ti
tt
1. Double-click a s mulus, or select a s mulus and press [Enter] key.
2. At the quick dialog, A er "~>" string("<~" for incoming s mulus), enter target object name
and s mulus name.
3. Press [Enter] key, and then new object and s mulus are created and arranged above
selected s mulus.
Procedure for creating next stimulus to current stimulus by using shortcut creation syntax
In order to create next stimulus to selected stimulus,
ti
ti
ti
ft
ti
ti
ti
1. Double-click a s mulus, or select a s mulus and press [Enter] key.
2. At the quick dialog, A er "_>" string("<_" for incoming s mulus), enter target object name
and s mulus name.
3. Press [Enter] key, and then new object and s mulus are created and arranged next to
selected s mulus.
2. At the quick dialog, A er "->" string("<-" for incoming s mulus), enter target object name
and sub s mulus name.
ti
ti
ft
ti
ti
3. Press [Enter] key, and then new object and s mulus are created and arranged on the bo om
of selected s mulus's ac va on.
CALL
SEND
RETURN
CREATE
DESTROY
SelfStimulus
Procedure for creating self-stimulus
In order to create self-stimulus,
1. Click [Toolbox] -> [Sequence] -> [SelfS mulus] bu on.
2. And click the object(or lifeline) that self-s mulus will be placed in the [main window].
ti
ti
ti
tt
3. Object quick dialog is opened. At the quick dialog, enter the s mulus name and press [Enter]
key.
4. The result of procedure is as follows. You may arrange s mulus posi on to reduce
overlapping of text and line.
Combined Fragment
Procedure for creating combined fragment
In order to create Combined Fragment,
1. Click [Toolbox] -> [Sequence] -> [Combined Fragment] bu on.
ti
tt
ti
ti
2. And click at the posi on where Combined Fragment will be placed in the [main window].
2. And click at the Combined Fragment where Interac on Operand will be placed in the [main
window].
ti
ti
ti
ti
tt
3. New interac on operand is added to the combined fragment. Click the interac on operand.
4. The selec on points of interac on operand are shown, drag it to arrange its boundary.
Frame
Procedure for creating frame
In order to create Frame,
1. Click [Toolbox] -> [Sequence] -> [Frame] bu on.
ti
ti
ti
tt
ti
2. And click at the posi on where Frame will be placed in the [main window].
Diagram
Procedure for showing sequence numbers in the diagram
In order to show or hide stimulus sequence number,
1. Select the diagram in the [model explorer] or in the [main window]
ti
2. And con gure [ShowSequenceNumber] property of diagram to true or false.
Style Example
fi
NONE
NAMEONLY
TYPEONLY
NAMEANDTYPE
Object
Procedure for creating object
In order to create Object,
ti
1. Click [Toolbox] -> [Collabora on] -> [Object] bu on.
2. And click at the posi on where Object will be placed in the [main window].
3. Then quick dialog is shown. At the quick dialog, enter the object name.
Procedure for creating outgoing from object stimulus by using shortcut creation syntax
In order to create outgoing stimulus from selected object to another object,
1. Double-click from-object, or select from-object and press [Enter] key to pop up quick dialog.
2. At the quick dialog, enter s mulus name a er "->" string ("<-" string for incoming and "<->"
for outgoing with return).
3. Press [Enter] key and outgoing s mulus from selected object to target object is created and
placed at the last order.
ti
ti
ti
ti
ft
tt
Procedure for setting active object
In order to set class to active object,
1. Set assigned class's [IsAc ve] property to true.
If you want existing class to be assigned to object, enter the existing class name at the [Select
a model element] dialog.
Procedure for adding AttributeLink to object
There are two way to add attribute link to Object.
• using object model in the main diagram or the [model explorer]
• using [collec on editor]
2. At slots tab of the [collec on editor], you can add a ribute link by using bu on.
Link
Procedure for creating link
In order to create Link,
1. Click [Toolbox] -> [Collabora on] -> [Link] bu on.
2. Drag from one Object and drop to the other Object in the [main window].
ti
ti
ti
ti
tt
tt
tt
tt
3. Between two objects, the link is created.
SelfLink
Procedure for creating self-link
In order to create self-link,
1. Click [Toolbox] -> [Collabora on] -> [SelfLink] bu on.
2. And click the object that self-link will connect to in the [main window].
2. And click the self-link that the s mulus will be placed in the [main window].
ti
ti
ti
ti
tt
ti
tt
3. And double-click the s mulus, enter the s mulus name at the quick dialog.
Stimulus
Procedure for creating stimulus
In order to create stimulus,
1. Click [Toolbox] -> [Collabora on] -> [ForwardS mulus/ReverseS mulus] bu on.
2. Click the link that the s mulus will be placed in the [main window].
3. And double-click the s mulus, enter the s mulus name at the quick dialog.
CALL
SEND
RETURN
CREATE
DESTROY
Frame
Procedure for creating frame
생성 방법:
Diagram
Procedure for showing sequence numbers in the diagram
In order to show or hide stimulus sequence number, select the diagram in the [model
explorer] or in the [main window], and configure [ShowSequence] property of diagram to
true or false.
Style Descrip on
NONE shows only message name
NAMEONLY shows message name and arguement name
TYPEONLY shows message name, arguement type, and return type
shows message name, arguement name, arguement type, and return
NAMEANDTYPE
type
State
Semantics
A state is a condition during the life of an object or an interaction during which it satisfies
some condition, performs some action, or waits for some event.
ti
ti
ti
ti
fi
ti
ti
Procedure for creating state
In order to create State,
1. Click [Toolbox] -> [Statechart] -> [State] bu on.
2. And click at the posi on where State will be placed in the [main window].
3. A state is created and quick dialog appears. Enter the state name at the quick dialog .
2. And press [Enter] key. Several states outgoing(incoming) from selected state are created and
arranged automa cally.
In the case of using model, select state in the [main window] or in the [model explorer].
Right-click the selected state, select [Add] -> [Entry/Do/Exit] popup menu. And you can do.
SubmachaineState
Semantics
A submachine state is a syntactical convenience that facilitates reuse and modularity. It is a
shorthand that implies a macro-like expansion by another state machine and is semantically
equivalent to a composite state.
Procedure for creating submachine state
In order to create SubmachineState,
1. Click [Toolbox] -> [Statechart] -> [SubmachineState] bu on.
2. And click at the posi on where SubmachineState will be placed in the [main window]. A
submachine state is created and quick dialog is opened.
ti
tt
ti
ti
ti
tt
ti
ti
3. At the quick dialog, enter the submachine state name and press [Enter] key.
InitialState
Semantics
An initial is a kind of pseudostate that represents the starting point in a region of a state
machine. It has a single outgoing transition to the default state of the enclosing region, and
has no incoming transitions. There can be one (and only one) initial state in any given region
of a state machine. It is not itself a state but acts as a marker.
Procedure for creating initial state
In order to create InitialState,
1. Click [Toolbox] -> [Statechart] -> [Ini alState] bu on.
2. And click at the posi on where Ini alState will be placed in the [main window].
FinalState
Semantics
A final state represents the last or "final" state of the enclosing composite state. There may be
more than one final state at any level signifying that the composite state can end in different
ways or conditions. When a final state is reached and there are no other enclosing states it
means that the entire state machine has completed its transitions and no more transitions can
occur.
Procedure for creating inal state
In order to create FinalState,
1. Click [Toolbox] -> [Statechart] -> [FinalState] bu on.
2. And click at the posi on where FinalState will be placed in the [main window].
JunctionPoint
Semantics
JunctioPoint chains together transitions into a single run-to-completion path. May have
multiple input and/or output transitions. Each complete path involving a junction is logically
independent and
only one such path fires at one time. May be used to construct branches and merges.
Procedure for creating junciton point
In order to create JunctionPoint,
1. Click [Toolbox] -> [Statechart] -> [Junc onPoint] bu on.
2. And click at the posi on where Junc onPoint will be placed in the [main window].
ChoicePoint
Semantics
ChoicePoint splits an incoming transition into several disjoint outgoing transitions. Each
outgoing transition has a guard condition that is evaluated after prior actions on the incoming
path have been completed. At least one outgoing transition must be enabled or the model is ill
formed.
Procedure for creating choice point
In order to create ChoicePoint,
ti
fi
ti
ti
ti
tt
1. Click [Toolbox] -> [Statechart] -> [ChoicePoint] bu on.
2. And click at the posi on where ChoicePoint will be placed in the [main window].
ShallowHistory
Semantics
When reached as the target of a transition, shallow history restores the state within the
enclosing composite state that was active just before the enclosing state was last exited. Does
not restore any substates of the last active state.
Procedure for creating shallow history
In order to create ShallowHistory,
1. Click [Toolbox] -> [Statechart] -> [ShallowHistory] bu on.
2. And click at the posi on where ShallowHistory will be placed in the [main window].
2. Press [Enter] key and history with outgoing transi on from selected state is created.
DeepHistory
Semantics
When reached as the target of a transition, deep history restores the full state configuration
that was active just before the enclosing composite state was last exited.
Procedure for creating deep history
In order to create DeepState,
1. Click [Toolbox] -> [Statechart] -> [DeepState] bu on.
2. And click at the posi on where DeepState will be placed in the [main window].
Synchronization
Procedure for creating synchronization bar
In order to create Synchronization,
ti
tt
ti
1. Click [Toolbox] -> [Statechart] -> [Synchroniza on] bu on.
2. And click at the posi on where Synchroniza on will be placed in the [main window].
2. Press [Enter] key and states joined to selected state is created and arranged automa cally.
Flow Final
Procedure for creating low inal
In order to create Flow Final,
1. Click [Toolbox] -> [Statechart] -> [Flow Final] bu on.
2. And click at the posi on where Flow Final will be placed in the [main window].
Transition
Semantics
A transition is a directed relationship between a source state vertex and a target state vertex. It
may be part of a compound transition, which takes the state machine from one state
configuration to another, representing the complete response of the state machine to a
particular event instance.
Procedure for creating transition
In order to create Transition,
ti
f
f
tt
ti
1. Click [Toolbox] -> [Statechart] -> [Transi on] bu on.
2. Drag and drop between states in transi on direc on in the [main window].
ActionState
Semantics
An action state represents the execution of an atomic action, typically the invocation of an
operation. An action state is a simple state with an entry action whose only exit transition is
triggered by the implicit event of completing the execution of the entry action. The state
ti
ti
ti
ti
ti
ti
ti
ti
tt
therefore corresponds to the execution of the entry action itself and the outgoing transition is
activated as soon as the action has completed its execution.
Procedure for creating action state
In order to create ActionState,
1. Click [Toolbox] -> [Ac vity] -> [Ac onState] bu on.
2. And click at the posi on where Ac onState will be placed in the [main window].
4. Enter the ac on state name at the quick dialog and press [Enter] key. The result is as follows.
SubactivityState
Semantics
A subactivity state represents the execution of a non-atomic sequence of steps that has some
duration; that is, internally it consists of a set of actions and possibly waiting for
events. That is, a subactivity state is a “hierarchical action,” where an associated subactivity
graph is executed.
Procedure for creating subactivity state
In order to create SubactivityState,
ti
ti
ti
ti
ti
ti
tt
1. Click [Toolbox] -> [Ac vity] -> [Subac vityState] bu on.
2. And click at the posi on where Subac vityState will be placed in the [main window]. A
subac vity state is created and the quick dialog is shown. At the quick dialog, enter the
subac vity state name and press [Enter] key. The result is as follows.
InitialState
Procedure for creating initial state
In order to create InitialState,
1. Click [Toolbox] -> [Ac vity] -> [Ini alState] bu on.
2. And click at the posi on where Ini alState will be placed in the [main window]. Then a ini al
state is created.
FinalState
Procedure for creating inal state
In order to create FinalState,
ti
ti
ti
ti
ti
ti
f
ti
ti
ti
ti
tt
tt
ti
1. Click [Toolbox] -> [Ac vity] -> [FinalState] bu on.
2. And click at the posi on where FinalState will be placed in the [main window].
Decision
Semantics
A state diagram (and by derivation an activity diagram) expresses a decision when guard
conditions are used to indicate different possible transitions that depend on Boolean
conditions of the owning object.
Procedure for creating decision
In order to create Decision,
1. Click [Toolbox] -> [Ac vity] -> [Decision] bu on.
2. And click at the posi on where Decision will be placed in the [main window]. The decision is
created on the diagram.
2. Press [Enter] key and decision with outgoing transi on from selected state is created.
Flow Final
Procedure for creating low inal
In order to create Flow Final,
1. Click [Toolbox] -> [Ac vity] -> [Flow Final] bu on.
2. And click at the posi on where Flow Final will be placed in the [main window].
Object Flow
Semantics
An object flow is one of two types of activity edges, which are directed connection (flows)
between activity nodes, the other being a control flow. As soon as the activity node at the
source (tail) end of the flow is finished it presents tokens to the object flow at the target
(arrowhead) end of the flow. An object flow can only carry object (data) tokens; it cannot
carry control tokens. There are rules that specify whether tokens can flow along the object
flow and these are determined by the type of activity node at the source and target of the
flow. In the case of complete activities an object flow may define a weight, which specifies
the minimum number of tokens that must flow along the object flow as a group.
ti
ti
f
f
tt
ti
Procedure for creating object low
In order to create Object Flow,
1. Click [Toolbox] -> [Ac vity] -> [Object Flow] bu on.
2. And click at the posi on where Object Flow will be placed in the [main window]. Then the
quick dialog of object ow state is shown as follows.
3. At the quick dialog, enter the object ow state name and press [Enter] key.
Synchronization
Procedure for creating synchronization bar
In order to create Synchronization,
1. Click [Toolbox] -> [Ac vity] -> [Synchroniza on] bu on.
2. And click at the posi on where Synchroniza on will be placed in the [main window] and
drag as size as you want.
2. And click at the posi on where Signal Accept State will be placed in the [main window].
3. At the quick dialog, enter signal accept state name and press [Enter] key.
2. And click at the posi on where Signal Send State will be placed in the [main window]. A
signal send state is created and the quick dialog is shown. Enter signal send state name and
press [Enter] key.
Transition
Procedure for creating transition
In order to create Transition,
1. Click [Toolbox] -> [Ac vity] -> [Transi on] bu on.
2. Drag and drop between states in transi on direc on in the [main window].
SelfTransition
Procedure for creating self-transition
In order to create self-transition,
ti
ti
ti
ti
ti
ti
tt
ti
tt
1. Click [Toolbox] -> [Ac vity] -> [SelfTransi on] bu on.
2. Click state to have self-transi on in the [main window]. Then a self-transi on is created.
Swimlane
Semantics
Actions and subactivities may be organized into swimlanes. Swimlanes are used to organize
responsibility for actions and subactivities. They often correspond to organizational units in a
business model.
Procedure for creating horizontal swimlane
In order to create Horizontal Swimlane,
1. Click [Toolbox] -> [Ac vity] -> [Horizontal Swimlane] bu on.
2. And drag the boundary where Horizontal Swimlane will be placed in the [main window].
ti
ti
ti
ti
tt
tt
ti
3. Then a horizontal swimlane is created on the diagram. And enter the swimlane name at the
quick dialog and press [Enter] key.
2. And drag the boundary where Ver cal Swimlane will be placed in the [main window].
ti
ti
ti
tt
3. A swimlane is created and quick dialog is shown. At the quick dialog, enter the swimlane
name and press [Enter] to have done this procedure.
Package
Semantics
A package is a grouping of model elements. Packages themselves may be nested within other
packages. A package may contain subordinate packages as well as other kinds of model
elements. All kinds of UML model elements can be organized into packages.
Procedure for creating package
In order to create Package in the component diagram,
ti
ti
ti
1. Click [Toolbox] -> [Component] -> [Package] bu on.
2. Click at the posi on where Package will be placed in the [main window].
Interface
Procedure for creating interface
In order to create Interface,
ti
tt
1. Click [Toolbox] -> [Component] -> [Interface] bu on.
2. Click at the posi on where Interface will be placed in the [main window].
Component
Semantics
A component represents a modular, deployable, and replaceable part of a system that
encapsulates implementation and exposes a set of interfaces.
Procedure for creating component
In order to create Component,
1. Click [Toolbox] -> [Component] -> [Component] bu on.
ti
tt
tt
2. Click at the posi on where Component will be placed in the [main window]. And at the
quick dialog, enter component name and press [Enter] key. The result is as follows.
2. And press [Enter] key. Several interfaces provided by selected class is created and arranged
automa cally.
2. And press [Enter] key. Several interfaces required by selected class is created and arranged
automa cally.
2. And click the component where the port will be contained in the [main window].
3. A port is created on the component. At the quick dialog, enter the port name and press
[Enter] ken to be complete.
2. A port appears on the component. If it is not dropped on the component but on the other
area of the diagram, component with port will be created
2. And click the component where the part will be contained in the [main window].
2. Drag from one part and drop to the other part in the [main window].
ComponentInstance
Semantics
A component instance is an instance of a component that resides on a node instance. A
component instance may have a state.
Procedure for creating component instance
In order to create ComponentInstance,
1. Click [Toolbox] -> [Component] -> [ComponentInstance] bu on.
fi
tt
tt
2. And click at the posi on where ComponentInstance will be placed in the [main window].
3. Enter the component instance name at the quick dialog and press [Enter] key. The result is as
follows.
2. Right-click the selected ComponentInstance, select [Add] -> [A ribute Link] popup menu.
3. At [Slots] tab of the [collec on editor], you can add a ribute link by using bu on.
Artifact
tt
ti
ti
ti
tt
tt
Semantics
An Artifact represents a physical piece of information that is used or produced by a software
development process. Examples of Artifacts include models, source files, scripts, and binary
executable files. An Artifact may constitute the implementation of a deployable component.
Procedure for creating artifact
In order to create Artifact,
1. Click [Toolbox] -> [Component] -> [Ar fact] bu on.
2. And click at the posi on where Ar fact will be placed in the [main window].
3. The ar fact is created on the diagram and the quick dialog is shown. At the quick dialog,
enter the ar fact name
Association
Procedure for creating association
In order to create association,
ti
ti
ti
ti
ti
tt
1. Click [Toolbox] -> [Component] -> [Associa on] bu on.
2. Drag from one associated and drop to another in the [main window].
Dependency
Procedure for creating dependency
In order to create dependency,
1. Click [Toolbox] -> [Component] -> [Dependency] bu on.
ti
ti
fi
tt
tt
2. Drag and drop between elements in the [main window] in depending direc on.
Realization
Procedure for creating realization
In order to create realization,
1. Click [Toolbox] -> [Component] -> [Realiza on] bu on.
2. Drag and drop between elements in the [main window] in realiza on direc on.
Link
Procedure for creating link
In order to create Link between two components,
ti
ti
tt
ti
ti
ti
1. Click [Toolbox] -> [Component] -> [Link] bu on.
2. Drag from one ComponentInstance and drop to the other ComponentInstance in the [main
window]. Then the link is created as follows.
Package
Procedure for creating package
In order to create Package in deployment diagram,
1. Click [Toolbox] -> [Deployment] -> [Package] bu on.
ti
ti
ti
tt
tt
2. Click at the posi on where package will be placed in the [main window].
4. At the quick dialog, enter package name and press [Enter] key. Then procedure is done.
Node
Semantics:
A node is a run-time physical object that represents a computational resource, generally
having at least a memory and often processing capability as well, and upon which
components may be deployed.
Procedure for creating node
In order to create Node in deployment diagram,
1. Click [Toolbox] -> [Deployment] -> [Node] bu on.
ti
tt
2. Click at the posi on where Node will be placed in the [main window].
3. Then node is created and the quick dialog appears. Enter the node name at the quick dialog.
3. At the [Deployed Components] tab of the [collec on editor], you can add deployed
component by using bu on.
tt
tt
ti
ti
4. At [Select the Component to deploy] dialog, select deployed component. To select
component, you have already made some component.
3. At the [Deployed Ar facts] tab of the [collec on editor], you can add deployed ar fact by
using bu on.
tt
tt
ti
ti
ti
ti
ti
4. At the [Select a Ar fact] dialog, select a deployed ar fact and click [OK] bu on.
5. Then the ar fact is add to the node and the node is shown as following.
2. Click the node where the port will be contained in the [main window].
ti
ti
tt
ti
tt
3. A port is created on the node and the quick dialog appears. Enter the port name at the quick
dialog.
2. Click the node where the part will be contained in the [main window].
tt
3. Finally, a part is created on the node as following.
2. Drag from one part and drop to the other part in the [main window].
NodeInstance
tt
Semantics
A node instance is an instance of a node. A collection of component instances may reside on
the node instance.
Procedure for creating node instance
In order to create NodeInstance in deployment diagram,
1. Click [Toolbox] -> [Deployment] -> [NodeInstance] bu on.
2. Click at the posi on where NodeInstance will be placed in the [main window], a node is
created, and quick dialog appears.
3. Enter the node instance name at the quick dialog and press [Enter] key.
3. At [Slots] tab of the [collec on editor], you can add a ribute link by using bu on.
tt
ti
ti
ti
tt
tt
Artifact
Procedure for creating artifact
In order to create Artifact,
1. Click [Toolbox] -> [Deployment] -> [Ar fact] bu on.
2. Click at the posi on where Ar fact will be placed in the [main window].
3. At the quick dialog, enter the ar fact name and press [Enter] key.
4. The result is as follows.
Association
Procedure for creating association
In order to create association,
1. Click [Toolbox] -> [Deployment] -> [Associa on] bu on.
2. Drag from one associated and drop to another in the [main window].
2. Drag and drop between elements in the [main window] in depending direc on.
Link
Procedure for creating link
In order to create Link,
1. Click [Toolbox] -> [Deployment] -> [Link] bu on.
2. Drag from one NodeInstance and drop to the other NodeInstance in the [main window].
tt
tt
ti
3. Then the link between two node instances is created.