Toward Object-oriented Modeling in SCCharts

Object orientation is a powerful and widely used paradigm for abstraction and structuring in programming. Many languages are designed with this principle or support different degrees of object orientation. In synchronous languages, originally developed to design embedded reactive systems, there are only few object-oriented influences. However, especially in combination with a statechart notation, the modeling process can be improved by facilitating object orientation as we argue here. At the same time the graphical representation can be used to illustrate the object-oriented design of a system. Synchronous statechart dialects, such as the SCCharts language, provide deterministic concurrency for specifying safety-critical systems. Using SCCharts as an example, we illustrate how an object-oriented modeling approach that supports inheritance can be introduced. We further present how external, i.e., host language, objects can be included in the SCCharts language. Specifically, we discuss how the recently developed concepts of scheduling directives and scheduling policies can be used to ensure the determinism of objects while retaining encapsulation.

[1]  Marc Pouzet,et al.  SCADE 6: A formal language for embedded critical software development (invited paper) , 2017, 2017 International Symposium on Theoretical Aspects of Software Engineering (TASE).

[2]  Bran Selic,et al.  Real-time object-oriented modeling , 1994, Wiley professional computing.

[3]  Reinhard von Hanxleden,et al.  Towards Interactive Compilation Models , 2018, ISoLA.

[4]  MendlerMichael,et al.  SCCharts: sequentially constructive statecharts for safety-critical applications , 2014 .

[5]  Gérard Berry,et al.  The foundations of Esterel , 2000, Proof, Language, and Interaction.

[6]  Laurent Pautet,et al.  Cronos: A Separate Compilation Toolset for Modular Esterel Applications , 1999, World Congress on Formal Methods.

[7]  Reinhard Budde,et al.  synERJY An Object-oriented Synchronous Language , 2006, SLAP@ETAPS.

[8]  F. Gretz,et al.  Synchronized Shared Memory and Procedural Abstraction: Towards a Formal Semantics of Blech , 2020, 2020 Forum for Specification and Design Languages (FDL).

[9]  Egon Börger,et al.  Formal methods for industrial applications : specifying and programming the steam boiler control , 1996 .

[10]  Partha S. Roop,et al.  Runtime Enforcement of Cyber-Physical Systems , 2017, ACM Trans. Embed. Comput. Syst..

[11]  Edward A. Lee,et al.  Invited: Actors Revisited for Time-Critical Systems , 2019, 2019 56th ACM/IEEE Design Automation Conference (DAC).

[12]  Christian Schneider,et al.  Just model! — Putting automatic synthesis of node-link-diagrams into practice , 2013, 2013 IEEE Symposium on Visual Languages and Human Centric Computing.

[13]  Michael Mendler,et al.  Towards Object-Oriented Modeling in SCCharts , 2019, 2019 Forum for Specification and Design Languages (FDL).

[14]  Reinhard von Hanxleden,et al.  Compiling SCCharts - A Case-Study on Interactive Model-Based Compilation , 2014, ISoLA.

[15]  Amar Ramdane-Cherif,et al.  Distributed Object-Oriented Design of Autonomous Control Systems for Connected Vehicle Platoons , 2017, 2017 22nd International Conference on Engineering of Complex Computer Systems (ICECCS).

[16]  Edward A. Lee The problem with threads , 2006, Computer.

[17]  Friedrich Gretz,et al.  Blech, Imperative Synchronous Programming! , 2018, 2018 Forum on Specification & Design Languages (FDL).

[18]  Marc Pouzet,et al.  Modular static scheduling of synchronous data-flow networks: an efficient symbolic representation , 2009, EMSOFT '09.

[19]  Derek Coleman,et al.  Introducing Objectcharts or How to Use Statecharts in Object-Oriented Design , 1992, IEEE Trans. Software Eng..

[20]  Marc Pouzet,et al.  Synchronous objects with scheduling policies: introducing safe shared memory in lustre , 2009, LCTES '09.

[21]  Reinhard von Hanxleden,et al.  Practical Causality Handling for Synchronous Languages , 2019, 2019 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[22]  Marc Pouzet,et al.  Deterministic Concurrency: A Clock-Synchronised Shared Memory Approach , 2018, ESOP.

[23]  Peter Wegner,et al.  Dimensions of object-based language design , 1987, OOPSLA '87.

[24]  Benoît Caillaud,et al.  Application of interface theories to the separate compilation of synchronous programs , 2012, 2012 IEEE 51st IEEE Conference on Decision and Control (CDC).

[25]  David Harel,et al.  Executable object modeling with statecharts , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[26]  Michael Mendler,et al.  SCEst: Sequentially constructive esterel , 2015, 2015 ACM/IEEE International Conference on Formal Methods and Models for Codesign (MEMOCODE).

[27]  Pascal Raymond,et al.  The synchronous data flow programming language LUSTRE , 1991, Proc. IEEE.

[28]  Andrew P. Black,et al.  Reactive objects , 2002, Proceedings Fifth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing. ISIRC 2002.

[29]  Charles André,et al.  Computing SyncCharts Reactions , 2004, SLAP.

[30]  David Harel,et al.  The Rhapsody Semantics of Statecharts (or, On the Executable Core of the UML) - Preliminary Version , 2004, SoftSpez Final Report.

[31]  Levi Lucio,et al.  Structure and behavior preserving statecharts refinements , 2019, Sci. Comput. Program..

[32]  Reinhard von Hanxleden,et al.  Guidance in Model-based Compilations , 2020 .

[33]  Matthias Weber,et al.  A Steam-Boiler Control Specification with Statecharts and Z , 1995, Formal Methods for Industrial Applications.

[34]  Jean-Raymond Abrial Steam-Boiler Control Specification Problem , 1995, Formal Methods for Industrial Applications.

[35]  Jonathan Aldrich,et al.  The power of interoperability: why objects are inevitable , 2013, Onward!.

[36]  Marc Pouzet,et al.  Clock-directed modular code generation for synchronous data-flow languages , 2008, LCTES '08.

[37]  Frédéric Boulanger,et al.  Objects and synchronous programming , 1997 .