As ArgoUML switches from UML 1.4 to UML 2.x, these changes have to be considered. This section lists some of the most important changed concepts (in alphabetical order) and the impact of their changes.
Please update this page as you make changes to the code which are required by UML 2.x. This will allow us to create a comprehensive list for users as well as making sure that any UML 1.4 to UML 2.x conversion tool covers all the important elements.
In UML 1.4, an association end is a part of an association (composition) and is associated with a classifier. ArgoUML has a property panel for it.
The no longer supported targetScope of an association end has already been taken care of in issue 5458.
In UML 1.4, a classifier is is the metamodel superclass of Class, DataType, and Interface. ArgoUML relies on that in many places by using the model facade method isAClassifier(). These method calls have to be rethought, because in UML 2.x a classifier means much more:
In UML 2.x interactions are contained within classifiers and not only within collaborations. Their participants are modeled by lifelines instead of classifier roles. For sequence diagrams this means that there are no classifier roles, but "connectable elements" associated with lifelines:
(To be explained: connectable elements. The concepts of classifier role, association role, and association end role have been superseded in UML 2.x.)
The "resides" relationship from UML 1.x relied on namespace aspects to define both namespace aspects as well as "residence" aspects. These two aspects have been separately modeled in UML 2.x. The basic residence relationship in UML 1.x maps to the realizingClassifiers relationship in UML 2.x. The namespace aspects are defined through the basic namespace aspects of classifiers in UML 2.x, and extended in the ?PackagingComponents metamodel for optional namespace relationships to elements other than classifiers.
In UML 2.x, a component is notated by a classifier symbol that no longer has two protruding rectangles. A <<component>> "stereotype-like" notation is used in UML 2.x. Optionally, a component icon that is similar to the UML 1.4 icon can still be used in the upper right-hand corner of the component symbol.
?MultiplicityElement in UML 2 is abstract, so all create and delete methods for the UML 1.4 Multiplicity elements are deprecated. Instead setMultiplicity should be used. This primarily is an internal implementation detail since the user doesn't deal directly with Multiplicity elements even in the UML 1.4 user interface.
Stereotypes and Tagged Values
Stereotypes and Tagged Values are handled by the Profile mechanism (a lightweight extension mechanism). Stereotypes are specific metaclasses, tagged values are standard metaattributes, and profiles are specific kinds of packages. In UML 1.3, tagged values could extend a model element without requiring the presence of a stereotype. In UML 1.4, this capability, although still supported, was deprecated, to be used only for backward compatibility reasons. In UML 2.0, a tagged value can only be represented as an attribute defined on a stereotype. Therefore, a model element must be extended by a stereotype in order to be extended by tagged values.