<<

7.2 Abstract Syntax

Figure 7.2 shows the 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} + + 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