Development and Validation of Distributed Reactive Control Systems

A reactive control system is a computer system reacting to certain stimuli emitted by its environment in order to maintain it in a desired state. Distributed reactive control systems are generally composed of several processes, running in parallel on one or more computers, communicating with one another to perform the required control task. By their very nature, distributed reactive control systems are hard to design. Their distributed nature and/or the communication scheme used can introduce subtle unforeseen behaviours. When dealing with critical applications, such as plane control systems, or traffic light control systems, those unintended behaviours can have disastrous consequences. It is therefore essential, for the designer, to ensure that this does not happen. For that purpose, rigorous and systematic techniques can (and should) be applied as early as possible in the development process. In that spirit, this work aims at providing the designer with the necessary tools in order to facilitate the development and validation of such distributed reactive control systems. In particular, we show how using a dedicated language called dSL (Distributed Supervision language) can be used to ease the development process. We also study how validations techniques such as model-checking and testing can be applied in this context.

[1]  Wojciech Penczek,et al.  Model-checking of causality properties , 1995, Proceedings of Tenth Annual IEEE Symposium on Logic in Computer Science.

[2]  Grigore Rosu,et al.  Rewriting-Based Techniques for Runtime Verification , 2005, Automated Software Engineering.

[3]  D. Zampuniéris,et al.  Efficient handling of large sets of tuples with sharing trees , 1995, Proceedings DCC '95 Data Compression Conference.

[4]  Klaus Schneider,et al.  Verification of Reactive Systems: Formal Methods and Algorithms , 2003 .

[5]  Gregor von Bochmann,et al.  Finite State Description of Communication Protocols , 1978, Comput. Networks.

[6]  William E. Lorensen,et al.  Object-Oriented Modeling and Design , 1991, TOOLS.

[7]  Mihalis Yannakakis,et al.  The Complexity of Multiterminal Cuts , 1994, SIAM J. Comput..

[8]  Dimitra Giannakopoulou,et al.  Automata-based verification of temporal properties on running programs , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).

[9]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

[10]  Gérard Berry,et al.  The Esterel Synchronous Programming Language: Design, Semantics, Implementation , 1992, Sci. Comput. Program..

[11]  Gary C. White,et al.  Chapter 1 – Preliminaries , 1990 .

[12]  Pierre Wolper,et al.  An Automata-Theoretic Approach to Automatic Program Verification (Preliminary Report) , 1986, LICS.

[13]  Edmund M. Clarke,et al.  Design and Synthesis of Synchronization Skeletons Using Branching-Time Temporal Logic , 1981, Logic of Programs.

[14]  Edmund M. Clarke,et al.  Characterizing Finite Kripke Structures in Propositional Temporal Logic , 1988, Theor. Comput. Sci..

[15]  Edmund M. Clarke,et al.  Characterizing Correctness Properties of Parallel Programs Using Fixpoints , 1980, ICALP.

[16]  Martín Abadi,et al.  A Theory of Objects , 1996, Monographs in Computer Science.

[17]  Daniel Brand,et al.  On Communicating Finite-State Machines , 1983, JACM.

[18]  Vijay K. Garg,et al.  Detection of global predicates: Techniques and their limitations , 1998, Distributed Computing.

[19]  Gérard Berry,et al.  Real Time Programming: Special Purpose or General Purpose Languages , 1989, IFIP Congress.

[20]  Koushik Sen,et al.  Runtime safety analysis of multithreaded programs , 2003, ESEC/FSE-11.

[21]  Bill Nitzberg,et al.  Distributed shared memory: a survey of issues and algorithms , 1991, Computer.

[22]  Hubert Comon-Lundh,et al.  Diophantine Equations, Presburger Arithmetic and Finite Automata , 1996, CAAP.

[23]  Cédric Meuter,et al.  Testing Distributed Systems Through Symbolic Model Checking , 2007, FORTE.

[24]  Gerard J. Holzmann,et al.  The SPIN Model Checker - primer and reference manual , 2003 .

[25]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[26]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .

[27]  Edmund M. Clarke,et al.  Model Checking , 1999, Handbook of Automated Reasoning.

[28]  C. Petri Kommunikation mit Automaten , 1962 .

[29]  Doron A. Peled,et al.  Relaxed Visibility Enhances Partial Order Reduction , 2001, Formal Methods Syst. Des..

[30]  Ofer Strichman,et al.  Bounded model checking , 2003, Adv. Comput..

[31]  Cédric Meuter,et al.  The formal design of distributed controllers with dSL and Spin , 2005, Formal Aspects of Computing.

[32]  Jeffrey D. Ullman,et al.  Introduction to Automata Theory, Languages and Computation , 1979 .

[33]  Anca Muscholl,et al.  Synthesis of Distributed Algorithms Using Asynchronous Automata , 2003, CONCUR.

[34]  A. Church An Unsolvable Problem of Elementary Number Theory , 1936 .

[35]  Nicolas Halbwachs,et al.  LUSTRE: A declarative language for programming synchronous systems* , 1987 .

