Accepting software evolution as necessary phenomenon, one strives at least to control it. The foresight needed to have at least limited success in this respect requires to perceive software evolution from a broader perspective than the one of a series of maintenance activities.
The feedback-properties of very large software systems on one hand and the very nature in which complex software is embedded in its environment asks to look at co-evolution when aiming to predict evolution of the artifact itself. Interfaces play a crucial role in this respect. Hence they should be specially focussed on. At the same token, one has to see that the internal structure of a software system asks for stratified analysis.