Fundamentals of software architecture : an engineering approach

Detalles Bibliográficos
Autor Principal: Richards, Mark
Otros autores o Colaboradores: Ford, Neal
Formato: Libro
Lengua:inglés
Datos de publicación: Sebastopol : O'Reilly Media, 2020
Temas:
Acceso en línea:Consultar en el Cátalogo
Notas:Incluye índice.
Descripción Física:xvii, 400 p. : il.
ISBN:9781492043454
Tabla de Contenidos:
  • Preface: Invalidating Axioms
  • 1. Introduction
  • Defining Software Architecture
  • Expectations of an Architect
  • Intersection of Architecture and…
  • Laws of Software Architecture
  • I. Foundations
  • 2. Architectural Thinking
  • Architecture Versus Design
  • Technical Breadth
  • Analyzing Trade-Offs
  • Understanding Business Drivers
  • Balancing Architecture and Hands-On Coding
  • 3. Modularity
  • Definition
  • Measuring Modularity
  • From Modules to Components
  • 4. Architecture Characteristics Defined
  • Architectural Characteristics (Partially) Listed
  • Trade-Offs and Least Worst Architecture
  • 5. Identifying Architectural Characteristics
  • Extracting Architecture Characteristics from Domain Concerns
  • Extracting Architecture Characteristics from Requirements
  • Case Study: Silicon Sandwiches
  • 6. Measuring and Governing Architecture Characteristics
  • Measuring Architecture Characteristics
  • Governance and Fitness Functions
  • 7. Scope of Architecture Characteristics
  • Coupling and Connascence
  • Architectural Quanta and Granularity
  • 8. Component-Based Thinking
  • Component Scope
  • Architect Role
  • Developer Role
  • Component Identification Flow
  • Component Granularity
  • Component Design
  • Case Study: Going, Going, Gone: Discovering Components
  • Architecture Quantum Redux: Choosing Between Monolithic Versus Distributed Architectures
  • II. Architecture Styles
  • 9. Foundations
  • Fundamental Patterns
  • Monolithic Versus Distributed Architectures
  • 10. Layered Architecture Style
  • Topology
  • Layers of Isolation
  • Adding Layers
  • Other Considerations
  • Why Use This Architecture Style
  • Architecture Characteristics Ratings
  • 11. Pipeline Architecture Style
  • Topology
  • Example
  • Architecture Characteristics Ratings
  • 12. Microkernel Architecture Style
  • Topology
  • Registry
  • Contracts
  • Examples and Use Cases
  • Architecture Characteristics Ratings
  • 13. Service-Based Architecture Style
  • Topology
  • Topology Variants
  • Service Design and Granularity
  • Database Partitioning
  • Example Architecture
  • Architecture Characteristics Ratings
  • When to Use This Architecture Style
  • 14. Event-Driven Architecture Style
  • Topology
  • Broker Topology
  • Mediator Topology
  • Asynchronous Capabilities
  • Error Handling
  • Preventing Data Loss
  • Broadcast Capabilities
  • Request-Reply
  • Choosing Between Request-Based and Event-Based
  • Hybrid Event-Driven Architectures
  • Architecture Characteristics Ratings
  • 15. Space-Based Architecture Style
  • General Topology
  • Data Collisions
  • Cloud Versus On-Premises Implementations
  • Replicated Versus Distributed Caching
  • Near-Cache Considerations
  • Implementation Examples
  • Architecture Characteristics Ratings
  • 16. Orchestration-Driven Service-Oriented Architecture
  • History and Philosophy
  • Topology
  • Taxonomy
  • Reuse…and Coupling
  • Architecture Characteristics Ratings
  • 17. Microservices Architecture
  • History
  • Topology
  • Distributed
  • Bounded Context
  • Granularity
  • API Layer
  • Operational Reuse
  • Frontends
  • Communication
  • Architecture Characteristics Ratings
  • Additional References
  • 18. Choosing the Appropriate Architecture Style
  • Shifting "Fashion" in Architecture
  • Decision Criteria
  • Monolith Case Study: Silicon Sandwiches
  • Distributed Case Study: Going, Going, Gone
  • III. Techniques and Soft Skills
  • 19. Architecture Decisions
  • Architecture Decision Anti-Patterns
  • Architecturally Significant
  • Architecture Decision Records
  • 20. Analyzing Architecture Risk
  • Risk Matrix
  • Risk Assessments
  • Risk Storming
  • Agile Story Risk Analysis
  • Risk Storming Examples
  • 21. Diagramming and Presenting Architecture
  • Diagramming
  • Presenting
  • 22. Making Teams Effective
  • Team Boundaries
  • Architect Personalities
  • How Much Control?
  • Team Warning Signs
  • Leveraging Checklists
  • Providing Guidance
  • Summary
  • 23. Negotiation and Leadership Skills
  • Negotiation and Facilitation
  • The Software Architect as a Leader
  • Integrating with the Development Team
  • Summary
  • 24. Developing a Career Path
  • The 20-Minute Rule
  • Developing a Personal Radar
  • Using Social Media
  • Parting Words of Advice
  • Appendix. Self-Assessment Questions
  • Index