Software Disclaimer

Class UML 2.3::FunctionBehavior

Description:

A function behavior is an opaque behavior that does not access or modify any objects or other external data.

Direct Superclasses: OpaqueBehavior

Direct Subclasses:

Class Precedence List: FunctionBehavior, OpaqueBehavior, Behavior, Class, EncapsulatedClassifier, StructuredClassifier, BehavioredClassifier, Classifier, TemplateableElement, Type, PackageableElement, ParameterableElement, Namespace, RedefinableElement, NamedElement, Element

Properties:

body : String (0 *); -- source OpaqueBehavior
language : String (0 *); -- source OpaqueBehavior
context : BehavioredClassifier (0 1); -- source Behavior
isReentrant : Boolean (1 1); -- source Behavior
ownedParameter : Parameter (0 *); -- source Behavior
ownedParameterSet : ParameterSet (0 *); -- source Behavior
postcondition : Constraint (0 *); -- source Behavior
precondition : Constraint (0 *); -- source Behavior
redefinedBehavior : Behavior (0 *); -- source Behavior
specification : BehavioralFeature (0 1); -- source Behavior

Designates a behavioral feature that the behavior implements. The behavioral feature must be owned by the classifier that owns the behavior or be inherited by it. The parameters of the behavioral feature and the implementing behavior must match. A behavior does not need to have a specification, in which case it either is the classifer behavior of a BehavioredClassifier or it can only be invoked by another behavior of the classifier.
Opposite: BehavioralFeature.method

extension : Extension (0 *); -- source Class

References the Extensions that specify additional properties of the metaclass. The property is derived from the extensions whose memberEnds are typed by the Class.
{readonly, derived}
Opposite: Extension.metaclass
The spec does not provide a function to compute this derived property!

isAbstract : Boolean (1 1); -- source Class
isActive : Boolean (1 1); -- source Class
nestedClassifier : Classifier (0 *); -- source Class
ownedAttribute : Property (0 *); -- source Class
ownedOperation : Operation (0 *); -- source Class
ownedReception : Reception (0 *); -- source Class
superClass : Class (0 *); -- source Class
ownedPort : Port (0 *); -- source EncapsulatedClassifier
ownedConnector : Connector (0 *); -- source StructuredClassifier
part : Property (0 *); -- source StructuredClassifier
role : ConnectableElement (0 *); -- source StructuredClassifier

References the roles that instances may play in this classifier.
{readonly}
Derived union with sources: (ownedAttribute)
Subsets: Namespace.member

classifierBehavior : Behavior (0 1); -- source BehavioredClassifier
interfaceRealization : InterfaceRealization (0 *); -- source BehavioredClassifier
ownedBehavior : Behavior (0 *); -- source BehavioredClassifier
ownedTrigger : Trigger (0 *); -- source BehavioredClassifier
attribute : Property (0 *); -- source Classifier
collaborationUse : CollaborationUse (0 *); -- source Classifier
feature : Feature (0 *); -- source Classifier
generalization : Generalization (0 *); -- source Classifier
inheritedMember : NamedElement (0 *); -- source Classifier
isFinalSpecialization : Boolean (1 1); -- source Classifier
ownedTemplateSignature : RedefinableTemplateSignature (0 1); -- source Classifier
ownedUseCase : UseCase (0 *); -- source Classifier
powertypeExtent : GeneralizationSet (0 *); -- source Classifier
redefinedClassifier : Classifier (0 *); -- source Classifier
representation : CollaborationUse (0 1); -- source Classifier
substitution : Substitution (0 *); -- source Classifier
templateParameter : ClassifierTemplateParameter (0 1); -- source Classifier

The template parameter that exposes this element as a formal parameter.
Redefines: ParameterableElement.templateParameter
Opposite: ClassifierTemplateParameter.parameteredElement

useCase : UseCase (0 *); -- source Classifier
templateBinding : TemplateBinding (0 *); -- source TemplateableElement
package : Package (0 1); -- source Type
visibility : VisibilityKind (1 1); -- source PackageableElement
owningTemplateParameter : TemplateParameter (0 1); -- source ParameterableElement
elementImport : ElementImport (0 *); -- source Namespace
importedMember : PackageableElement (0 *); -- source Namespace
member : NamedElement (0 *); -- source Namespace
ownedMember : NamedElement (0 *); -- source Namespace
ownedRule : Constraint (0 *); -- source Namespace
packageImport : PackageImport (0 *); -- source Namespace
isLeaf : Boolean (1 1); -- source RedefinableElement
redefinedElement : RedefinableElement (0 *); -- source RedefinableElement
redefinitionContext : Classifier (0 *); -- source RedefinableElement
clientDependency : Dependency (0 *); -- source NamedElement
name : String (0 1); -- source NamedElement
nameExpression : StringExpression (0 1); -- source NamedElement
namespace : Namespace (0 1); -- source NamedElement

Specifies the namespace that owns the NamedElement.
{readonly}
Derived union with sources: (package)
Subsets: Element.owner
Opposite: Namespace.ownedMember

qualifiedName : String (0 1); -- source NamedElement
ownedComment : Comment (0 *); -- source Element
ownedElement : Element (0 *); -- source Element
owner : Element (0 1); -- source Element

Constraints:

Signature: types_of_parameters() : Boolean;
Description: The types of parameters are all data types, which may not nest anything but other datatypes.
The OCL used here is not normative.
Editor's notes: Is this an operator or a constraint?
Expression: true
Original: def: hasAllDataTypeAttributes(d : DataType) : Boolean = d.ownedAttribute->forAll(a | a.type.oclIsTypeOf(DataType) and hasAllDataTypeAttributes(a.type)) self.ownedParameters->forAll(p | p.type.notEmpty() and p.oclIsTypeOf(DataType) and hasAllDataTypeAttributes(p))

Signature: one_output_parameter() : Boolean;
Description: A function behavior has at least one output parameter.
Expression: self.ownedParameter-> select(p | p.direction=#out or p.direction=#inout or p.direction=#return)->size() >= 1

Operations:

No additional operations.



Send questions or comments to xmi-interop@omg.org.