Friday, September 19, 2003

Note on the Synthesis of Patterns

UML is intriguing as a means of communication. It addresses an age-old problem in how to get various epistemic cultures to interact. In many ways, UML appears to be a perfect “boundary object” (Star & Griesemer, 1999) to align programmers, systems experts, and designers. The boundary objects I’m referring to shouldn’t be confused with that other boundary object associated with object oriented programming and design. Rather, boundary objects:

"…are those objects that both inhabit several communities of practice and satisfy the informational requirements of each of them. Boundary objects are thus both plastic enough to adapt to local needs and constraints of the several parties employing them, yet robust enough to maintain a common identity across sites. They are weakly structured in common use and become strongly structured in individual-site use. These objects may be abstract or concrete... Such objects have different meanings in different social worlds but their structure is common enough to more than one world to make them recognizable, a means of translation. The creation and management of boundary objects is a key process in developing and maintaining coherence across intersecting communities." (Bowker & Star, 1999 pg. 297)

UML provides supports the various communities through the creation of both Ontological—of nature—and Methodological—of observing—artefacts (see discussion in Case, 2002). Ontological relationships, for example, become encoded into Use Case, Class, Object, and Deployment diagrams. Sequence and Activity diagrams likewise capture methodological processes. One particularly intriguing diagram is the State diagram that strives to capture and document the exact condition of a particular entity or object at any given time—an admiral goal in our post modern reality!

Much of the language of UML appears to be borrowed from Architecture. “Patterns” for example, are wholesale rip offs (see below for discussion of Christopher Alexander). One key difference remains between architecture and OOA/D. When constructing buildings, the design has to be frozen before the system can be built. In systems design, the design is never frozen. Indeed, Hunt (2000) discusses software design phases as a spiral rather than a waterfall; you always return to elaboration phase! It seems that the design of the systems just won’t stand still so we can fully document it. In their discussion of boundary objects (the sociological kind) Bowker and Star (1999) recognized this:

"At its most abstract, the design and use of information systems involves linking experience gained in one time and place with that gained in another, via representations of some sort. Even simple replication and transmission of information from one place to another involves encoding and decoding as time and place shift. Thus the context of information shifts in spite of its continuities; and this shift in context of imparts heterogeneity to the information itself." (pg. 290)

UML, however, provides an interesting way of capturing this heterogeneity through the use of Patterns. As noted by Hunt (2000), the concept of patterns were borrowed from Architecture, particularly the work of Christopher Alexander (Alexander, Ishikawa, & Silverstein, 1977). Although Alexander’s books are visually stunning and the rational orders they present are appealing to all sorts of designers, his actually building designs have met with little critical or popular success. Indeed, many are outright architectural disasters (see Gabriel, 1996 for discussion) and his purely theoretical work is mere academic kabala (for an example, see Alexander, 1970). These failures may stem from the lack of documentation that Alexander applies to his patterns. Indeed, Hunt (2000) notes this on his discussion of software architectures:

“The architecture is much more than just its basic structure. In producing an architecture the architect has made multiple assumptions and trade offs, and these should be included in the documentation supporting the architecture.” (pg. 39)

It is in UML's use of documentation that we see innovations that may be valuable for the exchange of knowledge between epistemic communities. In Hunt’s discussion on the documentation for patterns we learn that although difficult to support, patterns promote common vocabularies, improve communication, and capture expert knowledge that otherwise remains tacit. In other words, patterns themselves are boundary objects. In creating these objects, Hunt advises us to document: the motivation or context, the prerequisites for using patterns, descriptions of their structure, list of the participants required, consequences of use both positive and negative, and examples of use. Could Hunt’s advice become the source of a new classification schema for IR or Knowledge Management? Would these criteria support Cutter’s bibliographic objectives of finding, collocating, and choosing; or IFLA’s: finding, identifying, selecting, accessing, and navigating? Nota Bene: navigating objective supplied by (Svenonius, 2000).

Although UML seems to offer a positivist panacea for the creation of software, it is losing ground to another design methodology: Extreme Programming or XP. In XP, two programmers work together at a single station to solve problems. It is very popular and has been adopted by organizations like HP and Microsoft (Baer, 2003). If UML offers a way of making programming as explicit as possible, XP embraces programming as an activity rooted in tacit knowledge and provides the socialization processes (Nonaka & Takeuchi, 1995) required to exchange that tacit knowledge.

After all of this I’m left with the issues: social or technological, tacit or explicit…


Alexander, C. (1970). Notes on the Synthesis of Form. Cambridge MA: Harvard University Press.
Alexander, C., Ishikawa, S., & Silverstein, M. (1977). A Pattern Language. New York: Oxford University Press.
Baer, M. (2003). The New X-Men. Wired Magazine, 11(9).
Bowker, G. C., & Star, S. L. (1999). Sorting Things Out: Classification and Its Consequences. Cambridge, MA: MIT Press.
Case, D. O. (2002). Looking for information : a survey of research on information seeking, needs, and behavior. New York: Academic Press.
Gabriel, R. P. (1996). Patterns of software: tales from the software community. New York: Oxford University Press.
Hunt, J. (2000). The unified process for practitioners : object-oriented design, UML and Java. New York: Springer.
Nonaka, I., & Takeuchi, H. (1995). The knowledge-creating company : How Japanese companies create the dynamics of innovation. New York: Oxford University Press.
Star, S. L., & Griesemer, J. R. (1999). Institutional Ecology, "Translations" and Boundary Objects: Amateurs and Professionals in Berkeley's Museum of Vertebrate Zoology, 1907-39. In M. Biagioli (Ed.), The science studies reader (pp. 503-524). New York; London: Routledge.
Svenonius, E. (2000). Bibliographic Objectives. In The Intellectual Foundation of Information Organization. Cambridge: MIT Press.


Post a Comment

Subscribe to Post Comments [Atom]

<< Home