Software Layers Causality.
i think but am no expert, not very meek either way as well...
i think that software is built of more basic, smaller often, software components.
proper working of such a building blocks is precondition for working of larger components.
working of such preconditions can be tested using security harness such as automated test cases, or proven mathematically more or less often.
when preconditions of a software component cease to hold, software will fall apart.
software projects are often competing, and precondition for more resources for a given project is superiority, which can be achieved in many ways, for example by causing preconditions of rival projects to fall apart, somehow.
basic components are 'lower' layers, complex components (larger, built from smaller) form 'higher' layers, at least from a certain perspective.
See also: , perhaps.