A UML Pattern Language
Authors: Evitts P.
Published year: 2005
These reviewers contributed their considerable, hands-on expertise to the entire development process for A UML Pattern Language . As the book was being written, these folks reviewed all the material for technical content, organization, and flow. Their feedback was critical to ensuring that A UML Pattern Language fits our readers' needs for the highest quality technical information.
David G. Lewis is a technology consultant in the Washington D.C. area, specializing in enterprise software development and technology management. He has been active in the design, development, and management of distributed object-oriented technology for more than 10 years . David began his career working on an object-oriented point-of-sale system in C on a DEC Rainbow running Venix in 1986. The company failed, but the product's successful use of object-oriented principles, reusable frameworks, and thoughtful design demonstrated the merits of this approach. Thus began a career-long commitment to object-oriented design and software reuse.
David's contributions in this area included a persistence framework for the GenBank project at Los Alamos National Laboratory; file-system technology licensed for the NeXTSTEP operating system; and key roles in the development of object-oriented systems, reusable frameworks, and technology adoption at Washington-area companies—including Fannie Mae, MCI, and T. Rowe Price. He is currently involved in developing and promoting CORBA technology at a start-up company in northern Virginia. David graduated from the Great Books Program at St. John's College in Santa Fe in 1985.
Mark Sandberg has been developing software for over 14 years for a wide variety of industries, including financial, telecommunications, and healthcare businesses. Currently, Mark is the e-commerce development manager for HealthObjects Corporation, where he is managing the design and development of a healthcare portal product.
From 1995 to 1999, Mark was a consultant with Object Systems Group, for which he concentrated on technical and process mentoring on application development teams . From 1989 to 1995, he worked at Campbell and Co., developing proprietary trading systems for the options and futures markets. From 1985 to 1989, Mark worked at Electronic Data Systems, implementing and supporting client/server applications for the US Army's Housing Management System. He received his B.S. degree in Mathematics and Economics from Wake Forest University in 1985.
I have to acknowledge the determination and god-like patience of Tom Cirtin, my development editor at MTP, and Jen Garrett, our editorial coordinator . On a professional level, they made me do it. And do it. And do it. The reviewers, David Lewis (Mr. SoapBox) and Mark Sandberg (Mr. Laconic), played complementary (if not always complimentary ) roles in keeping me honest and real. Dion Hinchcliffe, a senior architect at T. Rowe Price in Baltimore, provided the original version of a large percentage of the more technical patterns here, as well as the initial idea for the book, although one I've deviated from enormously.
Arma virumque cano.
I sing of tools and the man.
—Virgil's introduction to the Aeneid, freely translated
This book is about how to model software systems and how to use those models. It is rooted in that emerging intellectual "ecosystem" comprising the various networks (the Internet, intranets , extranets, and so on), distributed objects, piecemeal development based on short development cycles, and something called patterns . It is aimed at developers, designers, and architects of software systems and the ways they practice their craft.
It proposes that the convergent appearance of patterns and the Unified Modeling Language (UML) is no accident . Patterns are a way of documenting collective, timeless ways of thinking about designing and building software systems. The UML is a way of documenting the specifics of a system for a particular time to support a development effort as the system evolves and changes. Both are exercises in eliminating the ephemeral quality of process and product that has bedeviled our profession.
The two are manifestations of a basic shift in the way systems are designed and built—one that software professionals are just beginning to grapple with. This shift is indicative of a broader trend in the way professionals work and the way they work with the people they are supposed to help, which is beginning to be felt in the software community.
At its simplest, the change for software developers represents a shift away from an immature vision of software development as a field dominated by solitary coders. It moves toward a more mature vision of a collaborative nature of software development—one that is typical of genuine professional practice. But it also challenges the traditional views that software developers have about their profession.
In a sense, the emergence of patterns and the UML also symbolizes a shift away from a systems culture, in which programming defined the core of the discipline and coding defined the core of its practice. Design and modeling have become equal partners with programming and coding in the enterprise of software development.
The pattern language in this book is a practical adjunct to this shift. Its goal is to provide a toolset that software professionals can use, one that is fitted to the dimensions of the work to be done in modeling systems and is equally fitted to the needs of real practitioners and craftspeople engaged in software development.
This book's audience is neither hackers (in the original sense of cowboy programmers), engineers , nor academics ; rather it is software developers. Its readers are literate, not just in software languages, but also in software ideas. They have a professional need to understand the exciting new ideas that are emerging, as well as a need for the tools they generate. And they have a professional curiosity about the origins of the ideas that shape their work.
The pattern language itself—the core of this book—reflects the importance of being practical. Patterns are inherently practical. By keeping faith with current notions of practicality (in particular, the need to avoid creating a methodology), however, this book is not intended to end up as "shelfware." Nor is it courseware. It isn't intended to be read from cover to cover as a unified learning experience. Rather, it's meant to be applied, used, and shaped by the user .
A UML Pattern Language
Authors: Evitts P.
Published year: 2005