In software engineering, there is the concept of encapsulation: hiding the details of one program from another program. The theory is that by doing this, the other program will use only details provided (the interface), not caring about the inner details of the program being used. This apparently reduces code dependency on extraneous details that can be changed at any time in the program being used. Code dependency on extraneous details is bad because one change in the extraneous details of the program being used will necessitate change in the program that uses it.
That dependency of one system on another necessitates change in the dependent system if the independent one is changed is axiomatic. I was wondering if there was a formal term for this axiom, or if it could be proven?