CPSA Architecture Fundamentals and Roles Questions and Answers — Questions and Answers
Question 1: Which of the following BEST describes the primary role of a software architect?
- Writing and debugging the most complex parts of the system's code.
- Managing the project timeline, budget, and resource allocation.
- Making fundamental structural and design decisions to meet business and quality goals. (Correct answer)
- Performing all quality assurance and system testing activities.
Correct answer: Making fundamental structural and design decisions to meet business and quality goals.
The primary role of a software architect is to make high-level design choices and dictate technical standards, including software coding standards, tools, and platforms, to meet the requirements of stakeholders and ensure the system meets quality attributes like performance and security. While they might be involved in coding or aware of project management, their core responsibility is the architectural design.
Question 2: A project team is developing a new e-commerce platform. The architect needs to document how the system will interact with external payment gateways, shipping providers, and the user's web browser. Which architectural concept provides a template or convention for creating this type of documentation?
- A View
- A Quality Attribute
- A Cross-Cutting Concern
- A Viewpoint (Correct answer)
Correct answer: A Viewpoint
A viewpoint is a template or set of conventions used for constructing a specific type of view. It defines the stakeholders, concerns, and modeling techniques to be used. In this scenario, the architect would use a 'Context' or 'Integration' viewpoint to create a specific 'Context View' that shows the system's interactions with its environment.
Question 3: What is the key distinction between a software architect and a project manager?
- The architect focuses on non-functional requirements, while the project manager focuses on functional requirements.
- The architect is responsible for the technical vision and quality, while the project manager is responsible for scope, time, and budget. (Correct answer)
- The project manager makes all technology stack decisions, and the architect implements them.
- There is no significant difference; the roles are interchangeable in agile environments.
Correct answer: The architect is responsible for the technical vision and quality, while the project manager is responsible for scope, time, and budget.
A software architect is primarily responsible for the technical integrity and vision of the system, focusing on its structure and quality attributes. A project manager, in contrast, is responsible for the project's administrative aspects, including managing the schedule, budget, scope, and resources to ensure the project is delivered successfully.
Question 4: In the context of software architecture, which of the following is an example of a cross-cutting concern?
- Implementing the user registration feature.
- Designing the product catalog database schema.
- Adding a new report for sales analytics.
- Implementing system-wide logging for auditing and debugging. (Correct answer)
Correct answer: Implementing system-wide logging for auditing and debugging.
A cross-cutting concern is a feature or requirement that affects multiple modules or layers of an application, such as logging, security, or caching. User registration, database schema, and specific reports are typically encapsulated within specific modules and are not considered cross-cutting.
Question 5: A software architect is discussing the system's ability to handle an increasing number of users without a degradation in response time. Which quality attribute is the primary focus of this discussion?
- Maintainability
- Scalability (Correct answer)
- Security
- Usability
Correct answer: Scalability
Scalability is the quality attribute that refers to a system's ability to handle a growing amount of work by adding resources. Maintainability relates to the ease of modifying the system, Security to its protection against threats, and Usability to the ease with which users can interact with it.
Question 6: According to the iSAQB CPSA-Foundation Level curriculum, one of the key skills an architect must have is the ability to discuss and reconcile architectural decisions with various parties. Which of the following is the BEST description of these parties?
- Only the lead developers and other architects.
- The end-users of the software application.
- Stakeholders from requirements, management, development, operations, and testing. (Correct answer)
- External auditors and compliance officers.
Correct answer: Stakeholders from requirements, management, development, operations, and testing.
The iSAQB CPSA-F curriculum explicitly states that a software architect must be able to communicate, discuss, and reconcile decisions with a wide range of stakeholders. This includes not just the development team but also those involved in requirements, management, operations, and quality assurance to ensure the architecture aligns with all business and technical needs.
Which of the following BEST describes the primary role of a software architect?