From: "Robert C. Martin" Date: Fri, 26 Dec 1997 10:24:18 -0600 > >... It is true that you can use UML notation to describe either >data or behavior, but you use very different parts of UML for each. This does >not indicate that data and behavior orientations are united. Indeed, they are >diametrically opposed from one another. > >In a data orientation we expose the structure and details of the data and omit >behavior altogether. In behavior orientation we describe the structure of the >behavior and hide the structure and details of the data. I am especially interested in the issue discussed in the last sentence: how to describe behavior in structure-shy way. Indeed, this is the theme of our Demeter project (http://www.ccs.neu.edu/research/demeter/). When you study an object-oriented program, you often find the structural information duplicated numerous times. To avoid those duplications we write programs in terms of traversal specifications (or strategies) which solve the Law of Demeter dilemma. See http://www.ccs.neu.edu/research/demeter/demeter-method/LawOfDemeter/AppletonExplainsDemeterNEW.txt which was posted earlier in this forum. The same structural duplication problem holds for specifications written in the Object Constraint Language (OCL) which is a part of UML. http://www.ccs.neu.edu/research/demeter/course/f97/lectures/powerpoint/lec9.ppt contains a proposal on how to write OCL specifications in a structure-shy way. For a recent success story which shows an application of the structure-shy approach in a commercial context, using Java, see http://www.ccs.neu.edu/research/demeter/evaluation/gte-labs/ -- Karl Lieberherr