RE: Non-real associations?



Date view Thread view Subject view Author view

Gonzalo Genova (ggenova@ie.inf.uc3m.es)
Thu, 14 Mar 2002 17:05:25 +0100


Hello Ulf, >>> Second, «association» is described as "specifies a real association" [2-24]. But what is a real association? Am I the only one missing an explanation here? If the other stereotypes correspond to the programming language concepts of global variable, local variable, procedure parameter, and implicit self parameter, this leaves instance variables (fields, data members) for "real associations." Could one thus say that "real associations" are those genuinely modeled in the static model, without reference to behavior (similar to the data-oriented modeling of relations in E/R, from where OO borrowed many association modeling concepts)? If I interpret [Rumbaugh: Depending on Collaborations: Dependencies as Contextual Associations; JOOP 11(4) 1998] correctly then behavior-related links between objects originally were integrated into the static model only in form of dependencies. Only for uniformity all links had to be instances of some associations, so that the notion of something like "non-real" associations became accepted ("contextual association" in Rum98). Instead of "real" and "non-real", you may prefer the approach of Perdita Stevens: she speaks of <<static>> ("real") and <<dynamic>> ("non-real") associations ["On Associations in the Unified Modeling Language". The Fourth International Conference on the Unified Modeling Language, UML'2001, October 1-5, 2001, Toronto, Ontario, Canada]. I agree that "real associations" originate in data-oriented modeling, but I don't agree that they have no reference to behavior. Behavior-related links may bear any of the five stereotypes, so you can have behavior links that are instances of "real associations". In addition to these, you have four stereotyped links (more properly, link ends) which are not instances of "real associations", but are said to be instances of "non-real associations". I don't agree with this position, and have just submitted a paper for publication ("Sending Messages in UML") where we (me and the other authors) show that a communication link in a collaboration diagram is not always an instance of an association, although it is ultimately based on a navigable association. We reject the confusing concept of "non-real association". The Standard is rather contradictory in this respect. After stating that a message (a.k.a. stimulus) "uses a link between the sender and the receiver for communication", it acknowledges some special situations in which this communication link may be missing: "if the receiver is an argument inside the current activation, a local or global variable, or if the stimulus is sent to the sender instance itself" [2-114]. The same document defines five standard stereotypes for LinkEnd («association», «global», «local», «parameter», and «self») to handle those same special situations [2-103]. What is the sense of defining these special links if they are not necessary, since the communication link is optional? Gonzalo ======================================================================== Gonzalo Genova ggenova@inf.uc3m.es Research and Teaching Assistant http://www.ie.inf.uc3m.es/ggenova/ Department of Computer Science http://inf.lab.inf.uc3m.es/ Carlos III University of Madrid http://www.uc3m.es/ Escuela Politécnica Superior Avda. de la Universidad, 30 28911 Leganés - Madrid - Spain Tel. (34) 91 624 91 07 Fax (34) 91 624 91 29


Date view Thread view Subject view Author view