What is New in UML 2.5
UML 2.5 spec
6.1 Specification Simplification
This specification has been extensively re-written from its previous version to make it easier to read by removing redundancy and increasing clarity. In particular, the following major changes have been made since UML 2.4.1:
- The UML Infrastructure no longer forms part of the UML specification. The entire UML specification is constituted in this document.
- Package Merge is not used within the specification. Every metaclass is specified completely in one clause.
- The specification is organized to reduce forward references as much as possible. This means that topics such as Templates which are pervasive in their effects appear early in the specification.
- Every clause has a section of documentation generated from the metamodel that contains all of the metaclasses with their properties, and all of the metaassociations with their properties. All cross-references in this generated documentation include hyperlinks to their targets.
- The compliance levels L0, L1, L2, and L3 have been eliminated, because they were not found to be useful in practice. A tool either complies with the whole of UML or it does not. A tool may partially comply with UML by implementing a subset of its metamodel, notation, and semantics, in which case the vendor should declare which subset it implements.
However, the metamodel itself remains unchanged from UML 2.4.1 superstructure, with a few exceptions:
- The metamodel has been partitioned into packages, corresponding to the clause structure of this specification. All of these packages are owned by a top-level package named UML; they are also imported into UML so that metaclasses may be referred to by their unqualified name in UML.
- Many OCL constraints have been corrected or added where they were absent. In order to do this, some names of association-owned properties and the corresponding associations have been changed in order to avoid ambiguity in OCL expressions.
- A small number of lower multiplicities have been relaxed from 1 to 0, in order to represent default values that cannot be formally represented using MOF. In these cases the absence of a value signifies the presence of a default value. These cases could not be represented at all in earlier versions of UML. They all occur in Clause 15: Activities and are made explicit in the text there.
- The property LoopNode::loopVariable has been made composite, in order to enable interchange of loop variables, which was not possible in a standard way in UML 2.4.1.
- NamedElement::clientDependency has been made derived.
- {ordered} has been added to or removed from some properties in order to make the semantics consistent.
Michael's issues
Issue |
Spec |
Type |
Description
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2.5 |
Notation |
Inherited properties and connectors |
^ |
||||||
2.5 |
Notation |
Inherited properties |
greying |
||||||
2.5 |
Conceptual |
dropping package merge from UML definition |
|||||||
9617 |
2.4 |
Conceptual |
XOR |
not predefined in UML |
|||||
10087 |
2.4 |
Notation |
Association-like notation for attributes --- this was also done previously in 2.x |
||||||
10831 |
2.4 |
Conceptual |
Packageable elements in a Package are now visible by default |
||||||
12583 |
2.4 |
Notation |
Real Primitive and Literal Real values |
||||||
13477 |
2.4 |
Notation |
default multiplicity = 1 |
||||||
13993 |
2.4 |
Conceptual |
new Primitive Types Package |
||||||
14092 |
2.4 |
Notation |
change in capitalization of built-in stereotypes (now generally with leading cap) |
||||||
14629 |
2.4 |
conceptual |
Some events are dropped. For example, ExecutionEvent, CreationEvent, SendOperationEvent, SendSignalEvent, ReceiveOperatonEvent, |
||||||
14931 |
2.4 |
conceptual |
removed ownedtrigger |
||||||
14964 |
2.4 |
conceptual |
Context of some behaviors redefined |
||||||
15369 |
2.4 |
notation |
Added isID property to attributes |
||||||
15370 |
2.4 |
notation |
Package URI Field |
||||||
? |
Notation |
Dot notation for association end ownership (not arrow) |
|||||||
? |
Notation |
isConjugated Port notation ~ |
Filp's issues
Class diagram
- notation for an inherited property and connector (^ symbol)
<inherited-property> ::= ’^’ <property> <inherited-connector> ::= ’^’ <connector>
Sequence diagram
- A reply Message (messageSort equals reply) has a dashed line with either an open or filled arrow head.
Package diagram
- PackageableElement
- Attributes
- visibility : VisibilityKind [0..1] = public A PackageableElement must have a visibility specified if it is owned by a Namespace. The default visibility is public.
- Attributes