iSAQB CPSA Foundation Level key terms
iSAQB CPSA Foundation Level · Get comfortable with the vocabulary.
- Software Architecture
- Related: Building Block, Architecture View, Design Principle
The set of fundamental structures of a software system: its building blocks, their externally visible properties, and the relationships among them, together with the principles and guidelines that shape its evolution over time.
- Stakeholder
- Related: Architecture Concern, Quality Requirement, Architecture Communication
A person or group with an interest in the system because they are affected by it, fund it, build it, operate it, or depend on its behaviour, and whose concerns must be addressed by the architecture.
- Architecture Concern
- Related: Stakeholder, Architecture View, Quality Scenario
Any interest, requirement, or worry of a stakeholder that the architecture must address, such as performance, maintainability, cost, safety, or time to market. Concerns drive which views and decisions matter.
- Architecture View
- Related: Architecture Viewpoint, Architecture Model, Architecture Concern
A representation of a coherent subset of the architecture, chosen to address specific stakeholder concerns. Each view highlights particular structures, for example runtime behaviour, deployment, or module organisation, while deliberately omitting other details.
- Architecture Viewpoint
- Related: Architecture View, Architecture Documentation, Architecture Model
A reusable template or convention that defines what a particular kind of view shows, which elements and relations it uses, and how it is documented. Viewpoints are defined once and instantiated as views for a specific system.
- Architecture Model
- Related: Architecture View, UML Component Diagram, Architecture Documentation
An abstract, simplified representation of the architecture or part of it, expressed in a notation with defined element types and rules, used to reason about the system before or instead of building it.
- Building Block
- Related: Interface, Component, Black-Box Description
A structural element of the architecture at a chosen level of abstraction, such as a subsystem, component, or module. Building blocks have defined responsibilities and interfaces, and are composed hierarchically into larger units.
- Black-Box Description
- Related: White-Box Description, Interface, Building Block
A description of a building block that states only its externally visible behaviour, responsibilities, and interfaces, hiding internal implementation. It supports replaceability and lets reviewers assess contracts without reading internals.
- White-Box Description
- Related: Black-Box Description, Building Block, Modularity
A description that reveals the internal structure of a building block, such as its contained sub-blocks and their interactions. It is used to show how responsibilities are realised and to guide developers working inside the block.
- Interface
- Related: Interface Contract, Building Block, Loose Coupling
A defined contract through which a building block offers functionality or requires it from others, specifying signatures, semantics, protocols, and quality properties such as timing or error behaviour, independent of the implementation behind it.
- Interface Contract
- Related: Interface, Design by Contract, Black-Box Description
The complete agreement attached to an interface: provided and required operations, data formats, preconditions and postconditions, error cases, and non-functional guarantees. It is the basis for independent development and testing of connected blocks.
- Modularity
- Related: Cohesion, Loose Coupling, Information Hiding
The property of a system being composed of discrete units with well-defined boundaries, so that each unit can be understood, changed, tested, and replaced with limited knowledge of the others.
- Cohesion
- Related: Loose Coupling, Modularity, Single Responsibility Principle
The degree to which the responsibilities inside a single building block belong together and serve one purpose. High cohesion makes blocks easier to understand and change; low cohesion signals a block that should be split.
- Loose Coupling
- Related: Cohesion, Interface, Modularity
The degree to which building blocks depend on each other, kept low so that changes in one block rarely force changes in others. Coupling is reduced by narrow interfaces, few shared data structures, and asynchronous interaction where suitable.
- Information Hiding
- Related: Encapsulation, Modularity, Interface
A design principle stating that each building block should conceal design decisions likely to change behind a stable interface, so that internal changes do not ripple outward to its users.
- Encapsulation
- Related: Information Hiding, Interface, Modularity
The technique of bundling data and the operations on that data inside a unit and restricting direct external access, exposing only a controlled interface. It protects invariants and limits the impact of internal change.
- Single Responsibility Principle
- Related: Cohesion, Modularity, Design Principle
A design guideline holding that a module or class should have exactly one reason to change, meaning one cohesive responsibility assigned to one owner. It supports high cohesion and simpler testing.
- Design Principle
- Related: Design Pattern, Separation of Concerns, Single Responsibility Principle
A general, reusable guideline that shapes design decisions, such as separation of concerns, keep it simple, or depend on abstractions. Principles are not absolute rules; architects weigh them against each other in context.
- Design Pattern
- Related: Architecture Pattern, Design Principle, Layers Pattern
A named, reusable solution template for a recurring design problem in a given context, describing participating elements, their collaboration, and consequences. Patterns transfer experience but must be adapted, not copied blindly.
- Architecture Pattern
- Related: Design Pattern, Layers Pattern, Microservices
A reusable, high-level structural solution for organising a whole system or major part of it, such as layers, pipes and filters, or microservices, together with its typical element types, interactions, benefits, and liabilities.
- Layers Pattern
- Related: Architecture Pattern, Separation of Concerns, Loose Coupling
An architecture pattern that organises building blocks into horizontal layers, where each layer uses only the layer directly below through defined interfaces. It improves substitutability and separation of concerns but can add indirection overhead.
- Microservices
- Related: Architecture Pattern, Loose Coupling, Scalability
An architecture style in which a system is composed of small, independently deployable services, each owning its data and communicating over the network. It favours independent scaling and team autonomy but adds operational and consistency complexity.
- Separation of Concerns
- Related: Design Principle, Modularity, Architecture Concern
A principle of dividing a system so that each part addresses a distinct concern, allowing it to be developed and reasoned about independently. It underlies layering, modularisation, and the choice of architecture views.
- Quality Attribute
- Related: Quality Scenario, Quality Requirement, Trade-off
A non-functional property of a system that can be assessed, such as performance, availability, security, modifiability, usability, or testability. Quality attributes are often in tension and must be prioritised and traded off explicitly.
- Quality Scenario
- Related: Quality Attribute, Architecture Evaluation, Quality Requirement
A concrete, testable statement of a quality requirement with source, stimulus, environment, affected artefact, response, and measurable response measure. Scenarios turn vague quality goals into criteria the architecture can be evaluated against.
- Quality Requirement
- Related: Quality Attribute, Quality Scenario, Architecture Concern
A requirement describing how well the system must perform its functions, expressed measurably where possible. It constrains architectural decisions and must be elicited from stakeholders rather than assumed.
- Trade-off
- Related: Quality Attribute, Architecture Decision, Technical Debt
A decision in which improving one quality attribute or property degrades another, for example stronger security at the cost of usability or latency. Architects make trade-offs explicit and document the reasoning behind them.
- Architecture Evaluation
- Related: Quality Scenario, Architecture Risk, Architecture Decision
A structured review of an architecture against stated quality requirements and stakeholder concerns, performed early to surface risks before implementation. Methods range from lightweight questioning to scenario-based analysis with documented findings.
- Architecture Risk
- Related: Architecture Evaluation, Technical Debt, Architecture Decision
A potential future problem arising from architectural decisions or unknowns that could jeopardise required quality attributes, schedule, or cost. Risks are identified, prioritised, and either mitigated or accepted with documentation.
- Technical Debt
- Related: Architecture Risk, Trade-off, Refactoring
The accumulated cost of shortcuts in design or implementation that make future changes harder. Like financial debt, it incurs ongoing interest through slower delivery and must be made visible and repaid deliberately.
- Refactoring
- Related: Technical Debt, Evolutionary Architecture, Modularity
A disciplined sequence of small behaviour-preserving transformations that improve the internal structure of code or design. Architecture-level refactoring is used to evolve structures incrementally without breaking external contracts.
- Architecture Decision
- Related: Architecture Decision Record, Trade-off, Architecture Risk
A conscious choice about structure, technology, or standards that is significant, hard to reverse, and constrains further design. Recording context, alternatives, and rationale prevents later teams from unknowingly undoing it.
- Architecture Decision Record
- Related: Architecture Decision, Architecture Documentation, Traceability
A short document capturing one architectural decision: its context, the decision made, alternatives considered, and consequences. Records are immutable and dated, forming a history that explains why the architecture looks as it does.
- Architecture Documentation
- Related: Architecture View, Architecture Decision Record, Architecture Communication
The organised set of artefacts describing an architecture for its stakeholders, typically including views, building block descriptions, interfaces, cross-cutting concepts, decisions, and guidance for reading the documents.
- Architecture Communication
- Related: Architecture View, Stakeholder, Architecture Documentation
The deliberate tailoring of architectural information to each audience, using appropriate views, notation, and level of detail so that stakeholders can understand, review, and act on the architecture.
- UML Component Diagram
- Related: Interface, Architecture Model, Building Block
A UML diagram type showing components, their provided and required interfaces, and dependencies between them. It is commonly used to document the building block view of a software architecture at a coarse granularity.
- Traceability
- Related: Quality Requirement, Architecture Decision Record, Architecture Documentation
The ability to follow links between requirements, architectural decisions, building blocks, and tests in both directions. It supports impact analysis when requirements change and shows that each requirement is realised and verified.
- Static Analysis
- Related: Continuous Integration, Modularity, Loose Coupling
Automated examination of source code or models without executing them, to detect violations of rules such as layering, dependency cycles, naming conventions, or complexity thresholds. It enforces architectural constraints continuously.
- Continuous Integration
- Related: Static Analysis, Architecture Risk, Refactoring
A practice in which developers merge changes frequently and each merge triggers automated build, test, and analysis steps. For architects it provides fast feedback on whether implemented structures still match the intended architecture.
- Evolutionary Architecture
- Related: Refactoring, Technical Debt, Architecture Decision
An approach that treats architecture as something guided and continuously adapted through small, reversible steps and fitness functions, rather than fixed up front. It assumes requirements and technology will change during the system's life.
- Architecture Fitness Function
- Related: Static Analysis, Evolutionary Architecture, Quality Attribute
An automated, objective check that measures how well an architecture satisfies a chosen property, such as dependency rules or response time. Results guide evolution and make quality attributes continuously verifiable.