{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,9,29]],"date-time":"2026-09-29T21:47:11Z","timestamp":1790718431834,"version":"4.1.0"},"reference-count":67,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2017,5,5]],"date-time":"2017-05-05T00:00:00Z","timestamp":1493942400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"Spanish MINECO","award":["TIN2014-52129-R"],"award-info":[{"award-number":["TIN2014-52129-R"]}]},{"name":"R8D programme of the Madrid Region","award":["S2013\/ICE-3006"],"award-info":[{"award-number":["S2013\/ICE-3006"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Softw. Eng. Methodol."],"published-print":{"date-parts":[[2017,5,5]]},"abstract":"<jats:p>Model-Driven Engineering (MDE) is founded on the ability to create and process models conforming to a meta-model. In this context, classes in a meta-model are used in two ways: as templates to create objects and as (static) classifiers for them. These two aspects are inherently tied in most meta-modelling approaches, which results in unnecessarily rigid systems and hinders reusability of MDE artefacts.<\/jats:p><jats:p>In this work, we discuss the benefits of decoupling object creation from typing in MDE. Thus, we rely on standard mechanisms for object creation, and propose<jats:italic>a posteriori<\/jats:italic>typing as a means to retype objects and enable multiple, partial, dynamic typings. This approach enhances flexibility; permits unanticipated reuse, as model management operations defined for a meta-model can be reused with other models once they get reclassified; and enables bidirectional model transformation by reclassification. In particular, we propose two mechanisms to realise model retyping and show their underlying theory and analysis methods. We show the feasibility of the approach by an implementation atop our meta-modelling tool M<jats:sc>eta<\/jats:sc>D<jats:sc>epth<\/jats:sc>and present several applications of retypings (transformations, reuse, and dynamicity).<\/jats:p>","DOI":"10.1145\/3063384","type":"journal-article","created":{"date-parts":[[2017,5,8]],"date-time":"2017-05-08T12:26:59Z","timestamp":1494246419000},"page":"1-60","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":17,"title":["<i>A Posteriori<\/i>Typing for Model-Driven Engineering"],"prefix":"10.1145","volume":"25","author":[{"given":"Juan De","family":"Lara","sequence":"first","affiliation":[{"name":"Universidad Aut\u00f3noma de Madrid (Spain)"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Esther","family":"Guerra","sequence":"additional","affiliation":[{"name":"Universidad Aut\u00f3noma de Madrid (Spain)"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2017,5,5]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"Colin Atkinson Bastian Kennel and Bj\u00f6rn Go\u00df. 2011. Supporting constructive and exploratory modes of modeling in multilevel ontologies. In SWESE. 1--15. Colin Atkinson Bastian Kennel and Bj\u00f6rn Go\u00df. 2011. Supporting constructive and exploratory modes of modeling in multilevel ontologies. In SWESE. 1--15."},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1109\/MS.2003.1231149"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-14819-4_15"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/319628.319634"},{"key":"e_1_2_1_5_1","volume-title":"OOPSLA Workshop on Revival of Dynamic Languages. 1--6.","author":"Bracha Gilad","year":"2004"},{"key":"e_1_2_1_6_1","doi-asserted-by":"crossref","unstructured":"Marco Brambilla Jordi Cabot and Manuel Wimmer. 2012. Model-Driven Software Engineering in Practice. Morgan 8 Claypool Publishers. Marco Brambilla Jordi Cabot and Manuel Wimmer. 2012. Model-Driven Software Engineering in Practice. Morgan 8 Claypool Publishers.","DOI":"10.1007\/978-3-031-02546-4"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10270-014-0413-5"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jss.2009.03.009"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/74877.74924"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jss.2015.08.017"},{"key":"e_1_2_1_11_1","volume-title":"SEFM (LNCS)","author":"Claris\u00f3 Robert"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1109\/CISIS.2008.69"},{"key":"e_1_2_1_13_1","volume-title":"An Introduction to Database Systems","author":"Date C. J.","edition":"8"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/319732.319740"},{"key":"e_1_2_1_15_1","volume-title":"TOOLS (LNCS)","author":"de Lara Juan"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10270-011-0221-0"},{"key":"e_1_2_1_17_1","first-page":"5","article-title":"Towards the flexible reuse of model transformations: A formal approach based on graph transformation","volume":"83","author":"de Lara Juan","year":"2014","journal-title":"J. Log. Algebr. Meth. Program."},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/2685615"},{"key":"e_1_2_1_19_1","volume-title":"A-posteriori typing for model-driven engineering","author":"de Lara Juan"},{"key":"e_1_2_1_20_1","volume-title":"Workshop Proceedings of the Bx (CEUR\u201916)","volume":"1571","author":"Diskin Zinovy","year":"2016"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jss.2015.06.003"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-28872-2_12"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/514952.514955"},{"key":"e_1_2_1_24_1","volume-title":"Fundamentals of Algebraic Graph Transformation","author":"Ehrig Hartmut"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1007\/s11432-015-5316-8"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/1232420.1232424"},{"key":"e_1_2_1_27_1","first-page":"6","article-title":"An introduction to UML profiles","author":"Fuentes Lidia","year":"2004","journal-title":"UPGRADE"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/230538.230540"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/1167515.1167499"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.datak.2016.11.001"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.infsof.2008.09.005"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-31491-9_30"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-00593-0_22"},{"key":"e_1_2_1_34_1","doi-asserted-by":"crossref","first-page":"181","DOI":"10.3233\/APO-2007-033","article-title":"A precise model for contextual roles: The programming language ObjectTeams\/Java","volume":"2","author":"Herrmann Stephan","year":"2007","journal-title":"Appl. Ontol."},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10270-014-0450-0"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/505145.505149"},{"key":"e_1_2_1_37_1","unstructured":"Daniel Jackson. 2006. Software Abstractions\u2014Logic Language and Analysis. MIT Press. Daniel Jackson. 2006. Software Abstractions\u2014Logic Language and Analysis. MIT Press."},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1007\/11841883_23"},{"key":"e_1_2_1_39_1","doi-asserted-by":"crossref","unstructured":"K. C. Kang S. G. Cohen J. A. Hess W. E. Novak and A. S. Peterson. 1990. Feature-Oriented Domain Analysis (FODA) Feasibility Study. Technical Report. Carnegie-Mellon University Software Engineering Institute. K. C. Kang S. G. Cohen J. A. Hess W. E. Novak and A. S. Peterson. 1990. Feature-Oriented Domain Analysis (FODA) Feasibility Study. Technical Report. Carnegie-Mellon University Software Engineering Institute.","DOI":"10.21236\/ADA235785"},{"key":"e_1_2_1_40_1","volume-title":"Domain-Specific Modeling\u2014Enabling Full Code Generation","author":"Kelly Steven"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.csi.2012.05.003"},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1007\/11787044_11"},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-69927-9_4"},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-33666-9_27"},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10270-012-0241-4"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.5381\/jot.2004.3.7.a2"},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1109\/5.24143"},{"key":"e_1_2_1_48_1","volume-title":"Prototype-Based Programming: Concepts, Languages and Applications","author":"Noble James"},{"key":"e_1_2_1_49_1","volume-title":"Conceptual Modeling of Information Systems","author":"Oliv\u00e9 Antoni"},{"key":"e_1_2_1_50_1","unstructured":"OMG. 2013a. SMOF 1.0. Retrieved from http:\/\/www.omg.org\/spec\/SMOF\/1.0\/. OMG. 2013a. SMOF 1.0. Retrieved from http:\/\/www.omg.org\/spec\/SMOF\/1.0\/."},{"key":"e_1_2_1_51_1","unstructured":"OMG. 2013b. UML 2.5. Retrieved from http:\/\/www.omg.org\/spec\/UML\/2.5\/Beta2\/. OMG. 2013b. UML 2.5. Retrieved from http:\/\/www.omg.org\/spec\/UML\/2.5\/Beta2\/."},{"key":"e_1_2_1_52_1","unstructured":"OMG. 2014. MOF 2.4.2. Retrieved from http:\/\/www.omg.org\/spec\/MOF\/. OMG. 2014. MOF 2.4.2. Retrieved from http:\/\/www.omg.org\/spec\/MOF\/."},{"key":"e_1_2_1_53_1","unstructured":"OMG. 2016. QVT 2.0. Retrieved from http:\/\/www.omg.org\/spec\/QVT\/. OMG. 2016. QVT 2.0. Retrieved from http:\/\/www.omg.org\/spec\/QVT\/."},{"key":"e_1_2_1_54_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICECCS.2009.14"},{"key":"e_1_2_1_55_1","volume-title":"Types and Programming Languages","author":"Pierce Benjamin C."},{"key":"e_1_2_1_56_1","volume-title":"Workshop Proceedings of the Analysis of Model Transformations (CEUR)","volume":"1500","author":"Salay Rick","year":"2015"},{"key":"e_1_2_1_57_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-42064-6_8"},{"key":"e_1_2_1_58_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2014.2339852"},{"key":"e_1_2_1_59_1","volume-title":"WG (LNCS\u201994)","author":"Sch\u00fcrr Andy"},{"key":"e_1_2_1_60_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10270-006-0036-6"},{"key":"e_1_2_1_61_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0169-023X(00)00023-9"},{"key":"e_1_2_1_62_1","volume-title":"Merks","author":"Steinberg Dave","year":"2008"},{"key":"e_1_2_1_63_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10270-008-0109-9"},{"key":"e_1_2_1_64_1","doi-asserted-by":"publisher","DOI":"10.1145\/1062455.1062498"},{"key":"e_1_2_1_65_1","doi-asserted-by":"publisher","DOI":"10.1145\/38765.38828"},{"key":"e_1_2_1_67_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-12107-4_19"},{"key":"e_1_2_1_68_1","doi-asserted-by":"publisher","DOI":"10.1145\/2631675.2631678"}],"container-title":["ACM Transactions on Software Engineering and Methodology"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3063384","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3063384","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T08:40:23Z","timestamp":1750236023000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3063384"}},"subtitle":["Concepts, Analysis, and Applications"],"short-title":[],"issued":{"date-parts":[[2017,5,5]]},"references-count":67,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2017,5,5]]}},"alternative-id":["10.1145\/3063384"],"URL":"https:\/\/doi.org\/10.1145\/3063384","relation":{},"ISSN":["1049-331X","1557-7392"],"issn-type":[{"value":"1049-331X","type":"print"},{"value":"1557-7392","type":"electronic"}],"subject":[],"published":{"date-parts":[[2017,5,5]]},"assertion":[{"value":"2016-06-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2017-02-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2017-05-05","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}