Preview real exam questions, verified answers and available explanations before choosing a study plan.
Question 1
Multiple choice
Select the two most appropriate methods for evaluating the reliability of a software system. (Choose two.)
A
Determining the number of `lines of code'
B
Measurement of `Mean-Time-between-Failure'
C
Execution of performance tests
D
Determination of the cyclomatic complexity
E
Conducting an ATAM evaluation
Reveal answer detailsClose answer details
Correct answersB, E
Explanation
Reliability concerns whether a system continues to provide service correctly over time and under expected conditions. Measuring mean time between failures directly addresses that concern because it relates observed operation to failure frequency. Such a metric can be gathered from production, tests, or reliability trials and can guide decisions about redundancy, error handling, recovery, and monitoring. ATAM can also be used for reliability evaluation because it examines quality scenarios and architectural risks. A reliability scenario can describe a fault, the operating environment, expected response, and measurable recovery or availability target.
Lines of code do not evaluate reliability by themselves; large or small systems can be reliable or unreliable depending on design and execution quality. Performance tests measure speed, throughput, or resource consumption, not failure behavior unless they are explicitly combined with reliability scenarios. Cyclomatic complexity can indicate testing effort or maintainability risk, but it is not a direct reliability evaluation method. The important distinction is between metrics or methods that address failure behavior and those that measure unrelated code or performance characteristics.
Question 2
Multiple choice
What role does understandability play for architecture documentation? (Choose three.)
A
It is desirable, but not essential.
B
It is less important than completeness.
C
It is an important quality characteristic.
D
It is a quality characteristic together with correctness and efficiency.
E
It is a quality characteristic together with simplicity and brevity.
F
It is a quality characteristic together with scope and completeness.
Reveal answer detailsClose answer details
Correct answersC, E, F
Explanation
Understandability is a first-class quality characteristic for architecture documentation because the document is only useful when its intended readers can apply it. A document can contain many diagrams and still fail if developers, testers, operations staff, or managers cannot determine what decisions were made and why those decisions matter. Correctness is needed because wrong documentation leads to wrong implementation choices. Efficiency is relevant in the documentation sense: readers should be able to find the information they need without excessive effort or unnecessary detail.
Scope and completeness also affect understandability. If the document omits important interfaces, quality requirements, deployment assumptions, or architectural decisions, readers will fill gaps differently and the architecture becomes harder to communicate. If it includes material far outside its intended purpose, the important structure becomes buried. Simplicity and brevity can improve readability, but they are not enough by themselves; an overly short document may omit essential architectural facts. The key idea is that understandable documentation balances accurate content, appropriate scope, sufficient completeness, and economical presentation for its audience.
Question 3
Multiple choice
Which of the following techniques are best suited to illustrate the interaction of runtime building blocks? Select the four most suitable techniques.
A
Activity diagrams
B
Sequence diagrams
C
State diagram
D
Flowcharts
E
Class diagrams
F
Tabular description of interfaces
G
Depiction of screen flows (sequence of user interactions)
H
Numbered lists of sequential steps
Reveal answer detailsClose answer details
Correct answersA, B, C, D
Explanation
Interactions of runtime building blocks are best explained with notations that show behavior over time. Activity diagrams are useful when the focus is flow of control or parallel activities among collaborating elements. Sequence diagrams are especially strong when the reader must understand messages between participants in chronological order. Flowcharts can express ordered decisions and processing steps in a compact form. Numbered sequential steps are also suitable when a lightweight textual description communicates the runtime collaboration more clearly than a formal diagram.
State diagrams serve a different purpose: they describe the lifecycle of one object or component as it moves between states. That can support runtime reasoning, but it is less direct for showing the interaction among multiple building blocks. Class diagrams describe static types and relationships, not runtime collaboration. Interface tables define contracts and signatures, while screen-flow depictions concentrate on user navigation. The point being tested is the difference between static structure and dynamic behavior. When the concern is how runtime blocks interact, choose behavioral and sequence-oriented representations that make order, responsibility, and collaboration visible.
Question 4
Hotspot
HOTSPOT
Which of the following statements about the coupling between building blocks are correct? (Assign all answers.)
Reveal answer detailsClose answer details
Explanation
Proposed correct regions: - High coupling reduces reusability -> true - Low coupling improves ability to meet functional requirements -> false - Low cohesion often leads to high coupling -> true - Loose coupling often reduces effort for changes -> true - Coupling for call dependencies is independent of call direction -> false - Inheritance reduces coupling in object-oriented languages -> false
Coupling is about dependency between building blocks. High coupling reduces reusability because a block that depends on many neighbors, hidden data structures, or concrete implementation details is hard to move or reuse elsewhere. Loose coupling usually reduces change effort because the effects of a modification are more likely to remain behind a stable contract. Low cohesion can cause high coupling: when unrelated responsibilities are grouped together, other blocks may need to depend on the same block for unrelated reasons, creating awkward dependency chains.
Low coupling does not directly improve the ability to meet functional requirements. A system can satisfy functions while being tightly coupled, although it may be harder to change later. Direction matters for call dependencies because a dependency from business logic to technical infrastructure has different consequences than the reverse. Inheritance also does not automatically reduce coupling; subclasses can become tightly bound to superclass behavior and internal assumptions. Good architecture aims for intentional, minimal, directional dependencies combined with cohesive responsibilities.
Question 5
Multiple choice
Which of the following statements about (crosscutting) concepts are most appropriate? (Select four.)
A
The definition of appropriate concepts ensures the conceptual integrity of the architecture.
B
Concepts are a means to increase consistency.
C
For each quality goal there should be an explicitly documented concept.
D
Uniform exception handling is most easily achieved when architects agree with developers upon a suitable concept prior to implementation.
E
A concept might be implemented by a single building block.
F
Uniform usage of concepts reduces coupling between building blocks.
G
A concept can define constraints for the implementation of many building blocks.
Reveal answer detailsClose answer details
Correct answersA, B, D, G
Explanation
Crosscutting concepts describe recurring rules and solutions that affect many building blocks. Defining appropriate concepts helps preserve conceptual integrity because related parts of the system follow the same architectural ideas. Consistency improves when exception handling, logging, persistence, security, transactions, user interface rules, or communication policies are not invented separately by every team. Agreeing on a uniform exception-handling concept before implementation is a good example: developers receive guidance that can be applied repeatedly instead of making incompatible local decisions.
A concept can also define constraints for many building blocks. For example, a persistence concept may specify which data access mechanisms are allowed, and a communication concept may define service interaction rules. It is too strong to say that every quality goal must always have its own explicit concept; some goals are handled through several decisions or through existing structures. A concept may influence coupling, but simply using concepts does not automatically reduce coupling between all blocks. The main architectural value is shared rules for recurring concerns, which keeps a growing system coherent.
Question 6
Multiple choice
What are known patterns for the adaptation of interfaces? (Choose two.)
A
Bridge
B
Tower
C
Observer
D
Wall
Reveal answer detailsClose answer details
Correct answersA, C
Explanation
Interface adaptation is often needed when two parts of a system should collaborate without sharing exactly the same abstraction or notification style. The bridge pattern separates an abstraction from its implementation so both can vary independently. That makes it useful when an interface must be adapted across alternative implementations or platforms without forcing clients to depend on concrete classes. The observer pattern supports indirect communication from a subject to interested dependents. It is not an adapter in the narrow structural-pattern sense, but it is a known pattern for decoupling collaborators across an interface boundary.
Tower and wall are not standard design patterns for interface adaptation in the usual architecture vocabulary. The broader learning point is that patterns are named solutions to recurring forces. Some patterns adapt signatures or implementations, while others reduce coupling by changing the way parties communicate. Architects should select such patterns because their problem and consequences fit the integration challenge, not because a pattern name sounds architectural. The chosen patterns should make dependencies clearer, not hide accidental complexity behind decorative terminology.
Question 7
Hotspot
HOTSPOT
Decide if the following statements are true or false. The performance of a system (response time or throughput) often competes with its... (Assign all answers.)
Performance improvements often require tradeoffs with other qualities. A design optimized for response time or throughput may use caching, batching, specialized data structures, parallelism, or reduced abstraction. Those choices can increase memory usage or make the solution less flexible. They can also reduce adaptability because highly optimized paths may be tightly coupled to current assumptions. Security can compete with performance when encryption, authentication, authorization checks, auditing, or validation add processing work, although good design tries to reduce that cost.
Testability may also suffer when performance-oriented code becomes more concurrent, timing-sensitive, or specialized. On-time completion of the project is important, but it is a project management constraint rather than a system quality characteristic of the same kind as performance. Usability does not inherently compete with performance; faster response usually helps the user experience, though individual design choices can still create local tradeoffs. Architects should document which qualities are being favored, what is being sacrificed, and how the decision will be revisited if the performance need changes.
Question 8
Multiple choice
Which two of the following statements about quality characteristics are most accurate? (Choose two.)
A
Flexibility reduces testability
B
Increased flexibility improves robustness
C
Simplicity increases comprehensibility
D
Increased efficiency results in reduced performance
Reveal answer detailsClose answer details
Correct answersA, C
Explanation
Quality characteristics influence one another, and architects must understand those tradeoffs instead of treating every quality goal as independent. Simplicity usually improves comprehensibility because fewer concepts, fewer dependencies, and fewer special cases make the architecture easier to explain and reason about. A simple structure is easier to document, review, test, and modify because readers can form a stable mental model of responsibilities and dependencies.
Flexibility can work in the opposite direction when it is achieved through extra indirection, configuration mechanisms, extension points, or generalized abstractions. Those mechanisms may be justified, but they often create more paths through the system and therefore make tests harder to design and maintain. Flexibility does not automatically improve robustness; a highly flexible design can still fail if contracts are unclear or combinations are not controlled. Efficiency and performance are closely related terms, so saying that increased efficiency reduces performance reverses the normal meaning. The architectural lesson is to reason about quality interactions explicitly. Some qualities reinforce each other, while others require conscious balancing and documented decisions.
ISQI
iSAQB Software Architecture - Foundation Level (CPSA-F)
Select the two most appropriate methods for evaluating the reliability of a software system. (Choose two.)
A.
Determining the number of `lines of code'
B.
Measurement of `Mean-Time-between-Failure'
C.
Execution of performance tests
D.
Determination of the cyclomatic complexity
E.
Conducting an ATAM evaluation
Correct Answer: BE
Explanation
Explanation/Reference:
Reliability concerns whether a system continues to provide service correctly over time and under expected conditions. Measuring mean time between failures directly addresses that concern because it relates observed operation to failure frequency. Such a metric can be gathered from production, tests, or reliability trials and can guide decisions about redundancy, error handling, recovery, and monitoring. ATAM can also be used for reliability evaluation because it examines quality scenarios and architectural risks. A reliability scenario can describe a fault, the operating environment, expected response, and measurable recovery or availability target.
Lines of code do not evaluate reliability by themselves; large or small systems can be reliable or unreliable depending on design and execution quality. Performance tests measure speed, throughput, or resource consumption, not failure behavior unless they are explicitly combined with reliability scenarios. Cyclomatic complexity can indicate testing effort or maintainability risk, but it is not a direct reliability evaluation method. The important distinction is between metrics or methods that address failure behavior and those that measure unrelated code or performance characteristics.
QUESTION 2
What role does understandability play for architecture documentation? (Choose three.)
A.
It is desirable, but not essential.
B.
It is less important than completeness.
C.
It is an important quality characteristic.
D.
It is a quality characteristic together with correctness and efficiency.
E.
It is a quality characteristic together with simplicity and brevity.
F.
It is a quality characteristic together with scope and completeness.
Correct Answer: CEF
Explanation
Explanation/Reference:
Understandability is a first-class quality characteristic for architecture documentation because the document is only useful when its intended readers can apply it. A document can contain many diagrams and still fail if developers, testers, operations staff, or managers cannot determine what decisions were made and why those decisions matter. Correctness is needed because wrong documentation leads to wrong implementation choices. Efficiency is relevant in the documentation sense: readers should be able to find the information they need without excessive effort or unnecessary detail.
Scope and completeness also affect understandability. If the document omits important interfaces, quality requirements, deployment assumptions, or architectural decisions, readers will fill gaps differently and the architecture becomes harder to communicate. If it includes material far outside its intended purpose, the important structure becomes buried. Simplicity and brevity can improve readability, but they are not enough by themselves; an overly short document may omit essential architectural facts. The key idea is that understandable documentation balances accurate content, appropriate scope, sufficient completeness, and economical presentation for its audience.
QUESTION 3
Which of the following techniques are best suited to illustrate the interaction of runtime building blocks? Select the four most suitable techniques.
A.
Activity diagrams
B.
Sequence diagrams
C.
State diagram
D.
Flowcharts
E.
Class diagrams
F.
Tabular description of interfaces
G.
Depiction of screen flows (sequence of user interactions)
H.
Numbered lists of sequential steps
Correct Answer: ABCD
Explanation
Explanation/Reference:
Interactions of runtime building blocks are best explained with notations that show behavior over time. Activity diagrams are useful when the focus is flow of control or parallel activities among collaborating elements. Sequence diagrams are especially strong when the reader must understand messages between participants in chronological order. Flowcharts can express ordered decisions and processing steps in a compact form. Numbered sequential steps are also suitable when a lightweight textual description communicates the runtime collaboration more clearly than a formal diagram.
State diagrams serve a different purpose: they describe the lifecycle of one object or component as it moves between states. That can support runtime reasoning, but it is less direct for showing the interaction among multiple building blocks. Class diagrams describe static types and relationships, not runtime collaboration. Interface tables define contracts and signatures, while screen-flow depictions concentrate on user navigation. The point being tested is the difference between static structure and dynamic behavior. When the concern is how runtime blocks interact, choose behavioral and sequence-oriented representations that make order, responsibility, and collaboration visible.
QUESTION 4
HOTSPOT
Which of the following statements about the coupling between building blocks are correct? (Assign all answers.)
Correct Answer:
Explanation
Explanation/Reference:
Proposed correct regions: - High coupling reduces reusability -> true - Low coupling improves ability to meet functional requirements -> false - Low cohesion often leads to high coupling -> true - Loose coupling often reduces effort for changes -> true - Coupling for call dependencies is independent of call direction -> false - Inheritance reduces coupling in object-oriented languages -> false
Coupling is about dependency between building blocks. High coupling reduces reusability because a block that depends on many neighbors, hidden data structures, or concrete implementation details is hard to move or reuse elsewhere. Loose coupling usually reduces change effort because the effects of a modification are more likely to remain behind a stable contract. Low cohesion can cause high coupling: when unrelated responsibilities are grouped together, other blocks may need to depend on the same block for unrelated reasons, creating awkward dependency chains.
Low coupling does not directly improve the ability to meet functional requirements. A system can satisfy functions while being tightly coupled, although it may be harder to change later. Direction matters for call dependencies because a dependency from business logic to technical infrastructure has different consequences than the reverse. Inheritance also does not automatically reduce coupling; subclasses can become tightly bound to superclass behavior and internal assumptions. Good architecture aims for intentional, minimal, directional dependencies combined with cohesive responsibilities.
QUESTION 5
Which of the following statements about (crosscutting) concepts are most appropriate? (Select four.)
A.
The definition of appropriate concepts ensures the conceptual integrity of the architecture.
B.
Concepts are a means to increase consistency.
C.
For each quality goal there should be an explicitly documented concept.
D.
Uniform exception handling is most easily achieved when architects agree with developers upon a suitable concept prior to implementation.
E.
A concept might be implemented by a single building block.
F.
Uniform usage of concepts reduces coupling between building blocks.
G.
A concept can define constraints for the implementation of many building blocks.
Correct Answer: ABDG
Explanation
Explanation/Reference:
Crosscutting concepts describe recurring rules and solutions that affect many building blocks. Defining appropriate concepts helps preserve conceptual integrity because related parts of the system follow the same architectural ideas. Consistency improves when exception handling, logging, persistence, security, transactions, user interface rules, or communication policies are not invented separately by every team. Agreeing on a uniform exception-handling concept before implementation is a good example: developers receive guidance that can be applied repeatedly instead of making incompatible local decisions.
A concept can also define constraints for many building blocks. For example, a persistence concept may specify which data access mechanisms are allowed, and a communication concept may define service interaction rules. It is too strong to say that every quality goal must always have its own explicit concept; some goals are handled through several decisions or through existing structures. A concept may influence coupling, but simply using concepts does not automatically reduce coupling between all blocks. The main architectural value is shared rules for recurring concerns, which keeps a growing system coherent.
QUESTION 6
What are known patterns for the adaptation of interfaces? (Choose two.)
A.
Bridge
B.
Tower
C.
Observer
D.
Wall
Correct Answer: AC
Explanation
Explanation/Reference:
Interface adaptation is often needed when two parts of a system should collaborate without sharing exactly the same abstraction or notification style. The bridge pattern separates an abstraction from its implementation so both can vary independently. That makes it useful when an interface must be adapted across alternative implementations or platforms without forcing clients to depend on concrete classes. The observer pattern supports indirect communication from a subject to interested dependents. It is not an adapter in the narrow structural-pattern sense, but it is a known pattern for decoupling collaborators across an interface boundary.
Tower and wall are not standard design patterns for interface adaptation in the usual architecture vocabulary. The broader learning point is that patterns are named solutions to recurring forces. Some patterns adapt signatures or implementations, while others reduce coupling by changing the way parties communicate. Architects should select such patterns because their problem and consequences fit the integration challenge, not because a pattern name sounds architectural. The chosen patterns should make dependencies clearer, not hide accidental complexity behind decorative terminology.
QUESTION 7
HOTSPOT
Decide if the following statements are true or false. The performance of a system (response time or throughput) often competes with its... (Assign all answers.)
Performance improvements often require tradeoffs with other qualities. A design optimized for response time or throughput may use caching, batching, specialized data structures, parallelism, or reduced abstraction. Those choices can increase memory usage or make the solution less flexible. They can also reduce adaptability because highly optimized paths may be tightly coupled to current assumptions. Security can compete with performance when encryption, authentication, authorization checks, auditing, or validation add processing work, although good design tries to reduce that cost.
Testability may also suffer when performance-oriented code becomes more concurrent, timing-sensitive, or specialized. On-time completion of the project is important, but it is a project management constraint rather than a system quality characteristic of the same kind as performance. Usability does not inherently compete with performance; faster response usually helps the user experience, though individual design choices can still create local tradeoffs. Architects should document which qualities are being favored, what is being sacrificed, and how the decision will be revisited if the performance need changes.
QUESTION 8
Which two of the following statements about quality characteristics are most accurate? (Choose two.)
A.
Flexibility reduces testability
B.
Increased flexibility improves robustness
C.
Simplicity increases comprehensibility
D.
Increased efficiency results in reduced performance
Correct Answer: AC
Explanation
Explanation/Reference:
Quality characteristics influence one another, and architects must understand those tradeoffs instead of treating every quality goal as independent. Simplicity usually improves comprehensibility because fewer concepts, fewer dependencies, and fewer special cases make the architecture easier to explain and reason about. A simple structure is easier to document, review, test, and modify because readers can form a stable mental model of responsibilities and dependencies.
Flexibility can work in the opposite direction when it is achieved through extra indirection, configuration mechanisms, extension points, or generalized abstractions. Those mechanisms may be justified, but they often create more paths through the system and therefore make tests harder to design and maintain. Flexibility does not automatically improve robustness; a highly flexible design can still fail if contracts are unclear or combinations are not controlled. Efficiency and performance are closely related terms, so saying that increased efficiency reduces performance reverses the normal meaning. The architectural lesson is to reason about quality interactions explicitly. Some qualities reinforce each other, while others require conscious balancing and documented decisions.