skip to main content
research-article

History-based Model Repair Recommendations

Published:03 January 2021Publication History
Skip Abstract Section

Abstract

Models in Model-driven Engineering are primary development artifacts that are heavily edited in all stages of software development and that can become temporarily inconsistent during editing. In general, there are many alternatives to resolve an inconsistency, and which one is the most suitable depends on a variety of factors. As also proposed by recent approaches to model repair, it is reasonable to leave the actual choice and approval of a repair alternative to the discretion of the developer. Model repair tools can support developers by proposing a list of the most promising repairs. Such repair recommendations will be only accepted in practice if the generated proposals are plausible and understandable, and if the set as a whole is manageable. Current approaches, which mostly focus on exhaustive search strategies, exploring all possible model repairs without considering the intention of historic changes, fail in meeting these requirements.

In this article, we present a new approach to generate repair proposals that aims at inconsistencies that have been introduced by past incomplete edit steps that can be located in the version history of a model. Such an incomplete edit step is either undone or it is extended to a full execution of a consistency-preserving edit operation. The history-based analysis of inconsistencies as well as the generation of repair recommendations are fully automated, and all interactive selection steps are supported by our repair tool called REVISION. We evaluate our approach using histories of real-world models obtained from popular open-source modeling projects hosted in the Eclipse Git repository, including the evolution of the entire UML meta-model. Our experimental results confirm our hypothesis that most of the inconsistencies, namely, 93.4, can be resolved by complementing incomplete edits. 92.6% of the generated repair proposals are relevant in the sense that their effect can be observed in the models’ histories. 94.9% of the relevant repair proposals are ranked at the topmost position.

