Most of our current efforts to achieve reusable software are based, directly or indirectly, on the idea of ``black box abstraction'' -- that appealing notion that systems should present their behavior and hide their implementation. This talk shows that while the blackbox approach has many attractive properties, it is, surprisingly, not an appropriate basis for designing modules intended for broad reuse. Drawing on examples from across the field, the talk presents a new approach, in which systems expose their implementation in a principled way, that allows clients to adjust them to better meet their needs.
This talk is available in several forms:
Back to the Open Implementation Home Page