|Previous||UML Classes||Table of Contents||UML Packages||Next|
DirectedRelationship (from Kernel ) on page 62
PackageableElement (from Kernel ) on page 111
Issue 8506 -fix typo
An InformationFlow specifies that one or more information items circulates from its sources to its targets. Information flows
require some kind of information channel for transmitting information items from the source to the destination. An information
channel is represented in various ways depending on the nature of its sources and targets. It may be represented by connectors,
links, associations, or even dependencies. For example, if the source and destination are parts in some composite structure
such as a collaboration, then the information channel is likely to be represented by a connector between them. Or, if the
source and target are objects (which are a kind of InstanceSpecification), they may be represented by a link that joins the
two, and so on.
No additional attributes
• realization : Relationship [*] Determines which Relationship will realize the specified flow.
• conveyed : Classifier [1..*] Specifies the information items that may circulate on this information flow.
• realizingConnector : Connector[*] Determines which Connectors will realize the specified flow.
• realizingMessage : Message[*] Determines which Messages will realize the specified flow.
Issue 8508 - fix capitalization
Issue 6446 - Sources and targets of information flow can also include ActivityNode and ActivityPartition .
8506 - add OCL expression
 The sources and targets of the information flow can only be one of the following kind: Actor , Node, UseCase, Artifact,
Class, Component, Port, Property, Interface, Package, ActivityNode, ActivityPartition and InstanceSpecification except when
its classifier is a relationship (i.e. it represents a link).
(self.source->forAll(p | p->oclIsKindOf(Actor ) or oclIsKindOf(Node) or oclIsKindOf(UseCase) or oclIsKindOf(Artifact) or oclIsKindOf(Class)
or oclIsKindOf(Component) or oclIsKindOf(Port) or oclIsKindOf(Property) or oclIsKindOf(Interface) or oclIsKindOf(Package)
or oclIsKindOf(ActivityNode) or oclIsKindOf(ActivityPartition ) or oclIsKindOf(InstanceSpecification)))
and (self.target-> forAll(p | p->oclIsKindOf(Actor ) or oclIsKindOf(Node) or oclIsKindOf(UseCase) or oclIsKindOf(Artifact)
or oclIsKindOf(Class) or oclIsKindOf(Component) or oclIsKindOf(Port) or oclIsKindOf(Property) or oclIsKindOf(Interface) or
oclIsKindOf(Package) or oclIsKindOf(ActivityNode) or oclIsKindOf(ActivityPartition ) or oclIsKindOf(InstanceSpecification)))
Issue 8506 - fix typos
 The sources and targets of the information flow must conform with the sources and targets or, conversely, the targets
and sources of the realization relationships, if any.
 An information flow can only convey classifiers that are allowed to represent an information item. (see constraints on
InformationItem (from InformationFlows) on page 636).
Issue 8506 - add OCL constraint
self.conveyed.represented->forAll(p | p->oclIsKindOf(Class) or oclIsKindOf(Interface) or oclIsKindOf(InformationItem) or oclIsKindOf(Signal) or oclIsKindOf(Component)
An information flow is an abstraction of the communication of an information item from its sources to its targets. It is used
to abstract the communication of information between entities of a system. Sources or targets of an information flow designate
sets of objects that can send or receive the conveyed information item. When a source or a target is a classifier, it represents
all the potential instances of the classifier; when it is a part, it represents all instances that can play the role specified
by the part; when it is a package, it represents all potential instances of the directly or indirectly owned classifiers of
An information flow may directly indicate a concrete classifier, such as a class, that is conveyed instead of using an information
An information flow is represented as a dependency, with the keyword <<flow>>.
Changes from previous UML
InformationFlow does not exist in UML 1.4.