Book description
NoneTable of contents
- Copyright
- About the Cover
- Credits
-
Preface
- SOFTWARE ARCHITECTURE
- THE SCOPE OF THE BOOK
- ASSUMPTIONS AND BACKGROUND
-
HOW THE BOOK CAN BE USED
- Classroom Usage
- Use by Professionals
- Tool Support
-
Chapter Summaries
- Chapter 1: The Big Idea
- Chapter 2: Architectures in Context: The Reorientation of Software Engineering
- Chapter 3: Basic Concepts
- Chapter 4: Designing Architectures
- Chapter 5: Connectors
- Chapter 6: Modeling
- Chapter 7: Visualization
- Chapter 8: Analysis
- Chapter 9: Implementation
- Chapter 10: Deployment and Mobility
- Chapter 11: Applied Architectures and Styles
- Chapter 12: Designing for Non-Functional Properties
- Chapter 13: Security and Trust
- Chapter 14: Architectural Adaptation
- Chapter 15: Domain-Specific Software Engineering
- Chapter 16: Standards
- Chapter 17: People, Roles, and Teams
- Acknowledgments
- About the Authors
-
1. The Big Idea
- 1.1. THE POWER OF ANALOGY: THE ARCHITECTURE OF BUILDINGS
- 1.2. THE POWER AND NECESSITY OF BIG IDEAS: THE ARCHITECTURE OF THE WEB
- 1.3. THE POWER OF ARCHITECTURE IN THE SMALL: ARCHITECTURE ON THE DESKTOP
- 1.4. THE POWER OF ARCHITECTURE IN BUSINESS: PRODUCTIVITY AND PRODUCT LINES
- 1.5. END MATTER
- 1.6. REVIEW QUESTIONS
- 1.7. EXERCISES
- 1.8. FURTHER READING
- 2. Architectures in Context: The Reorientation of Software Engineering
- 3. Basic Concepts
-
4. Designing Architectures
- 4.1. THE DESIGN PROCESS
- 4.2. ARCHITECTURAL CONCEPTION
- 4.3. REFINED EXPERIENCE IN ACTION: STYLES AND ARCHITECTURAL PATTERNS
- 4.4. ARCHITECTURAL CONCEPTION IN ABSENCE OF EXPERIENCE: UNPRECEDENTED DESIGN
- 4.5. PUTTING IT ALL TOGETHER: DESIGN PROCESSES REVISITED
- 4.6. END MATTER
- 4.7. REVIEW QUESTIONS
- 4.8. EXERCISES
- 4.9. FURTHER READING
- 5. Connectors
-
6. Modeling
- 6.1. MODELING CONCEPTS
- 6.2. AMBIGUITY, ACCURACY, AND PRECISION
- 6.3. COMPLEX MODELING: MIXED CONTENT AND MULTIPLE VIEWS
- 6.4. EVALUATING MODELING TECHNIQUES
- 6.5. SPECIFIC MODELING TECHNIQUES
- 6.6. WHEN SYSTEMS BECOME TOO COMPLEX TO MODEL
- 6.7. END MATTER
- 6.8. REVIEW QUESTIONS
- 6.9. EXERCISES
- 6.10. FURTHER READING
- 7. Visualization
-
8. Analysis
- 8.1. ANALYSIS GOALS
- 8.2. SCOPE OF ANALYSIS
- 8.3. ARCHITECTURAL CONCERN BEING ANALYZED
- 8.4. LEVEL OF FORMALITY OF ARCHITECTURAL MODELS
- 8.5. TYPE OF ANALYSIS
- 8.6. LEVEL OF AUTOMATION
- 8.7. SYSTEM STAKEHOLDERS
- 8.8. ANALYSIS TECHNIQUES
- 8.9. END MATTER
- 8.10. REVIEW QUESTIONS
- 8.11. EXERCISES
- 8.12. FURTHER READING
-
9. Implementation
-
9.1. CONCEPTS
- 9.1.1. The Mapping Problem
- 9.1.2. Architecture Implementation Frameworks
- 9.1.3. Evaluating Frameworks
- 9.1.4. Middleware, Component Models, and Application Frameworks
- 9.1.5. Building a New Framework
- 9.1.6. Concurrency
- 9.1.7. Generative Technologies
- 9.1.8. Ensuring Architecture-to-Implementation Consistency
- 9.2. EXISTING FRAMEWORKS
- 9.3. EXAMPLES
- 9.4. END MATTER
- 9.5. REVIEW QUESTIONS
- 9.6. EXERCISES
- 9.7. FURTHER READING
-
9.1. CONCEPTS
- 10. Deployment and Mobility
-
11. Applied Architectures and Styles
- 11.1. DISTRIBUTED AND NETWORKED ARCHITECTURES
- 11.2. ARCHITECTURES FOR NETWORK-BASED APPLICATIONS
- 11.3. DECENTRALIZED ARCHITECTURES
- 11.4. SERVICE-ORIENTED ARCHITECTURES AND WEB SERVICES
- 11.5. ARCHITECTURES FROM SPECIFIC DOMAINS
- 11.6. END MATTER
- 11.7. REVIEW QUESTIONS
- 11.8. EXERCISES
- 11.9. FURTHER READING
-
12. Designing for Non-Functional Properties
- 12.1. EFFICIENCY
-
12.2. COMPLEXITY
-
12.2.1. Software Components and Complexity
- 12.2.1.1. Separate Concerns into Different Components
- 12.2.1.2. Keep Only the Functionality Inside Components—Not Interaction
- 12.2.1.3. Keep Components Cohesive
- 12.2.1.4. Be Aware of the Impact of Off-the-Shelf Components on Complexity
- 12.2.1.5. Insulate Processing Components from Changes in Data Format
-
12.2.2. Software Connectors and Complexity
- 12.2.2.1. Treat Connectors Explicitly
- 12.2.2.2. Keep Only Interaction Facilities Inside Connectors
- 12.2.2.3. Separate Interaction Concerns into Different Connectors
- 12.2.2.4. Restrict Interactions Facilitated by Each Connector
- 12.2.2.5. Be Aware of the Impact of Off-the-Shelf Connectors on Complexity
- 12.2.3. Architectural Configurations and Complexity
-
12.2.1. Software Components and Complexity
-
12.3. SCALABILITY AND HETEROGENEITY
-
12.3.1. Software Components and Scalability
- 12.3.1.1. Give Each Component a Single, Clearly Defined Purpose
- 12.3.1.2. Give Each Component a Simple, Understandable Interface
- 12.3.1.3. Do Not Burden Components with Interaction Responsibilities
- 12.3.1.4. Avoid Unnecessary Heterogeneity
- 12.3.1.5. Distribute the Data Sources
- 12.3.1.6. Replicate Data When Necessary
-
12.3.2. Software Connectors and Scalability
- 12.3.2.1. Use Explicit Connectors
- 12.3.2.2. Give Each Connector a Clearly Defined Responsibility
- 12.3.2.3. Choose the Simplest Connector Suited for the Task
- 12.3.2.4. Be Aware of Differences Between Direct and Indirect Dependencies
- 12.3.2.5. Do Not Place Application Functionality Inside Connectors
- 12.3.2.6. Leverage Explicit Connectors to Support Data Scalability
- 12.3.3. Architectural Configurations and Scalability
-
12.3.1. Software Components and Scalability
- 12.4. ADAPTABILITY
- 12.5. DEPENDABILITY
- 12.6. END MATTER
- 12.7. REVIEW QUESTIONS
- 12.8. EXERCISES
- 12.9. FURTHER READING
-
13. Security and Trust
- 13.1. SECURITY
-
13.2. DESIGN PRINCIPLES
-
13.2.1.
- 13.2.1.1. Principle of Least Privilege
- 13.2.1.2. Principle of Fail-Safe Defaults
- 13.2.1.3. Principle of Economy of Mechanism
- 13.2.1.4. Principle of Complete Mediation
- 13.2.1.5. Principle of Open Design
- 13.2.1.6. Principle of Separation of Privilege
- 13.2.1.7. Principle of Least Common Mechanism
- 13.2.1.8. Principle of Psychological Acceptability
- 13.2.1.9. Principle of Defense in Depth
-
13.2.1.
- 13.3. ARCHITECTURAL ACCESS CONTROL
-
13.4. TRUST MANAGEMENT
- 13.4.1. Trust
- 13.4.2. Trust Model
- 13.4.3. Reputation-Based Systems
-
13.4.4. Architectural Approach to Decentralized Trust Management
- 13.4.4.1. Threats to Decentralized Systems
- 13.4.4.2. Measures to Address Threats
- 13.4.4.3. Separation of Internal Beliefs and Externally Reported Information
- 13.4.4.4. Corresponding Guidelines to Incorporate into an Architectural Style
- 13.4.4.5. Resultant Architectural Style
- 13.4.4.6. PACE Architectural Style
- 13.4.4.7. PACE-Induced Benefits
- 13.4.4.8. Building a PACE-Based Trust-Enabled Decentralized File-Sharing Application
- 13.5. END MATTER
- 13.6. REVIEW QUESTIONS
- 13.7. EXERCISES
- 13.8. FURTHER READING
-
14. Architectural Adaptation
- 14.1. CONCEPTS OF ARCHITECTURE-CENTRIC ADAPTATION
- 14.2. A CONCEPTUAL FRAMEWORK FOR ARCHITECTURAL ADAPTATION
- 14.3. TECHNIQUES FOR SUPPORTING ARCHITECTURE-CENTRIC CHANGE
- 14.4. END MATTER
- 14.5. REVIEW QUESTIONS
- 14.6. EXERCISES
- 14.7. FURTHER READING
-
15. Domain-Specific Software Engineering
- 15.1. DOMAIN-SPECIFIC SOFTWARE ENGINEERING IN A NUTSHELL
-
15.2. DOMAIN-SPECIFIC SOFTWARE ARCHITECTURE
- 15.2.1. Domain Knowledge
- 15.2.2. Canonical Requirements
- 15.2.3. Canonical Solution Strategies – Reference Architectures
- 15.2.4. Product Lines and Architecture
- 15.2.5. Product-Line Concepts
- 15.2.6. Specifying the Architecture of a Product Line
- 15.2.7. Capturing Variations Over Time
- 15.2.8. Using Product Lines as Tools for What-If Analysis
- 15.2.9. Implementing Product Lines
- 15.2.10. Unifying Product Architectures with Different Intellectual Heritage
- 15.2.11. Organizational Issues in Creating and Managing Product Lines
- 15.3. DSSAS, PRODUCT LINES, AND ARCHITECTURAL STYLES
- 15.4. DSSE EXAMPLES
- 15.5. END MATTER
- 15.6. REVIEW QUESTIONS
- 15.7. EXERCISES
- 15.8. FURTHER READING
- 16. Standards
- 17. People, Roles, and Teams
-
Bibliography
Product information
- Title: Software Architecture: Foundations, Theory, and Practice
- Author(s):
- Release date:
- Publisher(s): Wiley
- ISBN: None
You might also like
book
Software Architecture in Practice, 4th Edition
The Definitive, Practical, Proven Guide to Architecting Modern Software--Fully Updated with New Content on Mobility, the …
book
Software Architecture in Practice, Third Edition
The award-winning and highly influential has been substantially revised to reflect the latest developments in the …
book
Fundamentals of Software Architecture
Salary surveys worldwide regularly place software architect in the top 10 best jobs, yet no real …
book
Software Architect's Handbook
A comprehensive guide to exploring software architecture concepts and implementing best practices Key Features Enhance your …