Abstract
UML state machines provide a rich language for specifying and realising reactive and timed parts of software systems. When targeting diverse back-ends for system integration, the interplay of the various language features make code generation for different implementation and verification tasks challenging. We describe the “State Machine Intermediate Language” Smile that combines constructs for capturing the main control flow of executing a UML state machine with abstract primitives for communication with the environment and handling underlying data. Smile is at the basis of the UML translation tool Hugo/RT which can generate Java and C++ code for implementations as well as Promela and timed automata specifications for model checking in Spin and UppAal. We illustrate Hugo/RT and Smile for different UML state machine features in several case studies.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Aho, A.V., Lam, M.S., Sethi, R., Ullman, J.D.: Compilers: Principles, Techniques, and Tools, 2nd edn. Addison-Wesley, Boston (2006)
André, É., Benmoussa, M.M., Choppy, C.: Translating UML state machines to coloured Petri nets using acceleo: a report. In: Pang, J., Liu, Y. (eds.) Proceedings of 3rd International Workshop Engineering Safety and Security Systems (ESSS). Electrics, Processing and Theoretical Computer Science, vol. 150, pp. 1–7 (2014). https://doi.org/10.4204/EPTCS.150.1
André, É., Liu, S., Liu, Y., Choppy, C., Sun, J., Dong, J.S.: Formalizing UML state machines for automated verification – a survey (2014). draft, https://lipn.fr/~andre/UML-SMD-survey.pdf
Besnard, V., Teodorov, C., Jouault, F., Brun, M., Dhaussy, P.: Unified verification and monitoring of executable UML specifications. Softw. Syst. Model. 20(6), 1825–1855 (2021). https://doi.org/10.1007/s10270-021-00923-9
Brambilla, M., Cabot, J., Wimmer, M.: Model-Driven Software Engineering in Practice. Synthesis Lectures on Software Engineering, Morgan & Claypool Publ. (2012). https://doi.org/10.2200/S00441ED1V01Y201208SWE001
Engels, G., Hausmann, J.H., Heckel, R., Sauer, S.: Dynamic meta modeling: a graphical approach to the operational semantics of behavioral diagrams in UML. In: Evans, A., Kent, S., Selic, B. (eds.) UML 2000. LNCS, vol. 1939, pp. 323–337. Springer, Heidelberg (2000). https://doi.org/10.1007/3-540-40011-7_23
Harel, D.: Statecharts: a visual formalism for complex systems. Sci. Comput. Program. 8(3), 231–274 (1987). https://doi.org/10.1016/0167-6423(87)90035-9
Heitmeyer, C.L., Lynch, N.A.: The generalized railroad crossing: a case study in formal verification of real-time systems. In: Proceedings of 15th IEEE Real-Time Systems Symposium (RTSS), pp. 120–131. IEEE (1994). https://doi.org/10.1109/REAL.1994.342724
Knapp, A., Merz, S., Rauh, C.: Model checking timed UML state machines and collaborations. In: Damm, W., Olderog, E.-R. (eds.) FTRTFT 2002. LNCS, vol. 2469, pp. 395–414. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-45739-9_23
Knapp, A., Wuttke, J.: Model checking of UML 2.0 interactions. In: Kühne, T. (ed.) MODELS 2006. LNCS, vol. 4364, pp. 42–51. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-69489-2_6
Kordon, F., Hugues, J., Canals, A., Dohet, A. (eds.): Embedded Systems: Analysis and Modeling with SysML, UML and AADL, Wiley-ISTE (2013)
Liu, S., et al.: A formal semantics for complete UML state machines with communications. In: Johnsen, E.B., Petre, L. (eds.) IFM 2013. LNCS, vol. 7940, pp. 331–346. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-38613-8_23
Mellor, S.J., Scott, K., Uhl, A.: MDA Distilled: Principles of Model-driven Architecture. Addison-Wesley Professional, Boston (2004)
Niewiadomski, A., Penczek, W., Szreter, M.: A new approach to model checking of UML state machines. Fund. Inform. 93(1–3), 289–303 (2009). https://doi.org/10.3233/FI-2009-0103
Object Management Group: Unified Modeling Language. Standard formal/2017-12-05, OMG (2017). https://www.omg.org/spec/UML/2.5.1
Object Management Group: Precise semantics of UML state machines. Standard formal/2019-05-01, OMG (2019). https://www.omg.org/spec/PSSM/1.0
Object Management Group: Systems Modeling Language. Specification ptc/22-08-02, OMG (2022) https://www.omg.org/spec/SysML/1.7
Okalas Ossami, D.D., Mota, J.M., Thiry, L., Perronne, J.M., Boulanger, J.L., Mariano, G.: A method to model guidelines for developing railway safety-critical systems with UML. In: Filipe, J., Shishkov, B., Helfert, M. (eds.) Proceedings of 2nd International Conference on Software and Data Technologies (ICSOFT), vol. SE, pp. 236–243. INSTICC Press (2007)
Raistrick, C., Francis, P., Wright, J., Carter, C., Wilkie, I.: Model Driven Architecture with Executable UML. Cambridge University Press, Cambridge (2004)
Rodríguez, R.J., Åke Fredlund, L., Herranz, Á.: From UML state-machine diagrams to Erlang. In: Proceedings of 13th Spanish Conference on Programming and Computer Languages (PROLE), pp. 288–299 (2013)
Selic, B.: An efficient object-oriented variation of the statecharts formalism for distributed real-time systems. In: Agnew, D., Claesen, L.J.M., Camposano, R. (eds.) Proc. 11th IFIP WG10.2 International Conference on Computer Hardware Description Languages and their Applications (CHDL), IFIP Transactions, vol. A-32, pp. 335–344. North-Holland (1993)
Selic, B., Gullekson, G., Ward, P.T.: Real-Time Object-Oriented Modeling. Wiley Professional Computing, Wiley, Hoboken (1994)
Winskel, G., Nielsen, M.: Models for concurrency. In: Abramsky, S., Gabbay, D.M., Maibaum, T.S.E. (eds.) Semantic Modelling, Handbook of Logic in Computer Science, vol. 4, pp. 1–148. Clarendon Press (1995)
Zhang, S.J., Liu, Y.: An automatic approach to model checking UML state machines. In: Proceedings of 4th International Conference on Secure Software Integration and Reliability Improvement, Companion, vol. pp. 1–7 (2010). https://doi.org/10.1109/SSIRI-C.2010.11
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2023 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this chapter
Cite this chapter
Knapp, A. (2023). An Intermediate Language-Based Approach to Implementing and Verifying Communicating UML State Machines. In: Haxthausen, A.E., Huang, Wl., Roggenbach, M. (eds) Applicable Formal Methods for Safe Industrial Products. Lecture Notes in Computer Science, vol 14165. Springer, Cham. https://doi.org/10.1007/978-3-031-40132-9_18
Download citation
DOI: https://doi.org/10.1007/978-3-031-40132-9_18
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-40131-2
Online ISBN: 978-3-031-40132-9
eBook Packages: Computer ScienceComputer Science (R0)