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.
- Jean-Raymond Abrial. 1996. Steam-Boiler Control Specification Problem. Springer, Berlin, 500–509. DOI:https://doi.org/10.1007/BFb0027252Google Scholar
- AdaCore. 2016. High-Integrity Object-Oriented Programming in Ada, v1.4. Retrieved from http://extranet.eu.adacore.com/articles/HighIntegrityAda.pdf.Google Scholar
- 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 Scholar
Cross Ref
- 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 Scholar
Digital Library
- Charles André. 2004. Computing SyncCharts reactions. Electr. Notes Theor. Comput. Sci. 88 (2004), 3–19.Google Scholar
Digital Library
- 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 Scholar
- 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 Scholar
- 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 Scholar
Cross Ref
- Gérard Berry. 1999. The Esterel v5 Language Primer. Retrieved from ftp://ftp-sop.inria.fr/meije/esterel/papers/primer.ps.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Cross Ref
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Cross Ref
- 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 Scholar
Digital Library
- 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 Scholar
Cross Ref
- 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 Scholar
Cross Ref
- 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 Scholar
- 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 Scholar
Cross Ref
- 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 Scholar
Cross Ref
- 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 Scholar
- Edward A. Lee. 2006. The problem with threads. IEEE Comput. 39, 5 (2006), 33–42.Google Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Cross Ref
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Cross Ref
- 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 Scholar
Cross Ref
- 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 Scholar
Cross Ref
- 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 Scholar
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Cross Ref
- 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 Scholar
Cross Ref
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
Index Terms
Toward Object-oriented Modeling in SCCharts
Recommendations
Model-driven engineering with domain-specific meta-modelling languages
Domain-specific modelling languages are normally defined through general-purpose meta-modelling languages like the MOF. While this is satisfactory for many model-driven engineering (MDE) projects, several researchers have identified the need for domain-...
Domain-specific textual meta-modelling languages for model driven engineering
ECMFA'12: Proceedings of the 8th European conference on Modelling Foundations and ApplicationsDomain-specific modelling languages are normally defined through general-purpose meta-modelling languages like the MOF. While this is satisfactory for many Model-Driven Engineering (MDE) projects, several researchers have identified the need for domain-...
SCCharts: sequentially constructive statecharts for safety-critical applications: HW/SW-synthesis for a conservative extension of synchronous statecharts
PLDI '14: Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and ImplementationWe present a new visual language, SCCharts, designed for specifying safety-critical reactive systems. SCCharts use a statechart notation and provide determinate concurrency based on a synchronous model of computation (MoC), without restrictions common ...






Comments