ABSTRACT
Interface theories have been proposed to support incremental design and independent implementability. Incremental design means that the compatibility checking of interfaces can proceed for partial system descriptions, without knowing the interfaces of all components. Independent implementability means that compatible interfaces can be refined separately, maintaining compatibility. We show that these interface theories provide no formal support for component reuse, meaning that the same component cannot be used to implement several different interfaces in a design. We add a new operation to interface theories in order to support such reuse. For example, different interfaces for the same component may refer to different aspects such as functionality, timing, and power consumption. We give both stateless and stateful examples for interface theories with component reuse. To illustrate component reuse in interface-based design, we show how the stateful theory provides a natural framework for specifying and refining PCI bus clients.
- R. Alur, T. A. Henzinger, O. Kupferman, and M. Y. Vardi. Alternating refinement relations. In Proceedings of CONCUR: Concurrency Theory, volume 1466 of Lecture Notes in Computer Science, pages 163--178. Springer, 1998. Google ScholarDigital Library
- A. Chakrabarti, L. de Alfaro, T. A. Henzinger, and F. Y. C. Mang. Synchronous and bidirectional component interfaces. In Proceedings of CAV: Computer Aided Verification, volume 2404 of Lecture Notes in Computer Science, pages 414--427. Springer, 2002. Google ScholarDigital Library
- A. Chakrabarti, L. de Alfaro, T. A. Henzinger, and M. Stoelinga. Resource interfaces. In Proceedings of EMSOFT: Embedded Software, volume 2855 of Lecture Notes in Computer Science, pages 117--133. Springer, 2003.Google ScholarCross Ref
- L. de Alfaro and T. A. Henzinger. Interface automata. In Proceedings of FSE: Foundations of Software Engineering, pages 109--120. ACM Press, 2001. Google ScholarDigital Library
- L. de Alfaro and T. A. Henzinger. Interface theories for component-based design. In Proceedings of EMSOFT: Embedded Software, volume 2211 of Lecture Notes in Computer Science, pages 148--165. Springer, 2001. Google ScholarDigital Library
- L. de Alfaro, T. A. Henzinger, and M. Stoelinga. Timed interfaces. In Proceedings of EMSOFT: Embedded Software, volume 2491 of Lecture Notes in Computer Science, pages 108--122. Springer, 2002. Google ScholarDigital Library
- T. A. Henzinger and S. Matic. An interface algebra for real-time components. In IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS), pages 253--266. IEEE Computer Society, 2006. Google ScholarDigital Library
- E. A. Lee and Y. Xiong. System-level types for component-based design. In Proceedings of EMSOFT: Embedded Software, pages 237--253. Springer, 2001. Google ScholarDigital Library
- PCI bus power management interface specification revision, 2004. http://www.pcisig.com/specifications/conventional.Google Scholar
- B. C. Pierce. Types and Programming Languages. MIT Press, 2002. Google ScholarDigital Library
- E. Wandeler and L. Thiele. Real-time interfaces for interface-based design of real-time systems with fixed priority scheduling. In Proceedings of EMSOFT: Embedded Software, pages 80--89. ACM Press, 2005. Google ScholarDigital Library
- E. Wandeler and L. Thiele. Interface-based design of real-time systems with hierarchical scheduling. In IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS), pages 243--252. IEEE Computer Society, 2006. Google ScholarDigital Library
Index Terms
- Interface theories with component reuse
Recommendations
A model of component-based programming
FSEN'07: Proceedings of the 2007 international conference on Fundamentals of software engineeringComponent-based programming is about how to create application programs from prefabricated components with new software that provides both glue between the components, and new functionality. Models of components are required to support black-box ...
A catalogue of component connectors to support development with reuse
Component-based development is based on the idea of building software systems by composing pre-existing components. Connectors are the 'glue' for composing components. Therefore, it is important to consider connectors as first-class entities and provide ...
Using resemblance to support component reuse and evolution
SAVCBS '06: Proceedings of the 2006 conference on Specification and verification of component-based systemsThe aim of a component-based approach to software is to allow the construction of a system by reusing and connecting together a number of existing components. To successfully reuse a component, alterations generally need to be made to it, particularly ...
Comments