Class UML 2.4.1::Class
Description:
A class may be designated as active (i.e., each of its instances having
its own thread of control) or passive (i.e., each of its instances executing
within the context of some other object). A class may also specify which
signals the instances of this class handle.A class describes a set of objects
that share the same specifications of features, constraints, and semantics.A
class has the capability to have an internal structure and ports.Class
has derived association that indicates how it may be extended through one
or more stereotypes. Stereotype is the only kind of metaclass that cannot
be extended by stereotypes.
Direct Superclasses: EncapsulatedClassifier,
BehavioredClassifierDirect Subclasses: Stereotype,
Node,
Component,
Behavior,
AssociationClassClass Precedence List: Class,
EncapsulatedClassifier,
StructuredClassifier,
BehavioredClassifier,
Classifier,
Namespace,
Type,
PackageableElement,
ParameterableElement,
RedefinableElement,
NamedElement,
TemplateableElement,
ElementProperties:
![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
extension :
Extension (0 *); -- source
Class![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
isAbstract : Boolean (1 1); -- source
Class![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
isActive : Boolean (1 1); -- source
Class![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
nestedClassifier :
Classifier (0 *); -- source
Class![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
ownedAttribute :
Property (0 *); -- source
Class![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
ownedOperation :
Operation (0 *); -- source
Class![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
ownedReception :
Reception (0 *); -- source
Class![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
superClass :
Class (0 *); -- source
Class![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
ownedPort :
Port (0 *); -- source
EncapsulatedClassifier![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
ownedConnector :
Connector (0 *); -- source
StructuredClassifier![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
part :
Property (0 *); -- source
StructuredClassifier![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
role :
ConnectableElement (0 *); -- source
StructuredClassifier![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
classifierBehavior :
Behavior (0 1); -- source
BehavioredClassifier![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
interfaceRealization :
InterfaceRealization (0 *); -- source
BehavioredClassifier![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
ownedBehavior :
Behavior (0 *); -- source
BehavioredClassifier![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
attribute :
Property (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
collaborationUse :
CollaborationUse (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
feature :
Feature (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
generalization :
Generalization (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
inheritedMember :
NamedElement (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
isFinalSpecialization : Boolean (1 1); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
ownedTemplateSignature :
RedefinableTemplateSignature (0 1); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
ownedUseCase :
UseCase (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
powertypeExtent :
GeneralizationSet (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
redefinedClassifier :
Classifier (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
representation :
CollaborationUse (0 1); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
substitution :
Substitution (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
templateParameter :
ClassifierTemplateParameter (0 1); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
useCase :
UseCase (0 *); -- source
Classifier![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
elementImport :
ElementImport (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
importedMember :
PackageableElement (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
member :
NamedElement (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
ownedMember :
NamedElement (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
ownedRule :
Constraint (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
packageImport :
PackageImport (0 *); -- source
Namespace![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
package :
Package (0 1); -- source
Type![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
visibility :
VisibilityKind (1 1); -- source
PackageableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
owningTemplateParameter :
TemplateParameter (0 1); -- source
ParameterableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
isLeaf : Boolean (1 1); -- source
RedefinableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
redefinedElement :
RedefinableElement (0 *); -- source
RedefinableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
redefinitionContext :
Classifier (0 *); -- source
RedefinableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
clientDependency :
Dependency (0 *); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
name : String (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
nameExpression :
StringExpression (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
namespace :
Namespace (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
qualifiedName : String (0 1); -- source
NamedElement![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
templateBinding :
TemplateBinding (0 *); -- source
TemplateableElement![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
ownedComment :
Comment (0 *); -- source
Element![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
ownedElement :
Element (0 *); -- source
Element![](/se-interop/image/down-arrow.png?hunchentoot-session=29401%3A39FE12E903D951DF46B0B3730F493581)
owner :
Element (0 1); -- source
ElementConstraints:
Signature: CMOF_14_3_18() : Boolean;
Description: 14.3 [18] Class must not be active
see also: https://sites.google.com/site/metamodelingantipatterns/catalog/mof/class-is-active
Expression: not isActive
Signature: CMOF_14_3_15() : Boolean;
Description: 14.3 [15] Only one member attribute of a Class may have isId=true.
see also: https://sites.google.com/site/metamodelingantipatterns/catalog/mof/class-has-more-than-one-id
Expression: self->closure(general)->union(self)->attribute->asSet()->select(p:Property | p.isID)->size() < 2
Signature: CMOF_14_3_10a() : Boolean;
Description: 14.3 [10] The following properties must be empty
Class::nestedClassifier
Property::qualifier
see also: https://sites.google.com/site/metamodelingantipatterns/catalog/mof/class-has-nested-classifier
Expression: nestedClassifier->isEmpty()
Signature: passive_class() : Boolean;
Description: A passive class may not own receptions.
Expression: not self.isActive implies self.ownedReception.isEmpty()
Operations:
Signature: inherit(inhs : NamedElement; ) : NamedElement;
Description: The inherit operation is overridden to exclude redefined properties.
The OCL used here is not normative.Editor's notes: reject not excluding
Expression: result = inhs->reject(inh |
ownedMember->select(oclIsKindOf(RedefinableElement))->select(redefinedElement->includes(inh)))
Original: result = inhs->excluding(inh | ownedMember->select(oclIsKindOf(RedefinableElement))->select(redefinedElement->includes(inh)))
Send questions or comments to
[email protected].