An interface is a boundary across which two independent entities meet and interact or communicate with each other.
If you've been reading the sidebars, you've already encountered the term interface several times. This term is widely used when describing software elements and can mean many different things to different people. The term is so important when documenting software architecture that we have devoted Chapter 7 to the subject.
It is both possible and likely that an entity will have more than one interface through which it interacts or communicates. An interface is more than a list of its available services. Ideally, an interface specification should provide enough information to avoid unexpected interactions that can occur because of assumptions an entity makes about either the environment in which it is to be placed or the entities with which it interacts.
Software Architectures and Documentation
Part I. Software Architecture Viewtypes and Styles
The Module Viewtype
Styles of the Module Viewtype
The Component-and-Connector Viewtype
Styles of the Component-and-Connector Viewtype
The Allocation Viewtype and Styles
Part II. Software Architecture Documentation in Practice
Documenting Software Interfaces
Choosing the Views
Building the Documentation Package
Other Views and Beyond
Rationale, Background, and Design Constraints