Změny v UML 2.4.1 oproti UML 2.3

V UML 2.4.1 ze srpna 2011 (betu 2.4 můžeme ignorovat) došlo k poměrně dosti změnám v diagramech. V mnoha se do diagramu přidaly (existující) třídy, takže je to obecně hůře čitelné a je třeba trávit více času nad jednotlivými diagramy. Obzvláště nečitelný je např. diagram strukturovaného uzlu (Activities::StructuredActivities). Připadne mi to značně kontraproduktivní. Opět uvádím změny především z Classes::Kernel.

  • Kapitola 7: Drobné změny v úvodní kapitole Reusing packages from UML 2 Infrastructure.
  • Kapitola 7: Změna v diagramu Expressions diagram of the Kernel package. Přibyla třída LiteralReal.
  • Kapitola 7: Změna v diagramu Classifiers diagram of the Kernel package. Jde především o pojmenování rolí tříd v asociacích.
  • Kapitola 7: Jinak zakreslen diagram Features diagram of the Kernel package. Jinak a mnohem hůř. Zobrazení několika tříd vícekrát „pro lepší čitelnost“ tu čitelnost naopak zhoršili. Navíc z obrázku vyhodili výčet ParameterDirectionKind a nedali nikam jinam. V textu knihy jsem jej v obrázku záměrně nechal. Dále zde není zakreslena třída ValueSpecification, která byla přesunuta do diagramu Operations diagram of the Kernel package.
  • Kapitola 7: Překreslen diagram Operations diagram of the Kernel package. Zásadní změna je v tom, že jsou zde více formalizované výchozí hodnoty všech atributů třídy Operation. Oproti předchozímu mi tento naopak připadne obsažnější než v předchozí verzi a to bez zhoršení čitelnosti.
  • Kapitola 7: Překreslen diagram Classes diagram of the Kernel package, přidání výchozích hodnot atributů tříd Property a Association.
  • Kapitola 7: V diagramu DataTypes diagram of the Kernel package přibyla vazba mezi třídami EnumerationLiteral a Enumeration
  • Kapitola 7: V diagramu The Packages diagram of the Kernel package došlo k pár drobným, nevýrazným změnám.
  • Kapitola 7: Překreslen diagram Contents of Dependency package. Jde ale o čuňárnu. V původních verzích bylo (zcela správně) používáno kvalifikovaných jmen u relevantních tříd. Dnes je tam pouze v závorce uvedeno, ze kterého balíku třída pochází. Není to dobrý příklad, jak kreslit diagramy podle UML. V textu používám lepší zápis. Jinak ale jde o zpřehlednění a při čtení se lépe hledají souvislosti. Vypadla (jen ze zápisu, nikoliv ze standardu) asociace mezi třídami NamedElement a Namespace.
  • Kapitola 7: Překreslen diagram Contents of Interfaces package.
  • Kapitola 7.3.38: Třída Package má nový atribut URI.
  • Kapitola 7.3.45: Třída Property má nový atribut isID.
  • Kapitola 7.3.55: Třída ValueSpecification má novou metoda realValue(). Ta souvisí s novou třídou LiteralReal.
  • Kapitola 7.3.39: Třída PackageableElement má opravenou výchozí hodnotu atributu visibility z false na public (původní hodnota byla chybou standardu).
  • Kapitola 7.3.29: Přibyla nová třída LiteralReal.
  • Až do UML 2.3 byla kapitola PrimitiveTypes součástí superstruktury. UML 2.4.1 ji však přesunulo do infrastruktury. Pro znalost primitivních datových typů je tedy třeba sáhnout do 13 kapitoly infrastruktury. Další novinkou v této oblasti je nový typ Real. V superstruktuře (balík Classes::Kernel) pak najdeme odpovídající třídu LiteralReal a dále novou motody třídy ValueSpecification nazvanou realValue().

Změny v UML 2.3 oproti UML 2.2

Při pročítání UML verze 2.3 a psaní nových textů pro OCUP.CZ jsem narazil na pár změn v UML 2.3 proti předchozí verzi. Nejsou tu samozřejmě vypsány všechny, ale jen takové, které mě (jakkoliv) zaujaly. Nejvíce se starám o balík Classes::Kernel.

  • Kapitola 5: Byla odstraněna původní relativně bezvýznamná věta a nyní se zabývá významem slov typu „musí“, „nesmí“, „měl by“, apod. Jde o odkaz na RFC 2119. Dále se zabývá anotacemi v některých příkladech uvedených ve standardu.
  • Kapitola 7, Diagram 7.9
    • Role u Property již neobsahuje subsets feature.
    • Třída Classifier má nový atribut isFinalSpecialization: Boolean
    • Třída Generalization má nový atribut isSubstitutable: Boolean [0..1] = true
  • Kapitola 7.3.3: V třídě Asociation přibyla věta v úvodním popisu: A link is a tuple with one value for each end of the association, where each value is an instance of the type of the end.
  • Kapitola 7.3.4: Změněn popis asociační třídy a sémantika.
  • Kapitola 7.3.8: Třída Classifier má nový atribut isFinalSpecialization (viz popis klasifikátoru).
  • Kapitola 7.3.11: V popisu sémantiky třídy DataType je místo slovíčka „equal“ používáno „same“. Jde tedy o drobné zmírnění podmínek, v mém českém překladu bez dopadu na význam.
  • Kapitola 7.3.35: Rozšíření definice atributů třídy OpaqueExpression.
  • Kapitola 7.3.40: Změny v pravidlech třídy PackageMerge. Je vhodné si pročíst, ale stále platí to, co je uvedeno v textu.
  • Kapitola 7.3.46: Popsán vliv atributu isLeaf třídy RedefinableElement na operaci spojení balíků (třída PackageMerge).