Connectors as designs: Modeling, refinement and test case generation

  • Authors:
  • Sun Meng;Farhad Arbab;Bernhard K. Aichernig;Lcrmioara Atefnoaei;Frank S. de Boer;Jan Rutten

  • Affiliations:
  • LMAM, School of Mathematical Science, Peking University, Beijing, 100871, China and CWI, Amsterdam, The Netherlands;CWI, Amsterdam, The Netherlands;Institute for Software Technology, Graz University of Technology, Austria;CWI, Amsterdam, The Netherlands;CWI, Amsterdam, The Netherlands;CWI, Amsterdam, The Netherlands

  • Venue:
  • Science of Computer Programming
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

Over the past years, the need for high-confidence coordination mechanisms has intensified as new technologies have appeared for the development of service-oriented applications, making formalization of coordination mechanisms critical. Unifying Theories of Programming (UTP) provide a formal semantic foundation not only for programming languages but also for various expressive specification languages. A key concept in UTP is design: the familiar pre/post-condition pair that describes a contract. In this paper we use UTP to formalize Reo connectors, whereby connectors are interpreted as designs in UTP. This model can be used as a semantic foundation for proving properties of connectors, such as equivalence and refinement relations between connectors. Furthermore, it can be used as a reference document for developing tool support for Reo, such as test case generators. A fault-based method to generate test cases for component connectors from specifications is also provided in this paper. For connectors, faults are caused by possible errors during the development process, such as wrongly used channels, missing or redundant subcircuits, or circuits with wrongly constructed topology. We give test cases and connectors a unifying formal semantics by using the notion of design in UTP, and generate test cases by solving constraints obtained from a specification and a faulty implementation. A prototype serves to demonstrate the automatization of the approach.