Complexity is the Only Constant: Trends in Computing and Their Relevance to Model Driven Engineering

  • Juergen DingelEmail author
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9761)


Despite ever increasing computational power, the history of computing is characterized also by a constant battle with complexity. We will briefly review these trends and argue that, due to its focus on abstraction, automation, and analysis, the modeling community is ideally positioned to facilitate the development of future computing systems. More concretely, a few, select, technological and societal trends and developments will be discussed together with the research opportunities they present to researchers interested in modeling.


Model Transformation Dependence Graph Formal Semantic Distribute Hash Table Symbolic Execution 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.



This work was supported by the Natural Sciences and Engineering Research Council of Canada (NSERC), and by the Ontario Ministry of Research and Innovation (MRI).


  1. 1.
    Ariane 5 flight 501 failure, report by the inquiry board (1996).
  2. 2.
    Baki, I., Sahraoui, H.: Multi-step learning and adaptive search for learning complex model transformations from examples. ACM Trans. Softw. Eng. Methodol. (2016) (in print)Google Scholar
  3. 3.
    Barrett, R., Bordeleau, F.: 5 years of ‘Papyrusing’ – migrating industrial development from a proprietary commercial tool to Papyrus (invited presentation). In: Workshop on Open Source Software for Model Driven Engineering (OSS4MDE 2015), pp. 3–12 (2015)Google Scholar
  4. 4.
    Bogdănaş, D., Roşu, G.: K-Java: a complete semantics of Java. In: ACM SIGPLAN/SIGACT Symposium on Principles of Programming Languages (POPL 2015), pp. 445–456. ACM, January 2015Google Scholar
  5. 5.
    Borowiec, S., Lien, T.: AlphaGo beats human Go champ in milestone for artificial intelligence. Los Angeles Times, 12 March 2016Google Scholar
  6. 6.
    Borras, P., Clement, D., Despeyroux, T., Incerpi, J., Kahn, G., Lang, B., Pascual, V.: Centaur: the system. In: ACM SIGSoft/SIGPlan Software Engineering Symposium on Practical Software Development Environments (SDE 1987) (1987)Google Scholar
  7. 7.
    Charette, R.N.: Why software fails. IEEE Spectr. 42(9), 42–49 (2005)CrossRefGoogle Scholar
  8. 8.
    Cheung, A., Kamil, S., Solar-Lezama, A.: Bridging the gap between general-purpose and domain-specific compilers with synthesis. In: Summit oN Advances in Programming Languages (SNAPL 2015) (2015)Google Scholar
  9. 9.
    Cheung, A., Solar-Lezama, A., Madden, S.: Optimizing database-backed applications with query synthesis. ACM SIGPLAN Not. 48(6), 3–14 (2013)CrossRefGoogle Scholar
  10. 10.
    Christakis, M., Leino, K.R.M., Schulte, W.: Formalizing and verifying a modern build language. In: Jones, C., Pihlajasaari, P., Sun, J. (eds.) FM 2014. LNCS, vol. 8442, pp. 643–657. Springer, Heidelberg (2014)CrossRefGoogle Scholar
  11. 11.
    Chudler, E.H.: Neuroscience for kids.
  12. 12.
    Collberg, C., Proebsting, T.A.: Repeatability in computer systems research. Commun. ACM 59(3), 62–69 (2016)CrossRefGoogle Scholar
  13. 13.
    Cook, B., Launchbury, J., Matthews, J.: Specifying superscalar microprocessors in Hawk. In: Workshop on Formal Techniques for Hardware and Hardware-like Systems (1998)Google Scholar
  14. 14.
    Potocki de Montalk, J.P.: Computer software in civil aircraft. Cockpit/Avionics Eng. 17(1), 17–23 (1993)Google Scholar
  15. 15.
    Denning, P.J.: Virtual memory. ACM Comput. Surv. 2(3), 153–189 (1970)CrossRefzbMATHGoogle Scholar
  16. 16.
    Duvendack, M., Palmer-Jones, R.W., Reed, W.R.: Replications in economics: a progress report. Econ. Pract. 12(2), 164–191 (2015)Google Scholar
  17. 17.
    Ellison, C., Roşu, G.: An executable formal semantics of C with applications. In: ACM SIGPLAN/SIGACT Symposium on Principles of Programming Languages (POPL 2012), pp. 533–544 (2012)Google Scholar
  18. 18.
    Endresen, J., Carlson, E., Moen, T., Alme, K.-J., Haugen, Ø., Olsen, G.K., Svendsen, A.: Train control language - teaching computers interlocking. In: Computers in Railways XI. WIT Press (2008)Google Scholar
  19. 19.
    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., Caskurlu, B., Selic, B. (eds.) UML 2000. LNCS, vol. 1939, pp. 323–337. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  20. 20.
    Falessi, D., Sabetzadeh, M., Briand, L., Turella, E., Coq, T., Panesar-Walawege, R.K.: Planning for safety standards compliance: a model-based tool-supported approach. IEEE Softw. 29(3), 64–70 (2012)CrossRefGoogle Scholar
  21. 21.
    Felleisen, M., Findler, R.B., Flatt, M.: Semantics Engineering with PLT Redex. MIT Press, Cambridge (2009)zbMATHGoogle Scholar
  22. 22.
    Geer, D.E.: Children of the magenta. IEEE Secur. Priv. 13(5) (2015)Google Scholar
  23. 23.
    Glass, R.L.: Sorting out software complexity. Commun. ACM 45(11), 19–21 (2002)CrossRefGoogle Scholar
  24. 24.
    GM: GM chairman and CEO addresses CES., 6 Jan 2016
  25. 25.
    Grimm, K.: Software technology in an automotive company – major challenges. In: International Conference on Software Engineering (ICSE 2003) (2003)Google Scholar
  26. 26.
    Gulwani, S., Harris, W., Singh, R.: Spreadsheet data manipulation using examples. Commun. ACM 55, 97–105 (2012)CrossRefGoogle Scholar
  27. 27.
    Hendriks, M., Basten, T., Verriet, J., Brassé, M., Somers, L.: A blueprint for system-level performance modeling of software-intensive embedded systems. Softw. Tools Technol. Transf. 18, 21–40 (2016)CrossRefGoogle Scholar
  28. 28.
    Henriques, P.R., Pereira, M.J.V., Mernik, M., Lenic, M., Gray, J., Wu, H.: Automatic generation of language-based tools using the LISA system. IEE Proc. Softw. 152, 54–69 (2005)CrossRefGoogle Scholar
  29. 29.
    Homer-Dixon, T.: The Ingenuity Gap. Vintage Canada (2001)Google Scholar
  30. 30.
    Ince, D.C., Hatton, L., Graham-Cumming, J.: The case for open computer programs. Nature 482, 485–488 (2012)CrossRefGoogle Scholar
  31. 31.
    Jeon, J., Qiu, X., Foster, J.S., Solar-Lezama, A.: Jsketch: sketching for Java. In: Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE 2015) (2015)Google Scholar
  32. 32.
    Kahani, N., Bagherzadeh, M., Dingel, J., Cordy, J.R.: The problems with Eclipse modeling tools: a topic analysis of Eclipse forums, April 2016 (submitted)Google Scholar
  33. 33.
    Khalil, A., Dingel, J.: Incremental symbolic execution of evolving state machines. In: ACM/IEEE International Conference on Model Driven Engineering Languages and Systems (MODELS 2015) (2015)Google Scholar
  34. 34.
    Kienle, H.M., Mueller, H.A.: Rigi – an environment for software reverse engineering, exploration, visualization, and redocumentation. Sci. Comput. Prog. 75, 247–263 (2010)MathSciNetCrossRefzbMATHGoogle Scholar
  35. 35.
    Klein, G., Elphinstone, K., Heiser, G., Andronick, J., Cock, D., Derrin, P., Elkaduwe, D., Engelhardt, K., Kolanski, R., Norrish, M., Sewell, T., Tuch, H., Winwood, S.: Formal verification of an OS kernel. In: ACM SIGOPS Symposium on Operating Systems Principles (SOSP 2009), pp. 207–220. ACM (2009)Google Scholar
  36. 36.
    Koksal, A.S., Pu, Y., Srivastava, S., Bodik, R., Piterman, N., Fisher, J.: Synthesis of biological models from mutation experiments. In: ACM SIGPLAN/SIGACT Symposium on Principles of Programming Languages (POPL 2013) (2013)Google Scholar
  37. 37.
    Kwasnikowska, N., Moreau, L., Van den Bussche, J.: A formal account of the Open Provenance Model. ACM Trans. Web 9, 10:1–10:44 (2015)CrossRefGoogle Scholar
  38. 38.
    Leroy, X.: Formal verification of a realistic compiler. Commun. ACM 52(7), 107–115 (2009)CrossRefGoogle Scholar
  39. 39.
    Li, B., Sun, X., Leung, H., Zhang, S.: A survey of code-based change impact analysis techniques. Softw. Test. Verification Reliab. 23, 613–646 (2012)CrossRefGoogle Scholar
  40. 40.
    Lim, J., Reps, Th.: TSL: a system for generating abstract interpreters and its application to machine-code analysis. ACM Trans. Program. Lang. Syst. 35(1), 4:1–4:59 (2013)Google Scholar
  41. 41.
    Lima, M.: Visual complexity website.
  42. 42.
    Lima, M.: The Book of Trees: Visualizing Branches of Knowledge Hardcover. Princeton Architectural Press (2014)Google Scholar
  43. 43.
    Lu, Y., Atlee, J.M., Day, N.A., Niu, J.: Mapping template semantics to SMV. In: IEEE/ACM International Conference on Automated Software Engineering (ASE 2004) (2004)Google Scholar
  44. 44.
    Lúcio, L., Amrani, M., Dingel, J., Lambers, L., Salay, R., Selim, G.M.K., Syriani, E., Wimmer, M.: Model transformation intents and their properties. Softw. Syst. Model., 1–38 (2014)Google Scholar
  45. 45.
    Markoff, J.: The iPad in your hand: as fast as a supercomputer of yore. New York Times article based on interview with Dr. Jack Dongarra, 9 May 2011.
  46. 46.
    Mayr, A., Plösch, R., Saft, M.: Objective safety compliance checks for source code. In: Companion Proceedings of the 36th International Conference on Software Engineering, ICSE Companion 2014 (2014)Google Scholar
  47. 47.
    McCallum, J.C.: Memory prices (1957–2015). Accessed Mar 2016
  48. 48.
    McCandless, D.: Information is beautiful: Million lines of code.
  49. 49.
    Milicevic, A., Rayside, D., Yessenov, K., Jackson, D.: Unifying execution of imperative and declarative code. In: International Conference on Software Engineering (ICSE 2011) (2011)Google Scholar
  50. 50.
    Monroe, D.: When data is not enough. Commun. ACM 58(12), 12–14 (2015)CrossRefGoogle Scholar
  51. 51.
    Moreau, L., Clifford, B., Freire, J., Futrelle, J., Gil, Y., Groth, P., Kwasnikowska, N., Miles, S., Missier, P., Myers, J., Plale, B., Simmhan, Y., Stephan, E., van den Bussche, J.: The open provenance model core specification (v1.1). Future Gener. Comput. Syst. 27(6), 743–756 (2011)CrossRefGoogle Scholar
  52. 52.
    Mosses, P.: Sis: A compiler-generator system using denotational semantics. Technical report 78-4-3, Department of Computer Science, University of Aarhus (1978)Google Scholar
  53. 53.
    Muller, P.-A., Fleurey, F., Jézéquel, J.-M.: Weaving executability into object-oriented meta-languages. In: Briand, L.C., Williams, C. (eds.) MoDELS 2005. LNCS, vol. 3713, pp. 264–278. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  54. 54.
    Mulligan, D.P., Owens, S., Gray, K.E., Ridge, T., Sewell, P.: Lem: Reusable engineering of real-world semantics. SIGPLAN Not. 49(9), 175–188 (2014)CrossRefGoogle Scholar
  55. 55.
    Nair, S., de la Vara, J.L., Melzi, A., Tagliaferri, G., de-la-Beaujardiere, L., Belmonte, F.: Safety evidence traceability: problem analysis and model. In: Salinesi, C., Weerd, I. (eds.) REFSQ 2014. LNCS, vol. 8396, pp. 309–324. Springer, Heidelberg (2014)CrossRefGoogle Scholar
  56. 56.
    The President of the United States: Executive order: creating a national strategic computing initiative, 29 July 2015.
  57. 57.
    Park, D., Ştefănescu, A., Roşu, G.: KJS: a complete formal semantics of JavaScript. In: SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2015), pp. 346–356. ACM, June 2015Google Scholar
  58. 58.
    Person, S., Yang, G., Rungta, N., Khurshid, S.: Directed incremental symbolic execution. In: ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2011) (2011)Google Scholar
  59. 59.
    Posse, E.: PapyrusRT: modelling and code generation (invited presentation). In: Workshop on Open Source Software for Model Driven Engineering (OSS4MDE 2015) (2015)Google Scholar
  60. 60.
    Ren, X., Shah, F., Tip, F., Ryder, B.G., Chesley, O.: Chianti: A tool for change impact analysis of Java programs. In: ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2004) (2004)Google Scholar
  61. 61.
    Riguzzi, F.: A survey of software metrics. Technical report DEIS-LIA-96-010, Università degli Studi di Bologna (1996)Google Scholar
  62. 62.
    Roşu, G., Şerbănuţă, T.F.: An overview of the K semantic framework. J. Logic Algebraic Prog. 79(6), 397–434 (2010)MathSciNetCrossRefzbMATHGoogle Scholar
  63. 63.
    RTI: The economic impacts of inadequate infrastructure for software testing. Technical report Planning Report 02–3, National Institute of Standards & Technology (NIST), May 2002Google Scholar
  64. 64.
    Schuwer, R., van Genuchten, M., Hatton, L.: On the impact of being open. IEEE Softw. 32, 81–83 (2015)CrossRefGoogle Scholar
  65. 65.
    Selic, B.: What will it take? A view on adoption of model-based methods. Softw. Syst. Model. 11, 513–526 (2012)CrossRefGoogle Scholar
  66. 66.
    Selim, G.M.K., Lúcio, L., Cordy, J.R., Dingel, J., Oakes, B.J.: Specification and verification of graph-based model transformation properties. In: Giese, H., König, B. (eds.) ICGT 2014. LNCS, vol. 8571, pp. 113–129. Springer, Heidelberg (2014)Google Scholar
  67. 67.
    Shapiro, S.: Splitting the difference: the historical necessity of synthesis in software engineering. IEEE Ann. Hist. Comput. 19(1), 20–54 (1997)CrossRefGoogle Scholar
  68. 68.
    Singh, R., Gulwani, S., Solar-Lezama, A.: Automated feedback generation for introductory programming assignments. ACM SIGPLAN Not. 48, 15–26 (2013). ACMCrossRefGoogle Scholar
  69. 69.
    Solar-Lezama, A., Jones, C., Bodik, R.: Sketching concurrent data structures. ACM SIGPLAN Not. 43, 136–148 (2008). ACMCrossRefGoogle Scholar
  70. 70.
    Solar-Lezama, A., Rabbah, R., Bodík, R., Ebcioğlu, K.: Programming by sketching for bit-streaming programs. ACM SIGPLAN Not. 40, 281–294 (2005). ACMCrossRefGoogle Scholar
  71. 71.
    Stanley, B., Gyimesi, K.: Automotive 2025 – industry without borders. Technical report, IBM Institute for Business Value, January 2015.
  72. 72.
    Stoica, I., Morris, R., Karger, D., Kaashoek, F.M., Balakrishnan, H.: Chord: a scalable peer-to-peer lookup service for internet applications. In: ACM Conference on Applications, Technologies, Architectures, and Protocols for Computer Communications (SIGCOMM 2001), pp. 149–160 (2001)Google Scholar
  73. 73.
    Tainter, J.A.: Complexity, problem solving, and sustainable societies. In: Costanza, R., Segura, O., Martinez-Alier, J. (eds.) Getting Down to Earth: Practical Applications of Ecological Economics. Island Press (1996)Google Scholar
  74. 74.
    Torlak, E., Bodik, R.: Growing solver-aided languages with Rosette. In: ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software, Onward! 2013, pp. 135–152 (2013)Google Scholar
  75. 75.
    Torlak, E., Bodik, R.: A lightweight symbolic virtual machine for solver-aided host languages. In: ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2014) (2014)Google Scholar
  76. 76.
    Tufte, E.: Beautiful Evidence. Graphics Press, Cheshire (2006)Google Scholar
  77. 77.
    den van Brand, M.G.J., van Deursen, A., Heering, J., de Jong, H.A., de Jonge, M., Kuipers, T., Klint, P., Moonen, L., Olivier, P.A., Scheerder, J., Vinju, J.J., Visser, E., Visser, J.: The ASF+SDF meta-environment: a component-based language development environment. In: Wilhelm, R. (ed.) CC 2001. LNCS, vol. 2027, p. 365. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  78. 78.
    W3C Working Group. PROV-Overview: An overview of the PROV family of documents. In: Groth, P., Moreau, L. (eds.) W3C Working Group Note. W3C (2013)Google Scholar
  79. 79.
    Ward, D.: Avsis system architecture virtual integration program: proof of concept demonstrations. In: INCOSE MBSE Workshop, 27 January 2013Google Scholar
  80. 80.
    Whittle, J., Hutchinson, J., Rouncefield, M., Heldal, R.: Industrial adoption of model-driven engineering: are the tools reallythe problem? In: ACM/IEEE International Conference on Model-Driven Engineering Languages and Systems (MODELS 2013) (2013)Google Scholar
  81. 81.
    Yang, G., Dwyer, M., Rothermel, G.: Regression model checking. In: International Conference on Software Maintenance (ICSM 2009), pp. 115–124. IEEE (2009)Google Scholar
  82. 82.
    Zave, P.: Using lightweight modeling to understand Chord. ACM SIGCOMM Comput. Commun. Rev. 42(2), 50–57 (2012)CrossRefGoogle Scholar
  83. 83.
    Zurowska, K., Dingel, J.: A customizable execution engine for models of embedded systems. In: Roubtsova, E., McNeile, A., Kindler, E., Gerth, C. (eds.) BM-FA 2009-2014. LNCS, vol. 6368, pp. 82–110. Springer, Heidelberg (2015)CrossRefGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2016

Authors and Affiliations

  1. 1.School of ComputingQueen’s UniversityKingstonCanada

Personalised recommendations