{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,2,21]],"date-time":"2025-02-21T12:43:03Z","timestamp":1740141783418,"version":"3.37.3"},"reference-count":49,"publisher":"Springer Science and Business Media LLC","issue":"6","license":[{"start":{"date-parts":[[2021,8,23]],"date-time":"2021-08-23T00:00:00Z","timestamp":1629676800000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2021,8,23]],"date-time":"2021-08-23T00:00:00Z","timestamp":1629676800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"funder":[{"DOI":"10.13039\/501100002790","name":"Canadian Network for Research and Innovation in Machining Technology, Natural Sciences and Engineering Research Council of Canada","doi-asserted-by":"publisher","award":["Discovery Grant"],"award-info":[{"award-number":["Discovery Grant"]}],"id":[{"id":"10.13039\/501100002790","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100000266","name":"Engineering and Physical Sciences Research Council","doi-asserted-by":"publisher","award":["EP\/R512230\/1"],"award-info":[{"award-number":["EP\/R512230\/1"]}],"id":[{"id":"10.13039\/501100000266","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100006041","name":"Innovate UK","doi-asserted-by":"publisher","award":["HICLASS Project \/ 113213"],"award-info":[{"award-number":["HICLASS Project \/ 113213"]}],"id":[{"id":"10.13039\/501100006041","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Softw Syst Model"],"published-print":{"date-parts":[[2021,12]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Open-source model management frameworks such as OCL and ATL tend to focus on manipulating models built atop the Eclipse Modelling Framework (EMF), a de facto standard for domain specific modelling. MATLAB Simulink is a widely used proprietary modelling framework for dynamic systems that is built atop an entirely different technical stack to EMF. To leverage the facilities of open-source model management frameworks with Simulink models, these can be transformed into an EMF-compatible representation. Downsides of this approach include the synchronisation of the native Simulink model and its EMF representation as they evolve; the completeness of the EMF representation, and the transformation cost which can be crippling for large Simulink models. We propose an alternative approach to bridge Simulink models with open-source model management frameworks that uses an \u201con-the-fly\u201d translation of model management constructs into MATLAB statements. Our approach does not require an EMF representation and can mitigate the cost of the upfront transformation on large models. To evaluate both approaches we measure the performance of a model validation process with Epsilon (a model management framework) on a sample of large Simulink models available on GitHub. Our previous results suggest that, with our approach, the total validation time can be reduced by up to 80%. In this paper, we expand our approach to support the management of Simulink requirements and dictionaries, and we improve the approach to perform queries on collections of model elements more efficiently. We demonstrate the use of the Simulink requirements and dictionaries with a case study and we evaluate the optimisations on collection queries with an experiment that compares the performance of a set of queries on models with different sizes. Our results suggest an improvement by up to 99% on some queries.<\/jats:p>","DOI":"10.1007\/s10270-021-00910-0","type":"journal-article","created":{"date-parts":[[2021,8,23]],"date-time":"2021-08-23T15:06:03Z","timestamp":1629731163000},"page":"1889-1918","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":3,"title":["Runtime translation of OCL-like statements on Simulink models: Expanding domains and optimising queries"],"prefix":"10.1007","volume":"20","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-0601-947X","authenticated-orcid":false,"given":"Beatriz A.","family":"Sanchez","sequence":"first","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0001-6020-4468","authenticated-orcid":false,"given":"Athanasios","family":"Zolotas","sequence":"additional","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0002-0322-059X","authenticated-orcid":false,"given":"Horacio","family":"Hoyos\u00a0Rodriguez","sequence":"additional","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0002-1724-6563","authenticated-orcid":false,"given":"Dimitris","family":"Kolovos","sequence":"additional","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0002-1978-9852","authenticated-orcid":false,"given":"Richard F.","family":"Paige","sequence":"additional","affiliation":[]},{"given":"Justin C.","family":"Cooper","sequence":"additional","affiliation":[]},{"given":"Jason","family":"Hampson","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2021,8,23]]},"reference":[{"key":"910_CR1","unstructured":"Ansys: Ansys Scade Suite. https:\/\/www.ansys.com\/products\/embedded-software\/ansys-scade-suite"},{"key":"910_CR2","doi-asserted-by":"publisher","first-page":"29","DOI":"10.1016\/j.scico.2015.07.005","volume":"113","author":"M Bender","year":"2015","unstructured":"Bender, M., Laurin, K., Lawford, M., Pantelic, V., Korobkine, A., Ong, J., Mackenzie, B., Bialy, M., Postma, S.: Signature required: making Simulink data flow and interfaces explicit. Sci. Comput. Program. 113, 29\u201350 (2015). https:\/\/doi.org\/10.1016\/j.scico.2015.07.005","journal-title":"Sci. Comput. Program."},{"key":"910_CR3","doi-asserted-by":"crossref","unstructured":"Chabibi, B., Douche, A., Anwar, A., Nassar, M.: Integrating SysML with simulation environments (Simulink) by model transformation approach. In: Proceedings\u201425th IEEE International Conference on Enabling Technologies: Infrastructure for Collaborative Enterprises, WETICE 2016 pp. 148\u2013150 (2016). https:\/\/doi.org\/10.1109\/WETICE.2016.39","DOI":"10.1109\/WETICE.2016.39"},{"key":"910_CR4","unstructured":"Dassautl Systems: REQTIFY. https:\/\/www.3ds.com\/products-services\/catia\/products\/reqtify\/"},{"issue":"1","key":"910_CR5","doi-asserted-by":"publisher","first-page":"11","DOI":"10.1007\/s10270-016-0534-0","volume":"17","author":"M Di Natale","year":"2018","unstructured":"Di Natale, M., Perillo, D., Chirico, F., Sindico, A., Sangiovanni-Vincentelli, A.: A Model-based approach for the synthesis of software to firmware adapters for use with automatically generated components. Softw. Syst. Model. 17(1), 11\u201333 (2018). https:\/\/doi.org\/10.1007\/s10270-016-0534-0","journal-title":"Softw. Syst. Model."},{"issue":"1","key":"910_CR6","doi-asserted-by":"publisher","first-page":"127","DOI":"10.1109\/JPROC.2002.805829","volume":"91","author":"J Eker","year":"2003","unstructured":"Eker, J., Janneck, J., Lee, E., Jie, L., Xiaojun, L., Ludvig, J., Neuendorffer, S., Sachs, S., Yuhong, X.: Taming heterogeneity\u2013the Ptolemy approach. Proc. IEEE 91(1), 127\u2013144 (2003). https:\/\/doi.org\/10.1109\/JPROC.2002.805829","journal-title":"Proc. IEEE"},{"key":"910_CR7","doi-asserted-by":"publisher","first-page":"36","DOI":"10.1007\/978-3-319-42061-5_3","volume-title":"Supporting the Linked Data Approach to Maintain Coherence Across Rich EMF Models","author":"J El-Khoury","year":"2016","unstructured":"El-Khoury, J., Ekelin, C., Ekholm, C.: Supporting the Linked Data Approach to Maintain Coherence Across Rich EMF Models, pp. 36\u201347. Springer, Berlin Heidelberg (2016). https:\/\/doi.org\/10.1007\/978-3-319-42061-5_3"},{"key":"910_CR8","doi-asserted-by":"publisher","first-page":"315","DOI":"10.1007\/978-3-319-74781-1_22","volume-title":"Co-simulation Between Trnsys and Simulink Based on Type155","author":"G Engel","year":"2018","unstructured":"Engel, G., Chakkaravarthy, A.S., Schweiger, G.: Co-simulation Between Trnsys and Simulink Based on Type155, pp. 315\u2013329. Springer, Cham (2018). https:\/\/doi.org\/10.1007\/978-3-319-74781-1_22"},{"key":"910_CR9","unstructured":"Epsilon: Simulink Query Optimisation. https:\/\/git.eclipse.org\/c\/epsilon\/org.eclipse.epsilon.git\/tree\/tests\/org.eclipse.epsilon.emc.simulink.test\/experiments\/query-optimisation"},{"key":"910_CR10","unstructured":"Epsilon: Simulink vs Massif Experiment. https:\/\/git.eclipse.org\/c\/epsilon\/org.eclipse.epsilon.git\/tree\/examples\/org.eclipse.epsilon.examples.emc.simulink.emf"},{"key":"910_CR11","doi-asserted-by":"crossref","unstructured":"Filipovikj, P., Rodriguez-Navas, G., Seceleanu, C.: Bounded invariance checking of simulink models. In: Proceedings of the ACM Symposium on Applied Computing Part, vol. F1477, pp. 2168\u20132177 (2019). https:\/\/doi.org\/10.1145\/3297280.3297493","DOI":"10.1145\/3297280.3297493"},{"key":"910_CR12","doi-asserted-by":"crossref","unstructured":"Francis, M., Kolovos, D.S., Matragkas, N., Paige, R.F.: Adding spreadsheets to the MDE toolkit. In: Lecture Notes in Computer Science, vol. 8107 LNCS, pp. 35\u201351 (2013). https:\/\/doi.org\/10.1007\/978-3-642-41533-3_3","DOI":"10.1007\/978-3-642-41533-3_3"},{"key":"910_CR13","unstructured":"Google: BigQuery. https:\/\/bigquery.cloud.google.com\/"},{"key":"910_CR14","unstructured":"Horvath, A., Rath, I., Rizzi Starr, R.: Massif\u2014the love child of Matlab Simulink and Eclipse. Tech. rep. (2015). http:\/\/www.eclipsecon.org\/na2015\/session\/massif-love-child-matlab-simulink-and-eclipse.html"},{"key":"910_CR15","unstructured":"IBM Rational DOORS. https:\/\/www.ibm.com\/products\/requirements-management\/details"},{"key":"910_CR16","unstructured":"itemis AG: Yakindu Traceability. https:\/\/www.itemis.com\/en\/yakindu\/traceability\/"},{"key":"910_CR17","doi-asserted-by":"crossref","unstructured":"Jouault, F., Allilaire, F., B\u00e9zivin, J., Kurtev, I., Valduriez, P.: ATL: A QVT-like transformation language. In: Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications, OOPSLA (2006). https:\/\/doi.org\/10.1145\/1176617.1176691","DOI":"10.1145\/1176617.1176691"},{"issue":"1","key":"910_CR18","doi-asserted-by":"publisher","first-page":"229","DOI":"10.1007\/s10270-015-0455-3","volume":"16","author":"DS Kolovos","year":"2017","unstructured":"Kolovos, D.S., Garc\u00eda-Dom\u00ednguez, A., Rose, L.M., Paige, R.F.: Eugenia: towards disciplined and automated development of GMF-based graphical model editors. Softw. Syst. Model. 16(1), 229\u2013255 (2017). https:\/\/doi.org\/10.1007\/s10270-015-0455-3","journal-title":"Softw. Syst. Model."},{"key":"910_CR19","doi-asserted-by":"crossref","unstructured":"Kolovos, D.S., Paige, R.F., Polack, F.A.: The Epsilon Object Language (EOL). Lecture Notes in Computer Science 4066 LNCS, pp. 128\u2013142 (2006). https:\/\/doi.org\/10.1007\/11787044_11","DOI":"10.1007\/11787044_11"},{"key":"910_CR20","doi-asserted-by":"crossref","unstructured":"Kolovos, D.S., Paige, R.F., Polack, F.A.: The epsilon transformation language. Lecture Notes in Computer Science 5063 LNCS, pp. 46\u201360 (2008). https:\/\/doi.org\/10.1007\/978-3-540-69927-9_4","DOI":"10.1007\/978-3-540-69927-9_4"},{"key":"910_CR21","doi-asserted-by":"crossref","unstructured":"Kolovos, D.S., Paige, R.F., Polack, F.A.: On the evolution of OCL for capturing structural constraints in modelling languages. Lecture Notes in Computer Science 5115 LNCS, pp. 204\u2013218 (2009). https:\/\/doi.org\/10.1007\/978-3-642-11447-2_13","DOI":"10.1007\/978-3-642-11447-2_13"},{"key":"910_CR22","unstructured":"Kolovos, D.S., Wei, R., Barmpis, K.: An approach for efficient querying of large relational datasets with OCL-based languages. In: CEUR Workshop Proceedings, vol. 1089, pp. 46\u201354 (2013)"},{"key":"910_CR23","doi-asserted-by":"crossref","unstructured":"Maro, S., Steghofer, J.P.: Capra: a configurable and extendable traceability management tool. In: 2016 IEEE 24th International Requirements Engineering Conference (RE), IEEE, pp. 407\u2013408 (2016). https:\/\/doi.org\/10.1109\/RE.2016.19","DOI":"10.1109\/RE.2016.19"},{"key":"910_CR24","unstructured":"MathWorks: Create a Simple Model. https:\/\/uk.mathworks.com\/help\/simulink\/gs\/create-a-simple-model.html"},{"key":"910_CR25","unstructured":"MathWorks: MATLAB Simulink. https:\/\/www.mathworks.com\/products\/simulink.html"},{"key":"910_CR26","unstructured":"Mathworks: MATLAB Stateflow. https:\/\/uk.mathworks.com\/products\/stateflow.html"},{"key":"910_CR27","unstructured":"MathWorks: Requirements Definition for a Cruise Control Model. https:\/\/uk.mathworks.com\/help\/slrequirements\/gs\/requirements-definition-for-a-cruise-control-model.html"},{"key":"910_CR28","unstructured":"MathWorks: what is a data dictionary? https:\/\/uk.mathworks.com\/help\/simulink\/ug\/what-is-a-data-dictionary.html"},{"key":"910_CR29","unstructured":"Mathworks: best practices and guidelines for ReqIF round trip workflows (2020). https:\/\/uk.mathworks.com\/help\/slrequirements\/ug\/best-practices-for-reqif-roundtrip-workflows.html"},{"key":"910_CR30","unstructured":"Mathworks: large-scale modeling (2020). https:\/\/uk.mathworks.com\/help\/simulink\/large-scale-modeling.html"},{"issue":"2","key":"910_CR31","doi-asserted-by":"publisher","first-page":"299","DOI":"10.5755\/j01.itc.48.2.21759","volume":"48","author":"M Mikulcak","year":"2019","unstructured":"Mikulcak, M., G\u00f6thel, T., Glesner, S., Herber, P.: Information flow analysis of combined simulink\/stateflow models. Inf. Technol. Control 48(2), 299\u2013315 (2019). https:\/\/doi.org\/10.5755\/j01.itc.48.2.21759","journal-title":"Inf. Technol. Control"},{"key":"910_CR32","doi-asserted-by":"publisher","first-page":"353","DOI":"10.1007\/978-3-319-11653-2","volume":"8767","author":"MD Natale","year":"2014","unstructured":"Natale, M.D., Chirico, F.: An MDA approach for the generation of communication adapters integrating SW and FW components from simulink. Model-Driven Eng. Lang. Syst. 8767, 353\u2013369 (2014). https:\/\/doi.org\/10.1007\/978-3-319-11653-2","journal-title":"Model-Driven Eng. Lang. Syst."},{"key":"910_CR33","unstructured":"OpenJDK: Java Microbenchmark Harness. https:\/\/openjdk.java.net\/projects\/code-tools\/jmh\/"},{"key":"910_CR34","unstructured":"Open Services for Lifecycle Collaboration (OSLC). http:\/\/open-services.net\/"},{"issue":"1","key":"910_CR35","doi-asserted-by":"publisher","first-page":"95","DOI":"10.1007\/s10009-017-0450-9","volume":"20","author":"V Pantelic","year":"2018","unstructured":"Pantelic, V., Postma, S., Lawford, M., Jaskolka, M., Mackenzie, B., Korobkine, A., Bender, M., Ong, J., Marks, G., Wassyng, A.: Software engineering practices and Simulink: bridging the gap. Int. J. Softw. Tools Technol. Transf. 20(1), 95\u2013117 (2018). https:\/\/doi.org\/10.1007\/s10009-017-0450-9","journal-title":"Int. J. Softw. Tools Technol. Transf."},{"key":"910_CR36","doi-asserted-by":"crossref","unstructured":"Pantelic, V., Postma, S., Lawford, M., Korobkine, A., Mackenzie, B., Ong, J., Bender, M.: A toolset for simulink\u2014improving software engineering practices in development with simulink. In: Proceedings of the 3rd International Conference on Model-Driven Engineering and Software Development, pp. 50\u201361 (2015). https:\/\/doi.org\/10.5220\/0005236100500061","DOI":"10.5220\/0005236100500061"},{"key":"910_CR37","unstructured":"PolarSys: Capella. http:\/\/www.polarsys.org\/capella\/"},{"key":"910_CR38","doi-asserted-by":"crossref","unstructured":"Sanchez, B., Zolotas, A., Hoyos Rodriguez, H., Kolovos, D., Paige, R.: On-the-Fly Translation and Execution of OCL-Like Queries on Simulink Models. In: 2019 ACM\/IEEE 22nd International Conference on Model Driven Engineering Languages and Systems (MODELS), IEEE, pp. 205\u2013215 (2019). https:\/\/doi.org\/10.1109\/MODELS.2019.000-1","DOI":"10.1109\/MODELS.2019.000-1"},{"key":"910_CR39","doi-asserted-by":"crossref","unstructured":"Sindico, A., Di Natale, M., Panci, G.: Integrating SysML with Simulink using open-source model transformations. In: SIMULTECH 2011\u2014Proceedings of 1st International Conference on Simulation and Modeling Methodologies, Technologies and Applications, pp. 45\u201356 (2011). https:\/\/doi.org\/10.5220\/0003593600450056","DOI":"10.5220\/0003593600450056"},{"key":"910_CR40","unstructured":"Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: EMF: Eclipse Modeling Framework 2.0 (2008)"},{"key":"910_CR41","doi-asserted-by":"publisher","DOI":"10.1007\/s10270-016-0571-8","author":"G Sz\u00e1rnyas","year":"2017","unstructured":"Sz\u00e1rnyas, G., Izs\u00f3, B., R\u00e1th, I., Varr\u00f3, D.: The Train Benchmark: cross-technology performance evaluation of continuous model queries. Softw. Syst. Model. (2017). https:\/\/doi.org\/10.1007\/s10270-016-0571-8","journal-title":"Softw. Syst. Model."},{"key":"910_CR42","unstructured":"The Eclipse Foundation: Eclipse Modeling Framework. http:\/\/www.eclipse.org\/emf"},{"key":"910_CR43","unstructured":"The Eclipse Foundation: Lyo Simulink Adapter. https:\/\/wiki.eclipse.org\/Lyo\/Simulink"},{"key":"910_CR44","unstructured":"The Eclipse Foundation: Papyrus. https:\/\/www.eclipse.org\/papyrus\/"},{"key":"910_CR45","unstructured":"The Eclipse Foundation: The Acceleo Project. https:\/\/www.eclipse.org\/acceleo\/"},{"key":"910_CR46","unstructured":"The Eclipse Foundation: The Epsilon Project. https:\/\/www.eclipse.org\/epsilon\/"},{"key":"910_CR47","unstructured":"The Eclipse Foundation: The Lyo Project. https:\/\/www.eclipse.org\/lyo\/"},{"key":"910_CR48","unstructured":"Viatra: Massif: MATLAB Simulink Integration Framework for Eclipse. https:\/\/github.com\/viatra\/massif"},{"key":"910_CR49","doi-asserted-by":"publisher","DOI":"10.1007\/s10270-019-00732-1","author":"A Zolotas","year":"2019","unstructured":"Zolotas, A., Hoyos Rodriguez, H., Hutchesson, S., Sanchez Pina, B., Grigg, A., Li, M., Kolovos, D.S., Paige, R.F.: Bridging proprietary modelling and open-source model management tools: the case of PTC Integrity Modeller and Epsilon. Softw. Syst. Model. (2019). https:\/\/doi.org\/10.1007\/s10270-019-00732-1","journal-title":"Softw. Syst. Model."}],"container-title":["Software and Systems Modeling"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10270-021-00910-0.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1007\/s10270-021-00910-0\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10270-021-00910-0.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2021,12,6]],"date-time":"2021-12-06T03:11:44Z","timestamp":1638760304000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/s10270-021-00910-0"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2021,8,23]]},"references-count":49,"journal-issue":{"issue":"6","published-print":{"date-parts":[[2021,12]]}},"alternative-id":["910"],"URL":"https:\/\/doi.org\/10.1007\/s10270-021-00910-0","relation":{},"ISSN":["1619-1366","1619-1374"],"issn-type":[{"type":"print","value":"1619-1366"},{"type":"electronic","value":"1619-1374"}],"subject":[],"published":{"date-parts":[[2021,8,23]]},"assertion":[{"value":"10 May 2020","order":1,"name":"received","label":"Received","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"5 March 2021","order":2,"name":"revised","label":"Revised","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"9 July 2021","order":3,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"23 August 2021","order":4,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}}]}}