The exff Logo

Welcome to the exff Pages

NEWS ABOUT SOFTWARE FAQ GUIDES PAPERS LINKS

EXPRESS to UML Mapping

Resources

SourceForge.net Logo

ISO 10303-25 2003 Draft TS EXPRESS to UML mapping going through standardization within ISO available from OMG as an ISO SC4/OMG liaison document.

This document specifies the mapping from EXPRESS to UML that the exff infrastructure implements. The purpose of exff Release 0.1 is simply to show feasibility. This has the implication that EXRESS schemas that do not strictly follow the Release 0.1 guidelines will not map properly and no checking or error messages will be generated. This also has the implication that care is not taken to support the round trip mapping from EXPRESS to UML and back to EXPRESS. Future releases of exff will provide that capability.

Any EXPRESS declaration not discussed in this document is not considered in the mapping.

Relationship to ISO 10303-25

ISO 10303-25 EXPRESS to XMI Binding (Part25) is a standard being developed in ISO as part of the STEP suite of standards. It defines a mapping from EXPRESS 1 into UML 1.4. While the mapping defined for exff Release 0.1 is in the spirit of Part 25, it is not identical. The ISO standard is still undergoing ballot, and so may change, and for the purposes of showing feasibility it is not necessary to conform to any standard. Future releases of exff will support Part 25 and the exff development team will feed results and comments back to the ISO committee developing Part 25 as members of the two teams overlap.

EXPRESS schema mappings

The mapping only supports single EXPRESS schemas with no USE FROM or REFERENCE FROM declarations.

The EXPRESS schema is mapped to a UML Package within a UML Model named "data specification view". The name of the UML Package is set to be the name of the EXPRESS schema.

All other UML ModelElements mapped from EXPRESS declarations with that schema are created within the namespace of the UML Package mapped from the EXPRESS schema.

EXPRESS simple data type mappings

A UML Class with the same name as an EXPRESS simple data type (string, real, logical, integer, Boolean and binary) are created as part of each mapping. Reference to any of these EXPRESS simple data types are mapped into references to the corresponding UML Class. The namespace for these UML Classes is the UML Model containing the UML Package mapped from the EXPRESS schema.

EXPRESS entity data type mappings

Each EXPRESS entity data type is mapped to a UML Class. The name of the UML Class is the name of the EXPRESS entity data type.

Any EXPRESS subtype declarations are mapped to UML Generalization relationships between UML Classes mapped from the EXPRESS entity data types. Multiple inheritance is supported.

If an EXPRESS ABSTRACT SUPERTYPE constraint is applied to the EXPRESS entity data type, the UML Class isAbstract attribute is set to 'true' for the UML Class mapped from the EXPRESS entity data type.

No other SUPERTYPE or SUBTYPE_CONSTRAINT declarations are mapped. It should be noted that the default relationship between UML Specializations is mutually exclusive while the default relationship between EXPRESS subtypes is not mutually exclusive.

EXPRESS explicit attribute mappings

As EXPRESS has no construct similar to a UML Association, some EXPRESS explicit attributes map to UML Attributes while others map to UML Associations.

EXPRESS attribute to UML Attribute

Each EXPRESS explicit attribute with a simple data type as its base type is mapped to UML Attribute defined within the UML Class mapped from the containing EXPRESS entity data type. The name of the UML Attribute is set to be the name of the EXPRESS explicit attribute. The type of the UML Attribute is set to be the UML Class representing the EXPRESS simple data type.

UML Association mappings

Each EXPRESS explicit attribute with a single or SET OF entity data type(s) as its base type is mapped to UML Association defined at the same level as UML Class mapped from the containing EXPRESS entity data type. One UML AssociationEnd is set to be the UML Class mapped from the containing EXPRESS entity data type (call this this source end) and the other UML AssociationEnd is set to refer to the UML Class mapped from the EXPRESS entity data type that is the base type of the explicit attribute (call this the target end).

In both cases, the name of the UML Association is set to be the name of the EXPRESS explicit attribute and the name of the UML AssociationEnd at the target end of the relationship is set to be the name of the EXPRESS explicit attribute.

If the base type of the EXPRESS explicit attribute is a single entity data type, the UML Multiplicity is set to be 1..1 at the targer end and 0..* at the source end.