de Alfaro, Luca; Henzinger, Thomas AIST Austria
Conventional type systems specify interfaces in terms of values and domains. We present a light-weight formalism that captures the temporal aspects of software component interfaces. Specifically, we use an automata-based language to capture both input assumptions about the order in which the methods of a component are called, and output guarantees about the order in which the component calls external methods. The formalism supports automatic compatability checks between interface models, and thus constitutes a type system for component interaction. Unlike traditional uses of automata, our formalism is based on an optimistic approach to composition, and on an alternating approach to design refinement. According to the optimistic approach, two components are compatible if there is some environment that can make them work together. According to the alternating approach, one interface refines another if it has weaker input assumptions, and stronger output guarantees. We show that these notions have game-theoretic foundations that lead to efficient algorithms for checking compatibility and refinement.
109 - 120
FSE: Foundations of Software Engineering
De Alfaro L, Henzinger TA. Interface automata. In: ACM; 2001:109-120. doi:10.1145/503209.503226
De Alfaro, L., & Henzinger, T. A. (2001). Interface automata (pp. 109–120). Presented at the FSE: Foundations of Software Engineering, ACM. https://doi.org/10.1145/503209.503226
De Alfaro, Luca, and Thomas A Henzinger. “Interface Automata,” 109–20. ACM, 2001. https://doi.org/10.1145/503209.503226.
L. De Alfaro and T. A. Henzinger, “Interface automata,” presented at the FSE: Foundations of Software Engineering, 2001, pp. 109–120.
De Alfaro L, Henzinger TA. 2001. Interface automata. FSE: Foundations of Software Engineering, 109–120.
De Alfaro, Luca, and Thomas A. Henzinger. Interface Automata. ACM, 2001, pp. 109–20, doi:10.1145/503209.503226.