Cargando…

Consistent change propagation within models

Developers change models with clear intentions—e.g., for refactoring, defects removal, or evolution. However, in doing so, developers are often unaware of the consequences of their changes. Changes to one part of a model may affect other parts of the same model and/or even other models, possibly cre...

Descripción completa

Detalles Bibliográficos
Autores principales: Kretschmer, Roland, Khelladi, Djamel Eddine, Lopez-Herrejon, Roberto Erick, Egyed, Alexander
Formato: Online Artículo Texto
Lenguaje:English
Publicado: Springer Berlin Heidelberg 2020
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8550261/
https://www.ncbi.nlm.nih.gov/pubmed/34720801
http://dx.doi.org/10.1007/s10270-020-00823-4
_version_ 1784590923368235008
author Kretschmer, Roland
Khelladi, Djamel Eddine
Lopez-Herrejon, Roberto Erick
Egyed, Alexander
author_facet Kretschmer, Roland
Khelladi, Djamel Eddine
Lopez-Herrejon, Roberto Erick
Egyed, Alexander
author_sort Kretschmer, Roland
collection PubMed
description Developers change models with clear intentions—e.g., for refactoring, defects removal, or evolution. However, in doing so, developers are often unaware of the consequences of their changes. Changes to one part of a model may affect other parts of the same model and/or even other models, possibly created and maintained by other developers. The consequences are incomplete changes and with it inconsistencies within or across models. Extensive works exist on detecting and repairing inconsistencies. However, the literature tends to focus on inconsistencies as errors in need of repairs rather than on incomplete changes in need of further propagation. Many changes are non-trivial and require a series of coordinated model changes. As developers start changing the model, intermittent inconsistencies arise with other parts of the model that developers have not yet changed. These inconsistencies are cues for incomplete change propagation. Resolving these inconsistencies should be done in a manner that is consistent with the original changes. We speak of consistent change propagation. This paper leverages classical inconsistency repair mechanisms to explore the vast search space of change propagation. Our approach not only suggests changes to repair a given inconsistency but also changes to repair inconsistencies caused by the aforementioned repair. In doing so, our approach follows the developer’s intent where subsequent changes may not contradict or backtrack earlier changes. We argue that consistent change propagation is essential for effective model-driven engineering. Our approach and its tool implementation were empirically assessed on 18 case studies from industry, academia, and GitHub to demonstrate its feasibility and scalability. A comparison with two versioned models shows that our approach identifies actual repair sequences that developers had chosen. Furthermore, an experiment involving 22 participants shows that our change propagation approach meets the workflow of how developers handle changes by always computing the sequence of repairs resulting from the change propagation.
format Online
Article
Text
id pubmed-8550261
institution National Center for Biotechnology Information
language English
publishDate 2020
publisher Springer Berlin Heidelberg
record_format MEDLINE/PubMed
spelling pubmed-85502612021-10-29 Consistent change propagation within models Kretschmer, Roland Khelladi, Djamel Eddine Lopez-Herrejon, Roberto Erick Egyed, Alexander Softw Syst Model Regular Paper Developers change models with clear intentions—e.g., for refactoring, defects removal, or evolution. However, in doing so, developers are often unaware of the consequences of their changes. Changes to one part of a model may affect other parts of the same model and/or even other models, possibly created and maintained by other developers. The consequences are incomplete changes and with it inconsistencies within or across models. Extensive works exist on detecting and repairing inconsistencies. However, the literature tends to focus on inconsistencies as errors in need of repairs rather than on incomplete changes in need of further propagation. Many changes are non-trivial and require a series of coordinated model changes. As developers start changing the model, intermittent inconsistencies arise with other parts of the model that developers have not yet changed. These inconsistencies are cues for incomplete change propagation. Resolving these inconsistencies should be done in a manner that is consistent with the original changes. We speak of consistent change propagation. This paper leverages classical inconsistency repair mechanisms to explore the vast search space of change propagation. Our approach not only suggests changes to repair a given inconsistency but also changes to repair inconsistencies caused by the aforementioned repair. In doing so, our approach follows the developer’s intent where subsequent changes may not contradict or backtrack earlier changes. We argue that consistent change propagation is essential for effective model-driven engineering. Our approach and its tool implementation were empirically assessed on 18 case studies from industry, academia, and GitHub to demonstrate its feasibility and scalability. A comparison with two versioned models shows that our approach identifies actual repair sequences that developers had chosen. Furthermore, an experiment involving 22 participants shows that our change propagation approach meets the workflow of how developers handle changes by always computing the sequence of repairs resulting from the change propagation. Springer Berlin Heidelberg 2020-08-25 2021 /pmc/articles/PMC8550261/ /pubmed/34720801 http://dx.doi.org/10.1007/s10270-020-00823-4 Text en © The Author(s) 2020 https://creativecommons.org/licenses/by/4.0/Open AccessThis article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article’s Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article’s Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/ (https://creativecommons.org/licenses/by/4.0/) .
spellingShingle Regular Paper
Kretschmer, Roland
Khelladi, Djamel Eddine
Lopez-Herrejon, Roberto Erick
Egyed, Alexander
Consistent change propagation within models
title Consistent change propagation within models
title_full Consistent change propagation within models
title_fullStr Consistent change propagation within models
title_full_unstemmed Consistent change propagation within models
title_short Consistent change propagation within models
title_sort consistent change propagation within models
topic Regular Paper
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8550261/
https://www.ncbi.nlm.nih.gov/pubmed/34720801
http://dx.doi.org/10.1007/s10270-020-00823-4
work_keys_str_mv AT kretschmerroland consistentchangepropagationwithinmodels
AT khelladidjameleddine consistentchangepropagationwithinmodels
AT lopezherrejonrobertoerick consistentchangepropagationwithinmodels
AT egyedalexander consistentchangepropagationwithinmodels