Quick Reference โ€” Top Topics

TopicKey Takeaway
What is architecture?Fundamental structures + significant decisions + trade-offs
Architect's roleCollaborative technical leader โ€” close to code, close to stakeholders
Building blocksGeneral term for any structural element (module, component, service)
InterfacesProvided + Required; explicit contracts; keep them small (ISP)
Coupling & CohesionLOW coupling between blocks + HIGH cohesion within = good design
SOLIDSRP, OCP, LSP, ISP, DIP โ€” apply at class, module, and service level
Cross-cutting concernsLogging, security, error handling โ€” affect all building blocks
arc4212-section documentation template โ€” know all sections and their purpose
4+1 View ModelLogical, Process, Development, Physical + Scenarios
iSAQB 4 ViewsContext ยท Building Block ยท Runtime ยท Deployment
Quality scenariosSource, Stimulus, Artifact, Environment, Response, Response Measure
ISO 250108 quality characteristics โ€” know all + sub-characteristics
ATAMTrade-off analysis: sensitivity points, trade-off points, risks
Conway's LawSystem structure mirrors org structure โ€” plan for it or it plans you
DIPBoth high- and low-level modules depend on abstractions
Technical debtDeliberate vs. inadvertent ยท Prudent vs. reckless โ€” track and manage it

Common Misconceptions

MisconceptionReality
"Architecture is only done at the start"โŒ Architecture is relevant throughout the entire lifecycle
"The architect makes all decisions alone"โŒ Architecture is a collaborative activity
"UML is mandatory for documentation"โŒ Any consistent notation with a legend is acceptable
"Quality is only about testing"โŒ Quality is designed in by architecture, not tested in
"Performance is always the top priority"โŒ Quality goals depend on stakeholder needs + trade-offs
"Tight coupling is always bad"โŒ Within a cohesive module, tight coupling is natural and fine
"Microservices are always better"โŒ Depends on context: team size, complexity, operational maturity
"More documentation is always better"โŒ Document just enough โ€” focus on architecturally significant decisions
"Patterns solve all problems"โŒ Patterns are templates, not recipes โ€” they must be adapted to context
"Architecture is only about technology"โŒ Architecture also includes organizational, business, and quality concerns

Glossary

TermDefinition
ADRArchitecture Decision Record โ€” captures a single significant design decision with context, alternatives, and consequences
arc42A template for architecture documentation with 12 sections, widely used in the iSAQB ecosystem
ATAMArchitecture Tradeoff Analysis Method โ€” structured evaluation of architecture against quality goals
Bounded Context(DDD) A clear boundary within which a domain model is defined and consistent
Building BlockGeneral term for any structural element of a system (module, component, service, subsystem)
CohesionDegree to which elements within a module belong together. Higher is better.
ComponentA modular, replaceable unit that exposes interfaces and encapsulates implementation
Conway's LawSystem structure mirrors the communication structure of the organization that builds it
CouplingDegree of interdependence between modules. Lower is usually better.
CQRSCommand Query Responsibility Segregation โ€” separate read and write models
Cross-cutting ConcernAn aspect affecting multiple building blocks (logging, security, error handling)
DDDDomain-Driven Design โ€” approach to architecture driven by deep understanding of the business domain
DIPDependency Inversion Principle โ€” depend on abstractions, not concretions
Fitness FunctionAn automated test that verifies an architectural property or constraint
Information HidingHiding internal details behind interfaces โ€” only expose what's necessary (Parnas, 1972)
InterfaceThe externally visible behavior and interaction point of a building block
ISO 25010International standard defining 8 product quality characteristics for software
MicroservicesArchitecture style where a system is composed of small, independently deployable services
ModuleA unit of software organization, typically at compile-time
Quality ScenarioA concrete, measurable specification of a quality requirement (6 parts)
SagaPattern for managing distributed transactions via a sequence of local transactions with compensating actions
Sensitivity Point(ATAM) A property critical to achieving a specific quality goal
SOLIDFive design principles: SRP, OCP, LSP, ISP, DIP
Technical DebtThe implied cost of future rework caused by choosing a quick solution over a better but slower one
Trade-off Point(ATAM) A property that affects multiple quality attributes in opposing ways
Ubiquitous Language(DDD) A shared language between developers and domain experts, used consistently in code and conversation
ViewA representation of the system from a specific perspective, showing a specific set of concerns

Recommended Resources

ResourceTypeBest For
iSAQB Foundation Curriculum (official)PDFDefinitive exam content
Software Architecture in Practice (Bass, Clements, Kazman)BookQuality attributes, ATAM, architectural tactics
Fundamentals of Software Architecture (Richards & Ford)BookModern, practical architecture overview
arc42.orgWebsiteFree template, examples, FAQ
arc42 by Example (Starke & Hruschka)BookWorked examples of arc42 documentation
Clean Architecture (Robert C. Martin)BookDependency rule, hexagonal architecture
Domain-Driven Design (Eric Evans)BookBounded contexts, ubiquitous language
Building Microservices (Sam Newman)BookMicroservices patterns and practices
Designing Data-Intensive Applications (Martin Kleppmann)BookDistributed systems, data architecture
C4 Model (Simon Brown)WebsitePractical architecture diagramming

Architecture Decision Checklist

Use this checklist when starting a new project or making a significant architectural change:

  • โ˜ Have we identified all key stakeholders and their quality concerns?
  • โ˜ Are the top 3-5 quality goals explicit, prioritized, and agreed upon?
  • โ˜ Have we written quality scenarios for each top quality goal?
  • โ˜ Is the system context clearly defined (external actors, systems, interfaces)?
  • โ˜ Have we chosen appropriate architecture patterns with documented rationale?
  • โ˜ Are cross-cutting concerns (logging, security, error handling) addressed consistently?
  • โ˜ Are interfaces between building blocks explicitly defined and documented?
  • โ˜ Have we identified and documented the key trade-offs?
  • โ˜ Are significant decisions captured as ADRs?
  • โ˜ Is the deployment model clear (where does what run)?
  • โ˜ Have we identified the known risks and technical debt?
  • โ˜ Is the architecture testable? Are fitness functions in place?

Architecture is the art of making decisions that are hard to change โ€” make them wisely. ๐ŸŽฏ