The table below shows the concepts that can be used to create UML models in Enterprise Studio. In the table below each concept is visualized in an example, using the default color of the element. Other elements in the example are faded in order to place them in the background. For a more detailed description of the UML concepts and their use, visit the website of the Object Management Group (http://www.omg.org/spec/UML) for the official UML specification.
On this page:
Name + description
Depending on the abstraction level of the model, the attributes and operations may or may not be specified. In a use case diagram it is not possible to define attributes and operations in a class, or to see them if the class is added from a class diagram.
An interface is a specification of behavior. It is a model element that describes how objects of a different model element (for example a class) that implements the interface, can be accessed by other objects. It defines the services that can be implemented by the other model element. One interface can be implemented by multiple model elements.
The relation between an interface and a different model element is defined by an interface realization.
A data type is a model element similar to a class that represents a set of values. It is used as an constraint on the range of values represented by an associated typed element, for example a class. Examples of values are date/time, gender, currency, address. A data type can contain attributes and operations.
The UML functionality in Enterprise Studio does not support defining operations on data types. Only attributes can be included.
A primitive type is a type of data type that represents data values that have no structure. It can be used to type attributes and operations. Standard primitive types include Boolean, Integer, Real, String, and UnlimitedNatural.
An enumeration is a data type that has a limited number of literal values. An enumeration is used as type for attributes or operations in other classes. An enumeration is depicted as a class and the literals are located in the section where class attributes are usually located.
An association junction is used for relating three or more model elements (classes, interfaces, data types, primitive types, enumerations, packages) in a class diagram. It can be used where there is a dependent relationship between several elements. Associations are drawn from the association junction to the elements.
Associations used like this are called N-ary associations. Associations between two elements are binary associations. N-ary associations only have one association end and one role on the side of the element.
A choice is a pseudostate in the state diagram that realizes 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 prior actions performed in the same compound transition prior to reaching the choice point. A choice is shown as a diamond with one transition arriving and two or more transitions leaving.
Note: In the figure below the choice element is colored black to make it stand out more to the rest of the elements. In real it is gray.
A package is used to group model elements like classes or use cases. It is used for organizing large models. A package can contain other packages in order to create hierarchy. Dependencies between packages can be modeled using UML dependencies. In a use case diagram, packages can also be used to define the system.
An attribute defines values that can be attached to instances of a class, interface or data type. An attribute has only one value. A class, interface, or data type can have multiple attributes. Once placed on a diagram, the object also serves as a control to access its properties.
An operation is a behavioral feature (method or function) that may be performed by an instance of a class, interface or data type. Operations can be attached to them, below the attributes. Once placed on a diagram, the object also serves as a control to access its properties.
The UML functionality in Enterprise Studio does not support defining operations for data types. They can only be defined in classes and interfaces.
A literal is a fixed value of an enumeration. An enumeration can contain multiple literals.
A use case is a sequence of actions that a system can perform, interacting with actors of the system.
An actor is a role that a user plays with respect to the system when interacting with use cases. It is an entity that is outside the system and communicates directly with the system. An actor can be a human as well as another system. From the perspective of the system the actors represent the complete outside world.
An extension point is used to indicate that a use case may be extended with a second use case. The use cases are connected with an extend relation.
Once placed on a diagram, the object also serves as a control to access its properties.
An interaction is a unit of behavior in the sequence diagram. The most visible aspects of an interaction are the messages between lifelines. An interaction can enclose multiple fragments, which are sub-interactions.
A state machine is a unit in the state diagram that defines a set of concepts that can be used for modeling discrete event-driven behaviors using a finite state-machine formalism. In addition to expressing the behavior of parts of a system, a state machine can also be used to express the valid interaction sequences, called protocols, for parts of a system.
A lifeline describes the timeline for a process, where time increases down the page. It represents an individual participant in the interaction. Events on the same timeline are ordered linearly down the page, except where they occur within a parallel combined fragment (a fragment which defines a combination of fragments).
An execution specification is a fragment which represents a period in the participant's lifetime. It is used for interactions specifying messages that result from actions and behaviors.
An execution specification is represented as a thin white rectangle on the lifeline.
A destruction occurrence is a message occurrence in the sequence diagram that represents the destruction of the object described by the lifeline. It may result in the subsequent destruction of other objects that this object owns by composition. No other occurrence may appear below the destruction event on a given lifeline.
A terminate is a pseudostate in the state diagram that indicates that the lifeline of the state machine has ended.
Lost or found occurrence
A lost or found occurrence is an endpoint to reflect a lost or found message in sequence in the sequence diagram. Lost messages are those that are either sent but do not arrive at the intended recipient, or which go to a recipient not shown on the current diagram.
Found messages are those that arrive from an unknown sender, or from a sender not shown on the current diagram. The messages are denoted going to or coming from an endpoint.
An initial state is a pseudostate in the state diagram that is the source for a single transition to the default state of a composite state. It is the source for at most one transition.
A junction is a pseudostate the state diagram that is used to chain together multiple transitions. It is used to construct compound transition paths between states. A junction can have one or more incoming, and one or more outgoing transitions, and can be used to merge or split transitions.
A gate is a connection point for relating a message outside of a frame with a message inside the frame. It can be the frame of an interaction, an interaction use, or a fragment. The purpose of gates and messages between gates is to specify the concrete sender and receiver for every message. Gates are notated as message connection points on the frame's edge.
A fragment, or interaction fragment, represents the most general interaction unit. Each fragment is an interaction by itself. There can be multiple fragments in one interaction.
A guard, or interaction constraint, is a constraint used in interactions for specifying a condition. It is a Boolean expression that "guards" an operand in a combined fragment. A guard is shown in square brackets covering the lifeline where the first event occurrence will occur, positioned above that event.
An interaction use is an interaction fragment, which allows to use (or call) another interaction. It can be used for simplifying large and complex sequence diagrams.
The interaction use is displayed as a combined fragment with operator ref.
A state invariant is a fragment that represents a runtime constraint on the participants of the interaction. It may be used to specify different kinds of constraints, such as values of attributes or variables, internal or external states, etc.
A state invariant is usually shown as a constraint in curly braces, or as a state symbol.
A state in a state diagram represents a situation during which some invariant condition holds. The invariant may represent a static situation such as an object waiting for some external event to occur, but it can also model dynamic conditions such as the process of performing some behavior. UML defines the following kinds of states:
A final state is a pseudostate in a state diagram signifying that the enclosing region is completed. If the enclosing region is directly contained in a state machine and all other regions in the state machine also are completed, then it means that the entire state machine is completed.
A fork is a pseudostate in a state diagram that serves to split an incoming transition into two or more transitions terminating on states in different regions. The segments outgoing from a fork must not have guards or triggers.
A join is a pseudostate in a state diagram that merges several transitions into different regions. The transitions entering a join cannot have guards or triggers.
Shallow history is a pseudostate in the state diagram that represents the most recent active substate of its containing state (but not the substates of that substate). A composite state can have at most one shallow history state or substate. A transition coming into the shallow history (sub)state is equivalent to a transition coming into the most recent active substate of a state. At most one transition may originate from the history connector to the default shallow history state. This transition is taken in case the composite state had never been active before. The entry action of the state represented by the shallow history is performed.
Deep history is a pseudostate in the state diagram that represents the most recent active configuration of the composite state that directly contains this pseudostate. A composite state can have at most one deep history (sub)state. At most one transition may originate from the history connector to the default deep history state. This transition is taken in case the composite state had never been active before. Entry actions of states entered on the implicit direct path from the deep history to the innermost state(s) represented by a deep history are performed. The entry action is performed only once for each state in the active state configuration being restored.
An entry point is a pseudostate in the state diagram on the border of a state machine or composite state. In each region of the state machine or composite state it has at most a single transition to a state or substate within the same region.
NB: In the figure below the entry point element is colored black to make it stand out more to the rest of the elements. In real it is gray.
An exit point is a pseudostate in the state diagram on the border of a state machine or composite diagram. Entering an exit point within any region of the composite state or state machine referenced by a submachine state implies the exit of this composite state or submachine state and the triggering of the transition that has this exit point as source in the state machine enclosing the submachine or composite state.
NB: In the figure below the exit point element is colored black to make it stand out more to the rest of the elements. In real it is gray.
Name + description
Class diagram: An association is a structural relationship between two or more model elements (classes, interfaces, data types, primitive types, enumerations, packages). Associations used between two elements are called binary associations. Associations used between three or more elements (combined with an association junction) are called N-ary associations.
N-ary associations are drawn from the association junction to the different elements. N-ary associations only have one association end and one role on the side of the element.
Use case diagram: An association is the participation of an actor in a use case.
An aggregation is a special type of association indicating that one or more model elements are "part of" another element. The part element is part of the whole and belongs to it. The part element is owned by the whole, but it can also be part of other elements. The part element can also exist on its own, its existence does not depend on the existence of the element it is part of.
An aggregation is depicted as a white diamondon the association end.
A composition is a special type of association indicating that a model element is part of another element. The part element is owned by the whole, but it only belongs to one whole and it cannot exist on its own.
Its existence usually depends on the life cycle of the element it belongs to. In a composition the part element cannot exist without the whole.
A composition is depicted as a black diamondon the association end.
An association class is a class that is linked to an association relationship. It means that the class is identified with the association. An association class allows you to add attributes and operations to an association.
A generalization defines the generalization/specialization between two similar model elements, for example two classes or two use cases.
Class diagram: A relationship between a general class (the superclass) and more specific classes (subclasses).
An interface realization represents the relationship between an interface and a different model element, like a class.
A dependency relationship can be used between all kinds of model elements. A dependency between two model elements indicates that a model element needs another model element in order to be able to function properly. It is a supplier/client relationship. The dependent element is the client, and the element it depends on is the supplier. Modification of the supplier element may impact the client element.
A dependency between packages indicates that within the dependent package services from another package are used.
An element import is a directed relationship between an importing package and imported packageable element (an element that can belong directly to a package). An element import is used to selectively import individual elements from another package without relying on a package import.
An element import is depicted as a dependency relationship with the keyword «element import».
A package import is a directed relationship between an importing package and imported package. A package import is used to import another package. It is not possible to refer to individual elements from this package.
A package import is depicted as a dependency relationship with the keyword «import».
A package merge is a relationship that indicates that the contents of two packages are to be combined. It can be seen as an operation that takes the contents of two packages and produces a new package that combines the contents of the packages that are merged.
A package merge should be used when elements defined in different packages have the same name and are intended to represent the same concept.
A package merge is depicted as a dependency relationship with the keyword «merge».
An include connects a use case and a sub-case, which is a use case in itself. A sub-case is part of a use case. One sub-case can be used by multiple use cases. An include can be used to add detail to a use case diagram, to split up large use cases. An include is depicted as a dependency relationship with the keyword «include».
An extend is a relationship between a use case and a second use case, which may optionally be executed within the first use case. An extend can be used to model optional behavior in a use case diagram. An extend is depicted as a dependency relationship with the keyword «extend».
A message is an arrow that represents one kind of specific communication between lifelines of an interaction in a sequence diagram. The message not only specifies the kind of communication, but also the sender and receiver. The form of the line or arrowhead reflects the sort of message: synchronous call, asynchronous call, asynchronous signal, or reply.
State invariant link
A state invariant link is an annotation element in a sequence diagram. It can be used to show a state invariant as a note associated with an occurrence specification. The state invariant link is used to connect the state invariant to the other element.
A transition is a directed relationship between states and/or pseudostates (initial state, final state, choice, join, fork, junction, exit point, entry point, terminate, shallow history, deep history) in a state diagram. It may be part of a compound transition, which takes the state machine from one state configuration to another, representing the complete response of the state machine to an occurrence of an event of a particular type. Transitions can have notations like triggers and guards.