Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3550356.3561564acmconferencesArticle/Chapter ViewAbstractPublication PagesmodelsConference Proceedingsconference-collections
research-article

Analyzing model changes with Loupe

Published: 09 November 2022 Publication History
  • Get Citation Alerts
  • Abstract

    Models are software artifacts that are subject to continuous change. The extraction and analysis of these changes may significantly affect model maintenance. Existing work has already investigated processes and techniques to support, analyze and mitigate the impact of changes to models. However, most of these works focus on the analysis of changes between two sets of models and do not take a holistic approach to the entire version history of models. Furthermore, there is limited support for constructing user-defined queries that can be used to extract change information from models. This makes it challenging to analyse the changes over the version history of the models. To support change analysis across the entire version history, we developed a change analyzer named Loupe, which can be used to query and extract change information from all versions of a model. Loupe stores the changes across successive model versions and also provides a set of language constructs to query the changes. Loupe has been compared against a generic model indexing tool (Eclipse Hawk), evaluating its capability to extract changes across two successive model versions and its capability to detect instances of a refactoring operation that has been executed across a model's history. Loupe was able to extract this information using queries that were more concise and ran faster than what could be written for Hawk.

    References

    [1]
    simulink [n. d.]. MATLAB Simulink. https://www.mathworks.com/products/simulink.html.
    [2]
    Lorenzo Addazi, Antonio Cicchetti, Juri Di Rocco, Davide Di Ruscio, Ludovico Iovino, and Alfonso Pierantonio. 2016. Semantic-based Model Matching with EMFCompare. In 10th Workshop on Models and Evolution at the 19th ACM/IEEE International Conference on Model Driven Engineering Languages and Systems. 40--49.
    [3]
    Everton Alves, Myoungkyu Song, and Miryung Kim. 2014. RefDistiller: a refactoring aware code review tool for inspecting manual refactoring edits. In 22nd ACM International Symposium on Foundations of Software Engineering. 751--754.
    [4]
    Ittai Balaban, Frank Tip, and Robert Fuhrer. 2005. Refactoring support for class library migration. ACM SIGPLAN Notices 40, 10 (2005), 265--279.
    [5]
    Konstantinos Barmpis, Antonio García-Domínguez, Alessandra Bagnato, and Antonin Abherve. 2020. Monitoring model analytics over large repositories with Hawk and MEASURE. In Model Management and Analytics for Large Scale Systems. 87--123.
    [6]
    Konstantinos Barmpis and Dimitris Kolovos. 2013. Hawk: Towards a scalable model indexing architecture. In 1st Workshop on Scalability in Model Driven Engineering. 1--9.
    [7]
    Konstantinos Barmpis, Seyyed Shah, and Dimitrios S Kolovos. 2015. Towards incremental updates in large-scale model indexes. In 11th European Conference on Modelling Foundations and Applications. 137--153.
    [8]
    Francesco Basciani, Juri Di Rocco, Davide Di Ruscio, Amleto Di Salle, Ludovico Iovino, and Alfonso Pierantonio. 2014. MDEForge: an extensible web-based modeling platform. In 2nd International Workshop on Model-Driven Engineering on and for the Cloud at the 17th International Conference on Model Driven Engineering Languages and Systems, Vol. 1242. 66--75.
    [9]
    Xavier Blanc, Isabelle Mounier, Alix Mougenot, and Tom Mens. 2008. Detecting model inconsistency through operation-based model construction. In 30th ACM/IEEE International Conference on Software Engineering. 511--520.
    [10]
    Lionel C Briand, Yvan Labiche, and Leeshawn O'Sullivan. 2003. Impact analysis and change management of UML models. In 19th International Conference on Software Maintenance. 256--265.
    [11]
    Danny Dig, Can Comertoglu, Darko Marinov, and Ralph Johnson. 2006. Automated detection of refactorings in evolving components. In 20th European Conference on Object-Oriented Programming. 404--428.
    [12]
    Beat Fluri and Harald C Gall. 2006. Classifying change types for qualifying change couplings. In 14th IEEE International Conference on Program Comprehension. 35--45.
    [13]
    Beat Fluri, Emanuel Giger, and Harald C Gall. 2008. Discovering patterns of change types. In 23rd IEEE/ACM International Conference on Automated Software Engineering. 463--466.
    [14]
    Stephen R Foster, William G Griswold, and Sorin Lerner. 2012. WitchDoctor: IDE support for real-time auto-completion of refactorings. In 34th International Conference on Software Engineering. IEEE, 222--232.
    [15]
    Martin Fowler. 2018. Refactoring: improving the design of existing code. Addison-Wesley Professional.
    [16]
    Antonio García-Domínguez, Nelly Bencomo, and Luis H Garcia Paucar. 2018. Reflecting on the past and the present with temporal graph-based models. In International Workshop on Models@Runtime at the 21st ACM/IEEE International Conference on Model Driven Engineering Languages and Systems. 46--55.
    [17]
    Antonio García-Domínguez, Nelly Bencomo, Juan Marcelo Parra-Ullauri, and Luis Hernán García-Paucar. 2019. Querying and annotating model histories with time-aware patterns. In 22nd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems. 194--204.
    [18]
    Xi Ge, Saurabh Sarkar, Jim Witschey, and Emerson Murphy-Hill. 2017. Refactoring-aware code review. In IEEE Symposium on Visual Languages and Human-Centric Computing. 71--79.
    [19]
    Tudor Gîrba, Stéphane Ducasse, and Michele Lanza. 2004. Yesterday's weather: Guiding early reverse engineering efforts by summarizing the evolution of changes. In 20th IEEE International Conference on Software Maintenance. 40--49.
    [20]
    Thomas Hartmann, Francois Fouquet, Matthieu Jimenez, Romain Rouvoy, and Yves Le Traon. 2017. Analyzing complex data in motion at scale with temporal graphs. In 29th International Conference on Software Engineering and Knowledge Engineering. 596--601.
    [21]
    Christian Hein, Tom Ritter, and Michael Wagner. 2009. Model-driven tool integration with modelbus. In 1st Workshop on Future Trends of Model-Driven Development. 50--52.
    [22]
    A Horváth, István Ráth, and Rodrigo Rizzi Starr. 2015. Massif-the love child of Matlab Simulink and Eclipse. https://www.eclipsecon.org/na2015/session/massif-love-child-matlab-Simulink-and-eclipse. EclipseCon NA (2015).
    [23]
    Shahid Hussain, Humaira Afzal, Muhammad Rafiq Mufti, Muhammad Imran, Amjad Ali, and Bashir Ahmad. 2019. Mining version history to predict the class instability. PloS one 14, 9 (2019), e0221780.
    [24]
    Dhikra Kchaou, Nadia Bouassida, and Hanene Ben-Abdallah. 2012. A MOF-based change meta-model. In International Arab Conference on Information Technology.
    [25]
    Anne Keller and Serge Demeyer. 2012. Change impact analysis for UML model maintenance. In Emerging Technologies for the Evolution and Maintenance of Software Models. 32--56.
    [26]
    Maximilian Koegel and Jonas Helming. 2010. EMFStore: a model repository for EMF models. In 32nd ACM/IEEE International Conference on Software Engineering-Volume 2. 307--308.
    [27]
    Maximilian Koegel, Markus Herrmannsdoerfer, Yang Li, Jonas Helming, and Joern David. 2010. Comparing state-and operation-based change tracking on models. In 14th IEEE International Enterprise Distributed Object Computing Conference. 163--172.
    [28]
    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 2nd Workshop on Comparison and Versioning of Software Models at the 31st International Conference on Software Engineering. 1--6.
    [29]
    Dimitrios S Kolovos, Richard F Paige, and Fiona AC Polack. 2006. The Epsilon Object Language (EOL). In 2nd European Conference on Model Driven Architecture-Foundations and Applications. 128--142.
    [30]
    Heng-You Lin, Seppo Sierla, Nikolaos Papakonstantinou, Anatoly Shalyto, and Valeriy Vyatkin. 2015. Change request management in model-driven engineering of industrial automation software. In 13th IEEE International Conference on Industrial Informatics (INDIN). 1186--1191.
    [31]
    Yuehua Lin, Jeff Gray, and Frédéric Jouault. 2007. DSMDiff: a differentiation tool for domain-specific models. European Journal of Information Systems 16, 4 (2007), 349--361.
    [32]
    Tom Mens. 2002. A state-of-the-art survey on software merging. IEEE Transactions on Software Engineering 28, 5 (2002), 449--462.
    [33]
    Klaus Müller and Bernhard Rumpe. 2014. A model-based approach to impact analysis using model differencing. arXiv preprint arXiv:1406.6834 (2014).
    [34]
    Nachiappan Nagappan, Andreas Zeller, Thomas Zimmermann, Kim Herzig, and Brendan Murphy. 2010. Change bursts as defect predictors. In 21st IEEE International Symposium on Software Reliability Engineering. 309--318.
    [35]
    Shiva Nejati, Mehrdad Sabetzadeh, Marsha Chechik, Steve Easterbrook, and Pamela Zave. 2007. Matching and merging of statecharts specifications. In 29th International Conference on Software Engineering (ICSE'07). IEEE, 54--64.
    [36]
    Nur Nurmuliani, Didar Zowghi, and Susan P Williams. 2004. Using card sorting technique to classify requirements change. In 12th IEEE International Requirements Engineering Conference. 240--248.
    [37]
    William F Opdyke. 1992. Refactoring object-oriented frameworks. (1992).
    [38]
    Saheed Popoola and Jeff Gray. 2021. Artifact Analysis of Smell Evolution and Maintenance Tasks in Simulink Models. In Systems Analysis and Modelling Conference at the 24th ACM/IEEE International Conference on Model Driven Engineering Languages and Systems Companion. 817--826.
    [39]
    popoolaevolutio Saheed Popoola, Xin Zhao, and Jeff Gray. [n. d.]. Evolution of Bad Smells in LabVIEW Graphical Models. Journal of Object Technology 20, 1 ([n. d.]), 1--15.
    [40]
    Kyle Prete, Napol Rachatasumrit, Nikita Sudan, and Miryung Kim. 2010. Template-based reconstruction of complex refactorings. In 26th IEEE International Conference on Software Maintenance. 1--10.
    [41]
    Bassam Rajabi and Sai Peck Lee. 2019. Change management framework to support UML diagrams changes. International Arab Journal on Information Technoly 16, 4 (2019), 720--730.
    [42]
    Eric Rapos and James Cordy. 2017. SimPact: Impact analysis for Simulink models. In 33rd International Conference on Software Maintenance and Evolution (ICSME). 489--493.
    [43]
    Romain Robbes, Michele Lanza, and Mircea Lungu. 2007. An approach to software evolution based on semantic change. In 10th International Conference on Fundamental Approaches to Software Engineering. 27--41.
    [44]
    Danilo Silva, Nikolaos Tsantalis, and Marco Tulio Valente. 2016. Why we refactor? confessions of GitHub contributors. In 24th ACM International Symposium on Foundations of Software Engineering. 858--870.
    [45]
    Reinout Stevens, Coen De Roover, Carlos Noguera, and Viviane Jonckers. 2013. A history querying tool and its application to detect multi-version refactorings. In 17th European Conference on Software Maintenance and Reengineering. 335--338.
    [46]
    Antoine Toulmé and I Inc. 2006. Presentation of EMF Compare utility. In Eclipse Modeling Symposium, Vol. 1. 1--8.
    [47]
    Christoph Treude, Stefan Berlik, Sven Wenzel, and Udo Kelter. 2007. Difference computation of large models. In 6th Joint Meeting of the European Software Engineering Conference and the ACM Symposium on The Foundations of Software Engineering. 295--304.
    [48]
    Nikolaos Tsantalis, Ameya Ketkar, and Danny Dig. 2020. RefactoringMiner 2.0. IEEE Transactions on Software Engineering (2020).
    [49]
    Nikolaos Tsantalis, Matin Mansouri, Laleh Eshkevari, Davood Mazinanian, and Danny Dig. 2018. Accurate and efficient refactoring detection in commit history. In 40th IEEE/ACM International Conference on Software Engineering. 483--494.
    [50]
    Haoqi Wang, Vincent Thomson, and Chengtong Tang. 2018. Change propagation analysis for system modeling using Semantic Web technology. Advanced Engineering Informatics 35 (2018), 17--29.
    [51]
    Zhenchang Xing and Eleni Stroulia. 2005. UMLDiff: an algorithm for object-oriented design differencing. In 20th IEEE/ACM International Conference on Automated Software Engineering. 54--65.
    [52]
    Alfa Yohannis, Dimitris Kolovos, and Fiona Polack. 2017. Turning models inside out. In 3rd Flexible MDE Workshop at the 20th International Conference on Model Driven Engineering Languages and Systems. 430--434.
    [53]
    Alfa Yohannis, Horacio Hoyos Rodriguez, Fiona Polack, and Dimitris Kolovos. 2019. Towards efficient comparison of change-based models. Journal of Object Technology 18, 2 (2019), 1--21.
    [54]
    Jing Zhang, Yuehua Lin, and Jeff Gray. 2005. Generic and domain-specific model refactoring using a model transformation engine. In Model-driven Software Development. 199--217.
    [55]
    Thomas Zimmermann, Andreas Zeller, Peter Weissgerber, and Stephan Diehl. 2005. Mining version histories to guide software changes. IEEE Transactions on Software Engineering 31, 6 (2005), 429--445.

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    MODELS '22: Proceedings of the 25th International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings
    October 2022
    1003 pages
    ISBN:9781450394673
    DOI:10.1145/3550356
    • Conference Chairs:
    • Thomas Kühn,
    • Vasco Sousa
    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 the author(s) 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].

    Sponsors

    In-Cooperation

    • Univ. of Montreal: University of Montreal
    • IEEE CS

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 09 November 2022

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. change analysis
    2. model comparison
    3. model repositories
    4. query language
    5. version history

    Qualifiers

    • Research-article

    Conference

    MODELS '22
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 118 of 382 submissions, 31%

    Upcoming Conference

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • 0
      Total Citations
    • 48
      Total Downloads
    • Downloads (Last 12 months)16
    • Downloads (Last 6 weeks)1

    Other Metrics

    Citations

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media