Mappings , maps and tables : Towards formal semantics for associations in UML 2. Zinovy Diskin and Juergen Dingel Queen’s University Kingston, Ontario, Canada. The speaker. The UML 2.0 Semantics Project. Why Associations:.
Mappings, maps and tables: Towards formal semantics for associations in UML 2
Zinovy Diskin and Juergen Dingel
Kingston, Ontario, Canada
The UML 2.0 Semantics Project
There are some things so serious you have to laugh at them.
-- Niels Bohr
Three views of the model
The goal is
Extension is explicit!
DB & UML
PL & UML
'When I use a word,' Humpty Dumpty said, in a rather scornful tone,' it means just what I choose it to mean, neither more nor less.'
'The question is,' said Alice, 'whether you can make words mean so many different things.'
'The question is,' said Humpty Dumpty, 'which is to be master - that's all.'
'When I make a word do a lot of work like that,' said Humpty Dumpty, 'I always pay it extra.'
The question is how much extra do UML committees pay to the terms “association” and “association end”?
f2 is navigable
f2 is not navigable
Association A owns an end E
“A” owns all its ends
“A” owns not all its ends
“E” is navigable
“A” is a table and E is a column name
“E” is not navigable
“A” is a set of mappings between classifiers, which have a common extension [[A]]. End E is a mapping, which is not stored yet can be derived from [[A]]
“A” is a mappings between classifiers, and E is a placeholder for the corresponding part of the multiplicity constraints to this mapping
General conclusion: Semantics of the association construct can be uncovered in a few Semanticsand Descriptionsections of the Spec, and is presented there in a sufficiently consistent way. However, the part of this semantics formally captured in the UML metamodel is much poorer and that is why the latter is ambiguous (recall our Cylinder model).
Particular technical problems of the UML metamodel of associations:
-- meta-association context is missing, which makes the fundamental metaclass Property underspecified (in fact, undefined);
-- meta-association qualifier is improperly defined: its target must be the metaclass Role rather then Property;
-- a few important constraints are missing (see the paper).
Deeper conceptual problems:
-- fundamental dichotomy associations-as-mappings vs. associations-as-tables is not specified;
-- fundamental dichotomy basic-derived element of association is not specified.
A these red problems really so bad?
Would you tell me, please, which way I ought to go from here?' asked Alice.
`That depends a good deal on where you want to get to,' said the Cat.
`I don't much care where‘ said Alice.
`Then it doesn't matter which way you go,' said the Cat.
UML is a language,
and understanding UML is a linguistic activity
UML as a specification language must be clear, precise and unambiguous. Formal semantics can really help here.
UML as a communication language does not ought anything besides being convenient and usable (like other natural languages). As for multiple meanings of its terms, recall Wittgenstein’s Thesis: The meaning of a word is determined by its use.