Hi Mira and Stephan: I enjoyed reading your paper for the ASoC workshop at ICSE 2001 that you sent to the AIRES list. A great paper. /proj/adaptive/www/papers/mira http://www.ccs.neu.edu/research/demeter/papers/mira/ I found your paragraph about the mechanism for selecting methods for replacement very interesting. You say that a function could be allowed that by introspective examination selects methods for replacement. This is an important topic because their is a tradeoff: When we modularise one concern, we might scatter information from another concern and those replacement-selection functions you mention allow to reduce the scattering. An example: The ReadersWriters component that replaces the read and write method of a participant. When we apply the pattern ReadersWriters to the HashTable class, the adapter contains some of the details of the HashTable class, for example, by enumerating all readers and all writers. A function, as you suggest, could compute the readers and writers, making the adapter more robust. Robustness of adapters is one of our focal points; that is why we use traversal strategies to map participant graphs to classes. I think that designs should be done in such a way so that your replacement-selection functions can be written elegantly, keeping the adapters free from too many details. For a similar reason, we design class graphs in such a way that traversal strategies can be written easily, keeping the adapters free from too many details. -- Karl