Rich Interfaces for Software Modules

Published: 2004, Last Modified: 27 Apr 2025ECOOP 2004EveryoneRevisionsBibTeXCC BY-SA 4.0
Abstract: Interfaces play a central role in the modular design of systems. Good interface design is based on two principles. First, an interface should expose enough information about a module so to make it possible to predict if two or more modules work together properly, by looking only at their interfaces. Second, an interface should not expose more information about a module than is required by the first principle. The technical realization of these two principles depends, of course, on the precise interpretation of what it means for two or more modules to “work together properly.” A simple interpretation is offered by typed programming languages: a module that implements a function and a module that calls that function are compatible if the function definition and the function call agree on the number, order, and types of the parameters.
Loading