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 superClass :
Class (0 *); -- source
Class ownedPort :
Port (0 *); -- source
EncapsulatedClassifier ownedConnector :
Connector (0 *); -- source
StructuredClassifier part :
Property (0 *); -- source
StructuredClassifier References the properties specifying instances that the classifier owns
by composition. This association is derived, selecting those owned properties
where isComposite is true.
{
readonly,
derived}
The spec does not provide a function to compute this derived property! 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 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 The redefinable element that is being redefined by this element.
{
readonly}
Derived union with sources: (redefinedClassifier, redefinedBehavior)
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 A name which allows the NamedElement to be identified within a hierarchy
of nested Namespaces. It is constructed from the names of the containing
namespaces starting at the root of the hierarchy and ending with the name
of the NamedElement itself.
{
readonly,
derived}
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
[email protected].