Software designers, developers, and architects are constantly confronted
with the same confounding problem: how to design software that is both
flexible and resilient amid change. To accomplish this tall task,
practitioners must utilize the best available technologies to the fullest.
best-of-breed technologies to create a clear and concise guide to building
high-quality, lasting software designs. In particular, the author provides
unique insight into using the Unified Modeling Language (UML) to
develop Java applications.
The first half of the book focuses on the software process and how UML,
Java technology, and object-oriented programming can be used effectively.
The advantages of each technology are enumerated, highlighting common
principles. Also included are in-depth discussions of design patterns, the
Unified Process, and Extreme Programming.
The second half of the book describes how these complementary
technologies can be used together as a system of checks and balances to
ensure successful creation of high-quality software. You'll also find details
on modeling strategies, a phased approach to adopting each of the
technologies outlined, and the design of subsystems.
Armed with a fresh perception of current design tools, this book will give
you a deeper understanding of how to design cleaner Java applications
using UML. Learn how you can expand your developer's toolkit using
existing technologies in new ways--and create better software.
Understand how to apply proven object-oriented design principles and patterns
to develop resilient, robust, and extensible software systems using the Java
Gain insight into how to adopt and take advantage of the most useful aspects
of the UML on a Java development project, while ignoring those less often
Do the preceding within the context of a well-defined, repeatable, and
predictable software development process, ensuring that the software artifacts
that are created are used
This book documents my experiences developing enterprisewide software
applications. It contains input from literally hundreds of developers I've instructed and
worked with throughout my years of teaching and applying these concepts. It answers
these developers' most frequently asked questions in a format that I've found to be
understandable by those developers. The approach taken in presenting these answers
is one of clear and concise directions, followed by elaborating how various
technologies can be used together to realize resilient results. I hope that the
information in this book can save you both time and energy in your development
This book discusses how the UML can be used during an implementation stage of the software development lifecycle. With its emphasis on object orientation, problem solving, and communication, this book will give developers a deeper understanding of how to design cleaner Java applications. Much of the discussion is focused on refactoring or cleaning up the design of existing code. Using these concepts, developers can become more efficient in discovering more resilient solutions sooner.
architectural restrictions and designing subsystems. These individuals will gain insight into how our models serve as the mechanism to validate our systems' architectures. The numerous principles and guidelines discussed also will help contribute to more resilient systems, as well as serve as a measuring stick of our existing object-oriented designs.
Project managers, IT managers, and project sponsors can benefit by obtaining a deeper understanding of the importance of these key technologies. No longer will we view each of these technologies as separate entities, but we'll see them as a set of complementary tools that can be used together to contribute to a lower-risk development effort.
I'm always interested in obtaining feedback from individuals reading this book. Feel free to e-mail me the information you found most useful. But more importantly, I'm interested in hearing how you feel this book could be improved. Such feedback can ensure future readers obtain the knowledge needed to enhance their software development efforts. I'll post additional information on this book at
A very special thanks goes out to all of the thoughtful reviewers who contributed
significantly in helping to ensure the material in this book was both useful and
accurate. Most significantly, I would like to extend a personal thank you to Adam
Brace, John Brugge, Levi Cook, and David Williams. Their thoughtful reviews and
contributions played significant roles in my ability to complete this work.
In addition, I would like to thank Paul Becker, my editor. Without his constant
encouragement and patience, I no doubt would have been unable to complete this
work. Thank you to Debbie Lafferty, without whom I would not have been a part of
the Addison-Wesley family. I would like to thank Tyrrell Albaugh, my production
manager, for her careful guidance through the final editing stages of the manuscript.
And, of course, without the patience of Nancy Crumpton, some of my ill-formed
sentences and grammatical errors might not have been caught. Finally, I want to thank
the rest of the Addison-Wesley family, most of whom I did not have the honor of
meeting. They made significant contributions in making this book a reality.
Now bringing you back...
Does that email address look wrong? Try again with a different email.