Skip to content
Software Architecture Guide
Search
Ctrl
K
Cancel
Select theme
Dark
Light
Auto
Menu
Start here
What is software architecture?
Before you start: what should already exist
Step 1: Understand the goals and the stakeholders
Step 2: Define scope and context
Step 3: Capture the key functional requirements
Step 4: Make quality requirements concrete
Step 5: Collect constraints and forces
Step 6: Understand and structure the domain
Step 7: Choose a solution strategy
Step 8: Design integration and data
Step 9: Make and record decisions
Step 10: Model and document
Step 11: Evaluate the architecture
Step 12: Keep the architecture alive
Joining a project without architecture documentation
Concepts
Fundamentals
Agile Architecture
Role of the Software Architect
Architect's Four Key Work Products
Architectural Thinking
Architecturally Evident Coding Style
Architecture Decay
Architecture Disciplines
Implicit Architecture
Architecture Level
Architecture Means
Big Ball of Mud
Common Architect Mistakes
Connector Cardinality
Connectors and Distribution
Software Architecture Definition
Iterative and Incremental Development
Keep It Working
Refactoring
Requirements and Means Influence Architecture
Software Architect
Software Architecture
Software Architecture Basic Concepts
Software Architecture in Its Context
Software Connector
Sweeping It Under the Rug
Accidental Architecture
Vision, Stakeholders and Context
Business Model Canvas
Context View
Context View Antipattern: Forgetting Bidirectional Data Flows
Refining Complex Context Views
Stakeholder
Stakeholder Identification
Stakeholder Power Grid
System Idea
System Idea and Vision Elements
Vision Statement
Functional Requirements
Acceptance Criterion
Agile Enterprise Backlog Model
Card, Conversation, Confirmation
Consistency of User Story and Use Case
Epic
Frequent Mistakes in Defining Acceptance Criteria
Goal Hierarchy to Component Mapping
INVEST Applied to Architectural Work
INVEST Criteria
Working with Functional Requirements (method phase)
Requirement Types and Documents (Wiegers/Beatty)
Requirements Difficulty and Customer Engagement
Requirements Trawling
Responsibility Allocation
SMART Requirements
Story Mapping
Story Splitting
Use Case
Use Case Completeness Check
Use Case Goal Level
Use Case Template
User Story
User Story Role Formulation
User Stories vs. Use Cases
Quality Attributes
Quality models, prioritization and trade-offs
Architectural Perspective
Insufficient Quality as Driver of Change
ISO/IEC 25010 Product Quality Model
ISO/IEC 25010 Quality Models and Their Target Entities
ISO/IEC 25010:2023 Product Quality Model Revision
Quality Attribute
Quality Attribute Coverage in Bass et al.
Quality Attribute Prioritization
Quality Attribute Trade-off
Standard Quality Attribute List
Utility Tree
Quality attribute scenarios
Availability Scenario
Interoperability Scenario
Modifiability Scenario
Performance Efficiency Scenario
Quality Attribute Scenario
Quality attributes in use case descriptions
Security Scenario
Testability General Scenario
Usability Quality Attribute Scenario
Reliability, availability and safety
Availability
Fault
Fault Tolerance
Hazard Warning
Operational Constraint
Quantifying Recovery and Availability Trade-offs
Recoverability
Reliability
Risk Identification and Safe Integration
Safety
Security
Accountability
Authenticity
Confidentiality
Integrity
Nonrepudiation
Resistance
Security
Maintainability, modifiability and portability
Adaptability
Analysability
Flexibility
Installability
Maintainability
Modifiability
Replaceability
Reusability
Testability
Performance, usability, compatibility and other attributes
Compatibility
Functional suitability
Interoperability
Performance Efficiency
Scalability
Usability
Forces, Constraints and Decisions
Forces, concerns and constraints
Architectural Constraint
Architectural Force
Architecturally Significant Requirement
Concern
Solution as Moving Target
Stakeholder Concern
Twin Peaks Model
Architectural decisions
Architectural Decision
Architectural Decisions for Availability
Architectural Design Issue
Architecturally Significant Decision
Architecture as Set of Design Decisions
Decision Dependencies
Levels of Architectural Decisions
Requirements-Decision Modeling for Cyber-Physical Systems of Systems
Seven Types of Architectural Decisions
Decision records and templates
ADR Common Mistakes and Review Checklist
Architectural Decision Record
Architectural Decision Record Example
Architecture Decision Documentation and Requirements Management
Architecture Decision Rationale
GenAI Support for Architectural Decision Records
Markdown Architectural Decision Records
Y-Statement
Decision management and process
Architectural Decision Definition of Ready
Architectural Decision Making Fallacies
Architectural Decision Management
Architectural Decision Management Cycle
Architectural Decision-Making Process
Architecture Challenges at Project Start
Definition of Done for Architectural Decisions
Last Responsible Moment
RACI Matrix
Architecture Principles
Architecture Principle
Complexity Reduction
Component Design Principles
Conflicting Architecture Principles
Connect or Disconnect
Continuous Architecture Principles
Coupling and Cohesion
Design for Change
High Cohesion
Incrementality
Information Hiding
Interface Segregation Principle
Loose Coupling
Main Sequence (Balance of Abstractness and Instability)
Modularity
Open-Closed Principle
Process Automation Magnifies Efficiency
Relationships Between Architecture Principles
Separation of Concerns
Shearing Layers
Architecture Principle Structure
Traceability
Types of Cohesion
Working with Principles
Architecture Tactics
Tactics: concepts and how to use them
Architectural Tactic
Choosing and Applying Tactics
Reasons for Architectural Tactics
Relationship between Tactics and Architectural Styles/Patterns
Scenario-based Questions from Tactics
Tactic Coverage of ISO 25010 Quality Categories
Tactic Trade-off Balancing
Working with Tactics and Quality Attributes
Availability tactics
Active Redundancy
Availability Tactic
Availability Tactic
Availability Tactic Categories
Circuit Breaker
Exception Handling Tactic
Fault Detection Tactic
Fault Prevention Tactic
Fault Recovery Tactic
Graceful Degradation
Heartbeat
Ping/Echo
Redundant Spare
Retry
Voting
Modifiability tactics
Increase Cohesion
Modifiability Tactic
Modifiability Tactics in SOA
Reduce Coupling
Split Module
Performance, security, safety, usability and energy tactics
Aggregate Tactic
Encrypt Data
Energy Efficiency Tactic
Integrability, Deployability, Testability and Reliability Tactics
Load Balancer
Performance Tactic
Safety Tactic
Security Tactic
Usability Tactic
Architecture Styles and Patterns
Architectural Pattern
Architectural Pattern vs. Design Pattern
Architecture Style
Blackboard Pattern
Broker Pattern
Clean Architecture
Lambda Architecture
Layered Architecture
Layers and Components Decomposition
Layers Pattern
Microkernel Pattern
Microservices Architecture
Model-View-Controller Pattern
Pipe-and-Filter
Pipes and Filters
Publish-Subscribe Pattern
Service-Oriented Architecture
Integration
Integration styles and fundamentals
Connector Transparency (Direct vs Indirect Connection)
Enterprise Integration Patterns
File Transfer
Integration
Integration Pattern vs. Middleware Technology
Integration Style
Integration Styles
Patterns for API Design
Principles Influencing EAI Pattern Selection
Remote Procedure Call
Shared Database
Software Connector Classification
Stream Connector
Synchronous vs Asynchronous Connector
Synchronous vs. Asynchronous Communication
Messaging and channels
Datatype Channel
Dead Letter Channel
Event Sourcing with Distributed Event Log
Invalid Message Channel
Message Channel
Messaging
Messaging Protocol Support in Message Brokers
Point-to-Point Channel
Publish/Subscribe Channel
Message construction
Claim Check
Correlation Identifier
Format Indicator
Message Sequence
Message Structure
Request-Reply
Return Address
Message routing
Composed Message Processor
Content-based Router
Dynamic Router
Message Filter
Message Routing
Process Manager
Recipient List
Routing Slip
Scatter/Gather
Message transformation
Canonical Data Model
Content Enricher and Content Filter
Content Filter
Envelope Wrapper
Message Translator
Normalizer
Messaging endpoints
Event-Driven Consumer
Idempotent Receiver
Polling Consumer
Selective Consumer
Timeout-based Delivery
Transactional Client
Domain-Driven Design
Aggregate
Bounded Context
Bounded Context Canvas
Business Domain Understanding
Cargo Shipping Domain Model
Context Map
DDD Building Blocks (Tactical Patterns)
Deriving System Components from the Domain Model
Domain-Driven Design
Domain Event
Domain Layer Separation
Domain Model
Domain-Driven Design of the Data Model
Domain Service
Domain Storytelling
Entity
Entity Life Cycle
Constraining Associations
Entity and Value Object
Iterative Domain Modeling
Module
Reflecting the Business Domain in the Architecture
Ubiquitous Language
Value Object
Data Architecture
Command Query Responsibility Segregation
Conceptual Data Model
Conceptual data model building method
Conceptual Data Model Preparation for Logical and Physical Models
Conceptual, Logical and Physical Data Model
Data Architecture
Data Architecture Diagram Type
Data reusability and standardized access
Define Target Data Architecture Method Phase
Logical Data Model
Logical vs. physical data model
Physical Data Model
Publishing the conceptual data model
Use of external and open data
Modeling with UML
UML basics, taxonomy and good practice
Barriers to UML Adoption
Matching Diagram Type to System Aspect
Modeling Tool vs. Drawing Tool
UML 2.5 Diagram Taxonomy
UML Behavioral Diagram
UML Modeling Anti-Pattern
UML Modeling Best Practice
UML Perspectives: Conceptual, Specification, Implementation
UML Structure Diagram
Unified Modeling Language (UML)
Why Use UML in Architecture Documentation
Class diagrams and relationships
Aggregation vs. Composition
Common Class Diagram Modeling Mistakes
Instance Specification
UML Association
UML Class Diagram
UML Class Diagram Relationship
UML Generalization and Specialization
UML Interface
Component, package and deployment diagrams
Common Component Diagram Mistake
Component Connector (Assembly and Delegation)
Delegation Connector
Deployment Diagram Modeling Mistake
Differences between Class, Component and Package Diagrams
Nested Components and Subsystems
Package Diagram
Package Diagram Modeling Mistake
Package Relationships (Import, Access, Merge, Use)
Port
Provided and Required Interface
Transfer Object Pattern as Package Template
UML Component Diagram
UML Deployment Diagram
Sequence and use case diagrams
Common Sequence Diagram Mistake
Common Use Case Diagram Errors
Message Types in Sequence Diagrams
UML Sequence Diagram
Use Case Diagram
Use Case Goal Hierarchy with Include Relationships
State machine diagrams
Composite State
Concurrent Region
State and Event
State Entry, Exit and Do Behavior
State Machine Diagram
State Machine Diagram Modeling Mistakes
State Machine Transition
Transition Syntax (Trigger, Guard, Behavior)
Process Modeling with BPMN
BPMN basics: motivation, history, notation, diagram types
BPMN 2.0 Notation
BPMN as Modeling Language, Not Method
BPMN Collaboration Diagram
BPMN Conversation Diagram
BPMN Diagram Types
BPMN Focus on Connected Businesses
BPMN Motivation
Core BPMN Element Subset
History of BPMN
Process Model versus Process Instance
Process Notations Comparison (EPC, BPMN, UML Activity Diagram)
Workflow Pattern
BPMN elements: events, activities, gateways, data, pools
Boundary Event
BPMN Activity
BPMN Ad Hoc Sub-Process
BPMN Artifacts (Group and Text Annotation)
BPMN Compensation Event
BPMN Connecting Object
BPMN Core Elements
BPMN Core Elements
BPMN Data Element
BPMN Event
BPMN Gateway
BPMN Swimlane (Pool and Lane)
BPMN Task Marker and Task Type
Data Exchange between BPMN Processes
Event-Based Gateway
Intermediate Event
Link Event
Model quality, guidelines and typical errors
BPMN 2.0 Model Quality
BPMN Gateway Mismatch Antipatterns
BPMN Layout Guideline
BPMN Modeling Guidelines
Color Coding in BPMN Models
Deadlock in Process Models
Errors in Process Models
Lack of Synchronization
Process Model Complexity
Soundness of Process Models
Structured Process Modeling with Fragments
Business process management in practice
ARIS Process Views
BPM Life Cycle
BPMN Modeling Tool
Business Object Lifecycle
Capturing Business Behavior via Process Modeling
Decision Model and Notation
Degrees of BPM Maturity
Levels of Process Modeling
Process Analysis
Process Analysis and Modeling
Process Mining
Waves of Business Process Management
Architecture Documentation
arc42 template and its sections
arc42 Architecture Decisions
arc42 Architecture Documentation Template
arc42 Constraints
arc42 Context and Scope
arc42 Glossary
arc42 Introduction and Goals
arc42 Quality Requirements
arc42 Quality Requirements Chapter
Crosscutting Concept
Data architecture documentation in arc42
Solution Strategy
Views, viewpoints and view models
4+1 View Model
Additional Architecture Viewpoints (Security, Information, Operational, Development, Process, Evolution)
Architectural View
Architecture View
Architecture View Model
Architecture Viewpoint
Characteristics of a Good View
ISO/IEC/IEEE 42010 Architecture Description Model
ISO/IEC/IEEE 42010 Architecture Description Standard
Model vs. View
Stakeholder Perspective and Concern
Stakeholder Questions Addressed in Views
Context, component, runtime and deployment views (incl. C4)
Architectural Overview Diagram
AS-IS and TO-BE View
Business and Technical Context
C4 Component Diagram
C4 Level 4: Code Diagram
C4 Model
Component View
Component View Refinement Levels
Container Diagram (C4 Level 2)
Deployment View
Essential Architecture Views (Context, Component, Runtime, Distribution)
Runtime View
System Context Diagram
Documentation practices and tools
Architecture Canvas
Diagram Metadata in PNG (drawio.png)
Diagrams as Code
Documentation as Code
Guidelines for Documentation
Kroki
Modeling Method
Motivation for Architecture Documentation
Rules of Thumb for Modeling
Self-Documentation
Software Architecture Documentation Consensus
View Creation Method
Documentation antipatterns
Architectural Overview Antipattern
Component View Antipattern: Lifting Code to Model Level
Context View Antipatterns
Distribution View Antipatterns
Runtime View Antipattern: Code-Level Activity Diagram
Self-Invented Notation Drawback
Unclear Level of Abstraction Antipattern
Undetected Duplication Antipattern
Architecture Evaluation
Advantages and Drawbacks of ATAM
Architectural Approach Identification
Architectural Decision Records as Evaluation Prerequisite
Architecture Tradeoff Analysis Method (ATAM)
ATAM Application Phases
ATAM Evaluation Team and Stakeholder Selection
ATAM Findings: Risks, Non-Risks, Sensitivity Points and Trade-off Points
ATAM Non-Risk
ATAM Phase 1 and 2 Activities
ATAM Phase 1: Architecture-centric Analysis
ATAM Results
ATAM Roles
Battlefield Control System ATAM Case Study
Code Smell
Comparing Architectural Alternatives with ATAM
Fitness for Purpose
Insufficient ATAM Application
Lightweight Approach for Software Reviews (LASR)
Lightweight ATAM
Placing ATAM Evaluation in arc42
Risk Storming
Scenario Weight Assignment and Prioritization
Sensitivity Point
Software Architecture Analysis Method (SAAM)
Software Architecture Evaluation
Technical Debt
Trade-off Point
Enterprise Architecture and Frameworks
Enterprise architecture fundamentals, maturity and strategy
Enterprise Architecture
Enterprise Architecture (Ross/Weill/Robertson definition)
Enterprise Architecture Layers
Enterprise Architecture Maturity Level
Enterprise Architecture Maturity Stages
Enterprise Architecture Meta Model
Enterprise Architecture Strategy
Foundation for Execution
Gartner Hype Cycle for Enterprise Architecture
Operating Model
Relationship between Enterprise Architecture and Application Architecture
Stakeholder Readiness for Change Assessment
Warning Signs of Poor Enterprise Architecture
Frameworks: TOGAF and Zachman
Common Features of Architecture Frameworks
TOGAF
TOGAF Architecture Development Method
Zachman Framework
Business architecture and capabilities
Business Architecture
Business Architecture Artifact
Business Capability
Business Capability Map
Capability Heat Map
Capability identification and naming
Capability Map Development Method
Capability Map Use Cases
Capability versus process
Operational Value Stream
Strategy Map
Application, data and technology architecture
Application Architecture
Application Architecture Artifacts
Application Interface Diagram
Application Landscape Evolution Drivers
Application Lifecycle Diagram
Data Architecture Artifact
Data Architecture Inputs
Data Architecture Principle
Data Entity/Business Function Matrix
Data Entity/Data Component Catalog
IT Component Catalogue
Technology Architecture
TOGAF Phase C: Application Architecture
Review
Glossary
Select theme
Dark
Light
Auto
arc42 checklist
1. Introduction and Goals
2. Architecture Constraints
3. Context and Scope
4. Solution Strategy
5. Building Block View
6. Runtime View
7. Deployment View
8. Cross-cutting Concepts
9. Architecture Decisions
10. Quality Requirements
11. Risks and Technical Debts
12. Glossary