A design principle in software engineering where the control flow of a program is inverted in comparison to traditional procedural programming.
"Inversion of control is often achieved through the use of frameworks, where the framework calls user-defined code rather than the user's code calling the framework."