SKIP THE SHIPPING
Use code NOSHIP during checkout to save 40% on eligible eBooks, now through January 5. Shop now.
Register your product to gain access to bonus material or receive a coupon.
"Designing a large software system is an extremely complicated undertaking that requires juggling differing perspectives and differing goals, and evaluating differing options. Applied Software Architecture is the best book yet that gives guidance as to how to sort out and organize the conflicting pressures and produce a successful design." -- Len Bass, author of Software Architecture in Practice.
Quality software architecture design has always been important, but in today's fast-paced, rapidly changing, and complex development environment, it is essential. A solid, well-thought-out design helps to manage complexity, to resolve trade-offs among conflicting requirements, and, in general, to bring quality software to market in a more timely fashion.
Applied Software Architecture provides practical guidelines and techniques for producing quality software designs. It gives an overview of software architecture basics and a detailed guide to architecture design tasks, focusing on four fundamental views of architecture--conceptual, module, execution, and code. Through four real-life case studies, this book reveals the insights and best practices of the most skilled software architects in designing software architecture. These case studies, written with the masters who created them, demonstrate how the book's concepts and techniques are embodied in state-of-the-art architecture design. You will learn how to:
Anyone involved in software architecture will find this book a valuable compendium of best practices and an insightful look at the critical role of architecture in software development.
List of Figures.
List of Tables.
Preface.
Foreword.
I. SOFTWARE ARCHITECTURE.
1. Introduction.Putting Software Architecture in Context.
Software Architecture as a Design Plan.
Software Architecture as an Abstraction.
Software Architecture Terminology.
Where the Four Views Came From.
Loose Coupling Between Views.
Different Engineering Concerns Addressed by Different Views.
Using the Four Views.
Notation.
II. DESIGNING, DESCRIBING, AND USING SOFTWARE ARCHITECTURE.
2. IS2000: The Advanced Imaging Solution.System Overview.
Product Features.
System Interactions.
The Future of IS2000. 3. Global Analysis.
Overview of Global Analysis Activities.
Analyze Factors.
Develop Strategies.
Analyze Organizational Factors.
Begin Developing Strategies.
Analyze Technological Factors.
Continue Developing Strategies.
Analyze Product Factors.
Continue Developing Strategies.
Global Analysis Summary. 4. Conceptual Architecture View.
Design Activities for the Conceptual Architecture View.
Global Analysis.
Central Design Tasks.
Final Design Task: Resource Budgeting.
Design of Conceptual View for IS2000.
Global Analysis.
Central Design Tasks: Components, Connectors, and Configuration .
Final Design Task: Resource Budgeting.
Design Summary for IS2000 Conceptual View.
Summary of Conceptual Architecture View.
Traceability.
Uses for the Conceptual Architecture View. 5. Module Architecture View.
Design Activities for the Module Architecture View.
Global Analysis.
Central Design Tasks.
Final Design Task: Interface Design.
Design of Module View for IS2000.
Global Analysis.
Central Design Tasks: Modularization and Layering.
Final Design Task: Interface Design.
Design Summary for IS2000 Module View.
Summary of Module Architecture View.
Traceability.
Uses for the Module Architecture View. 6. Execution Architecture View.
Design Activities for the Execution Architecture View.
Global Analysis.
Central Design Tasks.
Final Design Task: Resource Allocation.
Design of Execution View for IS2000.
Global Analysis.
Central Design Tasks: Runtime Entities, Communication Paths, and Configuration.
Final Design Task: Resource Allocation.
Design Summary for IS2000 Execution View.
Summary of Execution Architecture View.
Traceability.
Uses for the Execution Architecture View. 7. Code Architecture View.
Design Activities for the Code Architecture View.
Global Analysis.
Central Design Tasks.
Final Design Tasks.
Design of Code Architecture View for IS2000.
Global Analysis.
Central Design Tasks.
Final Design Tasks.
Design Summary for IS2000 Code Architecture View.
Summary of Code Architecture View.
Traceability.
Uses for the Code Architecture View.
III. SOFTWARE ARCHITECTURE BEST PRACTICE.
8. Safety Vision.Global Analysis.
Analyze Product Factors.
Analyze Technological Factors.
Analyze Organizational Factors.
Develop Strategies.
Conceptual Architecture View.
Components for Software Specification.
Connectors for Software Specification.
Conceptual Configuration.
Resource Budgeting.
Module Architecture View.
Application Software Layer.
PlatformSoftware Layer.
Execution Architecture View.
Processes.
Communication Paths.
Execution Configuration.
Code Architecture View.
Software Architecture Uses.
Software Process for Projects.
Testing of Projects.
Summary. 9. Healthy Vision.
Global Analysis.
Analyze Product Factors.
Analyze Technological Factors.
Analyze Organizational Factor.
Develop Strategies.
Conceptual Architecture View.
Module Architecture View.
Decomposition of the Application Software.
Decomposition of the Platform Software.
Layering Structure.
Error Logging.
Execution Architecture View.
Defining Run-time Entities.
Communication Paths.
Conceptual and Module Views Revisited.
Execution Configuration.
Code Architecture View.
Development Environment.
Configuration Management and Build Strategies.
Software Architecture Uses.
Evaluation.
Schedule Planning.
Implementation.
Requirements Tracking.
Summary.
Software Architecture Concepts.
Experience.
Performance. 10. Central Vision.
Global Analysis.
Product Factors.
Technological Factors.
Organizational Factors.
Strategies.
Conceptual Architecture View.
Module Architecture View.
Decomposition and Layering.
Decomposition.
Execution Architecture View.
Defining Runtime Entities.
Defining Communication Paths.
Defining the Execution Configuration.
Resource Allocation.
Code Architecture View.
Central Design Tasks.
Build Procedure and Configuration Management.
Software Architecture Uses.
Summary.
Software Architecture Concepts.
Experience. 11. Comm Vision.
Global Analysis.
Product Factors.
Technological Factors.
Organizational Factors.
Develop Strategies.
Conceptual Architecture View Design.
Module Architecture View.
Decomposition.
SPU Interfaces and Inter-SPU Dependencies.
Layering Structure or Shell Model.
Execution Architecture View.
Defining Executables and Configurations.
Communication.
Recovery Suites and Recovery-Tolerant Communication.
Resource Allocation.
Code Architecture View.
Source Components.
Intermediate Components.
Software Architecture Uses.
Simulation and Code Generation.
Higher Productivity of Software Production.
Stepwise Production Testing of Shells.
Architecture Control Process.
Summary.
Software Architecture Concepts.
Experience.
IV. SOFTWARE ARCHITECTURE IN YOUR FUTURE.
12. The Role of the Software Architect.The Architect as a Key Technical Consultant.
The Architect Makes Decisions.
The Architect Coaches.
The Architect Coordinates.
The Architect Implements.
The Architect Advocates.
Software Architecture as a Career. Glossary.
Four Views Quick Reference.
Bibliography.
Index. 0201325713T04062001