Software Disclaimer

Abstract Class UML 2.5::BehavioralFeature

Description:

A BehavioralFeature is a feature of a Classifier that specifies an aspect of the behavior of its instances. A BehavioralFeature is implemented (realized) by a Behavior. A BehavioralFeature specifies that a Classifier will respond to a designated request by invoking its implementing method.

Direct Superclasses: Feature, Namespace

Direct Subclasses: Reception, Operation

Class Precedence List: BehavioralFeature, Feature, RedefinableElement, Namespace, NamedElement, Element

Properties:

concurrency : CallConcurrencyKind (1 1); -- source BehavioralFeature
isAbstract : Boolean (1 1); -- source BehavioralFeature
method : Behavior (0 *); -- source BehavioralFeature
ownedParameter : Parameter (0 *); -- source BehavioralFeature
ownedParameterSet : ParameterSet (0 *); -- source BehavioralFeature
raisedException : Type (0 *); -- source BehavioralFeature
featuringClassifier : Classifier (0 1); -- source Feature
isStatic : Boolean (1 1); -- source Feature
isLeaf : Boolean (1 1); -- source RedefinableElement
redefinedElement : RedefinableElement (0 *); -- source RedefinableElement
redefinitionContext : Classifier (0 *); -- source RedefinableElement
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
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 that 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}

visibility : VisibilityKind (0 1); -- source NamedElement
ownedComment : Comment (0 *); -- source Element
ownedElement : Element (0 *); -- source Element
owner : Element (0 1); -- source Element

Constraints:

Signature: CMOF_14_3_17() : Boolean;
Description: 14.3 [17] BehavioralFeature must be sequential https://sites.google.com/site/metamodelingantipatterns/catalog/mof/behavioral-feature-is-not-sequential
Expression: concurrency = CallConcurrencyKind::sequential

Operations:

Signature: outputParameters() : Parameter;
Description: The ownedParameters with direction out, inout, or return.
Expression: result = (ownedParameter->select(direction=ParameterDirectionKind::out or direction=ParameterDirectionKind::inout or direction=ParameterDirectionKind::return))

Signature: isDistinguishableFrom(n : NamedElement; ns : Namespace; ) : Boolean;
Description: The query isDistinguishableFrom() determines whether two BehavioralFeatures may coexist in the same Namespace. It specifies that they must have different signatures.
Expression: result = ((n.oclIsKindOf(BehavioralFeature) and ns.getNamesOfMember(self)->intersection(ns.getNamesOfMember(n))->notEmpty()) implies Set{self}->including(n.oclAsType(BehavioralFeature))->isUnique(ownedParameter->collect(p| Tuple { name=p.name, type=p.type,effect=p.effect,direction=p.direction,isException=p.isException, isStream=p.isStream,isOrdered=p.isOrdered,isUnique=p.isUnique,lower=p.lower, upper=p.upper })) )

Signature: inputParameters() : Parameter;
Description: The ownedParameters with direction in and inout.
Expression: result = (ownedParameter->select(direction=ParameterDirectionKind::_'in' or direction=ParameterDirectionKind::inout))



Send questions or comments to [email protected].