Building Large-Scale Systems Using Object Technology
Cambridge University Press/SIGS Books, July 1998 ISBN#: 0-521-64568-9
Organizations have moved beyond the pilot
project stage and are now using object technology to build
large-scale, mission-critical business applications.
Unfortunately they are finding that the processes which proved so
successful on small, proof-of-concept projects do not scale very
well for real-world development. Todays organization needs
a collection of proven techniques for managing the complexities
of large-scale, object-oriented software development projects, a
collection of process patterns. A process pattern (see
To Process Patterns White Paper)
describes a collection of general techniques, actions, and/or
tasks for developing object-oriented software. An important
feature of a process pattern should be that it describes what
should be done but not the exact details of how it is done.
The object-oriented software process (OOSP) presented in this book is a collection of process patterns that are geared toward medium to large-size organizations that need to develop software that support their main line of business. I have chosen to describe the OOSP as a collection of process patterns that have been proven in practice: they are not the theoretical musings of an ivory-tower academic who has never built an application. The OOSP provides a framework which addresses issues such as how to:
1. Describes the Initiate and Construct phases of
2. Satisfies the demands of large-scale, mission-critical software.
3. Geared towards the development of business applications.
4. Provides proven advice based on experience, not academic theory.
5. Indicates how the entire object-oriented software process (OOSP) works together.
6. It is written by a software developer for software developers.
7. It is written in straightforward, easy to understand language.
8. Uses the industry standard Unified Modeling Language(UML) for all models.
9. Provides a significantly more comprehensive view of the software process than the Unified Process, providing techniques which can be easily adapted to extend and complete the Unified Process.
This book, along with More Process
Patterns, actively attacks several
myths of the object industry. First, the belief that object
development is a purely iterative process is questionable at
best. Although this might appear to be true for small pilot
projects using OO technology, the reality for large-scale,
mission-critical applications is that the OO development process
is serial in the large and iterative in the small, delivering
incremental releases over time.
Second, this book also disproves the myth that you can do less testing when you use OO technology. The reality is that the exact opposite is true, you need to do more. One of my fundamental beliefs, a belief shared by the vast majority of professional software engineers, is that testing and quality assurance should be performed throughout the entire development process, not just at the end of it. Furthermore, the reality of incremental development is that you need to perform more regression testing than with single-shot, "big-bang" development.
Third, this book disproves the myth that we only need to be concerned with development issues while building an application. The reality is that the concerns of maintenance and support are just as important, if not more so, than those of development. The OOSP explicitly includes both maintenance and support as part of the project life cycle, so as to put it in the face of everyone involved in the development process. There is a saying in the computer industry: A good developer knows that there is more to development than programming, a great developer knows that there is more to development than development. The Maintenance and Support phase is discussed in detail in More Process Patterns.
Fourth, I hope that this book disproves the myth that processes only result in needless paper work. My experience has been that process patterns, when applied intelligently, increase the productivity of developers. My experience has also been that when process patterns are applied less-than-intelligently, that when the paper pushers have too much influence in an organization, can decrease your productivity. The process patterns presented in the book have been proven to work in practice, how you choose to implement them will determine how successful you are. Organizations that keep the end goal in mind that of developing, maintaining, and supporting software that fulfills the needs of their user community will be successful with process patterns. Those that follow processes simply for the sake of following processes are likely to fail.
So what does this book cover? First of all, it is organized by the first two serial phases of OO development: Initiate and Construct. Second, each phase is then divided further into its iterative stages. As a result, the book is organized into the following chapters:
As I describe each serial phase and iterative stage throughout the book I address a series of project and cross-project tasks that are crucial to your success. These tasks are:
For the most part this book is geared towards senior object developers, project managers, information technology executives. Senior object developers will find that process patterns provide a framework for organizing their work and for increasing their productivity. Project managers will find this book an excellent reference for managing a large-scale development effort, and information technology executives will find it an excellent source of insight as to how to make long-term development successful.
By reading Process Patterns you will gain a thorough understanding of how the entire object-oriented development process works. Furthermore you will gain a detailed understanding of the Initiate and Construct phases of OO development, the phases where software is built, in a coherent and consistent manner.
1. Five stars. The feature that sets this book apart is the way
established OO principles and methods are seamlessly integrated
into a complete and coherent development process. Chris
Neatby-Smith, Computer Bulletin.
2. ComputerWorld Canada Review
I maintain a list of typos of all my books so that they can be addressed in future reprints. I'd really appreciate hearing about anything that you find.
We actively work with clients around the world to improve their information technology (IT) practices, typically in the role of mentor/coach, team lead, or trainer. A full description of what we do, and how to contact us, can be found at Scott W. Ambler + Associates.