Introduction

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
A UML Pattern Language (Software Engineering)
ISBN: 157870118X
EAN: 2147483647
Year: 2005
Pages: 100
Authors: Paul Evitts

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