Skip to main content

A Workflow for Automatic Code Generation of Safety Mechanisms via Model-Driven Development

  • Conference paper
  • First Online:
  • 779 Accesses

Part of the book series: Communications in Computer and Information Science ((CCIS,volume 1375))

Abstract

Due to the increasing size and complexity of embedded systems, software quality is gaining importance in such systems. This is especially true in safety-critical systems, where failure may lead to serious harm for humans or the environment. Model-Driven Development (MDD) techniques, such as model representation with semi-formal design languages and automatic code generation from such models may increase software quality and developer productivity. This paper introduces a workflow for automatically generating safety mechanisms from model representations. In summary, safety mechanisms are specified in class diagrams of the Unified Modeling Language (UML) via stereotypes alongside the remainder of the application. In a subsequent step, these model representations are used to perform model-to-model transformations. The resulting model contains all the information required to automatically generate source code for the application, including the specified safety mechanisms. Then, common MDD tools may be used to generate this productive source code. We demonstrate the application of our workflow by applying it to the automatic code generation of timing constraint monitoring at runtime.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.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

Learn about institutional subscriptions

Notes

  1. 1.

    Motor Industry Software Reliability Association.

References

  1. Asadi, N., Saadatmand, M., Sjödin, M.: Run-time monitoring of timing constraints: a survey of methods and tools. In: The Eighth International Conference on Software Engineering Advances (ICSEA) (2013)

    Google Scholar 

  2. AUTOSAR: Specification of timing extensions (2017). https://www.autosar.org/fileadmin/user_upload/standards/classic/4-3/AUTOSAR_TPS_TimingExtensions.pdf. Accessed 20 Aug 2020

  3. Beckers, K., Côté, I., Frese, T., Hatebur, D., Heisel, M.: Systematic derivation of functional safety requirements for automotive systems. In: Bondavalli, A., Di Giandomenico, F. (eds.) SAFECOMP 2014. LNCS, vol. 8666, pp. 65–80. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-10506-2_5

    Chapter  Google Scholar 

  4. Bernardi, S., Merseguer, J., Petriu, D.: A dependability profile within MARTE. Softw. Syst. Model. 10, 313–336 (2011). https://doi.org/10.1007/s10270-009-0128-1

  5. Borchert, C., Schirmeier, H., Spinczyk, O.: Generative software-based memory error detection and correction for operating system data structures. In: Proceedings of the 2013 43rd Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN), pp. 1–12. IEEE Computer Society, Washington, DC (2013). https://doi.org/10.1109/DSN.2013.6575308

  6. Chen, D., et al.: JVM susceptibility to memory errors. In: Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium, vol. 1. USENIX Association, Berkeley (2001)

    Google Scholar 

  7. Das, N., Ganesan, S., Jweda, L., Bagherzadeh, M., Hili, N., Dingel, J.: Supporting the model-driven development of real-time embedded systems with run-time monitoring and animation via highly customizable code generation. In: Proceedings of the ACM/IEEE 19th International Conference on Model Driven Engineering Languages and Systems, MODELS 2016, pp. 36–43. Association for Computing Machinery, New York (2016). https://doi.org/10.1145/2976767.2976781

  8. Elektrobit. EB tresos Safety (2020). https://www.elektrobit.com/products/ecu/eb-tresos/functional-safety. Accessed 20 Aug 2020

  9. Enterprise Architect (2020). https://sparxsystems.com/products/ea/index.html. Accessed 20 Aug 2020

  10. Fernandez, G., et al.: Seeking time-composable partitions of tasks for COTS multicore processors. In: 2015 IEEE 18th International Symposium on Real-Time Distributed Computing, pp. 208–217 (2015). https://doi.org/10.1109/ISORC.2015.43

  11. Fernandez, G., Jalle, J., Abella, J., Quinones, E., Vardanega, T., Cazorla, F.J.: Computing safe contention bounds for multicore resources with round-robin and FIFO arbitration. IEEE Trans. Comput. (2016). https://doi.org/10.5281/zenodo.165812

    Article  MATH  Google Scholar 

  12. Girbal, S., Jean, X., Le Rhun, J., Pérez, D.G., Gatti, M.: Deterministic platform software for hard real-time systems using multi-core COTS. In: 2015 IEEE/AIAA 34th Digital Avionics Systems Conference (DASC) (2015). https://doi.org/10.1109/DASC.2015.7311481

  13. Harrand, N., Fleurey, F., Morin, B., Husa, K.E.: ThingML: a language and code generation framework for heterogeneous targets. In: Proceedings of the ACM/IEEE 19th International Conference on Model Driven Engineering Languages and Systems, MODELS 2016, pp. 125–135. Association for Computing Machinery, New York (2016). https://doi.org/10.1145/2976767.2976812

  14. Hatcliff, J., Wassyng, A., Kelly, T., Comar, C., Jones, P.: Certifiably safe software-dependent systems: Challenges and directions. In: Proceedings of the Conference on The Future of Software Engineering, FOSE 2014, pp. 182–200. ACM, New York (2014). https://doi.org/10.1145/2593882.2593895

  15. Heimdahl, M.P.E.: Safety and software intensive systems: challenges old and new. In: 2007 Future of Software Engineering, FOSE 2007, pp. 137–152. IEEE Computer Society, Washington (2007). https://doi.org/10.1109/FOSE.2007.18

  16. Huning, L., Iyenghar, P., Pulvermueller, E.: UML specification and transformation of safety features for memory protection. In: Proceedings of the 14th International Conference on Evaluation of Novel Approaches to Software Engineering, pp. 281–288. INSTICC, SciTePress, Heraklion (2019)

    Google Scholar 

  17. Huning, L., Iyenghar, P., Pulvermueller, E.: A UML profile for automatic code generation of optimistic graceful degradation features at the application level. In: Proceedings of the 8th International Conference on Model-Driven Engineering and Software Development, MODELSWARD, vol. 1, pp. 336–343. INSTICC, SciTePress (2020). https://doi.org/10.5220/0008949803360343

  18. Huning, L., Iyenghar, P., Pulvermueller, E.: A workflow for automatically generating application-level safety mechanisms from UML stereotype model representations. In: Proceedings of the 15th International Conference on Evaluation of Novel Approaches to Software Engineering, ENASE, vol. 1, pp. 216–228. INSTICC, SciTePress (2020). https://doi.org/10.5220/0009517302160228

  19. IEC 61508 Edition 2.0. Functional safety for electrical/electronic/programmable electronic safety-related systems (2010)

    Google Scholar 

  20. ISO 26262 Road vehicles - Functional safety. Second Edition (2018)

    Google Scholar 

  21. Iyenghar, P., Pulvermueller, E.: A model-driven workflow for energy-aware scheduling analysis of IoT-enabled use cases. IEEE Internet Things J. 5(6), 4914–4925 (2018)

    Article  Google Scholar 

  22. Iyenghar, P., Huning, L., Pulvermueller, E.: Automated end-to-end timing analysis of autosar-based causal event chains. In: Proceedings of the 15th International Conference on Evaluation of Novel Approaches to Software Engineering, ENASE, vol. 1, pp. 477–489. INSTICC, SciTePress (2020). https://doi.org/10.5220/0009512904770489

  23. Iyenghar., P., Huning., L., Pulvermueller., E.: Early synthesis of timing models in autosar-based automotive embedded software systems. In: Proceedings of the 8th International Conference on Model-Driven Engineering and Software Development, MODELSWARD, vol. 1, pp. 26–38. INSTICC, SciTePress (2020). https://doi.org/10.5220/0009095000260038

  24. MISRA C++2008 Guidelines for the use of the C++ language in critical systems (2008)

    Google Scholar 

  25. Moestl, M., Thiele, D., Ernst, R.: Invited: towards fail-operational ethernet based in-vehicle networks. In: 2016 53nd ACM/EDAC/IEEE Design Automation Conference (DAC), pp. 1–6 (2016). https://doi.org/10.1145/2897937.2905021

  26. Mok, A.K., Liu, G.: Efficient run-time monitoring of timing constraints. In: Proceedings Third IEEE Real-Time Technology and Applications Symposium, pp. 252–262 (1997)

    Google Scholar 

  27. A UML Profile for MARTE: Modeling and Analysis of Real-Time Embedded Systems. Technical report, Object Management Group (2008)

    Google Scholar 

  28. The Eclipse Foundation. Eclipse Papyrus Modeling Environment (2020). https://www.eclipse.org/papyrus. Accessed 20 Aug 2020

  29. Pattabiraman, K., Grover, V., Zorn, B.G.: Samurai: protecting critical data in unsafe languages. In: Proceedings of the 3rd ACM SIGOPS/EuroSys European Conference on Computer Systems 2008, pp. 219–232. ACM, New York (2008). https://doi.org/10.1145/1352592.1352616

  30. Penha, D., Weiss, G., Stante, A.: Pattern-based approach for designing fail-operational safety-critical embedded systems. In: 2015 IEEE 13th International Conference on Embedded and Ubiquitous Computing, pp. 52–59 (2015). https://doi.org/10.1109/EUC.2015.14

  31. Vector. PrEEVision (2020). https://www.vector.com/int/en/products/products-a-z/software/preevision/. Accessed 20 Aug 2020

  32. IBM. Rational Rhapsody Developer. https://www.ibm.com/us-en/marketplace/uml-tools. Accessed 20 Aug 2020

  33. Architecture models and patterns for safety and security. Deliverable D2.2 from EU-research project SAFURE (2017). https://safure.eu/publications-deliverables. Accessed 3 Feb 2020

  34. Saridakis, T.: Design patterns for graceful degradation. In: Noble, J., Johnson, R. (eds.) Transactions on Pattern Languages of Programming I. LNCS, vol. 5770, pp. 67–93. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-10832-7_3

    Chapter  Google Scholar 

  35. Storey, N.: Safety-Critical Computer System. Addison-Wesley, Harlow (1996)

    Google Scholar 

  36. Tanzi, T.J., Textoris, R., Apvrille, L.: Safety properties modelling. In: 2014 7th International Conference on Human System Interactions (HSI), pp. 198–202. IEEE Computer Society (2014). https://doi.org/10.1109/HSI.2014.6860474

  37. The Eclipse Foundation: Eclipse IDE. https://www.eclipse.org/eclipseide/. Accessed 20 Aug 2020

  38. Thiele, D., Ernst, R., Diemer, J.: Formal worst-case timing analysis of Ethernet TSN’s time-aware and peristaltic shapers. In: 2015 IEEE Vehicular Networking Conference (VNC), pp. 251–258. IEEE (2016). https://doi.org/10.5281/zenodo.55528

  39. Trindade, R.F.B., Bulwahn, L., Ainhauser, C.: Automatically generated safety mechanisms from semi-formal software safety requirements. In: Bondavalli, A., Di Giandomenico, F. (eds.) SAFECOMP 2014. LNCS, vol. 8666, pp. 278–293. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-10506-2_19

    Chapter  Google Scholar 

  40. Yakymets, N., Perin, M., Lanusse, A.: Model-driven multi-level safety analysis of critical systems. In: 9th Annual IEEE International Systems Conference, pp. 570–577. IEEE Computer Society (2015). https://doi.org/10.1109/SYSCON.2015.7116812

Download references

Acknowledgments

This work was partially funded by the German Federal Ministry of Economics and Technology (Bundesministeriums fuer Wirtschaft und Technologie-BMWi) within the project “Holistic model-driven development for embedded systems in consideration of diverse hardware architectures” (HolMES). The authors would also like to thank Nikolas Wintering for software development assistance.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Lars Huning .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2021 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Huning, L., Iyenghar, P., Pulvermüller, E. (2021). A Workflow for Automatic Code Generation of Safety Mechanisms via Model-Driven Development. In: Ali, R., Kaindl, H., Maciaszek, L.A. (eds) Evaluation of Novel Approaches to Software Engineering. ENASE 2020. Communications in Computer and Information Science, vol 1375. Springer, Cham. https://doi.org/10.1007/978-3-030-70006-5_17

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-70006-5_17

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-70005-8

  • Online ISBN: 978-3-030-70006-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics