UMLConstructsEDNA

From EdnaWiki
Jump to: navigation, search

UML constructs in the EDNA context

At the time of writing, not all features in a UML class diagram can be handled by EDNA (this is partly due to the way that Enterprise Architect handles the transformation to XSD, and partly due to limitations of XSD itself). This is especially important to bear in mind for the Development MXv2 data model, which in its initial stages may make use of any UML feature available.

Ordering

Associations and attributes can have properties such as {ordered} and {unique}. The ability of the current EDNA development process to handle/implement these is currently unknown.

{ordered} means that the order of a set of values is significant, and should be preserved. In practice, this usually means that the set is implemented as an array or vector ("vector" in the Java sense of a growable list, not in the mathematical sense of a magnitude + direction in a multi-dimensional space).

Association classes

Some diagrams use association classes. At the current time, the XSD generation of Enterprise Architect does not transform these classes correctly so they cannot be used directly in EDNA. However, they have the great advantage that the diagrams are much easier to understand. See this article for an explanation (scroll down to the Association Class subsection). The example that is given in the article could also be modelled like this (which is a standard way of transforming a many-to-many link):

AltAssociationClassExample.png

but this has the disadvantage that the association between Flight and FrequentFlyer has to be inferred from the cardinality of the associations to MileageCredit. Using an association class makes the relationship between Flight and FrequentFlyer explicit.

Association redefinition

Deriving a subclass from a class by inheritance allows the definition of its features to be overridden. This is easy enough to understand for attributes and methods because those are contained within the class, but is conceptually more complex for association ends. The {redefines .. } notation on a UML class diagram specifies the name of an association end that is being overridden.

This issue is comprehensively discussed in "On the Use of Association Redefinition in UML Class Diagrams", Dolors Costal, Cristina Gómez; Conceptual Modeling - ER 2006 (Springer), 513-527, doi:10.1007/11901181_38. The first page is freely viewable, and this contains a description of an example problem that association redefinition can address.

"The Unified Modeling Language Reference Manual", 2nd edition, James Rumbaugh, Ivar Jacobson, Grady Booch, 2005 (Addison-Wesley), ISBN:0-321-24562-8 contains a brief discussion of redefinition.