Programming Is Modeling

  • Rance CleavelandEmail author
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11244)


This paper considers the relationship between modeling and programming in the context of embedded-software development. In this domain, design and development techniques such as model-based development and model-driven design are often used to improve the efficiency with which software is produced and to broaden the class of engineers who can develop it. This has led some to suggest that modeling has become, or is becoming, programming. The argument advanced in this paper is that the converse is in fact true: programming should rather be considered a form of modeling, with the programming language constituting an executable metalanguage in which models of dynamical systems are encoded and simulated, or “run”. Modeling instead plays a design role, with some models used as a basis for the generation of code, although this is not a requirement: models for which code cannot be generated still play a valuable role in design processes. The basis for this perspective is presented, and research questions based on this viewpoint are given.


Programming Modeling Model-based development Model-driven engineering 


  1. 1.
    Accelerating Simulink Models. Accessed 30 Aug 2018
  2. 2.
  3. 3.
    Generate C and C++ Code Optimized for Embedded Systems. Accessed 30 Aug 2018
  4. 4.
    Generate C and C++ Code from Simulink and Stateflow Models. Accessed 30 Aug 2018
  5. 5.
    Software Testing and Validation with Reactis. Accessed 30 Aug 2018
  6. 6.
    Scientific Modelling. Wikipedia Accessed 30 Aug 2018
  7. 7.
  8. 8.
    Adolph, S., Cockburn, A., Bramble, P.: Patterns for Effective Use Cases. Addison-Wesley Longman Publishing Co., Inc., Boston (2002)Google Scholar
  9. 9.
    Atkinson, C., Kuhne, T.: Model-driven development: a metamodeling foundation. IEEE Softw. 20(5), 36–41 (2003)CrossRefGoogle Scholar
  10. 10.
    Backus, J.: The history of FORTRAN I, II, and III. ACM SIGPLAN Not. 13(8), 165–180 (1978)MathSciNetCrossRefGoogle Scholar
  11. 11.
    Balasubramanian, K., Gokhale, A., Karsai, G., Sztipanovits, J., Neema, S.: Developing applications using model-driven design environments. Computer 2, 33–40 (2006)CrossRefGoogle Scholar
  12. 12.
    Bauer, A., et al.: AutoMoDe - notations, methods, and tools for model-based development of automotive software. Technical report, SAE Technical Paper 2005-01-1281 (2005)Google Scholar
  13. 13.
    Brayton, R.K., et al.: VIS: a system for verification and synthesis. In: Alur, R., Henzinger, T.A. (eds.) CAV 1996. LNCS, vol. 1102, pp. 428–432. Springer, Heidelberg (1996). Scholar
  14. 14.
    Burkacky, O., Deichmann, J., Doll, G., Knochenhauer, C.: Rethinking Car Software and Electronics Architecture. Automotive & Assembly Insights, February 2018.
  15. 15.
    Charrette, R.: This car runs on code. IEEE Spectr. 46, 3 (2009).
  16. 16.
    Cuadrado, J.S., Molina, J.G.: Building domain-specific languages for model-driven development. IEEE Softw. 24(5), 48–55 (2007). ISSN 0740–7459. Scholar
  17. 17.
    Czarnecki, K., Helsen, S.: Classification of model transformation approaches. In: Proceedings of the 2nd OOPSLA Workshop on Generative Techniques in the Context of the Model Driven Architecture, USA, vol. 45, pp. 1–17 (2003)Google Scholar
  18. 18.
    Dahl, O., Nygaard, K.: SIMULA: an ALGOL-based simulation language. Commun. ACM 9(9), 671–678 (1966)CrossRefGoogle Scholar
  19. 19.
    Deissenboeck, F., Wagner, S., Pizka, M., Teuchert, S., Girard, J.-F.: An activity-based quality model for maintainability. In: IEEE International Conference on Software Maintenance, ICSM 2007, pp. 184–193. IEEE (2007)Google Scholar
  20. 20.
    Halvorson, B.: Software Now to Blame for 15 Percent of Car Recalls. Popular Science, June 2016.
  21. 21.
    Hanselmann, H.: Implementation of digital controllers, a survey. Automatica 23(1), 7–32 (1987)CrossRefGoogle Scholar
  22. 22.
    Ihaka, R., Gentleman, R.: R: a language for data analysis and graphics. J. Comput. Graph. Stat. 5(3), 299–314 (1996)Google Scholar
  23. 23.
    Isermann, R., Schaffnit, J., Sinsel, S.: Hardware-in-the-loop simulation for the design and testing of engine-control systems. Control. Eng. Pract. 7(5), 643–653 (1999)CrossRefGoogle Scholar
  24. 24.
    De Lara, J., Vangheluwe, H.: AToM3: a tool for multi-formalism and meta-modelling. In: Kutsche, R.-D., Weber, H. (eds.) FASE 2002. LNCS, vol. 2306, pp. 174–188. Springer, Heidelberg (2002). Scholar
  25. 25.
    Parnas, D., Clements, P., Weiss, D.: The modular structure of complex systems. IEEE Trans. Softw. Eng. 3, 259–266 (1985)CrossRefGoogle Scholar
  26. 26.
    Rumbaugh, J., Jacobson, I., Booch, G.: The Unified Modeling Language Reference Manual. Pearson Higher Education, New York (2004)Google Scholar
  27. 27.
    Schmidt, D.: Model-driven engineering. Computer 39(2), 25 (2006)CrossRefGoogle Scholar
  28. 28.
    Selic, B.: Using UML for modeling complex real-time systems. In: Mueller, F., Bestavros, A. (eds.) LCTES 1998. LNCS, vol. 1474, pp. 250–260. Springer, Heidelberg (1998). Scholar
  29. 29.
    Sims, S., DuVarney, D.: Experience report: the reactis validation tool. In: ACM SIGPLAN Notices, vol. 42, pp. 137–140. ACM (2007)Google Scholar
  30. 30.
    Smith, S.: Digital Signal Processing: A Practical Guide for Engineers and Scientists. Elsevier, Dordrecht (2013)Google Scholar
  31. 31.
    Toeppe, S., Ranville, S., Bostic, D., Wang, Y.: Practical validation of model based code generation for automotive applications. In: 18th Digital Avionics Systems Conference, Proceedings, vol. 2, p. 10.A.3. IEEE (1999)Google Scholar
  32. 32.
    Zeigler, B., Kim, T.G., Praehofer, H.: Theory of Modeling and Simulation. Academic Press, Orlando (2000)zbMATHGoogle Scholar

Copyright information

© Springer Nature Switzerland AG 2018

Authors and Affiliations

  1. 1.Department of Computer ScienceUniversity of MarylandCollege ParkUSA

Personalised recommendations