CPSA Architectural Goals and Constraints Questions and Answers — Questions and Answers
Question 1: Which of the following is the BEST example of an architectural constraint?
- The system must achieve 99.9% uptime.
- The development team must use the Java programming language. (Correct answer)
- The user interface should be intuitive and easy to learn.
- The system's performance should handle 1000 concurrent users with a response time under 2 seconds.
Correct answer: The development team must use the Java programming language.
An architectural constraint is a fixed decision that limits the architect's choices. Mandating a specific programming language, like Java, is a direct technical constraint that the architecture must adhere to. The other options are quality goals, which specify desired characteristics or service levels but do not dictate a specific implementation choice in the same way a constraint does.
Question 2: A software architect is designing a new e-commerce platform. The business stakeholders have mandated that the total budget for development and initial deployment cannot exceed $500,000 and the platform must launch before the holiday season in six months. How should the architect classify these two requirements?
- As quality attributes
- As functional requirements
- As business constraints (Correct answer)
- As technical risks
Correct answer: As business constraints
Fixed budget and schedule are classic examples of business constraints. They are non-technical decisions made by the business that severely limit the options available for the software architecture design. They are not quality attributes (like performance), functional requirements (what the system does), or technical risks (potential technology problems).
Question 3: Architectural goals are primarily derived from which source?
- The technology stack chosen by the development team.
- The architect's personal design preferences and experience.
- Stakeholder concerns and quality requirements. (Correct answer)
- The minutes from the daily stand-up meetings.
Correct answer: Stakeholder concerns and quality requirements.
Architectural goals, especially quality goals (non-functional requirements), are driven by the needs and concerns of various stakeholders. These stakeholders (users, business owners, operators, etc.) define the essential characteristics the system must have, such as performance, security, and maintainability, which the architecture must be designed to achieve.
Question 4: What is the key difference between an architectural goal and an architectural constraint?
- Goals are technical, while constraints are business-related.
- Goals describe desired qualities, while constraints are fixed, unchangeable decisions that limit design choices. (Correct answer)
- Constraints are documented in the backlog, while goals are not.
- Goals are set by the development team, while constraints are set by the project manager.
Correct answer: Goals describe desired qualities, while constraints are fixed, unchangeable decisions that limit design choices.
The fundamental distinction is that architectural goals (like quality attributes) are targets to aim for and often involve trade-offs (e.g., performance vs. cost). In contrast, constraints are pre-defined, non-negotiable decisions that must be satisfied and restrict the design space available to the architect.
Question 5: During the initial design phase of a new financial services application, the legal department informs the architect that the system must comply with the Payment Card Industry Data Security Standard (PCI DSS). This is an example of what?
- A technical goal
- A functional requirement
- A self-imposed constraint
- An organizational or regulatory constraint (Correct answer)
Correct answer: An organizational or regulatory constraint
Compliance with legal or industry standards like PCI DSS is a type of organizational or regulatory constraint. It is imposed externally on the project and dictates specific security measures and design considerations that are non-negotiable for the architecture.
Question 6: An architect is told the new system must be 'fast and reliable'. Why is this statement insufficient as a quality goal for guiding architectural design?
- It focuses on business needs instead of technical solutions.
- It does not come from a certified project manager.
- It is subjective and lacks quantifiable metrics. (Correct answer)
- It should be classified as a constraint, not a goal.
Correct answer: It is subjective and lacks quantifiable metrics.
Effective quality goals must be specific and measurable to be useful for architectural design and evaluation. Terms like 'fast' and 'reliable' are ambiguous. A better approach is to quantify them, for example: 'The system must process 95% of transactions in under 500ms' (for performance) and 'The system must have an availability of 99.95%' (for reliability).
Which of the following is the BEST example of an architectural constraint?