volume_mute
Conflicting Architectural Requirements
publish date: 2026/06/09 21:16:36.165926 UTC
volume_mute
A system has both high performance and high maintainability as critical non-functional requirements. Why do these requirements create an architectural conflict?
Correct Answer
Performance requires large components deployed together, while maintainability requires fine-grain, self-contained components — these are opposites
Explanation
Using large components improves performance by reducing communications overhead. Using small, fine-grain components improves maintainability. These are directly conflicting strategies. A compromise must be found, sometimes by using different architectural patterns for different parts of the same system.
Reference
Software Engineering, Ian Sommerville, 10th edition
