Cooperating Cultures


Arguing for the existence of an object paradigm or object culture is not and should not be taken as an absolute rejection of traditional computer science and software engineering [11] . It would be foolhardy to suggest that nothing of value has resulted from the last fifty years of theory and practice.

Claiming that there are clear criteria for determining whether software is object oriented is not the same as saying all software should be object oriented. Expecting a device driver implemented with 100 lines of assembly language to  reflect full object thinking is probably pointless. It s possible that Internet search engines must be implemented using database thinking rather than object thinking ”at least for the immediate present. Different problems do require different solutions. The vast majority of problems that professional developers are paid to deliver, however, almost certainly require object solutions.

Traditional approaches to software ”and the formalist philosophy behind them ”are quite possibly the best approach if you are working close to the machine ”that is, you are working with device drivers or embedded software. Specific modules in business applications are appropriately designed with more formalism than most. One example is the module that calculates the balance of my bank account. A neural network, on the other hand, might be more hermeneutic and objectlike, in part because precision and accuracy are not expected of that kind of system.

Traditional methods , however, do not seem to scale. Nor do they seem appropriate for many of the kinds of systems being developed 50 years after the first computer application programs were delivered. Consider the simple graph in Figure 3-2.

click to expand
Figure 3-2: Applicability graph.

The horizontal axis represents the spectrum of activities involved in systems modeling and application development. It ranges from analysis (with the accompanying tasks of comprehending the real world, making useful abstractions, and decomposition) to implementation (compiling, testing, and executing).

The vertical axis opposes the deterministic world (the domain of hardware, discrete modules, algorithms, and small-scale formal systems) to the natural world (businesses and organizations, societies , composite systems, and cultures).

A diagonal bisects the graph to demarcate two realms. To the lower right is the realm where mainstream computer science and formalist ideas have demonstrated success. Emphasis in this realm is on defining and building hardware and using a finite set of representations (binary and operation codes) and manipulation rules (the grammar of a compiler) to implement software designs. This is the realm of formalism, where systems can be complicated and even large but not complex ”that is, they do not exhibit nondeterministic behavior, they are not self-organizing , and they do not have emergent properties.

At the upper left is an area that is largely terra incognita as far as computer scientists are concerned . This is the realm of social, biological, and other complex (as that term is coming to be understood ) systems. Meaning in this realm is not defined; it is negotiated. Rules are not fixed but are contextual and ephemeral. Constant flux replaces long-term consistency. This is the arena in which hermeneutic and object ideas offer an expansion of our ability to model and build systems capable of interacting with the natural systems in which they will have to exist.

This is the realm where objects and the object paradigm should dominate.

Objects provide a foundation for constructing a common vocabulary and a process of negotiated understanding of the complex world. Behavioral objects offer a decomposition technique that will yield adaptable constructs for building highly distributed, intelligent , and flexible computer artifacts and computer-based systems.

Object thinking provides a foundation for attaining an integration of artificial systems (computer and software) with the natural systems (social and cultural contexts). Object thinking requires an awareness of the domain and the fitness of our artifacts as they operate in that domain in ways that traditional thinking ( Make the artifact meet specification ) cannot. Object thinking coupled with the values of XP, especially communication, create a basis for true collaboration among users, managers, and developers.

All of this, once we learn object thinking.

[11] The ideas in this section were first published in a short editorial by the author in Communications of the ACM , 1997.




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