The exff Logo

Welcome to the exff Pages

NEWS ABOUT SOFTWARE FAQ GUIDES PAPERS LINKS

About UML™ Profiles

Resources

SourceForge.net Logo

UML Resource Page by OMG

UML Home Page by OMG

Catalog of OMG Specs

For those unfamiliar with the concept of a UML profile, here's a simple example.

Define the rules

First we define the rules for what the UML model elements mean:

  1. A UML Class without a stereotype (i.e. not marked with <<stereotype_name>>) represents an EXPRESS entity type.
  2. When the UML Class name is in italics, the in means the EXPRESS entity type is ABSTRACT.
  3. In a UML Class Diagram, the big arrowhead end points to the supertype in a subtype/supertype graph - this is backwards from how EXPRESS-G works.
  4. A UML Class with a <<simple_type>> stereotype represents an EXPRESS simple data type of the same name.
  5. A UML Class with a <<select_type>> stereotype represents an EXPRESS SELECT type and it's subtypes are the select items.
  6. A UML Class with a <<defined_type>> stereotype represents an EXPRESS defined type.
  7. UML Attributes in boxes represent EXPRESS explicit attributes.
  8. UML Association lines between boxes represent EXPRESS explicit attributes that are SET or LIST OF UNIQUE.

Embed the rules in a UML tool

Then we define the UML Stereotypes in the UML tool of choice. How this happens varies from tool to tool.

Then we use the rules when creating a UML diagram:

An example UML diagram of EXPRESS using a UML Profile

Figure 1 - Example UML Profile Usage

Process the diagram

Finally, we execute a process that understands the profile (e.g it treats the UML Classes as EXPRESS entity data types). This might be a transformation to EXPRESS or validation of a set of data against the EXPRESS.

It is important to note that we can also execute processes that do not understand the profile. In that case, the UML Classes are treated normally. This might be the generation of skeleton code to being an implementation.