Software Architecture Fundamentals
iSAQB-Compliant Study Guide for the Certified Professional for Software Architecture—Foundation Level Exam
Información
- Editorial: SAP PRESS
- Autores: Mahbouba Gharbi, Arne Koschel, Andreas Rausch, Holger Tiemeyer
- Año: 2024
- Edición: 2
- Páginas: 224
- Idioma: Inglés
Descripción
Preparing for your iSAQB CPSA—Foundation Level exam? Make the grade with this study guide! First, tackle essential topics and fundamentals, beginning with development approaches and design techniques for scalable software architectures. Then see how views, templates, and documents are used to communicate design decisions, and understand how to evaluate software architectures. Level up your exam prep with this handy resource!
- Prepare for the iSAQB Certified Professional for Software Architecture—Foundation Level (CPSA-F) exam
- Learn to design scalable system software architectures
- Walk through techniques for software architecture planning, documentation, and quality management
- 2nd edition, updated and revised
Aspectos Destacados
- iSAQB CPSA—Foundation Level exam
- Architecture design
- Development approaches
- Architectural patterns
- Templates
- Documentation
- Prototypes
- Quality management
- Deployment
- Modeling tools
- Static code analysis tools
- Code management
Aprenderás sobre
- Fundamentals of Software Architecture:
Reinforce your understanding of key concepts, including software architecture design principles, techniques to develop scalable architectures, tools needed to describe designs to stakeholders, and methods for quality evaluation.
- Core Exam Concepts:
Thoroughly review each topic in the exam: basic concepts, architecture design and development, architecture communication, and quality analysis. Expand your knowledge with a bonus chapter about software architecture tools.
- Expert Guidance:
Learn directly from iSAQB experts who helped develop the curriculum for the Certified Professional for Software Architecture—Foundation Level exam.
Tabla de Contenidos
- Preface to the 2nd Edition
- 1 Introduction
- 1.1 Software architecture as an aspect of software engineering
- 1.2 iSAQB: The International Software Architecture Qualification Board
- 1.3 Certified Professional for Software Architecture – Foundation and Advanced Level
- 1.4 The aim of this book
- 1.5 Prerequisites
- 1.6 Reader’s guide
- 1.7 Target audience
- 1.8 Acknowledgements
- 2 Software Architecture Fundamentals
- 2.1 Integration with the iSAQB curriculum
- 2.2 Software-intensive systems and software architectures
- 2.2.1 What is a software-intensive system?
- 2.2.2 Side Note: Types of software-intensive systems
- 2.2.3 The importance of software architecture for a software-intensive system
- 2.3 Fundamental software architecture concepts
- 2.3.1 What is software architecture?
- 2.3.2 Building blocks, interfaces, and configurations
- 2.3.3 Concepts for describing software architectures
- 2.3.4 Architectural description and architectural levels
- 2.3.5 Interactions between software architecture and the environment
- 2.3.6 Quality and value of a software architecture
- 2.4 A bird’s-eye view of software architecture design
- 2.4.1 Objectives and functions of software architecture design
- 2.4.2 Overview of software architecture design
- 2.4.3 Interplay between activities and abstraction levels within the design
- 2.4.4 Side Note: A software architect’s tasks and relationships with other roles
- 2.5 Test your knowledge
- 3 Designing Software Architectures
- 3.1 Integration with the iSAQB curriculum
- 3.2 Overview of the architecture design process
- 3.3 Working with boundary conditions and external influencing factors
- 3.3.1 Types of influencing factors
- 3.4 Design principles and heuristics
- 3.4.1 Top-down and bottom-up
- 3.4.2 Hierarchical (de)composition
- 3.4.3 Conceptual integrity
- 3.4.4 Expect errors
- 3.4.5 Lean interfaces and information hiding
- 3.4.6 Regular refactoring and redesign
- 3.5 Architecture-centric development approaches
- 3.5.1 Side Note: Domain-driven design
- 3.5.2 Side Note: Global analysis
- 3.5.3 Side Note: Evolutionary architecture
- 3.5.4 Side Note: Model-driven architecture
- 3.5.5 Reference architectures
- 3.6 Techniques for a good design
- 3.6.1 Initial situation and motivation: Degenerated design
- 3.6.2 Loose coupling
- 3.6.3 High cohesion
- 3.6.4 Single responsibility principle (SRP)
- 3.6.5 The open/closed principle
- 3.6.6 Dependency inversion
- 3.6.7 Interface segregation principle (ISP)
- 3.6.8 Resolving cyclic dependencies
- 3.6.9 Liskov’s substitution principle
- 3.7 Architectural patterns
- 3.7.1 Adaptable systems
- 3.7.2 Interactive systems
- 3.7.3 From chaos to structure
- 3.7.4 Distributed systems
- 3.8 Side Note: Design patterns
- 3.8.1 Adapter
- 3.8.2 Observer
- 3.8.3 Decorator
- 3.8.4 Proxy
- 3.8.5 Facade
- 3.8.6 Bridge
- 3.8.7 State
- 3.8.8 Mediator
- 3.8.9 Factory
- 3.8.10 Interpreter
- 3.8.11 Plugin
- 3.8.12 Combinator
- 3.9 Deployment and operations
- 3.9.1 Deployment
- 3.9.2 Operations
- 3.9.3 Side Note: DevOps
- 3.10 Test your knowledge
- 4 Description and Communication of Software Architectures
- 4.1 Integration with the iSAQB curriculum
- 4.2 The CoCoME example
- 4.2.1 Use cases in the CoCoME system
- 4.2.2 Overview of the CoCoME system structure
- 4.3 Views and templates
- 4.3.1 Well-established views as defined by the iSAQB
- 4.3.2 UML diagrams as a notation tool in view descriptions
- 4.3.3 View description: High-level structure and an example
- 4.3.4 Context view (or context diagram)
- 4.3.5 Building block view
- 4.3.6 Runtime view
- 4.3.7 Deployment/infrastructure view
- 4.3.8 Interdependencies of architecture views
- 4.3.9 Hierarchical refinement of architecture views
- 4.4 Technical/cross-cutting concepts in software architectures
- 4.4.1 Technical/cross-cutting concepts: Sample dimensions
- 4.4.2 Error handling
- 4.4.3 Security
- 4.5 Architecture and implementation
- 4.5.1 Sample implementation
- 4.6 Common document types for software architectures
- 4.6.1 Central architecture description
- 4.6.2 Architecture overview
- 4.6.3 Document overview
- 4.6.4 Overview presentation
- 4.6.5 Architecture wallpaper
- 4.6.6 Documentation handbook
- 4.6.7 Architecture Decision Record
- 4.6.8 Technical information
- 4.6.9 Documentation of external interfaces
- 4.6.10 Template
- 4.7 Best-practice rules for documentation
- 4.7.1 Rule 1: Write from the readers’ perspective
- 4.7.2 Rule 2: Avoid unnecessary repetition
- 4.7.3 Rule 3: Avoid ambiguity
- 4.7.4 Rule 4: Standardized organizational structure or templates
- 4.7.5 Rule 5: Justify important decisions in writing
- 4.7.6 Rule 6: Check the documentation’s suitability for use
- 4.7.7 Rule 7: Uncluttered diagrams
- 4.7.8 Rule 8: Regular updates
- 4.7.9 Side Note: Rule 9: Adapt the changeability of the documentation to the architecture
- 4.8 Examples of alternative architecture frameworks
- 4.8.1 The 4 + 1 framework
- 4.8.2 SAGA
- 4.9 Test your knowledge
- 5 Software Architectures and Quality
- 5.1 Integration with the iSAQB curriculum
- 5.2 Evaluating software architectures
- 5.2.1 Qualitative evaluation
- 5.2.2 Quantitative evaluation
- 5.3 Side Note: Prototypes and technical proof of concept
- 5.3.1 Technical proof of concept
- 5.3.2 Prototype
- 5.4 Architecture analysis
- 5.4.1 Side Note: The ATAM method
- 5.5 Test your knowledge
- 6 Side Note: Tools for software architects
- 6.1 General information on tools
- 6.1.1 Costs
- 6.1.2 Licenses and licensing conditions
- 6.2 Requirements management tools
- 6.2.1 Requirements and decision criteria
- 6.2.2 Challenges faced by requirements management tools
- 6.2.3 Examples
- 6.3 Modeling tools
- 6.3.1 Requirements and decision criteria
- 6.3.2 Challenges faced by modeling tools
- 6.3.3 Examples
- 6.4 Static code analysis tools
- 6.4.1 Requirements and decision criteria
- 6.4.2 Challenges faced by static code analysis tools
- 6.4.3 Examples
- 6.5 Dynamic analysis tools
- 6.5.1 Requirements and decision criteria
- 6.5.2 Challenges faced by dynamic analysis tools
- 6.5.3 Examples
- 6.6 Configuration and version management tools
- 6.6.1 Requirements and decision criteria
- 6.6.2 Challenges faced by configuration and version management tools
- 6.6.3 Examples
- 6.7 Code management tools
- 6.7.1 Challenges faced by code management tools
- 6.7.2 Examples
- 6.8 Testing tools
- 6.8.1 Requirements and decision criteria
- 6.8.2 Challenges faced by testing tools
- 6.8.3 Examples
- 6.9 Documentation tools
- 6.9.1 Requirements and decision criteria
- 6.9.2 Challenges faced by documentation tools
- 6.9.3 Examples
- Appendices
- A Sample Questions
- A.1 Excerpts from the examination regulations
- A.2 Sample questions
- B Abbreviations
- C Glossary
- D References
- D.1 Literature
- D.2 Websites
- D.3 Standards and Norms
Descargo de responsabilidad
SAP, otros productos SAP y servicios mencionados aquí así como sus respectivos logos son marca registrada de SAP SE (o una compañía afiliada de SAP) en Alemania y otros países. Nuestra compañía no está afiliada con SAP SE ni con ninguna de sus compañías afiliadas incluyendo pero no limitada a: Sybase, Business Objects, Hybris, Ariba y SuccessFactors. Todos los otros nombres, marcas, logos, etc. son marcas o servicios registrados de sus respectivos propietarios.