Concurrency theory: timed automata, testing, program synthesis

Davide Sangiorgi
2011 Distributed computing  
Today, with the widespread use of Internet and with the increase in the complexity of the software, it becomes vital to develop methods for ensuring the quality of concurrent software systems. It is therefore natural that this area, broadly referred to as concurrency theory, be represented in the journal Distributed Computing. As a way of reassessing this relevance, the present issue of the journal is entirely devoted to concurrency theory. The four papers presented cover three important topics
more » ... within concurrency theory: timed automata, automated program synthesis, and testing. I briefly comment on the contributions below. Traditional automata model the interactions between a system and its environment by retaining only the sequencing of events. The behaviour of a system is thus the tree, or the set of sequences, of such events. The strength of automata theory lies in the efficient algorithms and decision procedures for automatically manipulating and analyzing the resulting behaviors. Many verification theories, including model checking, are based on the theory of automata, in one of their various variants (deterministic, Meely machines, Buchi, pushdown, etc.). While the abstraction from quantitative time has had many advantages, it prevents the applicability of the techniques to cases in which real-time constraints are essential. Timed automata were introduced by Alur and Dill in 1994 as a formal notation to model the behavior of realtime systems. In its definition, state-transitions are annotated with timing constraints using finitely many real-valued clock variables. Timed automata accept timed words; these are infinite sequences in which each symbol is associated with a real-valued time information. Stopwatch automata are a variant of timed automata where the clock variables can be set to on or off depending on the state. The main interest in this variant is its high expressive power. Today, time automata and their stopwatch extension are one of the most studied models for real-time systems. They are the base for a variety of tools for specification and verification of real-time systems, applied to the analysis of schedulability, asynchronous circuits, communication protocols and so on. The paper "A study on shuffle, stopwatches and independently evolving clocks", by Catalin Dima and Ruggero Lanotte, makes a comprehensive study of properties of timed languages. The focus is the equivalence between automata and regular expressions, as in Kleene theorem, but in the setting of timed systems. The authors first show the equivalence between languages accepted by stopwatch automata and timed shuffle expressions (i.e., timed regular expressions with shuffle operator). Then, they restrict the class of stopwatch automata, so to obtain decidability of the emptiness problem. In this class, called partitioned stopwatch automata, the set of stopwatches is partitioned into disjoint classes. The class turns out to be equivalent with that of shuffle expressions with a certain fairness condition. Further, a correspondence is proved with the new class of distributed time-asynchronous automata: asynchronous compositions of timed automata in which time is allowed to progress independently between components. In testing validation, tests are developed from a specification of the desired behavior, and then manually or automatically executed. The outcome of a test suite leads to a verdict about the correctness of the implementation with respect to the specification. Validation of distributed systems requires checking the kind of messages exchanged between individual components and the order in which they are exchanged. Typically, each component has an interface, consisting of 123
doi:10.1007/s00446-011-0156-2 fatcat:r6z4smxgfrcwhm5yzoh7sdye7a