Uml Models
Uml Models
CREATED WITH
Table of Contents
Enterprise Architect provides a wealth of tools a modeler can use to create models that comply with a wide range of
formal and informal modeling languages. One of these languages is the Unified Modeling Language (UML), and
Enterprise Architect has comprehensive support for all the elements, relationships and diagrams specified in the
language. The UML is governed by the Object Management Group (OMG), of which Sparx Systems is an active member
and contributor to the process of managing and improving the language.
Facilities
Facility Description
The Unified Modeling The UML standard defines notations and rules for specifying business and software
Language (UML) systems; the notation supplies a rich set of graphic elements for modeling object
oriented systems, and the rules state how those elements can be connected and
used.
UML is not a tool for creating software systems; instead, it is a visual language for
communicating, modeling, specifying and defining systems.
UML is not a prescriptive process for modeling software systems; it does not
supply a method or process, simply the language. You can therefore use UML in a
variety of ways to specify and develop your software engineering project.
This language is designed to be flexible, extendable and comprehensive, yet generic
enough to serve as a foundation for all system modeling requirements. With its
specification, there is a wide range of elements characterized by the kinds of
diagrams they serve, and the attributes they provide. All can be further specified by
using stereotypes, Tagged Values and profiles.
Enterprise Architect supports many different kinds of UML elements (as well as
some custom extensions); together with the connectors between elements, these
form the basis of the model.
Wide Range of Although initially conceived as a language for software development, UML can be
Applications used to model a wide range of real world domains and processes (in business,
science, industry, education and elsewhere), organizational hierarchies, deployment
maps and much more.
Enterprise Architect also provides additional Custom diagrams and elements, to
address further modeling interests.
Extending UML for New Using UML Profiles, Patterns, Grammars, Data Types, Constraints, MDG
Domains Technologies and other extensions, UML and Enterprise Architect can be tailored
to address a particular modeling domain not explicitly defined in the original UML
specification.
Enterprise Architect makes extending UML simple and straightforward and, best of
all, the extension mechanism is still part of the UML Specification.
Recommended Reading In addition to the UML Specification available from the OMG, two books that
provide excellent introductions to UML are:
(c) Sparx Systems 2023 Page 8 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 9 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
UML Diagrams
A UML diagram is a graphical representation of part of a model, typically showing a number of elements connected by
relationships. Diagrams are one of the most expressive and appealing views of the repository; the diagram has a name
and type and is typically constructed for a particular audience to convey an idea or to create a narrative description of
part of the model. Diagrams can also be used to generate useful system Artifacts such as XML schemas, database
schemas, programming code and more.
The UML specification defines fourteen types of diagram and lists elements and relationships that can be included on
each diagram. These elements are conveniently provided in the Enterprise Architect default Toolboxes for each diagram
type. While these Toolboxes act as a guide for the novice modeler, the experienced modeler can create highly expressive
diagrams by including a wide range of element types on the same diagram.
Diagrams are created and viewed in the main workspace and are stored in Packages or other elements in the repository.
Diagram Grouping
Group Detail
Structural Diagrams Structural diagrams depict the structural elements composing a system or function,
reflecting the static relationships of a structure, or run-time architectures.
Behavioral Diagrams Behavioral diagrams show a dynamic view of the model, depicting the behavioral
features of a system or business process.
Extended Diagrams Enterprise Architect provides a set of additional diagram types that extend the core
UML diagrams for domain-specific models.
Custom Diagrams Enterprise Architect also supports diagram types specific to MDG Technologies,
including integrated technologies.
(c) Sparx Systems 2023 Page 10 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Class Class diagrams capture the logical structure of the system, the Classes and objects
that make up the model, describing what exists and what attributes and behavior it
has.
Composite Structure Composite Structure diagrams reflect the internal collaboration of Classes,
Interfaces and Components (and their properties) to describe a functionality.
Component Component diagrams illustrate the pieces of software, embedded controllers and
such that make up a system, and their organization and dependencies.
Deployment Deployment diagrams show how and where the system is to be deployed; that is, its
execution architecture.
Object Object diagrams depict object instances of Classes and their relationships at a point
in time.
Package Package diagrams depict the organization of model elements into Packages and the
dependencies amongst them.
Profile Profile diagrams are those created in a «profile» Package, to extend UML elements,
connectors and components.
(c) Sparx Systems 2023 Page 11 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Class Diagram
The Class diagram captures the logical structure of the system - the Classes - and things that make up the model. It is a
static model, describing what exists and what attributes and behavior it has, rather than how something is done. On a
Class diagram you can illustrate relationships between Classes and Interfaces using Generalizations, Aggregations and
Associations, which are valuable in reflecting inheritance, composition or usage, and connections respectively.
You generate Class diagram elements and connectors from the 'Class' pages of the Diagram Toolbox.
Example Diagram
In this example Class diagram, there are two forms of the Aggregation relationship:
· The pale form indicates that the Class Account uses AddressBook, but does not necessarily contain AddressBook
· The dark Composite Aggregation form indicates ownership or containment by the target Classes (at the diamond
end) of the source Classes
Icon Description
(c) Sparx Systems 2023 Page 12 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
A Data Type is a specific kind of classifier, similar to a Class except that a Data
Type cannot own sub Data Types, and instances of a Data Type are identified only
by their value.
Icon Description
Icon Description
(c) Sparx Systems 2023 Page 13 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
The UML Standard Profile is a collection of stereotyped Classes, operations and relationships provided as modeling tools
in compliance with the UML 2.5 Specification (Chapter 22, Standard Profile).
Some of these modeling elements are directly available through the 'UML Standard Profile' Toolbox page in the Class or
Package Diagram Toolboxes; others can be applied as stereotypes on the base UML modeling object.
(c) Sparx Systems 2023 Page 14 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Example Diagram
This diagram shows a Collaboration used in a Composite Structure diagram to show a relationship for performing an
installation. Collaborations are often used to model common patterns.
The next diagram uses this Install Collaboration in a Collaboration Use, and applies it to the UtilLoad Class via a
«represents» relationship. This indicates that the classifier UtilLoad uses the Collaboration Pattern within its
implementation.
Icon Description
(c) Sparx Systems 2023 Page 15 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Icon Description
Role Binding is the mapping between a Collaboration Use's internal roles and the
respective Parts required to implement a specific situation, typically in a Composite
Structure diagram.
(c) Sparx Systems 2023 Page 16 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Properties
A property is a nested structure within a classifier, usually a Class or an Interface, on a Composite Structure diagram.
The contained structure reflects instances and relationships reflected within the containing classifier. Properties can have
multiplicity, and can be displayed as:
· Parts (preferred) or
· Association Roles
Parts
In this diagram there are two Parts, 'libBooks' and 'records', which are instances corresponding to the Classes 'Books' and
'Computer' respectively. The relationship between the two Parts is indicated by the connector, reflecting that
communication between the Parts is via the barcode. This contained structure and its Parts are properties owned by the
Library Class.
After dragging Parts from the Diagram Toolbox onto the Class, right-click on a Part and select 'Advanced | Set Property
Type' to connect to a classifier. If Parts disappear when dragged onto the Class, adjust the Z-order of the Class to move it
behind the Parts (right-click on the Class and select the 'Z-Order' option).
To indicate a property that is not owned by composition to the containing classifier, use a box symbol with a dashed
outline, indicating association; to do this:
1. Right-click on the Part and select the 'Properties' option.
2. Select the 'Advanced' page of the 'Properties' dialog.
3. Set the 'IsReference' option to True.
Association Roles
Properties can also be reflected using a normal composite structure (without containing it in a Class), with the
appropriate connectors, Parts and relationships indicated through connections to the Class.
The alternative representation is shown here; however, this representation fails to express the ownership immediately
reflected by containing properties within a classifier.
(c) Sparx Systems 2023 Page 17 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 18 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Component Diagram
A Component diagram illustrates the pieces of software, embedded controllers and such that make up a system, and their
organization and dependencies.
A Component diagram has a higher level of abstraction than a Class diagram; usually a component is implemented by
one or more Classes (or Objects) at runtime. They are building blocks, built up so that eventually a component can
encompass a large portion of a system.
You generate Component diagram elements and connectors from the 'Component' pages of the Diagram Toolbox.
Example Diagram
Icon Description
(c) Sparx Systems 2023 Page 19 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Icon Description
(c) Sparx Systems 2023 Page 20 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Deployment Diagram
A Deployment diagram shows how and where the system is to be deployed; that is, its execution architecture.
Hardware devices, processors and software execution environments (system Artifacts) are reflected as Nodes, and the
internal construction can be depicted by embedding or nesting Nodes. Deployment relationships indicate the deployment
of Artifacts, and Manifest relationships reveal the physical implementation of Components. As Artifacts are allocated to
Nodes to model the system's deployment, the allocation is guided by the use of Deployment Specifications. A
Deployment diagram can also indicate that a Node has a State, or show an instance of a Node with an actual run-time
value for the state, representing a specific condition or scenario.
You generate Deployment diagram elements and connectors from the 'Deployment' pages of the Diagram Toolbox.
Example Diagram
This is a simple Deployment diagram, representing the arrangement of servers at a head office. The elements are
instances of Nodes and show specific run-time states.
The servers are represented by Nodes linked by either simple or aggregate Association relationships.
(c) Sparx Systems 2023 Page 21 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Deployment diagrams are ideal for applying alternative images to depict the objects that the elements represent. Such
images can be substituted for the elements in the diagram, as shown here:
(c) Sparx Systems 2023 Page 22 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Icon Description
(c) Sparx Systems 2023 Page 23 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Artifacts.
Icon Description
A Communication Path defines the path through which two DeploymentTargets are
able to exchange signals and messages.
A Manifest relationship indicates that the Artifact source embodies the target model
element, typically in Component and Deployment diagrams.
(c) Sparx Systems 2023 Page 24 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Object Diagram
An Object diagram is closely related to a Class diagram, with the distinction that it depicts object instances of Classes
and their relationships at a point in time. Object diagrams do not reveal architectures varying from their corresponding
Class diagrams, but reflect multiplicity and the roles instantiated Classes could serve. They are useful in understanding a
complex Class diagram, by creating different cases in which the relationships and Classes are applied
This might appear similar to a Composite Structure diagram, which also models run-time behavior; the difference is that
Object diagrams exemplify the static Class diagrams, whereas Composite Structure diagrams reflect run-time
architectures different from their static counterparts. An Object diagram can also be a kind of Communication diagram
(which also models the connections between objects, but additionally sequences events along each path).
You generate Object diagram elements and connectors from the 'Object' pages of the Diagram Toolbox.
Example Diagram
This example shows a simple Class diagram, with two Class elements connected.
These Classes are instantiated as Objects in an Object diagram. There are two instances of Computer in this model,
demonstrating the usefulness of Object diagrams in considering the relationships and interactions Classes might have in
practice.
Icon Description
An Actor is a user of the system; user can mean a human user, a machine, or even
(c) Sparx Systems 2023 Page 25 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Icon Description
(c) Sparx Systems 2023 Page 26 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Package Diagram
Package diagrams depict the organization of model elements into Packages and the dependencies amongst them,
including Package imports and Package extensions. They also provide a visualization of the corresponding namespaces.
You generate Package diagram elements and connectors from the 'Package' pages of the Diagram Toolbox.
Example Diagram
Icon Description
Packages are used to organize your project contents, but when added onto a
diagram they can be used to depict the structure and relationships of your model.
Generates a Profile Package that has the stereotype «profile» in the Package
diagram in your technical development model. A Profile Package is used in
defining new types of structure in a model.
Generates a Model Package with the stereotype «model», to represent the parent
node in a model structure.
Connector Description
(c) Sparx Systems 2023 Page 27 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
c_pkgimport A Package Import relationship is drawn from a source Package to a Package whose
contents have been imported.
The «import» connector indicates that the elements within the target Integer
Package, which in this example is the single Class Integer, have been imported into
the Package Controller.
The Controller's namespace gains access to the Integer Class; the Integer
namespace is not affected.
c_profileapplication A Profile Application relationship indicates that the source Profile has been applied
to the target Package.
Icon Description
(c) Sparx Systems 2023 Page 28 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Profile Diagram
A Profile diagram is any diagram created in a «profile» Package.
Profiles provide a means of extending the UML. They are based on additional stereotypes and Tagged Values that are
applied to UML elements, connectors and their components. A Profile is a collection of such extensions that together
describe some particular modeling problem and facilitate modeling constructs in that domain.
You generate Profile diagram elements and connectors from the 'Profile' pages of the Diagram Toolbox.
Example Diagram
Icon Description
The first stage in creating a UML Profile is to create a Profile Package that has the
stereotype «profile» in your technical development model.
Metaclass elements represent the types of object that you are extending in your
Profile Package.
(c) Sparx Systems 2023 Page 29 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Icon Description
(c) Sparx Systems 2023 Page 30 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Diagram Types
Activity Diagrams Activity diagrams model the behaviors of a system, and the way in which these
behaviors are related in an overall flow of the system.
Use Case Diagrams Use Case diagrams capture Use Cases and relationships among Actors and the
system; they describes the functional requirements of the system, the manner in
which external operators interact at the system boundary, and the response of the
system.
StateMachine Diagrams StateMachine diagrams illustrate how an element can move between states,
classifying its behavior according to transition triggers and constraining guards.
Timing Diagrams Timing diagrams define the behavior of different objects within a time-scale,
providing a visual representation of objects changing state and interacting over
time.
Communication Diagrams Communication diagrams show the interactions between elements at run-time,
visualizing inter-object relationships.
Interaction Overview Interaction Overview diagrams visualize the cooperation between Interaction
Diagrams diagrams (Timing, Sequence, Communication and other Interaction Overview
diagrams) to illustrate a control flow serving an encompassing purpose.
(c) Sparx Systems 2023 Page 31 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Activity Diagram
Activity diagrams are used to model system behaviors, and the way in which these behaviors are related in an overall
flow of the system (that is, dynamic element interactions). The logical paths a process follows, based on various
conditions, concurrent processing, data access, interruptions and other logical path distinctions, are all used to construct a
process, system or procedure.
You generate Activity diagram elements and connectors from the 'Activity' pages of the Diagram Toolbox.
Example Diagram
This diagram illustrates some of the features of Activity diagrams, including Activities, Actions, Start Nodes, End Nodes
and Decision points.
Icon Description
(c) Sparx Systems 2023 Page 32 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
a process.
The Send element depicts the action of sending a signal, in an Activity diagram.
Enterprise Architect supports two types of Region element: Expansion Regions and
Interruptible Activity Regions.
An Expansion Region surrounds a process to be imposed multiple times on the
incoming data, once for every element in the input collection.
An Interruptible Activity Region surrounds a group of Activity elements, all
affected by certain interrupts in such a way that all tokens passing within the region
are terminated should the interruption(s) be raised.
The Exception Handler element defines the group of operations to carry out when
an exception occurs.
A Central Buffer Node is an object node for managing flows from multiple sources
and destinations, represented in an Activity diagram.
An Initial element is used to define the start of a flow when an Activity is invoked.
A Synch state is useful for indicating that concurrent paths of a StateMachine are
synchronized. It is used to split and rejoin periods of parallel processing.
(c) Sparx Systems 2023 Page 33 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
The Flow Final element depicts an exit from the system, as opposed to the Activity
Final, which represents the completion of the Activity.
The Activity Final element indicates the completion of an Activity; upon reaching
the Final, all execution in the Activity diagram is aborted.
Icon Description
The Control Flow connects two nodes in an Activity diagram, modeling an active
transition.
An Object Flow connects two elements, with specific data passing through it,
modeling an active transition.
The Interrupt Flow defines the two UML concepts of connectors for Exception
Handler and Interruptible Activity Region.
Notes
· You can create Analysis diagrams (Simplified Activity diagrams) containing the elements most useful for business
process modeling, using the 'New Diagram' dialog
· You can perform model simulations on Activity models, and the model that you simulate can contain elements from
more than one Package; to include the external elements in the simulation, you must create a Package diagram
containing the 'parent' Package and the 'external' Packages containing the external elements, then create a Package
Import connector from the parent Package to each external Package
(c) Sparx Systems 2023 Page 34 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Example Diagram
Icon Description
An Actor is a user of the system; user can mean a human user, a machine, or even
another system or subsystem in the model.
A Use Case is a UML modeling element that describes how a user of the proposed
system interacts with the system to perform a discrete unit of work.
A Test Case is a stereotyped Use Case element which enables you to give greater
visibility to tests.
(c) Sparx Systems 2023 Page 35 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Packages are used to organize your project contents, but when added onto a
diagram they can be used to depict the structure and relationships of your model.
Icon Description
A Use relationship indicates that one element requires another to perform some
interaction.
An Include connection indicates that the source element includes the functionality
of the target element.
A Realizes connector represents that the source object implements or Realizes its
destination object.
An Invokes connector indicates that source object, at some point, causes the
destination object to happen.
A Precedes connector indicates that the source object must be completed before the
destination object can begin.
Notes
Invokes and Precedes are stereotyped Dependency relationships, defined by the OPEN Modeling Language (OML -
Object-oriented Process, Environment and Notation Modeling Language - is an international de facto standard
object-oriented development method developed and maintained by the OPEN Consortium). They have been incorporated
into the Use Case modeling elements).
· Invokes indicates that Use Case A, at some point, causes Use Case B to happen
· Precedes indicates that Use Case C must complete before Use Case D can begin
(c) Sparx Systems 2023 Page 36 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 37 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
StateMachines
StateMachines illustrate how an element (often a Class) can move between States, classifying its behavior according to
transition triggers and constraining guards.
You generate StateMachine elements and connectors from the 'State' pages of the Diagram Toolbox.
Naming
State Tables
You can display a StateMachine as a diagram, or as a table in one of three relationship formats.
Step Action
1 Right-click on the diagram background and select the 'Statechart Editor' option.
Example Diagram
(c) Sparx Systems 2023 Page 38 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
The chain-link symbol in the bottom right corner of the Saved State indicates that it is a State with a Composite diagram.
You have two options for displaying the contents of a State's Composite diagram. Firstly, you can double-click on the
parent element to display its child diagram separately, as shown here:
(c) Sparx Systems 2023 Page 39 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
By default, the child diagram displays within a labeled frame that represents the parent object in the context of the child
diagram. You can right-click on the background and select the 'Hide Diagram Frame' option to hide the frame, and on the
'Show Diagram Frame' option to show the frame again.
Alternatively, you can right-click on the composite element on the main diagram and select the 'Advanced | Show
Composite Diagram' option, which again displays the child diagram in a labeled frame, but this time within the context
of the parent diagram.
(c) Sparx Systems 2023 Page 40 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
ProtocolStateMachines
The OMG UML specification (UML Superstructure Specification, v2.5, sect. 14.4) states:
"ProtocolStateMachines are used to express usage protocols. ProtocolStateMachines express the legal sequences of
Event occurrences to which the Behaviors of an associated BehavioredClassifier must conform. The StateMachine
notation is a convenient way to define the order of invocations of the behavioral features of a Classifier.
ProtocolStateMachines can be associated with Classifiers, Interfaces, and Ports."
To create a ProtocolStateMachine, create a StateMachine element and open the Properties window for that element.
Select the 'Behavior' tab and, on that, select the 'Protocol StateMachine' checkbox. The element on the diagram now has
the word <<protocol>> above the element name.
Icon Description
(c) Sparx Systems 2023 Page 41 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
A State represents a situation where some invariant condition holds; this condition
can be static (waiting for an event) or dynamic (performing a set of activities).
The Initial element represents a pseudostate used to denote the default state of a
Composite State; there can be one Initial vertex in each Region of the Composite
State.
The Activity Final element indicates the completion of an Activity; upon reaching
the Final, all execution in the Activity diagram is aborted.
There are two types of History pseudostate defined in UML: shallow and deep
history.
A Synch state is useful for indicating that concurrent paths of a StateMachine are
synchronized. They are used to split and rejoin periods of parallel processing.
The Choice pseudostate is used to compose complex transitional paths, where the
outgoing transition path is decided by dynamic, run-time conditions.
The Terminate pseudostate indicates that upon entry of its pseudostate, the
StateMachine's execution ends.
A Fork/Join element can be used to: 1) split a single flow into a number of
concurrent flows, 2) join a number of concurrent flows or 3) both join and fork a
number of incoming flows to a number of outgoing flows.
(c) Sparx Systems 2023 Page 42 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Icon Description
A Transition connector represents the logical movement from one State to another
in a StateMachine diagram.
An Object Flow connects two elements, with specific data passing through it,
modeling an active transition.
Notes
· State elements can display either with or without a line across them; the line - as shown - displays when the element
has features such as operations (which could be hidden) or when the 'Show State Compartment' checkbox is selected
in the 'Objects' page of the 'Preferences' dialog
· It is possible to add Entry Point and Exit Point elements to the border of a State or StateMachine element -
right-click on the element in the diagram and select the 'New Child Element| Entry Point' or 'Exit Point' option; if the
element is a composite element and represented by a frame, you can also right-click on the selected frame and add
the Entry Point or Exit Point elements
· If you have Entry Points and/or Exit Points on a StateMachine that is a classifier for another State, you can create
Connection Point References to the classifier from the other State
· It is also possible to add Regions to a State element or StateMachine element frame; right-click on the selected frame
and select the 'Define Concurrent Substates' option
· You can perform model simulations on StateMachine models, and the model that you simulate can contain elements
from more than one Package; to include the external elements in the simulation, you must create a Package diagram
containing the 'parent' Package and the 'external' Packages containing the external elements, and then create a
Package Import connector from the parent Package to each external Package
(c) Sparx Systems 2023 Page 43 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Pseudostates
Pseudostates are a UML abstraction for various types of transient vertex used in StateMachine diagrams. Pseudostates
are used to express complex transition paths.
You can create a Pseudostate by dragging one of these element icons onto a diagram in Enterprise Architect.
Icon Description
The Initial element represents a pseudostate used to denote the default state of a
Composite State; there can be one Initial vertex in each Region of the Composite
State.
The Choice pseudostate is used to compose complex transitional paths, where the
outgoing transition path is decided by dynamic, run-time conditions.
There are two types of History pseudostate defined in UML: shallow and deep
history.
The Terminate pseudostate indicates that upon entry of its pseudostate, the
StateMachine's execution ends.
The Activity Final element indicates the completion of an Activity; upon reaching
the Final, all execution in the Activity diagram is aborted.
A Fork/Join element can be used to: 1) split a single flow into a number of
concurrent flows, 2) join a number of concurrent flows or 3) both join and fork a
number of incoming flows to a number of outgoing flows.
Notes
· All the listed types of pseudostate can be represented in code, and can generate code under the StateMachine code
generation templates from Enterprise Architect release 11 onwards
(c) Sparx Systems 2023 Page 44 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Regions
If you are modeling an active State configuration on a StateMachine diagram, and you need to represent several States as
being active concurrently, you can achieve this by firstly creating a StateMachine element or Composite State element
and secondly subdividing that element into Regions. You set out the State configuration such that there is only ever one
of the concurrently active States per Region. Multiple transitions can occur from a single event dispatch, so long as the
similarly-triggered transitions are divided by Regions.
Regions display on an element on a diagram as subdivisions of a structured compartment, underneath other
compartments such as tags, responsibilities, attributes and operations.
Access
Step Action
2 If you want to create Regions that have no title, simply click on the Save button once for each Region to
create.
If you want to create named Regions, type the name and click on the Save button for each Region.
3 When you have created as many Regions as you need, click on the Close button.
You can now populate the Regions with elements from the 'State' pages of the Diagram Toolbox.
Notes
· Changes to the elements in a Region are committed when the diagram is saved; if you want to undo the changes,
reload the diagram without saving
· Any States, State Nodes (Pseudo-States) or Synch elements added to a Region are owned by that Region and,
ordinarily, cannot be dragged into another Region; however, if you attempt to drag a State between Regions, the
'Move embedded element to region' menu option displays which - if you select it - allows the transfer to complete
(c) Sparx Systems 2023 Page 45 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Action
1 Create or open the classifier StateMachine (as a child diagram of a Class element).
The StateMachine is represented by a labeled frame.
2 If the Entry Points and/or Exit Points do not already exist, right-click on the inside edge of the frame and
select the 'New Element | Entry Point' or 'New Element | Exit Point' option, as necessary.
The corresponding pseudostate element is immediately created on the edge of the frame. If you prefer,
you can double-click on the element and give it a specific name.
3 Create as many additional Entry Point and/or Exit Point elements as you need.
4 If the corresponding State element does not already exist, drag a State icon from the Diagram Toolbox
into the frame.
Create the appropriate connectors between the State element and the Entry Point and Exit Point elements.
Step Action
1 Create or open the calling StateMachine (as a child diagram of a Class element).
If the elements do not already exist, create the appropriate State and pseudostate elements and connectors
(c) Sparx Systems 2023 Page 46 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
2 in the diagram.
3 Click on the calling State element and press Ctrl+L to display the 'Select Element' dialog.
Browse for and select the classifier StateMachine from the 'Create Entry Points and/or Exit Points' stage.
4 Right-click on the State element, and select the 'New Element | Entry Point' or 'New Element | Exit Point'
option, as you need.
The corresponding pseudostate element is immediately created on the border of the element.
6 If you prefer, in the 'Name' field type a new name for the selected Entry Point.
In the 'Specify submachine's EntryPoints as reference' panel, select the checkbox against each of the
classifier's Entry Points to create a reference to. You can select more than one checkbox.
(c) Sparx Systems 2023 Page 47 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
StateMachine Table
A StateMachine table is one of two variants of a StateMachine (the other is the StateMachine diagram). It displays the
information of the StateMachine in table form, and is a method of specifying the discrete behavior of a finite
state-transition system; that is, what state the StateMachine moves to and the conditions under which the transition takes
place.
Access
You can display the State transition in the table as one of two different types of relationship:
Type Description
State - Trigger The rows indicate the current states and the columns indicate trigger events.
The cell at the intersection of a row and column identifies the target state in the
transition if the trigger occurs, and the condition (or guard) of the transition, or the
other way around if you prefer, in a Trigger - State format.
State - Next State The rows and columns both indicate states, and the cell at the intersection of a row
and column indicates:
· The event that triggers a transition from the current (row) state to the next
(column) state
· The condition (or guard) of the event, and
· The effect of the transition
Step Action
1 Right-click on the diagram background and select the 'Statechart Editor' option.
(c) Sparx Systems 2023 Page 48 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 49 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Options
Option Action
Transition Cell Width Specify the width of the transition cells (that is, the column width).
Transition Cell Height Specify the height of the transition cells (that is, the row height).
Left Edge Cell Width Specify the width of the left edge (row title) cells.
Top Edge Cell Height Specify the height of the top edge (column title) cells.
State/Trigger Cell Select the color of the row and column title cells.
State/Trigger Enumeration Select the color of the enumeration (row/column numbering) cells.
You must select at least one of the 'Enable State Enumeration' and 'Enable Event
Enumeration' checkboxes to set this color.
Transition Cell Select the color of the transition cells (in the main body of the table).
Highlight Options
Highlight Zones Related to Highlight the cells for all elements involved in a selected transition - the initial
(c) Sparx Systems 2023 Page 50 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Use Different Color for Highlight the cell for the target element in a transition in a different color to the cell
Target State for the source element.
Display Options
Always Display an Empty Add an empty row (and, on a State - Next State table, an empty column) to the end
State Zone of the table.
The title cell contains a button. You can click twice (not double-click) on the
button to edit the cell and identify a new state. In this case, another empty state
zone is automatically added.
Enable State Enumeration Add a cell to each state title cell, to number the state. Numbering starts at 0.
Prefix If required, type a prefix for the state number or delete the default 'S' to have no
prefix.
Enable Event Enumeration Add a cell to each event or trigger title cell, to number the event. Numbering starts
at 0.
Prefix If required, type a prefix for the event number or delete the default E to have no
prefix.
Sample State Table Display a preview of the table format as you define it.
Advanced Define diagram options. The StateMachine diagram 'Properties' dialog displays.
(c) Sparx Systems 2023 Page 51 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Operations
Operation
Insert Trigger
Insert/ChangeTransition
Add Legend
(c) Sparx Systems 2023 Page 52 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Action
1 Press Ctrl+A or double-click on the top left cell to select the whole StateMachine table.
(c) Sparx Systems 2023 Page 53 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 54 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Insert Trigger
If the StateMachine table format is either State-Trigger or Trigger-State, you can use any of these methods to insert a
new Trigger:
Methods
Step Action
1 In the top left cell in the StateMachine table, move the cursor to the word 'Event' to display a + at the end
of the word; click on the + to create a new Trigger.
2 In the top left cell in the StateMachine table, right-click and select the 'Add Trigger' option to create a new
Trigger.
3 Select an existing Trigger in the StateMachine table, then press the Insert key to insert a new Trigger
before the existing Trigger.
4 Click on an existing Trigger in the StateMachine table, right-click and select either the:
· 'Insert New Trigger Before' option to insert a new Trigger before the current Trigger, or
· 'Insert New Trigger After' option to insert a new Trigger after the current Trigger
(c) Sparx Systems 2023 Page 55 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Insert/Change Transition
This topic explains how you can insert or modify a transition link between two State elements.
Options
Action Description
Insert a new Transition You can insert a new Transition using one of these methods.
Right-click on the cell in which to create a Transition:
· If the StateMachine table format is State-Trigger or Trigger-State, the context
menu lists the States you can choose as the target of the Transition; click on the
required State name to create the Transition
· If the StateMachine table format is State-Next State, click on the 'Insert
Transition' context menu option to create the Transition
Alternatively, in the 'State Relationships' page of the Toolbox, select the Transition
element, then click on the cell in the StateMachine table in which to create the
Transition; double-click on the Transition to define it in the 'Transition Properties'
dialog.
Change the Transition As for the State Chart diagram, to change the properties of a Transition
double-click on the 'Transition' cell and edit the details on the 'Transition Properties'
dialog.
Change Transition States You can change the source and target of the Transition by right-clicking the
Transition and selecting the 'Advanced | Set Source and Target' option.
Alternatively, you can change the Transition source, target or Trigger by clicking
on the Transition and dragging it to a different cell.
If the StateMachine table format is either State-Trigger or Trigger-State, you can
change the target state of a Transition by:
1. Highlighting the target state name in the Transition cell and clicking on it to
display a list of the states in the table.
2. Clicking on the preferred target state name.
Highlight States and You can select options to highlight the source State, target State and Trigger cells
Trigger Related to associated with a Transition, using the 'Highlight Options' panel on the
Transition 'StateMachine Diagram: Options' dialog.
When you click on the Transition cell its associated State and Trigger cells are
highlighted.
Alternatively, click on the Transition cell and press and hold the L key.
(c) Sparx Systems 2023 Page 56 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Action Description
Insert a new State in the You can insert a new State in the StateMachine table, using one of these methods:
StateMachine table 1. In the top left cell in the StateMachine table, move the cursor to the word State
to display a + at the end of the word; click on the + to create a new State
2. Right-click in the top left cell in the StateMachine table and select 'Add State'
3. Right-click on an existing State cell in the StateMachine table and select:
- 'Insert New State Before' to insert a new State before the
current State, or
- 'Insert New State After' to insert a new State after the current
State
4. Click on an existing State cell in the StateMachine table, and press the Insert
key to create and insert a new State above the selected State
5. In the Toolbox, on the 'State Elements' page, click on an element and then click
on:
- The diagram background to add a new State to the end of
the table, or
- An existing State cell to add the new State just above it
From the 'State Elements' page of the Toolbox you can insert State, Initial, Final,
Entry, Exit and Terminate elements.
Add a Substate to a To add a Substate to a selected State, right-click on the required State cell in the
selected State StateMachine table, and select 'Add Substate'; Enterprise Architect adds the
Substate to the State.
If the selected State does not allow a Substate, the 'Add Substate' option is grayed
out.
You can also drag one existing State over another; if the second State allows
Substates, the dragged State then becomes its Substate.
Similarly, you can change the parent State of a Substate by dragging the Substate
from the original parent State to a different State.
Remove the parent relation To remove the parent relation of a Substate and make it a separate State, right-click
of a Substate and make it a on the Substate in the StateMachine table and select 'Remove Parent Relation'; the
separate State Substate cell becomes a State cell.
You can also drag and drop the Substate onto the top left cell of the StateMachine
table; the dragged Substate again becomes a State cell.
(c) Sparx Systems 2023 Page 57 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 58 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Add Legend
You can add a simple legend to any StateMachine Table cell that has no transition. The two legend symbols are:
· I - Ignore
· N - Never Happen
Step Action
Alternatively
Step Action
Notes
(c) Sparx Systems 2023 Page 59 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
On the StateMachine table, to locate a selected State or Trigger element in a StateMachine diagram:
· Select 'Find | Locate in State Chart'
Enterprise Architect switches to the StateMachine diagram and highlights the selected element.
You can locate a Transition relationship in a similar way, by selecting 'Locate in State Chart'.
A Trigger on a StateMachine table might or might not exist on the corresponding StateMachine diagram; if the Trigger
does not exist on the StateMachine diagram, the 'Locate in State Chart' option is disabled.
On the StateMachine diagram, to locate a selected State or Trigger element in the corresponding StateMachine table:
· Select 'Find | Locate in State Table'
Enterprise Architect switches to the StateMachine table and highlights the selected element.
You can locate a Transition relationship in a similar way, by selecting 'Locate in State Table'.
(c) Sparx Systems 2023 Page 60 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
· Deleting a Trigger removes it completely from the model, therefore you cannot UNDO a Trigger deletion
· There is a <None> column at the end of the Event heading row; this is for Transitions that have no Trigger
information
State
From the Toolbox you can insert these State element types only (although the StateMachine table might pick up and
display other types, such as Submachine State):
· State
· Initial
· Final
· Entry
· Exit
· Terminate
Transition
The Transition cell displays its properties in one of two ways, depending on the StateMachine table format; if the
StateMachine table format is State - Trigger or Trigger - State, the Transition cell displays the Guard and Target as
shown:
If the StateMachine table format is State - Next State, then the Transition cell displays the Trigger, Guard and Effect in
this format:
In the StateMachine table, you can edit the Guard and Effect in place. If the Guard or Effect is empty for your selected
Transition cell, the cell displays an ellipsis (...) instead; click twice (not double-click) on the ellipsis to type in the Guard
and Effect names.
(c) Sparx Systems 2023 Page 61 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Action
2 Right-click on the diagram background and select the 'Export Statechart to CSV file' option.
The 'Save As browser' dialog displays.
3 Select the appropriate directory location and type in the .csv filename.
(c) Sparx Systems 2023 Page 62 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 63 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 64 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Access
With a StateMachine displayed in Table form, use any of the methods outlined in this table to start the simulation.
Simulate > Dynamic Simulation > Simulator > Open Simulator Window >
(Start icon)
As the simulation executes, the table cells change color to indicate the:
· Currently active State(s) - the color set in the 'Highlight Color' field of the 'StateMachine Options' dialog, and a dark
border
· Potential next States(s) - A variant of the color in the 'Highlight Color' field or, if the 'Use Different Color for Target
State' checkbox is selected on the 'StateMachine Options' dialog, the color set in the 'Target Zone Color' field
· Active Transition(s) - the color set in the 'Transition Cell' field of the 'StateMachine Options' dialog
· Trigger(s) - the color set in the 'Highlight Color' field of the 'StateMachine Options' dialog
· Non-active States - gray
For example:
Signal Triggers
(c) Sparx Systems 2023 Page 65 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
As when running a simulation as a diagram, the simulation will automatically traverse transitions with no guards or
validated guards. Transitions with a Trigger will not be followed unless that Trigger has been fired. They can be fired
automatically from the Simulation Events window or you can fire a Trigger manually by right-clicking on the Transition
or Trigger cell and selecting 'Signal Trigger in Simulation'.
(c) Sparx Systems 2023 Page 66 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Timing Diagram
A Timing diagram defines the behavior of different objects within a time scale. It provides a visual representation of
objects changing state and interacting over time. You can use it to:
· Define hardware-driven or embedded software components; for example, those used in a fuel injection system or a
microwave controller
· Specify time-driven business processes
You generate Timing diagram elements and connectors from the 'Timing' pages of the Diagram Toolbox.
Example Diagram
Icon Description
A State Lifeline element represents the state of an object across a measure of time,
using changes in y-axis to represent discrete transitions between states.
A Value Lifeline element represents the state of an object across a measure of time,
using parallel lines indicating a steady state, along the x-axis.
(c) Sparx Systems 2023 Page 67 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Icon Description
(c) Sparx Systems 2023 Page 68 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Action
(c) Sparx Systems 2023 Page 69 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Action
2 In the 'Start Time' and 'End Time' fields, type the numeric values for the start and end points of the
timeline; for example, set the range 0 to 100.
The start time must be less than the end time.
3 In the 'Time Units' field, type the unit in which the time is measured; for example, seconds or minutes.
4 If it is not necessary to show the time range on the diagram, select the 'Suppress In Diagram' checkbox.
(c) Sparx Systems 2023 Page 70 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 71 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Edit Properties
Task Action
Define the name of the 1. Right-click on the element and select the 'Properties | Properties' option; the
State Lifeline 'Properties window for the element displays, showing the 'Element' tab.
2. Overtype the 'Name' field.
3. Click off the Properties window.
Sizing and Scale In the top left corner of a selected Lifeline element are the left and right quick
sizing buttons ( ).
These buttons increase or decrease the width of the Lifeline element, which in turn
controls the scale width of each time unit; by increasing the width of the element
you increase the resolution when adding transitions, which makes them easier to
edit.
In order to edit the State Lifeline element, you must click on it to select it.
Set Timeline Start Position You might require more space at the start of your timelines; for example, to use
long state names.
To insert more space in all the timelines on a diagram:
1. Right-click on the diagram background and select the 'Set Timeline Start
Position' option; the 'Set Timeline Start Position' dialog displays.
2. The 'Value 80 to 300' field defaults to 80 as the minimum distance in pixels
between the start of the timeline element and the start of the timeline itself; type a
new value up to 300 pixels and click on the OK button to increase the space at the
start of the timeline.
These two diagrams have start positions of 80 pixels and 150 pixels respectively.
(c) Sparx Systems 2023 Page 72 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
You now edit the states and transitions in the State Lifeline.
(c) Sparx Systems 2023 Page 73 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Description
5 As you add states, increase the height of the element by dragging one of the
icons on the edge of the element.
You can also add states using the 'States' tab of the 'Configure Timeline' dialog.
Add either:
· Discrete states to the Timeline, or
· A continuous range of numeric states
(c) Sparx Systems 2023 Page 74 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Description
1 Click on the State Lifeline element and click on the required state.
The 'Edit State' dialog displays.
(c) Sparx Systems 2023 Page 75 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Description
Alternatively
Step Description
2 Hold down Ctrl and move the cursor over the state name.
The cursor changes form ( ).
(c) Sparx Systems 2023 Page 76 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Edit Transitions
Task Action
Add and Move Transitions After you have added states, you can add transitions between states directly on the
timeline using the mouse.
Change the Transition Move the cursor over one or other of the vertical transition lines and drag the line
Time left or right to change the time of the transition.
While on the line, the cursor shape changes to the horizontal movement cursor
( ).
Merge Transitions If necessary, you can 'push' a transition to merge it with the next or previous
transition point on any Lifeline element on the diagram.
Position the cursor off the appropriate side of the transition line; the cursor changes
form ( or ).
Click the mouse button; the system locates the nearest transition in the required
direction, on any element on the diagram, and merges the current transition with
that transition.
Delete Transitions Transitions are automatically deleted when you move the transition to the same
state as the previous transition state, and release the cursor.
Alternatively, right-click on the transition line and select the 'Delete' option.
(c) Sparx Systems 2023 Page 77 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Access
Other Click directly on the appropriate transition line, after the transition begins
Modify Timeline
As you move the cursor over the vertical line of a transition, the time at which the transition occurs displays next to the
line.
Task Action
The move cursor
Displays when it is directly over the timeline.
Hold down the mouse button and drag the line to move the timeline to a state above
or below the current position; you can move the transition more than one state up or
down, if necessary.
The new transition up
cursor Displays when it is just below the timeline, and there is another state above the line.
(c) Sparx Systems 2023 Page 78 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Edit Transition
Option Action
At Time Type the point on the timescale at which the transition occurs.
Transition To Type the name of the state to which the transition occurs.
Event Type the name of the event that the transition represents.
This displays on the Timeline element just above the transition line.
Notes
· Once Event, Duration Constraint or Time Constraint are displayed on the diagram, you can edit them directly by
clicking on them to display their specific dialog
· You can delete them by pressing and holding the Ctrl key as you click on them; the cursor changes form when you
press the Ctrl key
· You can also edit transitions using the 'Transitions' tab of the 'Configure Timeline' dialog
(c) Sparx Systems 2023 Page 79 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Action
In the top left corner of a selected Lifeline element are the left and right quick sizing buttons ( ). These buttons
increase or decrease the width of the Lifeline element, which in turn controls the scale width of each time unit. By
increasing the width of the element you increase the resolution when adding transitions, which makes them easier to edit.
(c) Sparx Systems 2023 Page 80 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 81 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Action
3 In the 'Transition To' field, click on the drop-down arrow and select a state from the list of available
states; this displays on the Lifeline element within the transition box.
The remaining fields on the dialog are optional.
4 In the 'Event' field, type the name of the event that the transition represents; this displays on the Lifeline
element just below and at the start of the transition line.
5 In the 'Duration Constraint' field, type any constraint on the duration of the transition; this displays on the
Lifeline element, along the top of the element over the transition.
6 In the 'Time Constraint' field, type any constraint on the start of the transition.
This displays on the Lifeline element at the start of the transition, just after the Event name.
Edit a Transition
Step Action
2 If necessary, overtype the 'At Time' field to define a different start point.
You cannot change the 'At Time' field for the first state in the timeline; this is always '0'.
(c) Sparx Systems 2023 Page 82 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Action
1 To change the start or end time of a transition, click on the start or end point of the transition and drag it to
the new position.
While on the line, the cursor shape changes to the horizontal movement cursor ( ).
Delete Transitions
Step Action
1 To delete a transition, press and hold Ctrl and click on the transition state name.
While you hold Ctrl on the transition state name, the cursor changes form ( ).
Alternatively, right-click on the state name and select the 'Delete' option.
(c) Sparx Systems 2023 Page 83 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Action
1 In the 'State Name' field, type the name of the first new state in the Lifeline element; for example,
'WaitState'.
4 In the 'State Name' field, type the name of the next state in the Lifeline element.
5 Repeat steps 2 to 5 until you have added all required states (you must add at least three to the Lifeline
element).
6 When you have added all the required states, click on the OK button to close the 'Configure Timeline'
dialog.
Step Action
(c) Sparx Systems 2023 Page 84 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Action
Step Action
2
Click on the or buttons to move the state up or down the sequence.
(c) Sparx Systems 2023 Page 85 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Action
3 In the 'High Value' and 'Low Value' fields, type the upper and lower values of the range.
5 In the 'Units' field, type the name of the measurement unit; for example, 'minutes'.
(c) Sparx Systems 2023 Page 86 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Action
Edit a transition
Step Action
2 In the 'Edit Transition' panel, edit the fields for the transition as required.
Delete a transition
Step Action
(c) Sparx Systems 2023 Page 87 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 88 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Time Intervals
You create and manage Time Intervals using the Interval Bar (the pale line along the top of each selected Lifeline
element). With Time Intervals you can perform various operations on transitions, such as copy and paste. You can also
compress sections of the timeline so that they are not visible.
Each Time Interval displays across all Timeline elements down to the last element on the diagram.
Action Description
Create Time Intervals You can create a Time Interval using the:
· Interval Bar - context menu
· Interval Bar - Shift key, or
· Timeline - context menu
Compress Time Intervals You can compress Time Intervals to conserve space on long timelines.
Select Time Intervals There are a number of ways to select Time Intervals for performing other
operations.
Move Time Intervals To move a Time Interval, move the cursor over the Interval bar within the Time
Interval, hold down the mouse button and drag the interval left or right.
Time Intervals can meet, but cannot overlap.
Resize Time Intervals To resize a Time Interval, move the cursor over the Interval Bar at the start or end
edge of the Time Interval, hold down the mouse button and move the edge left or
right.
Time Intervals can meet, but cannot overlap.
Delete Time Intervals To delete Time Intervals, select each Time Interval to be deleted and press the
Delete key.
Deleting the Time Interval does not delete transitions within that interval.
(c) Sparx Systems 2023 Page 89 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
2. The Time Interval displays down all the timeline elements, as a narrow pale band
with a blue compression box at the top.
3. Move the cursor to the edge of the Time Interval in the Interval Bar so that the
cursor changes to the drag form and drag the edge to the correct start or end point.
(c) Sparx Systems 2023 Page 90 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Create a Time Interval using the Interval Bar and Shift key
Step Description
1 Move the cursor over the Interval Bar and press Shift.
The cursor changes shape ( ).
3 Move the cursor to the edge of the Time Interval in the Interval Bar so that the cursor changes to the drag
form ( ) and drag the edge to the correct start or end point.
Step Description
(c) Sparx Systems 2023 Page 91 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Note:
You can also compress and expand Time Intervals using context menu options.
Item Description
(c) Sparx Systems 2023 Page 92 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
If there is space between the paired symbols, there are transitions within the
compressed section.
If the timeline continues through the paired symbols there are no transitions in the
compressed section.
(c) Sparx Systems 2023 Page 93 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Task Action
Select a Time Interval Click on the Interval Bar within the Time Interval.
across all elements on the
diagram
Select a number of Press and hold the Ctrl key while clicking on the Interval Bar within each Time
individual Time Intervals Interval.
Select all Time Intervals in Click on the Interval Bar within the first Time Interval in the range, then press and
a range hold the Shift key and click on the Interval Bar within the last Time Interval in the
range.
All Time Intervals between the two are selected.
Modify Intervals
After you have selected a Time Interval, you can modify it.
Task Action
Exclude Lifeline elements Press and hold the Ctrl key and click on any part of the selection within that
from the selection element.
Repeat the step to toggle the selection and re-include the element.
Select only one Lifeline Press and hold the Shift key and click on any part of the selection within that
element and exclude all element.
others
(c) Sparx Systems 2023 Page 94 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Compress Timeline
The 'Compression' toggle boxes and 'Compress Interval' menu option operate on the Time Interval and compress the
timeline and all transitions within the Interval. You have an alternative option that operates on the timeline and
compresses a single transition state.
1. Right-click on the timeline (rather than the Interval Bar) just after a transition, and select the 'Compress' option.
2. Enterprise Architect creates a new Time Interval spanning the period from the selected transition up to the next
transition, and then compresses that Time Interval.
If there are other Time Intervals in this period, Enterprise Architect replaces them with the single Time Interval for the
transition state. You should consider this when creating and compressing the Time Interval, as it extends across the other
Timeline elements in the diagram.
A value of this method is that it creates a Time Interval for a period in which no transitions occur, which could be
lengthy, and then compresses this Time Interval to hide the period of inactivity.
Option Action
Select Interval Select the Time Interval or, if the interval is already selected, deselect it.
Deselect Interval You can select several Time Intervals in this way, accessing the menu separately on
each interval.
Toggle Interval Selection Switch the selection or deselection of the Time Interval within the selected
Timeline element.
You select or deselect a Time Interval across all Timeline elements, but the 'Toggle'
option acts only on the element in which you access the menu.
Compress Interval Compress the Time Interval, and hide all transitions within that Time Interval.
This is also useful for hiding long sections of inactivity on the time line.
Cut Copy and delete the selected transitions from the diagram.
Cut and Remove Time Copy and delete the transitions that lie in the selected Time Intervals from the
diagram.
This option also removes time from the timeline, the amount being the duration of
the Time Interval.
All transitions and Time Intervals to the right of the selected time interval are
moved left.
(c) Sparx Systems 2023 Page 95 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Delete and Remove Time Delete the transitions that lie in the selected Time Intervals from the diagram.
This option also removes time from the timeline, the amount being the duration of
the Time Interval.
All transitions and Time Intervals to the right of the current Time Interval are
moved left.
Insert Time Add time to the timeline and move all transitions and time intervals to the right.
Also expand the duration of the current Time Interval.
To create a new Time Interval or work across all Time Intervals in the diagram, right-click on the Interval Bar between
Time Intervals. A context menu displays, providing a number of options (The 'Paste ...' menu options become active after
transitions have been copied).
Expand all Time Intervals Expand all Time Intervals over the whole diagram.
Compress all Time Compress all Time Intervals over the whole diagram.
Intervals
Paste Combine Paste copied transitions over any existing transitions within the copied time frame.
The diagram does not allow two consecutive transitions to the same state, and
removes the second transition automatically.
Paste Remove Delete all the transitions and then pastes the copied transition within the copied
time frame.
Paste Insert Insert time, moving all transitions and Time Intervals to the right to make room to
paste in the copied transitions.
Insert Time Add time to the timeline and move all transitions and Time Intervals to the right.
This option does not change the duration of any Time Interval.
Step Action
1 Press and hold the Shift key and select the Timeline element within a Time Interval to copy or cut.
(c) Sparx Systems 2023 Page 96 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
2 Right-click on the Interval Bar (it doesn't matter which element you select).
The context menu displays.
4 Select the timeline to paste transitions to and right-click on the Interval Bar.
The context menu displays.
Shift transitions within a selected Time Interval or multiple selected Time Intervals
Step Action
2 Press and hold Shift and click on the Interval Bar (it doesn't matter which Timeline element you select),
and move the transition left or right.
You cannot drag transitions over other transitions; the move stops when the moved transition collides with
a stationary transition.
If you have collision problems, use Shift+select to shift transitions for a single Timeline element.
(c) Sparx Systems 2023 Page 97 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
For example:
The OMG Unified Modeling Language specification, (v2.5.1, figures 14.30 and 14.31, p.520.)
Toolbox icon
(c) Sparx Systems 2023 Page 98 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Action
1
Click on the 'Message' icon on the 'Timing Relationships' page of the Diagram Toolbox (click on to
display the 'Find Toolbox Item' dialog and specify 'Timing').
2 Click on the source Lifeline at the point at which the Message will start, and drag the cursor to the
transition point on the destination Lifeline where the Message will end.
A new Timing Message is created between these two points.
Dialog Fields
The OMG Unified Modeling Language specification, (v2.5.1, figures 14.30 and 14.31, p.520)
Field/Button Action
(c) Sparx Systems 2023 Page 99 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Start Time Shows the time after the timeline begins at which the Message starts. You can
change this if you need to.
End Time Shows the time after the timeline begins at which the Message ends. You can
change this if you need to, but the time must correspond to a transition point on the
target Lifeline.
Time Observation (Optional) Type any text to act as a label providing information on when the
Message is sent.
Duration Observation (Optional) Type any text to act as a label providing information on the interval of a
Lifeline at a particular state, begun from receipt of the Message.
Transition To The state in the target Lifeline that the Message terminates on. If necessary, you can
click on the drop-down arrow and select a different state to transition to. The head
of the Message moves accordingly.
Event (Optional) Type in the name of any event that triggers the transition.
Time Constraint (Optional) Type in the maximum time it can take to transmit the Message.
Duration Constraint (Optional) Type in the maximum time the Lifeline can remain in the changed state
after receipt of the Message.
Notes
· You can move the source end of the Message freely along the source timeline; however, the target end (arrow head)
must attach to a transition
· If you create a new Message and do not give it a target transition, it automatically finds and attaches to the nearest
transition; if you move the target end, it drags the transition with it
(c) Sparx Systems 2023 Page 100 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Sequence Diagram
A Sequence diagram is a structured representation of behavior as a series of sequential steps over time. You can use it to:
· Depict workflow, Message passing and how elements in general cooperate over time to achieve a result
· Capture the flow of information and responsibility throughout the system, early in analysis; Messages between
elements eventually become method calls in the Class model
· Make explanatory models for Use Case scenarios; by creating a Sequence diagram with an Actor and elements
involved in the Use Case, you can model the sequence of steps the user and the system undertake to complete the
required tasks
Construction
· Sequence elements are arranged in a horizontal sequence, with Messages passing back and forward between
elements
· Messages on a Sequence diagram can be of several types; the Messages can also be configured to reflect the
operations and properties of the source and target elements (see the Notes in the Message Help topic)
· An Actor element can be used to represent the user initiating the flow of events
· Stereotyped elements, such as Boundary, Control and Entity, can be used to illustrate screens, controllers and
database items, respectively
· Each element has a dashed stem called a Lifeline, where that element exists and potentially takes part in the
interactions
To toggle the numbering of messages on a Sequence diagram, select or deselect the 'Show Sequence Numbering'
checkbox on the 'Preferences' dialog.
You generate Sequence diagram elements and connectors from the 'Interaction' pages of the Toolbox.
Example Diagram
(c) Sparx Systems 2023 Page 101 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Icon Description
An Actor is a user of the system; user can mean a human user, a machine, or even
another system or subsystem in the model.
Boundary elements are used in analysis to capture user interactions, screen flows
and element interactions.
(c) Sparx Systems 2023 Page 102 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
diagram.
A Diagram Gate is a simple graphical way to indicate the point at which messages
can be transmitted into and out of interaction fragments.
Icon Description
A Call is a type of Message connector that extends the level of activation from the
previous Message.
(c) Sparx Systems 2023 Page 103 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Action
1 Double-click on a message within a Sequence diagram to display the Properties window for the Message.
2 In the 'Lifecycle' field, click on the drop-down arrow and select 'New' or 'Delete'.
Example Diagram
This example shows two elements that have specific creation and deletion times.
Notes
· To show the termination X on the lifeline in the example diagram, you must switch on garbage collection: 'Start >
Appearance > Preferences > Preferences > Diagram > Sequence: Garbage Collect'
(c) Sparx Systems 2023 Page 104 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Action
Example Diagram
(c) Sparx Systems 2023 Page 105 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Sequence Elements
This example shows some possible elements of Sequence diagrams and their stereotyped display.
Element descriptions
Element Description
Actor An instance of an actor at runtime; this can be depicted either as the human figure
or in rectangle notation.
Control The active component that controls what work gets done, when and how.
(c) Sparx Systems 2023 Page 106 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Sequence diagrams depict workflow or activity over time using Messages passed from element to element. In the
software model. These Messages correspond to Class operations and behavior. When you display a Sequence diagram,
the Diagram Toolbox automatically switches to the 'Interaction' pages of the Diagram Toolbox, containing the 'Message'
icon.
Toolbox icon
Access
Diagram Toolbox Click on the 'Message' icon, click on the source object and drag the cursor to the
target object
(If the Properties window for the Message does not display, right-click on the
Message and on the 'Properties' menu option)
Option Action
(c) Sparx Systems 2023 Page 107 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
operations, you can click on the drop-down arrow and select an appropriate
operation name; the Message then reflects the destination Class operations.
You can also include operations that the element's classifier has inherited, in the
list. To do this, select the 'Show Inherited Methods' checkbox.
Operations If the available operations on the destination Class are not appropriate, click on this
button and define a new operation in the destination element, using the 'Operations'
dialog.
If you create a Message without making reference to the target Class operations, no
new operation is added to the target Class.
Parameters Type any parameters that the Message has, as a comma-separated list.
Argument(s) (Optional) Type the actual value that corresponds to each parameter, as a
comma-separated list.
Return Value If the Message has a return value or type, specify it in this field.
Show Inherited Methods Select this checkbox to include operations that the destination element's classifier
has inherited, in the drop-down list of operations available in the 'Message' field.
Clear the checkbox to show only operations from the classifier itself.
Assign to If the Message flow is from a Class element or Lifeline element with classifier that
has defined attributes, click on the drop-down arrow and select an appropriate
attribute name.
The Message reflects the attributes from the source Class; you cannot add further
attributes to the source Class here - if no appropriate attribute is listed, open the
Class element 'Properties' dialog and add the required attribute.
Otherwise, optionally type the name of the object to assign the message flow to.
Stereotype (Optional) Type or select a stereotype for the connector (this is displayed on the
diagram, if entered).
Condition Type any conditions that must be true in order for the Message to be sent.
Constraint Type any constraints that might exist on when the Message is sent.
Is Iteration Select the checkbox to indicate that the Message will iterate until the specified
condition takes the value false. The condition statement on the diagram is prefixed
by an asterisk (*).
Clear the checkbox to indicate that the Message will only be sent once within the
process cycle, if the specified condition is true.
Start New Group (For Communication diagram Messages). Select this checkbox to reset the Message
(and all subsequent Messages) to a separate group with a new initial number.
(c) Sparx Systems 2023 Page 108 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
The value 'Synchronous' disables the 'Kind' field; synchronous Messages are always
Calls.
Kind This field is enabled when the 'Synch' field is set to Asynchronous.
Click on the drop-down arrow and select either 'Call' or 'Signal', as appropriate.
Lifecycle Select 'New' to create a new element at the end of the Message, or 'Delete' to
terminate the message flow at the end of the Message.
If neither case applies, set the field to '<none>'.
Is Return If the Message you have created is a return message, select this checkbox.
Save Click on this Toolbar button to save the Message definition or any changes to it.
· You can change the timing details of a message on the 'Timing Details' dialog,
and emphasize the sequence of closely-ordered messages using General
Ordering
· To toggle the numbering of messages on a Sequence diagram, select or
deselect the 'Show Sequence Numbering' checkbox on the 'Preferences' dialog
Notes
· You can also use the Message connector as an Information Flow, and realize information flows on the Message
(c) Sparx Systems 2023 Page 109 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Self-Message
A Self-Message reflects a new process or method invoked within the calling lifeline's operation. It is a specification of a
Message, typically in a Sequence diagram.
Self-Message Calls indicate a nested invocation; new activation levels are added with each Call.
Self-Message as Return
Step Action
2 Double-click on the Message name to open the Properties window for the Message.
Toolbox icon
(c) Sparx Systems 2023 Page 110 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 111 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Call
A Call is a type of Message connector that extends the level of activation from the previous Message. All Self-Messages
create a new activation level, but this focus of control usually ends with the next Message (unless activation levels are
manually adjusted). Self-Message Calls, as depicted in the image of the first Call, indicate a nested invocation; new
activation levels are added with each Call. Unlike a regular Message between elements, a Call between elements
continues the existing activation in the source element, implying that the Call was initiated within the previous Message's
activation scope.
Toolbox icon
(c) Sparx Systems 2023 Page 112 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Message Examples
These are different types of Message available on Sequence diagrams. Note that Messages on Sequence diagrams can
also be modified with Shape Scripts.
These are examples of Messages that are not part of the sequence described by the diagram.
(c) Sparx Systems 2023 Page 113 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 114 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Access
Change Timing
(c) Sparx Systems 2023 Page 115 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Field Action
Duration Constraint Indicate the minimum and maximum limits on how long a message can last.
Duration Constraint Indicate the minimum and maximum interval between sending or receipt of the
Between Messages previous message at the current message's source Lifeline, and sending the current
message.
Timing Constraint Indicate the minimum and maximum time at which the message should arrive at the
target.
Timing Observation Capture the point at which the message was sent.
(c) Sparx Systems 2023 Page 116 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
General Ordering
In a Sequence diagram, the workflow is represented by the sequence of Messages down the diagram. Messages near the
top of the diagram are passed before Messages lower down the diagram.
In the diagram, Message 1 is earlier than Message 2. However, in a complex diagram, or when representing finely timed
operations or parallel processing, this might not be apparent. You can reinforce the sequence using a 'General Ordering'
arrow.
Click on the Message arrow. A small arrow displays at the source anchor point.
Click on this arrow and drag it to the start of the next Message in sequence (Message 2 in the example). The General
Ordering arrow displays, indicating that the second Message follows the first.
You can have more than one General Ordering arrow issuing from or targeting a Message, if necessary.
(c) Sparx Systems 2023 Page 117 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 118 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Co-Region Notation
Co-Region notation can be used as a short hand for parallel combined fragments. You can add this notation to a
Sequence diagram using the 'Co-Region' submenu, which you display by right-clicking on a connector in a Sequence
diagram and selecting the 'Co-Region' option. There are four sub-options available:
· Start at head
· End at head
· Start at tail
· End at tail
(c) Sparx Systems 2023 Page 119 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
This diagram is not damaged when round-tripped through Version Control, because all the Lifelines are objects and these
objects reside in the same Package as the Sequence diagram.
Notes
(c) Sparx Systems 2023 Page 120 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
[This section describes a method of representing concurrent messages as defined in UML prior to UML 2.0, and is
included to support models that might still apply it.
From UML 2.0 onwards, the notation has been replaced by Fragments. It is recommended that you consider upgrading
your models to make use of Fragments and other more recent improvements in notation.]
Having set out the Lifelines and Sequence Messages with the appropriate message grouping and activation levels, you
might want to indicate that two messages in different Message Groups and at different Activation levels issuing from a
Lifeline are branches, or executed concurrently. Consider this example:
(c) Sparx Systems 2023 Page 121 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Message 1.1 passes from Object 5 to Object 6, and then Message 1.2 passes to Object 7 and Message 2.1 passes back to
Object 5. It appears that the Messages go in the sequence 1.1, 1.2 and then 2.1. However, you want to indicate that
Message 2.1, whilst separate, is concurrent with Message 1.2.
In this case:
· Right-click on the later Message (2.1) and select the option 'Branch with Previous Message'
The source anchor for Message 2.1 then becomes the same as the source for Message 1.2, the immediately previous
message. They are separate but concurrent Messages from the same Lifeline.
If it later becomes unnecessary to show that the Messages are branches, right-click on the later message (2.1) and
deselect the 'Branch with Previous Message' option.
Option Description
Start New Message Group Starts off a new round of processing in the current diagram.
This enables you to describe more than one processing scenario in a single diagram.
(c) Sparx Systems 2023 Page 122 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Extend Source Activation Forces an element to stay active beyond the normal processing period.
Down This could be used to express an element that continues its own processing
concurrently with other processes.
End Source Activation Truncates the activation of the source element after the current message.
This is useful for expressing an asynchronous message after which the source
element becomes idle.
End Target Activation Ends a Forced Activation started by the 'Extend Source Activation' options.
Raise Activation Level Displays on the context menu only where its use is appropriate.
For example, after a self-message the next message starts by default at a lower
activation level but the 'Raise Activation Level' command displays on the context
menu to enable you to raise its level.
Lower Activation Level Displays on the context menu only where its use is appropriate.
(c) Sparx Systems 2023 Page 123 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Examples
A Class invokes the method Sample A, which in turn calls Sample A1.
To produce the arrangement in the diagram:
1. In the Diagram Toolbox click on to display the 'Find Toolbox Item' dialog
and specify 'Interaction'.
2. Click on the 'Self-message' icon in the 'Interaction Relationships' panel.
3. Click on the lifeline.
In order to raise the Activation level of Sample A1, click on the raise arrow of the
selected connector.
The lifeline now visually depicts that method Sample A1 is called during the
processing of Sample A.
(c) Sparx Systems 2023 Page 124 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Action
1 Right-click on the message within the Sequence diagram and select 'Set Label Visibility'.
The 'Label Visibility' dialog displays.
2 Select or clear the checkbox against each message label to display or hide, respectively.
(c) Sparx Systems 2023 Page 125 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 126 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Action
1 Right-click on the Sequence elements containing the child Ports or Parts, and select 'Features | Interaction
Points'.
The Features window displays at the 'Interaction Points' tab.
2 Select the checkbox against each Part or Port to show, and click on the Close button.
(c) Sparx Systems 2023 Page 127 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Communication Diagram
A Communication diagram is a diagram that shows the interactions between elements at run-time in much the same
manner as a Sequence diagram. However, Communication diagrams are used to visualize inter-object relationships,
while Sequence diagrams are more effective at visualizing processing over time.
Communication diagrams employ ordered, labeled associations to illustrate processing. Numbering is important to
indicate the order and nesting of processing. A numbering scheme could be:
1
1.1
1.1.1
1.1.2
1.2, and so on.
A new number segment begins for a new layer of processing, and would be equivalent to a method invocation.
You generate Communication diagram elements and connectors from the 'Communication' pages of the Diagram
Toolbox.
Example Diagram
This example illustrates a Communication diagram among cooperating object instances. Note the use of message levels
to capture related flows, and the different colors of the messages.
(c) Sparx Systems 2023 Page 128 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Icon Description
An Actor is a user of the system; user can mean a human user, a machine, or even
another system or subsystem in the model.
Packages are used to organize your project contents, but when added onto a
diagram they can be used to depict the structure and relationships of your model.
Icon Description
A Realizes connector represents that the source object implements or Realizes its
destination object.
(c) Sparx Systems 2023 Page 129 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Action
1 Select 'Start > Application > Preferences > Preferences > Communication Colors'.
The 'Communication Message Coloring' page of the 'Preferences' dialog displays.
3 Click on the drop-down arrow of each 'Message n' field, and select the required color for each message
group.
(c) Sparx Systems 2023 Page 130 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 131 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Action
1 Open a diagram (one of: Communication, Analysis, Interaction Overview, Object, Activity or
StateMachine).
5 Select the appropriate option to add a Message from one object to the other.
6 When the Properties window for the Message displays, type in a name and any other required details.
(c) Sparx Systems 2023 Page 132 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Re-Order Messages
When constructing your Communication diagram, it is frequently necessary to create or delete Message 'groups' and to
re-order the sequence of Messages. There are two displays that help you perform these tasks: the Properties window for
the Message and the 'Sequence Communications' dialog.
If you have several Messages in the form 1.1, 1.2, 1.3, 1.4, for example, but want to start a new numbering group on, say,
the third Message (that is, 1.1, 1.2, 2.1, 2.2, 2.3), you can change that Message in the series to a Start Group message.
Step Action
2 To make the selected Message the start of a new group, select the 'Start New Group' checkbox.
3 If required, in the Notes window for the Message, type an explanatory note.
You can format the text using the Notes toolbar at the top of the field.
Sequence Messages
In larger and more complex diagrams, you might have to use deeper levels of Messages in a group; for example, 1, 1.2,
1.2.1, 1.2.1.1. You might also have to change the sequence of Messages, making Message 1.3, for example, into Message
1.1.
Step Action
2 Click on the Message to adjust and, at the bottom of the dialog, click on the:
· Move Up or Move Down (Hand) buttons to move the Message up or down the sequence (for
example, Message 1.2 to Message 1.1 or 1.3)
· Move Left or Move Right (Hand) buttons to move the Message up or down a level (for example,
Message 1.2.1 to Message 1.2 or Message 1.2.1.1)
3 Repeat step 2 until the Message sequence and levels match your requirements.
You might have to adjust other Message numbers (in group, sequence or level) to accommodate the
changes you have made.
(c) Sparx Systems 2023 Page 133 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 134 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Example Diagram
This diagram depicts a sample sale process, shown in an Interaction Overview diagram, with sub-processes abstracted
within Interaction Occurrences.
The diagram appears very similar to an Activity diagram, and is conceptualized the same way; as the flow moves into an
interaction, the respective interaction's process must be followed before the Interaction Overview's flow can advance.
(c) Sparx Systems 2023 Page 135 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Icon Description
(c) Sparx Systems 2023 Page 136 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
condition is true, then processing continues one way; if not, then another.
A Synch state is useful for indicating that concurrent paths are synchronized. They
are used to split and rejoin periods of parallel processing.
The Initial element defines the start of a flow when an Activity is invoked.
The Final element, indicates the completion of an Activity; upon reaching the Final,
all execution is aborted.
The Flow Final element depicts an exit from the system, as opposed to the Activity
Final, which represents the completion of the Activity.
Enterprise Architect supports two types of Region element: Expansion Regions and
Interruptible Activity Regions.
An Expansion Region surrounds a process to be imposed multiple times on the
incoming data, once for every element in the input collection.
An Interruptible Activity Region surrounds a group of Activity elements, all
affected by certain interrupts in such a way that all tokens passing within the region
are terminated should the interruption(s) be raised.
The Exception Handler element defines the group of operations to carry out when
an exception occurs.
A Fork/Join element can be used to: 1) split a single flow into a number of
concurrent flows, 2) join a number of concurrent flows or 3) both join and fork a
number of incoming flows to a number of outgoing flows.
A Fork/Join element can be used to: 1) split a single flow into a number of
concurrent flows, 2) join a number of concurrent flows or 3) both join and fork a
number of incoming flows to a number of outgoing flows.
Icon Description
An Object Flow connects two elements, with specific data passing through it,
modeling an active transition.
(c) Sparx Systems 2023 Page 137 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
The Interrupt Flow is a connection used to define the two UML concepts of
connectors for Exception Handler and Interruptible Activity Region.
(c) Sparx Systems 2023 Page 138 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
UML Elements
UML elements are the building blocks of a model. They are contained in a repository and are depicted in diagrams
connected by relationships to create narratives that describe the enterprise, business or software system. Each element
has a type that dictates its presentation and the rules that govern how it is connected to other elements. Elements are
displayed in a hierarchy in the Browser window and each element plays a role in defining the system being modeled.
They are grouped into structural or behavioral element types, and each type can be used at any stage of the representation
of a system. For example, Activities can be used to define the way an organization carries out a business function, or to
define the steps in a computer algorithm.
Behavioral diagrams depict the behavioral features of a system or business process. Elements that can appear on
Behavioral diagrams include Activity, Interaction, Lifeline, StateMachine and Use Case.
Structural diagrams depict the structural elements composing a system or function. Elements that can appear on
Structural diagrams include Class, Component, Interface, Node and Package.
(c) Sparx Systems 2023 Page 139 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 140 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Action
Description
An Action element describes a basic process or transformation that occurs within a system, and is the basic functional
unit within an Activity diagram. Actions can be thought of as children of Activities; both represent processes, but
Activities can contain multiple steps or decomposable processes, each of which can be embodied by an Action. An
Action cannot be further broken down or decomposed.
For the purposes of simulation, you can define the effect of a basic (Atomic) Action on the 'Action' tab of the Properties
window for the element, using a JavaScript expression in the 'Effect' field to define the duration of the effect and
selecting to display the effect on the diagram. An Action can be further defined with pre-condition and post-condition
notes.
Certain properties can be graphically depicted on the Action. When you first drag the 'Action' icon from the Toolbox
onto a diagram, the system prompts you to select from a list of the more common types of Action to create. If you select
the 'Other' option on this list, the 'New Action' dialog displays; the 'Other' drop-down list on this dialog enables you to
select a more specialized type of Action from a complete list of Action types.
(c) Sparx Systems 2023 Page 141 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
If you later decide that the Action type is not appropriate, you can change it on the 'Action' tab of the Properties window
- select the required new type from the 'Kind' drop-down list. For a Value Specification Action, you can also set the value
on this tab.
The data values passed out of and into an Action can be represented by Action Pins. For an Action type other than a
basic Action, you can also assign Action Pins to represent specific properties.
An Action can also be depicted as an Expansion Node to indicate that the Action consists of an Expansion Region.
If you have defined a Decision Table for the Action element, you can select options on the element's context menu to
render the element on a diagram as the Decision Table, showing the rules as either rows or columns. You can also return
the element to its normal element shape.
Toolbox icon
(c) Sparx Systems 2023 Page 142 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
The OMG Unified Modeling Language specification, (v2.5.1, p. 443) also states:
An Action may accept inputs and produce outputs, as specified by InputPins and OutputPins of the Action, respectively.
Each Pin on an Action specifies the type and multiplicity for a specific input or output of that Action.
(c) Sparx Systems 2023 Page 143 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Action Types
Action elements are extremely versatile. Enterprise Architect supports a wide range of specific Action types that you can
use to represent or enact a discrete object, operation or behavior. Actions of most types are depicted as a round-cornered
rectangle containing the Action type and Action name, as shown.
Certain types of Action element have their own specific notation; for example:
AcceptEvent
AcceptEventTimer
CallBehavior
CallOperation
SendSignal
AcceptEvent Actions
An AcceptEvent Action element has a selectable output result Action Pin assigned to it, and one or more Triggers to
denote the type of events accepted by the Action. You define the Triggers on the 'Triggers' tab of the Properties window.
In a simulation, an AcceptEvent Action without a Trigger will block the simulation at the Action element.
Field Action
(c) Sparx Systems 2023 Page 144 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Type Click on the drop-down arrow and select the type of trigger: Call, Change, Signal or
Time:
· Call - specifies that the event is a CallEvent, which sends a message to the
associated object by invoking an operation
· Change - specifies that the event is a ChangeEvent, which indicates that the
transition is the result of a change in value of an attribute
· Signal - specifies that the event is a SignalEvent, which corresponds to the
receipt of an asynchronous signal instance
· Time - corresponds to a TimeEvent; which specifies a moment in time
Code generation for StateMachines currently supports Change and Time trigger
events only, and expects a specification value.
In simulation, each Trigger should have a Signal. The result will be the Accept
signal.
A SendSignal Action has an assigned target ActionPin and a Signal. The Signal can have input ActionPins that bind its
attribute parameters as arguments. For example:
::Sender: sig.binding_To_s1: Integer
In a model simulation, a SendSignal Action will transfer the values of the arguments into the attributes of the created
Signal instance. The target ActionPin can have an empty object, to send the Signal into the root of the simulation space.
If there is no target ActionPin, simulation will stop at the Action. If the target has an Object, the Signal will be sent to the
Object. You must specify the Pin type of the target ActionPin in the classifier of the Object.
A BroadcastSignal Action is similar to a SendSignal Action, except that it does not have a target ActionPin. In a
simulation, it always sends its Signal to the root of the simulation data.
You can model the Signal to be sent and the associated arguments to be conveyed, using the 'Signal' tab of the Properties
window for the element.
Field/Button Action
Signal
Click on and select the required signal from the 'Select Signal' dialog.
Attribute Click on the drop-down arrow and select the attribute (as previously created in the
Signal element) with which the arguments are to be associated.
Add Click on this button and select the appropriate ActionPins from the 'Select Pin'
dialog, to identify the arguments for the Signal.
To assign more than one ActionPin, press the Ctrl key while you select each one.
(c) Sparx Systems 2023 Page 145 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
CallBehavior
A CallBehavior Action has a behavior such as an Activity, and a selectable ActionPin result that will put the return
value. The CallBehavior Action can also transfer the values of its argument ActionPins into its behavior, if they are
bound together. In a simulation, if the Action has no behavior, the simulation is blocked.
SendObject Action
A SendObject Action sends a copy of an Object from the requesting ActionPin to the target ActionPin. In a simulation,
the SendObject Action must have both ActionPins, otherwise the simulation is blocked at the Action.
A StructuralFeature Action acts upon a modeling structural feature, such as a Port, Part or attribute of an Activity or of
the classifier of an Object, which you identify within the Action element. Enterprise Architect supports these types of
Structural Feature Action:
Action Description
AddStructuralFeatureValue Requires an object input ActionPin where the target object will be entered, and a
result output ActionPin to hold the read result. If the object Port has no value at run
time, the process will pause at the Action.
In your model design, the Port should be connected to the Port of an Object or to an
Object Node of an Activity. The properties of the Port or Object Node must be
correctly set, and the value Port must be set up to capture the input value when the
Action takes effect.
The result ActionPin can be connected to an input consume Port or ActionPin. For
example, it can be used at the next WriteStructuralFeature Action as the input
value.
ClearStructuralFeature Clears the single value of a structural attribute or a structural Port of an Object or
an Activity, and sets the value of the structural feature to null.
ReadStructuralFeature Resembles AddStructuralFeatureValue, except that the value Port is not necessary.
In a simulation, if the Object's Port has no value at run time, the simulation will
pause at the Action.
Set a StructuralFeature
(c) Sparx Systems 2023 Page 146 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Action
1 Right-click on the Action element and select 'Advanced | Set Structural Feature: Add'.
2 On the 'Select Property' dialog (a variant of the 'Select <Item>' dialog), browse or search for the
appropriate structural feature, and double-click on it.
The feature name and location displays in the 'structuralFeature' field of the 'Set Structural Feature' dialog.
ReadSelf
A ReadSelf Action reads its own host object name into its result Port. You must set an output ActionPin for the result.
The Action must be within a Class, which is instanced during run time. When a simulation passes the Action, it puts the
name of the instance of the Class into the result Port.
ReadSelf is one of a group of Object Actions, with CreateObject and DestroyObject.
(c) Sparx Systems 2023 Page 147 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Variable Actions
Variable Actions are closely concerned with the simulation of the behavior of and actions on Objects in a process. They
have an association variable in the form of the Tagged Value variable with, as its value, the name of an Object in
run-time. That is:
sim.ObjectName
Variable Actions provide the variable not only as an Object but also as a property (such as an attribute or Port) of an
Object. For example:
sim.a.a1
The parameter a.a1 can have an integer value.
Variable Actions include:
· ReadVariable
· WriteVariable
· ClearVariable
· AddVariableValue
· RemoveVariable
ReadVariable
A ReadVariable Action has a Result Action Pin as an output Port. The value of the Port will be the result to be read, this
being a copy of the variable read. Therefore, it is not affected by changes to the value of the variable. For example, if the
variable is sim.Object.a that has the value 3, and its value has been changed into 5 after it is read, the value read is still 3.
Before reading:
sim.Object.a = 3;
sim.Action1.result = null;
After reading:
sim.Object.a = 3;
sim.Action1.result = 3;
After a change in the value of the variable:
sim.Object.a = 5;
sim.Action2.value = 3;
In that example, the value is a Port of Action2 that is connected to the result Port of Action1 by an Object Flow
connector.
WriteVariable
This Action has a Value Action Pin as an input Port. The value of the Port will be written into its variable. The result
value is a copy of the variable from the Value Port.
ClearVariable
This Action clears all values of a variable, the variable being either an Object or a value.
(c) Sparx Systems 2023 Page 148 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
AddVariableValue
This Action is effectively the same as a WriteVariable Action, because the current variables of the simulation do not
support multiple values.
RemoveVariableValue
This Action is effectively the same as a ClearVariable Action because the current variables of the simulation do not
support multiple values.
(c) Sparx Systems 2023 Page 149 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Action
1 Right-click on the Action and select the 'New Child Element| Attach Constraint' option.
A Note is created on the diagram, connected to the Action.
3 In the 'Constraint Type' field, click on the drop-down arrow and select the required constraint type.
(c) Sparx Systems 2023 Page 150 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Action
2 From the Browser window open a Class and locate the operation to be added to the diagram.
4 When the operation has been added to the diagram, the CallOperation Action resembles this:
Step Action
1 Right-click on the Action and select the 'Advanced | Set Operation' option.
The 'Set Operation' dialog displays.
2 If necessary, in the 'Go To Namespace' field, select the model that contains the operation.
Browse for the operation.
(c) Sparx Systems 2023 Page 151 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Notes
· If you want to locate, in the Browser window, the operation that an Action was created from, right-click on the
Action in the diagram and select the 'Find | Locate Operation in Project Browser' option
· If you want to display the previously-generated code for the Class containing the operation, click on the Action in
the diagram and press either Ctrl+E or F12; the 'Code Editor' view displays, with the code generated for the Class (if
no code has been generated for the Class, the 'Code Editor' does not display)
· In a simulation, the CallOperation Action must have a calling operation and a target object ActionPin, the operation
belonging to the object that comes from the target ActionPin; if you don't set these properties, simulation will be
blocked at the Action
(c) Sparx Systems 2023 Page 152 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Action Pin
Description
An Action Pin is used to define the data values passed out of and into an Action. An Input Pin provides values to the
Action, whereas an Output Pin contains the results from that Action.
Action Pins are used here to connect two Actions:
Action Pins can be further characterized as defining exception parameters, streams, or states. Associating a state with a
Pin defines the state of input or output values. For instance, the Pin could be called 'Orders', but the state could be
'Validated' or 'Canceled'.
To add an Action Pin to an Action, right-click on the Action to display the context menu and select the 'New Child
Element | Action Pin' option. (You can also assign Action Pins, to define specific properties of the Action.)
The Properties window for an Action Pin has a 'Pin' tab on which you define the specific actions of the Pin.
A Pin serves as an argument for Call Behavior Actions and Call Operation Actions - the Pin name and parameters are
shown on the 'Arguments' tab of the Properties window for the Action element. When an Action is associated with a
valid behavior in the model, the associated behavior's parameters are listed in the 'Parameter' field drop-down list to
facilitate one-to-one mapping between the argument and the parameter. The fields in the 'Argument' panel of the 'Pin' tab
are enabled only for Pins belonging to Call Actions, and only when the Action is associated with a valid behavior with
valid parameters. To observe this:
1. Create an Activity element and give it an Activity Parameter (right-click on it and select 'New Child Element |
Activity Parameter').
2. Create an Action and set the 'Kind' property to 'CallBehavior' (on the 'Action' tab of the Properties window for the
Action element).
3. Make the Activity element the classifier for the Action (on the Properties window for the Action, click on the
'Element' tab and, in the 'Advanced' section click on the 'Classifier' browse button and locate and select the Activity
on the 'Select <Item>' dialog).
4. The Features window immediately displays at the 'Interaction Points' tab. Select the 'Show Owned/Inherited'
checkbox; when this is selected, the Activity Parameter is listed in the 'Defined Elements' panel. Select the checkbox
against the Activity Parameter.
5. The Action element now has an Action Pin representing an argument, with the Activity Parameter as the parameter
of the argument.
You can also change the objectState property of an Action Pin on the 'Pin' tab of the element's Properties window.
(c) Sparx Systems 2023 Page 153 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Action
1 Click on the Action in the diagram and, in the docked Properties window, click on the 'Action' tab. Click
on the drop-down arrow in the 'Kind' field and ensure that you have the correct Action type, then click on
the Save icon.
2 Click on the 'Element' tab, and select the stereotype properties group. The group contains different fields
depending on the Action type. The fields are populated by typing in or browsing for the appropriate object
name or selecting a checkbox.
If you use a Browser screen, you can either browse for and assign existing objects - in this case,
ActionPins - or click on the Add New button and create and assign a new Action Pin.
3 Note that the Action Pins do not display on the diagram, but are shown in the Browser window under the
Action element.
Click on the OK button to return to the Properties window.
Notes
· To check the exact location of an assigned Action Pin, you can right-click on the Pin name in the Properties window
and select the 'Find in Project Browser' option
(c) Sparx Systems 2023 Page 154 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Activity
Description
An Activity organizes and specifies the participation of subordinate behaviors, such as sub-Activities or Actions, to
reflect the control and data flow of a process. Activities are used in Activity diagrams for various modeling purposes,
from procedural-type application development for system design, to business process modeling of organizational
structures or workflow.
This simple diagram of an Activity contains Action elements and includes input parameters and output parameters.
You can define an Activity as a composite element, either during creation or during later edits. When creating a
composite Activity element, it is simpler to apply the mechanism for creating Structured Activity elements, which
reduces the number of steps to work through. If converting an existing Activity element, right-click on the element and
select the 'New Child Diagram | Composite Structure Diagram' option.
Certain properties can be graphically depicted on an Activity. The Actions in an Activity can be further organized by
Activity Partitions.
An Activity can also be depicted as an Expansion Node to indicate that the Activity consists of an Expansion Region.
If you have defined a Decision Table for the Activity element, you can select options on the element's context menu to
render the element on a diagram as the Decision Table, showing the rules as either rows or columns. You can also return
the element to its normal element shape.
Toolbox icon
(c) Sparx Systems 2023 Page 155 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
behaviors coordinated by these models may be initiated because other behaviors in the model finish executing, because
objects and data become available or because events occur externally to the flow. The flow of execution is modeled as
ActivityNodes connected by ActivityEdges. An ExecutableNode can be the execution of a subordinate behavior, such as
an arithmetic computation, a call to an operation, or manipulation of object contents (...). ActivityNodes also include
flow-of-control constructs, such as synchronization, decision, and concurrency control.
Tokens are not explicitly modeled in an Activity, but are used for describing the execution of an Activity. An object
token is a container for a value that flows over ObjectFlow edges (some object tokens can flow over ControlFlow edges,
as specified by the modeler, see isControlType for ObjectNodes in sub clause 15.4). An object token with no value in it
is called a null token. A control token affects execution of ActivityNodes, but does not carry any data, and flows only
over ControlFlow edges. Each token is distinct from any other, even if it contains the same value as another.
(c) Sparx Systems 2023 Page 156 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Activity Notation
Certain properties can be graphically depicted on an Activity element, as shown:
To define these properties, right-click on the Activity and select the 'Properties' option, then select the 'Advanced' tab of
the 'Properties' dialog.
You can also define the duration (the number of ticks to wait for) of the Activity, using a JavaScript expression. Open the
Properties window, click on the 'Behavior' tab and type the JavaScript expression in the 'Specification' field.
(c) Sparx Systems 2023 Page 157 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
An Activity Parameter Node accepts input to an Activity or provides output from an Activity.
This example depicts two entry parameters and one output parameter defined for the Activity.
Step Action
1 Right-click on the element and select the 'New Element | Activity Parameter' option.
2 The 'Properties' dialog displays, which prompts for the name and other properties of the embedded
element.
3 To further define the new Activity Parameter, select the 'Parameter' tab of the 'Properties' dialog and
define:
· Type
· Default Value
· Direction
· Whether this is a fixed value
· Multiplicity upper and lower bounds
· Whether to allow duplicates and
(c) Sparx Systems 2023 Page 158 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Within an Activity, inputs to and outputs from an Activity are handled using ActivityParameterNodes. Each
ActivityParameterNode is associated with one Parameter of the Activity that owns the node. The type of an
ActivityParameterNode shall be the same as the type of its associated Parameter.
(c) Sparx Systems 2023 Page 159 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Activity Partition
Enterprise Architect supports two types of Activity Partition:
· The Activity Partition feature, described in this topic, which is used to logically organize an Activity element
· The Activity Partition element, which is used to logically organize an Activity diagram
In effect, these are the same. They partition the Actions of the Activity without affecting the token flow, helping to
structure the view or parts of the Activity.
An example of a feature-partitioned Activity is shown here:
Define Partitions
Step
In a diagram, right-click on the Activity element and select the 'Advanced | Partition Activity' option.
The 'Activity Partitions' dialog displays.
If the partitions do not show on the element, click on the icon to the right of the element, to toggle display of the
partitions.
Click on the partition borders and drag them into position to enclose the appropriate elements.
(c) Sparx Systems 2023 Page 160 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 161 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Actor
Note that on a Construction diagram, an Actor element defaults to Rectangular Notation and looks like a Class element.
Description
An Actor is a user of the system; user can mean a human user, a machine, or even another system or subsystem in the
model. Anything that interacts with the system from the outside or system boundary is termed an Actor. Actors are
typically associated with Use Cases.
Actors can use the system through a graphical user interface, through a batch interface or through some other media. An
Actor's interaction with a Use Case is documented in a Use Case scenario, which details the functions a system must
provide to satisfy the user requirements.
Actors also represent the role of a user in Sequence diagrams, where you can display them using rectangle notation.
Enterprise Architect supports a stereotyped Actor element for business modeling. The business modeling elements also
represent Actors as stereotyped Objects.
Toolbox icon
(c) Sparx Systems 2023 Page 162 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Description
A Central Buffer Node is an object node for managing flows from multiple sources and destinations, represented in an
Activity diagram. It acts as a buffer for multiple in-flows and out-flows from other object nodes, but does not connect
directly to Actions.
Toolbox icon
(c) Sparx Systems 2023 Page 163 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Choice
Description
The Choice pseudostate is used to compose complex transitional paths in, for example, a StateMachine diagram, where
the outgoing transition path is decided by dynamic, run-time conditions. The run-time conditions are determined by the
actions performed by the StateMachine on the path leading to the choice.
This example depicts the Choice element. Upon reaching the Filter pseudostate, a transition fires to the appropriate State
based on the run-time value passed to the Filter. Very similar in form to a Junction pseudostate, the Choice pseudostate's
distinction is in deciding transition paths at run-time.
Toolbox icon
(c) Sparx Systems 2023 Page 164 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
guard Constraints on all outgoing Transitions are evaluated dynamically, when the compound transition traversal reaches
this Pseudostate. Consequently, choice is used to realize a dynamic conditional branch. It allows splitting of compound
transitions into multiple alternative paths such that the decision on which path to take may depend on the results of
Behavior executions performed in the same compound transition prior to reaching the choice point. If more than one
guard evaluates to true, one of the corresponding Transitions is selected. The algorithm for making this selection is not
defined. If none of the guards evaluates to true, then the model is considered ill formed. To avoid this, it is recommended
to define one outgoing Transition with the predefined “else” guard for every choice Pseudostate.
(c) Sparx Systems 2023 Page 165 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Combined Fragment
A Combined Fragment reflects one or more aspects of interaction (called interaction operands) controlled by an
interaction operator, with corresponding Boolean conditions known as interaction constraints. The Fragment displays as
a transparent window, divided by horizontal lines for each operand.
This Sequence diagram illustrates the use of Combined Fragments in modeling a simplified purchasing process. A loop
fragment represents iteration through an unknown number of items for purchase, after which the cashier requests
payment. An alternative fragment represents the payment options, the fragment being divided to show the two operands
cash and credit card. After the fragment completes its trace, the cashier gives a receipt to the customer, under the fulfilled
condition that payment requirements were met.
The order of interaction fragment conditions can be changed directly on the diagram:
1. Select an interaction fragment with more than one condition defined; up and down arrows appear on the right hand
side of each condition.
2. Click on the appropriate arrow to change the order.
(c) Sparx Systems 2023 Page 166 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
In order to select a Combined Fragment, you must click near the inside edge or drag a selection rectangle around the
Fragment; this is designed to prevent accidental selection when moving Messages inside the Fragment.
Once contained within a Fragment or a Fragment Operand, Messages continue to be contained by it as they are moved up
and down the diagram. To move a Message out of a Fragment, or to a different position in the sequence within the
Fragment, press and hold the Alt key as you drag the Message into position. A Fragment on a Sequence diagram will
resize when a Message within it is moved up or down, to continue to contain that Message.
When you select an Interaction Fragment on a diagram, it shows one of two element icons (off the top right corner) that
control how freely you can move the fragment and any Messages within and below the fragment.
To move a Combined Fragment independently of its contents, make sure the 'move freely' element icon is visible; if
it is not shown, click on the 'move contents' icon and drag the element border.
Interaction Fragments inside a Combined Fragment operand cannot be moved outside the operand unless the fragment is
in 'move freely' mode. Moving an operand line moves any objects and Messages below that line down or up by the
amount the operand line is moved.
Fragments containing other fragments resize when the contained fragment is resized (unless the fragment is in 'move
freely' mode).
Fill Opacity
Whilst an Interaction Fragment usually encloses a number of other elements, there might be reasons for hiding those
elements as well as times to fully show them, or perhaps just indicate that they are there, depending on the immediate
purpose of the diagram. You can apply these nuances in the display of elements behind and covered or overlapped by an
Interaction Fragment, by changing the opacity of the element.
(c) Sparx Systems 2023 Page 167 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Before setting the opacity, check that the element has a fill color.
You set the opacity using an icon from either of these two pop-up element toolbars:
· Right-click on the Interaction Fragment element and look above the context menu:
Toolbox icon
(c) Sparx Systems 2023 Page 168 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Action
1 Drag the 'Fragment' icon onto the diagram from the 'Interaction Elements' page of the Diagram Toolbox.
2 In the 'Type' field, click on the drop-down arrow and select one of the various types of interaction
operator.
3 In the 'Condition' field, specify a condition or interaction constraint for each operand.
4 A rectangular frame displays, partitioned by lines into segments for each operand.
5 Adjust the frame to encompass the required event occurrences for each operand.
Notes
· A message will always be contained within a fragment or a fragment operand when it is moved within it
· Fragments on Sequence diagrams will resize when a message is moved down to ensure that messages, once within a
fragment, always remain within the fragment
(c) Sparx Systems 2023 Page 169 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Interaction Operators
When creating Combined Fragments, you must apply an appropriate interaction operator to characterize the fragment.
This table provides guidance on the various operators, and their corresponding descriptions.
Interaction Operator
Operator Action
loop Indicate that the operand repeats a number of times, as specified by interaction
constraints.
neg Assert that a fragment is invalid, and implies that all other interaction is valid.
assert Specify the only valid fragment to occur. This operator is often enclosed within a
consider or ignore operand.
strict Indicate that the behaviors of the operands must be processed in strict sequence.
seq Indicate that the Combined Fragment is weakly sequenced. This means that the
ordering within operands is maintained, but the ordering between operands is
undefined, so long as an event occurrence of the first operand precedes that of the
second operand, if the event occurrences are on the same lifeline.
ignore Indicate which messages should be ignored during execution, or can appear
anywhere in the execution trace.
consider Specify which messages should be considered in the trace. This is often used to
specify the resulting event occurrences with the use of an assert operator.
(c) Sparx Systems 2023 Page 170 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Alternatives
The interactionOperator alt designates that the CombinedFragment represents a choice of behavior. At most one of the
operands will be chosen. The chosen operand must have an explicit or implicit guard expression that evaluates to true at
this point in the interaction. An implicit true guard is implied if the operand has no guard. The set of traces that defines a
choice is the union of the (guarded) traces of the operands. An operand guarded by else designates a guard that is the
negation of the disjunction of all other guards in the enclosing CombinedFragment. If none of the operands has a guard
that evaluates to true, none of the operands are executed and the remainder of the enclosing InteractionFragment is
executed. If an inner CombinedFragment Gate is used in any InteractionOperand of an alt CombinedFragment, a Gate
with that same name must be used by every InteractionOperand of that alt CombinedFragment.
Option
The interactionOperator opt designates that the CombinedFragment represents a choice of behavior where either the
(sole) operand happens or nothing happens. An option is semantically equivalent to an alternative CombinedFragment
where there is one operand with non-empty content and the second operand is empty.
Break
The interactionOperator break designates that the CombinedFragment represents a breaking scenario in the sense that the
operand is a scenario that is performed instead of the remainder of the enclosing InteractionFragment. A break operator
with a guard is chosen when the guard is true and the rest of the enclosing Interaction Fragment is ignored. When the
guard of the break operand is false, the break operand is ignored and the rest of the enclosing InteractionFragment is
chosen. The choice between a break operand without a guard and the rest of the enclosing InteractionFragment is done
non-deterministically. A CombinedFragment with interactionOperator break should cover all Lifelines of the enclosing
InteractionFragment.
Parallel
The interactionOperator par designates that the CombinedFragment represents a parallel merge between the behaviors of
the operands. The OccurrenceSpecifications of the different operands can be interleaved in any way as long as the
ordering imposed by each operand as such is preserved. A parallel merge defines a set of traces that describes all the
ways that OccurrenceSpecifications of the operands may be interleaved without obstructing the order of the
OccurrenceSpecifications within the operand.
Weak Sequencing
The interactionOperator seq designates that the CombinedFragment represents a weak sequencing between the behaviors
of the operands. Weak sequencing is defined by the set of traces with these properties:
1 The ordering of OccurrenceSpecifications within each of the operands are maintained in the result.
2 OccurrenceSpecifications on different lifelines from different operands may come in any order.
3 OccurrenceSpecifications on the same lifeline from different operands are ordered such that an
OccurrenceSpecification of the first operand comes before that of the second operand.
Thus weak sequencing reduces to a parallel merge when the operands are on disjunct sets of participants. Weak
sequencing reduces to strict sequencing when the operands work on only one participant.
Strict Sequencing
The interactionOperator strict designates that the CombinedFragment represents a strict sequencing between the
behaviors of the operands. The semantics of strict sequencing defines a strict ordering of the operands on the first level
within the CombinedFragment with interactionOperator strict. Therefore OccurrenceSpecifications within contained
CombinedFragment will not directly be compared with other OccurrenceSpecifications of the enclosing
CombinedFragment.
Negative
The interactionOperator neg designates that the CombinedFragment represents traces that are defined to be invalid. The
set of traces that defined a CombinedFragment with interactionOperator negative is equal to the set of traces given by its
(sole) operand, only that this set is a set of invalid rather than valid traces. All InteractionFragments that are different
from Negative are considered positive meaning that they describe traces that are valid and should be possible.
Critical Region
The interactionOperator critical designates that the CombinedFragment represents a critical region. A critical region
(c) Sparx Systems 2023 Page 171 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
means that the traces of the region cannot be interleaved by other OccurrenceSpecifications (on those Lifelines covered
by the region). This means that the region is treated atomically by the enclosing fragment when determining the set of
valid traces. Even though enclosing CombinedFragments may imply that some OccurrenceSpecifications may interleave
into the region, such as with par-operator, this is prevented by defining a region. Thus the set of traces of enclosing
constructs are restricted by critical regions.
Ignore / Consider
The interactionOperator ignore designates that there are some message types that are not shown within this combined
fragment. These message types can be considered insignificant and are implicitly ignored if they appear in a
corresponding execution. Alternatively, one can understand ignore to mean that the message types that are ignored can
appear anywhere in the traces. Conversely, the interactionOperator consider designates which messages should be
considered within this combined fragment. This is equivalent to defining every other message to be ignored.
Assertion
The interactionOperator assert designates that the CombinedFragment represents an assertion. The sequences of the
operand of the assertion are the only valid continuations. All other continuations result in an invalid trace. Assertions are
often combined with Ignore or Consider as shown in Figure 17.17.
Loop
The interactionOperator loop designates that the CombinedFragment represents a loop. The loop operand will be
repeated a number of times.
The Guard may include a lower and an upper number of iterations of the loop as well as a Boolean expression. The
semantics is such that a loop will iterate minimum the ‘minint’ number of times (given by the iteration expression in the
guard) and at most the ‘maxint’ number of times. After the minimum number of iterations have executed and the
Boolean expression is false the loop will terminate. The loop construct represents a recursive application of the seq
operator where the loop operand is sequenced after the result of earlier iterations.
If the loop contains a separate InteractionConstraint with a specification, the loop will only continue if that specification
evaluates to true during execution regardless of the minimum number of iterations specified in the loop.
(c) Sparx Systems 2023 Page 172 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Constraint
Description
A Constraint element identifies a constraint on other elements; it can be connected to other elements of any type. The
Constraint element icon is available in any Enterprise Architect diagram, through the 'Common' pages of the Toolbox.
This element is a means of documenting the fact that there are constraints on related elements; it has no impact on the
other elements. However, a Constraint is a named element, listed in the Browser window, and able to be copied and
re-used where appropriate. You define the types of constraint in the project reference data, apply them to the element in
the element 'Properties' dialog, and manage them through the Responsibility window.
Toolbox icon
(c) Sparx Systems 2023 Page 173 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Datastore
Description
A Datastore is an element used to define permanently stored data. A token of data that enters into a Datastore is stored
permanently, updating tokens for data that already exists. A token of data that comes out of a Datastore is a copy of the
original data.
Use Object Flow connectors to connect elements (such as Activities) to Datastores, as values and information are being
passed between nodes. Selection and transformation behavior, together composing a sort of query, can be specified as to
the nature of data access. For instance, selection behavior determines which objects are affected by the connection to the
Datastore. Transformation behavior might then further specify the value of an attribute pertaining to a selected object.
To define the behavior of access to a Datastore, attach a note to the Object Flow connector. To do this, right-click on the
Object Flow and select the 'Attach Note or Constraint' option. A dialog indicates other flows in the Activity diagram, to
which you can attach the note (if the behavior applies to multiple flows). To comply with UML 2.x, preface the behavior
with the notation «selection» or «transformation».
Toolbox icon
(c) Sparx Systems 2023 Page 174 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Decision
Description
A Decision is an element of an Activity diagram or Interaction Overview diagram that indicates a point of conditional
progression: if a condition is True, then processing continues one way; if not, then another.
The element can also be used as a Merge node in that multiple alternative flows can be merged (but not synchronized) to
form one flow. These examples show both of these methods of using the Decision element.
Used as a decision:
See the OMG Unified Modeling Language specification, (v2.5.1, figure 12.77, p. 363.)
Used as a merge:
See the OMG Unified Modeling Language specification, (v2.5.1, figure 12.106, p. 388.)
You can choose a Behavior element as the Decision Input property of the Decision (UML: decisionInput) in the
Properties window. To show the chosen Decision Input property on a diagram, attach a Note to the Decision, then
right-click on the Note Link and choose the 'Link this Note to an Element feature' option. Then select 'Decision Input' as
the linked feature.
You can also choose an Object Flow as the Decision Input Flow of the Decision (UML: decisionInputFlow). Select the
incoming Object Flow and select the 'Decision Input Flow' option in the Properties window.
Notes
· Moving a diagram generally does not affect the location of elements in Packages; if you move a diagram out of one
Package into another, all the elements in the diagram remain in the original Package
However, Decision elements are used only within one diagram, have no meaning outside that diagram, and are never
re-used in any other diagram; therefore, if you move a diagram containing these elements, they are moved to the new
(c) Sparx Systems 2023 Page 175 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Toolbox icon
The OMG Unified Modeling Language specification, (v2.5.1, p.390 (Decision Node)) states:
A DecisionNode is a ControlNode that chooses between outgoing flows. A DecisionNode shall have at least one and at
most two incoming ActivityEdges, and at least one outgoing ActivityEdge. If it has two incoming edges, then one shall
be identified as the decisionInputFlow, the other being called the primary incoming edge. If the DecisionNode has only
one incoming edge, then it is the primary incoming edge. If the primary incoming edge of a DecisionNode is a
ControlFlow, then all outgoing edges shall be ControlFlows and, if the primary incoming edge is an ObjectFlow, then all
outgoing edges shall be ObjectFlows.
A DecisionNode accepts tokens on its primary incoming edge and offers them to all its outgoing edges. However, each
token offered on the primary incoming edge shall traverse at most one outgoing edge. Tokens are not duplicated.
If any of the outgoing edges of a DecisionNode have guards, then these are evaluated for each incoming token. The order
in which guards are evaluated is not defined and may be evaluated concurrently. If the primary incoming edge of a
DecisionNode is an ObjectFlow, and the DecisionNode does not have a decisionInput or decisionInputFlow, then the
value contained in an incoming object token may be used in the evaluation of the guards on outgoing ObjectFlows.
(c) Sparx Systems 2023 Page 176 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Diagram Frame
A Diagram Frame element is a rendition of a diagram dropped from the Browser window into another diagram. It is a
type of Combined Fragment with an 'Interaction Operator' ref. However, it can be created on any type of diagram, and is
not created in the same way as other Combined Fragments.
When you drop the diagram from the Browser window onto the open diagram, a dialog shows providing (amongst
others) these options:
· 'Diagram Frame' - a Diagram Frame is inserted into the diagram, containing an image of the dropped diagram
· 'Diagram Reference' - an empty frame is inserted with the name of the dropped diagram in the frame label
In both cases, the object acts as a hyperlink to the real referenced diagram. You can also define properties for the objects,
as for other elements, by right-clicking on the object and selecting the element 'Properties' option.
All options on the 'Select Type' dialog are discussed in the Add Diagram Links to Diagrams Help topic.
You can change the appearance of a Diagram Frame, as for other elements, but the available options are tailored for this
element type. If you right-click on the frame and select the 'Appearance | Diagram Frame Appearance' option, a
sub-menu displays with these options:
· 'Normal' - the default appearance of a visible rectangular frame with a visible frame label; you can use this option to
reset the appearance after using one of the other options
· 'Boundary' - hides the frame label of the Diagram Frame
· 'Boundary With Name' - hides the border of the frame label
· 'Name Only' - hides the border of the Diagram Frame and frame label, leaving the text only
· 'Hidden' - hides the border and text of the Diagram Frame
In a SysML, State or StateMachine diagram:
(c) Sparx Systems 2023 Page 177 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
· If the frame is set to non-selectable it will auto-resize to fit the bounds of the diagram, expanding from its default
size but not shrinking smaller
· Diagrams showing Diagram Frames applied using Enterprise Architect release 14.0 or later will, if opened using a
release of Enterprise Architect earlier than release 14.0, draw the parent object on the diagram
A useful feature of Diagram Frames as a diagram reference is that they provide the facility of moving elements currently
displayed on the Host diagram through the frame to the referenced diagram, the parent Package of the referenced
diagram, or both. You can also add the element to the referenced diagram as a link to its current location.
To move or link the element, simply drag it on the current diagram over the Diagram Frame. A dialog displays, listing
options to:
· Move the element to the referenced diagram
· Create a link to the element on the referenced diagram
· Move the element to the parent Package
· Move the element to both the referenced diagram and its parent Package
If you select one of the options to move the element to the referenced diagram, it and any connectors it has are removed
from the current diagram and placed in a clear area of the referred diagram. If the element already has relationships with
other elements on the diagram, those relationships are included.
Notes
· You can change the size of both objects, but you cannot reduce a Diagram Frame to less than the size of the enclosed
diagram
· You cannot change the diagram within a Diagram Frame; to edit the diagram, double-click within the frame and edit
the original diagram
· The Diagram Frame element is not the same as the diagram frame border that you can set (using the 'Diagram
Frames' panel on the 'Diagram' page of the 'Preferences' dialog) on images of diagrams that you print out, copy to
file or paste into other tools; it is possible, but not usual, to paste the diagram image from the clipboard into another
Enterprise Architect diagram, in which case the image initially looks the same as the Diagram Frame element, but
element options do not function on this image
(c) Sparx Systems 2023 Page 178 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Gate
Description
A Diagram Gate is a simple graphical way to indicate the point at which messages can be transmitted into and out of
Interaction Fragments. A fragment might be required to receive or deliver a message; internally; an ordered message
reflects this requirement, with a Gate indicated on the boundary of the fragment's frame. Any external messages
'synching' with this internal message must correspond appropriately. Gates can appear on Interaction diagrams
(Sequence, Timing, Communication or Interaction Overview), Interaction Occurrences and Combined Fragments (to
specify the expression).
Toolbox icon
(c) Sparx Systems 2023 Page 179 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Endpoint
Description
An Endpoint is used in Interaction diagrams (Sequence, Timing, Communication or Interaction Overview) to reflect a
lost or found Message in sequence. To model this, drag an Endpoint element onto the workspace.
With Sequence diagrams, drag a Message from the appropriate Lifeline to the Endpoint. With Timing diagrams, the
Message connecting the Lifeline to the Endpoint requires some timing specifications to draw the connection.
This example depicts a lost Message in a Sequence diagram.
Toolbox icon
(c) Sparx Systems 2023 Page 180 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Entry Point
Description
Entry Point pseudostates are used to define the beginning of a StateMachine. An Entry Point exists for each region,
directing the initial concurrent state configuration.
Toolbox icon
(c) Sparx Systems 2023 Page 181 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Event
Description
Toolbox icon
(c) Sparx Systems 2023 Page 182 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Exception
Description
The Exception Handler element defines the group of operations to carry out when an exception occurs. In an Activity
diagram, the protected element can contain a set of operations and is connected to the exception handler via an Interrupt
Flow connector. Any defined error contained within an element's parts can trigger the flow to move to an exception.
Toolbox icon
An ExecutableNode may have one or more ExceptionHandlers that are used to deal with exceptions that may be
propagated out of the ExecutableNode, which is the protectedNode of those handlers. If an exception is propagated out of
the protectedNode, then the set of handlers is examined for a handler that matches the exception. A handler matches if
the type of the exception is the same as, or a (direct or indirect) subtype of, one of the exceptionTypes of the handler. If
there is a match, the handler catches
(c) Sparx Systems 2023 Page 183 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Expansion Node
Description
Representing an Action or an Activity as an Expansion Node is a shorthand notation to indicate that the Action/Activity
consists of an Expansion Region.
To specify an Action or Activity as an Expansion Node, right-click on the Action and select the 'New Child Element |
Expansion Node' option.
(c) Sparx Systems 2023 Page 184 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Expansion Region
Description
On an Activity diagram, an Expansion Region encloses a group of ActivityNodes and ActivityEdges that are to be
executed several times on the incoming data, once for every element in the input collection. If there are multiple inputs,
the collection sizes should match; if they do not, the smallest collection determines the number of executions. The
collections must also be of the same type (such as set, or bag). Any outputs must be in the form of a collection of at least
the same size as the input collection; the output collection can be larger if each execution can produce more than one
output.
You create an Expansion Region as one variant of a Region (the other is an Interruptible Activity Region) using the
Activity pages of the Diagram Toolbox. You are prompted to specify the concurrency of the Expansion Region's multiple
executions (parallel, iterative or stream). Parallel reflects that the elements in the incoming collections can be processed
at the same time or overlapping, whereas an iterative concurrency mode specifies that execution must occur sequentially.
A stream mode Expansion Region indicates that the input and output come in and exit as streams, and that the Expansion
Region's process must have some method to support streams.
To modify the mode of an Expansion Region, right-click on it and select the 'Properties | Special Action' option, then
select the 'Advanced' tab and click on the drop-down arrow in the 'mode' field..
(c) Sparx Systems 2023 Page 185 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Toolbox icon
(c) Sparx Systems 2023 Page 186 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 187 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Exit Point
Description
Exit Points are used in StateMachine elements and StateMachine diagrams to denote the point where the machine is
exited and the transition sourcing this exit point, for StateMachine elements, is triggered. Exit points are a type of
pseudostate used in the StateMachine diagram.
Toolbox icon
(c) Sparx Systems 2023 Page 188 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Final
Description
Two nodes can be used to define a Final state in an Activity, both defined in UML 2.1 as of type Final Node. The
Activity Final element indicates the completion of an Activity; upon reaching the Final, all execution in the Activity
diagram is aborted. The other type of final node, Flow Final, depicts an exit from the system that has no effect on other
executing flows in the Activity.
The next example illustrates the development of an application. The process comes to a Flow Final node when there are
no more components to be built; note that the Fork element indicates a concurrent process with the building of new
components and installation of completed components. The Flow Final terminates only the sub-process building
components. Similarly, only those tokens entering the decision branch for the installation of further components
terminate with the connecting Flow Final (that is, stop installing this component, but keep on installing other
components). It is only after the Deliver Application activity is completed, after the control flow reaches the Final node,
that all flows stop.
The node that initiates a flow is the Initial node.
See the OMG Unified Modeling Language specification, (v2.5.1, figure 12.91, p.374.)
Notes
· Moving a diagram generally does not affect the location of elements in Packages; if you move a diagram out of one
Package into another, all the elements in the diagram remain in the original Package
However, Final elements are used only within one diagram, have no meaning outside that diagram, and are never
re-used in any other diagram; therefore, if you move a diagram containing these elements, they are moved to the new
parent Package with the diagram
Toolbox icon
(c) Sparx Systems 2023 Page 189 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 190 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Flow Final
Description
There are two nodes used to define a final state in an Activity, both defined in UML 2.1 as of type Final Node. The Flow
Final element depicts an exit from the system, as opposed to the Activity Final, which represents the completion of the
Activity. Only the flow entering the Flow Final node exits the Activity; other flows continue undisturbed.
This example Activity diagram illustrates the development of an application. The process comes to a Flow Final node
when there are no more components to be built; note that the Fork element indicates a concurrent process with the
building of new components and installation of completed components. The Flow Final terminates only the sub-process
building components. Similarly, only those tokens entering the decision branch for the installation of further components
terminate with the connecting Flow Final (that is, stop installing this component, but keep on installing other
components). It is only after the Deliver Application activity is completed, after the control flow reaches the Final node,
that all flows stop.
See the OMG Unified Modeling Language specification, (v2.5.1, figure 12.91, p.374.)
Notes
· Moving a diagram generally does not affect the location of elements in Packages: if you move a diagram out of one
Package into another, all the elements in the diagram remain in the original Package
However, Flow Final elements are used only within one diagram, have no meaning outside that diagram, and are
never re-used in any other diagram; therefore, if you move a diagram containing these elements, they are moved to
the new parent Package with the diagram
Toolbox icon
(c) Sparx Systems 2023 Page 191 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
A FlowFinalNode is a FinalNode that terminates a flow. All tokens accepted by a FlowFinalNode are destroyed. This has
no effect on other flows in the Activity.
(c) Sparx Systems 2023 Page 192 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Fork/Join
Example Diagrams
Description Diagram
(c) Sparx Systems 2023 Page 193 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Toolbox icon
or
(c) Sparx Systems 2023 Page 194 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Fork
Description
The Fork element is used in both Activity and StateMachine diagrams. With respect to StateMachine diagrams, a Fork
pseudostate signifies that its incoming transition comes from a single state, and it has multiple outgoing transitions.
These transitions must occur concurrently, requiring the use of concurrent regions, as depicted here in the Composite
State. Unlike Choice or Junction pseudostates, Forks must not have triggers or guards. This diagram demonstrates a Fork
pseudostate dividing into two concurrent regions, which then return to the End State via the Join pseudostate.
(c) Sparx Systems 2023 Page 195 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 196 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Join
Description
The Join element is used by Activity and StateMachine diagrams. The example illustrates a Join transition between
Activities. With respect to StateMachine diagrams, a Join pseudosate indicates multiple States concurrently transitioning
into the Join and onto a single State. Unlike Choice or Junction pseudostates, Joins must not have triggers or guards. This
diagram demonstrates a Fork pseudostate dividing into two concurrent Regions, which then return to the End State via
the Join.
(c) Sparx Systems 2023 Page 197 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 198 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
History
Description
There are two types of History pseudostate defined in UML: shallow and deep history. A shallow History sub-state is
used to represent the most recently active sub-state of a Composite State; this pseudostate does not recurse into this
sub-state's active configuration, should one exist. A single connector can be used to depict the default shallow History
state, in case the Composite State has never been entered.
A deep History sub-state, in contrast, reflects the most recent active configuration of the Composite State. This includes
active sub-states of all regions, and recurses into those sub-states' active sub-states, should they exist. Only one deep
history and one shallow history can exist within a composite state. You can reassign a shallow History sub-state as a
deep History sub-state using the 'Advanced' element context menu.
Toolbox icon
(c) Sparx Systems 2023 Page 199 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 200 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Initial
Description
The Initial element is used by Activity and StateMachine diagrams. In Activity diagrams, it defines the start of a flow
when an Activity is invoked. With StateMachines, the Initial element is a pseudostate used to denote the default state of a
Composite State; there can be one Initial vertex in each Region of the Composite State.
This simple example shows the start of a flow to receive an order.
See the OMG Unified Modeling Language specification, (v2.5.1, Figure 12.97, p.378.)
The activity flow is completed by a Final or Flow Final node.
Notes
· Moving a diagram generally does not affect the location of elements in Packages; if you move a diagram out of one
Package into another, all the elements in the diagram remain in the original Package
However, Initial elements are used only within one diagram, have no meaning outside that diagram, and are never
re-used in any other diagram; therefore, if you move a diagram containing these elements, they are moved to the new
parent Package with the diagram
Toolbox icon
(c) Sparx Systems 2023 Page 201 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 202 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Interaction
Description
You can use an Interaction element to insert an Interaction diagram as a child of a Class element. The Interaction element
can contain a diagram of any of these types:
· Sequence
· Communication
· Timing
An Interaction element in Enterprise Architect is treated as a behavior of the classifier it is encapsulated within. It can
have parameters and return types, which are modeled using the 'Behavior' tab of the Interaction element's 'Properties'
dialog. The element is interpreted as a method of the containing Class in the generated code (see the Generate Code
From Behavioral Model topic).
An Interaction element can also be set as the classifier for an Interaction Occurrence in a Sequence diagram, or for a Call
Behavior Action in an Activity diagram. Establishing such an association (between a behavior and a behavior call)
facilitates adding arguments that can be individually mapped to the associated behavior's parameters.
Notes
· The behavioral code generation engine expects the Sequence diagram and all its associated Messages and Combined
Fragments to be encapsulated within an Interaction element (such as setupUSB in this example)
(c) Sparx Systems 2023 Page 203 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(The IO Class is available in the EAExample model, under 'Systems Engineering Model | Implementation Model |
Software')
· The 'Interaction' icon is listed on the 'Additional' page of the 'Interaction' Toolbox, but should only be added to
elements through the element context menu on the diagram or in the Browser window
Toolbox icon
(c) Sparx Systems 2023 Page 204 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Interaction Occurrence
An Interaction Occurrence (or InteractionUse) is a reference to an existing Interaction (Sequence) diagram. Interaction
Occurrences are visually represented by a frame, with 'ref' in the frame's title space. The diagram name is indicated in the
frame contents.
To create an Interaction Occurrence, simply open a Sequence diagram (preferably contained within an Interaction
element) and drag another Sequence diagram (also preferably contained within an Interaction element) into its
workspace. A dialog displays, providing configuration options. The resulting Interaction Occurrence acts as an
invocation of the original Interaction. You use the 'Call' tab of the Properties window for the element to set up the actual
arguments of the Interaction and also to change to a different associated Interaction element.
This figure illustrates the use of an Interaction Occurrence in another Interaction (Sequence) diagram. You can display
the sequence represented by the Interaction Occurrence by double-clicking on the element.
Fill Opacity
Whilst an Interaction Occurrence usually encloses a number of other elements, there might be reasons for hiding those
elements as well as times to fully show them, or perhaps just indicate that they are there, depending on the immediate
purpose of the diagram. You can apply these nuances in the display of elements behind and covered or overlapped by an
Interaction Occurrence, by changing the opacity of the element.
Before setting the opacity, check that the element has a fill color.
You set the opacity using an icon from either of these two pop-up element toolbars:
(c) Sparx Systems 2023 Page 205 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
· Right-click on the Interaction Occurrence element and look above the context menu:
Notes
· The behavioral code generation engine expects the Sequence diagram and all its associated messages and interaction
fragments to be encapsulated within an Interaction element (such as doReadUSB in this example)
The OMG Unified Modeling Language specification, (v2.5.1, p.620) refers to an Interaction Occurrence as an
InteractionUse, and states:
An InteractionUse refers to an Interaction. The InteractionUse is a shorthand for copying the contents of the referenced
Interaction where the InteractionUse is. To be accurate the copying must take into account substituting parameters with
arguments and connect the formal Gates with the actual ones.
(c) Sparx Systems 2023 Page 206 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Description
In an Activity diagram, an Interruptible Region surrounds a group of Activity elements, all affected by certain interrupts
in such a way that all tokens passing within the region are terminated should the interruption(s) be raised. Any
processing occurring within the bounds of an Interruptible Activity Region is terminated when a flow is instigated across
an interrupt flow to an external element.
You create an Interruptible Activity Region as one variant of a Region (the other is an Expansion Region), using the
Activity pages of the Diagram Toolbox.
This example illustrates that an order cancellation kills any processing of the order at the receipt, filling or shipping
stage.
See the OMG Unified Modeling Language specification, (v2.5.1, figure 12.100, p.381.)
Toolbox icon
(c) Sparx Systems 2023 Page 207 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 208 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Junction
Description
Junction pseudostates are used to design complex transitional paths in StateMachine diagrams. A Junction can be used to
combine or merge multiple paths into a shared transition path. Alternatively, a Junction can split an incoming path into
multiple paths, similar to a Fork pseudostate. Unlike Forks or Joins, Junctions can apply guards to each incoming or
outgoing transition, such that if the guard expression is False, the transition is disabled.
This example illustrates how guards can be applied to transitions coming into or out of a Junction pseudostate.
Toolbox icon
(c) Sparx Systems 2023 Page 209 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
This type of Pseudostate is used to connect multiple Transitions into compound paths between States. For example, a
junction Pseudostate can be used to merge multiple incoming Transitions into a single outgoing Transition representing a
shared continuation path. Or, it can be used to split an incoming Transition into multiple outgoing Transition segments
with different guard Constraints.
NOTE. Such guard Constraints are evaluated before any compound transition containing this Pseudostate is executed,
which is why this is referred to as a static conditional branch.
It may happen that, for a particular compound transition, the configuration of Transition paths and guard values is such
that the compound transition is prevented from reaching a valid state configuration. In those cases, the entire compound
transition is disabled even though its Triggers are enabled. (As a way of avoiding this situation in some cases, it is
possible to associate a predefined guard denoted as “else” with at most one outgoing Transition. This Transition is
enabled if all the guards attached to the other Transitions evaluate to false). If more than one guard evaluates to true, one
of these is chosen. The algorithm for making this selection is not defined.
(c) Sparx Systems 2023 Page 210 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Lifeline
Description
A Lifeline is an individual participant in an interaction (that is, Lifelines cannot have multiplicity). A Lifeline represents
a distinct connectable element. To specify that representation within Enterprise Architect, right-click on the Lifeline and
select the 'Advanced | Instance Classifier' option. The 'Select <Item>' dialog displays, which you use to locate the
required project classifiers.
Lifelines are available in Sequence diagrams. There are different Lifeline elements for Timing diagrams (State Lifeline
and Value Lifeline); however, although the representation differs between the two diagram types, the meaning of the
Lifeline is the same.
Toolbox icon
(c) Sparx Systems 2023 Page 211 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Merge
Description
A Merge Node brings together a number of alternative flow paths in Activity, Analysis and Interaction Overview
diagrams. For example, if a Decision is used after a Fork, the two flows coming out of the Decision must be merged into
one before going to a Join; otherwise, the Join waits for both flows, only one of which arrives.
A Merge Node has multiple incoming edges and a single outgoing edge. The edges coming into and out of a Merge Node
must be either all object flows or all control flows.
Toolbox icon
(c) Sparx Systems 2023 Page 212 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Message Endpoint
Description
A Message Endpoint element defines the termination of a State or Value Lifeline in a Timing diagram. It indicates that
the Message:
· Terminates at an undefined point outside the State or Value Lifeline, having started at an identified point within the
Lifeline, or
· Originates from an undefined point outside a State or Value Lifeline, terminating at an identified point within the
Lifeline
Toolbox icon
(c) Sparx Systems 2023 Page 213 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Message Label
Description
A Message Label is an alternative way of denoting Messages between Lifelines, which is useful for 'uncluttering' Timing
diagrams strewn with messages. To indicate a Message between Lifelines, draw a connector from the source Lifeline into
a Message Label. Next, draw a connector from another Message Label to the target Lifeline. Note that the label names
must match to reflect that the message occurs between the two Message Labels.
This diagram illustrates how Message Labels are used to construct a message between Lifelines.
Toolbox icon
(c) Sparx Systems 2023 Page 214 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Note
Description
A Note element is a textual annotation that can be attached to a set of elements of any other type. The attachment is
created separately, using a Notelink connector. Both Note and Notelink are available in any Enterprise Architect
diagram, through the 'Common' pages of the Toolbox.
A Note is also called a Comment.
Note elements do not have a Properties dialog. You can give them a name in the Properties window, but this does not
display on the diagram.
You can configure Enterprise Architect to display the text in all Notes elements in italics. Select the 'Start > Appearance
> Preferences > Preferences' ribbon option and on the 'Diagram > Appearance' page select the 'Italic Note Element text'
checkbox. This has an immediate effect, as does clearing the checkbox to show the text in normal font.
Toolbox icon
(c) Sparx Systems 2023 Page 215 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Object Node
Description
An Object Node holds data that is input to or output from an Activity element. To set the type of an Object Node, click
on it and press Ctrl+L (to select an Instance Classifier). Object Nodes can be connected by Object Flow connectors; if the
Object Nodes on each end of an Object Flow are typed, their types should be compatible.
An Action Pin is a specialized form of Object Node.
(c) Sparx Systems 2023 Page 216 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Partition
Description
The Partition orientation defaults to horizontal. To turn it into a vertical Partition, right-click on it and select the
'Advanced | Vertical Partition' option.
You can neatly align and join the Activity Partitions on a diagram using the element context menu 'Dockable' option. For
Partitions, the option defaults to selected.
Whilst an Activity Partition usually contains a number of other elements, there might be reasons for hiding those
elements as well as times to fully show them, or perhaps just indicate that they are there, depending on the immediate
purpose of the diagram. You can apply these nuances in the display of the Partition contents by changing the opacity of
the element's fill color.
Before setting the opacity, give the element a fill color.
You set the opacity using an icon from either of these two pop-up element toolbars:
(c) Sparx Systems 2023 Page 217 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
· Right-click on the Activity Partition element and look above the context menu:
Toolbox icon
(c) Sparx Systems 2023 Page 218 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Receive
Description
A Receive element is used to define the acceptance or receipt of a request, in an Activity diagram. Movement from a
Receive element occurs only once receipt is fulfilled according to its specification. The Receive element comes in two
forms:
· Accept Event Action element (pennant shape)
· Accept Time Event Action element (hourglass shape)
This example reflects a payment process on an order. Upon receiving the payment (from Request Payments, a Send
element), the payment is confirmed and the flow continues to ship the order.
See the OMG Unified Modeling Language specification, (v2.5.1, figure 12.26, p.312.)
To depict an Accept Time Event, use the standard Receive element from the Toolbox. Right-click on this element, and
select the 'Advanced | Accept Time Event' option. This example shows the hourglass-shaped Accept Time Event Action:
See The OMG Unified Modeling Language specification, (v2.5.1, figure 12.27, p.312.)
Toolbox icon
(c) Sparx Systems 2023 Page 219 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Region
Description
Toolbox icon
(c) Sparx Systems 2023 Page 220 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Send
Description
The Send element is used to depict the action of sending a signal, in an Activity diagram. It is the opposite of a Receive
element. You can also create Send events using the 'Event' icon on the 'State' page of the Diagram Toolbox.
This example shows an order being processed, where a signal is sent to fill the processed order and, upon creation of the
resulting invoice, a notification is sent to the customer.
See the OMG Unified Modeling Language specification, (v2.5.1, figure 12.132, p.408.)
Toolbox icon
(c) Sparx Systems 2023 Page 221 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
State
Description
A State represents a situation where some invariant condition holds; this condition can be static (waiting for an event) or
dynamic (performing a set of activities). State modeling is usually related to Classes, and describes the enable-able states
a Class or element can be in and the transitions that enable the element to move there. There are two types of State:
Simple States and Composite States, both created from the 'State' icon from the Toolbox.
Furthermore, there are pseudostates, resembling some aspect of a State but with a pre-defined implication. Pseudostates
model complex transitional paths, and classify common StateMachine behavior.
You can define entry, internal and exit actions for a State using operations. State elements can have three operations
(entry, do and exit) that are created and defined through the 'Behavior' tab of the Features window (Start > All Windows
> Properties > Element Features > Features). The tab displays only when the selected element is a State. It automatically
lists the three operations, and you can either type a text value in the 'Name/Comment' field, or assign a behavior element
of code using the 'Behavior' page of the Properties window (see the Operation Behavior Help topic).
If a State element has features such as operations, internal triggers or inherited operations and attributes, the depiction of
the element in a diagram has a line under the element name. This line persists if the features are hidden. The line also
displays if the 'Show State Compartment' checkbox is selected on the 'Objects' page of the 'Preferences' dialog (select the
'Start > Appearance > Preferences > Preferences' ribbon option and the 'Objects' page).
Toolbox icon
(c) Sparx Systems 2023 Page 222 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Composite State
Description
Composite States are composed within the StateMachine diagram by expanding a State element, adding Regions if
applicable, and dragging further State elements, related elements and connectors within its boundaries. The internal State
elements are then referred to as Substates.
(You can also define a State element, as with many other types of element, as a composite element; this then has a
hyperlink to a child diagram that can be another StateMachine diagram or other type of diagram elsewhere in the model.)
Composite States can be orthogonal, if Regions are created. If a Composite State is orthogonal, its entry denotes that a
single Substate is concurrently active in each Region. The hierarchical nesting of Composite States, coupled with Region
use, generates a situation of multiple States concurrently active; this situation is referred to as the active State
configuration.
(c) Sparx Systems 2023 Page 223 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
exactly one Region or an orthogonal State with multiple Regions (isOrthogonal = true). (...) Any State enclosed within a
Region of a composite State is called a substate of that composite State. It is called a direct substate when it is not
contained in any other State; otherwise, it is referred to as an indirect substate.
(c) Sparx Systems 2023 Page 224 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
State/Continuation
Description
The State/Continuation element serves two different purposes for Interaction (Sequence) diagrams, as State Invariants
and Continuations. The system prompts you to identify the purpose when you create the element.
Toolbox icon
(c) Sparx Systems 2023 Page 225 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Continuation
Description
A Continuation is used in seq and alt Combined Fragments, to indicate the branches of continuation that an operand
follows. To indicate a continuation, end an operand with a Continuation, and indicate the continuation branch with a
matching Continuation (same name) preceding the Interaction Fragment.
You create a Continuation by dragging the State/Continuation element onto the diagram from the 'Interaction Elements'
page of the Toolbox.
For this Continuation example, an alt Combined Fragment has Continuations pathSucc and pathFail. These
Continuations are located within the Interaction Occurrence ConnHandler, which has subsequent events based on the
continuation.
(c) Sparx Systems 2023 Page 226 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 227 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
State Invariant
A State Invariant is a condition applied to a Lifeline, which must be fulfilled for the Lifeline to exist. You create a State
Invariant by dragging the State/Continuation element onto the diagram from the Interaction Elements page of the
Toolbox.
This diagram illustrates a State Invariant.
When a State Invariant is moved near to a Lifeline, it snaps to the center. If the sequence object is dragged left or right,
the State Invariant moves with it.
(c) Sparx Systems 2023 Page 228 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
State Lifeline
Description
A Lifeline is the path an object takes across a measure of time, as indicated by the x-axis. There are two sorts: State
Lifelines (defined here) and Value Lifelines, both used in Timing diagrams.
A State Lifeline follows discrete transitions between States, which are defined along the y-axis of the timeline. Any
transition has optional attributes of timing constraints, duration constraints and observations. An example of a State
Lifeline is shown here:
A State Lifeline consists of a set of transition points. Each transition point can be defined with these properties:
Property Description
Timing constraints Refers to the time taken for a state to change within a lifeline, or the time taken to
transmit a message (for example, t..t+3).
Timing observations Provides information on the time of a state change or sent message.
Duration constraints Pertains to a lifeline's period at a particular state. The constraint could be instigated
by a change of state within a lifeline, or that lifeline's receipt of a message.
(c) Sparx Systems 2023 Page 229 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Duration observations Indicates the interval of a lifeline at a particular state, begun from a change in state
or message receipt.
Example properties
Property Value
At Time 68 ms
Transition to Idle
Event OK
Timing observations –
Duration constraints –
Duration observations –
Toolbox icon
(c) Sparx Systems 2023 Page 230 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
StateMachine
Description
A StateMachine element is a container for groups of related State elements. You can create sections of a StateMachine
diagram, showing the organization of the inter-related State elements, and enclose each section in a StateMachine
element. You can also create Regions on a StateMachine element.
Toolbox icon
(c) Sparx Systems 2023 Page 231 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Structured Activity
Structured Activity elements are used in Activity diagrams. A Structured Activity is an activity node that can have
subordinate nodes as an independent Activity Group. You can set an option to ensure that no other Activities or their side
effects interfere with this Activity's processing (the 'Must Isolate' checkbox in the Structured Activity element 'Properties'
dialog).
Enterprise Architect provides a number of forms of Structured Activity, both basic and specialized.
Access
Ribbon Design > Diagram > Toolbox : Specify 'Activity' in the 'Find Toolbox Item' dialog
Keyboard Shortcuts
Ctrl+Shift+3 : > Specify 'Activity' in the 'Find Toolbox Item' dialog
Other You can display or hide the Diagram Toolbox by clicking on the or icons at
the left-hand end of the Caption Bar at the top of the Diagram View.
When you drag a Structured Activity icon from the Toolbox onto a diagram, a short menu displays from which you select
one of these options:
· Loop Node
· Conditional Node
· Other
The first two options specifically create a Loop Node or Conditional Node.
The 'Other' option displays the 'New Structured Activity' dialog, on which you can select to create one of five types of
Structured Activity element.
Type Description
Simple Composite Activity Generates a Composite Activity element with a child Activity diagram.
Loop Node Represents a sequence of Actions and Activities that are to be repeated within the
object.
Conditional Node Represents an arrangement of Actions and Activities where choice determines
which Activities are performed.
Structured Activity Node Represents an ordered arrangement of executable Activity nodes (Actions,
Decisions, Merges and so on) that can include branched and nested nodes; this is
(c) Sparx Systems 2023 Page 232 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
the base element from which the other types of Structured Activity are derived.
Notes
· To protect the processing of a Loop or Conditional Node Structured Activity from interference from other Activities
or their side effects, open the Properties window and select the 'Must Isolate' checkbox on the 'Loop' or 'Condition'
tab
Toolbox icon
(c) Sparx Systems 2023 Page 233 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Structured Node
On a diagram, Structured Activity Nodes have broken borders, as shown.
You can nest other elements underneath the Structured Node, including other Structured Activity elements such as
Conditional, Loop and other Structured Node elements.
(c) Sparx Systems 2023 Page 234 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Sequential Node
On a diagram, Sequential Activity Nodes have broken borders, and can contain nested elements that define a sequence of
actions.
Sequential Nodes are flagged as composite elements in the context menu ('New Child Diagram | Composite'); however,
when you add the child diagram the element converts to a simple composite Activity.
(c) Sparx Systems 2023 Page 235 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Loop Node
A Loop Structured Activity Node is used for defining a loop, and is commonly associated with ‘While’, ‘Repeat’ or ‘For’
loop statements.
Each Loop Node has three partitions:
· Setup commonly initiates variables to be used in the loop's exit-condition; it is executed once on entry to the loop
· Test defines the loop exit-condition
· Body can contain Actions to be executed repeatedly until the Test produces a false value
The results of the final execution of the Test or Body are available after execution of the Loop is complete.
You define the Loop nodes by dragging Action elements from the Diagram Toolbox page into the 'Setup', 'Test' and
'Body' partitions. The 'Body' partition can contain several Actions, which can be linked and organized into the required
structure. The elements are aligned on the top left of the partition, so that resizing the node maintains the organization of
the structure within and between the partitions. If you try to shrink the node below the structure size, the node
automatically defaults to the 'best fit' size.
(c) Sparx Systems 2023 Page 236 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Action
1 From the Activity page of the Diagram Toolbox, drag a Structured Activity icon onto the Activity
diagram.
A short menu displays.
3 Complete as many of the common element Properties fields as required, then close the 'Properties' dialog.
4 Display the Properties window ('Start > Application > Design > Properties') for the Loop Node, and click
on the 'Loop' tab. Set these checkboxes as required:
(c) Sparx Systems 2023 Page 237 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
· 'Must Isolate' - defines concurrency: if selected, no object within the node can be used outside it; the
objects are isolated from parallel use
· 'Tested First' - defines the loop type; select for a For / While loop, deselect for a Repeat Until loop
5
For each of these fields, click on the or Add button as appropriate, to display the 'Select Pins' dialog
and select an Action Pin:
· Decider (an Output Pin within the 'Test' partition, the value of which is examined after execution of
the Test to determine whether to execute the loop Body)
· Loop Variable Input
· Loop Variable
· Body Output and
· Result
The 'Select Pins' dialog lists only Input Pins for the 'Loop Variable Input' field and only Output Pins for
the other fields.
If the required Action Pin does not already exist, you can click on the Add New button on the dialog to
automatically create the Input pin or an Output pin for the node.
6 In the 'Nodes' panel, click on one of the 'Setup', 'Test' or 'Body' radio buttons to list the Actions and
Activities contained in the corresponding partition of the Loop Node.
An element must be completely below the top edge of a partition to be listed for that partition - if it
overlaps with the partition above in any way, it is treated as being part of that partition.
8 Right-click on the Node in the diagram and select the 'Features | Interaction Points' option.
The Features window displays, showing the 'Interaction Points' tab.
Select the checkbox against each Interaction Point.
The Action pins should now be visible in the diagram, attached to the Node.
Notes
· You can check on the exact location of an existing Action Pin by right-clicking on the pin name in the Loop Node's
Properties window and selecting the 'Find in Project Browser' option; the location of the Action Pin in the Browser
window is expanded and highlighted
(c) Sparx Systems 2023 Page 238 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
if it eventually executes as part of a later execution of the section that contains it.
(c) Sparx Systems 2023 Page 239 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Conditional Node
A Conditional Structured Activity Node is the modeling equivalent of an 'If-Then-Else' programming construct. At its
simplest, it consists of a Clause containing:
· A Test partition that evaluates a condition, and
· A Body partition that performs one or more actions if the Test condition is satisfied
You can have more than one Clause, so that if the Test condition is not satisfied its Body is ignored and processing
moves to the next Clause and evaluates another Test condition.
Each Clause has a 'Decider' ActionPin to hold the result of the Test, and a 'Body Output' ActionPin to hold the result of
the Body's actions (if executed). The Conditional Node itself has a result ActionPin that makes available the overall
result of the Node (the output of the first Body to be executed).
The representation of a Conditional Node on an Activity diagram resembles this:
You define Conditional Nodes by dragging other Activity diagram elements from the Toolbox page into the appropriate
partition of the element, and linking and organizing the structure as required. The elements are aligned on the top left of
the partition, so that resizing the node maintains the organization of the structure within and between the partitions. If
you try to shrink the node below the structure size, the node automatically defaults to the 'best fit' size.
When you create a Conditional Node, the 'Properties' dialog displays. Much of this you can complete as for any other
element. However, for the Conditional Node you also display the Properties window, which has an additional 'Condition'
tab.
On this tab, in the 'Result' panel, add an Action Pin to hold the result for the node, clicking on the Add button to display
the 'Select Pins' dialog.
A Conditional Node automatically contains one Clause containing a Test partition and a Body partition, and a Decider
Pin and Body Output Pin. You can add further Clauses as required. For each Clause you add an Action Pin for the
Decider and for the Body Output. Click on the Save button to save the Clause definition.
The 'Select Pin' dialog reveals only Output pins as appropriate to the context. If the required Action Pin does not already
exist, you can click on the Add New button on the dialog to automatically create an Output pin under the appropriate
parent node.
For the 'Result' and 'Body Output' entries, you can check on the exact location of each Action Pin by right-clicking on the
entry and selecting the 'Find in Project Browser' option.
The 'Nodes' panel, by default, lists the Actions and Activities contained in the Test partition. Click on the 'Body' radio
button to list the elements contained in the Body partition. An element must be completely contained in the Body
partition to be listed there - if it overlaps with the Test partition in any way, it is treated as being part of the Test
partition.
To add another Clause, click on the Add button underneath the 'Clause(s)' list. This inserts a new Clause in the list, and
identifies which is the preceding (Predecessor) Clause and (if appropriate) which is the following (Successor) Clause.
The remaining fields in the 'Clause(s)' panel are cleared so that you can add Decider and Body Output Action Pins. New
'Test' and 'Body' partitions are immediately added to the element on the diagram, and you can populate these partitions
with Activity elements, which are then identified in the 'Nodes' panel.
(c) Sparx Systems 2023 Page 240 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
To remove a Clause, highlight it in the list and click on the Delete button. This immediately removes the Clause's
corresponding partitions from the diagram, along with all their contained Activity elements. Removing a Clause from
between two other Clauses adjusts the numerical order; for example, if Clause 2 is removed from between Clause 1 and
Clause 3, Clause 3 is renamed as Clause 2, and any further Clauses are also moved up one place.
(c) Sparx Systems 2023 Page 241 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Synch
Description
A Synch state is useful for indicating that concurrent paths of a StateMachine are synchronized. They are used to split
and rejoin periods of parallel processing. After bringing the paths to a synch state, the emerging transition indicates
unison.
Toolbox icon
(c) Sparx Systems 2023 Page 242 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
System Boundary
Description
A System Boundary element is a non-UML element used to define conceptual boundaries. You can use System
Boundaries to help group logically related elements (from a visual perspective, not as part of the UML model).
In the OMG Unified Modeling Language specification, (v2.5.1), System Boundaries are described in the sections on Use
Cases, because the System Boundary is often used to indicate the application of a Use Case to another entity. In this
context, the System Boundary:
· Encloses the Use Case, and
· Is associated with a classifier such as a Class, Component or Subsystem (Actor) through the 'Select <Item>' dialog
By associating the System Boundary - and not the Use Case - with the classifier, the classifier is linked to the Use Case
as a user, but not as an owner.
You can also define a Use Case as the classifier of a System Boundary element, to link the elements enclosed in the
System Boundary (such as parts of an Activity diagram) to their representation in a logical Use Case.
The element properties for a System Boundary element comprise the name, the border style, and the number of
horizontal or vertical swim lanes. You can also change the overall shape of the System Boundary, which includes an
option to add dividing lines to the element other than by using the swimlanes, and you can make the element fully
opaque, fully transparent or various degrees of opacity in between.
A System Boundary element can be marked as 'Selectable', using the element's context menu. When the element is not
selectable, you can click on the other elements within the System Boundary space without activating or selecting the
System Boundary itself.
Toolbox icon
Notes
(c) Sparx Systems 2023 Page 243 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
· A System Boundary is the basis for the Image element, which enables you to add icons or backgrounds to a diagram,
automatically displaying the Image Manager window from which to select the appropriate image
· A System Boundary is not the same as the Boundary element used to capture user interactions in, for example,
Analysis diagrams
(c) Sparx Systems 2023 Page 244 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Access
Option Action
Name (Optional) Type a name for the element. (This field does not appear on the
'Boundary' tab of the Properties window).
Shape Click on the drop-down arrow and select from these options:
· 'Rectangle' - if you have previously switched from the default rectangular
border with sharp corners, return to that default
· 'Rounded Rectangle' - set the shape to a rectangle with rounded corners
· 'Ellipse' - set the shape to a circle or oval to accommodate the enclosed
elements
· 'User Defined - Orthogonal' - enable setting drag-points on the border to create
a custom orthogonal (block) shape (see the Customize System Boundary -
Orthagonal/Freeform section)
· 'User Defined - Freeform' - enable setting drag-points on the border to create a
custom freeform shape (see the Customize System Boundary -
Orthagonal/Freeform section)
· 'User Defined - Custom Grid' - enable adding vertical and horizontal lines to
the Boundary or to a cell of the Boundary (see the Customize System Boundary
- Custom Grid section); this style disables the use of Swimlanes in the
Boundary element
Style Click on the drop-down arrow and select from these options:
· Solid - a solid line border with the system default element fill color
· Dotted - a dotted line border with no element fill color
· Dashed - a broken line border with no element fill color
· Solid - No Fill - a solid line border with no element fill color (this setting is
blocks the fill opacity of the element; see the Fill Opacity section)
(c) Sparx Systems 2023 Page 245 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Horizontal Swim Lanes Type in the number of horizontal segments you want to divide the element into, to
group the elements in the System Boundary in horizontal contexts (for example,
Client, Application and Database tiers could be represented in swim lanes).
The field defaults to 1. Leave it on this setting if you intend to use the custom grid.
The swim lanes are equal divisions of the System Boundary - you cannot change
their relative heights.
Vertical Swim Lanes Type in the number of vertical segments you want to divide the element into, to
group the elements in the System Boundary in vertical contexts (for example, Start,
Progress and Terminate segments).
The field defaults to '1'. Leave it on this setting if you intend to use the custom grid.
The swim lanes are equal divisions of the System Boundary - you cannot change
their relative widths.
Instance Classifier (On the Properties window.) Shows the classifier for the Boundary. If one has not
been specified, or you want to change it, click on the icon and locate and
select the required Classifier using the 'Select Element' dialog. The Features
window also displays.
Multiplicity (On the Properties window.) Shows the number of instances of the element that can
exist in a set; if there is no figure set or you want to change it, click on the
drop-down arrow and select an appropriate value.
When you have selected one of the 'User Defined' options in the 'Shape' field, you can add way-points to the sides of the
System Boundary, to drag in a direction to create a new shape. This helps you to create irregular shapes that enclose
dispersed elements that cannot be captured in a simple rectangle or ellipse.
The 'Orthogonal' variant helps you to create shapes with vertical and horizontal lines, whilst the 'Freeform' variant helps
you to create diagonal lines.
To set a way-point on an edge:
· Press Shift+click, Ctrl+click or Ctrl+Q on the appropriate point on the edge
To clear a way-point:
· Press Shift+click, Ctrl+click or Ctrl+Q on it
To move a way-point:
· Click on the boundary to display all way-points, position the cursor on the required way-point so that it changes to
green, and then click and drag the way-point; when you move the cursor onto the border, the way-points on either
side of the cursor turn green and you can click and drag that segment of the border
If you create a 'Freeform' shape and then change the 'Shape' setting to 'User Defined - Orthogonal', the system converts
all diagonal lines to vertical or horizontal lines. You might then have to adjust the shape so that it has fewer lines. If you
try to drag an orthogonal way-point in a diagonal direction, the horizontal and vertical lines adjust to maintain a
right-angle at the cursor position.
When you select this option, you are able to draw horizontal and vertical lines within the Boundary, using the same style
(c) Sparx Systems 2023 Page 246 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
as you have set for the Boundary borders. Note that this option is an alternative to using swimlanes - you don't use both
options together, and the swimlane options are disabled.
The custom lines link existing lines, so if you have a Boundary with no divisions you can draw a line between the
borders of the element (as for the vertical line in the illustration), but if you have already added cells you can draw a line
between the vertical or horizontal borders of a cell (as for the two horizontal lines in the illustration). This helps you to
add further non-regular groupings of elements within the Boundary, to create an effect such as appears in a Business
Model Canvas. Just as you can drag elements between swimlanes, you can also drag elements between custom cells.
To add custom cells to the Boundary element:
1. Select the 'User Defined - Custom Grid' option.
2. Return to the diagram.
3. Press the Shift key and hold the left mouse button down as you drag the cursor across or up the Boundary element. A
dotted guideline displays to show where the line will be created.
4. When the line is roughly where you want it, release the mouse button. The line becomes solid.
You can move the line by hovering the cursor over it so that a small double-headed arrow displays, then holding the left
mouse button down and moving the mouse as required. Abutting lines will extend or retract to maintain the join.
To delete a line, right-click on it and select the 'Delete Region' context menu option. This is very similar to merging cells
in a table. The system highlights the region bounded by the line and prompts you to confirm the deletion. Click on the
Yes button. Any abutting lines will extend to the next perpendicular line.
If you resize the Boundary element, all the cells are resized proportionately. However, if you simply want to create more
room for adding more cells and do not necessarily want to change the size of existing cells internal to the Boundary,
press and hold the Shift key while you resize the element. Only those lines that attach to the border are extended; the
internal cells maintain their size.
Fill Opacity
Whilst a Boundary usually encloses a number of other elements, there might be reasons for hiding those elements as
well as times to fully show them, or perhaps just indicate that they are there, depending on the immediate purpose of the
diagram. You can apply these nuances in the display of elements behind and covered or overlapped by a Boundary by
changing the opacity of the element.
Before setting the opacity, check that the element has a fill color and that the 'Style' option in the Boundary 'Properties'
dialog or Properties window 'Boundary' tab is set to a value other than 'Solid - No Fill'.
(c) Sparx Systems 2023 Page 247 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
You set the opacity using an icon from either of these two pop-up element toolbars:
· Right-click on the Boundary element and look above the context menu:
Example Shapes
(c) Sparx Systems 2023 Page 248 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Notes
· Diagram-specific options for Boundaries (shape, border style, swimlane count) are locked if the diagram is locked or
if the user does not have access permissions to update diagrams; the 'Name' field can be updated
· The Boundary element 'Name' field is locked if the element is locked or the user does not have access permissions to
update elements; the other fields can be changed
(c) Sparx Systems 2023 Page 249 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Terminate
Description
The Terminate pseudostate indicates that upon entry of its pseudostate, the StateMachine's execution ends.
Toolbox icon
(c) Sparx Systems 2023 Page 250 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Trigger
Description
A Trigger indicates an event that initiates an action (and might arise from completion of a previous action). You initially
define a Trigger in one of four ways:
· As a property of a Transition relationship
· As a property of an Accept Event Action (on the 'Triggers' tab of the element 'Properties' dialog)
· As an event in a StateMachine Table
· Directly, as a Trigger element, through the 'New Element' dialog or Diagram Toolbox ('State Additional' page)
When you save the Trigger, it is added to the list of elements for the parent Package in the Browser window. You can
then click on it and press Ctrl+2 to display the Properties window for the element, to view and, if required, edit its
properties as an element rather than as a property itself. Triggers created as events remain as Event elements, whilst
Triggers created in other ways are Trigger elements, with a 'Trigger' tab in the Properties window.
Field Action
Specification
Either type in the event instigating the Trigger, or click on the button and
select the event (depending on the Type value).
Ports Click on the Add button and select the appropriate Port from the 'Select Port'
dialog.
· To create new Ports using the 'Select Port' dialog, the Trigger should be created
as child of a Class or Component element
· To add several Ports at once, press Ctrl as you select each Port
· To check the exact location of a Port, right-click on the Port name and select
the 'Find in Project Browser' option
Notes
· You can also drag an existing Trigger element onto another diagram, although there are limited uses for the element
in that context
· This element is not the same as a Trigger Operation, which is an operation automatically executed as a result of the
(c) Sparx Systems 2023 Page 251 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Toolbox icon
(c) Sparx Systems 2023 Page 252 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Use Case
Description
A Use Case is a UML modeling element that describes how a user of the proposed system interacts with the system to
perform a discrete unit of work. It describes and signifies a single interaction over time that has meaning for the end user
(person, machine or other system), and is required to leave the system in a complete state: the interaction either
completed or rolled back to the initial state. A Use Case:
· Typically has requirements and constraints that describe the essential features and rules under which it operates
· Can have an associated Sequence diagram illustrating behavior over time; who does what to whom, and when
· Typically has scenarios associated with it that describe the workflow over time that produces the end result;
alternative workflows (for example, to capture exceptions) are also enabled
If extending a Use Case, you can specify the points of extension with Use Case Extension Points. To display the
attributes, operations or constraints of a Use Case on a diagram, use Rectangle Notation.
Enterprise Architect also provides two stereotyped Use Cases: the Test Case and the Business Use Case.
Toolbox icon
(c) Sparx Systems 2023 Page 253 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 254 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Access
Context Menu On diagram | Right-click on extended Use Case element | Advanced | Edit
Extension Points
Field/Button Action
Defined Extension Points Lists the extension points currently defined for the selected Use Case.
Add Click on this button to display a prompt for the name of a new extension point.
Type the name and click on the OK button. The name is added to the Defined
Extension Points list.
Edit Click on an existing extension point and click on this button to display a prompt for
changes to the name of the selected extension point.
Overtype the name and click on the OK button. The name is updated in the Defined
Extension Points list.
Remove Click on an existing extension point and click on this button to immediately remove
the name from the Defined Extension Points list.
OK Click on this button to save all changes to the extension points, and to close the
dialog.
The extension points you have defined are represented on the Use Case element in
the diagram as shown.
(c) Sparx Systems 2023 Page 255 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 256 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Value Lifeline
Description
A Lifeline is the path an object takes across a measure of time, indicated by the x-axis. There are two sorts: Value
Lifelines (defined here) and State Lifelines, both used in Timing diagrams.
A Value Lifeline shows the Lifeline's state across the diagram, with parallel lines indicating a steady state. A cross
between the lines indicates a transition or change in state.
This is an example of a Value Lifeline:
See the OMG Unified Modeling Language specification, (v2.5.1, Figure 14.30, p.520.)
A Value Lifeline consists of a set of transition points. Each transition point can be defined with these properties:
Property Description
Timing constraints Refers to the time taken for a state to change within a Lifeline, or the time taken to
transmit a message.
Timing observations Provides information on the time of a state change or sent message.
Duration constraints Pertains to a Lifeline's period at a particular state. The constraint could be instigated
by a change of state within a Lifeline, or that Lifeline's receipt of a message.
Duration observations Indicates the interval of a Lifeline at a particular state, begun from a change in state
or message receipt.
(c) Sparx Systems 2023 Page 257 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Example properties
In the example diagram, the 10ms transition point has these properties:
Property Text
At Time 10ms
Transition to Waitcard
Event Switch
Timing constraints –
Timing observations –
Duration observations –
Toolbox icon
(c) Sparx Systems 2023 Page 258 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 259 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Artifact
An Artifact is any physical piece of information used or produced by a system. In Enterprise Architect an Artifact is
represented by an Artifact element, which can have one of a number of stereotypes to tailor it to a specific purpose,
including internal operations and structures within the model, as indicated in the examples. Artifacts can have associated
properties or operations, and can be instantiated or associated with other Artifacts according to the object they represent.
You can create an Artifact element by dragging one of the 'Artifact' icons from one of several Diagram Toolbox pages
according to type. The 'Common Elements' page of the Toolbox has a generic 'Artifact' icon that - when you drag it onto
a diagram - offers a choice of types of Artifact to create.
Types of Artifact
Type Description
(Base) Artifact A Base Artifact defines the external artifacts used in a process and the internal
artifacts generated in the process, such as model files, source files, database tables,
development deliverables or support documents. The files represented by the
Artifact are listed on the 'Files' tab of the Properties window for the element.
To open the files represented by the Artifact, click on the element on the diagram
and press Ctrl+E. Each file is opened either on a separate tab in the Diagram View
workspace (if the file can be opened within Enterprise Architect) or in the default
Windows viewer/editor for the file type (if the file cannot be opened within
Enterprise Architect).
Files can also be launched individually from the 'Files' tab (opening in the Windows
default editor), as for elements of any other type that have associated files.
Document Artifact A Document Artifact is an Artifact having a stereotype of «document». You create
(c) Sparx Systems 2023 Page 260 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Checklist Artifact A Checklist Artifact provides the facility for generating a list of items, each with a
checkbox, to be used as a checklist. You can set each checkbox to default to being
selected or unselected, and set all selected options to be grayed out or struck
through, so that the unselected options are more prominent. The end users can then
work with the element to tick off items that have been obtained or activities that
have been completed.
A version of this Artifact - the Requirements Checklist - is available in the
'Extended Requirements' Toolbox page. This automatically contains ten
characteristics of a good Requirement, for a Requirement author to tick off as they
check that their Requirement has been set up to show those characteristics.
Audited Checklist Artifact This Artifact is identical to the Checklist Artifact, except that it has an associated
'Audit Log' page that identifies any changes made to the checklist, when those
changes were made, who made them and what the changes were. This is a very
useful Project Management tool, adding tracking and accountability to the use of
checklists.
Encrypted Document An Encrypted Document Artifact is used to create and hold a Linked Document that
Artifact is automatically encrypted, and that cannot be opened and automatically decrypted
within Enterprise Architect without entering a password. You can therefore use the
generated Artifact element to record sensitive information, which you protect from
general access by assigning a password.
When you drag the 'Encrypted Document' icon onto the diagram from the
'Documents' page of the Toolbox, a prompt displays to type in a password. When
you enter this password, you can create the Linked Document. Thereafter, when
any user attempts to open the document, the same password prompt displays. If the
user does not provide the password that you originally specified, the document will
not open, whilst if the correct password is provided the document is decrypted and
opened, and the text can be viewed and edited.
You cannot change the password, nor can you delete the Linked Document from
the Artifact (although you can delete the Artifact itself).
Other facilities that display 'normal' Linked Documents - such as the Document
window or report generator - will ignore an encrypted document.
The Encrypted Document is indicated in the Toolbox page, diagram and Browser
window by a red 'document' icon - .
(c) Sparx Systems 2023 Page 261 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
User Story A User Story Artifact provides a means of documenting a business Use Case in the
context of Agile methodologies such as Extreme Programming (XP). In the Linked
Document, you define the functions a business system must provide; it captures the
'who', 'what' and 'why' of a requirement in a simple, concise format. The User Story
Artifact behaves as a Document Artifact, prompting you to select a Linked
Document template to base the document on.
Working Set Artifact A Working Set Artifact defines a Working Set that opens various windows,
diagrams and views, recreating a work environment that you frequently use.
· To create or modify the Working Set, right-click on the element and select the
'Edit Working Set' option
· To execute the Working Set to open the defined windows and views and
execute any commands, double-click on the element
Custom Table Artifact A Custom Table Artifact generates a diagram object that displays custom data in a
grid format similar to a spreadsheet, providing extra 'non-modeled' information on
elements, diagrams or project management exactly where it is applicable.
Standard Chart A Standard Chart Artifact provides the facilities for generating a Pie Chart or Bar
Chart on an aspect of the data in your model. It adds three 'Chart Details' tabs to the
standard tabs of the element 'Properties' dialog.
After you have added the element to your diagram, double-click on it. The element
'Properties' dialog automatically opens at the 'Chart Details - Source' tab. Define the
chart type and data source, then go on to define any filters you want to apply, and
how the chart should display.
Once you have defined the chart, it automatically displays with the latest
information whenever you open the parent diagram.
Time Series Chart A Time Series Chart Artifact provides the facilities for generating a linear graph of
a model property over time.
After you have added the element to your diagram, double-click on it. The element
'Properties' dialog automatically opens at the 'Chart Details - Source' tab. Define the
Package from which the data is to be extracted, and the time interval over which the
data is to be sampled. Then go on to define the appearance of the chart.
Once you have defined the chart, it automatically displays with the latest
information whenever you open the parent diagram.
Model View A Model View Artifact provides the facilities for generating a tabular Model View
Chart on a segment of the data in your model, extracted using a custom SQL search.
After you have added the element to your diagram, double-click on it. The element
'Properties' dialog automatically opens at the 'Chart Details - Source' tab. Define the
SQL Search to extract and tabulate the information.
Once you have defined the chart, it automatically displays with the latest
information whenever you open the parent diagram.
Report Specification A Report Specification Artifact encapsulates a report definition. When you have
created the element on the diagram, you double-click on it to display the 'Generate
Documentation' dialog, on which you enter the report parameters and generate the
report.
After you create the Report Specification, each time you double-click on the
Artifact element the 'Generate Documentation' dialog again displays with the same
report parameters. You can continue to generate the same report, or alter the
parameters if necessary. If you change the parameters, they are re-presented until
such time as you change them again,
(c) Sparx Systems 2023 Page 262 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Executable StateMachine An Executable StateMachine Artifact is the vehicle through which you can
generate, build (compile) and execute - via simulation - code for a StateMachine or
complex of StateMachines.
Each StateMachine is the child of a Class element; when you drag the Class from
the Browser window onto the Artifact element, it is pasted inside the Artifact as a
Part. You can paste several Classes - and, therefore, Parts - into a single Artifact.
Having set up the Executable StateMachine Artifact, you use simple context menu
options on the Artifact to perform the code generation, build and execution
operations on all StateMachines bound within the Artifact.
Business Process The Business Process Simulation Artifact appears in the 'Simulation' page of the
Simulation Toolbox when the BPSim Simulation Engine has been installed and registered on
your system. You use the Artifact as a container for - and an access point to - a
Business Process Simulation Configuration, which defines what business process
model to simulate and what parameters to apply during the simulation.
Right-click on the element and select the 'Configure BPSim' context menu option.
The Configure BPSim window displays.
BPSim Result Chart The BPSim Result Chart and BPSim Custom Result Chart Artifacts appear in the
'Charts' page of the Toolbox when the BPSim Simulation Engine has been installed
and registered on your system. These Artifacts generate Charts that reflect selected
results from BPSim Simulations:
· BPSim Result Chart - generates a Chart that reflects selected results from a
series of standard BPSim Simulations
· BPSim Custom Result Chart - generates a Chart that reflects results from a
series of customized BPSim Simulations
As for other Chart Artifacts, both BPSim Chart types can be quickly configured to
display the Simulation results in variations of a Line Chart, two-dimensional Bar
Chart or 3-dimensional Bar Chart. The results that both Artifacts operate on are
captured in Results Artifacts that are automatically generated during a Business
Process Simulation.
SysMLSim Configuration This Artifact provides access to the Configure SysML Simulation Window, and
contains a specific SysML simulation configuration. To access the Configure
SysML Simulation Window, double-click on the Artifact or right-click and select
the 'Show SysML Configuration' option.
Image Asset Image Assets are model elements that are used to store images in the model. You
can create them by dragging the 'Image Asset' icon onto a diagram and choosing an
image file, or by dragging an image file from your file system straight onto a
diagram. Enterprise Architect creates an Image Asset Artifact, then stores the image
from the file in the Artifact as the 'owned image'. The element can display on the
diagram either as the image or as a rectangular element; to toggle between them,
(c) Sparx Systems 2023 Page 263 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
right-click on the object and click on the 'Show Owned Image' option.
When the Artifact is displaying as an image, you can double-click on it to display
the element 'Properties' dialog. If the Artifact is displaying in element format,
double-clicking on it will open the image in the default external viewer for images.
An Image Asset image can be used in model documentation in the same way as for
an image from the Image Manager, by inserting a hyperlink to the Image Asset
element. As you create the hyperlink, you are prompted to select the type of object
to link to; click on 'Element Image' and select the appropriate Image Asset element
from the list. If you Ctrl+click on the hyperlink, the image is displayed in the
default external viewer for images. When a report is generated, the hyperlinked
Image Asset element is rendered using its 'owned image'.
Reading List The Reading List Artifact provides a list of elements that contain information of
particular significance to a task or process. The intention is for the information from
each element to be displayed in the Document window, in the sequence in which
the elements are organized in the Reading List. The Document window provides
'Next' and 'Previous' options to move through the elements.
(c) Sparx Systems 2023 Page 264 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Action
1 Locate the file in a file list (such as Windows Explorer) or on your Desktop. Drag the file onto your
diagram.
A context menu displays.
Notes
(c) Sparx Systems 2023 Page 265 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
You can also display items in a flat list or a numbered or bulleted list, which helps if you do not necessarily want to
check-off the items as you work through the list. If it does become necessary to select such items, you can do so through
the 'Checklist Items' dialog.
You can re-use the checkboxes as well - the context menus for individual elements in a diagram, multiple elements in a
diagram, and the diagram itself all have options for clearing the checkboxes so that the Checklists are ready to use again
to restart a process.
When all the items on a Checklist have been selected, a green arrow displays in the bottom right corner of the element to
indicate that the Checklist has been completed.
The Audited Checklist is an extension of the Checklist Artifact, having an associated 'Audit Records' page. It is a useful
tool for Project Management, providing the facility to monitor accountability and track completion of tasks.
You can have a sequence of Checklists that must be completed in order - the first Checklist in the sequence must be
complete before any checkboxes on the next Checklist are enabled for selection. This order of completion is established
by creating Dependency connectors between the Checklist elements.
· The target Checklist element of the Dependency becomes a prerequisite, and the source Checklist becomes a
dependent
· All items on the prerequisite Checklist must be selected before any items on the dependent Checklist can be selected
· A prerequisite Checklist cannot have items deselected whilst the dependent Checklist has items selected
· Clearing a prerequisite Checklist will also clear any dependent Checklists (as they cannot have selected items whilst
the prerequisite Checklist is clear)
· New items can be added to a prerequisite Checklist, but only if they are set to selected before saving (for the first
new item a warning message displays; thereafter the new items are automatically set to selected)
· Clearing a Checklist and its dependents will affect all Checklists in the hierarchy even if they are external to the
(c) Sparx Systems 2023 Page 266 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
You create an empty Checklist element by dragging the 'Checklist' icon onto a diagram from the 'Governance' page of the
Diagram Toolbox. The 'Governance' page is always present, at the bottom of every Toolbox.
You can also create a ready-to-use Requirements Checklist with appropriate items already in place, by selecting the
'Requirements Checklist' icon from the 'Extended Requirements' page of the Diagram Toolbox (select one of the search
facilities in the Toolbox header and specify 'Requirements').
Set up a Checklist
To populate a Checklist element with items, double-click on the Checklist element in the diagram. The 'Checklist items'
dialog displays, with the cursor in the field at the top of the dialog ready to receive the first item name.
Simply type in the item name, then press the Enter key to display and move to the next item entry field.
To the left of each item is a checkbox. If you want the item to default to selected when the element is used, click on the
checkbox here.
At the bottom of the dialog are three fields:
· Display - either accept the default of '<None>' for a simple list, or click on the drop down arrow and select for the
checklist items to follow on from checkboxes, bullets or numbers
· Check Style - click on the drop-down arrow and select whether to apply no style to items with a selected checkbox
('<None>') or to display the 'checked off' items with a line through them ('Strikeout') or in pale gray ('Grayed')
· Spacing - either accept the default of single spacing between items, or click on the drop-down arrow and select a
larger spacing between the items; the line spacing within an item remains at single spacing
You can also change the spacing using the 'Checklist Spacing' option on the element context list
When you have finished setting up the Checklist, click on the Close button.
Edit a Checklist
(c) Sparx Systems 2023 Page 267 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
To change the text, selection status or sequence of items in a Checklist element, double-click on the element to display
the 'Checklist Items' dialog and click on the item to change. To:
· Change the text of the item, simply click again and type over the current text (or right-click and select the 'Edit item'
option)
· Delete the item, right-click on it and select the 'Delete item' option
· Toggle the status of the checkbox, click on the checkbox (or right-click and select the 'Toggle item check' option)
· Move the item to a different position in the sequence of items, right-click and select either the 'Move item up' or
'Move item down' option
· Change the display format to simple list, checkboxes, bullets or numbers, click on the drop-down arrow in the
'Display' field and select the appropriate option
· Change the selected item style for all items in the checklist, click on the 'Check Style' drop-down arrow and select
the appropriate option
· Change the item spacing, click on the drop-down arrow in the 'Spacing' field and select the appropriate line spacing
Click on the Close button to save your changes and close the dialog.
To make a Checklist available to other users, create it on a diagram that the users can access directly. Alternatively, save
the diagram as a Pattern that the users can draw on as the basis for creating their own Checklist diagrams.
To record, on a Checklist element with a checkbox, the completion of an action or the presence of an object, simply click
on the appropriate checkbox to select it.
If you need to clear a checkbox, or several checkboxes, you can either:
· Click on each checkbox again, or
· Right-click on the Checklist element and select the 'Clear Checklist' option (all checkboxes in that element), or
· Select a number of Checklist elements, right-click on one of them and select the 'Clear Checklist' option (all
checkboxes in all selected elements), or
· Right-click on the diagram background and select the 'Clear all Checklists' option (all checkboxes in all checklists
on the diagram)
You can re-use the cleared Checklist for another step, stage or process.
If you have selected to display a simple, bulleted or numbered list, and you want to temporarily strike off items in the
list, you can do so in the 'Checklist Items' dialog by selecting the checkbox against each item.
You can also use the element context menu to change the separation of items on the Checklist you are viewing;
right-click on the element and select the line spacing you prefer.
You can set up an Audited Checklist and other workers can make use of it, both in exactly the same way as for a
Checklist. However, there is an additional context menu option - 'View audit log' - that displays an 'Audit records' page
for the Audited Checklist. This 'Audit records' page is generated only for Audit Checklists, created using the 'Artifacts'
toolbox page.
(c) Sparx Systems 2023 Page 268 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
This page shows each change made to the checklist, the date and time of the change, who made the change, the type of
change and what the change is. As shown, the changes include those made in creating or updating the checklist and the
changes made by users selecting or clearing the checkboxes, including:
· Adding Checklist items (which also records the state they were set in)
· Deleting items
· Re-setting the state of each item
· Completing a Checklist
· De-selecting an item on a completed Checklist
· Making a Checklist a pre-requisite or dependent of another Checklist
· Renaming a pre-requisite or dependent Checklist
· Making a Checklist no longer the pre-requisite or dependent of another Checklist
Changes committed at the same time (such as when you click on an OK button) have one time stamp, as illustrated by the
'Add' changes in the audit log image.
If necessary, you can export the total contents of the 'Audit Records' page to a .csv file. To do this:
1. Click on the Export button; the 'Export List' dialog displays.
2. Browse for and select the appropriate directory in which to store the file.
3. Enter a filename for the file, and click on the Save button.
The file is saved and can then be opened in any external spreadsheet application, such as Excel.
Notes
· Unlike many other Artifact elements, Checklists can have a Priority of High, Medium or Low, set in the element
'Properties' dialog; this is useful for making sure a Checklist in a process is flagged as being of importance, such as
in a Kanban diagram
(c) Sparx Systems 2023 Page 269 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Task Action
Create the Artifact Drag the 'Reading List' icon onto the diagram from the 'Documents' page of the
Diagram Toolbox. Double-click on the element to display the 'Properties' dialog
and give the element a name; perhaps identifying the subject of the reading list.
Create the Reading List In the Browser window, identify the elements containing the required information
and drag each one onto the Reading List Artifact element. The element names are
displayed on the Artifact, in the sequence in which they are added to the Artifact.
The element names are attributes of the Artifact. If you want to change the
sequence in which they are listed:
1. Click on the Artifact and press Ctrl+5. The Features window displays, showing
the 'Attributes' page.
2. Right-click on the attribute to move, and select either the 'Move Up' option or
the 'Move Down' option. The attribute moves one space up or down the list for
each click.
To read the information identified by a Reading List icon, you can either:
· Right-click on the Artifact and select the 'Show Reading List' option to display the 'Dynamic Document' view, or
· Display the 'Dynamic Document' view (Publish > Model Reports > Preview Mode) and click on the element name in
the Browser window
The information from the first element in the Reading List is shown in the 'Dynamic Documents' view. When you have
finished reading this information, click on the [Reading] header and select the 'Next' option to display the information
from the next element in the Reading List. As you work down the list, you can also select the 'Previous' option to return
to information from an element further up the list.
The 'Dynamic Document' view provides other options to, for example, use another style template to display the
information, or change the display size. These options are available as you review the Reading List.
(c) Sparx Systems 2023 Page 270 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 271 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Document Artifact
Description
A Document Artifact is an artifact having a stereotype of «document». You create the Document Artifact using the
Common, Documents, Component, Documentation or Deployment pages of the Diagram Toolbox, and associate it with a
document or CSV file. Double-click on the element to display the Linked Document Editor. When you have created the
Linked Document, the Document Artifact element on the diagram shows an 'A' symbol in the bottom right corner.
Toolbox icon
(c) Sparx Systems 2023 Page 272 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
From the 'Dynamic Viewpoints' page of the Diagram Toolbox, drag the Custom Table icon onto a diagram.
The Table element is created on the diagram and in the Browser window. On the diagram, click on the element to select
it, then drag the borders of the element to expand it to a more comfortable size for editing.
To modify a Custom Table, it must first be placed into edit mode. To begin editing, right-click the Custom Table element
on the diagram and select 'Edit Custom Table'. Alternatively, click on the element and press the Enter key or the F2 key.
While in edit mode you can modify and format the table contents.
To exit edit mode, right-click on the element and choose the option 'Exit Edit'. Alternatively, deselecting the table
element (by clicking outside of the element, or by pressing the 'Esc' key) will also exit the edit mode.
Exiting edit mode will automatically save your changes.
(c) Sparx Systems 2023 Page 273 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
1. The Custom Table data content will automatically be saved in XML format into the element's 'data' property.
2. The Custom Table row/cell formatting data will automatically be saved in XML format into the 'dataformat'
property.
If you update a Custom Table element's properties by directly editing the XML, you can refresh the element in the
diagram by right-clicking the element and selecting the option 'Refresh Custom Table'.
Operation Description
Define Grid Size The new Custom Table element does not yet have a defined grid size.
1. Right-click in the blank space in the body of the element and select the 'Set
Grid Size...' option.
2. In the 'Set Grid Size' dialog, type in the required numbers of rows and columns.
3. Click on the OK button.
Columns are autosized to occupy the visual area of the Table element. Rows,
however, default to a single line height.
Add More Columns You have two options for adding further columns to the table:
· Add a new column to the right hand end of the table - right click on the table
and select the 'Add Column' option
· Insert a column at a specific point in the table - right-click on a column and
select the 'Insert Column' option and either 'Before Selected Column' or 'After
Selected Column' as required
Add More Rows You also have two options for adding rows to the table:
· Add a new row to the bottom of the table - right-click on the table and select
the 'Add Row' option; the row might not be visible without scrolling to it, but
note that the 'Showing x - n of y items' counter in the bottom right of the
element will be incremented
· Insert a row at a specific point in the table - right-click on a row and select the
'Insert Row' option and either 'Above Selected Row' or 'Below Selected Row'
as required; the inserted row has the default height of one line
Delete Columns or Rows Right-click on a cell in the column or row and select 'Delete Selected Row' or
'Delete Selected Column'.
You cannot delete more than one row or column at a time, nor can you delete a row
or column containing merged cells (even if they do not contain cells outside the row
or column).
Copy Content When you have data in the table, you can select to copy the content of either
selected cells or the entire table to the clipboard, to paste into an external
spreadsheet tool or text file.
Select the 'Copy to Clipboard' option and then either 'Selected' or 'All'.
Change Column Width Click on a column cell and either drag the border of the column header cell to the
required width, or right-click on the Table element and select the 'Set Column(s)
Width' option. (To select multiple columns, press the Ctrl key as you select each
column.)
If you select the 'Set Column(s) Width' option, the 'Set Column Width' dialog
displays. Either type in the required width in pixels, or click on the arrows to
increase or decrease the value by one pixel per click. Click on the OK button when
you have entered the width.
Note that:
· Column widths are confined by the width of the element; you cannot increase
(c) Sparx Systems 2023 Page 274 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
the width of a column indefinitely, as the width increase will be blocked prior
to the point at which one of the columns will lose its visible presence on the
Table
· Manually setting a column width by dragging the header border adjusts the
width of any unset columns by equal amounts; for example, in a three-column
Table, increasing one column width by eight pixels will decrease the width of
the other two columns by 4 pixels each
· Setting a column width through the 'Set Column Width' dialog changes the
width of any unset and manually set columns by equal amounts
· Adjusting the size of the Table element will adjust the column widths within
the Table in proportion to each other
· Text strings will wrap in the width of the column
Change Row Height If you want to increase or decrease the height of one or more rows by one line
height, right-click on a cell in that row and select the 'Increase row lines' or
'Decrease row lines' option, as appropriate. (To select multiple rows, press the Ctrl
key as you select each row.)
If you want to increase or decrease the height of one or more rows by several line
heights, right-click on a cell in the selected row(s) and select the 'Set row(s) lines
option'. The 'Set Row Lines' dialog displays.
Either type in the required height in lines, or click on the arrows to increase or
decrease the value by one line per click. Click on the OK button to save the
settings.
Note that:
· Changing the height of one or more rows has no effect on the height of
unselected rows in the Table
· Increasing the height of a row can scroll other rows out of sight, beyond the
borders of the Table element
· If the text of a cell is more than can be displayed in the cell, the text scrolls out
of sight beyond the top and bottom of the cell; in these situations, mouse-over
the cell to display the full text in a pop-up field, or add more height to the row
to accommodate the text
Format the Grid You can perform operations to format the appearance of cells in the table, and of
the table as a whole. Right-click on the table and select:
· Show Grid Lines - to hide or display all lines separating cells; this does not
hide those lines specifically displayed using the 'Set Cell(s) Border' option
· Set Cell(s) Border - if 'Show Grid Lines' is toggled off and you have
highlighted one or more cells, select the option for the required cell edge to
display that edge on the cell(s):
- Top
- Right
- Bottom
- Left
- Reset Default (to hide the visible borders of the currently-selected cells)
Note that the border width is fixed at 1px.
· Set Grid Color - the 'Select item color' dialog displays; click on the 'Set Color'
drop-down arrow and on the appropriate color in the palette, then click on the
OK button to apply the color to either all cell borders in the table ('Show Grid
Lines' on) or those specifically selected for display ('Set Cell(s) Border')
· Merge Selected - (available if you have selected two or more cells by sweeping
the cursor across them) the separate cells become one cell, with the formatting
(c) Sparx Systems 2023 Page 275 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
of the uppermost and/or leftmost cell; the selected cells must form a regular
block - you cannot merge two cells on one line with one cell on the next line
unless the cells form a rectangle
· UnMerge Selected - the previously-merged cells reappear with their original
dimensions, color, text and formatting
Format Text You can perform a number of operations to format the complete text of a cell. The
options cannot operate on partial text strings in a cell. Note that these options take
effect when you click off the cell.
Right-click on the cell and select the required option:
· Horizontal Align Text - select the appropriate sub-option to align the text with
the left, center or right of the cell (new cells default to left-aligned text)
· Vertical Align Text - select the appropriate sub-option to align the text with the
top, center or bottom of the cell (new cells default to center-aligned text)
· Set Text Color - the 'Select item color' dialog displays; click on the 'Set Color'
drop-down arrow and on the appropriate color in the palette, then click on the
OK button
· Set Background Color - (to set the background for the cell, whether or not it
contains text) the 'Select item color' dialog displays; click on the 'Set Color'
drop-down arrow and on the appropriate color in the palette, then click on the
OK button
· Toggle Bold Text - the text is changed to bold or back to normal
The simplest method for initially defining and populating the Custom Table is to use the context menu options. However,
if you want to set up a number of tables of similar structure it becomes more efficient to copy the XML from the Tagged
Values of one table to the Tagged Values of another, or to add a script to read and/or populate the tables. Each Tagged
Value is a <memo> type that can contain a lengthy collection of XML definitions.
data As you build up the grid, the basic structure is defined in this Tagged Value in
XML, and as you add data values they are inserted into the appropriate lines of the
structure definition. For example:
<?xml version="1.0"?>
<adhoctable>
<table>
<row>
<column>Heading 1</column>
<column>Heading 2</column>
<column>Heading 3</column>
<column>Heading 4</column>
<column>Heading 5</column>
(c) Sparx Systems 2023 Page 276 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
</row>
<row>
<column>Rowname</column>
<column></column>
<column></column>
<column></column>
<column></column>
</row>
If you want to enter data directly into the XML in this Tagged Value, the 'Edit
Custom Table' context menu must be off (you have selected the 'Exit Editing'
option) and you should select the 'Refresh Custom Table' context menu option
frequently to update the table image.
dataFormat As you define the format and appearance of the grid, the definition is stored in
XML in this Tagged Value. For example:
<?xml version="1.0"?>
<dataformat>
<style>
<grid rows="8" columns="5">
<gridcolor>16646398</gridcolor>
</grid>
<cells>
<cell row="0" col="0">
<bold>true</bold>
<txtcolor>255</txtcolor>
<borders>
<left>0</left>
<top>0</top>
<right>1</right>
<bottom>1</bottom>
</borders>
</cell>
<cell row="0" col="1">
<txtcolor>13434880</txtcolor>
<borders>
<left>0</left>
<top>0</top>
<right>1</right>
<bottom>1</bottom>
</borders>
</cell>
If you want to modify the definition directly in the XML in the Tagged Value, the
'Edit Custom Table' context menu must be off (you have selected the 'Exit Editing'
option) and you should select the 'Refresh Custom Table' context menu option
frequently to update the table image.
(c) Sparx Systems 2023 Page 277 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
You can also associate a JavaScript script with your Custom Table element. Typically, a script might be used to either
read data from the table or update the data in the table. Scripts are saved in the operation named 'script'.
Action Description
Run a Script If an associated script has been defined for the table, it can be run by right-clicking
the table while it is not in edit mode then choosing the option 'Run Custom Table
Script'.
(c) Sparx Systems 2023 Page 278 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Class
Description
A Class is a representation of a type of object that reflects the structure and behavior of such objects within the system. It
is a template from which actual running instances are created, although a Class can be defined either to control its own
execution or as a template or parameterized Class that specifies parameters that must be defined by any binding Class.
A Class can have attributes (data) and methods (operations or behavior). Classes can inherit characteristics from parent
Classes and delegate behavior to other Classes. Class models usually describe the logical structure of the system and are
the building blocks from which components are built.
The top section of a Class shows the attributes (or data elements) associated with the Class. These hold the 'state' of an
object at run-time. If the information is saved to a data store and can be reloaded, it is termed 'persistent'. The lower
section contains the Class operations (or methods at run-time). Operations describe the behavior a Class offers to other
Classes, and the internal behavior it has (private methods).
Class elements are generally used in Class diagrams and Composite Structure diagrams.
Enterprise Architect also supports a number of stereotyped Class elements to represent various entities in web-page
modeling. A Class can also be integrated with an Associate connector to form an Association Class, to allow the
Associate connector to have operations and attributes that define certain types of UML relationship.
Toolbox icon
(c) Sparx Systems 2023 Page 279 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Operations of a Class can be invoked on an object, given a particular set of values for the parameters of the Operation,
(...).
A Class cannot access private Features of another Class, or protected Features on another Class that is not its ancestor.
A Class acts as the namespace for various kinds of Classifiers defined within its scope, including Classes. Nested
Classifiers are members of the namespace of the containing Class. Classifier nesting is used for reasons of information
hiding.
(c) Sparx Systems 2023 Page 280 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Active Classes
Description
An Active Class indicates that, when instantiated, the Class controls its own execution. Rather than being invoked or
activated by other objects, it can operate standalone and define its own thread of behavior.
Step Action
1 Highlight a Class, and display its 'Properties' dialog (right-click on the Class and select the 'Properties |
Properties option).
(c) Sparx Systems 2023 Page 281 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Action
2 Select the 'Design > Element > Manage > Template Parameters' ribbon option.
The 'Templates' dialog displays.
4
Type in the name and type of the parameter and, if required, click on the button after the 'Constraints'
and 'Default' fields to select the required constraining and default Classes from the 'Select <Item>' dialog.
The default Class can be either the constraining classifier or any Class that derives from the constraining
classifier.
Notation Example
On a diagram, template Classes are shown with the parameters in a dashed outline box in the upper right corner of the
Class.
(c) Sparx Systems 2023 Page 282 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 283 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Collaboration
Description
A Collaboration defines a set of cooperating roles and their connectors. These are used to collectively illustrate a specific
functionality, in a Composite Structure diagram. A Collaboration should specify only the roles and attributes required to
accomplish a specific task or function. Although in practice a behavior and its roles could involve many tangential
attributes and properties, isolating the primary roles and their requisites simplifies and clarifies the behavior, as well as
providing for reuse. A Collaboration often implements a Pattern to apply to various situations.
This example illustrates an Install Collaboration, with three roles (Objects) connected as shown. The process for this
Collaboration can be demonstrated by attaching an Interaction diagram (Sequence, Timing, Communication or
Interaction Overview).
To understand referencing a Collaboration in a specific situation, see the Collaboration Use Help topic.
Enterprise Architect supports a stereotyped Collaboration to represent a Business Use Case Realization in business
modeling.
Toolbox icon
(c) Sparx Systems 2023 Page 284 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 285 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Collaboration Use
Description
Use a Collaboration Use to apply a Pattern defined by a Collaboration to a specific situation, in a Composite Structure
diagram.
This example shows a Use, 'NWServer', of the Collaboration 'Install', to define the installation process of a network
scanner. This process can be defined by an interaction attached to the Collaboration. (See the Collaboration Help topic
for a representation of the Install Collaboration.)
To create a Collaboration Use, drag the icon from the 'Composite' page of the Diagram Toolbox onto the diagram.
Toolbox icon
(c) Sparx Systems 2023 Page 286 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
A CollaborationUse shows how the pattern described by a Collaboration is applied in a given context Classifier, by
binding specific ConnectableElements from that context to the collaborationRoles of the Collaboration. There may be
multiple CollaborationUses related to a given Collaboration within a Classifier, each bound differently. A given
collaborationRole or Connector may be involved in multiple uses of the same or different Collaborations.
(c) Sparx Systems 2023 Page 287 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Component
Description
A Component is a modular part of a system, whose behavior is defined by its provided and required interfaces; the
internal workings of the Component should be invisible and its usage environment-independent. Source code files,
DLLs, Java beans and other artifacts defining the system can be manifested in Components.
A Component can be composed of multiple Classes, or Components pieced together. As smaller Components come
together to create bigger Components, the eventual system can be modeled, building-block style, in Component
diagrams. By building the system in discrete Components, localization of data and behavior enables decreased
dependency between Classes and Objects, providing a more robust and maintainable design.
Toolbox icon
(c) Sparx Systems 2023 Page 288 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 289 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Data Type
Description
A Data Type is a specific kind of classifier, similar to a Class except that a Data Type cannot own sub Data Types, and
instances of a Data Type are identified only by their value. For example, an instance of a Person Class is a Helen object,
but an instance of an Integer Data Type is 12.
All copies of an instance of a Data Type, and any instances of that Data Type with the same value, are considered to be
the same instance. That is, instances of Helen are not necessarily the same Helen, but all 12s are the same 12. For
example, the 12 on a watch face is exactly the same integer as the number of months in a year.
Instances of a Data Type that have attributes (that is, are instances of a structured Data Type) are considered to be the
same if the structure is the same and the values of the corresponding attributes are the same. If a Data Type has
attributes, instances of that Data Type contain attribute values matching the attributes.
A typical use of Data Types would be to represent programming language primitive types or CORBA basic types. For
example, integer and string types are often treated as Data Types.
A Data Type is denoted by a rectangle with the keyword «dataType» or, when it is referenced by (for example) an
attribute, by a string containing the name of the Data Type, as shown:
Toolbox icon
(c) Sparx Systems 2023 Page 290 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Deployment Specification
Description
A Deployment Specification specifies parameters guiding deployment of an artifact, as is necessary with most hardware
and software technologies. A specification lists those properties that must be defined for deployment to occur, as
represented in a Deployment diagram. An instance of this specification specifies the values for the parameters; a single
specification can be instantiated for multiple artifacts.
These specifications can be extended by certain component profiles. Examples of standard Tagged Values that a profile
might add to a Deployment Specification are «concurrencyMode» with Tagged Values {thread, process, none} or
«transactionMode» with Tagged Values {transaction, nestedTransaction, none}.
This example depicts the artifact RepositoryApp deployed on the server node, as per the specifications of
RepositoryApp, instantiated from the Deployment Specification SystemSpec.
Toolbox icon
(c) Sparx Systems 2023 Page 291 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Device
Description
A Device is a physical electronic resource with processing capability upon which Artifacts can be deployed for
execution, as represented in a Deployment diagram. Complex Devices can consist of other devices; that is, a Device can
be a nested element, where a physical machine is decomposed into its elements either through namespace ownership or
through attributes that are typed by Devices.
Toolbox icon
(c) Sparx Systems 2023 Page 292 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Enumeration
Description
An Enumeration is a data type, whose instances can be any of a number of user-defined enumeration literals. It is
possible to extend the set of applicable enumeration literals in other Packages or profiles. You create Enumerations in
Class or Package diagrams, and in diagrams developed using the Metamodel and Profile pages of the Diagram Toolbox.
Toolbox icon
(c) Sparx Systems 2023 Page 293 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Execution Environment
Description
An Execution Environment is a node that offers an execution environment for specific types of component that are
deployed on it in the form of Executable Artifacts. This is depicted in a Deployment diagram.
Execution Environments can be nested; for example, a database Execution Environment can be nested in an operating
system Execution Environment. Components of the appropriate type are then deployed to specific Execution
Environment nodes.
Toolbox icon
The OMG Unified Modeling Language specification, (v2.5.1, p.658) also states:
Typically, ExecutionEnvironments are assigned to some, often higher level, Device or general system Node via the
composition relationship defined on Node. ExecutionEnvironments can be nested (for example, a database
ExecutionEnvironment might be nested in an operating system ExecutionEnvironment). ExecutionEnvironment may
have explicit interfaces for system level services that can be called by the deployed elements. In such cases, software
ExecutionEnvironment services should be explicitly modeled. Application Components of the appropriate type are then
deployed, with a Deployment relationship, to specific ExecutionEnvironment nodes or the Manifestations relationships
of DeployedArtifacts. For each component Deployment, aspects of these services may be determined by properties in a
DeploymentSpecification for a particular kind of ExecutionEnvironment.
(c) Sparx Systems 2023 Page 294 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Expose Interface
Description
The Expose Interface element is a graphical method of depicting the required or supplied interfaces of a Component,
Class or Part, in a Component or Composite Structure diagram. It just identifies the fact that the element provides or
requires an interface; to depict the fact that the provided interface is used, or the required interface provided, by another
element, use the Assembly connector.
The Expose Interface element must be attached to the Class or Component element, and it becomes a child element of
that Class or Component; it cannot exist independently. You can attach more than one Expose Element to another
element.
When you create the Expose Interface element, a dialog displays in which you enter a name for the element and specify
whether it represents a required interface or a provided interface.
Toolbox icon
(c) Sparx Systems 2023 Page 295 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Information Item
Description
An Information Item element represents an abstraction of data, which data can be conveyed between two objects. The
term 'Information Item' is also more loosely applied to any classifier that represents a more specific identification of the
type of data that can be conveyed between two objects
The conveyance and realization of Information Items (of either kind) between the two objects is represented by an
Information Flow connector.
Toolbox icon
An important use of InformationItems is to represent information during early design stages, possibly before the detailed
modeling decisions that will ultimately define them have been made. Another purpose of InformationItems is to abstract
portions of complex models in less precise, but perhaps more general and communicable, ways.
(c) Sparx Systems 2023 Page 296 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Interface
Description
An Interface is a specification of behavior (or contract) that implementers agree to meet. By implementing an Interface,
Classes are guaranteed to support a required behavior, which enables the system to treat non-related elements in the same
way; that is, through the common interface. You also use Interfaces in a Composite Structure diagram.
Interfaces are drawn in a similar way to a Class, with operations specified, as shown here. They can also be drawn as a
circle with no explicit operations detailed - right-click on the element and select the 'Use Circle Notation' option to
switch between styles. Realize connectors to an Interface drawn as a circle are drawn as a solid line without target
arrows.
An Interface cannot be instantiated (that is, you cannot create an object from an Interface). You must create a Class that
'implements' the Interface specification, and in the Class body place operations for each of the Interface operations. You
can then instantiate the Class.
Toolbox icon
(c) Sparx Systems 2023 Page 297 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Node
Description
A Node is a physical piece of equipment on which the system is deployed, such as a workgroup server or workstation. A
Node usually hosts components and other executable pieces of code, which again can be connected to particular
processes or execution spaces. Typical Nodes are client workstations, application servers, mainframes, routers and
terminal servers.
Nodes are used in Deployment diagrams to model the deployment of a system, and to illustrate the physical allocation of
implemented artifacts. They are also used in web modeling, from dedicated web modeling pages in the Toolbox.
Toolbox icon
(c) Sparx Systems 2023 Page 298 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Object
Description
An Object is a particular instance of a Class at run time. For example a car with the license plate AAA-001 is an instance
of the general Class of cars with a license plate number attribute. Objects are often used in analysis to represent the
numerous artifacts and items that exist in any business, such as pieces of paper, faxes and information. To model the
varying behavior of Objects at run-time, use run-time states.
Early in analysis, Objects can be used to quickly capture all the things that are of relevance within the system domain, in
an Object, Composite Structure or Communication diagram. As the model progresses these analysis Objects are refined
into generic Classes from which instances can be derived to represent common business items. Once Classes are defined,
Objects can be typed; that is they can have a classifier set that indicates their base type - see the Classifiers and Instances
topic.
Enterprise Architect also supports a number of stereotyped Object elements to represent various entities in business
modeling.
Toolbox icon
(c) Sparx Systems 2023 Page 299 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Run-time State
At run-time, an Object instance can have specific values for its attributes, or exist in a particular state. To model the
varying behavior of Objects at run-time, use instance values selected from the 'Select <Item>' dialog and run-time states
or run-states.
Typically there is interest in the run-time behavior of Objects that already have a classifier set. You can select from the
classifier's attribute list and apply specific values for your Object instance. If the classifier has a child StateMachine, its
States propagate to a list where the run-time state for the Object can be defined.
Example
This example defines run-time values for the listed variables, which are attributes of the AccountItem classifier for the
instance.
Access
Ribbon Start > Application > Design > Properties, click on an Object in the diagram or
Browser window > Run States
Design > Element > Editors > Properties, click on an Object in the diagram or
Browser window > Run States
Context Menu In a diagram or the Browser window, right-click on the 'Object | Features | Set Run
State' option
On the Properties window, or the '<object name> : Features' dialog the 'Run States' page lists any variables inherited
from the classifier of the Object element. These inherited variables initially have no values and are inactive. You can
activate and define a run state for them, or you can right-click on the '<object name> : Features' dialog and select the
'Hide Inherited Variables' option to hide them from view.
Step Action
(c) Sparx Systems 2023 Page 300 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
2 In the 'Operator' field, click on the drop-down arrow and select the operator that will qualify the run state
value. The operators include:
· blank (no operator)
· !=
· <
· <=
· <>
· =
· =>
· >
3 In the 'Value' field, type the value for the run state of the variable.
5 Click on or add the next variable, or click on the Close button to save the changes.
Step Action
1 In the 'Variable' field, right-click on the variable to delete and select the 'Delete' option.
(Alternatively, click on the variable and press Ctrl+Del.)
(c) Sparx Systems 2023 Page 301 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Object State
Set the Object state for a Class instance
Step Action
1 Right-click on the required Object in a diagram and select the 'Advanced | Set Object State' option.
The 'Set Instance State' dialog displays.
2 In the 'State' field, either type the required State (such as 'Awaiting Approval') or select a State from the
drop-down list.
The drop-down list for the 'State' field is populated with:
· Any States owned by the object's classifier
· Any States owned by any superclasses of the object's classifier
· Any States owned by StateMachines owned by the object's classifier
· Any States owned by StateMachines owned by any superclasses of the object's classifier
3 Below the 'State' field is the 'Merge State with Instance Name' checkbox, which defaults to unselected.
Either:
· Ignore the checkbox to display the object state on the element beneath the object name
· Or select the checkbox to display the object state on the element as a suffix to the object name
(c) Sparx Systems 2023 Page 302 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Package
Description
A Package is a namespace as well as an element that can be contained in other Package's namespaces. A Package can
own or merge with other Packages, and its elements can be imported into a Package's namespace. In addition to using
Packages in the Browser window to organize your project contents, you can drag the Packages onto a diagram workspace
(most diagram types, both standard and extended) for structural or relational depictions, including Package imports or
merges.
Toolbox icon
(c) Sparx Systems 2023 Page 303 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Packaging Component
Description
A Packaging Component is an element that appears very similar to a Component in a diagram but behaves as a Package
in the Browser window (that is, it can be Version Controlled and can contain other Packages and elements). It is typically
used in Component diagrams.
In the Browser window, the three elements display as shown:
Toolbox icon
(c) Sparx Systems 2023 Page 304 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Part
Description
Parts are run-time instances of Classes or Interfaces. Multiplicity can be specified for a Part, using the notation:
(x{...y})
where x specifies the initial or set number of instances when the composite structure is created, and y indicates the
maximum number of instances at any time.
Parts are used to express composite structures, or modeling Patterns that can be invoked by various objects to accomplish
a specific purpose. When illustrating the composition of structures, Parts can be embedded as properties of other Parts.
When embedded as properties, Parts can be bordered by a solid outline, indicating the surrounding Part owns the Part by
composition. Alternatively, a dashed outline indicates that the property is referenced and used by the surrounding Part,
but is not composed within it.
Toolbox icon
(c) Sparx Systems 2023 Page 305 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Action
1 Right-click on the Part and select the 'Features | Set Property Values' option (or press Ctrl+Shift+R).
The 'Set Property Values' dialog displays.
2 In the 'Variable' field, click on the drop-down arrow and select the variable, or type in the new variable
name.
3 Set the Operator and the Value, and optionally type in a Note.
(c) Sparx Systems 2023 Page 306 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Port
Description
Ports define the interaction between a classifier and its environment. Interfaces controlling this interaction can be
depicted using the Interface element. Any connector to a Port must provide the required interface, if defined. Ports can
appear on a contained Part, a Class, or the boundary of a Composite element.
A Port is a typed structural feature or property of its containing classifier. Ports are typically created in Class diagrams,
Object diagrams and Composite Structure diagrams.
Toolbox icon
(c) Sparx Systems 2023 Page 307 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Action
1 Click on the Port symbol in the 'Composite' page of the Toolbox, and drag the symbol to (or click on) the
target host element.
This creates an untyped, simple Port on the boundary, near the cursor position.
2 On the context menu of a suitable Class, Part or Composite element in the Browser window, select the
'Add | Port' option.
3 Drag a suitable classifier from the Browser window onto a Class or Part on a diagram.
A prompt displays to add a typed Port or Part at the cursor position.
The new Port is typed by the original dragged classifier.
4 Use the 'Ports' sub-menu (on a diagram, right-click on element | New Child Element) to add a new Port to
the currently selected element.
(c) Sparx Systems 2023 Page 308 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 309 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 310 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 311 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Primitive
Description
A Primitive element identifies a predefined data type, without any relevant substructure (that is, it has no parts in the
context of UML). It could be regarded as a conceptual Data Type. The Primitive element can be used to support the
Meta-Object Facility (MOF) specification.
Toolbox icon
(c) Sparx Systems 2023 Page 312 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Signal
Description
A Signal is a specification of Send request instances communicated between objects, typically in a Class or Package
diagram. The receiving object handles the Received request instances as specified by its Receptions. The data carried by
a Send request is represented as attributes of the Signal. A Signal is defined independently of the classifiers handling the
signal occurrence.
A Reception is defined as a feature of the receiving object, derived from the Signal element. The Reception takes the
name of the Signal, and the Signal's attributes as its parameters.
Toolbox icon
The OMG Unified Modeling Language specification, (v2.5.1, p.178) also states:
A Reception is a declaration stating that a Classifier is prepared to react to the receipt of a Signal.
(c) Sparx Systems 2023 Page 313 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Reception
A Reception is a feature of a Classifier, and is derived from a Signal element; it models receipt of the Signal. Receptions
are treated in the same way as Operations and, where element compartments are displayed, are shown within their own
compartment.
A Reception cannot be created without a Signal element, which either already exists or is created as a step in creating the
Reception. The name of the Reception is drawn from the name of the Signal element, and the attributes of the Signal
define the parameters of the Reception. Any changes to the Signal are reflected in the Reception, and vice versa.
Create a Reception
Step Action
1
Create a Signal element either in the Browser window or on a diagram.
2
Create or drag a Class or Interface element on a diagram.
3
Either:
· Drag the Signal element from the Browser window onto the Class or Interface
element and go to step 8, or
· Right-click on the Class element and select the 'Features | Receptions' option
The Features window displays, at the 'Receptions' page.
4
Click on the button to the right of the New Reception text in the 'Name' column.
The 'Select Signal' dialog displays (a variation of the 'Select <item>' dialog).
5
Browse for and click on the Signal element. (If you didn't create a Signal element at
the start, you could use the Add New button to create a new Signal element now.)
6
Click on the OK button. The Signal element's name and attributes are used to
generate the Reception's name and parameters.
(c) Sparx Systems 2023 Page 314 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
7
Click on the Close button.
8
Note the appearance of the Class and Signal elements in the diagram and Browser
window.
(c) Sparx Systems 2023 Page 315 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Access
Ribbon Start > Application > Design > Properties; click on a Reception in a diagram or in
the Browser window
Design > Element > Editors > Properties, click on a Reception in a diagram or in
the Browser window
Keyboard Shortcuts Ctrl+2 or Ctrl+Enter, then click on a Reception in a diagram or in the Browser
window
Field Description
Name Displays the name of the Reception, which is the name of the Signal element it is
derived from. You cannot change the name in this field. If the name of the Signal is
changed, the Reception name is automatically updated to match.
Parameters Displays the names and types of the attributes of the Signal element, from which
the Reception parameters are derived. You can only change the parameters by
updating the Signal attributes.
Scope Displays the scope of the Reception, derived from the Signal element. If necessary,
you can change this scope - click on the drop-down arrow at the end of the field and
select the new value from the list.
Stereotype (Optional) If you need to group or specialize the Reception, you can type the name
of an appropriate stereotype in this field.
Alias (Optional) if necessary, you can type in an alternative name or reference for the
Reception.
(c) Sparx Systems 2023 Page 316 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Static The flag indicating if the Reception is a static member; to change this flag, type
'False' or 'True' in the field, as appropriate.
(c) Sparx Systems 2023 Page 317 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
UML Connectors
Connectors link elements together and are typically represented as lines on diagrams showing how the elements relate to
each other. Making a comparison to natural languages, if the elements are nouns the connectors are verbs that describe
how the nouns relate to each other.
The UML has a wide variety of connector types that are used to express the nature of the relationship between the model
elements involved. Some connectors such as the Association define structural relationships whereas others such as the
Control Flow define the passage of time. Each connector type has a notation that helps modelers recognize the connector
and understand its purpose.
Connectors can be viewed in a wide range of windows such as the Relationships Windows, the Hierarchy Window, the
Relationship Matrix, the 'Details' tab of the Inspector window and an element's 'Properties' dialog.
(c) Sparx Systems 2023 Page 318 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Abstraction
Description
An 'Abstraction' is a relationship between two elements that represent the same concept, either at different levels of
abstraction or from different viewpoints. This diagram shows that two different customer Classes from different models
(the Domain model and the Code model) represent the same concept.
The 'Abstraction' relationship is a subtype of a 'Dependency' relationship.
Toolbox icon
(c) Sparx Systems 2023 Page 319 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Aggregation
Description
An Aggregation connector is a type of association that shows that an element contains or is composed of other elements.
It is used in Class models, Package models and Object models to show how more complex elements (aggregates) are
built from a collection of simpler elements (component parts; for example, a car from wheels, tires, motor and so on).
A stronger form of aggregation, known as Composite Aggregation, is used to indicate ownership of the whole over its
parts. The part can belong to only one Composite Aggregation at a time. If the composite is deleted, all of its parts are
deleted with it.
Toolbox icon
(c) Sparx Systems 2023 Page 320 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Action
Notes
· If the connector is already a Strong (Composition) connector, the context menu option changes to 'Set Aggregation
to Shared'
(c) Sparx Systems 2023 Page 321 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Assembly
Description
An Assembly connector bridges a component's required interface (Component1) with the provided interface of another
component (Component2), typically in a Component diagram.
Toolbox icon
(c) Sparx Systems 2023 Page 322 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Association
Description
An Association implies that two model elements have a relationship, usually implemented as an instance variable in one
or both Classes. The connector can include named roles at each end, multiplicity, direction and constraints. You can also
indicate the reading direction by adding a Name Direction Indicator arrow to the name-label on the connector (see the
Manage Object Labels Help topic), and define template binding parameters for an Association connector between a
binding Class and a parameterized Class.
Associations act as the keys in providing possible classifiers for a structure of instance elements, and for automatically
generating Property (Part) elements on the source SysML Block element in the Association.
When code is generated for Class diagrams, Associations become member variables in the target Class. The relationship
is also used in Package, Object, Communication, Data Modeling and Deployment diagrams.
'Association' is the general relationship type between two elements; to connect more than two elements in an
Association, you can use the N-Ary Association element. An Association connector can also be integrated with a Class
element to form an Association Class, to allow the connector to have operations and attributes that define certain types of
UML relationship.
Toolbox icon
(c) Sparx Systems 2023 Page 323 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Qualifiers
Qualifiers are ordered sets of properties of an Association end point, a Part, a Port, or an attribute that limit the nature of
the relationship between two classifiers or objects. You define a qualifier on the 'Qualifiers' dialog, which you display by
clicking on the button at the end of the 'Qualifiers' field on the Association, Part, Port or attribute 'Properties' dialog.
Examples
Notes
· When typing multiple Qualifiers into the 'Qualifier(s)' field on a 'Properties' dialog, separate them with a semi-colon;
each Qualifier then displays on a separate line; for example, in the diagram the Qualifier 'rank:Rank;file:File' has
been rendered in two lines, with a line break at the ; character
· You can enable or disable Qualifier rectangles in the 'Diagram' page of the 'Preferences' dialog (select the 'Start >
Appearance > Preferences > Preferences > Diagram' ribbon option) - if disabled, the old style text Qualifiers are
used; it is not recommended that you disable Qualifiers as they are an integral part of the UML
· You can enable or disable a mild shading on the Qualifier rectangles in the 'Links' page of the 'Preferences' dialog
(c) Sparx Systems 2023 Page 324 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 325 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Qualifiers Dialog
The 'Qualifiers' dialog is used to define the Qualifiers of an Association connector end, Port, Part or Attribute.
General Tab
Field Action
Notes Enter any free text notes associated with the Qualifier.
You can format the notes text using the Notes toolbar at the top of the field.
(c) Sparx Systems 2023 Page 326 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Detail Tab
Use the 'Detail' tab to model additional properties of a selected Qualifier, such as its multiplicity, redefined properties
and subsetted properties.
Select a Qualifier on the 'General' tab, then review, edit or complete the 'Detail' tab fields as indicated in this table.
Field Action
Lower bound Define a lower limit to the number of elements allowed in the collection.
Upper bound Define an upper limit to the number of elements allowed in the collection.
(c) Sparx Systems 2023 Page 327 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Association Class
Description
An Association Class is a UML construct that enables an Association to have attributes and operations (features). This
results in a hybrid relation with the characteristics of an Association and a Class.
When you add an Association Class connection, Enterprise Architect also creates a Class that is automatically connected
to the Association. When you hide or delete the Association, the Class is also hidden or deleted.
To add an Association Class to a Class or Deployment diagram, click on the 'Association Class' icon in the Toolbox.
Click and hold on the source object in the diagram while you drag the line to the target element, then release the mouse
button. Enterprise Architect draws the connector and adds the Class, then prompts you to add the Class name. Note that
the names of the Class and the connector are the same. You can also connect a new Class to an existing Association.
You can highlight the Class part of an Association Class in the Browser window, by selecting the 'Find Association
Class' context menu option on the Association connector.
Example
This diagram illustrates an Association Class between model elements. Note the dotted line from the Class to the
Association. You cannot move or delete this line.
Notes
(c) Sparx Systems 2023 Page 328 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
· If you are applying a stereotype with a Shape Script to an Association Class, be aware that the Shape Script is
applied to both the Class part and the Association part; therefore, you might have to include logic in the shape main
that tests the type of the element so that you can give separate drawing instructions for Class and for Association
· Such logic is not necessary in the:
- Shape source or shape target, which are ignored by Classes, or the
- Decoration shapes, which are ignored by Association connectors
· If you dissociate the Class from the Association connector, both parts keep their Shape Scripts until the stereotypes
are removed
Toolbox icon
(c) Sparx Systems 2023 Page 329 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Action
2 Right-click on the new Class and select the 'Advanced | Association Class' menu option.
The 'Create Association Class' dialog displays.
(c) Sparx Systems 2023 Page 330 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Communication Path
Description
A Communication Path defines the path through which two DeploymentTargets are able to exchange signals and
messages. Communication Path is a specialization of Association. A DeploymentTarget is the target for a deployed
Artifact and can be a Node, Property or InstanceSpecification in a Deployment diagram.
Toolbox icon
(c) Sparx Systems 2023 Page 331 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Composition
Direction:
A Composition is used to depict an element that is made up of smaller components, typically in a Class or Package
diagram. A component - or part instance - can be included in a maximum of one composition at a time. If a composition
is deleted, usually all of its parts are deleted with it; however, a part can be individually removed from a composition
without having to delete the entire composition. Compositions are transitive, asymmetric relationships and can be
recursive.
Example
Toolbox icon
(c) Sparx Systems 2023 Page 332 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 333 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
N-Ary Association
Description
An n-Ary Association element is used to model complex relationships between three or more elements, typically in a
Class diagram. It is not a commonly-employed device, but can be used to good effect where there is a dependant
relationship between several elements. It is generally used with the Association connector, but the relationships can
include other types of connector.
Toolbox icon
(c) Sparx Systems 2023 Page 334 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Connector
Description
Connectors illustrate communication links between Parts to fulfill the structure's purpose, typically in a Composite
Structure diagram. Each Connector end is distinct, controlling the communication pertaining to its connecting element.
These elements can define constraints specifying this behavior. Connectors can have multiplicity.
Toolbox icon
(c) Sparx Systems 2023 Page 335 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Control Flow
Description
The Control Flow is a connector connecting two nodes in an Activity diagram, modeling an active transition. Control
Flow connectors bridge the flow between Activity nodes, by directing the flow to the target node once the source node's
activity is completed.
Control Flows and Object Flows can define a Guard and a Weight condition.
A Guard defines a condition that must be True before control passes along that activity edge. A practical example of this
is where two or more activity edges (Control Flows) exit from a Decision element. Each flow should have a Guard
condition that is exclusive of the other and defines which edge is taken under what conditions. The Control Flow
'Properties' dialog enables you to set up Guard conditions on Control Flows and on Object Flows.
A Weight defines the number of tokens that can flow along a Control or Object Flow connection when that edge is
traversed. Weight can also be defined on the Control Flow and Object Flow 'Properties' dialogs.
Toolbox icon
(c) Sparx Systems 2023 Page 336 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Delegate
Description
A Delegate connector defines the internal assembly of a component's external Ports and Interfaces, on a Component
diagram. Using a Delegate connector wires the internal workings of the system to the outside world, by a delegation of
the external interfaces' connections.
Toolbox icon
(c) Sparx Systems 2023 Page 337 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Dependency
Description
Dependency relationships are used to model a wide range of dependent relationships between model elements in Use
Case, Activity and Structural diagrams, and even between models themselves. You can create the Dependency from the
Common page of the Toolbox. The Dependencies Package as defined in UML 2.1 has many derivatives, such as Realize,
Deployment and Use. Once you create a Dependency you can further refine its meaning by applying a specialized
stereotype.
Toolbox icon
(c) Sparx Systems 2023 Page 338 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Apply a Stereotype
This topic defines how to apply a stereotype to a Dependency relationship.
Apply Stereotype
Step Action
3 In the 'Stereotype' field, either type in the required stereotype name or click on the drop-down arrow and
select the stereotype from the list.
Alternatively
Right-click on the Dependency relationship and select the 'Advanced | Dependency Stereotypes' option, then select from
a shorter list of standard stereotypes.
(c) Sparx Systems 2023 Page 339 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Deployment
Description
A Deployment is a type of Dependency relationship that indicates the deployment of an artifact onto a node or
executable target, typically in a Deployment diagram. A Deployment can be made at type and instance levels. At the type
level, a Deployment would be made for every instance of the node. Deployment can also be specified for an instance of a
node, so that a node's instances can have varied deployed artifacts. With composite structures modeled with nodes
defined as Parts, Parts can also serve as targets of a Deployment relationship.
Toolbox icon
(c) Sparx Systems 2023 Page 340 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Extend
Description
An Extend connector is used to indicate that an element extends the behavior of another, mainly in Use Case models
where one Use Case (optionally) extends the behavior of another Use Case. An extending Use Case often expresses
alternative flows that are integrated with the behavior of the extended Use Case, at a specific point in the behavior flow
identified within the element by an extension point. The extension point is represented by a text string such as 'on startup'
or 'before connection is established'.
A Use Case can have more than one extension point, and can extend or be extended by more than one other Use Case.
The precise relationship between the extending Use case, extended Use Case and the point at which the extension applies
can be identified on the Extend relationship, as shown.
Step Action
1 Right-click on the Extend connector and select the 'Advanced | Extension Point | Set Extension Point'
option.
The 'Element Usage' dialog displays, listing the Extension Points currently defined in the target Use Case
element.
2 Click on the Extension Point on which the source Use Case acts, and click on the Open button.
The dialog closes and the Extend connector shows a small circle at the mid-point, with a Notelink to a
Note element that identifies the selected Extension Point.
(c) Sparx Systems 2023 Page 341 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(The Note might not initially display close to the Extend connector - check the upper left corner of the
diagram and drag the Note to the position you want it to occupy.)
Use these same steps to change the extension point identified in the Note.
Step Action
1 Right-click on the Extend connector and select the 'Advanced | Extension Point | Show Extension Point'
option.
If there are any Extension Points identified on the selected Extend connector, they are displayed as shown.
2 Right-click on the Extend connector and deselect the 'Advanced | Extension Point | Show Extension Point'
option.
Any Extension Points identified on the selected Extend connector are hidden, as shown:
Toolbox icon
Notes
· The Extend connector is not the same as the Extension connector, which is used in Profile diagrams to indicate that a
Stereotype element extends a Metaclass or another Stereotype element; the two types of connector have different
appearances
(c) Sparx Systems 2023 Page 342 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
NOTE. The same extending UseCase can extend more than one UseCase. Furthermore, an extending UseCase may itself
be extended.
(c) Sparx Systems 2023 Page 343 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Generalization
Description
A Generalization is used to indicate inheritance. Drawn from the specific classifier to a general classifier, the
generalization's implication is that the source inherits the target's characteristics. It is used typically in Class, Component,
Object, Package, Use Case and Requirements diagrams.
You can also define template binding parameters for a Generalize connector between a binding Class and a
parameterized Class.
Toolbox icon
(c) Sparx Systems 2023 Page 344 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Include
Description
An Include connection indicates that the source element includes the functionality of the target element. Include
connections are used in Use Case models to reflect that one Use Case includes the behavior of another. Use an Include
relationship to avoid having the same subset of behavior in many Use Cases; this is similar to delegation used in Class
models.
Toolbox icon
(c) Sparx Systems 2023 Page 345 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Information Flow
Description
An Information Flow represents the flow of Information Items (either Information Item elements or classifiers) between
two elements in any diagram. The connector is available from:
· The 'Common' page of the Toolbox
· Every Quick Link menu, and
· Automatically whilst directly defining Information Item realization
When you create the Information Flow connector, Enterprise Architect automatically prompts you to identify which
information items are conveyed.
You can have more than one Information Flow connector between the same two elements, identifying which items flow
between the elements under differing conditions. The connector can flow in one direction:
For more details see the Using Information Flows Help topic.
You can locate the items conveyed in any Information Flow, by right-clicking on the connector and selecting the 'Find
Items Conveyed' option.
(c) Sparx Systems 2023 Page 346 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Toolbox icon
(c) Sparx Systems 2023 Page 347 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Action
1 Open a diagram and add two elements (for example, Nodes on a Deployment diagram).
2 Click on the Information Flow connector in the 'Common' page of the Toolbox and drag the cursor
between the two elements.
The 'Information Items Conveyed' dialog displays.
3 Add the classifier or Information Item element(s) to the Information Flow. If you cannot complete this
now, you can return to the Information Flow and add the remaining Information items later.
4 If you are creating an Information Flow between two Classifier elements (such as Class, Component or
Use Case), or between Ports and/or Parts, the 'Add Realizing Relationship' checkbox is enabled (although
not for other combinations of elements).
If you have finished assigning information items to the flow, select this checkbox and click on the OK
button:
· For a relationship between two Classifiers, a new Association connector is automatically created
between the two elements, realizing the Information Flow
· For a relationship between Ports and/or Parts, a new Connector-type connector is automatically
created between the two elements, realizing the Information Flow
In these two cases, refer to the illustration in step 7.
Otherwise, click on the OK button to close the dialog. The diagram now resembles this example:
5 If you have finished assigning Information Items to the flow, add another connector between the same two
elements (for example, a Communication Path connector).
If you have not finished assigning information items you can return to the realization at a later time, either
using the 'Information Flows Realized' dialog or - for flows between classifiers and between Ports and/or
Parts - returning to the 'Information Items Conveyed' dialog and selecting the 'Add Realizing Relationship'
checkbox.
6 Right-click on the connector and select the 'Advanced | Information Flows Realized' option.
(c) Sparx Systems 2023 Page 348 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
7 Tick the checkbox against each required information item in the realized flow and click on the OK button.
The connector now resembles this example, where the black triangle indicates the presence and direction
of the Information Flow connector:
Step Action
1 Open a diagram and add four elements (for example four Classes).
(c) Sparx Systems 2023 Page 349 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Notes
· Once the Information Flow is realized, you cannot access the 'Information Items Conveyed' dialog directly; to add or
delete information items on the connector, you 'unrealize' the connector on the 'Information Items Realized' dialog
· If you have more than one Information Flow connector between the elements, they form part of the same combined
connector; you can again work on them separately through the 'Information Items Realized' dialog
· If you have information flows in a diagram that you use as the source for a Pattern, the 'Information Items Conveyed'
and 'Information Flows Realized' data is not copied into the Pattern
· You can locate, in the Browser window, the classifier or information item element(s) conveyed on the Information
Flow connector, using the 'Find Items Conveyed' context menu option on the connector
(c) Sparx Systems 2023 Page 350 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Access
Step Action
2 Browse or search for the required Information Item or classifier element or elements, and select them as
required.
If you do not want to retain a selected item on the 'Select Classifier' dialog, press Ctrl and click on the
item.
4 If you do not want to retain a selected item on this dialog, click on it and click on the Remove button.
For a link between Classifiers or between Ports and/or Parts, and if the Information Flow is complete, you
can create the realizing connector by selecting the 'Add Realizing Relationship' option. For Information
Flows between other types of element, you can perform the realization separately.
Click on the OK button to close the dialog and to show the selected information item element names on
the Information Flow connector label.
(c) Sparx Systems 2023 Page 351 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Access
Operation Action
Realize Information Flows Select the checkbox for each required flow and click on the OK button.
on the selected connector
Cancel realization of a flow Deselect the checkbox against the appropriate flow, and click on the OK button.
Create a realized 1. Right-click on the connector and select the 'Information Flows Realized'
information flow directly option.
on a new connector 2. Click on the Click to create new information flow... text. The 'Select Classifier'
dialog displays.
3. Select the required classifier or Information Item elements, and click on the
OK button to return to the 'Information Flows Realized' dialog; the selected
elements are listed first on the dialog, with the activation checkbox ticked.
4. Click on the OK button to return to the diagram; the connector now displays as
a realized Information Flow, with the selected classifier or Information Item
elements named in the connector label.
(c) Sparx Systems 2023 Page 352 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Notes
· If there are several Information flows and you do not realize all of them, those that are not realized are represented
by a separate Information Items Conveyed iteration of the Information Flow connector; you can only realize those
flows on the original connector, at which point the flow is represented on that original connector
· If you realize all of the flows, they are combined on the one connector line
· If you realize an information flow on a connector, you can use the 'Find Items Conveyed' context menu option to
locate the corresponding Information Flow item in the Browser window
· You realize Information Flows on UML connectors only; you cannot realize Information Flows on, say, ArchiMate
connectors, so the menu option is not provided for them
(c) Sparx Systems 2023 Page 353 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Interrupt Flow
Description
The Interrupt Flow is a connection used to define the two UML concepts of connectors for Exception Handler and
Interruptible Activity Region. An Interrupt Flow is a type of activity edge. It is typically used in an Activity diagram,
modeling an active transition.
Toolbox icon
(c) Sparx Systems 2023 Page 354 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Manifest
Description
A Manifest relationship indicates that the Artifact source embodies the target model element, typically in Component and
Deployment diagrams. Stereotypes can be added to Enterprise Architect to classify the type of manifestation of the
model element.
Toolbox icon
(c) Sparx Systems 2023 Page 355 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Message
Messages indicate a flow of information or transition of control between elements. Messages can be used in Timing
diagrams, Sequence diagrams and Communication diagrams (but not Interaction Overview diagrams) to reflect system
behavior. If between Classes or classifier instances, the associated list of operations is available to specify the event.
Moving a Message can disrupt the organization of other features on the diagram. To avoid this, and move only the
Message, press Alt while you move the Message.
Toolbox icon
The OMG Unified Modeling Language specification, (v2.5.1, p.574) also states:
The signature of a Message refers to either an Operation or a Signal. The name of the Message must be the same as the
name of the referenced Operation or Signal.
(c) Sparx Systems 2023 Page 356 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Nesting
Description
The Nesting Connector is an alternative graphical notation for expressing containment or nesting of elements within
other elements. It is most appropriately used for displaying Package nesting in a Package diagram.
Toolbox icon
(c) Sparx Systems 2023 Page 357 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Notelink
Description
A Notelink connector connects a Note to one or more other elements of any other type.
Both Note and Notelink are available in any category of the Toolbox, in the Common page. You can also select them
from the UML Elements toolbar.
Toolbox icon
(c) Sparx Systems 2023 Page 358 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Object Flow
Description
Object Flows are used in Activity diagrams and StateMachine diagrams. When used in an Activity diagram, an Object
Flow connects two elements, with specific data passing through it, modeling an active transition. To view sample
Activity diagrams using Object Flows, see the Object Flows in Activity Diagrams topic.
In StateMachine diagrams, an Object Flow is a specification of a state flow or transition. It implies the passing of an
Object instance between elements at run-time.
You can insert an Object Flow from the 'State' or 'Activity' pages of the Toolbox, or from the drop-down list of all
relationships located in the header toolbar. You can also modify a transition connection to an Object Flow by selecting
the 'ObjectFlow' checkbox on the connection 'Properties' dialog.
See the Control Flow topic for information on setting up Guards and Weights on Object Flows.
Toolbox icon
(c) Sparx Systems 2023 Page 359 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
See the OMG Unified Modeling Language specification, (v2.5.1, figure 12.110, p.391.)
This explicit portrayal of the data object Order, connected to the Activities by two Object Flows, can be refined by using
this format. Here, Action Pins are used to reflect the order.
See the OMG Unified Modeling Language specification, (v2.5.1, figure 12.110, p.391.)
This diagram is an example of multiple Object Flows exchanging data between two actions.
See the OMG Unified Modeling Language specification, (v2.5.1, figure 12.111, p.391.)
Selection and transformation behavior, together composing a sort of query, can specify the nature of the Object Flow's
data access. Selection behavior determines which objects are affected by the connection. Transformation behavior might
then further specify the value of an attribute pertaining to a selected object.
Selection and transformation behaviors can be defined by attaching a note to the Object Flow. To do this, right-click on
the Object Flow and select the 'Attach Note or Constraint' option. A dialog lists other flows in the diagram to which you
can select to attach the note, if the behavior applies to multiple flows. To comply with UML 2, preface the behavior with
the notation «selection» or «transformation».
See the OMG Unified Modeling Language specification, (v2.5.1, figure 12.112, p.392.)
(c) Sparx Systems 2023 Page 360 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Occurrence
Description
An Occurrence relationship indicates that a Collaboration represents a classifier, in a Composite Structure diagram. An
Occurrence connector is drawn from the Collaboration to the classifier.
Toolbox icon
(c) Sparx Systems 2023 Page 361 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Package Import
Description
A Package Import relationship is drawn from a source Package to a Package whose contents are to be imported. Private
members of a target Package cannot be imported. The relationship is typically used in a Package diagram.
Toolbox icon
(c) Sparx Systems 2023 Page 362 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Package Merge
Description
In a Package diagram, a Package Merge indicates a relationship between two Packages whereby the contents of the target
Package are merged with those of the source Package. Private contents of a target Package are not merged. The
applicability of a Package Merge addresses any situation where multiple Packages contain identically-named elements,
representing the same thing. A Package Merge merges all matching elements across its merged Packages, along with
their relationships and behaviors. Note that a Package Merge essentially performs generalizations and redefinitions of all
matching elements, but the merged Packages and their independent element representations still exist and are not
affected.
The Package Merge serves a graphical purpose in Enterprise Architect, but creates an ordered Package relationship
applied to related Packages (which can be seen under the 'Link' tab in the Package's 'Properties' dialog). Such
relationships can be reflected in XMI exports or Enterprise Architect Automation Interface scripts for code generation or
other Model Driven Architecture (MDA) interests.
Package Merge relationships are useful to reflect situations where existing architectures contain functionalities involving
similar elements, which are merged in a developing architecture. Merging doesn't affect the merged objects, and supports
the common situation of product progression.
Toolbox icon
(c) Sparx Systems 2023 Page 363 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 364 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Realization
Description
A source object implements or Realizes its destination object. Realize connectors are used in a Use Case, Component or
Requirements diagram to express traceability and completeness in the model. A business process or Requirement is
realized by one or more Use Cases, which in turn are realized by some Classes, which in turn are realized by a
Component, and so on. Mapping Requirements, Classes and such across the design of your system, up through the levels
of modeling abstraction, ensures the big picture of your system remembers and reflects all the little pictures and details
that constrain and define it.
You can also define template binding parameters for a Realize connector between a binding Class and a parameterized
Class.
Toolbox icon
(c) Sparx Systems 2023 Page 365 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Recursion
Description
Toolbox icon
(c) Sparx Systems 2023 Page 366 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Role Binding
Description
Role Binding is the mapping between a Collaboration Use's internal roles and the respective Parts required to implement
a specific situation, typically in a Composite Structure diagram. The associated Parts can have properties defined to
enable the binding to occur, and the Collaboration to take place.
A Role Binding connector is drawn between a Collaboration and the classifier's fulfilling roles, with the Collaboration's
internal binding roles labeled on the classifier end of the connector.
Toolbox icon
(c) Sparx Systems 2023 Page 367 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Represents
Description
The Represents connector indicates that a Collaboration is used in a classifier, typically in a Composite Structure
diagram. The connector is drawn from the Collaboration to its owning classifier.
Toolbox icon
(c) Sparx Systems 2023 Page 368 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Representation
Description
The Representation relationship is a specialization of a Dependency, connecting Information Item elements that represent
the same idea across models, typically in an Analysis diagram. For example, 'Bonus' and 'Salary' are both a
representation of the Information Item 'Wage'.
Toolbox icon
(c) Sparx Systems 2023 Page 369 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Substitution
Description
A Substitution is a relationship between two Classifiers, signifying that the substituting Classifier complies with the
contract specified by the contract Classifier. This implies that instances of the substituting Classifier are
runtime-substitutable, where instances of the contract Classifier are expected. In the example, the Class named
ResizableWindow has a Substitution connector to the Class named Window, meaning that wherever you are asked for a
window you can use a resizable window.
The Substitution relationship is a subtype of a Dependency relationship.
Toolbox icon
(c) Sparx Systems 2023 Page 370 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Template Binding
Description
You create a Template Binding connector between a binding Class and a parameterized Class. You then define a binding
expression on that connector. However, if the binding Class requires a Generalization, Realization or Association
relationship with the parameterized Class, you can define the binding expression on that relationship instead.
You can create a Template Binding connector using:
· The 'Template Binding' icon on the 'Class Relationships' page of the Diagram Toolbox
· The Quick Linker arrow next to the source Class element
· The 'Templates' dialog for the binding Class element; here, you create the Template Binding relationship by clicking
the Add button under the 'Binding(s)' panel, specifying the connector type, and selecting the target parameterized
Class from the 'Select <Item>' dialog
Each of these methods creates the connector itself. For the first two methods you then click on the connector to make it
the focus of the Properties window, on which you select the 'Binding' tab to define parameter substitutions as the binding
expression. The third method takes you to the same tab on the 'Properties' dialog automatically.
Toolbox icon
(c) Sparx Systems 2023 Page 371 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Parameter Substitution
Once a Template Binding (or other binding) relationship exists, you can add parameter substitutions to identify the
formal parameters that are replaced, and the actual parameters that replace them, in the binding expression.
Access
Display the 'Binding' page of the connector's 'Properties' dialog or Properties window, using any of the methods outlined
in this table.
Ribbon Start > Application > Design > Properties > click on connector > Binding
(Properties window)
Design > Element > Editors > Properties > click on connector > Binding
(Properties window)
Context Menu On diagram | Right-click connector | Properties > Binding ('Properties' dialog)
Keyboard Shortcuts Ctrl+2 > click on connector > Binding (Properties window)
Step Action
2 Click on the field and on the drop-down arrow that is now displayed.
A list of the template parameters from the target Class displays; click on the required parameter.
3
Click on the button in the corresponding 'Actual' field for the parameter.
If the template parameter:
· Does not have a constraint, a short context menu displays offering the choice of typing a free-text
value into the 'Actual' field, or selecting a classifier from the 'Select Classifier' dialog
· Has a constraint defined, the 'Select Classifier' dialog displays automatically, showing the available
classifiers
4 Locate and select the required classifier to replace the parameter in the binding expression.
If you do not define an Actual classifier and the template parameter has a default value defined, that
default is used in the expression.
5 To edit existing parameter substitutions, click on them and make the required changes as indicated in
steps 3 and 4.
(c) Sparx Systems 2023 Page 372 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 373 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Trace
Description
The Trace relationship is a specialization of an Abstraction, connecting model elements or sets of elements that represent
the same concept across models. Traces are often used to track requirements and model changes, typically in a
Traceability diagram, or in a Class, Use Case, Object or Composite Structure diagram.
As changes can occur in both directions, the order of this Trace is usually ignored. The relationship's properties can
specify the trace mapping, but the trace is usually bi-directional, informal and rarely computable.
Toolbox icon
(c) Sparx Systems 2023 Page 374 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Transition
Description
If you need to define the logical movement from one State to another in a StateMachine diagram, you can drag a
Transition connector from the Toolbox onto the diagram. You control the Transition through the connector 'Properties'
dialog.
Field Action
Guard Type in the expression to be evaluated after an Event is dispatched but before the
corresponding Transition is triggered.
If the guard is true at that time, the Transition is enabled; otherwise, it is disabled.
Effect is a Behavior Convert the 'Effect' field from a free-text field to the definition of a specific
Activity or behavior.
The 'Select <Item>' dialog displays, prompting you to select the Activity or
behavior element from the model.
Effect Either:
· Type a description of the Effect of the Transition, or
· If you have selected the 'Effect is a Behavior' checkbox, select an Activity or
behavior to be performed during the Transition (to change this subsequently,
click on the button to redisplay the 'Select <Item>' dialog)
(c) Sparx Systems 2023 Page 375 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
· Select an existing specification in the model using the 'Select <Item>' dialog,
which you display by clicking on the button
<trigger list> List the existing triggers, which might or might not have names and types, and
which can include triggers created in older models.
Notes
· Fork and Join segments can have neither triggers nor guards
· You can identify hidden triggers and locate triggers in the Browser window, using the 'Find Triggers Associated'
option on the Transition connector context menu; if one trigger exists for the Transition it is immediately highlighted
in the Browser window, if more than one trigger exists the 'Element Usage' dialog displays - select the required
trigger and click on the Open button to highlight the trigger in the Browser window
· You can define a self-Transition as an Internal Transition, and represent the connector and its properties in a
compartment of the State element
Toolbox icon
(c) Sparx Systems 2023 Page 376 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Internal Transition
If you need to define an internal Transition in a State, you can do so by creating an external self-Transition connector
(where the Source and Target are the same State) and then changing the connector 'kind' property. The self-Transition
connector is then removed from the diagram and the internal Transition displays in a compartment inside the State
element.
Step Action
1 In the Browser window, double-click on the StateMachine diagram containing the State element to open
it.
2 On the State element, create a Transition connector issuing from and terminating in the element (a 'self
Transition').
In the Diagram Toolbox, select the Transition connector, then click and release on the State element.
3 Right-click on the connector and select the 'Properties' option to display the 'Properties' dialog.
4 Select the 'Constraints' tab and define any guard, effect and trigger for the Transition.
5 Select the 'General' tab, then select the child tab 'Advanced'. Click on the drop-down arrow in the value
field for the kind property and select 'internal'.
6 Click on the OK button. The Transitions display in the same compartment as internal activities (exit/, do/,
entry/).
Notes
· To view or edit the properties of the internal Transition, double-click on the entry in the compartment within the
State
· If you need multiple internal transitions, including those with the same Trigger but different guards, you create them
separately with each Transition having its own guard
· You can create further transitions and internal triggers by clicking on the State element, displaying the Features
window at the 'Internal Triggers' tab, right-clicking on the tab and selecting the 'New Internal Triggers' option
(c) Sparx Systems 2023 Page 377 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
The OMG UML specification (UML Superstructure Specification, v2.4.1, p.362) states:
[A TransitionKind of internal ] Implies that the Transition, if triggered, occurs without exiting or entering the source
State (i.e., it does not cause a state change). This means that the entry or exit condition of the source State will not be
invoked. An internal Transition can be taken even if the SateMachine is in one or more Regions nested within the
associated State
(c) Sparx Systems 2023 Page 378 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Usage
Description
A 'Usage' is a Class diagram relationship in which one element requires another element for its full implementation or
operation. The example diagram shows that the Class Order requires the Class LineItem for its full implementation.
The 'Usage' relationship is a subtype of a 'Dependency' relationship.
Toolbox icon
(c) Sparx Systems 2023 Page 379 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Use
Description
A Use relationship indicates that one element requires another to perform some interaction. The Use relationship does
not specify how the target supplier is used, other than that the source client uses it in definition or implementation.
You typically use the Use relationship in Use Case diagrams to model how Actors use system functionality (Use Cases).
Notes
· It is more usual (and correct UML) to have an Association between an Actor and a Use Case
· The Usage relationship, used in Class diagrams, is a different relationship
Toolbox icon
(c) Sparx Systems 2023 Page 380 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
UML Stereotypes
The UML supports stereotypes, which are an inbuilt mechanism for logically extending or altering the meaning, display,
characteristics or syntax of basic UML model elements. You can apply stereotypes to a range of model element types,
including:
· Elements (such as Classes and Objects)
· Relationships (such as Dependencies and Associations)
· Association Ends
· Attributes and Operations
· Operation Parameters
Different model elements have different stereotypes associated with them. You can create and use your own stereotypes
in three different ways:
· To create a new object type based on a basic UML model element type, to be imported as part of a Profile into any
model and made available for use through the Diagram Toolbox; examples of extended element types already
provided in Enterprise Architect include a Table element (which is a stereotyped Class element) and Boundary,
Control and Entity elements (which are stereotyped Object elements)
· To customize the appearance or property of an instance of a model element of a specific type; these stereotypes are
applied only through the 'Properties' dialog of the object, within the model in which they are created, although you
can transport custom stereotype definitions between models as Reference Data
· As a simple label on an element, to identify the role or nature of the object that the element represents
For further definitions of stereotypes, see the OMG UML specification (UML Superstructure Specification, v2.1.1,
section 18.3.8, pp. 667-672).
Where a stereotype does not affect appearance, it is generally indicated by name on the base UML object shape. In this
example, «myStereotype2» is the stereotype name. Some of the built-in stereotypes are also represented by icons; see
Stereotype Visibility.
Where the stereotype causes the element to be drawn differently or is used to define a new type of object, the element
shape can be quite different, as illustrated by the three Robustness diagram stereotypes:
You apply a new appearance or shape by associating the stereotype with either a metafile (image file) and fill, border and
text colors, or a Shape Script that defines the shape, dimensions and text of the object.
(c) Sparx Systems 2023 Page 381 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Apply Stereotypes
During the course of your modeling, you might decide that an existing object requires a stereotype. Enterprise Architect
allows new stereotypes to be applied to objects by themselves or in combination with other stereotypes. You do this
through the 'Stereotype' field on:
· The object's 'Properties' dialog or
· Properties window
Access
Open the Properties window or the 'Properties' dialog using one of the methods outlined here, then click on the
button at the right of the 'Stereotype' field, and use the 'Stereotypes for <object name>' dialog (the Stereotype Selector).
Ribbon Explore > Portals > Window > Properties > Properties
Start > All Windows > Properties > General > Properties
Design > Package > Manage > Properties > General
(c) Sparx Systems 2023 Page 382 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Stereotype Selector
If you want to apply more than one stereotype to a UML object, from multiple sources such as Profiles or the
Customized Stereotypes List, you can select the stereotypes from the 'Stereotypes for <object name>' dialog. This dialog
also helps you to identify existing, valid individual stereotypes, and to create new stereotypes. The new stereotypes, at
this point, are simple labels; if you want them to impose an Effect on the object, locate them on the 'Stereotypes' tab of
the 'UML Types' dialog and define the Effect.
Access
Other
Display the 'Stereotype for <object name>' dialog by clicking on beside the
'Stereotype' field in the object's 'Properties' dialog or Properties window.
Field/Button Action
Perspective Click on the drop-down arrow and select a Perspective name, to limit the
stereotypes offered for selection to those available under that Perspective.
If you want to examine stereotypes across the model from any Perspective, click on
the button and select 'All'.
The 'Stereotypes' column lists the available stereotypes; click on the checkbox
against each stereotype to select.
When you initially open the 'Stereotype for <object name>' dialog, the Perspective
name in the field is the Perspective shown in the <perspective name> icon at
the top right of the application screen. Changing the Perspective in the 'Stereotype
for <object name>' dialog does not change the 'global' Perspective on the icon. If
you want to re-set the 'Stereotype for <object name>' dialog Perspective to the
global Perspective, simply click on the drop-down arrow and select 'Active'.
Profile Click on the drop-down arrow and choose the required stereotype source - an
integrated MDG Technology or the base EAUML, for example, or select the blank
line for your Customized Stereotypes list.
The field defaults to the last-selected Profile (if it is in the currently-set Perspective)
or, if the element already has a stereotype, the Profile for that stereotype.
Apply to Displays the types of object that the selected stereotype is assigned to.
New Click on this button to create a new (but undefined) stereotype. A prompt displays
for the stereotype name.
(c) Sparx Systems 2023 Page 383 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Cancel Click on this button to cancel any selections and close the dialog.
Notes
· If you have selected more than one stereotype, the 'Properties' dialog lists them on separate lines of the 'Stereotype'
field
· The appearance of a stereotype on an object in a diagram is influenced by the stereotype visibility settings on the
'Properties' dialog for the diagram
(c) Sparx Systems 2023 Page 384 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Stereotype Visibility
When you apply one or more stereotypes to an object, the display of that object in a diagram defaults to showing the
stereotype names in a string within guillemets (« »); multiple names are separated by commas. Some stereotypes are
associated with small icons that display in the top right corner of the element; these icons are built into the system, and
cannot be deleted or added to. In both cases, you can modify the visibility of the text or icon stereotype indicators in a
diagram, using the 'Properties' dialog for the diagram.
Access
Display the 'Properties' dialog for the diagram, then show the 'Elements' tab or the 'Features' tab, to select the visibility of
stereotypes on elements or features respectively.
Ribbon Design > Diagram > Manage > Properties > select 'Elements' or 'Features' tab
Context Menu Right-click on diagram background | Properties > select 'Elements' or 'Features' tab
Field/Button Action
Show Element Stereotypes Select this checkbox on the 'Elements' tab to show all element stereotypes and
keywords in the current diagram; for example (with 'Use Stereotype' icons not
selected):
Deselect this checkbox to hide all element stereotype names, icons and keywords.
Use Stereotype Icons Select this checkbox on the 'Elements' tab to display icons instead of text, for those
element stereotypes that have icons defined.
Stereotypes that do not have associated icons are still represented by the stereotype
names; for example.
(c) Sparx Systems 2023 Page 385 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Show Stereotypes Select this checkbox on the 'Features' tab to show all attribute and operation
stereotypes in the current diagram. This option does not affect the display of
element stereotypes.
Notes
· In the Browser window, the object name is preceded by the stereotype name(s) within guillemets, and multiple
names are indicated by the first stereotype name followed by an ellipsis (...); you can hide the stereotype name by
deselecting the Browser window 'Show Stereotypes' checkbox ('Start > Appearance > Preferences > Preferences >
General')
(c) Sparx Systems 2023 Page 386 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Standard Stereotypes
This table identifies the standard stereotypes provided in the EABase base model, each enclosed by guillemets (« »).
Stereotypes
«access» Dependency
«become» Flow
«call» Usage
«copy» Flow
«create» Message
«derive» Abstraction
«destroy» Message
«document» Abstraction
«executable» Abstraction
«facade» Package
«file» Abstraction
«framework» Package
«friend» Dependency
«global» AssociationEnd
«implementation» Class
«implementation» Generalization
«import» Dependency
«instantiate» Usage
«invariant» Constraint
«library» Abstraction
«local» AssociationEnd
(c) Sparx Systems 2023 Page 387 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
«metaclass» Class
«parameter» AssociationEnd
«postcondition» Constraint
«powertype» Class
«precondition» Constraint
«process» Classifier
«refine» Abstraction
«requirement» Comment
«responsibility» Comment
«self» AssociationEnd
«send» Usage
«stub» Package
«table» Abstraction
«thread» Classifier
«trace» Abstraction
«type» Class
«utility» Classifier
(c) Sparx Systems 2023 Page 388 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Notes
· You cannot change the representation of elements that include Lifelines, such as those in Sequence diagrams; the
standard representation is important in the use and function of those elements
(c) Sparx Systems 2023 Page 389 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 390 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Custom Stereotypes
A custom Stereotype applies a different appearance or characteristic to a basic UML model component or feature. You
can apply a custom stereotype in two different ways:
· To change the appearance or property of an instance of a model component of a specific type; these stereotypes are
defined on the 'Stereotypes' tab of the 'UML Types' dialog and applied through the 'Properties' dialog of the object,
within the model in which they are created, although you can transport custom stereotype definitions between
models as Reference Data
· As a simple label on an element, to identify the role or nature of the object that an element represents; these
stereotypes are simply names typed into the 'Stereotype' field of the object 'Properties' dialog, and do not affect the
element display unless they are subsequently edited to have an effect
The more obvious changes you can make are to the shape, dimensions and appearance of the object, which you can apply
by associating a metafile (image file) and customized colors with the stereotype, or by attaching a Shape Script to the
stereotype. When you have defined and saved the stereotype, you can then apply it to any new or existing object of the
base Class with which it is associated.
Access
Ribbon Settings > Reference Data > UML Types > Stereotypes
Option Action
Group name (Optional) Type a plural name under which to group the stereotype features for
attributes and operations; the name will be shown on diagrams in the attributes and
operations compartments.
Base Class Click on the drop-down arrow and select the name of a pre-existing object type so
that the stereotyped element will inherit the base characteristics of that type.
Notes (Optional, but recommended) Type any notes concerning the stereotype (not the
elements to which the stereotype is to be applied).
New Click on this button to clear the fields to create a new stereotype definition.
Delete Click on this button to delete a stereotype definition from the model.
Override Appearance
None Select to retain the default element appearance for this stereotype.
(c) Sparx Systems 2023 Page 391 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Metafile Select to associate the stereotype with an image metafile (.emf or .wmf) to apply
that image when the stereotype is used.
Shape Script Select to associate the stereotype with a custom shape, created using the Shape
Scripting language.
Edit If a Shape Script is already associated with the stereotype, click on this button to
open the Shape Editor to update the Shape Script.
Remove Remove the associated metafile or Shape Script from the stereotype.
Default Colors
Fill Click on the drop-down arrow and select or define the default background color of
the elements to be refined by the stereotype.
This color will be applied to all occurrences of any element to which the stereotype
has been applied; if the color is subsequently changed, the change is immediately
applied to all occurrences of any element to which the stereotype was applied (as
for changes to any other property of the stereotype).
However, on elements created with the stereotype, the default color might be
overridden by other color definitions of a higher priority that have been applied to
the element.
Border Click on the drop-down arrow and select or define the default color of the borders
of the elements to be refined by the stereotype.
Font Click on the drop-down arrow and select or define the default color of the text of
the elements to be refined by the stereotype.
Reset Reset the default colors to those of the base element with which the stereotype is
associated.
Notes
· You can transport custom stereotype definitions between models, using the 'Settings > Model > Transfer > Export
Reference Data' and 'Import Reference Data' ribbon options
· You can also create Stereotype elements that extend basic UML model element types to create new model element
types; you can re-use these extended model elements in other projects, by incorporating them into a Profile (usually
within an MDG Technology) and importing this into the various target projects
(c) Sparx Systems 2023 Page 392 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Extending UML
Sometimes a modeling problem cannot be adequately expressed using the base UML model elements or, similarly, an
area of work falls into a specialized domain that requires a tailored modeling approach or program language support. To
meet such requirements, you can extend the capabilities of UML to develop new modeling constructs, using MDG
Technologies to combine and deploy a wide range or extension mechanisms such as:
· UML Profiles
· Stereotypes
· Shape Scripts
· Tagged Values
· Constraints
· Patterns
· Customized Code and Transformation Templates, and
· Grammars
Using the MDG Technology Creation Wizard, you can quickly and easily integrate the extensions into a technology and
rapidly tailor UML and Enterprise Architect to address a particular modeling domain not explicitly defined in the
original UML specification, but using extension mechanisms that are still part of the Specification.
Facilities
Facility Description
Extending UML Quickly and easily extend UML into a profile and technology using the MDG
Technology Wizard.
Using MDG Technologies Wrap your UML Profiles, code modules, scripts, Patterns, images, Tagged Value
Types, report templates, Linked Document templates and Toolbox pages.
The MDG Technology Everything you require to build your own technology, such as Shape Scripts,
SDK Tagged Value Types, Code Template Frameworks, Grammar Frameworks and
more.
(c) Sparx Systems 2023 Page 393 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 394 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Access
Ribbon
Design > Diagram > Toolbox : to display the 'Find Toolbox Item' dialog and
specify <technology name>
Keyboard Shortcuts
Ctrl+Shift+3 : to display the 'Find Toolbox Item' dialog and specify
<technology name>
Action Description
Add a Profile-based Click on the element in the Toolbox page and drag it onto the diagram.
element to a diagram
Add a Profile-based Click on the connector in the Toolbox page, then click on the source element in the
connector to a diagram diagram and drag it to the target.
Add a Profile-based Click on the attribute or operation in the Toolbox page, and drag it onto the host
attribute or operation to a element on the diagram.
diagram The system prompts you to enter a name for the feature.
(c) Sparx Systems 2023 Page 395 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
When you select the element, the Properties window displays all the associated tags.
· The values of tags imported in a Profile override the values of equivalent tags in the 'UML Types' dialog; if the
initial value of the tag from the Profile is not set, the value of the tag shown in the element will be blank, even if
there are default values for the tag in the 'UML Types' dialog
· Tags that have default profile values are automatically set
· Where Tagged Values in the profiled element have a values section (for example, values="element | attribute | both"
default="both") you can select the non-default values from a drop-down list
· Where no value exists, you can add a value as free text; you would do this for a profile tag that has no initial value,
to use a default value from the 'UML Types' dialog
(c) Sparx Systems 2023 Page 396 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Access
Ribbon
Design > Diagram > Toolbox : to display the 'Find Toolbox Item' dialog and
specify <technology name>| Right-click icon for profiled element/connector/feature
| Synchronize Stereotype
Keyboard Shortcuts Ctrl+Shift+3 : Specify <technology name> in the 'Find Toolbar Item' dialog |
Right-click icon for profiled element/connector/feature | Synchronize Stereotype
Step Action
You can quickly synchronize the tags and constraints of a single element in a diagram. To do this:
Step Action
1 Drag the updated profiled element from the Diagram Toolbox page onto the element in the diagram.
A short context menu displays.
(c) Sparx Systems 2023 Page 397 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
already have.
Notes
· The 'Synchronize Stereotype' context menu option displays when a Diagram Toolbox icon represents a profiled
element or a connector; it does not display for basic UML object icons
· You can review any changes by displaying the element 'Properties' dialog, opening the 'Tags' tab and clicking on an
appropriate profiled element
· Removing a stereotype from an object automatically removes any Tagged Values assigned by that stereotype
(c) Sparx Systems 2023 Page 398 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Extension Stereotypes
Enterprise Architect supports a formidable range of modeling languages and platforms that have defined sets of elements
and connectors. However, Enterprise Architect provides the ability for the modeler to create an extensive set of other
elements, typically by adding a stereotype to an existing element. You, as a modeller, are free to create your own new
elements by using such facilities as stereotypes and Shape Scripts. It is common for communities of users to create and
share a common set of stereotypes for a particular domain.
· Analysis Stereotypes
· Boundary
· Composite Elements
· Control
· Entity
· Event
· Feature
· Hyperlink
· Image
· N-Ary Association
· Packaging Component
· Process
· Requirements
· Risk
· Screen
· Task
· Test Case
· Database Tables
· UI Control Elements
· Web Stereotypes
(c) Sparx Systems 2023 Page 399 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Boundary
Description
A Boundary is a stereotyped Object that models some system boundary, typically a user interface screen. You can also
create a Boundary as a stereotyped Class. Boundary elements are used in analysis to capture user interactions, screen
flows and element interactions (or 'collaborations').
A Boundary is used in the conceptual phase to capture users interacting with the system at a screen level (or some other
boundary interface type). It is often used in Sequence and Robustness (Analysis) diagrams. It is the View in the
Model-View-Controller Pattern.
Toolbox icon
(c) Sparx Systems 2023 Page 400 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Create a Boundary
There are two ways in which you can create a Boundary on a diagram.
Step Action
2 Right-click on the element and select the 'Properties' option; the 'Properties' dialog displays.
Step Action
1
In the Diagram Toolbox, click on to display the 'Find Toolbox Item' dialog and specify 'Analysis'.
2 From the 'Analysis Elements' page, drag the 'Boundary' icon onto the diagram.
(c) Sparx Systems 2023 Page 401 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Control
Description
A Control is a stereotyped Object that models a controlling entity or manager. A Control organizes and schedules other
activities and elements, typically in Analysis (including Robustness), Sequence and Communication diagrams. It is the
controller of the Model-View-Controller Pattern.
You can also create a Control as a stereotyped Class.
Toolbox icon
(c) Sparx Systems 2023 Page 402 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Action
1
In the Diagram Toolbox, click on to display the 'Find Toolbox Item' dialog and specify 'Analysis'.
2 From the Analysis Elements page, drag the Control icon onto the diagram.
Step Action
2 Right-click on the element and select the 'Properties' option; the 'Properties' dialog displays.
(c) Sparx Systems 2023 Page 403 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Entity
Description
An Entity is a stereotyped Object that models a store or persistence mechanism that captures the information or
knowledge in a system. It is the Model in the Model-View-Controller Pattern.
You can also create an Entity as a stereotyped Class. See the Create an Entity topic.
Toolbox icon
(c) Sparx Systems 2023 Page 404 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Create an Entity
Create an Entity element on a diagram as an Object
Step Action
1
In the Diagram Toolbox, click on to display the 'Find Toolbox Item' dialog and specify 'Analysis'.
2 From the Analysis Elements page, drag the Entity icon onto the diagram.
Step Action
2 Right-click on the element and select the 'Properties' option; the 'Properties' dialog displays.
(c) Sparx Systems 2023 Page 405 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Hyperlink
Description
You can place a Hyperlink element onto a diagram. This element is a type of text element, but one that can contain a
pointer to a range of objects such as associated document files, web pages, Help, model features and even other
Enterprise Architect model files. When you double-click on the element, Enterprise Architect executes the link.
To add a Hyperlink element, either:
· Drag the 'Hyperlink' icon from the 'Common' page of the Diagram Toolbox onto the diagram, or
· Click on the 'Hyperlink' icon in the UML Elements toolbar and then click on the diagram
When you add the Hyperlink to the diagram, you immediately type in some link text, click off the element and then
double-click on the element. The 'Hyperlink Details' dialog displays. If you want to display the information in a more
readable layout, you can resize the dialog.
Field/Button Action
Type Click on the drop-down arrow and select the type of object to link to.
In many cases, when you select the type a browser dialog displays for that type of
object, from which you select the actual object to link to.
Action This field is enabled when the dialog first displays with 'Type' defaulted to 'File', or
if you select 'File' from the 'Type' drop-down list.
The field defaults to the value 'Open', to display the file contents in read-only mode.
If you want the user to be able to change the file contents, click on the drop-down
arrow and select the value 'Edit'.
The system automatically selects the appropriate editor. For example, if you
hyperlink to a .rtf file, you can view the file in whichever internal viewer is
appropriate; however, you cannot edit .rtf files in Enterprise Architect, so the file
always opens in the Windows default .rtf editor.
Alias This field displays the text you typed in as the link text when you created the
element on the diagram. If you want to change this text, overtype it with the new
text.
If you do not provide an Alias, either the text defaults to the link itself, or (for
certain link targets such as a Matrix Profile) the system generates a simple text
instruction.
Hide Icon
If you prefer to display only the link text, without the icon, select this
checkbox.
Notes Type in any notes you might require to explain the hyperlink. These notes are not
displayed in the element on the diagram. You can format the notes using the Notes
(c) Sparx Systems 2023 Page 406 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
toolbar.
Address If a browser displayed on input to the 'Type' field, when you select the object to link
to the object name or location displays in this field. (If the object is not accessed
through a path or 'address', the field is generally not labeled.)
If no browser displayed or if you want to change the linked object to another of the
same type, either type in the object location or click on the button to display
the appropriate browser, and select the target object.
Notes
· If required, you can create a number of empty hyperlinks to complete later; if you then double-click on an empty
hyperlink, the 'Hyperlink Details' dialog displays and you can enter the details
· When hovering the cursor over the hyperlink, the standard hyperlink element buttons will also be displayed in a
pop-up toolbar, allowing you to display the 'Properties' dialog, find the element in diagrams, find the element in the
Browser window, or open the Linked Document attached to the element
(c) Sparx Systems 2023 Page 407 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Image
Description
An Image is a System Boundary element that automatically displays first the Boundary 'Properties' dialog and then the
'Select Alternate Image' dialog to change its representation to an imported image. You can use it as an icon for an
element or group of elements, or as a diagram background.
Image elements are available from the 'Common' page of the Toolbox.
Toolbox icon
(c) Sparx Systems 2023 Page 408 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Process
Description
A Process is an Activity element with the stereotype process, which expresses the concept of a business process.
Typically this involves inputs, outputs, workflow, goals and connections with other Processes. The Process element is
typically used in Analysis diagrams.
Business processes typically range across many parts of the organization and span one or more systems.
Toolbox icon
(c) Sparx Systems 2023 Page 409 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Risk
Description
A Risk is defined as the effect of uncertainty on objectives. In Project Management, it is necessary to try to identify risks
and assess:
· The likelihood that they have a negative effect on a project and
· How large that effect is likely to be
Those risks with a high probability of occurrence and/or a large impact on the project can be mitigated.
A Risk Management process might consist of these five steps:
1. Identify risks and represent each with a Risk element.
2. Identify which elements (such as Components, Use Cases or Features) are vulnerable to each risk; you might decide
to create «trace» dependencies from these elements to the Risk elements.
3. Assess the likelihood and magnitude of the risks.
4. Identify ways to mitigate the risks.
5. Prioritize the risk reduction measures based on their likelihood, magnitude and ease of mitigation.
Risk elements are not the same as the risks that you assign to an element through the Risks window. Such risks are
internal to the selected element, whilst a Risk element can be associated with a number of elements, either in a logical
group or totally separate.
Risk elements are available from the 'Requirements' page of the Toolbox.
Notes
· Risk elements can be displayed with or without an identifying 'R' in the top right corner of the element; to toggle the
display of this letter, select or deselect the 'Show stereotype icon for requirements' checkbox on the 'Preferences'
dialog, 'Objects' page
Toolbox icon
(c) Sparx Systems 2023 Page 410 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Task
Description
A Task element represents a task that must be performed in relation to an element. Through the Task element you can
assign resources to the task itself, rather than just to the parent element.
You can create a hierarchy or tree structure of Task elements to break a large task into separate parts and assign different
resources to each part.
Toolbox icon
(c) Sparx Systems 2023 Page 411 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Test Element
Description
A Test element represents a step in the Basic, Alternate and Exception Paths of a Scenario created in a Use Case or other
element. The Test element is generated within a Test Case element.
Each Test element has a status band at the left end, which is color coded to visually represent the value of the 'Status'
field in the element properties. The element has an identifying 'T' in the top right corner, which you can hide if you prefer
not to show it.
Toolbox icon
Notes
· To toggle display of the letter 'T' in the top right corner of the element, select or deselect the 'Show stereotype icon
for requirements' checkbox on the 'Preferences' dialog, 'Objects' page
(c) Sparx Systems 2023 Page 412 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Test Case
Description
A Test Case is a stereotyped Use Case element. You might use it to extend the facilities of the Test Cases window, by
applying element properties and capabilities to the tests of a feature represented by another element or - more
appropriately - set of elements. That is, you can define in one go, in the Test Cases window for the Test Case element,
the details of the tests that apply to each of several elements, instead of recording the details separately in each element.
Within the Test Case element properties you can define test requirements and constraints, and associate the test with test
files. You can also link the element to Document Artifacts or (in the Corporate, Unified and Ultimate Editions) directly
to a Linked Document, such as a Test Plan.
The Test Case element enables you to give greater visibility to tests, in the Browser window, Diagram List, Package
Browser, Model Search, Relationship Matrix, Traceability window and reports.
The Test Case element is available through the 'Use Case' and 'Maintenance' pages of the Diagram Toolbox.
Toolbox icon
(c) Sparx Systems 2023 Page 413 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Design Patterns
A Design Pattern is a template for solving commonly recurring design problems. A Design Pattern consists of a series of
elements and connectors that can be reused in a new context. The advantage of using these Patterns is they have been
tested and refined in a number contexts and so are typically robust solutions to common problems.
Enterprise Architect provides extensive support for both creating and using Design Patterns. Patterns are typically
created by experienced modelers who can see how to distil an abstract problem and solution from a concrete model. The
Pattern user must be able to identify the correct Pattern to use and must select appropriate names for the elements of the
Pattern in the context.
Patterns can be saved from any diagram, creating an XML file that describes the Pattern; these files can be imported into
a repository as a resource that can then be used in any context.
To help you start using Design Patterns in Enterprise Architect, Sparx Systems provides you with the Patterns originally
published in the book Design Patterns - Elements of Reusable Object-Oriented Software by Gamma et al., referred to as
the 'Gang of Four' or GoF Patterns. When the GoF Technology is enabled, you can access these Patterns through a set of
Toolbox pages.
Notes
· You can transport all Patterns listed in the 'Resources' tab of the Browser window between projects, using the
'Settings > Model > Transfer > Export Reference Data' and 'Import Reference Data' ribbon options
(c) Sparx Systems 2023 Page 414 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Publish a Pattern
To publish a Design Pattern you first must model the Pattern as a diagram within Enterprise Architect. This example
diagram was created from an example in the GoF book Design Patterns - Elements of Reusable Object-Oriented
Software by Gamma et al.
Access
Field/Button Action
Filename Type a directory path and .XML filename to contain the published Pattern.
Category Type the Category under which the Pattern should be listed in 'Patterns' (required).
(c) Sparx Systems 2023 Page 415 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Actions Select the appropriate checkboxes to select the actions for the elements that are
contained in the Pattern; these actions are performed when the Pattern is used.
The available actions are:
· Create: Creates the Pattern element directly without modification
· Merge: Merges the Pattern element with an existing element, enabling the
existing element to take on the role of the selected Pattern element
· Instance: Creates the Pattern element as an instance of an existing element
· Type: Creates the Pattern element types as an existing element
If your Pattern includes an Object element, you would use 'Instance' to set the
classifier of the Object to one of the Classes in the diagram onto which you are
dropping the Pattern.
If your Pattern includes a Property (Port or Part) you would use 'Type' to set the
type of the Property to one of the Classes in the diagram onto which you are
dropping the Pattern.
Notes
· In the Corporate, Unified and Ultimate Editions of Enterprise Architect, if security is enabled you must have
'Manage Diagrams' permission to publish a diagram as a Pattern
· If your source diagram contains information flows, the 'Information Items Conveyed' and 'Information Flows
Realized' data is not copied into the Pattern
· To change the name of one of the elements, double-click on the element to display the 'Edit' dialog; from this dialog
you can also add comments detailing the element's purpose
· Patterns can not be published for Sequence diagrams
(c) Sparx Systems 2023 Page 416 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Action
1 Open the appropriate diagram, hold down the Ctrl key and click on each element
that you want to include in the Pattern.
You could also 'drag' across a set of elements in the diagram to save as a Pattern.
2 Right-click on one of the selected elements and click on the 'Save Selected
Elements as Pattern' option.
The 'Save Diagram Pattern in Artifact' dialog displays.
3 If the 'Save Using' field does not show the value 'New Artifact', click on the
drop-down arrow and select this value. If this is the first Pattern Artifact in the
model, the field defaults to this value as the only value it can have.
4 The 'Name' field defaults to the name of parent diagram plus '_Pattern'. Either leave
this name or overtype it with your preferred Pattern name.
5 The 'Save to' field defaults to the name of the diagram's parent Package. Either
leave this Package name or click on the icon and browse for a different
Package under which to create the Artifact.
(c) Sparx Systems 2023 Page 417 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Step Action
1 Open the diagram into which you will paste the Pattern from the Artifact.
The diagram must be in Graphical View, and not in Internal Specification View,
Gantt View or List View.
Method Description
1 Follow steps 1 and 2 in the Save Diagram Elements as a Pattern in a New Artifact
table, then set the 'Save Using' field to 'Existing Artifact'.
Click on the 'Name' field and on the name of the Pattern to update. The 'Save To'
field grays out, as it uses the Package address of the existing Artifact.
Click on the OK button; the Artifact is updated with the new Pattern of elements.
Notes
· In the Corporate, Unified and Ultimate Editions of Enterprise Architect, if security is enabled you must have 'Update
Diagrams' permission to generate the Pattern from the DiagramPattern stereotyped Artifact into a diagram
(c) Sparx Systems 2023 Page 418 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Access
Use one of the methods outlined here to display the 'Resources' tab of the Browser window.
Within the 'Resources' tab of the Browser window, right-click on 'Model Patterns | Import Model Pattern'.
Ribbon Start > All Windows > Design > General . Browse > Resources
Explore > Portals > Windows > Explore > Resources
Step Action
1 On the 'Import Model Pattern' dialog, type in or browse for the name of the XML file to import.
2 Select to import the file into either the model or the user APPDATA location.
A number of technologies provide their own Patterns, and some technologies are designed principally as a vehicle for
making specific Patterns available to the model, such as the technology for Gang of Four Patterns. Such Patterns are
provided through the 'Resources' tab of the Browser window and the Diagram Toolbox pages for the technology. If you
want to use such Patterns, check that the appropriate technology has been loaded and enabled in the model.
(c) Sparx Systems 2023 Page 419 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Use a Pattern
Using a Design Pattern, you can rapidly create template solutions for code structures that perform the same type of task
in other situations, and use items defined in the Pattern with the model.
Access
Use one of the methods outlined here to display the 'Resources' tab of the Browser window.
Ribbon Start > All Windows > Design > General > Browse > Resources
Explore > Portals > Windows > Explore > Resources
Step Action
3 Expand the folder 'Patterns' and expand sub-folders as necessary, until the Pattern you require is located.
You can view the Pattern details in read-only mode by right-clicking on the name and selecting the 'View
Pattern Details' option.
4 Either:
· Select the 'Add Pattern to Diagram' context menu option or
· Drag and drop the Pattern from the 'Resources' tab of the Browser window onto the diagram
The 'Add Pattern <pattern group> <pattern name> to Diagram' dialog displays.
Step Action
1 In the 'Add Pattern <pattern group> <pattern name> to Diagram' dialog, ensure the option 'Import as
Package Fragment' is unchecked.
(c) Sparx Systems 2023 Page 420 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
3
Click on the button at the end of the item row to display the 'Edit' dialog.
The specific method for changing the element name is dependant upon the entry in the 'Action' column of
the 'Pattern Elements' panel.
4 If the 'Action' entry for the element is 'Create', then in the 'Default' field in the 'Edit' dialog delete the
existing value and type your own, user-defined value.
Click on the OK button.
The element default is updated on the 'Add Pattern...' dialog.
5
If the 'Action' entry for the element is 'Merge', in the 'Edit' dialog click on the button to browse to an
existing element classifier.
The 'Select <Item>' dialog displays.
(c) Sparx Systems 2023 Page 421 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
Reference
Option Action
Use Auto Names Select this checkbox if you want to apply the element auto-naming convention
defined for the project.
Element Notes Display the comments that describe the element in the Pattern.
Highlight an element in the 'Pattern Elements' panel to view the notes.
Import as Package Select this option to import the Pattern on a new diagram instead of the current
Fragment diagram.
Click on the OK button. Enterprise Architect will :
· Create a new Package, with the same name as that of the Pattern, under the
currently selected Package in the Browser window
· Create a new diagram, with the same name as that of the Pattern, under this
Package
· Import the Pattern into the new diagram
Notes
· When the option 'Import as Package Fragment' is selected, the 'Pattern Elements' section and 'Use Auto Names'
option will become disabled
(c) Sparx Systems 2023 Page 422 of 423 Created with Enterprise Architect
Unified Modeling Language (UML) 10 November, 2023
(c) Sparx Systems 2023 Page 423 of 423 Created with Enterprise Architect