Software Disclaimer

Class UML 2.5::Class

Description:

A Class classifies a set of objects and specifies the features that characterize the structure and behavior of those objects. A Class may have an internal structure and Ports.

Direct Superclasses: BehavioredClassifier, EncapsulatedClassifier

Direct Subclasses: Stereotype, Node, Component, Behavior, AssociationClass

Class Precedence List: Class, BehavioredClassifier, EncapsulatedClassifier, StructuredClassifier, Classifier, Namespace, Type, PackageableElement, ParameterableElement, TemplateableElement, RedefinableElement, NamedElement, Element

Properties:

extension : Extension (0 *); -- source Class
isAbstract : Boolean (1 1); -- source Class
isActive : Boolean (1 1); -- source Class
nestedClassifier : Classifier (0 *); -- source Class
ownedAttribute : Property (0 *); -- source Class
ownedOperation : Operation (0 *); -- source Class
ownedReception : Reception (0 *); -- source Class
superClass : Class (0 *); -- source Class
classifierBehavior : Behavior (0 1); -- source BehavioredClassifier
interfaceRealization : InterfaceRealization (0 *); -- source BehavioredClassifier
ownedBehavior : Behavior (0 *); -- source BehavioredClassifier
ownedPort : Port (0 *); -- source EncapsulatedClassifier
ownedConnector : Connector (0 *); -- source StructuredClassifier
part : Property (0 *); -- source StructuredClassifier
role : ConnectableElement (0 *); -- source StructuredClassifier
attribute : Property (0 *); -- source Classifier
collaborationUse : CollaborationUse (0 *); -- source Classifier
feature : Feature (0 *); -- source Classifier
generalization : Generalization (0 *); -- source Classifier
inheritedMember : NamedElement (0 *); -- source Classifier
isFinalSpecialization : Boolean (1 1); -- source Classifier
ownedTemplateSignature : RedefinableTemplateSignature (0 1); -- source Classifier
ownedUseCase : UseCase (0 *); -- source Classifier
powertypeExtent : GeneralizationSet (0 *); -- source Classifier
redefinedClassifier : Classifier (0 *); -- source Classifier
representation : CollaborationUse (0 1); -- source Classifier
substitution : Substitution (0 *); -- source Classifier
templateParameter : ClassifierTemplateParameter (0 1); -- source Classifier
useCase : UseCase (0 *); -- source Classifier
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
package : Package (0 1); -- source Type
visibility : VisibilityKind (0 1); -- source PackageableElement
owningTemplateParameter : TemplateParameter (0 1); -- source ParameterableElement
templateBinding : TemplateBinding (0 *); -- source TemplateableElement
isLeaf : Boolean (1 1); -- source RedefinableElement
redefinedElement : RedefinableElement (0 *); -- source RedefinableElement
redefinitionContext : Classifier (0 *); -- source RedefinableElement
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
ownedComment : Comment (0 *); -- source Element
ownedElement : Element (0 *); -- source Element
owner : Element (0 1); -- source Element

Constraints:

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()

Operations:

Signature: superClass.1() : Class;
Description: Derivation for Class::/superClass : Class
Expression: result = (self.general()->select(oclIsKindOf(Class))->collect(oclAsType(Class))->asSet())

Signature: extension.1() : Extension;
Description: Derivation for Class::/extension : Extension
Expression: result = (Extension.allInstances()->select(ext | let endTypes : Sequence(Classifier) = ext.memberEnd->collect(type.oclAsType(Classifier)) in endTypes->includes(self) or endTypes.allParents()->includes(self) ))



Send questions or comments to [email protected].