Pub Date : 2022-08-01DOI: 10.1109/seaa56994.2022.00006
{"title":"Message from the SEAA 2022 Program Co-Chairs","authors":"","doi":"10.1109/seaa56994.2022.00006","DOIUrl":"https://doi.org/10.1109/seaa56994.2022.00006","url":null,"abstract":"","PeriodicalId":269970,"journal":{"name":"2022 48th Euromicro Conference on Software Engineering and Advanced Applications (SEAA)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2022-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128600411","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2022-08-01DOI: 10.1109/SEAA56994.2022.00027
Tenma Kitai, Hirohisa Aman, S. Amasaki, Tomoyuki Yokogawa, Minoru Kawahara
Any source code of a software product (production code) is expected to be tested to ensure its correct behavior. Whenever a developer updates production code, the developer should also update or create the corresponding test code to check if the updated parts still work correctly. Such a desirable co-evolution relationship between production and test code forms a logical coupling. Although the logical coupling is detectable through an association analysis on the code repository such as Git, the detection granularity is coarse because the conventional repository is at the file level. For observing those logical couplings as precisely as possible, this paper utilizes the finer-grained, Java method-level repository (FinerGit). Then the paper proposes a metric measuring the extent to which a production method has co-evolved with test methods and conducts a case study using ten open-source projects. The results show that most Java methods (98% on average) have co-evolved with test methods, but some have not; The proposed metric helps detect those methods having the potential risk that the developers might not test adequately.
{"title":"Have Java Production Methods Co-Evolved With Test Methods Properly?: A Fine-Grained Repository-Based Co-Evolution Analysis","authors":"Tenma Kitai, Hirohisa Aman, S. Amasaki, Tomoyuki Yokogawa, Minoru Kawahara","doi":"10.1109/SEAA56994.2022.00027","DOIUrl":"https://doi.org/10.1109/SEAA56994.2022.00027","url":null,"abstract":"Any source code of a software product (production code) is expected to be tested to ensure its correct behavior. Whenever a developer updates production code, the developer should also update or create the corresponding test code to check if the updated parts still work correctly. Such a desirable co-evolution relationship between production and test code forms a logical coupling. Although the logical coupling is detectable through an association analysis on the code repository such as Git, the detection granularity is coarse because the conventional repository is at the file level. For observing those logical couplings as precisely as possible, this paper utilizes the finer-grained, Java method-level repository (FinerGit). Then the paper proposes a metric measuring the extent to which a production method has co-evolved with test methods and conducts a case study using ten open-source projects. The results show that most Java methods (98% on average) have co-evolved with test methods, but some have not; The proposed metric helps detect those methods having the potential risk that the developers might not test adequately.","PeriodicalId":269970,"journal":{"name":"2022 48th Euromicro Conference on Software Engineering and Advanced Applications (SEAA)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2022-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133760832","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2022-08-01DOI: 10.1109/SEAA56994.2022.00038
S. Counsell, Vesna Nowack, T. Hall, David Bowes, Saemundur O. Haraldsson, E. Winter, J. Woodward
In this short paper, we explore the Pareto principle, sometimes known as the “80-20” rule as part of the refactoring process. We explore five frequently applied refactorings, namely extract method, extract variable, rename variable, rename method and change variable type from a data set of forty open-source systems and nearly two hundred thousand refactorings. We address two key research questions. Firstly, do 80% of “buggy” refactorings (where a refactoring has induced a bug fix) arise from just 20% of commits and, secondly, does the same rule apply to “non-buggy” refactorings when applied to the same systems? To facilitate our analysis, we used refactoring and bug data from a study by Di Penta et al. Results showed that refactorings inducing bugs were clustered around a more concentrated set of commits than refactorings that did not induce bugs. One refactoring ‘change variable type’ stood out - it almost conformed to an 80-20 rule. The take-away message is, as the saying goes, that too much of a “good” thing [refactoring] could actually be a “bad” thing.
{"title":"An 80-20 Analysis of Buggy and Non-buggy Refactorings in Open-Source Commits","authors":"S. Counsell, Vesna Nowack, T. Hall, David Bowes, Saemundur O. Haraldsson, E. Winter, J. Woodward","doi":"10.1109/SEAA56994.2022.00038","DOIUrl":"https://doi.org/10.1109/SEAA56994.2022.00038","url":null,"abstract":"In this short paper, we explore the Pareto principle, sometimes known as the “80-20” rule as part of the refactoring process. We explore five frequently applied refactorings, namely extract method, extract variable, rename variable, rename method and change variable type from a data set of forty open-source systems and nearly two hundred thousand refactorings. We address two key research questions. Firstly, do 80% of “buggy” refactorings (where a refactoring has induced a bug fix) arise from just 20% of commits and, secondly, does the same rule apply to “non-buggy” refactorings when applied to the same systems? To facilitate our analysis, we used refactoring and bug data from a study by Di Penta et al. Results showed that refactorings inducing bugs were clustered around a more concentrated set of commits than refactorings that did not induce bugs. One refactoring ‘change variable type’ stood out - it almost conformed to an 80-20 rule. The take-away message is, as the saying goes, that too much of a “good” thing [refactoring] could actually be a “bad” thing.","PeriodicalId":269970,"journal":{"name":"2022 48th Euromicro Conference on Software Engineering and Advanced Applications (SEAA)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2022-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132330235","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2022-08-01DOI: 10.1109/SEAA56994.2022.00066
J. C. Kirchhof, Lukas Malcher, Judith Michael, Bernhard Rumpe, A. Wortmann
Logging still is a core functionality used to understand the behavior of programs and executable models. Yet, modeling languages rarely consider logging as a first-level activity that is manifested in the language through modeling elements or their behavior. When logging is part of the code generated for the respective models or the corresponding runtime environment only, it must be generic, as the modeler cannot influence, through the models, what and when logging takes place. To enable modelers to log model behavior, we devised a method based on language extension and smart code generation that can integrate logging into arbitrary textual modeling languages. Based on this method, log entries can be produced, traced, and presented through a web application. This method and its infrastructure can facilitate lifting logging to the model level and, hence, improve the understanding of executable models.
{"title":"Web-Based Tracing for Model-Driven Applications","authors":"J. C. Kirchhof, Lukas Malcher, Judith Michael, Bernhard Rumpe, A. Wortmann","doi":"10.1109/SEAA56994.2022.00066","DOIUrl":"https://doi.org/10.1109/SEAA56994.2022.00066","url":null,"abstract":"Logging still is a core functionality used to understand the behavior of programs and executable models. Yet, modeling languages rarely consider logging as a first-level activity that is manifested in the language through modeling elements or their behavior. When logging is part of the code generated for the respective models or the corresponding runtime environment only, it must be generic, as the modeler cannot influence, through the models, what and when logging takes place. To enable modelers to log model behavior, we devised a method based on language extension and smart code generation that can integrate logging into arbitrary textual modeling languages. Based on this method, log entries can be produced, traced, and presented through a web application. This method and its infrastructure can facilitate lifting logging to the model level and, hence, improve the understanding of executable models.","PeriodicalId":269970,"journal":{"name":"2022 48th Euromicro Conference on Software Engineering and Advanced Applications (SEAA)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2022-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125241833","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2022-08-01DOI: 10.1109/SEAA56994.2022.00039
Giammaria Giordano, Fabio Palomba, F. Ferrucci
The availability of dependable mobile apps is a crucial need for over three billion people who use apps daily for any social and emergency connectivity. A key challenge for mobile developers concerns the detection of security-related issues. While a number of tools have been proposed over the years—especially for the ANDROID operating system—we point out a lack of empirical investigations on the actual support provided by these tools; these might guide developers in selecting the most appropriate instruments to improve their apps. In this paper, we propose a preliminary conceptualization of the vulnerabilities detected by three automated static analysis tools such as ANDROBUGS2, TRUESEEING, and INSIDER. We first derive a taxonomy of the issues detectable by the tools. Then, we run the tools against a dataset composed of 6,500 ANDROID apps to investigate their detection capabilities in terms of frequency of detection of vulnerabilities and complementarity among tools. Key findings of the study show that current tools identify similar concerns, but they use different naming conventions. Perhaps more importantly, the tools only partially cover the most common vulnerabilities classified by the Open Web Application Security Project (OWASP) Foundation.
{"title":"A Preliminary Conceptualization and Analysis on Automated Static Analysis Tools for Vulnerability Detection in Android Apps","authors":"Giammaria Giordano, Fabio Palomba, F. Ferrucci","doi":"10.1109/SEAA56994.2022.00039","DOIUrl":"https://doi.org/10.1109/SEAA56994.2022.00039","url":null,"abstract":"The availability of dependable mobile apps is a crucial need for over three billion people who use apps daily for any social and emergency connectivity. A key challenge for mobile developers concerns the detection of security-related issues. While a number of tools have been proposed over the years—especially for the ANDROID operating system—we point out a lack of empirical investigations on the actual support provided by these tools; these might guide developers in selecting the most appropriate instruments to improve their apps. In this paper, we propose a preliminary conceptualization of the vulnerabilities detected by three automated static analysis tools such as ANDROBUGS2, TRUESEEING, and INSIDER. We first derive a taxonomy of the issues detectable by the tools. Then, we run the tools against a dataset composed of 6,500 ANDROID apps to investigate their detection capabilities in terms of frequency of detection of vulnerabilities and complementarity among tools. Key findings of the study show that current tools identify similar concerns, but they use different naming conventions. Perhaps more importantly, the tools only partially cover the most common vulnerabilities classified by the Open Web Application Security Project (OWASP) Foundation.","PeriodicalId":269970,"journal":{"name":"2022 48th Euromicro Conference on Software Engineering and Advanced Applications (SEAA)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2022-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128490356","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2022-08-01DOI: 10.1109/SEAA56994.2022.00077
Nemanja Kukulicic, Damjan Samardzic, Alessio Bucaioni, S. Mubeen
Service-oriented architectures are emerging as a promising solution to deal with the increasing complexity of automotive software systems. In this paper, we conduct a systematic mapping study to investigate the use of service-oriented architecture for the development of automotive software systems. This study aims at providing publication trends, available architectural solutions, core benefits and open challenges in the automotive service-oriented architectures. From an initial set of 341 peer-reviewed publications, we select 28 primary studies, which are classified and analysed using a systematic and comprehensive protocol. Using the extracted data, we provide both quantitative and qualitative analyses using vertical and orthogonal analysis. The results indicate that there has been a significant increase in the number of publications recently, and that the studies focused on defining functionalities and data flows among them. Functional suitability is found to be the most recognised benefit while security, safety and reliability are the most addressed challenges when utilising service-oriented architectures in the automotive domain.
{"title":"Automotive Service-oriented Architectures: a Systematic Mapping Study","authors":"Nemanja Kukulicic, Damjan Samardzic, Alessio Bucaioni, S. Mubeen","doi":"10.1109/SEAA56994.2022.00077","DOIUrl":"https://doi.org/10.1109/SEAA56994.2022.00077","url":null,"abstract":"Service-oriented architectures are emerging as a promising solution to deal with the increasing complexity of automotive software systems. In this paper, we conduct a systematic mapping study to investigate the use of service-oriented architecture for the development of automotive software systems. This study aims at providing publication trends, available architectural solutions, core benefits and open challenges in the automotive service-oriented architectures. From an initial set of 341 peer-reviewed publications, we select 28 primary studies, which are classified and analysed using a systematic and comprehensive protocol. Using the extracted data, we provide both quantitative and qualitative analyses using vertical and orthogonal analysis. The results indicate that there has been a significant increase in the number of publications recently, and that the studies focused on defining functionalities and data flows among them. Functional suitability is found to be the most recognised benefit while security, safety and reliability are the most addressed challenges when utilising service-oriented architectures in the automotive domain.","PeriodicalId":269970,"journal":{"name":"2022 48th Euromicro Conference on Software Engineering and Advanced Applications (SEAA)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2022-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122038407","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2022-08-01DOI: 10.1109/SEAA56994.2022.00051
Ilaria Pigazzini, D. D. Nucci, F. Fontana, Marco Belotti
Architectural anomalies, also known as architectural smells, represent the violation of design principles or decisions that impact internal software qualities with significant negative effects on maintenance, evolution costs and technical debt. Architectural smells, if early removed, have an overall impact on reducing a possible progressive architectural erosion and architectural debt. Some tools have been proposed for their detection, exploiting different methods, usually based only on static analysis. This work analyzes how dynamic analysis can be exploited to detect architectural smells. We focus on two smells, Hub-Like Dependency and Cyclic Dependency, and we extend an existing tool integrating dynamic analysis. We conduct an empirical study on ten projects. We compare the results obtained comparing a method featuring dynamic analysis and the original version of Arcan based only on static analysis to understand if dynamic analysis can be successfully used. The results show that dynamic analysis helps identify missing architectural smells instances, although its usage is hindered by the lack of test suites suitable for this scope.
{"title":"Exploiting dynamic analysis for architectural smell detection: a preliminary study","authors":"Ilaria Pigazzini, D. D. Nucci, F. Fontana, Marco Belotti","doi":"10.1109/SEAA56994.2022.00051","DOIUrl":"https://doi.org/10.1109/SEAA56994.2022.00051","url":null,"abstract":"Architectural anomalies, also known as architectural smells, represent the violation of design principles or decisions that impact internal software qualities with significant negative effects on maintenance, evolution costs and technical debt. Architectural smells, if early removed, have an overall impact on reducing a possible progressive architectural erosion and architectural debt. Some tools have been proposed for their detection, exploiting different methods, usually based only on static analysis. This work analyzes how dynamic analysis can be exploited to detect architectural smells. We focus on two smells, Hub-Like Dependency and Cyclic Dependency, and we extend an existing tool integrating dynamic analysis. We conduct an empirical study on ten projects. We compare the results obtained comparing a method featuring dynamic analysis and the original version of Arcan based only on static analysis to understand if dynamic analysis can be successfully used. The results show that dynamic analysis helps identify missing architectural smells instances, although its usage is hindered by the lack of test suites suitable for this scope.","PeriodicalId":269970,"journal":{"name":"2022 48th Euromicro Conference on Software Engineering and Advanced Applications (SEAA)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2022-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114894200","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2022-08-01DOI: 10.1109/SEAA56994.2022.00050
Elvira-Maria Arvanitou, Pigi Argyriadou, Georgia Koutsou, Apostolos Ampatzoglou, A. Chatzigeorgiou
Despite the attention that Technical Debt has attracted over the last years, the quantification of TD Interest still remains rather vague (and abstract). TD Interest quantification is hindered by various factors that introduce a lot of uncertainty, such as: identifying the parts of the system that will be maintained, quantifying the load of maintenance, as well as the size of the maintenance penalty, due to the existence of TD. In this study, we aim to shed light on the current approaches for quantifying TD Interest by exploring existing literature within the TD and Maintenance communities. To achieve this goal, we performed a systematic mapping study on Scopus and explored: (a) the existing approaches for quantifying TD Interest; (b) the existing approaches for estimating Maintenance Cost; and (c) the factors that must be taken into account for their quantification. The broad search process has returned more than 1,000 articles, out of which only 25 provide well-defined mathematical formulas/ equations for the quantification of TD Interest or Maintenance Cost (only 6 of them are explicitly for TD Interest). The results suggest that despite their similarities, the quantification of TD Interest presents additional challenges compared to Maintenance Cost Estimation, constituting (at least for the time being) the accurate quantification of TD Interest an open and distant to solve research problem. Regarding the factors that need to be considered for such an endeavor, based on the literature: size, complexity, and business parameters are those that are more actively associated to TD Interest quantification.
{"title":"Quantifying TD Interest: Are we Getting Closer, or Not Even That?","authors":"Elvira-Maria Arvanitou, Pigi Argyriadou, Georgia Koutsou, Apostolos Ampatzoglou, A. Chatzigeorgiou","doi":"10.1109/SEAA56994.2022.00050","DOIUrl":"https://doi.org/10.1109/SEAA56994.2022.00050","url":null,"abstract":"Despite the attention that Technical Debt has attracted over the last years, the quantification of TD Interest still remains rather vague (and abstract). TD Interest quantification is hindered by various factors that introduce a lot of uncertainty, such as: identifying the parts of the system that will be maintained, quantifying the load of maintenance, as well as the size of the maintenance penalty, due to the existence of TD. In this study, we aim to shed light on the current approaches for quantifying TD Interest by exploring existing literature within the TD and Maintenance communities. To achieve this goal, we performed a systematic mapping study on Scopus and explored: (a) the existing approaches for quantifying TD Interest; (b) the existing approaches for estimating Maintenance Cost; and (c) the factors that must be taken into account for their quantification. The broad search process has returned more than 1,000 articles, out of which only 25 provide well-defined mathematical formulas/ equations for the quantification of TD Interest or Maintenance Cost (only 6 of them are explicitly for TD Interest). The results suggest that despite their similarities, the quantification of TD Interest presents additional challenges compared to Maintenance Cost Estimation, constituting (at least for the time being) the accurate quantification of TD Interest an open and distant to solve research problem. Regarding the factors that need to be considered for such an endeavor, based on the literature: size, complexity, and business parameters are those that are more actively associated to TD Interest quantification.","PeriodicalId":269970,"journal":{"name":"2022 48th Euromicro Conference on Software Engineering and Advanced Applications (SEAA)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2022-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130642741","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2022-08-01DOI: 10.1109/SEAA56994.2022.00016
S. Idowu, D. Strüber, T. Berger
Traditional software engineering tools for managing assets—specifically, version control systems—are inadequate to manage the variety of asset types used in machine-learning model development experiments. Two possible paths to improve the management of machine learning assets include 1) Adopting dedicated machine-learning experiment management tools, which are gaining popularity for supporting concerns such as versioning, traceability, auditability, collaboration, and reproducibility; 2) Developing new and improved version control tools with support for domain-specific operations tailored to machine learning assets. As a contribution to improving asset management on both paths, this work presents Experiment Management Meta-Model (EMMM), a meta-model that unifies the conceptual structures and relationships extracted from systematically selected machine-learning experiment management tools. We explain the meta-model’s concepts and relationships and evaluate it using real experiment data. The proposed meta-model is based on the Eclipse Modeling Framework (EMF) with its meta-modeling language, Ecore, to encode model structures. Our meta-model can be used as a concrete blueprint for practitioners and researchers to improve existing tools and develop new tools with native support for machine-learning-specific assets and operations.
{"title":"EMMM: A Unified Meta-Model for Tracking Machine Learning Experiments","authors":"S. Idowu, D. Strüber, T. Berger","doi":"10.1109/SEAA56994.2022.00016","DOIUrl":"https://doi.org/10.1109/SEAA56994.2022.00016","url":null,"abstract":"Traditional software engineering tools for managing assets—specifically, version control systems—are inadequate to manage the variety of asset types used in machine-learning model development experiments. Two possible paths to improve the management of machine learning assets include 1) Adopting dedicated machine-learning experiment management tools, which are gaining popularity for supporting concerns such as versioning, traceability, auditability, collaboration, and reproducibility; 2) Developing new and improved version control tools with support for domain-specific operations tailored to machine learning assets. As a contribution to improving asset management on both paths, this work presents Experiment Management Meta-Model (EMMM), a meta-model that unifies the conceptual structures and relationships extracted from systematically selected machine-learning experiment management tools. We explain the meta-model’s concepts and relationships and evaluate it using real experiment data. The proposed meta-model is based on the Eclipse Modeling Framework (EMF) with its meta-modeling language, Ecore, to encode model structures. Our meta-model can be used as a concrete blueprint for practitioners and researchers to improve existing tools and develop new tools with native support for machine-learning-specific assets and operations.","PeriodicalId":269970,"journal":{"name":"2022 48th Euromicro Conference on Software Engineering and Advanced Applications (SEAA)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2022-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126826614","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2022-08-01DOI: 10.1109/SEAA56994.2022.00026
Kathryn Kenny, Jongwook Kim, Eric Lacker
Rename Instance Method Refactoring (RiMr) is a behavior-preserving code transformation that changes the name of a non-static method declaration along with its references (i.e., method calls) while preserving all method bindings over an entire program. RiMr checks a set of preconditions to ensure that the original method bindings will be preserved after rename. Only when all preconditions are satisfied, are the method declaration and references transformed. A decade ago, however, it was found that RiMr offered by Java Integrated Development Environment (IDE) tools may change existing method bindings due to incorrect precondition checks, which consequently cause program behavior changes. Surprisingly, we found that none of the current Java IDEs have corrected those flaws in their RiMr preconditions.We created a Java RiMr tool (called KennyRiMr) as an Eclipse JDT plug-in that addresses the method rebinding issues in RiMr. We verified the correctness of KennyRiMr with thirteen nontrivial programs in terms of precondition checks and code transformations. Our experiments demonstrated that KennyRiMr fixed all known flaws in RiMr preconditions, requiring merely a few more seconds to process the additional precondition checks that we introduced. With KennyRiMr, correctness remains consistent regardless of program size.
{"title":"KennyRiMr: An Eclipse Plug-in to Improve Correctness of Rename Method Refactoring in Java","authors":"Kathryn Kenny, Jongwook Kim, Eric Lacker","doi":"10.1109/SEAA56994.2022.00026","DOIUrl":"https://doi.org/10.1109/SEAA56994.2022.00026","url":null,"abstract":"Rename Instance Method Refactoring (RiMr) is a behavior-preserving code transformation that changes the name of a non-static method declaration along with its references (i.e., method calls) while preserving all method bindings over an entire program. RiMr checks a set of preconditions to ensure that the original method bindings will be preserved after rename. Only when all preconditions are satisfied, are the method declaration and references transformed. A decade ago, however, it was found that RiMr offered by Java Integrated Development Environment (IDE) tools may change existing method bindings due to incorrect precondition checks, which consequently cause program behavior changes. Surprisingly, we found that none of the current Java IDEs have corrected those flaws in their RiMr preconditions.We created a Java RiMr tool (called KennyRiMr) as an Eclipse JDT plug-in that addresses the method rebinding issues in RiMr. We verified the correctness of KennyRiMr with thirteen nontrivial programs in terms of precondition checks and code transformations. Our experiments demonstrated that KennyRiMr fixed all known flaws in RiMr preconditions, requiring merely a few more seconds to process the additional precondition checks that we introduced. With KennyRiMr, correctness remains consistent regardless of program size.","PeriodicalId":269970,"journal":{"name":"2022 48th Euromicro Conference on Software Engineering and Advanced Applications (SEAA)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2022-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129299388","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}