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.
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Berry, G. 2000. The Foundations of Esterel. MIT Press.Google Scholar
- 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 Scholar
Digital Library
- Boussinot, F. 1991. Reactive C: an extension of C to program reactive systems. Soft. Practice Experi. 21, 4, 401--428. Google Scholar
Digital Library
- Boussinot, F. 2006. FairThreads: mixing cooperative and preemptive threads in C. Concurrency Computa. Practice Experi. 18, 5, 445--469. Google Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Chow, T. 1978. Testing software design modeled by finite-state machines. Trans. Softw. Eng. IEEE, 178--187. Google Scholar
Digital Library
- Edwards, S. A. and Zeng, J. 2007. Code generation in the Columbia Esterel compiler. In EURASIP J. Embed. Syst.Google Scholar
Cross Ref
- 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 Scholar
Digital Library
- Eshuis, R. 2009. Reconciling Statechart semantics. Sci. Comput. Program. 74, 3, 65--99. Google Scholar
Digital Library
- Gamma, E., Helm, R., Johnson, R., and Vlissides, J. 1995. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Harel, D. 1987. Statecharts: a visual formalism for complex systems. Sci. Comput. Program. 8, 3, 231--274. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Liskov, B. and Wing, J. M. 1994. A behavioral notion of subtyping. ACM Trans. Program. Lang. Syst. 16. ACM, 1811--1841. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- Ran, A. S. 1994. Modeling states as classes. In Proceedings of the Technology of Object-Oriented Langs. and Systems Conference Prentice-Hall.Google Scholar
- 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 Scholar
Digital Library
- Samek, M. 2002. Practical Statecharts in C/C++. CMP Books.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- UML 2011. UML 2.0. http://www.uml.org.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
Index Terms
Fusing statecharts and java
Recommendations
Leveraging model driven engineering in software product line architectures
SPLC '15: Proceedings of the 19th International Conference on Software Product LineThe process of Developing Software Product Line Architectures can be a complex task. However, the use of Model Driven Engineering (MDE) techniques can facilitate the development of SPLAs by introducing Domain Specific Languages, Graphical Editors, and ...
Leveraging model driven engineering in software product line architectures
SPLC '14: Proceedings of the 18th International Software Product Line Conference - Volume 1The process of Developing Software Product Line Architectures can be a complex task. However, the use of Model Driven Engineering (MDE) techniques can facilitate the development of SPLAs by introducing Domain Specific Languages, Graphical Editors, and ...
From UML sequence diagrams and statecharts to analysable petri net models
WOSP '02: Proceedings of the 3rd international workshop on Software and performanceIn this paper we study the use of Sequence Diagrams and Statecharts of the Unified Modeling Language (UML) for the validation and the performance evaluation of systems. We assume that the system is specified as a set of Statecharts and that Sequence ...






Comments