Infrastruktura języka UML w wersji 2.2 Część VI Pakiet Core::Constructs (diagramy: bazowy, przestrzeni nazewniczych, klasyfikatorów, wyrażeń, ograniczeń)
Pakiet Core::Constructs Rozwinięta wersja Core::Basic Stanowi podstawę Meta Object Facility (MOF) i nadstruktury UML
Pakiet Core::Constructs – zależności
Diagram bazowy
Diagram bazowy – metaklasy Element jest zdefiniowany tak samo jak Abstractions::Comments::Element Comment jest zdefiniowany tak samo jak Abstractions::Comments::Comment Relationship jest zdefiniowany tak samo jak Abstractions::Relationships::Relationship DirectedRelationship jest zdefiniowany tak samo jak Abstractions::Relationships::DirectedRelationship
Diagram przestrzeni nazewniczych
Metaklasa Constructs::NamedElement Jest zdefiniowana tak samo jak Abstractions::Visibilities::NamedElement Dodatkowo specjalizuje Constructs::Element i Basic::NamedElement
Metaklasa Constructs::Namespace Zdefiniowana tak samo jak Abstractions::Constraints::Namespace Przestrzeń nazewnicza ma możliwość importowania pojedynczych elementów lub wszystkich elementów pakietu, umożliwiając odnoszenie się do importowanych elementów przy pomocy niekwalifikowanej nazwy Powiązanie importedMember jest wyprowadzone z elementImport i packageImport
Metaklasa Constructs::PackageableElement Jej instancjami są nazwane elementy, które mogą należeć bezpośrednio do pakietu
Metaklasa Constructs::ElementImport Import elementu określa element w innym pakiecie i pozwala odnosić się do niego przy użyciu nazwy bez kwalifikatora Nazwa importowanego elementu (lub określony przy imporcie alias nazwy) jest dołączana do docelowej przestrzeni nazewniczej Widzialność ElementImport może być tylko publiczna albo prywatna Importowany element (koniec powiązania importedElement) ma widzialność publiczną albo nie ma jej wcale W drugim przypadku nie może być ponownie importowany
Semantyka importu elementu Nie jest możliwe dodawanie cech do zaimportowanego elementu, ale można modyfikować dowolnie element, do którego dany import się odnosi W przypadku kolizji nazewniczej z nazwą zewnętrzną (należącą do otaczającej przestrzeni nazw) w przestrzeni importującej, nazwa zewnętrzna zostaje przesłonięta przez nazwę elementu importowanego W innych przypadkach kolizji nazw odpowiednie elementy nie są dodawane do przestrzeni importującej
Import elementu – notacja Import elementu oznacza się przerywaną strzałką ze słowem kluczowym: > – w przypadku widzialności publicznej > – w przypadku widzialności prywatnej Dodatkowo po lub poniżej słowa kluczowego można umieścić alias
Import elementu – przykłady notacji
Metaklasa Constructs::PackageImport Import pakietowy to związek pozwalający na użycie niekwalifikowanych nazw przy odniesieniu do składowych pakietu z innych przestrzeni nazewniczych Konceptualnie „prawie równoważny” importowi wszystkich elementów danego pakietu Podobnie jak poprzednio widzialność może być tylko publiczna albo prywatna
Import pakietowy – notacja
Diagram klasyfikatorów
Metaklasy Type, TypedElement, Classifier, RedefinableElement i MultiplicityElement Type jest scaleniem metaklas Abstractions::TypedElements::Type i Basic::Type TypedElement jest scaleniem metaklas Abstractions::TypedElements::TypedElement i Basic::TypedElement Classifier jest scaleniem metaklas Abstractions::Super::Classifier i Basic::Classifier RedefinableElement jest zdefiniowany tak samo jak Abstractions::Redefinitions::RedefinableElement MultiplicityElement jest zdefiniowany tak samo jak Abstractions::Multiplicities::MultiplicityElement
Metaklasy Feature i StructuralFeature Feature jest zdefiniowana tak samo jak Abstractions::Classifiers::Feature, dodatkowo specjalizuje Constructs::RedefinableElement StructuralFeature jest zdefiniowana tak samo jak Abstractions::Changeabilities::StructuralFeature, dodatkowo specjalizuje Constructs::MultiplicityElement Jako specjalizacja MultiplicityElement zawiera krotność określającą prawidłowe liczebności zbioru wartości związanego z konkretnymi instancjami danej cechy strukturalnej
Diagram wyrażeń
Diagram wyrażeń – metaklasy ValueSpecification zachowuje definicję Abstractions::Expressions::ValueSpecification, dodatkowo specjalizuje Constructs::TypedElement i Constructs::PackageableElement Expression zachowuje definicję Abstractions::Expressions::Expression OpaqueExpression zachowuje definicję Abstractions::Expressions::OpaqueExpression
Diagram ograniczeń (więzów)
Metaklasa Constraint Zachowuje definicję Abstractions::Constraints::Constraint Dodatkowo specjalizuje Constructs::PackageableElement