Abstracts

Delays in Esterel

T. Bourke (NICTA, UNSW CSE) and A. Sowmya (UNSW CSE)
November 2009

The timing details in many embedded applications are inseparable from other behavioural aspects. Time is also a resource; a physical constraint on system design that introduces limitations and costs. Design and implementation choices are often explored and decided simultaneously, complicating both tasks and encouraging platform specific programs where the meaning of a specification is mixed with the mechanisms of implementation.

The Esterel programming language is ideal for describing complex reactive behaviours. But, perhaps surprisingly, timing details cannot be expressed without making significant implementation choices at early stages of design. We illustrate this point with an example application where reactive behaviour and physical time are intertwined.

A simple solution is proposed: add a statement for expressing delays in physical time. While there are similar statements or library calls in many programming languages, the novelty of our proposal is that the delay statements are later replaced with standard Esterel statements when platform details become available. Delays are thus expressed directly in terms of physical time, but later implemented as a discrete controller using existing techniques. This approach is familiar in control system design where analytical models are constructed in continuous time and then later discretized to produce implementations.

We present some ideas for performing the translation and outline some of the remaining challenges and uncertainties.

Keywords: Synchronous languages, Esterel, real-time programming, embedded controllers, control software
  • Presented at the Daghstuhl workshop Synchron 2009, and published in the proceedings.
  • The Synchron 2009 workshop was not referreed.
  • This paper is an abridged version of a chapter from my thesis.
  • The slides are online.

Automatically transforming and relating Uppaal models of embedded systems

T. Bourke (NICTA, UNSW CSE) and A. Sowmya (UNSW CSE)
October 2008

Relations between models are important for effective automatic validation, for comparing implementations with specifications, and for increased understanding of embedded systems designs. Timed automata may be used to model a system at multiple levels of abstraction, and timed trace inclusion is one way to relate the models.

It is known that a deterministic and tau-free timed automaton can be transformed such that reachability analysis can decide timed trace inclusion with another timed automaton. Performing the transformation manually is tedious and error-prone. We have developed a tool that does it automatically for a large subset of Uppaal models.

Certain features of the Uppaal modeling language, namely selection bindings and channel arrays, complicate the transformation. We formalize these features and extend the validation technique to incorporate them. We find it impracticable to manipulate some forms of channel array subscripts, and some combinations of selection bindings and universal quantifiers; doing so either requires premature parameter instantiation or produces models that Uppaal rejects.

Keywords: Timed trace inclusion, Uppaal, model transformation.
  • Published in Proceedings of the Eighth ACM & IEEE International Conference on Embedded Software, pages 59–68, Atlanta USA, October 2008.
  • Conference acceptance rate: 25% (28/110)
  • This paper contains important improvements to an earlier technical report: UNSW-CSE-TR0723.
  • Most of the techniques described in the paper are implemented in a tool called urpal.
  • The slides are online.

Reliable device drivers require well-defined protocols

L. Ryzhyk (NICTA, UNSW CSE), T. Bourke (NICTA, UNSW CSE)
and I. Kuz (NICTA, UNSW CSE)
June 2007

Current operating systems lack well-defined protocols for interaction with device drivers. We argue that this hinders the development of reliable drivers and thereby undermines overall system stability. We present an approach to specify driver protocols using a formalism based on state machines. We show that it can simplify device programming, facilitate static analysis of drivers against protocol specifications, and enable detection of incorrect behaviours at runtime.

Keywords: Device drivers, modelling, systems engineering
  • Published in Proceedings of the 3rd workshop on Hot Topics in System Dependability, article 3, Edinburgh, June 2007.
  • This workshop presentation describes Ryzhyk's work. I co-developed the underlying model, which applies much from Argos, Statecharts, and ultimately the idea of constraint-oriented specification originating in CSP and LOTOS.

A Timing Model for Synchronous Language Implementations in Simulink

T. Bourke (UNSW CSE/NICTA) and A. Sowmya (UNSW CSE/NICTA/UNSW Asia)
October 2006

We describe a simple scheme for mapping synchronous language models, in the form of Boolean Mealy Machines, into timed automata. The mapping captures certain idealised implementation details that are ignored, or assumed away, by the synchronous paradigm. In this regard, the scheme may be compared with other approaches such as the AASAP semantics. However, our model addresses input latching and reaction triggering differently. Additionally, the focus is not on model-checking but rather on creating a semantic model for simulating synchronous controllers within Simulink.

The model considers both sample-driven and event-driven execution paradigms, and clarifies their similarities and differences. It provides a means of analysing the timing behaviour of small-scale embedded controllers. The integration of the timed automata models into Simulink is described and related work is discussed.

Keywords: Synchronous languages, Simulink, Timed automata
  • Published in Proceedings of the Sixth ACM & IEEE International Conference on Embedded Software, pages 93–101, Seoul, October 2006.
  • Conference acceptance rate: 33% (31/94)
  • The slides are online.
  • This version includes a correction to the last sentence on page 7.

Formal Models in Industry Standard Tools: An Argos Block within Simulink

T. Bourke (UNSW CSE/NICTA) and A. Sowmya (UNSW CSE/NICTA)
April 2005

Simulink is widely used within industry for simulation and model-driven development, and reactive behaviours are often modelled using an add-on called Stateflow. Argos is one of the synchronous languages that have been proposed for the specification, validation and implementation of reactive systems. It is a rigorously defined graphical notation which, although not as powerful as Stateflow, is much less complicated. This paper describes the implementation of an Argos block for Simulink.

Keywords: Reactive systems, synchronous languages, Simulink, Stateflow, Argos
  • Available in F. E. Tay, editor, International Journal of Software Engineering and Knowledge Engineering: Selected Papers from the 2005 International Conference on Embedded and Hybrid Systems, volume 15(2), pages 389–395, Singapore, April 2005.
  • The slides are online.