Kernel ­ the Features Diagram


The Features diagram of the Kernel package is shown in Figure 28.

In order to locate the metaclasses that are referenced from this diagram,
· See "Classifier (from Kernel, Dependencies, PowerTypes)".
· See "NamedElement (from Kernel, Dependencies)".
· See "Namespace (from Kernel)".
· See "RedefinableElement (from Kernel)" .
· See "TypedElement (from Kernel)" .
· See "ValueSpecification (from Kernel)".

 

BehavioralFeature (from Kernel)


A behavioral feature is a feature of a classifier that specifies an aspect of the behavior of its instances.

Description

A behavioral feature specifies that an instance of a classifier will respond to a designated request by invoking a behavior.
BehavioralFeature is an abstract metaclass specializing Feature and Namespace. Kinds of behavioral aspects are modeled by subclasses of BehavioralFeature.

Attributes

No additional attributes.

Associations


Constraints

No additional constraints.

Additional Operations

[1] The query isDistinguishableFrom() determines whether two BehavioralFeatures may coexist in the same Namespace. It specifies that they have to have different signatures.

BehavioralFeature::isDistinguishableFrom(n: NamedElement, ns: Namespace): Boolean;
isDistinguishableFrom =
    if n.oclIsKindOf(BehavioralFeature)
    then
        if ns.getNamesOfMember(self)->intersection(ns.getNamesOfMember(n))->notEmpty()
        then Set{}->including(self)->including(n)->isUnique( bf | bf.parameter->collect(type))
        else true
        endif
    else true
    endif

Semantics

The list of parameters describes the order and type of arguments that can be given when the BehavioralFeature is invoked.

The formal parameters define the type, and number, of arguments that must be provided when invoking the BehavioralFeature.

The return results define the type, and number, of arguments that will be returned from a successful invocation. A BehavioralFeature may raise an exception during its invocation.

Notation

No additional notation.

 Feature (from Kernel)

A feature declares a behavioral or structural characteristic of instances of classifiers.

Description

A feature declares a behavioral or structural characteristic of instances of classifiers. Feature is an abstract metaclass.

Attributes

Associations
Constraints

No additional constraints.

Semantics

A Feature represents some characteristic for its featuring classifiers. A Feature can be a feature of multiple classifiers.

Notation

No general notation. Subclasses define their specific notation.
Static features are underlined.

Presentation Options

Only the names of static features are underlined.

Parameter (from Kernel)

A parameter is a specification of an argument used to pass information into or out of an invocation of a behavioral feature.

Description

A parameter is a specification of an argument used to pass information into or out of an invocation of a behavioral feature. It has a type, and may have a multiplicity and an optional default value.

Attributes

Associations
Constraints

No additional constraints.

Semantics

A parameter specifies how arguments are passed into or out of an invocation of a behavioral feature like an operation. The type and multiplicity of a parameter restrict what values can be passed, how many, and whether the values are ordered.

If a default is specified for a parameter, then it is evaluated at invocation time and used as the argument for this parameter if and only if no argument is supplied at invocation of the behavioral feature.

A parameter may be given a name, which then identifies the parameter uniquely within the parameters of the same behavioral feature. If it is unnamed, it is distinguished only by its position in the ordered list of parameters.

Notation

No general notation. Specific subclasses of BehavioralFeature will define the notation for their parameters.

Style Guidelines

A parameter name typically starts with a lowercase letter.

 ParameterDirectionKind (from Kernel)


Parameter direction kind is an enumeration type that defines literals used to specify direction of parameters.

Description

ParameterDirectionKind is an enumeration of the following literal values:

StructuralFeature (from Kernel)


A structural feature is a typed feature of a classifier that specify the structure of instances of the classifier.

Description

A structural feature is a typed feature of a classifier that specify the structure of instances of the classifier. Structural feature is an abstract metaclass.

By specializing multiplicity element, it supports a multiplicity that specifies valid cardinalities for the set of values associated with an instantiation of the structural feature.

Attributes
Associations

No additional associations.

Constraints

No additional constraints.

Semantics

A structural feature specifies that instances of the featuring classifier have a slot whose value or values are of a specified type.

Notation

A read only structural feature is shown using {readOnly} as part of the notation for the structural feature. A modifiable structural feature is shown using {unrestricted} as part of the notation for the structural feature. This annotation may be suppressed, in which case it is not possible to determine its value from the diagram.

Presentation Option

It is possible to only allow suppression of this annotation when isReadOnly=false. In this case it is possible to assume this value in all cases where {readOnly} is not shown.