volume_mute

Conflicting Architectural Requirements

publish date2026/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


Quizzes you can take where this question appears