Towards a New Model of Abstraction in the Engineering of Software
A paper by Gregor Kiczales that advocates for a new way to think about abstraction in software engineering.
The black-box Abstraction framework we have been using comes from other engineering disciplines and mathematics. We create a simple interface for the clients and hide the implementation details.
However, this framework is not appropriate to software engineering because the hidden design decisions of a module often leak to the higher modules.
The workarounds created by this "leakage" contribute to a lot of the accidental complexity in software.