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.
Similar content being viewed by others
References
Alur R., Dill D.L.: A theory of timed automata. Theor. Comput. Sci. 126(2), 183–235 (1994)
Atkinson C., Gutheil M., Kennel B.: A flexible infrastructure for multilevel language engineering. IEEE Trans. Soft. Eng. 35(6), 742–755 (2009)
Atkinson C., Kühne T.: Rearchitecting the UML infrastructure. ACM Trans. Model. Comput. Simul. 12(4), 290–321 (2002)
Bagge A.H., Haveraaen M.: Axiom-based transformations: optimisation and testing. Electr. Notes Theor. Comput. Sci. 238(5), 17–33 (2009)
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/
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/
Boost. http://www.boost.org/
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)
BPMN. http://www.bpmn.org/
Cardelli L., Wegner P.: On understanding types, data abstraction, and polymorphism. ACM Comput. Surv. 17, 471–523 (1985)
Clark T., Evans A., Kent S.: Aspect-oriented metamodelling. Comput. J. 46, 566–577 (2003)
Clark T., Sammut P., Willans J.: Applied Metamodelling, a Foundation for Language Driven Development, 2nd edn. Ceteva, Leeds (2008)
CPNTools. http://cpntools.org/
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/
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)
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)
de Lara J., Vangheluwe H.: Automating the transformation-based analysis of visual languages. Formal Aspects Comput. 22, 297–326 (2010)
Dingel J., Diskin Z., Zito A.: Understanding and improving UML package merge. SoSyM 7, 443–467 (2008)
D’Souza D.F., Wills A.C.: Objects, Components, and Frameworks with UML: The Catalysis Approach. Addison-Wesley Longman Publishing Co. Inc., Boston (1999)
Ehrig H., Ehrig K., Prange U., Taentzer G.: Fundamentals of Algebraic Graph Transformation. Springer, Berlin (2006)
Ehrig, H., Mahr, B.: Fundamentals of Algebraic Specification 2: Module Specifications and Constraints. Springer, Monographs in Theor. Comp. Sci. (1990)
Epsilon. http://www.eclipse.org/gmt/epsilon/ (2009)
Gamma E., Helm R., Johnson R., Vlissides J.M.: Design Patterns. Elements of Reusable Object-Oriented Software. Addison Wesley, Boston (1994)
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)
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)
Heidenreich F., Henriksson J., Johannes J., Zschaler S.: On language-independent model modularisation. T. Asp.Oriented Soft. Dev. VI 6, 39–82 (2009)
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
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)
Järvi J., Marcus M., Smith J.N.: Programming with C++ concepts. Sci. Comput. Program. 75(7), 596–614 (2010)
Kermeta. http://www.kermeta.org/
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)
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)
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)
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)
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)
Murata T.: Petri nets: properties, analysis and applications. Proc. IEEE 77(4), 541–580 (1989)
Musser, D.R., Schupp, S., Loos, R.: Requirement oriented programming. In: Generic Programming. LNCS, vol. 1766, pp. 12–24. Springer, Berlin (1998)
Mylopoulos J., Borgida A., Jarke M., Koubarakis M.: Telos: representing knowledge about information systems. ACM Trans. Inf. Syst. 8(4), 325–362 (1990)
OMG UML 2.2 specification. http://www.omg.org/spec/UML/2.2/
OMG MOF 2.0. http://www.omg.org/spec/MOF/2.0/ (2009)
Rose, L., Guerra, E., de Lara, J., Etien, A., Kolovos, D.S., Paige, R.F.: Genericity for model management operations. SoSyM (2011, in press)
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)
Sen, S., Moha, N., Baudry, B., Jézéquel, J.-M.: Meta-model pruning. In: MoDELS, LNCS, vol. 5795, pp. 32–46 (2009)
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)
Steel J., Jézéquel J.-M.: On model typing. SoSyM 6(4), 401–413 (2007)
Steinberg D., Budinsky F., Paternostro M., Merks E.: EMF: eclipse Modeling Framework, 2nd Edition. Addison-Wesley Professional, Boston (2008)
Stepanov, A., Lee, M.: The standard template library. Technical report. HP Labs, Palo Alto (1994)
Stepanov A., McJones P.: Elements of Programming. Addison Wesley, Boston (2009)
Stroustrup, B.: The C++0x remove concepts decision. Dr. Dobbs (2009). http://www.ddj.com/cpp/218600111
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)
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by Prof. Dorina Petriu.
Rights 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
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10270-011-0221-0