Large object-oriented systems have, at least, four characteristics tha
t complicate object communication, i.e., the system is distributed and
contains large numbers. e.g., thousands, of objects, objects need to
be reallo cated at run-time and objects can be replaced by other objec
ts in order to adapt to the dynamic changes in the system. Traditional
object communication is based on sending a message to a receiver obje
ct known to the sender of the message. At linking or instantiation tim
e, an object establishes its acquaintances through name/class based bi
nding and uses these objects through its lifetime. if this is too rigi
d, the software engineer has to implement the binding of objects manua
lly using pointers. In our experiments we found the traditional acquai
ntance communication semantics too limited and we identified several p
roblems, related to the reusability of objects and selection mechanism
s, understandability, and expressiveness. We recognised that it is imp
ortant to separate a class or object's requirements on its acquaintanc
es from the way an object selects and binds its acquaintances in actua
l systems. Based on this, we studied the necessary expressiveness for
acquaintance handling and identified four relevant aspects: type and d
uration of binding, conditions for binding, number of selected objects
, and selection region for binding. To implement these aspects, we def
ined ''acquaintance layers'' as part of the ''layered object model.''
Acquaintance layers uniformly extend the traditional object-oriented a
cquaintance handling semantics and allow for the first-class represent
ation of acquaintance selection and binding, thereby increasing tracea
bility and reusability. (C) 1998 John Wiley & Sons, Inc.