These ideas were captured by computer scientist David Parnas in a pair of
rules, which are known as Parnas' Principles:
-
The developer of a software component must provide the intended user with
all the information needed to make effective use of the services provided
by the component, and should provide no other information.
-
The implementor of a software component must be provided with all the
information necessary to carry out the given responsibilities assigned to
the component, and should be provided with no other information.