xvi Preface
described using the UML 2 notation, the latest version of the standard. In particu-
lar, this book:
■ Provides a comprehensive treatment of the application of the UML-based
object-oriented concepts to requirements modeling, analysis modeling, and
design modeling. Requirements modeling addresses use case modeling to des-
cribe functional requirements with extensions to describe nonfunctional require-
ments. Analysis modeling addresses static modeling and dynamic modeling
(both interaction and state machine modeling). Design modeling addresses
important architectural issues, including a systematic approach for integrating
use case–based interaction diagrams into an initial software architecture and
applying architectural and design patterns for designing software architectures.
■ Provides a common approach for requirements and analysis modeling and then
addresses specific design issues (in a separate chapter for each category of soft-
ware architecture) for designing the software architecture for object-oriented
software systems, client/server systems, service-oriented systems, component-
based systems, real-time systems, and software product lines.
■ Describes how software architectures are designed by first considering software
architectural patterns relevant for that category of software architecture, such as
client/service patterns for client/server and component-based software architec-
ture; brokering, discovery, and transaction patterns for service-oriented architec-
tures; real-time control patterns for real-time software architecture; and layered
patterns for software product line architectures.
■ Describes software quality attributes, which can have a profound effect on the
quality of a software product. Many of these attributes can be addressed and
evaluated at the time the software architecture is developed. The software qual-
ity attributes covered include maintainability, modifiability, testability, traceabil-
ity, scalability, reusability, performance, availability, and security.
■ Presents four detailed case studies. Case studies are presented by software
architecture area, including a banking system for client/server architectures, an
online shopping system for service-oriented architecture, an emergency mon-
itoring system for component-based software architecture, and an automated
guided vehicle system for the real-time software architecture.
■ Appendices include a glossary, a bibliography, and a catalog of architectural
design patterns. There is also be an appendix on teaching considerations for
teaching academic and industrial courses based on this book. Exercises follow
most chapters.
INTENDED AUDIENCE
This book is intended for both academic and professional audiences. The academic
audience includes senior undergraduate- and graduate-level students in computer
science and software engineering, as well as researchers in the field. The profes-
sional audience includes analysts, software architects, software designers, program-
mers, project leaders, technical managers, program managers, and quality-assurance
specialists who are involved in the analysis, design, and development of large-scale
software systems in industry and government.