
This chapter studies models, specification, and refinement techniques for distributed interactive software systems composed of interfaces and components. A theory for the interaction between such systems is given that refers to the interaction among systems and their environments, as well as the interaction among the components of systems. Interfaces and interactions are modeled by logical formulas in the style of design by contract, by state machines, and by streams of messages and signals. This leads to a theory of interface abstraction of systems that is essential for an interaction view. In particular, this theory treats interaction refinement and introduces a service concept based purely on interaction.