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: OpaqueBehaviorDirect Subclasses: Class Precedence List: FunctionBehavior,
OpaqueBehavior,
Behavior,
Class,
EncapsulatedClassifier,
StructuredClassifier,
BehavioredClassifier,
Classifier,
TemplateableElement,
Type,
PackageableElement,
ParameterableElement,
Namespace,
RedefinableElement,
NamedElement,
ElementProperties:

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 References a list of parameters to the behavior which describes the order
and type of arguments that can be given when the behavior is invoked and
of the values which will be returned when the behavior completes its execution.
{
composite,
ordered}
Subsets: Namespace.ownedMember

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
extension :
Extension (0 *); -- source
Class
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 Receptions that objects of this class are willing to accept.
{
composite}
Subsets: Classifier.feature, Namespace.ownedMember

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
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 If true, the Classifier cannot be specialized by generalization. Note that
this property is preserved through package merge operations; that is, the
capability to specialize a Classifier (i.e., isFinalSpecialization =false)
must be preserved in the resulting Classifier of a package merge operation
where a Classifier with isFinalSpecialization =false is merged with a matching
Classifier with isFinalSpecialization =true: the resulting Classifier will
have isFinalSpecialization =false.
Default value: FALSE

ownedTemplateSignature :
RedefinableTemplateSignature (0 1); -- source
Classifier
ownedUseCase :
UseCase (0 *); -- source
Classifier
powertypeExtent :
GeneralizationSet (0 *); -- source
Classifier
redefinedClassifier :
Classifier (0 *); -- source
Classifier References the Classifiers that are redefined by this Classifier.
Subsets: RedefinableElement.redefinedElement

representation :
CollaborationUse (0 1); -- source
Classifier
substitution :
Substitution (0 *); -- source
Classifier
templateParameter :
ClassifierTemplateParameter (0 1); -- source
Classifier
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
qualifiedName : String (0 1); -- source
NamedElement
ownedComment :
Comment (0 *); -- source
Element
ownedElement :
Element (0 *); -- source
Element The Elements owned by this element.
{
composite,
readonly}
Derived union with sources: (ownedComment, nameExpression, packageImport, ownedRule, ownedMember, elementImport, templateBinding, substitution, ownedUseCase, ownedTemplateSignature, generalization, collaborationUse, ownedTrigger, ownedBehavior, interfaceRealization, ownedConnector, ownedReception, ownedOperation, ownedAttribute, nestedClassifier, ownedParameterSet, ownedParameter)
Opposite: Element.owner

owner :
Element (0 1); -- source
ElementConstraints:
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.