UML Migration Guide
Tom Morris
January, 2006
Introduction
ArgoUML 0.20 is the first release to support UML 1.4. This document
describes the changes caused by the move from UML 1.3 to UML 1.4 as well
as some things that you may want to consider as you plan for the move to
UML 2.0 in the future.
Important: The first time you open a UML 1.3 based project, or
import a UML 1.3 XMI file, ArgoUML will automatically update it to UML
1.4. You should carefully verify that everything got converted
correctly you should keep a backup of your UML 1.3 file in case
you need it again. ArgoUML can no longer write UML 1.3 files, so this is
a one way conversion process.
Changes from UML 1.3 to UML 1.4
The UML 1.4 specification is not completely upward compatible with the
UML 1.3 specification, so some changes need to be made to UML 1.3 models
when they are imported into a version of ArgoUML supporting UML 1.4.
This conversion is done using XSLT with the stylesheet
org/argouml/model/mdr/conversion/uml13touml14.xsl which can be found in
the ArgoUML JAR or in the repository
here
. A summary done by the OMG of the changes between the two versions can
be found at
http://www.omg.org/docs/ad/01-02-11.pdf.
The most
comprehensive documentation of the changes is the changebarred version
of the UML 1.4 specification available as document
01-09-67
on the OMG web site..
Planning for UML 1.4 to UML 2.0 Migration
As you upgrade your models from UML 1.3 to UML 1.4, it's a good time to
think about the future and consider the changes which will be needed for
UML 2.0 which is expected to complete the standardization process during
2006. It will be some time before it's supported by ArgoUML, but it's
better to plan ahead and not model things in a way which will be
incompatible with UML 2.0.
The following list of changes is derived in part from the MagicDraw
Migration to UML 2.0 Manual. More detail may be found there.
CLASS DIAGRAM
- A Dependency can only be connected between NamedElements
in UML 2.0 rather than any ModelElement as in UML 1.4.
Metatypes which were subtypes of ModelElement, but are not
subtypes of NamedElements include Generalization, PackageMerge
and ElementImport. These should be avoided when drawing
dependencies which you want to migrate to UML 2.0.
- The metatype Subsystem has been removed from UML 2.0. Use a
Component with the stereotype <<subsystem>>
instead.
- All tags must be owned by a Stereotype in UML 2.0. This is
optional in UML 1.4, but for best compatibility with UML 2.0, make
sure all tags are modeled with an owning stereotype. Elements which
have the tag should also have the stereotype applied. (Clarify
this)
- All Stereotypes must be contained in a Profile in UML 2.0. You can
emulate this now by grouping all your Stereotype definitions together
in package with the «profile» to make them easy to convert when you
move to UML 2.0.
- The following stereotypes were eliminated from the Standard UML
Profile in UML 2.0 and should be avoided for best compatibility even
though they are available in the UML 1.4 profile:
| Deleted Stereotype |
Base Element |
| «access» |
Permission |
| «appliedProfile» |
Package |
| «association» |
AssociationEnd |
| «copy» |
Flow |
| «create» |
CallEvent |
| «create» |
Usage |
| «destroy» |
CallEvent |
| «facade» |
Package |
| «friend» |
Permission |
| «invariant» |
Constraint |
| «local» |
AssociationEnd |
| «parameter» |
AssociationEnd |
| «postcondition» |
Constraint |
| «powertype» |
Class |
| «precondition» |
Constraint |
| «profile» |
Package |
| «realize» |
Abstraction |
| «requirement» |
Comment |
| «self» |
AssociationEnd |
| «signalflow» |
ObjectFlowState |
| «stateInvariant» |
Constraint |
| «stub» |
Package |
| «table» |
Artifact |
| «thread» |
Classifier |
| «topLevel» |
Package |
- Other elements of the Standard UML Profile are to be described.
SEQUENCE DIAGRAM
- UML 2.0 provides new notation for concurrency and branching using
combined fragments. There's not much that can be done to prepare for
this, but being aware of the impending change may influence how much
you try to model using these features.
STATE DIAGRAM
- StubState and SynchState have been removed from the
UML 2.0 specification. Avoid using them in UML 1.4 so you don't have
to rework your models for UML 2.0
- Event can no longer have parameters in UML 2.0. Avoid using
these so they aren't lost in the migration to UML 2.0. As
alternatives, NoMagic is recommending to its users to:
- Use parameters of Operation when using CallOperationEvent.
- Add additional parameters to operation if you are using more CallOperationEvent
parameters than Operation has.
- Add additional parameters to operation if you are using more CallOperationEvent
parameters than Operation has.
- Assign stereotypes and tags to Operation parameters
instead of CallEvent parameters.
- Apply corresponding rules to parameters of SendSignalEvent
and attributes of Signal
ACTIVITY DIAGRAM
- In UML 2.0, Components cannot be deployed in Nodes. Artifacts
related with these components should be deployed instead.