CPSA Architecture Fundamentals and Roles 3 — Questions and Answers
Question 1: According to iSAQB CPSA-F, which of the following is a key characteristic of a 'good' software architecture?
- It uses the latest programming languages and frameworks available
- It achieves required quality attributes while meeting functional requirements (Correct answer)
- It minimizes the number of components to reduce complexity
- It is designed by a single architect to ensure consistency
Correct answer: It achieves required quality attributes while meeting functional requirements
A good architecture fulfills functional requirements while achieving the required quality attributes such as performance, security, and maintainability appropriate to the system's context.
Question 2: A software architect must balance multiple conflicting quality goals. Which approach best represents the architect's role in this situation?
- Always prioritize performance over all other quality attributes
- Escalate all conflicts to project management for resolution
- Negotiate trade-offs with stakeholders based on business priorities (Correct answer)
- Select the quality attribute that is easiest to implement
Correct answer: Negotiate trade-offs with stakeholders based on business priorities
Architects facilitate stakeholder discussions to prioritize and trade off competing quality attributes based on real business needs and constraints.
Question 3: What is the role of 'fitness functions' in evolutionary architecture?
- Functions that calculate the physical fitness metrics of development team members
- Automated checks that verify the architecture meets defined quality and structural criteria (Correct answer)
- Mathematical formulas used to optimize database query performance
- Unit tests that validate individual class method behavior
Correct answer: Automated checks that verify the architecture meets defined quality and structural criteria
Fitness functions are automated mechanisms (tests, metrics, monitors) that continuously verify that the architecture conforms to defined quality and structural properties.
Question 4: Which of the following best describes 'technical debt' from an architectural perspective?
- The financial cost of purchasing software licenses for the project
- The money owed to external consultants for architecture reviews
- The future rework cost incurred by choosing an expedient solution over a better approach (Correct answer)
- The number of unresolved bugs in an architectural component
Correct answer: The future rework cost incurred by choosing an expedient solution over a better approach
Technical debt is the implied future cost of rework resulting from choosing a faster or easier solution now instead of a better long-term approach.
Question 5: In the context of CPSA, what does 'architecture communication' primarily involve?
- Writing formal specifications in UML for all system components
- Conveying architectural decisions, rationale, and structures to relevant stakeholders appropriately (Correct answer)
- Sending weekly status emails to the project manager
- Publishing source code documentation using Javadoc or similar tools
Correct answer: Conveying architectural decisions, rationale, and structures to relevant stakeholders appropriately
Architecture communication means conveying architectural structures, decisions, and their rationale to different stakeholder groups using appropriate notations and levels of detail.
Question 6: Which scenario best illustrates a violation of the 'stable dependencies' principle?
- A utility library that has no dependencies on any other module
- A frequently changing UI module that is depended upon by a stable core domain module (Correct answer)
- A logging framework that depends only on standard library interfaces
- A test module that depends on application modules under test
Correct answer: A frequently changing UI module that is depended upon by a stable core domain module
Stable dependencies requires that stable (less frequently changed) modules should not depend on volatile (frequently changed) modules; a stable domain depending on a volatile UI violates this.
Question 7: What is the significance of the 'view' concept in software architecture documentation?
- A view is a GUI mockup created by UX designers for stakeholder approval
- A view represents the system from a particular stakeholder perspective, addressing specific concerns (Correct answer)
- A view is a database query result set displayed to end users
- A view is the architect's personal opinion about the system's design
Correct answer: A view represents the system from a particular stakeholder perspective, addressing specific concerns
An architectural view presents the system from the perspective of a specific set of concerns relevant to particular stakeholders, such as runtime behavior, deployment, or module structure.
According to iSAQB CPSA-F, which of the following is a key characteristic of a 'good' software architecture?