1. For Correct Option C (Simplicity increases comprehensibility):
Van Vliet
H. (2008). Software Engineering: Principles and Practice. 3rd Edition. John Wiley & Sons. Chapter 7
Section 7.3
on design heuristics
emphasizes that simplicity and low complexity are crucial for creating understandable and maintainable systems. It states
"A simple design is easy to understand and easy to maintain."
2. For Correct Option A (Flexibility reduces testability):
Patton
R. (2006). Software Testing. 2nd Edition. Sams Publishing. Chapter 1 discusses the testing axiom "The more complex the software
the more bugs it will have." Flexibility adds to this complexity. The book explains how a multitude of options and configurations (a hallmark of flexibility) exponentially increases the number of test cases required
making exhaustive testing impossible and practical testability more challenging.
3. For Incorrect Option B (Flexibility vs. Robustness):
International Software Architecture Qualification Board (iSAQB). (2019). Curriculum CPSA-Foundation Level
Version 2.0.1 DE. Page 19
Section 2.3. This official curriculum explicitly lists "Flexibilität vs. Stabilität/Robustheit" (Flexibility vs. Stability/Robustness) as a well-known example of conflicting quality requirements. This directly contradicts the claim that one improves the other.
4. For Incorrect Option D (Efficiency vs. Performance):
ISO/IEC 25010:2011. Systems and software engineering — Systems and software Quality Requirements and Evaluation (SQuaRE) — System and software quality models. Section 4.2 describes the "Performance efficiency" characteristic
which includes sub-characteristics like "Time-behaviour" and "Resource utilization." The standard defines them as related components of the same high-level quality attribute
indicating they are not in opposition.