skip to main content
research-article

Fusing statecharts and java

Published:21 March 2013Publication History
Skip Abstract Section

Abstract

This article presents FUSE, an approach for modeling and implementing embedded software components which starts from a main-stream programming language and brings some of the key concepts of Statecharts as first-class elements within this language. Our approach provides a unified programming environment which not only preserves some of the advantages of Statecharts' formal foundation but also directly supports features of object-orientation and strong typing. By specifying Statecharts directly in FUSE we eliminate the out-of-synch between the model and the generated code and we allow the tuning and debugging to be done within the same programming model. This article describes the main language constructs of FUSE and presents its semantics by translation into the Java programming language. We conclude by discussing extensions to the base language which enable the efficient static checking of program properties.

References

  1. Ali, J. and Tanaka, J. 1999. Converting Statecharts into Java code. In Proceedings of the Fourth World Conference on Integrated Design and Process Technology (IDPT'99).Google ScholarGoogle Scholar
  2. Balarin, F., Chiodo, M., Giusto, P., Hsieh, H., Jurecska, A., Lavagno, L., Sangiovanni-Vincentelli, A. L., Sentovich, E., and Suzuki, K. 1999. Synthesis of software programs for embedded control applications. IEEE Trans. CAD Integrat. Circuits Syst. 18, 6, 834--849. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Basu, A., Bozga, M., and Sifakis, J. 2006. Modeling heterogenous real-time components in BIP. In Proceedings of the 4th IEEE International Conference on Software Engineering and Formal Methods (SEFM'06). IEEE, 3--12. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Beneviste, A., Caillaud, B., and Guernic, P. L. 1999. From synchrony to asynchrony. In Proceedings of the 10th International Conference in Concurrency Theory (CONCUR'99). Lecture Notes in Computer Science, vol. 1664, Springer, 162--177. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Berry, G. 2000. The Foundations of Esterel. MIT Press.Google ScholarGoogle Scholar
  6. Björklund, D., Lilius, J., and Porres, I. 2001. Towards efficient code synthesis from statecharts. In Proceedings of Practical UML-Based Rigorous Development Methods (pUML'01). Lecture Notes in Informatics, vol. 7, German Informatics Society, 29--41. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Boussinot, F. 1991. Reactive C: an extension of C to program reactive systems. Soft. Practice Experi. 21, 4, 401--428. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Boussinot, F. 2006. FairThreads: mixing cooperative and preemptive threads in C. Concurrency Computa. Practice Experi. 18, 5, 445--469. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Buck, J., Ha, S., Lee, E. A., and Messerschmitt, D. 1994. Ptolemy: A framework for simulating and prototyping heterogeneous systems. Intl J. Comput. Simul. 4, 2, 155--182.Google ScholarGoogle Scholar
  10. Chambers, C. 1993. Predicate classes. In Proceedings of the 7th European Conference on Object-Oriented Programming (ECOOP'03). Lecture Notes in Computer Science, vol. 707, Springer, 268--296. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Chambers, C. 1997. The Cecil language specification and rationale, Version 2.1. Tech. rep., CSE, University of Washington. http://www.cs.washington.edu/research/projects/cecil/pubs/cecil-spec.html.Google ScholarGoogle Scholar
  12. Cheong, E., Liebman, J., Liu, J., and Zhao, F. 2003. TinyGALS: a programming model for event-driven embedded systems,. In Proceedings of the ACM Symposium on Applied Computing (SAC'03). ACM, 698--704. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Cheong, E. and Liu, J. 2005. galsC: a language for event-driven embedded systems. In Proceedings of the Design, Automation and Test in Europe Conference (DATE'05). IEEE Computer Society, 1050--1055. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Chow, T. 1978. Testing software design modeled by finite-state machines. Trans. Softw. Eng. IEEE, 178--187. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Edwards, S. A. and Zeng, J. 2007. Code generation in the Columbia Esterel compiler. In EURASIP J. Embed. Syst.Google ScholarGoogle ScholarCross RefCross Ref
  16. Ernst, M. D., Kaplan, C. S., and Chambers, C. 1998. Predicate dispatching: a unified theory of dispatch. In Proceedings of the 12th European Conference on Object-Oriented Programming (ECOOP'98). Lecture Notes in Computer Science, vol. 1445, Springer, 186--211. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Eshuis, R. 2009. Reconciling Statechart semantics. Sci. Comput. Program. 74, 3, 65--99. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Gamma, E., Helm, R., Johnson, R., and Vlissides, J. 1995. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Gay, D., Levis, P., von Behren, J. R., Welsh, M., Brewer, E. A., and Culler, D. E. 2003. The nesC language: a holistic approach to networked embedded systems. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'03). ACM, 1--11. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Gery, E., Harel, D., and Palachi, E. 2002. Rhapsody: a complete life-cycle model-based development system. In Proceedings of the 3rd International Conference on Integrated Formal Methods (IFM'02). Lecture Notes in Computer Science, vol. 2335. Springer, 1--10. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Gössler, G. and Sangiovanni-Vincentelli, A. 2002. Compositional modeling in Metropolis. In Proceedings of the 2nd International Conference on Embedded Software (EMSOFT'02). Lecture Notes in Computer Science, vol. 2491. Springer, 93--107. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Gruian, F., Roop, P. S., Salcic, Z. A., and Radojevic, I. 2006. The SystemJ approach to system-level design. In Proceedings of the 4th International Conference on Formal Methods and Models for Co-Design (MEMOCODE'06). IEEE, 149--158. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Harel, D. 1987. Statecharts: a visual formalism for complex systems. Sci. Comput. Program. 8, 3, 231--274. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Knapp, A. and Merz, S. 2002. Model checking and code generation for UML state machines and collaborations. In Proceedings of the 7th International Symposium on Formal Techniques in Real-Time and Fault-Tolerant Systems (FTRTFT'02). Lecture Notes in Computer Science, vol. 2469, Springer, 395--416. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Köhler, H. J., Nickel, U., Niere, J., and Zündorf, A. 2000. Integrating UML diagrams for production control systems. In Proceedings of the 22nd International Conference on on Software Engineering (ICSE'00). ACM, 241--251. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Lavagno, L. and Sentovich, E. 1999. ECL: A specification environment for system-level design. In Proceedings of the 36th Conference on Design Automation (DAC'99). ACM, 511--516. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Lee, E. A. and Zheng, H. 2007. Leveraging synchronous language principles for heterogeneous modeling and design of embedded systems. In Proceedings of the 7th ACM & IEEE International Conference on Embedded Software (EMSOFT'07). ACM, 114--123. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Liskov, B. and Wing, J. M. 1994. A behavioral notion of subtyping. ACM Trans. Program. Lang. Syst. 16. ACM, 1811--1841. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Mikk, E., Lakhnech, Y., Siegel, M., and Holzmann, G. J. 1998. Implementing statecharts in Promela/Spin. In Proceedings of the Workshop of Industrial-Strength Formal Spec. Techniques (WIFT'98). IEEE, 90--101. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Millstein, T. D. 2004. Practical predicate dispatch. In Proceedings of the 19th Annual ACM SIGPLAN Conference. on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'04). ACM, 345--364. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Niaz, I. A. and Tanaka, J. 2004. Mapping UML Statecharts to Java code. In Proceedings of the IASTED International Conference on Software Engineering. IASTED Acta Press, 111--116.Google ScholarGoogle Scholar
  32. Pnueli, A. and Shalev, M. 1991. What is in a step: on the semantics of Statechars. In Proceedings of the International Conference on Theoretical Aspects of Computer Software (TACS'91). Lecture Notes in Computer Science, vol. 526, Springer, 244--264. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Ran, A. S. 1994. Modeling states as classes. In Proceedings of the Technology of Object-Oriented Langs. and Systems Conference Prentice-Hall.Google ScholarGoogle Scholar
  34. Roop, P. S., Andalam, S., von Hanxleden, R., Yuan, S., and Traulsen, C. 2009. Tight WCRT analysis of synchronous C programs. In Proceedings of the International Conference on Compilers, Architecture, and Synthesis for Embedded Systems (CASES'09). ACM, 205--214. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Samek, M. 2002. Practical Statecharts in C/C++. CMP Books.Google ScholarGoogle Scholar
  36. Sane, A. and Campbell, R. H. 1995. Object-oriented state machines: subclassing, composition, delegation, and genericity. In Proceedings of the 10th Annual Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA'95). ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Sekerinski, E. and Zurob, R. 2001. iState: a Statechart translator. In Proceedings of the 4th International Conference on the Unified Modeling Language (UML'01). Lecture Notes in Computer Science, vol. 2185. Springer, 376--390. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Sreedhar, V. C. and Marinescu, M.-C. 2005. From Statecharts to ESP: programming with events, states and predicates for embedded systems. In Proceedings of the 5th International Conference on Embedded Software (EMSOFT'05). ACM, 48--51. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Tardieu, O. and Edwards, S. A. 2006. Scheduling-independent threads and exceptions in SHIM. In Proceedings of the 6th ACM International Conference on Embedded Software (EMSOFT'06). ACM, 142--151. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Tomura, T., Kanai, S., Uehiro, K., and Yamamoto, S. 2001. Object-oriented design pattern approach for modelling and simulating open distributed control system. In Proceedings of the IEEE International Conference on Robotics and Automation (ICRA'01). IEEE, 211--216.Google ScholarGoogle Scholar
  41. UML 2011. UML 2.0. http://www.uml.org.Google ScholarGoogle Scholar
  42. von der Beeck, M. 1994. A comparison of Statechart variants. In Proceedings of the 3rd International Symposium on Formal Techniques in Real-Time and Fault-Tolerant Systems (FTRTFT'94). LNCS Series, vol. 863. Springer, 128--148. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. von Hanxleden, R. 2009. SyncCharts in C -- a proposal for light-weight, deterministic concurrency. In Proceedings of the ACM International Conference on Embedded Software (EMSOFT'09). ACM, 225--234. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Fusing statecharts and java

              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

              • Published in

                cover image ACM Transactions on Embedded Computing Systems
                ACM Transactions on Embedded Computing Systems  Volume 12, Issue 1s
                Special section on ESTIMedia'12, LCTES'11, rigorous embedded systems design, and multiprocessor system-on-chip for cyber-physical systems
                March 2013
                701 pages
                ISSN:1539-9087
                EISSN:1558-3465
                DOI:10.1145/2435227
                Issue’s Table of Contents

                Copyright © 2013 ACM

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 21 March 2013
                • Accepted: 1 March 2012
                • Revised: 1 October 2011
                • Received: 1 July 2011
                Published in tecs Volume 12, Issue 1s

                Permissions

                Request permissions about this article.

                Request Permissions

                Check for updates

                Qualifiers

                • research-article
                • Research
                • Refereed
              • Article Metrics

                • Downloads (Last 12 months)1
                • Downloads (Last 6 weeks)1

                Other Metrics

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader
              About Cookies On This Site

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

              Learn more

              Got it!