Cross-cutting concerns are those concerns that are relevant across different levels, layers, and perspectives of the architecture. There are very different concerns that have this nature. In this chapter, we will discuss some of the major ones. Each of the following sections is about one of them. Finally, trade studies and budgets will be discussed as a means of handling cross-cutting concerns.
Fried and Hansson write: ‘things like speed, simplicity, ease of use and clarity are our focus. Those are timeless desires. People aren't going to wake up in 10 years and say, “Man, I wish software was harder to use”’ (, p. 85). This statement stresses the importance of nonfunctional aspects, here: speed and ease of use.
Often nonfunctional requirements are cross-cutting concerns, because many parts of the system can spoil satisfying them. The reaction speed of a system can be spoiled by both a poor-layered architecture and an unsatisfactory product architecture. A noncompliance with requirements about total mass of the system can result from a single part of the system being too heavy.
The system architecture description should describe how nonfunctional requirements are mapped to the different system elements. In the case of requirements about linear superposing parameters like mass or storage consumption it may be sufficient to make budgets of maximum parameter values for different system elements (see ...