Kernel the Instances Diagram
The Instances diagram of the Kernel package is shown in Figure 18.
In order to locate the metaclasses that are referenced from this
diagram,
· See "Classifier (from
Kernel,
Dependencies, PowerTypes)" on page 61.
· See "Element (from Kernel)"
· See
"PackageableElement (from Kernel)"
· See
"StructuralFeature (from
Kernel)" .
· See
"ValueSpecification (from Kernel)"
InstanceSpecification (from
Kernel)
An instance specification is a model element that represents an
instance in a modeled system.
Description
An instance specification specifies existence of an entity in a
modeled system and completely or partially describes the entity.
The description may include:
- Classification of the entity by one or more classifiers of
which the entity is an instance. If the only classifier specified is
abstract, then the instance specification only partially describes the
entity.
-
The kind of instance, based on its classifier or classifiers -- for
example, an instance specification whose classifier is a class
describes an object of that class, while an instance specification
whose classifier is an association describes a link of that association.
-
Specification of values of structural features of the entity. Not all
structural features of all classifiers of the instance specification
need be represented by slots, in which case the instance specification
is a partial description.
-
Specification of how to compute, derive or construct the instance
(optional).
InstanceSpecification is a concrete class.
Attributes
No additional attributes.
Associations
- classifier : Classifier [0..*] The
classifier or classifiers of the represented instance. If multiple
classifiers are specified, the instance is classified by all of them.
- slot : Slot
[*] A
slot giving the value or values of a structural feature of the
instance. An instance specification can have one slot per structural
feature of its classifiers, including inherited features. It is not
necessary to model a slot for each structural feature, in which case
the instance specification is a partial description. Subsets Element::ownedElement.
- specification : ValueSpecification [0..1] A specification
of how to compute, derive, or construct the instance. Subsets Element::ownedElement.
Constraints
[1] The defining feature of each slot is a structural feature
(directly or inherited) of a classifier of the instance specification.
slot->forAll(s |
classifier->exists(c |
c.allFeatures()->includes(s.definingFeature)
)
[2] One structural feature (including the same feature inherited from
multiple classifiers) is the defining feature of at mostone slot in an
instance specification.
classifier->forAll(c |
(c.allFeatures()->forAll(f | slot->select(s |
s.definingFeature = f)->size() <= 1)
)
Semantics
An instance specification may specify the existence of an entity in
a modeled system. An instance specification may provide an illustration
or example of a possible entity in a modeled system. An instance
specification describes the entity. These details can be incomplete.
The purpose of an instance specification is to show what is of interest
about an entity in the modeled system. The entity conforms to the
specification of each classifier of the instance specification, and has
features with values
indicated by each slot of the instance specification. Having no slot in
an instance specification for some feature does not mean that the
represented entity does not have the feature, but merely that the
feature is not of interest in the model.
An instance specification can represent an entity at a point in
time (a snapshot). Changes to the entity can be modeled using multiple
instance specifications, one for each snapshot.
Note When used to provide an illustration or example of
an entity in a modeled system, an InstanceSpecification class does not
depict a precise run-time structure. Instead, it describes information
about such structures. No conclusions can be drawn about the
implementation detail of run-time structure. When used to specify the
existence of an entity in a modeled system, an instance specification
represents part of that system. Instance specifications can be modeled
incompletely -- required structural features can be omitted, and
classifiers of an instance specification can be abstract, even though
an actual entity would have a concrete classification.
Notation
An instance specification is depicted using the same notation as
its classifier, but in place of the classifier name appears an
underlined concatenation of the instance name (if any), a colon (`:')
and the classifier name or names. If there are multiple classifiers,
the names are all shown separated by commas. Classifier names can be
omitted from a diagram.
If an instance specification has a value specification as its
specification, the value specification is shown either after an equal
sign ("=") following the name, or without an equal sign below the name.
If the instance specification is shown using an enclosing shape (such
as a rectangle) that contains the name, the value specification is
shown within the enclosing shape.
Slots are shown using similar notation to that of the corresponding
structural features. Where a feature would be shown textually in a
compartment, a slot for that feature can be shown textually as a
feature name followed by an equal sign (`=') and a value specification.
Other properties of the feature, such as its type, can optionally be
shown.
An instance specification whose classifier is an association represents
a link and is shown using the same notation as for an association, but
the solid path or paths connect instance specifications rather than
classifiers. It is not necessary to show an underlined name where it is
clear from its connection to instance specifications that it represents
a link and not an association. End names can adorn the ends. Navigation
arrows can be shown, but if shown, they must agree with the navigation
of the association ends.
Presentation Options
A slot value for an attribute can be shown using a notation similar
to that for a link. A solid path runs from the owning instance
specification to the target instance specification representing the
slot value, and the name of the attribute adorns the target end of the
path. Navigability, if shown, must be only in the direction of the
target.
Slot (from Kernel)
A slot specifies that an entity modeled by an instance specification
has a value or values for a specific structural feature.
Description
A slot is owned by an instance specification. It specifies the
value or values for its defining feature, which must be a structural
feature of a classifier of the instance specification owning the slot.
Attributes
No additional attributes.
Associations
- definingFeature : StructuralFeature [1] The
structural feature that specifies the values that may be held by the
slot.
- owningInstance : InstanceSpecification [1] The
instance specification that owns this slot. Subsets Element::owner.
- value : InstanceSpecification [*] The value or values
corresponding to the defining feature for the owning instance
specification. This is an ordered association. Subsets Element::ownedElement.
Constraints
No additional constraints.
Semantics
A slot relates an instance specification, a structural feature, and
a value or values. It represents that an entity modeled by the instance
specification has a structural feature with the specified value or
values. The values in a slot must conform to the defining feature of
the slot (in type, multiplicity, etc.).
Notation
See "InstanceSpecification (from
Kernel)".