7.2 Abstract Syntax
Figure 7.2 shows the package dependencies of the Kernel packages.
Figure 7.2 - Subpackages of the Classes package and their dependencies
24 UML Superstructure Specification, v2.4 Package Kernel
Figure 7.3 - Root diagram of the Kernel package
UML Superstructure Specification, v2.4 25 Figure 7.4 - Namespaces diagram of the Kernel package
26 UML Superstructure Specification, v2.4 Figure 7.5 - Multiplicities diagram of the Kernel package
.
TypedElement PackageableElement {ordered, subsets ownedElement}
+ operand ValueSpecification *
0..1 Expression OpaqueExpression LiteralSpecification InstanceValue symbol : String body : String {ordered, nonunique} * language : String {ordered} + instanceValue + expression
{subsets owner} 1 + instance LiteralNull LiteralInteger LiteralString InstanceSpecification
LiteralBoolean LiteralReal LiteralUnlimitedNatura l
Figure 7.6 - Expressions diagram of the Kernel package
UML Superstructure Specification, v2.4 27 Figure 7.7 - Constraints diagram of the Kernel package
Figure 7.8 - Instances diagram of the Kernel package
28 UML Superstructure Specification, v2.4 {readOnly, union}
RedefinableElement + /redefinedElement
* *
+ redefinableElement
Type Namespace {readOnly, subsets member}
+ /inheritedMember * NamedElement Classifier {subsets redefinedElement} * + classifie r + isAbstract : Boolean = false + redefinedClassifier {subsets memberNamespace} + isFinalSpecialization : Boolean = false *
* RedefinableElement + redefinableElement * + isLeaf : Boolean = false * + /redefinitionContext + classifier {readOnly, union} {subsets redefinableElement} {readOnly, union, subsets member} + /general + /feature * Feature * + isStatic : Boolean = false * + /featuringClassifier * {readOnly, union, subsets memberNamespace}
StructuralFeature DirectedRelationship {readOnly, union, subsets redefinableElement, {subsets target} subsets feature} + general + /attribute 0..1 Property 1 * + classifier + generalization 1 + specific * {subsets redefinitionContext, {subsets source, {subsets directedRelationship} subsets featuringClassifier} subsets owner} Generalization * + isSubstitutable : Boolean [0..1] = true
+ generalization
{subsets directedRelationship, subsets ownedElement}
Figure 7.9 - Classifiers diagram of the Kernel package
UML Superstructure Specification, v2.4 29 {readOnly, union}
+ /member + memberNamespace NamedElement Namespace * *
{readOnly, union,{readOnly, union, subsets RedefinableElement subsets member}memberNamespace}
+ /feature + /featuringClassifier Feature Classifier + isStatic : Boolean = false * *
0..1 + /ownedMember Namespace NamedElement + /namespace * MultiplicityElement MultiplicityElement
TypedElement TypedElement
{ordered, subsets ownedMember} StructuralFeature BehavioralFeature 0..1 + ownedParameter Parameter + isReadOnly : Boolean = false + direction : ParameterDirectionKind = in + ownerFormalParam * + /default : String [0..1] {readOnly}
{subsets namespace} * + raisedException Type + behavioralFeature *
Figure 7.10 - Features diagram of the Kernel package
30 UML Superstructure Specification, v2.4
+ /namespace + /ownedMember Namespace NamedElement 0..1 *
TypedElement {subsets namespace} {ordered, subsets ownedMember}
Type + raisedException * + ownerFormalParam + ownedParameter BehavioralFeature Parameter * + behavioralFeature 0..1 * + direction : ParameterDirectionKind = in + /default : String [0..1] {readOnly}
{ordered, redefines ownedParameter} {redefines raisedException} 0..1 + ownedParameter Operation + raisedException * + isQuery : Boolean = false + operation * + /isOrdered : Boolean = false {readOnly} {subsets ownerFormalParam} * + operation + /isUnique : Boolean = true {readOnly} + /lower : Integer [0..1] = 1 {readOnly} {subsets behavioralFeature} + owningParameter + /upper : UnlimitedNatural [0..1] = 1 {readOnly} 0..1 {subsets context} {subsets ownedRule} Constraint {subsets owner} {readOnly} + preContext + precondition + /type * 0..1 * {subsets ownedElement} 0..1 + operation {subsets context} {subsets ownedRule} 0..1 + defaultValue + bodyContext + bodyCondition {subsets redefinedElement} ValueSpecification + redefinedOperation 0..1 0..1 1 {subsets ownedElement} {subsets context} {subsets ownedRule} * + specification + postContext + postcondition * 0..1 * 0..1 + operation
{subsets redefinableElement} {subsets namespace} {subsets ownedMember} + owningConstraint + context + ownedRule {subsets owner} Namespace 0..1 *
Figure 7.11 - Operations diagram of the Kernel package
UML Superstructure Specification, v2.4 31 Classifier {subsets namespace, subsets {ordered, subsets ownedMember, redefinitionContext} subsets redefinableElement} + class + nestedClassifier Class Classifier 0..1 *
{subsets featuringClassifier, {ordered, subsets feature, subsets redefinitionContext, subsets redefinableElement, subsets namespace} subsets ownedMember} + class + ownedOperation Operation 0..1 * {ordered, readOnly, Relationship Classifier {redefines general} subsets relatedElement} {subsets relationship} + /endType + association * + /superClass Type Association * + class 1..* * + isDerived : Boolean = false 0..1 {subsets classifier} 0..1 0..1 + class + association + owningAssociation 0..1 + association {subsets classifier, subsets namespace} {subsets memberNamespace} {subsets association, {subsets owningAssociation} subsets featuringClassifier, StructuralFeature subsets namespace, subsets redefinitionContext} {ordered, subsets member} 2..* + memberEnd {ordered, subsets attribute, {subsets ownedEnd} Property * subsets ownedMember} + navigableOwnedEnd + ownedAttribute + isDerived : Boolean = false + isReadOnly : Boolean = false {redefines isReadOnly} + isDerivedUnion : Boolean = false * * + /default : String [0..1] + aggregation : AggregationKind = none + /isComposite : Boolean + ownedEnd * + isID : Boolean = false {ordered, subsets memberEnd, subsets feature, subsets ownedMember, subsets redefinableElement} + redefinedProperty
{subsets redefinedElement} + subsettedProperty {subsets redefinableElement}
+ property * * *
+ owningProperty 0..1 0..1 + /opposite 0..1 {subsets owner}
«enumeration» {subsets ownedElement} AggregationKind + defaultValue none shared ValueSpecification composite 0..1
Figure 7.12 - Classes diagram of the Kernel package
32 UML Superstructure Specification, v2.4
Classifier + classifie r + instanceSpecification InstanceSpecification * *
{readOnly, union, subsets memberNamespace} {readOnly, union, subsets member}
+ /featuringClassifier + /feature Feature * *
StructuralFeature {subsets redefinitionContext, {readOnly, union, subsets subsets featuringClassifier} redefinableElement, subsets feature} + classifie r + /attribute Property 0..1 *
{subsets classifier, {ordered, subsets attribute, subsets namespace} subsets ownedMember} DataType + datatype + ownedAttribute
0..1 *
{subsets featuringClassifier, subsets redefinitionContext, {ordered, subsets feature, BehavioralFeature subsets namespace} subsets redefinableElement, subsets ownedMember} + datatype + ownedOperation Operation 0..1 *
{subsets namespace} {ordered, subsets ownedMember}
+ enumeration + ownedLiteral PrimitiveType Enumeration EnumerationLiteral 1 *
1 *
+ /classifie r + enumerationLiteral
{redefines classifier} {redefines instanceSpecification}
Figure 7.13 - DataTypes diagram of the Kernel package
UML Superstructure Specification, v2.4 33 Namespace
PackageableElement
{subsets namespace} {subsets ownedMember}
+ owningPackage + packagedElement Package PackageableElement URI : String [0..1] 0..1 *
{subsets owningPackage} {subsets packagedElement}
+ package + /ownedType Type 0..1 *
{subsets source, DirectedRelationship subsets owner} {subsets directedRelationship, + receivingPackage subsets ownedElement} + packageMerge PackageMerge
1 * {subsets target} {subsets directedRelationship} + mergedPackage + packageMerge
1 *
{subsets packagedElement}
+ /nestedPackage
* 0..1
+ nestingPackage
{subsets owningPackage}
Figure 7.14 - The Packages diagram of the Kernel package
34 UML Superstructure Specification, v2.4 Package Dependencies
1..* * Element DirectedRelationship (from Kernel) (from Kernel) + /source + directedRelationship
1..* *
+ /target + directedRelationship
PackageableElement (from Dependencies) {subsets source} {subsets directedRelationship}
NamedElement + client + clientDependency Dependency (from Dependencies) 1..* *
1..* *
+ supplier + supplierDependency
{subsets target} {subsets directedRelationship}
Usage
0..1 Abstraction Namespace (from Dependencies) + abstraction
Realization {subsets owner} {subsets client, {subsets clientDependency, subsets owner} subsets ownedElement} Classifier Substitution (from Dependencies) + substitutingClassifier + substitution
1 * {subsets ownedElement}
+ mapping 0..1
OpaqueExpression 1 * (from Kernel)
+ contract + substitution {subsets supplier} {subsets supplierDependency}
Figure 7.15 - Contents of Dependencies package
UML Superstructure Specification, v2.4 35 Package Interfaces
{ordered, subsets redefinableElement, + redefinedClassifier Classifier subsets ownedMember} (from Kernel) + nestedClassifier * * * StructuralFeature (from Kernel) + classifie r
{readOnly, union} + classifie r Property + /attribute Classifie r (from Interfaces) (from Interfaces) * 0..1
{ordered, subsets attribute, {subsets classifier, {subsets redefinitionContext, subsets ownedMember} subsets namespace} subsets namespace} + interface + ownedAttribute + interface Interface 0..1 * 0..1
{subsets redefinedClassifier}
+ redefinedInterface BehavioralFeature {ordered, subsets feature, {subsets featuringClassifier, (from Kernel) subsets redefinableElement, subsets redefinitionContext, * subsets ownedMember} subsets namespace} * Operation + ownedOperation + interface (from Interfaces) + interface * 0..1 {subsets classifier} 1 + contract {subsets supplier} Classifier (from Kernel) {subsets clientDependency, {subsets supplierDependency} subsets ownedElement} * + interfaceRealization 1 + interfaceRealization BehavioredClassifier InterfaceRealization (from Interfaces) + implementingClassifier *
{subsets client, Realization subsets owner} (from Dependencies)
Abstraction (from Dependencies)
+ client + clientDependency NamedElement Dependency (from Dependencies) (from Dependencies) 1..* *
1..* *
+ supplier + supplierDependency {subsets target} {subsets directedRelationship}
Figure 7.16 - Contents of Interfaces package
36 UML Superstructure Specification, v2.4 Package AssociationClasses
Figure 7.17 - Contents of AssociationClasses package
Package PowerTypes
Figure 7.18 - Contents of PowerTypes package
UML Superstructure Specification, v2.4 37