Skip to main content

An Intermediate Language-Based Approach to Implementing and Verifying Communicating UML State Machines

  • Chapter
  • First Online:
Applicable Formal Methods for Safe Industrial Products

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 14165))

  • 191 Accesses

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 59.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 74.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    https://bitbucket.org/knappale/hugo-rt/.

  2. 2.

    https://spinroot.com.

  3. 3.

    https://uppaal.org.

  4. 4.

    https://boost.org/doc/libs/release/libs/msm.

  5. 5.

    https://sourceforge.net/projects/qpc/.

  6. 6.

    https://umple.org.

  7. 7.

    https://gemoc.org.

  8. 8.

    https://arduino.cc.

References

  1. Aho, A.V., Lam, M.S., Sethi, R., Ullman, J.D.: Compilers: Principles, Techniques, and Tools, 2nd edn. Addison-Wesley, Boston (2006)

    Google Scholar 

  2. 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

  3. 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

  4. 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

    Article  Google Scholar 

  5. 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

  6. 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

    Chapter  Google Scholar 

  7. 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

    Article  MathSciNet  MATH  Google Scholar 

  8. 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

  9. 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

    Chapter  Google Scholar 

  10. 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

    Chapter  Google Scholar 

  11. Kordon, F., Hugues, J., Canals, A., Dohet, A. (eds.): Embedded Systems: Analysis and Modeling with SysML, UML and AADL, Wiley-ISTE (2013)

    Google Scholar 

  12. 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

    Chapter  Google Scholar 

  13. Mellor, S.J., Scott, K., Uhl, A.: MDA Distilled: Principles of Model-driven Architecture. Addison-Wesley Professional, Boston (2004)

    Google Scholar 

  14. 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

    Article  MathSciNet  MATH  Google Scholar 

  15. Object Management Group: Unified Modeling Language. Standard formal/2017-12-05, OMG (2017). https://www.omg.org/spec/UML/2.5.1

  16. Object Management Group: Precise semantics of UML state machines. Standard formal/2019-05-01, OMG (2019). https://www.omg.org/spec/PSSM/1.0

  17. Object Management Group: Systems Modeling Language. Specification ptc/22-08-02, OMG (2022) https://www.omg.org/spec/SysML/1.7

  18. 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)

    Google Scholar 

  19. Raistrick, C., Francis, P., Wright, J., Carter, C., Wilkie, I.: Model Driven Architecture with Executable UML. Cambridge University Press, Cambridge (2004)

    Google Scholar 

  20. 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)

    Google Scholar 

  21. 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)

    Google Scholar 

  22. Selic, B., Gullekson, G., Ward, P.T.: Real-Time Object-Oriented Modeling. Wiley Professional Computing, Wiley, Hoboken (1994)

    MATH  Google Scholar 

  23. 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)

    Google Scholar 

  24. 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

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Alexander Knapp .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2023 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics