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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
Originally ML was designed to describe proof tactics of the LCF theorem prover [34].
- 2.
- 3.
- 4.
One sometimes speaks of term or Herbrand interpretation.
- 5.
ANTLR: http://www.antlr.org/
Yacc: http://dinosaur.compilertools.net/yacc/
JavaCC: https://javacc.java.net/.
- 6.
The term DSM is often correlated to Kelly and Tolvanen’s book [26] and the corresponding MetaEdit framework. However, we broaden the term to all approaches aiming at a similar purpose.
- 7.
A detailed introduction to the available process model types is given in [5, 6] and DIME’s web site: http://dime.scce.info.
- 8.
Bundle is the term used by Eclipse’s underlying OSGi architecture. The term plug-in is probably more commonly understood for non-Eclipse developers.
- 9.
- 10.
This is the main reason why we developed DIME’s initial code generators using Xtend.
- 11.
Prior to DIME, processes for DyWA-based web applications were modeled in jABC with dedicated components generated from the application’s data schema, in turn modeled in DyWA.
- 12.
This can be very different artefacts, not just classic desktop applications.
References
Dart programming language. https://www.dartlang.org/. Online; last accessed 26 Jul 2016
Eclipse Modeling Tools. http://www.eclipse.org/downloads/packages/eclipse-modeling-tools/lunasr2. Online; last accessed 30 Jul 2016
Xtend - Modernized Java. https://www.eclipse.org/xtend/. Online; last accessed 30 Jul 2016
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)
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)
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)
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)
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)
Burkart, O., Steffen, B.: Model checking the full modal mu-calculus for infinite sequential processes. Theoret. Comput. Sci. 221(1–2), 251–270 (1999)
Chen, P.P.S.: The entity-relationship model - toward a unified view of data. Trans. Database Syst. (TODS) 1(1), 9–36 (1975)
Clarke, E.M., Grumberg, O., Peled, D.A.: Model Checking. The MIT Press, Cambridge (1999)
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)
Damm, W., Harel, D.: LSCs: breathing life into message sequence charts. Formal Methods Syst. Des. 19(1), 45–80 (2001)
Dhamdhere, D.M.: A new algorithm for composite hoisting and strength reduction optimisation (+ Corrigendum). Int. J. Comp. Math. 27, 1–14 (1989)
Fielding, R.T.: Architectural styles and the design of network-based software architectures. Ph.D. thesis, University of California, Irvine (2000)
Filev, A., Loton, T., McNeish, K., Schoellmann, B., Slater, J., Wu, C.G.: Professional UML Using Visual Studio .Net. Wiley Publishing Inc., Indianapolis (2003)
Fowler, M., Parsons, R.: Domain-specific languages. Addison-Wesley/ACM Press (2011)
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
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)
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)
Jörges, S. (ed.): Construction and Evolution of Code Generators. LNCS, vol. 7747. Springer, Heidelberg (2013)
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)
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)
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)
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
Kelly, S., Tolvanen, J.P.: Domain-Specific Modeling: Enabling Full Code Generation. Wiley-IEEE Computer Society Press, Hoboken (2008)
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)
Knoop, J., Rüthing, O., Steffen, B.: Optimal Code Motion: Theory and Practice. ACM Trans. Program. Lang. Syst. 16(4), 1117–1155 (1994)
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)
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)
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)
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
McAffer, J., Lemieux, J.M., Aniszczyk, C.: Eclipse Rich Client Platform, 2nd edn. Addison-Wesley Professional (2010)
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
Morel, E., Renvoise, C.: Global optimization by suppression of partial redundancies. Comm. ACM 22(2), 96–103 (1979)
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)
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)
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
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)
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
Object Management Group (OMG): Documents associated with Object Constraint Language (OCL), Version 2.4, February 2014. http://www.omg.org/spec/OCL/2.4/
Plotkin, G.D.: A Structural Approach to Operational Semantics. Tech. rep., University of Aarhus, dAIMI FN-19 (1981)
Rumbaugh, J., Jacobsen, I., Booch, G.: The Unified Modeling Language Reference Manual. The Addison-Wesley Object Technology Series, 2 edn. Addison-Wesley Professional, July 2004
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
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
Steffen, B.: Generating data flow analysis algorithms from modal specifications. Sci. Comput. Program. 21(2), 115–139 (1993)
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)
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)
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)
Steffen, B., Margaria, T., Wagner, C.: Round-Trip Engineering, chap. 94, pp. 1044–1055. Taylor & Francis (2010)
Steffen, B., Naujokat, S.: Archimedean points: the essence for mastering change. LNCS Trans. Found. for Mastering Change (FoMaC) 1(1) (2016)
Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: EMF: Eclipse Modeling Framework, 2nd edn. Addison-Wesley, Boston (2008)
Wolper, P.: The meaning of “formal”: from weak to strong formal methods. Int. J. Softw. Tools Technol. Transf. (STTT) 1(1), 6–8 (1997)
Acknowledgments
This work was supported, in part, by Science Foundation Ireland grant 13/RC/2094 and co-funded under the European Regional Development Fund through the Southern & Eastern Regional Operational Programme to Lero - the Irish Software Research Centre (www.lero.ie).
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer International Publishing AG
About this paper
Cite this paper
Naujokat, S., Neubauer, J., Margaria, T., Steffen, B. (2016). Meta-Level Reuse for Mastering Domain Specialization. In: Margaria, T., Steffen, B. (eds) Leveraging Applications of Formal Methods, Verification and Validation: Discussion, Dissemination, Applications. ISoLA 2016. Lecture Notes in Computer Science(), vol 9953. Springer, Cham. https://doi.org/10.1007/978-3-319-47169-3_16
Download citation
DOI: https://doi.org/10.1007/978-3-319-47169-3_16
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-47168-6
Online ISBN: 978-3-319-47169-3
eBook Packages: Computer ScienceComputer Science (R0)