{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,10,5]],"date-time":"2026-10-05T20:22:41Z","timestamp":1791231761178,"version":"4.1.0"},"reference-count":35,"publisher":"Springer Science and Business Media LLC","issue":"4","license":[{"start":{"date-parts":[[2020,3,19]],"date-time":"2020-03-19T00:00:00Z","timestamp":1584576000000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2020,3,19]],"date-time":"2020-03-19T00:00:00Z","timestamp":1584576000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"funder":[{"DOI":"10.13039\/501100000848","name":"University of Edinburgh","doi-asserted-by":"crossref","id":[{"id":"10.13039\/501100000848","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Softw Syst Model"],"published-print":{"date-parts":[[2020,7]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Software build systems tackle the problem of building software from sources in a way which is sound (when a build completes successfully, the relations between the generated and source files are as specified) and optimal (only genuinely required rebuilding steps are done). In this paper, we explain and exploit the connection between software build and the megamodel consistency problem. The model-driven development of systems involves multiple models, metamodels and transformations. Transformations\u2014which may be bidirectional\u2014specify, and provide means to enforce, desired \u201cconsistency\u201d relationships between models. We can describe the whole configuration using a megamodel. As development proceeds, and various models are modified, we need to be able to restore consistency in the megamodel, so that the consequences of decisions first recorded in one model are appropriately reflected in the others. At the same time, we need to minimise the amount of recomputation needed; in particular, we would like to avoid reapplying a transformation when no relevant changes have occurred in the models it relates. The megamodel consistency problem requires flexibility beyond what is found in conventional software build, because different results are obtained depending on which models are allowed to be modified and on the order and direction of transformation application. In this paper, we propose using an orientation model to make important choices explicit. We show how to extend the formalised build system <jats:italic>pluto<\/jats:italic> to provide a means of restoring consistency in a megamodel, that is, in appropriate senses, flexible, sound and optimal.<\/jats:p>","DOI":"10.1007\/s10270-020-00788-4","type":"journal-article","created":{"date-parts":[[2020,3,19]],"date-time":"2020-03-19T07:02:57Z","timestamp":1584601377000},"page":"935-958","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":20,"title":["Connecting software build with maintaining consistency between models: towards sound, optimal, and flexible building from megamodels"],"prefix":"10.1007","volume":"19","author":[{"given":"Perdita","family":"Stevens","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"297","published-online":{"date-parts":[[2020,3,19]]},"reference":[{"issue":"3","key":"788_CR1","doi-asserted-by":"publisher","first-page":"79","DOI":"10.1109\/MS.2013.65","volume":"31","author":"J Whittle","year":"2014","unstructured":"Whittle, J., Hutchinson, J.E., Rouncefield, M.: The state of practice in model-driven engineering. IEEE Softw. 31(3), 79\u201385 (2014)","journal-title":"IEEE Softw."},{"key":"788_CR2","doi-asserted-by":"crossref","unstructured":"Kuhn, A., Murphy, G.C., Thompson, C.A.: An exploratory study of forces and frictions affecting large-scale model-driven development. In: MoDELS, Volume 7590 of Lecture Notes in Computer Science, pp. 352\u2013367. Springer (2012)","DOI":"10.1007\/978-3-642-33666-9_23"},{"key":"788_CR3","unstructured":"Object\u00a0Management Group. Model driven architecture (MDA) MDA guide rev. 2.0 (2014)"},{"key":"788_CR4","unstructured":"B\u00e9zivin, J., Jouault, F., Valduriez, P.: On the need for megamodels. In: Proceedings of the OOPLSA\/GPCE Workshop: Best Practices for Model-Driven Software Development (2004)"},{"key":"788_CR5","doi-asserted-by":"crossref","unstructured":"Stevens, P.: Is bidirectionality important? In: Pierantonio, A., Trujillo, S. (eds) Modelling Foundations and Applications\u201414th European Conference, ECMFA 2018, Held as Part of STAF 2018, Toulouse, France, June 26-28, 2018, Proceedings, volume 10890 of Lecture Notes in Computer Science, pp. 1\u201311. Springer (2018)","DOI":"10.1007\/978-3-319-92997-2_1"},{"key":"788_CR6","doi-asserted-by":"crossref","unstructured":"Stevens, P.: Bidirectional transformations in the large. In: MODELS, pp. 1\u201317. IEEE (2017)","DOI":"10.1109\/MODELS.2017.8"},{"key":"788_CR7","doi-asserted-by":"crossref","unstructured":"Stevens, P.: Maintaining consistency in networks of models: Bidirectional transformations in the large. Softw. Syst. Model. (2019). Online first, May 2019","DOI":"10.1007\/s10270-019-00736-x"},{"key":"788_CR8","first-page":"79:1","volume":"2","author":"A Mokhov","year":"2018","unstructured":"Mokhov, A., Mitchell, N., Peyton Jones, S.: Build systems \u00e0 la carte. PACMPL 2, 79:1\u201379:29 (2018)","journal-title":"PACMPL"},{"key":"788_CR9","doi-asserted-by":"crossref","unstructured":"Erdweg, S. Lichter, M., Weiel, M.: A sound and optimal incremental build system with dynamic dependencies. In: OOPSLA, pp. 89\u2013106. ACM (2015)","DOI":"10.1145\/2858965.2814316"},{"key":"788_CR10","doi-asserted-by":"crossref","unstructured":"Stevens, P.: Towards sound, optimal, and flexible building from megamodels. In: ACM\/IEEE 21th International Conference on Model Driven Engineering Languages and Systems (MODELS\u201918). ACM (2018)","DOI":"10.1145\/3239372.3239378"},{"issue":"12","key":"788_CR11","first-page":"1","volume":"8","author":"A Cleve","year":"2019","unstructured":"Cleve, A., Kindler, E., Stevens, P., Zaytsev, V.: Report from Dagstuhl Seminar 18491. Multidirectional Transformations and Synchronisations. Dagstuhl Rep. 8(12), 1\u201348 (2019)","journal-title":"Multidirectional Transformations and Synchronisations. Dagstuhl Rep."},{"key":"788_CR12","doi-asserted-by":"crossref","unstructured":"Trollmann, F., Albayrak, S.: Extending model synchronization results from triple graph grammars to multiple models. In: Van Gorp, P., Engels, G. (eds) Theory and Practice of Model Transformations\u20149th International Conference, ICMT 2016, Held as Part of STAF 2016, Vienna, Austria, July 4-5, 2016, Proceedings, Volume 9765 of Lecture Notes in Computer Science, pp. 91\u2013106. Springer (2016)","DOI":"10.1007\/978-3-319-42064-6_7"},{"issue":"5","key":"788_CR13","doi-asserted-by":"publisher","first-page":"611","DOI":"10.1007\/s00165-019-00493-0","volume":"31","author":"Z Diskin","year":"2019","unstructured":"Diskin, Z., K\u00f6nig, H., Lawford, M.: Multiple model synchronization with multiary delta lenses with amendment and k-putput. Formal Asp. Comput. 31(5), 611\u2013640 (2019)","journal-title":"Formal Asp. Comput."},{"key":"788_CR14","unstructured":"Kolovos, D.S., Paige, R.F., Polack, F.A.C.: A framework for composing modular and interoperable model management tasks. In: In Model-Driven Tool and Process Integration Workshop, pp. 79\u201390 (2008)"},{"key":"788_CR15","doi-asserted-by":"publisher","first-page":"4","DOI":"10.22152\/programming-journal.org\/2017\/1\/4","volume":"1","author":"R L\u00e4mmel","year":"2017","unstructured":"L\u00e4mmel, R.: Relationship maintenance in software language repositories. Art Sci. Eng. Program. J. 1, 4 (2017)","journal-title":"Art Sci. Eng. Program. J."},{"issue":"2","key":"788_CR16","doi-asserted-by":"publisher","first-page":"9","DOI":"10.22152\/programming-journal.org\/2017\/1\/9","volume":"1","author":"S Erdweg","year":"2017","unstructured":"Erdweg, S., Ostermann, K.: A module-system discipline for model-driven software development. Program. J. 1(2), 9 (2017)","journal-title":"Program. J."},{"key":"788_CR17","unstructured":"Di Rocco, J., Di Ruscio, D., Heinz, M., Iovino, L., L\u00e4mmel, R., Pierantonio, A.: Consistency recovery in interactive modeling. In: EXE at MODELS (2017)"},{"key":"788_CR18","unstructured":"Basciani, F., Di Rocco, J., Di Ruscio, D., Di Salle, A., Iovino, L., Pierantonio, A.: Mdeforge: an extensible web-based modeling platform. In: CloudMDE, Volume 1242 of CEUR Workshop Proceedings (2014)"},{"key":"788_CR19","doi-asserted-by":"crossref","unstructured":"Di Rocco, J., Di Ruscio, D., H\u00e4rtel, J., Iovino, L., L\u00e4mmel, R., Pierantonio, A.: Understanding MDE projects: megamodels to the rescue for architecture recovery. Softw. Syst. Model. (2019). First Online: 18 July 2019","DOI":"10.1007\/s10270-019-00748-7"},{"key":"788_CR20","unstructured":"Hebig, R., Giese, H., Batoulis, K., Langer, P., Farahani, A.Z., Yao, G., Wolowyk, M.: Development of AUTOSAR standard documents at Carmeq GmbH: a case study. Universit\u00e4tsverlag Potsdam (2015)"},{"key":"788_CR21","unstructured":"McKinna, J., Stevens, P.: How to regain equilibrium without losing your balance? scenarios for bx deployment (discussion paper). In: Anjorin, A., Gibbons, J. (eds) Proceedings of the 5th International Workshop on Bidirectional Transformations, Bx 2016, co-located with The European Joint Conferences on Theory and Practice of Software, ETAPS 2016, Eindhoven, The Netherlands, April 8, 2016, volume 1571 of CEUR Workshop Proceedings, pp. 32\u201334. CEUR-WS.org (2016)"},{"key":"788_CR22","doi-asserted-by":"crossref","unstructured":"Epperly, T., Kumfert, G.: Software in the DOE: the hidden overhead of \u201cthe build\u201d. Technical Report UCRL-ID-147343, Lawrence Livermore National Laboratory, CA, USA (2002)","DOI":"10.2172\/15005938"},{"key":"788_CR23","doi-asserted-by":"crossref","unstructured":"McIntosh, S., Adams, B. Nguyen, T.H.D., Kamei, Y., Hassan, A.E.: An empirical study of build maintenance effort. In: ICSE, pp. 141\u2013150. ACM (2011)","DOI":"10.1145\/1985793.1985813"},{"key":"788_CR24","doi-asserted-by":"crossref","unstructured":"Mokhov, A., Mitchell, N., Jones, S.P., Marlow, S.: Non-recursive make considered harmful: build systems at scale. In: Haskell, pp. 170\u2013181. ACM (2016)","DOI":"10.1145\/3241625.2976011"},{"issue":"1","key":"788_CR25","doi-asserted-by":"publisher","first-page":"7","DOI":"10.1007\/s10270-008-0109-9","volume":"9","author":"P Stevens","year":"2010","unstructured":"Stevens, P.: Bidirectional model transformations in QVT: semantic issues and open questions. J. Softw. Syst. Model. (SoSyM) 9(1), 7\u201320 (2010)","journal-title":"J. Softw. Syst. Model. (SoSyM)"},{"issue":"3","key":"788_CR26","doi-asserted-by":"publisher","first-page":"17","DOI":"10.1145\/1232420.1232424","volume":"29","author":"JN Foster","year":"2007","unstructured":"Foster, J.N., Greenwald, M.B., Moore, J.T., Pierce, B.C., Schmitt, A.: Combinators for bidirectional tree transformations: a linguistic approach to the view-update problem. ACM Trans. Program. Lang. Syst. 29(3), 17 (2007)","journal-title":"ACM Trans. Program. Lang. Syst."},{"key":"788_CR27","unstructured":"Stevens, P.: Observations relating to the equivalences induced on model sets by bidirectional transformations. In: EC-EASST, 049 (2012)"},{"issue":"3","key":"788_CR28","doi-asserted-by":"publisher","first-page":"647","DOI":"10.1007\/s10270-014-0429-x","volume":"15","author":"L L\u00facio","year":"2016","unstructured":"L\u00facio, L., Amrani, M., Dingel, J., Lambers, L., Salay, R., Selim, G.M.K., Syriani, E., Wimmer, M.: Model transformation intents and their properties. Softw. Syst. Model. 15(3), 647\u2013684 (2016)","journal-title":"Softw. Syst. Model."},{"key":"788_CR29","unstructured":"Hofmann, M., Pierce, B.C., Wagner, D.: Edit lenses. In: Field, J., Hicks, M. (eds). Proceedings of the 39th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2012, Philadelphia, Pennsylvania, USA, January 22-28, 2012, pp. 495\u2013508. ACM (2012)"},{"issue":"6","key":"788_CR30","first-page":"1","volume":"10","author":"Z Diskin","year":"2011","unstructured":"Diskin, Z., Xiong, Y., Czarnecki, K.: From state- to delta-based bidirectional model transformations: the asymmetric case. J. Object Technol. 10(6), 1\u201325 (2011)","journal-title":"J. Object Technol."},{"issue":"4","key":"788_CR31","doi-asserted-by":"publisher","first-page":"927","DOI":"10.1007\/s10270-017-0621-x","volume":"16","author":"J Gray","year":"2017","unstructured":"Gray, J., Rumpe, B.: The importance of flow in software development. Softw. Syst. Model. 16(4), 927\u2013928 (2017)","journal-title":"Softw. Syst. Model."},{"key":"788_CR32","unstructured":"Garcia, J.: Continuous model-driven engineering. https:\/\/modeling-languages.com\/continuous-model-driven-engineering\/ (2018). Accessed 16 Mar 2020"},{"issue":"2","key":"788_CR33","doi-asserted-by":"publisher","first-page":"171","DOI":"10.1016\/S0164-1212(01)00036-X","volume":"58","author":"B Nuseibeh","year":"2001","unstructured":"Nuseibeh, B., Easterbrook, S.M., Russo, A.: Making inconsistency respectable in software development. J. Syst. Softw. 58(2), 171\u2013180 (2001)","journal-title":"J. Syst. Softw."},{"key":"788_CR34","doi-asserted-by":"crossref","unstructured":"Kling, W., Jouault, F., Wagelaar, D., Brambilla, M., Cabot, J.: Moscript: a DSL for querying and manipulating model repositories. In: SLE, Volume 6940 of Lecture Notes in Computer Science, pp. 180\u2013200. Springer (2011)","DOI":"10.1007\/978-3-642-28830-2_10"},{"key":"788_CR35","doi-asserted-by":"crossref","unstructured":"Diskin, Z., Kokaly, S., Maibaum, T.: Mapping-aware megamodeling: Design patterns and laws. In: SLE, Volume 8225 of Lecture Notes in Computer Science, pp. 322\u2013343. Springer (2013)","DOI":"10.1007\/978-3-319-02654-1_18"}],"container-title":["Software and Systems Modeling"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/s10270-020-00788-4.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/article\/10.1007\/s10270-020-00788-4\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/s10270-020-00788-4.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2021,3,19]],"date-time":"2021-03-19T00:21:03Z","timestamp":1616113263000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/s10270-020-00788-4"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020,3,19]]},"references-count":35,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2020,7]]}},"alternative-id":["788"],"URL":"https:\/\/doi.org\/10.1007\/s10270-020-00788-4","relation":{},"ISSN":["1619-1366","1619-1374"],"issn-type":[{"value":"1619-1366","type":"print"},{"value":"1619-1374","type":"electronic"}],"subject":[],"published":{"date-parts":[[2020,3,19]]},"assertion":[{"value":"19 July 2019","order":1,"name":"received","label":"Received","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"12 December 2019","order":2,"name":"revised","label":"Revised","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"17 February 2020","order":3,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"19 March 2020","order":4,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}}]}}