CPSA Architecture Fundamentals and Roles 2 — Questions and Answers
Question 1: Which of the following best describes a software architect's responsibility regarding cross-cutting concerns?
- Delegating all cross-cutting concerns to senior developers
- Identifying, documenting, and providing solutions for concerns that affect multiple components (Correct answer)
- Implementing cross-cutting concerns personally in every module
- Ignoring cross-cutting concerns until integration testing
Correct answer: Identifying, documenting, and providing solutions for concerns that affect multiple components
Software architects are responsible for identifying cross-cutting concerns such as logging, security, and error handling, and providing consistent architectural solutions for them.
Question 2: In iSAQB terminology, what is the primary difference between an architecture decision and a design decision?
- Architecture decisions are made by managers; design decisions are made by developers
- Architecture decisions are hard to change and have wide impact; design decisions are more localized and reversible (Correct answer)
- Architecture decisions only concern infrastructure; design decisions concern application logic
- There is no meaningful distinction between the two terms
Correct answer: Architecture decisions are hard to change and have wide impact; design decisions are more localized and reversible
Architecture decisions are characterized by their broad impact and difficulty to reverse, while design decisions are more localized and easier to change.
Question 3: Which stakeholder group is MOST directly concerned with the operational quality attributes of a software system?
- End users
- Business analysts
- Operations and infrastructure teams (Correct answer)
- Legal and compliance officers
Correct answer: Operations and infrastructure teams
Operations and infrastructure teams are primarily concerned with operational quality attributes like availability, deployability, monitorability, and performance under load.
Question 4: What does the term 'architecture erosion' refer to in software development?
- The gradual deletion of unused source code files over time
- The increasing divergence between the intended architecture and the implemented system (Correct answer)
- The reduction in system performance caused by hardware aging
- The removal of deprecated API endpoints from a system
Correct answer: The increasing divergence between the intended architecture and the implemented system
Architecture erosion occurs when actual implementation gradually deviates from the planned architecture, often due to shortcuts, uncoordinated changes, or poor governance.
Question 5: A software architect is reviewing a legacy system and finds that business logic is spread across the UI, service, and database layers. Which architectural principle is being violated?
- Separation of concerns (Correct answer)
- Open/Closed principle
- Single responsibility at the class level
- Interface segregation
Correct answer: Separation of concerns
Separation of concerns requires that distinct responsibilities be assigned to distinct layers or components; mixing business logic across layers violates this principle.
Question 6: Which of the following activities is LEAST typical for a software architect during the construction phase of a project?
- Reviewing code for architectural conformance
- Clarifying architectural decisions with development teams
- Writing detailed unit tests for individual methods (Correct answer)
- Updating architectural documentation to reflect changes
Correct answer: Writing detailed unit tests for individual methods
Writing detailed unit tests for individual methods is a developer responsibility; architects focus on conformance reviews, communication, and documentation during construction.
Question 7: What is the purpose of an Architecture Decision Record (ADR)?
- To track the number of lines of code added per sprint
- To document the context, decision, and consequences of significant architectural choices (Correct answer)
- To record bug reports related to architectural components
- To log the attendance of architects at design review meetings
Correct answer: To document the context, decision, and consequences of significant architectural choices
An ADR captures the context that led to a decision, the decision itself, and its expected consequences, creating a traceable history of architectural reasoning.
Which of the following best describes a software architect's responsibility regarding cross-cutting concerns?