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
- formalParameter: Parameter[*] Specifies the ordered
set of formal parameters of this BehavioralFeature. Subsets BehavioralFeature::parameter
and Namespace::ownedMember.
- raisedException:
Type[*] References the
Types representing exceptions that may be raised during an invocation
of this operation.
- / parameter:
Parameter[*] Specifies
the parameters of the BehavioralFeature. Subsets Namespace::member.
This is a derived union and is ordered.
- returnResult: Parameter[*]
Specifies the ordered set of return results of this BehavioralFeature.
Subsets BehavioralFeature::parameter and
Namespace::ownedMember.
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
- isStatic: Boolean Specifies whether the feature
is applied at the classifier-level (true) or the instance-level
(false). Default value is false.
Associations
- / featuringClassifier: Classifier [1..*] The
Classifiers that have this Feature as a feature. This is a derived
union.
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
- / default: String
[0..1] Specifies a
String that represents a value to be used when no argument is supplied
for the Parameter. This is a derived value.
- direction: ParameterDirectionKind [1] Indicates whether a
parameter is being sent into or out of a behavioral element. The
default value is in.
Associations
- /operation: Operation[0..1] References the
Operation for which this is a formal parameter. Subsets NamedElement::namespace.
- defaultValue: ValueSpecification [0..1]
Specifies a ValueSpecification that represents a value to be used when
no argument is supplied for the Parameter. Subsets Element::ownedElement.
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:
- in Indicates that parameter values are passed
into the behavioral element by the caller.
- inout Indicates that parameter values are passed into
a behavioral element by the caller and then back out to the caller from
the behavioral element.
- out Indicates that parameter values are
passed from a behavioral element out to the caller.
- return Indicates that parameter values are passed as
return values from a behavioral element back to the caller.
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
- isReadOnly: Boolean States whether the
feature's value may be modified by a client. Default is false.
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.