Nothing Special   »   [go: up one dir, main page]

skip to main content
research-article

Toward Object-oriented Modeling in SCCharts

Published: 29 May 2021 Publication History

Abstract

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.

References

[1]
Jean-Raymond Abrial. 1996. Steam-Boiler Control Specification Problem. Springer, Berlin, 500–509.
[2]
AdaCore. 2016. High-Integrity Object-Oriented Programming in Ada, v1.4. Retrieved from http://extranet.eu.adacore.com/articles/HighIntegrityAda.pdf.
[3]
Joaquín Aguado, Michael Mendler, Marc Pouzet, Partha S. Roop, and Reinhard von Hanxleden. 2018. Deterministic concurrency: A clock-synchronised shared memory approach. In Proceedings of the 27th European Symposium on Programming (ESOP’18). 86–113.
[4]
Jonathan Aldrich. 2013. The power of interoperability: Why objects are inevitable. In Proceedings of the 2013 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software (Onward!’13). Association for Computing Machinery, New York, NY, 101–116.
[5]
Charles André. 2004. Computing SyncCharts reactions. Electr. Notes Theor. Comput. Sci. 88 (2004), 3–19.
[6]
Charles André, Frédéric Boulanger, Marie-Agnès Péraldi, Jean-Paul Rigault, and Guy Vidal-Naquet. 1997. Objects and synchronous programming. J. Eur. Syst. Automat. 31, 3 (1997), 417–432.
[7]
Albert Benveniste, Benoît Caillaud, Dejan Nickovic, Roberto Passerone, Jean-Baptiste Raclet, Philipp Reinkemeier, Alberto Sangiovanni-Vincentelli, Werner Damm, Thomas Henzinger, and Kim Guldstrand Larsen. 2018. Contracts for System Design. Now, Foundations and Trends.
[8]
Albert Benveniste, Benoît Caillaud, and Jean-Baptiste Raclet. 2012. Application of interface theories to the separate compilation of synchronous programs. In Proceedings of the IEEE Conference on Decision and Control (CDC’12). 7252–7258.
[9]
Gérard Berry. 1999. The Esterel v5 Language Primer. Retrieved from ftp://ftp-sop.inria.fr/meije/esterel/papers/primer.ps.
[10]
Gérard Berry. 2000. The foundations of Esterel. In Proof, Language, and Interaction: Essays in Honour of Robin Milner. MIT Press, Cambridge, MA, 425–454.
[11]
Darek Biernacki, Jean-Louis Colaço, Grégoire Hamon, and Marc Pouzet. 2008. Clock-directed modular code generation of synchronous data-flow languages. In Proceedings of the ACM SIGPLAN/SIGBED 2008 Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES’08). ACM, 121–130.
[12]
Frédéric Boussinot, Guillaume Doumenc, and Jean-Bernard Stefani. 1996. Reactive objects. Ann. Télécommun. 51, 9 (Sep. 1996), 459–473.
[13]
Reinhard Budde, Axel Poigné, and Karl-Heinz Sylla. 2006. synERJY an object-oriented synchronous language. Electr. Notes Theor. Comput. Sci. 153, 4 (2006), 99–115.
[14]
Robert Büssow and Matthias Weber. 1996. A steam-boiler control specification with statecharts and Z. In Formal Methods for Industrial Applications, Specifying and Programming the Steam Boiler Control.Springer-Verlag, Berlin, 109–128.
[15]
Paul Caspi, Jean-Louis Colaço, Léonard Gérard, Marc Pouzet, and Pascal Raymond. 2009. Synchronous objects with scheduling policies: Introducing safe shared memory in Lustre. In Proceedings of the ACM International Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES’09). ACM,11–20.
[16]
Jean-Louis Colaço, Bruno Pagano, and Marc Pouzet. 2017. SCADE 6: A formal language for embedded critical software development (invited paper). In Proceedings of the 11th International Symposium on Theoretical Aspects of Software Engineering (TASE’17). Sophia Antipolis, France, 1–11.
[17]
Derek Coleman, Fiona Hayes, and Stephen Bear. 1992. Introducing objectcharts or how to use statecharts in object-oriented design. IEEE Trans. Softw. Eng. 18, 1 (Jan. 1992), 8–18.
[18]
Friedrich Gretz and Franz-Josef Grosch. 2018. Blech, imperative synchronous programming!. In Proceedings of the Forum on Specification Design Languages (FDL’18). 5–16.
[19]
Friedrich Gretz, Franz-Josef Grosch, Michael Mendler, and Stephan Scheele. 2020. Synchronized shared memory and procedural abstraction: Towards a formal semantics of Blech. In Proceedings of the Forum on Specification and Design Languages (FDL’20).
[20]
Olivier Hainque, Laurent Pautet, Yann Le Biannic, and Eric Nassor. 1999. Cronos: A separate compilation toolset for modular Esterel applications. In Proceedings of the World Congress on Formal Methods, Lecture Notes in Computer Science, Vol. 1709. Springer, 1836–1853.
[21]
Nicolas Halbwachs, Paul Caspi, Pascal Raymond, and Daniel Pilaud. 1991. The synchronous data flow programming language LUSTRE. Proc. IEEE 79, 9 (Sep. 1991), 1305–1320.
[22]
David Harel and Eran Gery. 1996. Executable object modeling with statecharts. In Proceedings of the 18th International Conference on Software Engineering (ICSE’96). IEEE Computer Society, 246–257.
[23]
David Harel and Hillel Kugler. 2004. The Rhapsody Semantics of Statecharts (or, On the Executable Core of the UML). Springer, Berlin, 325–354.
[24]
Edward A. Lee. 2006. The problem with threads. IEEE Comput. 39, 5 (2006), 33–42.
[25]
Marten Lohstroh, Martin Schoeberl, Andres Goens, Armin Wasicek, Christopher Gill, Marjan Sirjani, and Edward A. Lee. 2019. Invited: Actors revisited for time-critical systems. In Proceedings of the 56th ACM/IEEE Design Automation Conference (DAC’19).
[26]
Christian Motika, Steven Smyth, and Reinhard von Hanxleden. 2014. Compiling SCCharts—A case-study on interactive model-based compilation. In Proceedings of the 6th International Symposium on Leveraging Applications of Formal Methods, Verification and Validation (ISoLA’14), Lecture Notes in Computer Science, Vol. 8802. 461–480.
[27]
Sebti Mouelhi, Daniela Cancila, and Amar Ramdane-Cherif. 2017. Distributed object-oriented design of autonomous control systems for connected vehicle platoons. In Proceedings of the 2017 22nd International Conference on Engineering of Complex Computer Systems (ICECCS’17). 40–49.
[28]
Srinivas Pinisetty, Partha S. Roop, Steven Smyth, Stavros Tripakis, and Reinhard von Hanxleden. 2017. Runtime enforcement of cyber-physical systems. ACM Trans. Embed. Comput. Syst. 16, 5s (2017), 178:1–178:25.
[29]
Marc Pouzet and Pascal Raymond. 2010. Modular static scheduling of synchronous data-flow networks—An efficient symbolic representation. Des. Autom. Emb. Syst. 14, 3 (2010), 165–192.
[30]
Karsten Rathlev, Steven Smyth, Christian Motika, Reinhard von Hanxleden, and Michael Mendler. 2015. SCEst: Sequentially constructive Esterel. In Proceedings of the 13th ACM-IEEE International Conference on Formal Methods and Models for System Design (MEMOCODE’15).
[31]
Christian Schneider, Miro Spönemann, and Reinhard von Hanxleden. 2013. Just model!—Putting automatic synthesis of node-link-diagrams into practice. In Proceedings of the IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC’13). IEEE, 75–82.
[32]
Alexander Schulz-Rosengarten, Steven Smyth, and Michael Mendler. 2019. Towards object-oriented modeling in SCCharts. In Proceedings of the Forum on Specification and Design Languages (FDL’19). Southampton, UK.
[33]
Bran Selic. 1996. Real-time object-oriented modeling. IFAC Proc. Vol. 29, 5 (1996), 1–6.
[34]
Steven Smyth, Christian Motika, Alexander Schulz-Rosengarten, Sören Domrös, Lena Grimm, Andreas Stange, and Reinhard von Hanxleden. 2019. SCCharts: The Mindstorms Report. Technical Report 1904. Christian-Albrechts-Universität zu Kiel, Department of Computer Science.
[35]
Steven Smyth, Alexander Schulz-Rosengarten, and Reinhard von Hanxleden. 2018. Guidance in model-based compilations. In Proceedings of the 8th International Symposium on Leveraging Applications of Formal Methods, Verification and Validation (ISoLA’18), Doctoral Symposium (Electronic Communications of the EASST), Vol. 78.
[36]
Steven Smyth, Alexander Schulz-Rosengarten, and Reinhard von Hanxleden. 2018. Towards interactive compilation models. In Proceedings of the 8th International Symposium on Leveraging Applications of Formal Methods, Verification and Validation (ISoLA’18), Lecture Notes in Computer Science, Vol. 11244. Springer, 246–260.
[37]
Steven Smyth, Alexander Schulz-Rosengarten, and Reinhard von Hanxleden. 2019. Practical causality handling for synchronous languages. In Proceedings of the Design, Automation and Test in Europe Conference (DATE’19). IEEE.
[38]
Eugene Syriani, Vasco Sousa, and Levi Lúcio. 2019. Structure and behavior preserving statecharts refinements. Sci. Comput. Program. 170 (2019), 45–79.
[39]
Reinhard von Hanxleden, Björn Duderstadt, Christian Motika, Steven Smyth, Michael Mendler, Joaquín Aguado, Stephen Mercer, and Owen O’Brien. 2014. SCCharts: Sequentially constructive statecharts for safety-critical applications. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI’14). ACM, 372–383.
[40]
Peter Wegner. 1987. Dimensions of object-based language design. In Conference Proceedings on Object-Oriented Programming Systems, Languages and Applications (OOPSLA’87). Association for Computing Machinery, New York, NY, 168–182.

Cited By

View all
  • (2024)Synchronised Shared Memory and Model CheckingACM Transactions on Embedded Computing Systems10.1145/362618823:5(1-30)Online publication date: 14-Aug-2024

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Transactions on Embedded Computing Systems
ACM Transactions on Embedded Computing Systems  Volume 20, Issue 4
Special Issue on FDL2019
July 2021
256 pages
ISSN:1539-9087
EISSN:1558-3465
DOI:10.1145/3458852
  • Editor:
  • Tulika Mitra
Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Publisher

Association for Computing Machinery

New York, NY, United States

Journal Family

Publication History

Published: 29 May 2021
Accepted: 01 March 2021
Revised: 01 February 2021
Received: 01 February 2020
Published in TECS Volume 20, Issue 4

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Synchronous languages
  2. determinacy
  3. inheritance
  4. object orientation
  5. state machine modeling

Qualifiers

  • Research-article
  • Research
  • Refereed

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)15
  • Downloads (Last 6 weeks)2
Reflects downloads up to 16 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Synchronised Shared Memory and Model CheckingACM Transactions on Embedded Computing Systems10.1145/362618823:5(1-30)Online publication date: 14-Aug-2024

View Options

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

HTML Format

View this article in HTML Format.

HTML Format

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media