posted on 2023-01-06, 16:08authored byDavid Lorge Parnas
Improperly designed interfaces can make modular programs almost indistinguishable from monoliths. An interface encapsulates design decisions only if it need not be changed when those design decisions are changed. This talk presents a principle for interface design and a procedure for applying that principle. The principle and procedure are illustrated with a variety of examples.