Towards a New Model of Abstraction in Software Engineering
The view of abstraction on which software engineering is based does
not support the reality of practice: it suggests that abstractions
hide their implementation, whereas the evidence is that this is not
generally possible. This discrepancy between our basic conceptual
foundations and practice appears to be at the heart of a number of
portability and complexity problems.
Work on metaobject protocols suggests a new view, in which
abstractions do expose their implementations, but do so in a way that
makes a principled division between the functionality they provide and
the underlying implementation. By resolving the discrepancy with
practice, this new view appears to lead to simpler programs. It also
has the potential to resolve important outstanding problems surround
reuse, software building blocks, and high-level programming languages.
© Copyright 1992 Xerox Corporation. All rights reserved.
Download paper.