Skip to main content
Log in

Code generation for distributed embedded systems with VDM-RT

  • Published:
Design Automation for Embedded Systems Aims and scope Submit manuscript

Abstract

Developing embedded systems that are distributed is a challenging endeavour, since they need to ensure system-wide properties as well as existence of a large number of possible candidate system architectures. Various model based techniques advocate raising the abstraction level in order to support a holistic view of such a distributed embedded system. Furthermore, automatically generating implementation specific code from models can support realisation efforts including avoiding inconsistencies between model and code. In this paper we present how such efforts can be aided for a distributed embedded system modelled in the real time dialect of the Vienna Development Method, VDM-RT, by means of automatic code generation. The contributions in this paper are (1) code generation capabilities for distributed embedded system modelled in VDM-RT; (2) demonstration of its applicability for an industrial case study involving a distributed interlocking system from the railways domain. Additionally, we discuss the balance between code generation for a model, which assumes idealised communication (no messages lost), and manually produced code, e.g. in the industrial case study legacy low-level code ensures fault-tolerant communication in the final implementation.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10

Similar content being viewed by others

Notes

  1. Experiments with describing dynamically reconfigured distributed systems have also be carried out [34].

References

  1. Almohammad A (2013) Rigorous code generation for distributed real-time embedded systems. Ph.D. thesis, Northumbria University

  2. Anand M, Kim J, Lee I (2005) Code generation from hybrid systems models for distributed embedded systems. In: Eighth IEEE international symposium on object-oriented real-time distributed computing, ISORC 2005. IEEE, pp 166–173

  3. Bambagini M, Natale MD (2012) A code generation framework for distributed real-time embedded systems. In: IEEE 17th conference on emerging technologies & factory automation (ETFA). IEEE, pp 1–10

  4. Bandur V, Tran-Jørgensen P, Hasanagic M, Lausdahl K (2017) Code-generating VDM for embedded devices. In: The 15th overture workshop. Newcastle

  5. Blochwitz T (2014) Functional mock-up interface for model exchange and co-simulation. https://www.fmi-standard.org/downloads

  6. Bowman H, Derrick J (2011) Formal methods for distributed processing: a survey of object-oriented approaches. Cambridge University Press, New York

    MATH  Google Scholar 

  7. Chiozzi G, Andolfato L, Karban R, Tejeda A (2011) A UML profile for code generation of component based distributed systems. In: Proceedings of the 13th international conference on accelerator and large experimental physics control systems

  8. Ciccozzi F, Cicchetti A, Sjödin M (2012) Full code generation from UML models for complex embedded systems. In: Second international software technology exchange workshop (STEW) November 28th, Kista, 2012

  9. Clarke EM, Wing JM (1996) Formal methods: state of the art and future directions. ACM Comput Surv 28(4):626–643

    Article  Google Scholar 

  10. Coulouris G, Dollimore J, Kindberg T, Blair G (2007) Distributed systems: concept and design. Addison-Wesley, Boston

    MATH  Google Scholar 

  11. Eidson JC, Lee EA, Matic S, Seshia SA, Zou J (2012) Distributed real-time software for cyber-physical systems. Proc IEEE 100(1):45–59

    Article  Google Scholar 

  12. Fabbri T, Verhoef M, Bandur V, Perrotin M, Tsiodras T, Larsen PG (2016) Towards integration of overture into TASTE. In: Larsen PG, Plat N, Battle N (eds) The 14th overture workshop: towards analytical tool chains. Aarhus University, Department of Engineering, Cyprus, ECE-TR-28, pp 94–107

  13. Fan YH, Wu JO, Wang SF (2012) Software synthesis of middleware for heterogeneous embedded systems. In: 2nd international conference on consumer electronics, communications and networks (CECNet), 2012. IEEE, pp 2084–2087

  14. Fich F, Ruppert E (2004) Hundreds of impossibility results for distributed computing. Distrib Comput 16:121–163

    Article  Google Scholar 

  15. Fitzgerald J, Larsen PG, Mukherjee P, Plat N, Verhoef M (2005) Validated designs for object-oriented systems. Springer, New York. https://doi.org/10.1007/b138800

    Book  MATH  Google Scholar 

  16. Fredj M, Radermacher A, Gerard S, Terrier F (2010) eC3M: optimized model-based code generation for embedded distributed software systems. In: 10th annual international conference on new technologies of distributed systems (NOTERE), 2010. IEEE, pp 279–284

  17. Gide L, Koljonen T, Lohstroh J, ten Berg A, Foster A (2016) Artemis strategic reseach agenda. Artemis. https://www.ecsel-austria.net/newsfull/items/artemis-strategic-research-agenda-2016-sra-31.html

  18. Gomes C, Thule C, Broman D, Larsen PG, Vangheluwe H (2018) Co-simulation: a survey. ACM Comput Surv 51(3):49:1–49:33

    Article  Google Scholar 

  19. Hasanagic M, Larsen PG, Tran-Jørgensen PWV (2015) Generating Java RMI for the distributed aspects of VDM-RT models. In: Proceedings of the 13th overture workshop. Center for Global Research in Advanced Software Science and Engineering, National Institute of Informatics, Chiyoda-Ku, pp 75–89. GRACE-TR-2015-06. URL http://grace-center.jp/wp-content/uploads/2012/05/13thOverture-Proceedings.pdf

  20. Hasanagić M, Tran-Jørgensen PW, Nilsson RS, Larsen PG (2019) Realization of distributed system models using code generation extensions. Softw Pract Exp 49(3):478–497

    Article  Google Scholar 

  21. Horstmann M, Kirtland M (1997) DCOM architecture. Dcom technical article, Microsoft Corporation, Redmond. http://msdn2.microsoft.com/en-us/library/ms809311(d=printer).aspx

  22. Isasa JAE, Jørgensen PW, Ballegaard C (2014) Modelling energy consumption in embedded systems with VDM-RT. In: Proceedings of the 4th international ABZ conference

  23. Isasa JAE, Larsen PG (2013) Modelling different CPU power states in VDM-RT. In: Proceedings of the 11th overture workshop 2013. Aarhus University

  24. Kang DI, Gerber R, Golubchik L, Hollingsworth JK, Saksena M (1999) A software synthesis tool for distributed embedded system design. In: ACM SIGPLAN Notices, vol 34. ACM, pp 87–95

  25. Larsen PG, Fitzgerald J, Wolff S (2009) Methods for the development of distributed real-time embedded systems using VDM. Int J Softw Inf 3(2–3):305–341

    Google Scholar 

  26. Larsen PG, Fitzgerald J, Woodcock J, Fritzson P, Brauer J, Kleijn C, Lecomte T, Pfeil M, Green O, Basagiannis S, Sadovykh A (2016) Integrated tool chain for model-based design of cyber-physical systems: the INTO-CPS project. In: 2016 2nd international workshop on modelling, analysis, and control of complex CPS (CPS Data). IEEE, Vienna. http://ieeexplore.ieee.org/document/7496424/

  27. Larsen PG, Fitzgerald J, Woodcock J, Gamble C, Payne R, Pierce K (2017) Features of integrated model-based co-modelling and co-simulation technology. In: Bernardeschi C, Masci P, Larsen P (eds) 1st Workshop on formal co-simulation of cyber-physical systems. LNCS, Trento

  28. Larsen PG, Hansen BS, Brunn H, Plat N, Toetenel H, Andrews DJ, Dawes J, Parkin G, et al (1996) Information technology—programming languages, their environments and system software interfaces—Vienna development method—specification language—part 1: base language

  29. Larsen PG, Lausdahl K, Battle N, Fitzgerald J, Wolff S, Sahara S, Verhoef M, Tran-Jørgensen PWV, Oda T (2013) VDM-10 language manual. Technical report TR-001, the overture initiative. www.overturetool.org

  30. Lausdahl K, Larsen PG, Battle N (2011) A deterministic interpreter simulating a distributed real time system using VDM. In: Qin S, Qiu Z (eds) Proceedings of the 13th international conference on Formal methods and software engineering, Lecture notes in computer science, vol 6991. Springer, Berlin, pp 179–194. https://doi.org/10.1007/978-3-642-24559-6_14

    Chapter  Google Scholar 

  31. Lednicki L, Carlson J (2014) A framework for generation of inter-node communication in component-based distributed embedded systems. In: 2014 IEEE Emerging technology and factory automation (ETFA). IEEE, pp 1–8

  32. Mamais G, Tsiodras T, Lesens D, Perrotin M (2012) An ASN. 1 compiler for embedded/space systems. Embedded real time software and systems ERTS. https://www.researchgate.net/publication/229422184_An_ASN1_compiler_for_embeddedspace_systems

  33. Mukherjee P, Bousquet F, Delabre J, Paynter S, Larsen PG (2000) Exploring timing properties using VDM++ on an industrial application. In: Bicarregui JC, Fitzgerald JS (eds) Proceedings of the second VDM workshop. www.vdmportal.org

  34. Nielsen CB (2010) Dynamic reconfiguration of distributed systems in VDM-RT. Master’s thesis, Aarhus University

  35. OMG: The common object request broker: core specification (2002)

  36. Ortega RB, Borriello G (1998) Communication synthesis for distributed embedded systems. In: 1998 IEEE/ACM international conference on computer-aided design, ICCAD 98, digest of technical papers. IEEE, pp 437–444

  37. Perrotin M, Conquet E, Delange J, Schiele A, Tsiodras T (2011) TASTE: a real-time software engineering tool-chain overview, status, and future. In: SDL forum. Springer, pp 26–37. https://www.semanticscholar.org/paper/TASTE%3A-A-Real-Time-Software-Engineering-Tool-Chain-Perrotin-Conquet/7208c84f1134beb37ff95b5ba9c86ea4860d49ae

  38. Riedl M, Diedrich C, Naumann F, Simon R (2004) An object based approach for distributed automation. In: 7th AFRICON Conference in Africa, AFRICON, 2004, vol 2. IEEE, pp 1253–1260

  39. Riedl M, Zipper H, Bangemann T, Meier M (2011) Distributed automation system supports process monitoring and control. In: 2011 IEEE international symposium on, industrial electronics (ISIE). IEEE, pp1711–1715

  40. Riley GF, Henderson TR (2010) The ns-3 network simulator. Springer, Berlin, pp 15–34

    Google Scholar 

  41. Satyanarayanan M (2001) Pervasive computing: vision and challenges. IEEE Pers Commun 8(4):10–17

    Article  Google Scholar 

  42. Schreiner D, Schordan M, Goschka KM (2009) Component based middleware-synthesis for AUTOSAR basic software. In: IEEE international symposium on object/component/service-oriented real-time distributed computing, 2009. ISORC’09. IEEE, pp 236–243

  43. Singh D, Kaiser WJ (2010) The atom leap platform for energy-efficient embedded computing. https://escholarship.org/uc/item/88b146bk

  44. Sun: Java remote method invocation specification (2000)

  45. Thule C, Lausdahl K, Gomes C, Meisl G, Larsen PG (2019) Maestro: the INTO-CPS co-simulation framework. Simul Model Pract Theory 92:45–61. https://doi.org/10.1016/j.simpat.2018.12.005

    Article  Google Scholar 

  46. Titzer BL (2006) Virgil: objects on the head of a pin. ACM SIGPLAN Not 41(10):191–208

    Article  Google Scholar 

  47. Verhoef M (2009) Modeling and validating distributed embedded real-time control systems. Ph.D. thesis, Radboud University Nijmegen

  48. Verhoef M, Larsen PG, Hooman J (2006) Modeling and validating distributed embedded real-time systems with VDM++. In: Misra J, Nipkow T, Sekerinski E (eds) FM 2006: formal methods, lecture notes in computer science 4085. Springer, pp 147–162. https://doi.org/10.1007/11813040_11

    Chapter  Google Scholar 

  49. Wandeler E, Thiele L, Verhoef M, Lieverse P (2006) System architecture evaluation using modular performance analysis: a case study. Int J Softw Tools Technol Transf 8(6):649–667

    Article  Google Scholar 

  50. Woodcock J, Larsen PG, Bicarregui J, Fitzgerald J (2009) Formal methods: practice and experience. ACM Comput Surv 41(4):1–36. https://doi.org/10.1145/1592434.1592436

    Article  Google Scholar 

Download references

Acknowledgements

We thank the anonymous reviewers for their constructive comments, which helped us to improve the manuscript. We would also like to thank Nick Battle for valuable feedback on the content of this paper. The work presented here is partially supported by the INTO-CPS project funded by the European Commission’s Horizon 2020 programme under Grant agreement number 664047. Tommaso Fabbri would also like to thank the European Space Agency for providing financial support for the ESA Summer of Code in Space enabled the ASN.1 work presented here.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Miran Hasanagić.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Hasanagić, M., Fabbri, T., Larsen, P.G. et al. Code generation for distributed embedded systems with VDM-RT. Des Autom Embed Syst 23, 153–177 (2019). https://doi.org/10.1007/s10617-019-09227-0

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10617-019-09227-0

Keywords

Navigation