References

  1. Manuel Ohrndorf, Christopher Pietsch, Udo Kelter, Lars Grunske, and Timo Kehrer. 2019. ReVision. https://repairvision.github.io/.Google ScholarGoogle Scholar
  2. Marcus Alanen, Ivan Porres, et al. 2004. A Relation between Context-free Grammars and Meta Object Facility Metamodels. Citeseer.Google ScholarGoogle Scholar
  3. Carsten Amelunxen, Elodie Legros, Andy Schürr, and Ingo Stürmer. 2008. Checking and enforcement of modeling guidelines with graph transformations. Applications of Graph Transformations with Industrial Relevance. Springer, 313--328.Google ScholarGoogle Scholar
  4. Thorsten Arendt, Enrico Biermann, Stefan Jurack, Christian Krause, and Gabriele Taentzer. 2010. Henshin: Advanced concepts and tools for in-place EMF model transformations. Model Driven Engineering Languages and Systems. Springer, 121--135.Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Thorsten Arendt and Gabriele Taentzer. 2013. A tool environment for quality assurance based on the eclipse modeling framework. Autom. Softw. Eng. 20, 2 (2013), 141--184.Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Robert Balzer. 1991. Tolerating inconsistency. In Proceedings of the 13th International Conference on Software Engineering. IEEE Computer Society Press, 158--165.Google ScholarGoogle Scholar
  7. Angela Barriga, Adrian Rutle, and Rogardt Heldal. 2018. Automatic model repair using reinforcement learning. In Proceedings of the International Workshop on Analytics and Mining of Model Repositories.Google ScholarGoogle Scholar
  8. Enrico Biermann, Karsten Ehrig, Christian Köhler, Günter Kuhns, Gabriele Taentzer, and Eduard Weiss. 2006. Graphical definition of in-place transformations in the eclipse modeling framework. In Proceedings of the International Conference on Model Driven Engineering Languages and Systems. Springer, 425--439.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Enrico Biermann, Claudia Ermel, and Gabriele Taentzer. 2012. Formal foundation of consistent EMF model transformations by algebraic graph transformation. Softw. Syst. Model. 11, 2 (2012), 227--250.Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Xavier Blanc, Isabelle Mounier, Alix Mougenot, and Tom Mens. 2008. Detecting model inconsistency through operation-based model construction. In Proceedings of the 30th International Conference on Software Engineering. ACM, 511--520.Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Marco Brambilla, Jordi Cabot, and Manuel Wimmer. 2012. Model-driven Software Engineering in Practice. Morgan 8 Claypool Publishers.Google ScholarGoogle Scholar
  12. Hoa Khanh Dam, Alexander Reder, and Alexander Egyed. 2014. Inconsistency resolution in merging versions of architectural models. In Proceedings of the IEEE/IFIP Conference on Software Architecture (WICSA’14). IEEE, 153--162.Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Steve Easterbrook and Bashar Nuseibeh. 1996. Using viewpoints for inconsistency management. Softw. Eng. J. 11, 1 (1996), 31--43.Google ScholarGoogle ScholarCross RefCross Ref
  14. Eclipse Foundation. 2019. Eclipse Git repositories. Retrieved from https://git.eclipse.org/c/.Google ScholarGoogle Scholar
  15. Alexander Egyed. 2006. Instant consistency checking for the UML. In Proceedings of the 28th International Conference on Software Engineering. ACM, 381--390.Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Alexander Egyed. 2011. Automatically detecting and tracking inconsistencies in software design models. IEEE Trans. Softw. Eng. 37, 2 (2011), 188--204.Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Alexander Egyed, Emmanuel Letier, and Anthony Finkelstein. 2008. Generating and evaluating choices for fixing inconsistencies in UML design models. In Proceedings of the 23rd IEEE/ACM International Conference on Automated Software Engineering. IEEE Computer Society, 99--108.Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Hartmut Ehrig, Karsten Ehrig, Ulrike Prange, and Gabriele Taentzer. 2006. Fundamentals of Algebraic Graph Transformation. Springer.Google ScholarGoogle Scholar
  19. Romina Eramo, Alfonso Pierantonio, José Raúl Romero, and Antonio Vallecillo. 2008. Change management in multi-viewpoint system using ASP. In Proceedings of the 12th Enterprise Distributed Object Computing Conference Workshops. IEEE, 433--440.Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Dirk Fahland and Wil M. P. van der Aalst. 2015. Model repair--aligning process models to reality. Inf. Syst. 47 (2015), 220--243.Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Anthony Finkelstein, Dov Gabbay, Anthony Hunter, Jeff Kramer, and Bashar Nuseibeh. 1994. Inconsistency handling in multiperspective specifications. IEEE Trans. Softw. Eng. 20, 8 (1994), 569--578.Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Eugene C. Freuder and Richard J. Wallace. 1992. Partial constraint satisfaction. Artif. Intell. 58, 1–3 (1992), 21--70.Google ScholarGoogle ScholarCross RefCross Ref
  23. Lars Fritsche, Jens Kosiol, Andy Schürr, and Gabriele Taentzer. 2019. Efficient model synchronization by automatically constructed repair processes. In Proceedings of the International Conference on Fundamental Approaches to Software Engineering. Springer, 116--133.Google ScholarGoogle ScholarCross RefCross Ref
  24. Sinem Getir, Michaela Rindt, and Timo Kehrer. 2014. A generic framework for analyzing model co-evolution. In Proceedings of the Workshop on Models and Evolution and ACM/IEEE International Conference on Model Driven Engineering Languages and Systems. 12--21.Google ScholarGoogle Scholar
  25. Holger Giese and Robert Wagner. 2009. From model transformation to incremental bidirectional model synchronization. Softw. Syst. Model. 8, 1 (2009), 21--43.Google ScholarGoogle ScholarCross RefCross Ref
  26. Michael Goedicke, Torsten Meyer, and Gabriele Taentzer. 1999. Viewpoint-oriented software development by distributed graph transformation: Towards a basis for living with inconsistencies. In Proceedings of the IEEE International Symposium on Requirements Engineering. IEEE, 92--99.Google ScholarGoogle ScholarCross RefCross Ref
  27. John Grundy, John Hosking, and Warwick B. Mugridge. 1998. Inconsistency management for multiple-view software development environments. IEEE Trans. Softw. Eng. 24, 11 (1998), 960--981.Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Regina Hebig, Truong Ho Quang, Michel R. V. Chaudron, Gregorio Robles, and Miguel Angel Fernandez. 2016. The quest for open source projects that use UML: Mining GitHub. In Proceedings of the ACM/IEEE 19th International Conference on Model Driven Engineering Languages and Systems. ACM, 173--183.Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Abel Hegedüs, Akos Horváth, István Ráth, Moisés Castelo Branco, and Dániel Varró. 2011. Quick fix generation for DSMLs. In Proceedings of the IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC’11). IEEE, 17--24.Google ScholarGoogle ScholarCross RefCross Ref
  30. Soichiro Hidaka, Massimo Tisi, Jordi Cabot, and Zhenjiang Hu. 2016. Feature-based classification of bidirectional transformation approaches. Softw. Syst. Model. 15, 3 (2016), 907--928.Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Zijian Jiang, Ye Wang, Hao Zhong, and Na Meng. 2020. Automatic method change suggestion to complement multi-entity edits. J. Syst. Softw. 159 (2020), 110441.Google ScholarGoogle ScholarCross RefCross Ref
  32. Oliver Kautz and Bernhard Rumpe. 2018. On computing instructions to repair failed model refinements. In Proceedings of the 21st ACM/IEEE International Conference on Model Driven Engineering Languages and Systems. ACM, 289--299.Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Timo Kehrer. 2015. Calculation and Propagation of Model Changes Based on User-level Edit Operations: A Foundation for Version and Variant Management in Model-driven Engineering. Ph.D. Dissertation. University of Siegen. Retrieved from http://dokumentix.ub.uni-siegen.de/opus/volltexte/2015/963/.Google ScholarGoogle Scholar
  34. Timo Kehrer, Abdullah Alshanqiti, and Reiko Heckel. 2017. Automatic inference of rule-based specifications of complex in-place model transformations. In Proceedings of the International Conference on Theory and Practice of Model Transformations. Springer, 92--107.Google ScholarGoogle ScholarCross RefCross Ref
  35. Timo Kehrer, Udo Kelter, Manuel Ohrndorf, and Tim Sollbach. 2012. Understanding model evolution through semantically lifting model differences with SiLift. In Proceedings of the 28th IEEE International Conference on Software Maintenance. IEEE, 638--641.Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Timo Kehrer, Udo Kelter, Pit Pietsch, and Maik Schmidt. 2012. Adaptability of model comparison tools. In Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering. ACM, 306--309.Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Timo Kehrer, Udo Kelter, and Dennis Reuling. 2014. Workspace updates of visual models. In Proceedings of the ACM/IEEE International Conference on Automated Software Engineering (ASE’14). ACM, 827--830.Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Timo Kehrer, Udo Kelter, and Gabriele Taentzer. 2011. A rule-based approach to the semantic lifting of model differences in the context of model versioning. In Proceedings of the 26th IEEE/ACM International Conference on Automated Software Engineering. IEEE Computer Society, 163--172.Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Timo Kehrer, Udo Kelter, and Gabriele Taentzer. 2013. Consistency-preserving edit scripts in model versioning. In Proceedings of the IEEE/ACM 28th International Conference on Automated Software Engineering (ASE’13). IEEE, 191--201.Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Timo Kehrer, Michaela Rindt, Pit Pietsch, and Udo Kelter. 2013. Generating edit operations for profiled UML models. In Proceedings of the International Workshop on Models and Evolution (CEUR Workshop Proceedings), Vol. 1090. 30--39.Google ScholarGoogle Scholar
  41. Timo Kehrer, Gabriele Taentzer, Michaela Rindt, and Udo Kelter. 2016. Automatically deriving the specification of model editing operations from meta-models. In Proceedings of the International Conference on Model Transformations.Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Dongsun Kim, Jaechang Nam, Jaewoo Song, and Sunghun Kim. 2013. Automatic patch generation learned from human-written patches. In Proceedings of the International Conference on Software Engineering. IEEE Press, 802--811.Google ScholarGoogle ScholarCross RefCross Ref
  43. Mathias Kleiner, Marcos Didonet Del Fabro, and Patrick Albert. 2010. Model search: Formalizing and automating constraint solving in MDE platforms. In Proceedings of the European Conference on Modelling Foundations and Applications. Springer, 173--188.Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Dimitrios Kolovos, Richard Paige, and Fiona Polack. 2008. Detecting and repairing inconsistencies across heterogeneous models. In Proceedings of the 1st International Conference on Software Testing, Verification, and Validation. IEEE, 356--364.Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. Dimitrios S. Kolovos, Davide Di Ruscio, Alfonso Pierantonio, and Richard F. Paige. 2009. Different models for model matching: An analysis of approaches to support model differencing. In Proceedings of the ICSE Workshop on Comparison and Versioning of Software Models (CVSM’09). IEEE, 1--6.Google ScholarGoogle Scholar
  46. Roland Kretschmer, Djamel Eddine Khelladi, Andreas Demuth, Roberto E. Lopez-Herrejon, and Alexander Egyed. 2017. From abstract to concrete repairs of model inconsistencies: An automated approach. In Proceedings of the 24th Asia-Pacific Software Engineering Conference (APSEC’17). IEEE, 456--465.Google ScholarGoogle ScholarCross RefCross Ref
  47. Xuan Bach D. Le, David Lo, and Claire Le Goues. 2016. History driven program repair. In Proceedings of the IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER’16), Vol. 1. IEEE, 213--224.Google ScholarGoogle ScholarCross RefCross Ref
  48. Claire Le Goues, Stephanie Forrest, and Westley Weimer. 2013. Current challenges in automatic software repair. Softw. Qual. J. 21, 3 (2013), 421--443.Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. Henry Lieberman. 2001. Your Wish Is My Command: Programming by Example. Morgan Kaufmann.Google ScholarGoogle Scholar
  50. Nuno Macedo, Tiago Guimaraes, and Alcino Cunha. 2013. Model repair and transformation with Echo. In Proceedings of the 28th IEEE/ACM International Conference on Automated Software Engineering. IEEE Press, 694--697.Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. Nuno Macedo, Tiago Jorge, and Alcino Cunha. 2016. A feature-based classification of model repair approaches. IEEE Trans. Softw. Eng. 43, 7 (2016), 615--640.Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. Matias Martinez, Westley Weimer, and Martin Monperrus. 2014. Do the fix ingredients already exist? An empirical inquiry into the redundancy assumptions of program repair approaches. In Proceedings of the 36th International Conference on Software Engineering. ACM, 492--495.Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. Sergey Mechtaev, Manh-Dung Nguyen, Yannic Noller, Lars Grunske, and Abhik Roychoudhury. 2018. Semantic program repair using a reference implementation. In Proceedings of the 40th International Conference on Software Engineering (ICSE’18), Michel Chaudron, Ivica Crnkovic, Marsha Chechik, and Mark Harman (Eds.). ACM, 129--139.Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. Sergey Mechtaev, Jooyong Yi, and Abhik Roychoudhury. 2016. Angelix: Scalable multiline program patch synthesis via symbolic analysis. In Proceedings of the International Conference on Software Engineering (ICSE’16). ACM, 691--701.Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. Tom Mens. 2006. On the use of graph transformations for model refactoring. In Generative and Transformational Techniques in Software Engineering. Springer, 219--257.Google ScholarGoogle Scholar
  56. Tom Mens, Ragnhild Van Der Straeten, and Maja D’Hondt. 2006. Detecting and resolving model inconsistencies using transformation dependency analysis. In Proceedings of the International Conference on Model Driven Engineering Languages and Systems. Springer, 200--214.Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. Martin Monperrus. 2014. A critical review of automatic patch generation learned from human-written patches: Essay on the problem statement and the evaluation of automatic software repair. In Proceedings of the 36th International Conference on Software Engineering. ACM, 234--242.Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. Nebras Nassar, Hendrik Radke, and Thorsten Arendt. 2017. Rule-based repair of EMF models: An automated interactive approach. In Proceedings of the International Conference on Theory and Practice of Model Transformations. Springer, 171--181.Google ScholarGoogle ScholarCross RefCross Ref
  59. Christian Nentwich, Wolfgang Emmerich, and Anthony Finkelstein. 2003. Consistency management with repair actions. In Proceedings of the 25th International Conference on Software Engineering. IEEE, 455--464.Google ScholarGoogle ScholarCross RefCross Ref
  60. Hoang Duong Thien Nguyen, Dawei Qi, Abhik Roychoudhury, and Satish Chandra. 2013. SemFix: Program repair via semantic analysis. In Proceedings of the International Conference on Software Engineering (ICSE’13). IEEE Press, Piscataway, NJ, 772--781.Google ScholarGoogle Scholar
  61. Bashar Nuseibeh, Steve Easterbrook, and Alessandra Russo. 2000. Leveraging inconsistency in software development. Computer 4 (2000), 24--29.Google ScholarGoogle ScholarDigital LibraryDigital Library
  62. Manuel Ohrndorf, Christopher Pietsch, Udo Kelter, and Timo Kehrer. 2018. ReVision: A tool for history-based model repair recommendations. In Proceedings of the 40th International Conference on Software Engineering. ACM, 105--108.Google ScholarGoogle ScholarDigital LibraryDigital Library
  63. Spencer Pearson, José Campos, René Just, Gordon Fraser, Rui Abreu, Michael D. Ernst, Deric Pang, and Benjamin Keller. 2017. Evaluating and improving fault localization. In Proceedings of the 39th International Conference on Software Engineering (ICSE’17), Sebastián Uchitel, Alessandro Orso, and Martin P. Robillard (Eds.). IEEE/ACM, 609--620.Google ScholarGoogle ScholarDigital LibraryDigital Library
  64. Christopher Pietsch, Manuel Ohrndorf, Udo Kelter, and Timo Kehrer. 2017. Incrementally slicing editable submodels. In Proceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE’17), Grigore Rosu, Massimiliano Di Penta, and Tien N. Nguyen (Eds.). IEEE Computer Society, 913--918.Google ScholarGoogle ScholarDigital LibraryDigital Library
  65. Jorge Pinna Puissant, Ragnhild Van Der Straeten, and Tom Mens. 2015. Resolving model inconsistencies using automated regression planning. Softw. Syst. Model. 14, 1 (2015), 461--481.Google ScholarGoogle ScholarDigital LibraryDigital Library
  66. Alexander Reder and Alexander Egyed. 2010. Model/analyzer: A tool for detecting, visualizing and fixing design errors in UML. In Proceedings of the IEEE/ACM International Conference on Automated Software Engineering. ACM, 347--348.Google ScholarGoogle ScholarDigital LibraryDigital Library
  67. Alexander Reder and Alexander Egyed. 2012. Computing repair trees for resolving inconsistencies in design models. In Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering (ASE’12). IEEE, 220--229.Google ScholarGoogle ScholarDigital LibraryDigital Library
  68. Alexander Reder and Alexander Egyed. 2012. Incremental consistency checking for complex design rules and larger model changes. In Proceedings of the International Conference on Model Driven Engineering Languages and Systems. Springer, 202--218.Google ScholarGoogle ScholarDigital LibraryDigital Library
  69. Alexander Reder and Alexander Egyed. 2013. Determining the cause of a design model inconsistency. IEEE Trans. Softw. Eng. 39, 11 (2013), 1531--1548.Google ScholarGoogle ScholarDigital LibraryDigital Library
  70. Michaela Rindt, Timo Kehrer, and Udo Kelter. 2014. Automatic generation of consistency-preserving edit operations for MDE tools. In Proceedings of the Demonstrations Track of the ACM/IEEE 17th International Conference on Model Driven Engineering Languages and Systems.Google ScholarGoogle Scholar
  71. Michael Rudolf. 1998. Utilizing constraint satisfaction techniques for efficient graph pattern matching. In Proceedings of the International Workshop on Theory and Application of Graph Transformations. Springer, 238--251.Google ScholarGoogle Scholar
  72. Maik Schmidt, Sven Wenzel, Timo Kehrer, and Udo Kelter. 2009. History-based merging of models. In Proceedings of the ICSE Workshop on Comparison and Versioning of Software Models. IEEE Computer Society, 13--18.Google ScholarGoogle ScholarDigital LibraryDigital Library
  73. Sven Schneider, Leen Lambers, and Fernando Orejas. 2019. A logic-based incremental approach to graph repair. In Proceedings of the International Conference on Fundamental Approaches to Software Engineering. Springer, 151--167.Google ScholarGoogle ScholarCross RefCross Ref
  74. Alexander Schultheiß, Alexander Boll, and Timo Kehrer. 2020. Comparison of graph-based model transformation rules. J. Obj. Technol. 19, 2 (2020).Google ScholarGoogle Scholar
  75. Andy Schürr. 1995. Specification of graph translators with triple graph grammars. In Graph-Theoretic Concepts in Computer Science. Springer, 151--163.Google ScholarGoogle Scholar
  76. Guy Shani and Asela Gunawardana. 2011. Evaluating recommendation systems. In Recommender Systems Handbook. Springer, 257--297.Google ScholarGoogle Scholar
  77. George Spanoudakis and Andrea Zisman. 2001. Inconsistency management in software engineering: Survey and open research issues. In Handbook of Software Engineering and Knowledge Engineering: Volume I: Fundamentals. World Scientific, 329--380.Google ScholarGoogle Scholar
  78. Dave Steinberg, Frank Budinsky, Ed Merks, and Marcelo Paternostro. 2008. EMF: Eclipse Modeling Framework. Pearson Education.Google ScholarGoogle ScholarDigital LibraryDigital Library
  79. Daniel Strüber, Kristopher Born, Kanwal Daud Gill, Raffaela Groner, Timo Kehrer, Manuel Ohrndorf, and Matthias Tichy. 2017. Henshin: A usability-focused framework for EMF model transformation development. In Proceedings of the International Conference on Graph Transformation. Springer, 196--208.Google ScholarGoogle ScholarCross RefCross Ref
  80. Gabriele Taentzer, Thorsten Arendt, Claudia Ermel, and Reiko Heckel. 2012. Towards refactoring of rule-based, in-place model transformation systems. In Proceedings of the 1st Workshop on the Analysis of Model Transformations. 41--46.Google ScholarGoogle ScholarDigital LibraryDigital Library
  81. Gabriele Taentzer, André Crema, René Schmutzler, and Claudia Ermel. 2008. Generating domain-specific model editors with complex editing commands. In Applications of Graph Transformations with Industrial Relevance. Springer, 98--103.Google ScholarGoogle Scholar
  82. Gabriele Taentzer, Manuel Ohrndorf, Yngve Lamo, and Adrian Rutle. 2017. Change-preserving model repair. In Proceedings of the International Conference on Fundamental Approaches to Software Engineering. Springer, 283--299.Google ScholarGoogle ScholarDigital LibraryDigital Library
  83. Matthias Tichy, Christian Krause, and Grischa Liebel. 2013. Detecting performance bad smells for Henshin model transformations.Proceedings of the AMT@MODELS Conference. 1077.Google ScholarGoogle Scholar
  84. Ragnhild Van Der Straeten and Maja D’Hondt. 2006. Model refactorings through rule-based inconsistency resolution. In Proceedings of the ACM Symposium on Applied Computing. ACM, 1210--1217.Google ScholarGoogle ScholarDigital LibraryDigital Library
  85. Ragnhild Van Der Straeten, Tom Mens, Jocelyn Simmonds, and Viviane Jonckers. 2003. Using description logic to maintain consistency between UML models. In Proceedings of the International Conference on the Unified Modeling Language. Springer, 326--340.Google ScholarGoogle ScholarCross RefCross Ref
  86. Ragnhild Van Der Straeten, Jorge Pinna Puissant, and Tom Mens. 2011. Assessing the Kodkod model finder for resolving model inconsistencies. In Proceedings of the European Conference on Modelling Foundations and Applications. Springer, 69--84.Google ScholarGoogle ScholarCross RefCross Ref
  87. Jos B. Warmer and Anneke G. Kleppe. 1998. The Object Constraint Language: Precise Modeling with UML. Addison-Wesley Longman Publishing Co., Inc.Google ScholarGoogle Scholar
  88. Westley Weimer, ThanhVu Nguyen, Claire Le Goues, and Stephanie Forrest. 2009. Automatically finding patches using genetic programming. In Proceedings of the 31st International Conference on Software Engineering. IEEE Computer Society, 364--374.Google ScholarGoogle ScholarDigital LibraryDigital Library
  89. Sven Wenzel. 2011. Unique Identification of Elements in Evolving Models: Towards Fine-Grained Traceability in Model-Driven Engineering. Ph.D. Dissertation. Universität Siegen, Fachbereich Elektrotechnik und Informatik.Google ScholarGoogle Scholar
  90. Sven Wenzel. 2014. Unique identification of elements in evolving software models. Softw. Syst. Model. 13, 2 (2014), 679--711.Google ScholarGoogle ScholarDigital LibraryDigital Library
  91. Manuel Wimmer and Gerhard Kramler. 2005. Bridging grammarware and modelware. In Proceedings of the International Conference on Model Driven Engineering Languages and Systems. Springer, 159--168.Google ScholarGoogle Scholar
  92. W. Eric Wong and Vidroha Debroy. 2009. A Survey of Software Fault Localization. Technical Report. Department of Computer Science, University of Texas at Dallas, Tech. Rep. UTDCS-45 9 (2009).Google ScholarGoogle Scholar
  93. W. Eric Wong, Vidroha Debroy, and Dianxiang Xu. 2012. Towards better fault localization: A crosstab-based statistical approach. IEEE Trans. Syst., Man, Cybern., Part C 42, 3 (2012), 378--396.Google ScholarGoogle ScholarDigital LibraryDigital Library
  94. W. Eric Wong, Tingting Wei, Yu Qi, and Lei Zhao. 2008. A crosstab-based statistical method for effective fault localization. In Proceedings of the 1st International Conference on Software Testing, Verification, and Validation (ICST’08). IEEE Computer Society, 42--51.Google ScholarGoogle ScholarDigital LibraryDigital Library
  95. Yingfei Xiong, Zhenjiang Hu, Haiyan Zhao, Hui Song, Masato Takeichi, and Hong Mei. 2009. Supporting automatic model inconsistency fixing. In Proceedings of the 7th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering. ACM, 315--324.Google ScholarGoogle ScholarDigital LibraryDigital Library
  96. Andreas Zeller. 2009. Why Programs Fail: A Guide to Systematic Debugging. Elsevier.Google ScholarGoogle ScholarDigital LibraryDigital Library
  97. Moshé M. Zloof. 1975. Query-by-example: The invocation and definition of tables and forms. In Proceedings of the 1st International Conference on Very Large Data Bases. ACM, 1--24.Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. History-based Model Repair Recommendations

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image ACM Transactions on Software Engineering and Methodology
        ACM Transactions on Software Engineering and Methodology  Volume 30, Issue 2
        Continuous Special Section: AI and SE
        April 2021
        463 pages
        ISSN:1049-331X
        EISSN:1557-7392
        DOI:10.1145/3446657
        • Editor:
        • Mauro Pezzè
        Issue’s Table of Contents

        Copyright © 2021 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 3 January 2021
        • Revised: 1 August 2020
        • Accepted: 1 August 2020
        • Received: 1 April 2019
        Published in tosem Volume 30, Issue 2

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article
        • Research
        • Refereed

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      HTML Format

      View this article in HTML Format .

      View HTML Format