[36]  Philippe Schnoebelen,et al.  Model Checking a Path , 2003, CONCUR.

[37]  Cédric Meuter,et al.  On the complexity of partial order trace model checking , 2008, Inf. Process. Lett..

[38]  Javier Esparza,et al.  Implementing LTL model checking with net unfoldings , 2001, SPIN '01.

[39]  Edsger W. Dijkstra,et al.  Predicate Calculus and Program Semantics , 1989, Texts and Monographs in Computer Science.

[40]  Randal E. Bryant,et al.  Symbolic Boolean manipulation with ordered binary-decision diagrams , 1992, CSUR.

[41]  Glenford J. Myers,et al.  Art of Software Testing , 1979 .

[42]  Rémi Morin,et al.  Decompositions of Asynchronous Systems , 1998, CONCUR.

[43]  Vijay K. Garg,et al.  Detecting Temporal Logic Predicates in Distributed Programs Using Computation Slicing , 2003, OPODIS.

[44]  Giorgio Delzanno,et al.  Symbolic Data Structure for Sets of k-uples of Integers , 2007 .

[45]  Andrew S. Tanenbaum,et al.  Distributed systems: Principles and Paradigms , 2001 .

[46]  Carole Delporte-Gallet,et al.  Local and temporal predicates in distributed systems , 1995, TOPL.

[47]  Leslie Lamport,et al.  What Good is Temporal Logic? , 1983, IFIP Congress.

[48]  Paul Gastin,et al.  LTL Is Expressively Complete for Mazurkiewicz Traces , 2002, J. Comput. Syst. Sci..

[49]  Albert R. Meyer,et al.  Word problems requiring exponential time(Preliminary Report) , 1973, STOC.

[50]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[51]  Ed Brinksma,et al.  Functionality Decomposition by Compositional Correstness Preserving Transformation , 1993, CAV.

[52]  Koushik Sen,et al.  Decentralized runtime analysis of multithreaded applications , 2006, Proceedings 20th IEEE International Parallel & Distributed Processing Symposium.

[53]  Wang Yi,et al.  UPPAAL - a Tool Suite for Automatic Verification of Real-Time Systems , 1996, Hybrid Systems.

[54]  Vijay K. Garg,et al.  Computation Slicing: Techniques and Theory , 2001, DISC.

[55]  Sriram K. Rajamani,et al.  Generating Abstract Explanations of Spurious Counterexamples in C Programs , 2002 .

[56]  A. Turing On Computable Numbers, with an Application to the Entscheidungsproblem. , 1937 .

[57]  Thierry Massart,et al.  dSL, a language and environment for the design of distributed industrial controllers , 2005 .

[58]  Vijay K. Garg,et al.  On slicing a distributed computation , 2001, Proceedings 21st International Conference on Distributed Computing Systems.

[59]  Jens Palsberg,et al.  Stack Size Analysis for Interrupt-Driven Programs , 2003, SAS.

[60]  Colin J. Fidge,et al.  Logical time in distributed computing systems , 1991, Computer.

[61]  Albert Benveniste,et al.  The synchronous approach to reactive and real-time systems , 1991 .

[62]  Thomas J. Ostrand,et al.  White‐Box Testing , 2002 .

[63]  Richard Monson-Haefel,et al.  Enterprise JavaBeans , 1999, Java series.

[64]  Jean-François Raskin,et al.  Improved Algorithms for the Automata-Based Approach to Model-Checking , 2007, TACAS.

[65]  J. R. Büchi On a Decision Method in Restricted Second Order Arithmetic , 1990 .

[66]  Leslie Lamport,et al.  Distributed snapshots: determining global states of distributed systems , 1985, TOCS.

[67]  Igor Walukiewicz,et al.  An Expressively Complete Linear Time Temporal Logic for Mazurkiewicz Traces , 1997, Inf. Comput..

[68]  Vijay K. Garg,et al.  Techniques and applications of computation slicing , 2003, Distributed Computing.

[69]  A. Prasad Sistla,et al.  Automatic verification of finite state concurrent system using temporal logic specifications: a practical approach , 1983, POPL '83.

[70]  Martin Leucker,et al.  Monitoring of Real-Time Properties , 2006, FSTTCS.

[71]  Marco Pistore,et al.  NuSMV 2: An OpenSource Tool for Symbolic Model Checking , 2002, CAV.

[72]  Juan Carlos Augusto,et al.  Model-based approaches for validating business critical systems , 2003, Eleventh Annual International Workshop on Software Technology and Engineering Practice.

[73]  Vijay K. Garg,et al.  Efficient Detection of Restricted Classes of Global Predicates , 1995, WDAG.

[74]  Cédric Meuter,et al.  dSL: An Environment with Automatic Code Distribution for Industrial Control Systems , 2003, OPODIS.

[75]  Vijay K. Garg,et al.  Detection of Weak Unstable Predicates in Distributed Programs , 1994, IEEE Trans. Parallel Distributed Syst..