Software Disclaimer

Class UML 2.4.1::InformationFlow

Description:

An information flow 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 instance specification), they may be represented by a link that joins the two, and so on.

Direct Superclasses: DirectedRelationship, PackageableElement

Direct Subclasses:

Class Precedence List: InformationFlow, DirectedRelationship, Relationship, PackageableElement, ParameterableElement, NamedElement, Element

Properties:

conveyed : Classifier (1 *); -- source InformationFlow
informationSource : NamedElement (1 *); -- source InformationFlow
informationTarget : NamedElement (1 *); -- source InformationFlow
realization : Relationship (0 *); -- source InformationFlow
realizingActivityEdge : ActivityEdge (0 *); -- source InformationFlow
realizingConnector : Connector (0 *); -- source InformationFlow
realizingMessage : Message (0 *); -- source InformationFlow
source : Element (1 *); -- source DirectedRelationship
target : Element (1 *); -- source DirectedRelationship
relatedElement : Element (1 *); -- source Relationship
visibility : VisibilityKind (1 1); -- source PackageableElement
owningTemplateParameter : TemplateParameter (0 1); -- source ParameterableElement
templateParameter : TemplateParameter (0 1); -- source ParameterableElement
clientDependency : Dependency (0 *); -- source NamedElement
name : String (0 1); -- source NamedElement
nameExpression : StringExpression (0 1); -- source NamedElement
namespace : Namespace (0 1); -- source NamedElement
qualifiedName : String (0 1); -- source NamedElement
ownedComment : Comment (0 *); -- source Element
ownedElement : Element (0 *); -- source Element
owner : Element (0 1); -- source Element

Constraints:

Signature: sources_and_targets_kind() : Boolean;
Description: 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).
The OCL used here is not normative.
Editor's notes: p-> missing in many places
Expression: (self.informationSource->forAll(p | p->oclIsKindOf(Actor) or p->oclIsKindOf(Node) or p->oclIsKindOf(UseCase) or p->oclIsKindOf(Artifact) or p->oclIsKindOf(Class) or p->oclIsKindOf(Component) or p->oclIsKindOf(Port) or p->oclIsKindOf(Property) or p->oclIsKindOf(Interface) or p->oclIsKindOf(Package) or p->oclIsKindOf(ActivityNode) or p->oclIsKindOf(ActivityPartition) or p->oclIsKindOf(InstanceSpecification))) and (self.informationTarget->forAll(p | p->oclIsKindOf(Actor) or p->oclIsKindOf(Node) or p->oclIsKindOf(UseCase) or p->oclIsKindOf(Artifact) or p->oclIsKindOf(Class) or p->oclIsKindOf(Component) or p->oclIsKindOf(Port) or p->oclIsKindOf(Property) or p->oclIsKindOf(Interface) or p->oclIsKindOf(Package) or p->oclIsKindOf(ActivityNode) or p->oclIsKindOf(ActivityPartition) or p->oclIsKindOf(InstanceSpecification)))
Original: (self.informationSource->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.informationTarget->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)))

Signature: must_conform() : Boolean;
Description: 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.
Expression: true

Signature: convey_classifiers() : Boolean;
Description: An information flow can only convey classifiers that are allowed to represent an information item.
Expression: self.conveyed.represented->forAll(p | p->oclIsKindOf(Class) or oclIsKindOf(Interface) or oclIsKindOf(InformationItem) or oclIsKindOf(Signal) or oclIsKindOf(Component))

Operations:

No additional operations.



Send questions or comments to [email protected].