Proper noun
dependency inversion principle
(object-oriented programming) Design principle that states that (1) High- and low-level modules should both depend on abstractions and (2) instead of abstractions depending upon details, details should depend upon abstractions.