Object Thinking


Thirty plus years have passed since Alan Kay coined the term object-oriented . Almost all contemporary software developers describe their work using object vocabulary and use languages and specification tools that lay claim to the object label. The ubiquity of object terminology does not mean, however, that everyone has mastered object thinking. Nor does the popularity of Java. Nor does the de facto standardization of object modeling embodied in UML. A prediction made by T. Rentsch (cited by Grady Booch in 1991 [12] ) remains an accurate description of today s development and developers:

My guess is that object-oriented programming will be in the 1980s what structured programming was in the 1970s. Everyone will be in favor of it. Every manufacturer will promote his products as supporting it. Every manager will pay lip service to it. Every programmer will practice it (differently). And no one will know just what it is.

In fact, the situation may be worse than Rentsch predicted . An argument can be made that the contemporary mainstream understanding of objects is but a pale shadow of the original idea. Further, it can be argued that the mainstream understanding of objects is, in practice, antithetical to the original intent.

Clearly the behavioral approach to understanding objects has all but disappeared. (Yes, UML does allow for a responsibility segment in its class diagram and description, but this hardly offsets the dominant trend in UML to treat objects as if they were animated data entities or miniature COBOL programs. ) This fact is important because two of the leading advocates behind XP were also the leading advocates of behavioral objects. Kent Beck and Ward Cunningham invented the CRC card approach to finding and defining objects ”the most popular of the behavioral methods . Others deeply involved in the Agile Alliance were also identified with object behavioralism and with Smalltalk, the programming language that came closest to embodying behavioral objects.

It isn t unreasonable to assume that the behavioral approach to understanding objects dominates the object thinking of many of the best XP practitioners , in part because it was almost necessarily part of the oral tradition passed on by Kent Beck as he initiated others into the XP culture.

Note  

Certain aspects of XP practice are simply incarnations of earlier practices. XP stories, for example, which deal with a system function actualized by a group of objects, are identical to the scenarios talked about in conjunction with CRC cards. Stories that are factored to their simplest form are nothing more than responsibilities. The only real difference between stories and scenarios/behaviors is the insistence that stories are always, and only, told by the domain expert (the customer) and always depict interactions in the problem domain. This was also true of good scenarios, but in the object literature scenarios tended to reflect implementation more than they did problem description.

It s also reasonable to assume that behavioral object thinking is only implicit in the XP/agile culture because so few books or texts were ever written in support of this approach. Neither Beck nor Cunningham ever wrote such a book. Rebecca Wirfs-Brock didn t update her 1991 book describing behavior-based object design until this year. Other efforts in this area (for example, Nancy Wilkerson s book on CRC cards) were not widely known and have not been updated.

This is particularly unfortunate because the CRC card method as described in the early 1990s did not incorporate all aspects of object thinking. In fact, I believe that object thinking transcends the notion of method just as it transcended programming languages. (You can do good object programming in almost any language, even though some languages offer you more support than others.)

Object thinking requires more than an understanding of CRC cards as presented circa 1990. It also requires understanding some of the history and some of the philosophical presuppositions behind object behavioralism, CRC cards, and languages such as Smalltalk. It requires an understanding of the metaphors that assist in good object thinking and an extension of the CRC card metaphor, in particular, to include more than object identification and responsibility assignment.

It is my hope that this book will promote such an understanding by capturing at least part of the oral tradition of behavioral objects and making it explicit.

[12] Booch, Grady. Object-Oriented Analysis and Design with Applications, Second Edition. Boston: Addison-Wesley, 1993.




Microsoft Object Thinking
Object Thinking (DV-Microsoft Professional)
ISBN: 0735619654
EAN: 2147483647
Year: 2004
Pages: 88
Authors: David West

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net