skip to main content
research-article

Toward Object-oriented Modeling in SCCharts

Published:29 May 2021Publication History
Skip Abstract Section

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. DOI:https://doi.org/10.1007/BFb0027252Google ScholarGoogle Scholar
  2. AdaCore. 2016. High-Integrity Object-Oriented Programming in Ada, v1.4. Retrieved from http://extranet.eu.adacore.com/articles/HighIntegrityAda.pdf.Google ScholarGoogle Scholar
  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. DOI:https://doi.org/10.1007/978-3-319-89884-1_4Google ScholarGoogle ScholarCross RefCross Ref
  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. DOI:https://doi.org/10.1145/2509578.2514738Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Charles André. 2004. Computing SyncCharts reactions. Electr. Notes Theor. Comput. Sci. 88 (2004), 3–19.Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  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.Google ScholarGoogle Scholar
  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.Google ScholarGoogle ScholarCross RefCross Ref
  9. Gérard Berry. 1999. The Esterel v5 Language Primer. Retrieved from ftp://ftp-sop.inria.fr/meije/esterel/papers/primer.ps.Google ScholarGoogle Scholar
  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.Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Frédéric Boussinot, Guillaume Doumenc, and Jean-Bernard Stefani. 1996. Reactive objects. Ann. Télécommun. 51, 9 (Sep. 1996), 459–473. DOI:https://doi.org/10.1007/BF02997708Google ScholarGoogle ScholarCross RefCross Ref
  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.Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  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.Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle ScholarCross RefCross Ref
  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. DOI:https://doi.org/10.1109/32.120312Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. DOI:https://doi.org/10.1109/FDL.2018.8524036Google ScholarGoogle ScholarCross RefCross Ref
  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). DOI:https://doi.org/10.1109/FDL50818.2020.9232942Google ScholarGoogle ScholarCross RefCross Ref
  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.Google ScholarGoogle Scholar
  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.Google ScholarGoogle ScholarCross RefCross Ref
  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.Google ScholarGoogle ScholarCross RefCross Ref
  23. David Harel and Hillel Kugler. 2004. The Rhapsody Semantics of Statecharts (or, On the Executable Core of the UML). Springer, Berlin, 325–354. DOI:https://doi.org/10.1007/978-3-540-27863-4_19Google ScholarGoogle Scholar
  24. Edward A. Lee. 2006. The problem with threads. IEEE Comput. 39, 5 (2006), 33–42.Google ScholarGoogle ScholarDigital LibraryDigital Library
  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).Google ScholarGoogle Scholar
  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. DOI:https://doi.org/10.1007/978-3-662-45234-9Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. DOI:https://doi.org/10.1109/ICECCS.2017.32Google ScholarGoogle ScholarCross RefCross Ref
  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.Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle ScholarDigital LibraryDigital Library
  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).Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. DOI:https://doi.org/10.1109/VLHCC.2013.6645246Google ScholarGoogle ScholarCross RefCross Ref
  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.Google ScholarGoogle ScholarCross RefCross Ref
  33. Bran Selic. 1996. Real-time object-oriented modeling. IFAC Proc. Vol. 29, 5 (1996), 1–6. DOI:https://doi.org/10.1016/S1474-6670(17)46346-4Google ScholarGoogle ScholarCross RefCross Ref
  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.Google ScholarGoogle Scholar
  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.Google ScholarGoogle Scholar
  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.Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle ScholarCross RefCross Ref
  38. Eugene Syriani, Vasco Sousa, and Levi Lúcio. 2019. Structure and behavior preserving statecharts refinements. Sci. Comput. Program. 170 (2019), 45–79. DOI:https://doi.org/10.1016/j.scico.2018.10.005Google ScholarGoogle ScholarCross RefCross Ref
  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.Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. DOI:https://doi.org/10.1145/38765.38823Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Toward Object-oriented Modeling in SCCharts

                    Recommendations

                    Comments

                    Login options

                    Check if you have access through your login credentials or your institution to get full access on this article.

                    Sign in

                    Full Access

                    • Article Metrics

                      • Downloads (Last 12 months)18
                      • Downloads (Last 6 weeks)2

                      Other Metrics

                    PDF Format

                    View or Download as a PDF file.

                    PDF

                    eReader

                    View online with eReader.

                    eReader

                    HTML Format

                    View this article in HTML Format .

                    View HTML Format
                    About Cookies On This Site

                    We use cookies to ensure that we give you the best experience on our website.

                    Learn more

                    Got it!