2014-02-19

‎UML Metamodel:

← Older revision

Revision as of 00:42, 19 February 2014

(6 intermediate revisions by one user not shown)

Line 5:

Line 5:

 

The intent of this guide is to assist consumers in the process of migrating from the UML2 4.x API, based on the UML 2.4.1 specification, to the new UML2 5.0 API, based on the UML 2.5 specification, and to summarize any new features of the implementation that developers may want to take advantage of.  

 

The intent of this guide is to assist consumers in the process of migrating from the UML2 4.x API, based on the UML 2.4.1 specification, to the new UML2 5.0 API, based on the UML 2.5 specification, and to summarize any new features of the implementation that developers may want to take advantage of.  

 

 



'''Kenn Hussey''', '''Christian W. Damus''' <br> Last Updated:
January 27
, 2014

+

'''Kenn Hussey''', '''Christian W. Damus''' <br> Last Updated:
February 18
, 2014

 

 

 

= Overview  =

 

= Overview  =

 

 



The Eclipse UML2 (Unified Modeling Language 2.x) project is an EMF-based implementation of the UML 2.x metamodel for the Eclipse platform. This implementation was previously compliant with the 2.4.1 version of the UML specification, for which a newer version, namely 2.5,
has been
released by the Object Management Group (OMG).

+

The Eclipse UML2 (Unified Modeling Language 2.x) project is an EMF-based implementation of the UML 2.x metamodel for the Eclipse platform. This implementation was previously compliant with the 2.4.1 version of the UML specification, for which a newer version, namely 2.5,
will soon be officially
released by the Object Management Group (OMG).

 

 

 

The UML2 metamodel implementation has been enhanced so that it is compliant with the 2.5 version of the UML specification. This enhanced implementation has been delivered as a new version, 5.0, of the UML2 project, to be released as part of the Luna simultaneous release of Eclipse. The source code for this new version of the project is managed in an Eclipse git repository and built, using Buckminster, on the Hudson installation at Eclipse.  

 

The UML2 metamodel implementation has been enhanced so that it is compliant with the 2.5 version of the UML specification. This enhanced implementation has been delivered as a new version, 5.0, of the UML2 project, to be released as part of the Luna simultaneous release of Eclipse. The source code for this new version of the project is managed in an Eclipse git repository and built, using Buckminster, on the Hudson installation at Eclipse.  

 

 

 

UML 2.5 was actually released by the OMG as part of a series of revisions, also known as the “2.5 series”, which includes updated versions of the Meta Object Facility (MOF) and MOF 2 XMI Mapping specifications as well. Based on a careful analysis of the delta between the previous UML2 implementation and the UML 2.5 specification, described in more detail below, it was decided that the new version of UML2 would NOT be compatible with UML2 4.x. UML2 5.0 supersedes previous version(s) of the project (i.e., new major or minor versions of the 4.x stream will NOT be released) and is neither API contract nor binary compatible with UML2 4.x.  

 

UML 2.5 was actually released by the OMG as part of a series of revisions, also known as the “2.5 series”, which includes updated versions of the Meta Object Facility (MOF) and MOF 2 XMI Mapping specifications as well. Based on a careful analysis of the delta between the previous UML2 implementation and the UML 2.5 specification, described in more detail below, it was decided that the new version of UML2 would NOT be compatible with UML2 4.x. UML2 5.0 supersedes previous version(s) of the project (i.e., new major or minor versions of the 4.x stream will NOT be released) and is neither API contract nor binary compatible with UML2 4.x.  

 

+

 

+

While the UML 2.5 specification has been extensively re-written from its previous version to make it easier to read by removing redundancy and increasing clarity, the metamodel itself remains largely unchanged from UML 2.4.1 superstructure, with the following 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 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.

 

+

*An {ordered} constraint has been added to some properties in order to make the semantics consistent.

 

+

*The StandardProfileL2 and StandardProfileL3 profiles have been amalgamated into a single StandardProfile.

 

+

*NamedElement::clientDependency has been made derived.

 

 

 

This migration guide has been provided to assist consumers in the process of migrating to the new UML2 5.0 API. An XMI-based (de)serialization mechanism (described herein) has also been provided to automatically migrate resources based on the UML2 4.x schema to the new 5.0 schema.  

 

This migration guide has been provided to assist consumers in the process of migrating to the new UML2 5.0 API. An XMI-based (de)serialization mechanism (described herein) has also been provided to automatically migrate resources based on the UML2 4.x schema to the new 5.0 schema.  

Line 31:

Line 41:

 

== UML Metamodel ==

 

== UML Metamodel ==

 

 



''
TBD
''

+

The UML2 project provides a Java API for the UML metamodel that is generated using a (customized version of) the code generation facility in EMF. In the past, this API has been generated from a source model produced by merging a reference model of the merged L3 compliance level of UML with custom extensions introduced by the UML2 project. As of [http://www.omg.org/spec/UML/2.5/Beta2/ UML 2.5], however, this reference model has been partitioned into subpackages by the OMG. As a result, the API is now be generated from a source model produced by merging all of the subpackages of the reference model with custom extensions introduced by the UML2 project.

 

+

 

 

+

The following subsections describe the changes to the properties, operations, and constraints in the revised UML specification which affected the metamodel API provided by UML2. It is worth noting that a number of of the utilities and unit tests provided by UML2 were also modified in response to changes in the API.

 

+

 

 

+

OMG issue numbers could not be identified for many of the changes listed in the tables below (as indicated by questions marks) because they were made during preparation and submission of the UML 2.5 Beta 1 specification (and not by the UML 2.5 FTF).

 

+

 

 

+

=== Properties ===

 

+

"
TBD
"

 

+

 

 

+

=== Operations ===

 

+

"TBD"

 

+

 

 

+

=== Constraints ===

 

+

"TBD"

 

+

 

 

+

= Profiles =

 

+

"TBD"

 

+

 

 

+

= Resources =

 

+

"TBD"

 

+

 

 

+

= Legacy Interchange =

 

+

"TBD"

 

+

 

 

+

= XMI Interchange =

 

+

"TBD"

 

+

 

 

+

= CMOF Interchange =

 

+

"TBD"

 

+

 

 

+

= Ecore / UML Conversion =

 

+

"TBD"

 

+

 

 

+

= Examples =

 

+

"TBD"

Show more