EA now provides support for multiple stereotypes in most (if not all) the places it needs to.
As far as we can make out, the
[size=13]UML 2.1 Superstructure (interim)[/size] Specification is silent on any further properties of multiple stereotypes.
However, because of the way in which Sparx have implemented it, there is a consequence. One of the stereotypes is placed in the previous single stereotype entry. The others (perhaps including the one just mentioned) are stored elsewhere.
By implication (and to a large extent by behaviour - since the "first" stereotype is used to trigger stereotype based adornment of vertexes), there is the notion of a
primary stereotype and
auxiliaries (the others).
In essence, EA paraphrases George Orwell: "All stereotypes are equal, but some are more equal than others".
Now, We're not complaining about this state of affairs. It is quite reasonable that EA take this view: That one stereotype is the primary and others are auxiliaries. However, it needs to more adequately support this. In the multiple stereotypes dialog:
Stereotype for <object> there is
no mechanism to select which of the stereotypes is to be designated the primary. This can lead to some anomalous behaviour - an unexpected stereotype gets allocated to the primary spot.
This needs to be addressed.Once this has been done, there is the question of where should the notion of multiple stereotypes go?
We are of the view that, eventually, multiple stereotypes will need to be
ordered. That is, there will also need to be an order within the auxiliaries. If the stereotypes are ordered, we can have a deterministic outcome to the application of stereotype based adornments. By applying the adornments in reverse order (and implicitly allowing «Not used» - this stereotype doesn't use this particular adornment (font name, or line type etc)), you can "overlay" the adornments consistently.
Thoughts? Votes?
Paolo
[size=0]©2006 Paolo Cantoni, -Semantica-[/size]