Meta-Level Reuse for Mastering Domain Specialization

  • Stefan Naujokat
  • Johannes Neubauer
  • Tiziana Margaria
  • Bernhard Steffen
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9953)

Abstract

We reflect on the distinction between modeling and programming in terms of what and how and emphasize the importance of perspectives: what is a model (a what) for the one, may well be a program (a how) for the other. In fact, attempts to pinpoint technical criteria like executability or abstraction for clearly separating modeling from programming seem not to survive modern technical developments. Rather, the underlying conceptual cores continuously converge. What remains is the distinction of what and how separating true purpose from its realization, i.e. providing the possibility of formulating the primary intent without being forced to over-specify. We argue that no unified general-purpose language can adequately support this distinction in general, and propose a meta-level framework for mastering the wealth of required domain-specific languages in a bootstrapping fashion.

Keywords

Simplicity Abstract tool specification Full code generation Metamodeling Domain-specific tools Hierarchy Service-orientation Modularity 

References

  1. 1.
    Dart programming language. https://www.dartlang.org/. Online; last accessed 26 Jul 2016
  2. 2.
    Eclipse Modeling Tools. http://www.eclipse.org/downloads/packages/eclipse-modeling-tools/lunasr2. Online; last accessed 30 Jul 2016
  3. 3.
    Xtend - Modernized Java. https://www.eclipse.org/xtend/. Online; last accessed 30 Jul 2016
  4. 4.
    Backus, J.W.: The syntax and semantics of the proposed international algebraic language of the Zurich ACM-GAMM Conference. In: IFIP Congress, pp. 125–131 (1959)Google Scholar
  5. 5.
    Boßelmann, S., Frohme, M., Kopetzki, D., Lybecait, M., Naujokat, S., Neubauer, J., Wirkner, D., Zweihoff, P., Steffen, B.: DIME: a programming-less modeling environment for web applications. In: Margaria, T., Steffen, B. (eds.) ISoLA 2016, Part II. LNCS, vol. 9953, pp. 809–832. Springer, Cham (2016)Google Scholar
  6. 6.
    Boßelmann, S., Neubauer, J., Naujokat, S., Steffen, B.: Model-driven design of secure high assurance systems: an introduction to the open platform from the user perspective. In: Margaria, T., Solo, A.M.G. (eds.) The 2016 International Conference on Security and Management (SAM 2016). Special Track “End-to-end Security and Cybersecurity: from the Hardware to Application”, pp. 145–151. CREA Press (2016)Google Scholar
  7. 7.
    Broy, M., Havelund, K., Kumar, R.: Towards a unified view of modeling and programming. In: Margaria, T., Steffen, B. (eds.) ISoLA 2016, Part II. LNCS, vol. 9953, pp. 238–257. Springer, Cham (2016)Google Scholar
  8. 8.
    Burkart, O., Steffen, B.: Model checking for context-free processes. In: Cleaveland, W. (ed.) CONCUR 1992. LNCS, vol. 630, pp. 123–137. Springer, Heidelberg (1992)CrossRefGoogle Scholar
  9. 9.
    Burkart, O., Steffen, B.: Model checking the full modal mu-calculus for infinite sequential processes. Theoret. Comput. Sci. 221(1–2), 251–270 (1999)MathSciNetCrossRefMATHGoogle Scholar
  10. 10.
    Chen, P.P.S.: The entity-relationship model - toward a unified view of data. Trans. Database Syst. (TODS) 1(1), 9–36 (1975)CrossRefGoogle Scholar
  11. 11.
    Clarke, E.M., Grumberg, O., Peled, D.A.: Model Checking. The MIT Press, Cambridge (1999)Google Scholar
  12. 12.
    Constable, R., Allen, S., Bromley, H., Cleaveland, W., Cremer, J., Harper, R., Howe, D., Knoblock, T., Mendler, N., Panangaden, P., Sasaki, J., Smith, S.: Implementing Mathematics with the Nuprl Proof Development System. Prentice-Hall, Upper Saddle River (1986)Google Scholar
  13. 13.
    Damm, W., Harel, D.: LSCs: breathing life into message sequence charts. Formal Methods Syst. Des. 19(1), 45–80 (2001)CrossRefMATHGoogle Scholar
  14. 14.
    Dhamdhere, D.M.: A new algorithm for composite hoisting and strength reduction optimisation (+ Corrigendum). Int. J. Comp. Math. 27, 1–14 (1989)CrossRefGoogle Scholar
  15. 15.
    Fielding, R.T.: Architectural styles and the design of network-based software architectures. Ph.D. thesis, University of California, Irvine (2000)Google Scholar
  16. 16.
    Filev, A., Loton, T., McNeish, K., Schoellmann, B., Slater, J., Wu, C.G.: Professional UML Using Visual Studio .Net. Wiley Publishing Inc., Indianapolis (2003)Google Scholar
  17. 17.
    Fowler, M., Parsons, R.: Domain-specific languages. Addison-Wesley/ACM Press (2011)Google Scholar
  18. 18.
    Gelbmann, M.: WordPress powers 25% of all websites (2015). https://w3techs.com/blog/entry/wordpress-powers-25-percent-of-all-websites. Online; last accessed 19 Jul 2016
  19. 19.
    Gordon, M., Milner, R., Morris, L., Newey, M., Wadsworth, C.: A metalanguage for interactive proof in LCF. In: Proceedings of the 5th Symposium on Principles of Programming Languages (POPL 1978) (1978)Google Scholar
  20. 20.
    Jackson, P.B.: Nuprl and its use in circuit design. In: Stavridou, V., Melham, T., Boute, R. (eds.) Proceedings of the IFIP TC10/WG10.2 International Conference on Theorem Provers in Circuit Design: Theory, Practice and Experience, pp. 311–336 (1992)Google Scholar
  21. 21.
    Jörges, S. (ed.): Construction and Evolution of Code Generators. LNCS, vol. 7747. Springer, Heidelberg (2013)Google Scholar
  22. 22.
    Jörges, S., Lamprecht, A.L., Margaria, T., Naujokat, S., Steffen, B.: Synthesis from a practical perspective. In: Margaria, T., Steffen, B. (eds.) ISoLA 2016, Part I. LNCS, vol. 9952, pp. 282–302. Springer, Cham (2016)Google Scholar
  23. 23.
    Jörges, S., Margaria, T., Steffen, B.: Genesys: service-oriented construction of property conform code generators. Innov. Syst. Softw. Eng. 4(4), 361–384 (2008)CrossRefGoogle Scholar
  24. 24.
    Jörges, S., Steffen, B.: Exploiting ecore’s reflexivity for bootstrapping domain-specific code-generators. In: Proceedings of 35th Software Engineering Workshop (SEW 2012), pp. 72–81. IEEE (2012)Google Scholar
  25. 25.
    Jörges, S., Steffen, B.: Back-to-back testing of model-based code generators. In: Margaria, T., Steffen, B. (eds.) ISoLA 2014. LNCS, vol. 8802, pp. 425–444. Springer, Heidelberg (2014). doi:10.1007/978-3-662-45234-9_30 Google Scholar
  26. 26.
    Kelly, S., Tolvanen, J.P.: Domain-Specific Modeling: Enabling Full Code Generation. Wiley-IEEE Computer Society Press, Hoboken (2008)CrossRefGoogle Scholar
  27. 27.
    Knoop, J., Rüthing, O., Steffen, B.: Lazy code motion. In: Proceedings of the ACM SIGPLAN 1992 Conference on Programming Language Design and Implementation (PLDI), pp. 224–234. ACM (1992)Google Scholar
  28. 28.
    Knoop, J., Rüthing, O., Steffen, B.: Optimal Code Motion: Theory and Practice. ACM Trans. Program. Lang. Syst. 16(4), 1117–1155 (1994)CrossRefGoogle Scholar
  29. 29.
    Ledeczi, A., Maroti, M., Bakay, A., Karsai, G., Garrett, J., Thomasson, C., Nordstrom, G., Sprinkle, J., Volgyesi, P.: The generic modeling environment. In: Workshop on Intelligent Signal Processing (WISP 2001) (2001)Google Scholar
  30. 30.
    Margaria, T., Steffen, B.: Business process modelling in the jABC: the one-thing-approach. In: Cardoso, J., van der Aalst, W. (eds.) Handbook of Research on Business Process Modeling. IGI Global (2009)Google Scholar
  31. 31.
    Margaria, T., Steffen, B., Reitenspies̈, M.: Service-oriented design: the jABC approach. In: Cubera, F., Krämer, B.J., Papazoglou, M.P.(eds.) Service Oriented Computing (SOC). No. 05462 in Dagstuhl Seminar Proceedings. Internationales Begegnungs- und Forschungszentrum für Informatik (IBFI), Schloss Dagstuhl, Germany (2006)Google Scholar
  32. 32.
    Margaria, T., Steffen, B., Reitenspieß, M.: Service-oriented design: the roots. In: Benatallah, B., Casati, F., Traverso, P. (eds.) ICSOC 2005. LNCS, vol. 3826, pp. 450–464. Springer, Heidelberg (2005). doi:10.1007/11596141_34 CrossRefGoogle Scholar
  33. 33.
    McAffer, J., Lemieux, J.M., Aniszczyk, C.: Eclipse Rich Client Platform, 2nd edn. Addison-Wesley Professional (2010)Google Scholar
  34. 34.
    Milner, R.: LCF: a way of doing proofs with a machine. In: Bečvář, J. (ed.) MFCS 1979. LNCS, vol. 74, pp. 146–159. Springer, Heidelberg (1979). doi:10.1007/3-540-09526-8_11 CrossRefGoogle Scholar
  35. 35.
    Morel, E., Renvoise, C.: Global optimization by suppression of partial redundancies. Comm. ACM 22(2), 96–103 (1979)MathSciNetCrossRefMATHGoogle Scholar
  36. 36.
    Naujokat, S., Lybecait, M., Kopetzki, D., Steffen, B.: CINCO: A Simplicity-Driven Approach to Full Generation of Domain-Specific Graphical Modeling Tools (to appear, 2016)Google Scholar
  37. 37.
    Naujokat, S., Neubauer, J., Lamprecht, A.L., Steffen, B., Jörges, S., Margaria, T.: Simplicity-first model-based plug-in development. Softw. Pract. Exp. 44(3), 277–297 (2013)CrossRefGoogle Scholar
  38. 38.
    Neubauer, J., Frohme, M., Steffen, B., Margaria, T.: Prototype-driven development of web applications with DyWA. In: Margaria, T., Steffen, B. (eds.) ISoLA 2014. LNCS, vol. 8802, pp. 56–72. Springer, Heidelberg (2014). doi:10.1007/978-3-662-45234-9_5 Google Scholar
  39. 39.
    Neubauer, J., Steffen, B., Margaria, T.: Higher-order process modeling: product-lining, variability modeling and beyond. Electron. Proc. Theoret. Comput. Sci. 129, 259–283 (2013)CrossRefGoogle Scholar
  40. 40.
    Object Management Group (OMG): OMG Meta Object Facility (MOF) Core Specification Version 2.4.1, http://www.omg.org/spec/MOF/2.4.1/PDF. Online; last accessed 23 Apr 2014
  41. 41.
    Object Management Group (OMG): Documents associated with Object Constraint Language (OCL), Version 2.4, February 2014. http://www.omg.org/spec/OCL/2.4/
  42. 42.
    Plotkin, G.D.: A Structural Approach to Operational Semantics. Tech. rep., University of Aarhus, dAIMI FN-19 (1981)Google Scholar
  43. 43.
    Rumbaugh, J., Jacobsen, I., Booch, G.: The Unified Modeling Language Reference Manual. The Addison-Wesley Object Technology Series, 2 edn. Addison-Wesley Professional, July 2004Google Scholar
  44. 44.
    Schmidt, D., Steffen, B.: Program analysis as model checking of abstract interpretations. In: Levi, G. (ed.) SAS 1998. LNCS, vol. 1503, pp. 351–380. Springer, Heidelberg (1998). doi:10.1007/3-540-49727-7_22 CrossRefGoogle Scholar
  45. 45.
    Steffen, B.: Data flow analysis as model checking. In: Ito, T., Meyer, A.R. (eds.) TACS 1991. LNCS, vol. 526, pp. 346–364. Springer, Heidelberg (1991). doi:10.1007/3-540-54415-1_54 CrossRefGoogle Scholar
  46. 46.
    Steffen, B.: Generating data flow analysis algorithms from modal specifications. Sci. Comput. Program. 21(2), 115–139 (1993)CrossRefMATHGoogle Scholar
  47. 47.
    Steffen, B., Claßen, A., Klein, M., Knoop, J., Margaria, T.: The fixpoint-analysis machine. In: Lee, I., Smolka, S. (eds.) CONCUR 1995. LNCS, vol. 962, pp. 72–87. Springer, Berlin Heidelberg (1995)CrossRefGoogle Scholar
  48. 48.
    Steffen, B., Jörges, S., Wagner, C., Margaria, T.: Maintenance, or the 3rd dimension of eXtreme model-driven design. In: IEEE International Conference on Software Maintenance 2009 (ICSM 2009), pp. 483–486 (2009)Google Scholar
  49. 49.
    Steffen, B., Margaria, T., Nagel, R., Jörges, S., Kubczak, C.: Model-driven development with the jABC. In: Bin, E., Ziv, A., Ur, S. (eds.) HVC 2006. LNCS, vol. 4383, pp. 92–108. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  50. 50.
    Steffen, B., Margaria, T., Wagner, C.: Round-Trip Engineering, chap. 94, pp. 1044–1055. Taylor & Francis (2010)Google Scholar
  51. 51.
    Steffen, B., Naujokat, S.: Archimedean points: the essence for mastering change. LNCS Trans. Found. for Mastering Change (FoMaC) 1(1) (2016)Google Scholar
  52. 52.
    Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: EMF: Eclipse Modeling Framework, 2nd edn. Addison-Wesley, Boston (2008)Google Scholar
  53. 53.
    Wolper, P.: The meaning of “formal”: from weak to strong formal methods. Int. J. Softw. Tools Technol. Transf. (STTT) 1(1), 6–8 (1997)CrossRefGoogle Scholar

Copyright information

© Springer International Publishing AG 2016

Authors and Affiliations

  • Stefan Naujokat
    • 1
  • Johannes Neubauer
    • 1
  • Tiziana Margaria
    • 2
  • Bernhard Steffen
    • 1
  1. 1.Chair for Programming SystemsTU Dortmund UniversityDortmundGermany
  2. 2.Chair of Software SystemsUniversity of Limerick and Lero, The Irish Software Research CentreLimerickIreland

Personalised recommendations