The dominant decomposition is the principle decomposition of a program into
separate modules. The tyranny of the dominant decomposition [TarrEtAl1999] refers
to restrictions imposed by the dominant decomposition on a software engineer's
ability to represent particular concerns in a modular way. Many kinds of concerns
do not align with the chosen decomposition, so that the concerns end up scattered
across many modules and tangled with one another.