Skip to main content
Log in

From types to type requirements: genericity for model-driven engineering

  • Special Section Paper
  • Published:
Software & Systems Modeling Aims and scope Submit manuscript

Abstract

Model-driven engineering (MDE) is a software engineering paradigm that proposes an active use of models during the development process. This paradigm is inherently type-centric, in the sense that models and their manipulation are defined over the types of specific meta-models. This fact hinders the reuse of existing MDE artefacts with other meta-models in new contexts, even if all these meta-models share common characteristics. To increase the reuse opportunities of MDE artefacts, we propose a paradigm shift from type-centric to requirement-centric specifications by bringing genericity into models, meta-models and model management operations. For this purpose, we introduce so-called concepts gathering structural and behavioural requirements for models and meta-models. In this way, model management operations are defined over concepts, enabling the application of the operations to any meta-model satisfying the requirements imposed by the concept. Model templates rely on concepts to define suitable interfaces, hence enabling the definition of reusable model components. Finally, similar to mixin layers, templates can be defined at the meta-model level as well, to define languages in a modular way, as well as layers of functionality to be plugged-in into other meta-models. These ideas have been implemented in MetaDepth, a multi-level meta-modelling tool that integrates action languages from the Epsilon family for model management and code generation.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Alur R., Dill D.L.: A theory of timed automata. Theor. Comput. Sci. 126(2), 183–235 (1994)

    Article  MathSciNet  MATH  Google Scholar 

  2. Atkinson C., Gutheil M., Kennel B.: A flexible infrastructure for multilevel language engineering. IEEE Trans. Soft. Eng. 35(6), 742–755 (2009)

    Article  Google Scholar 

  3. Atkinson C., Kühne T.: Rearchitecting the UML infrastructure. ACM Trans. Model. Comput. Simul. 12(4), 290–321 (2002)

    Article  Google Scholar 

  4. Bagge A.H., Haveraaen M.: Axiom-based transformations: optimisation and testing. Electr. Notes Theor. Comput. Sci. 238(5), 17–33 (2009)

    Article  Google Scholar 

  5. Behrmann, G., David, A., Larsen, K.G., Hakansson, J., Pettersson, P., Yi, W., Hendriks, M.: Uppaal 4.0. In: Proceedings of QEST, pp. 125–126 (2006). http://www.uppaal.org/

  6. Bonet, P., Llado, C., Puijaner, R., Knottenbelt, W.: PIPE v2.5: A Petri net tool for performance modelling. In: CLEI’07 (2007). http://pipe2.sourceforge.net/

  7. Boost. http://www.boost.org/

  8. Bottoni P., Guerra E., de Lara J.: Enforced generative patterns for the specification of the syntax and semantics of visual languages. J. Vis. Lang. Comput. 19(4), 429–455 (2008)

    Article  Google Scholar 

  9. BPMN. http://www.bpmn.org/

  10. Cardelli L., Wegner P.: On understanding types, data abstraction, and polymorphism. ACM Comput. Surv. 17, 471–523 (1985)

    Article  Google Scholar 

  11. Clark T., Evans A., Kent S.: Aspect-oriented metamodelling. Comput. J. 46, 566–577 (2003)

    Article  MATH  Google Scholar 

  12. Clark T., Sammut P., Willans J.: Applied Metamodelling, a Foundation for Language Driven Development, 2nd edn. Ceteva, Leeds (2008)

    Google Scholar 

  13. CPNTools. http://cpntools.org/

  14. de Lara, J., Guerra, E.: Deep meta-modelling with MetaDepth. In: TOOLS’10. LNCS, vol. 6141, pp. 1–20. Springer, Berlin (2010). http://astreo.ii.uam.es/~jlara/metaDepth/

  15. de Lara, J., Guerra, E.: Generic meta-modelling with concepts, templates and mixin layers. In: MoDELS (1). LNCS, vol. 6394, pp. 16–30. Springer, Berlin (2010)

  16. de Lara, J., Guerra, E., Bottoni, P.: Triple patterns: Compact specifications for the generation of operational triple graph grammar rules. In: GT-VMT’07. Electronic Communications of the EASST, vol. 6 (2007)

  17. de Lara J., Vangheluwe H.: Automating the transformation-based analysis of visual languages. Formal Aspects Comput. 22, 297–326 (2010)

    Article  MATH  Google Scholar 

  18. Dingel J., Diskin Z., Zito A.: Understanding and improving UML package merge. SoSyM 7, 443–467 (2008)

    Article  Google Scholar 

  19. D’Souza D.F., Wills A.C.: Objects, Components, and Frameworks with UML: The Catalysis Approach. Addison-Wesley Longman Publishing Co. Inc., Boston (1999)

    Google Scholar 

  20. Ehrig H., Ehrig K., Prange U., Taentzer G.: Fundamentals of Algebraic Graph Transformation. Springer, Berlin (2006)

    MATH  Google Scholar 

  21. Ehrig, H., Mahr, B.: Fundamentals of Algebraic Specification 2: Module Specifications and Constraints. Springer, Monographs in Theor. Comp. Sci. (1990)

  22. Epsilon. http://www.eclipse.org/gmt/epsilon/ (2009)

  23. Gamma E., Helm R., Johnson R., Vlissides J.M.: Design Patterns. Elements of Reusable Object-Oriented Software. Addison Wesley, Boston (1994)

    Google Scholar 

  24. García R., Jarvi J., Lumsdaine A., Siek J.G., Willcock J.: A comparative study of language support for generic programming. SIGPLAN Not. 38(11), 115–134 (2003)

    Article  Google Scholar 

  25. Gregor, D., Järvi, J., Siek, J.G., Stroustrup, B., Reis, G.D., Lumsdaine, A.: Concepts: linguistic support for generic programming in C++. In: OOPSLA. pp. 291–310. ACM, New York (2006)

  26. Heidenreich F., Henriksson J., Johannes J., Zschaler S.: On language-independent model modularisation. T. Asp.Oriented Soft. Dev. VI 6, 39–82 (2009)

    Article  Google Scholar 

  27. Hillah, L., Kindler, E., Kordon, F., Petrucci, L., Tréves, N.: A primer on the petri net markup language and iso/iec 15909-2. Petri Net Newsl 76, 9–28 (2009). http://www.pnml.org

  28. Jarke M., Gallersdörfer R., Jeusfeld M.A., Staudt M.: Conceptbase—a deductive object base for meta data management. J. Intell. Inf. Syst. 4(2), 167–192 (1995)

    Article  Google Scholar 

  29. Järvi J., Marcus M., Smith J.N.: Programming with C++ concepts. Sci. Comput. Program. 75(7), 596–614 (2010)

    Article  MATH  Google Scholar 

  30. Kermeta. http://www.kermeta.org/

  31. Kienzle, J., Abed, W.A., Fleurey, F., Jézéquel, J.-M., Klein, J.: Aspect-oriented design with reusable aspect models. In: Transaction on Aspect Oriented Software Development 7. vol. 6210, pp. 272–320 (2010)

  32. Kolovos D.S., Paige R.F., Polack, F.: The Epsilon Object Language (EOL). In: ECMDA-FA’06. LNCS, vol. 4066, pp. 128–142. Springer, Berlin (2006)

  33. Kühne, T.: An observer-based notion of model inheritance. In: MoDELS’10, volume 6394—Part I of LNCS, pp. 31–45. Springer, Berlin (2010)

  34. Kühne, T., Schreiber, D.: Can programming be liberated from the two-level style? – Multi-level programming with DeepJava. In: OOPSLA’07, pp. 229–244. ACM, New York (2007)

  35. Moha, N., Mahé, V., Barais, O., Jézéquel, J.-M.: Generic model refactorings. In: MoDELS’09. LNCS, vol. 5795, pp. 628–643. Springer, Berlin (2009)

  36. Murata T.: Petri nets: properties, analysis and applications. Proc. IEEE 77(4), 541–580 (1989)

    Article  Google Scholar 

  37. Musser, D.R., Schupp, S., Loos, R.: Requirement oriented programming. In: Generic Programming. LNCS, vol. 1766, pp. 12–24. Springer, Berlin (1998)

  38. Mylopoulos J., Borgida A., Jarke M., Koubarakis M.: Telos: representing knowledge about information systems. ACM Trans. Inf. Syst. 8(4), 325–362 (1990)

    Article  Google Scholar 

  39. OMG UML 2.2 specification. http://www.omg.org/spec/UML/2.2/

  40. OMG MOF 2.0. http://www.omg.org/spec/MOF/2.0/ (2009)

  41. Rose, L., Guerra, E., de Lara, J., Etien, A., Kolovos, D.S., Paige, R.F.: Genericity for model management operations. SoSyM (2011, in press)

  42. Rose, L.M., Paige, R.F., Kolovos, D.S., Polack, F.: The epsilon generation language. In: ECMDA-FA’08. LNCS, vol. 5095, pp. 1–16. Springer, Berlin (2008)

  43. Sen, S., Moha, N., Baudry, B., Jézéquel, J.-M.: Meta-model pruning. In: MoDELS, LNCS, vol. 5795, pp. 32–46 (2009)

  44. Smaragdakis Y., Batory D.: Mixin layers: an object-oriented implementation technique for refinements and collaboration-based designs. ACM Trans. Softw. Eng. Methodol. 11(2), 215–255 (2002)

    Article  Google Scholar 

  45. Steel J., Jézéquel J.-M.: On model typing. SoSyM 6(4), 401–413 (2007)

    Article  Google Scholar 

  46. Steinberg D., Budinsky F., Paternostro M., Merks E.: EMF: eclipse Modeling Framework, 2nd Edition. Addison-Wesley Professional, Boston (2008)

    Google Scholar 

  47. Stepanov, A., Lee, M.: The standard template library. Technical report. HP Labs, Palo Alto (1994)

  48. Stepanov A., McJones P.: Elements of Programming. Addison Wesley, Boston (2009)

    Google Scholar 

  49. Stroustrup, B.: The C++0x remove concepts decision. Dr. Dobbs (2009). http://www.ddj.com/cpp/218600111

  50. Weisemöller, I., Schürr, A.: Formal definition of MOF 2.0 metamodel components and composition. In: MoDELS’08. LNCS, vol. 5301, pp. 386–400. Springer, Berlin (2008)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Juan de Lara.

Additional information

Communicated by Prof. Dorina Petriu.

Rights and permissions

Reprints and permissions

About this article

Cite this article

de Lara, J., Guerra, E. From types to type requirements: genericity for model-driven engineering. Softw Syst Model 12, 453–474 (2013). https://doi.org/10.1007/s10270-011-0221-0

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10270-011-0221-0

Keywords

Navigation