English
Related papers

Related papers: Making refactoring decisions in large-scale Java s…

200 papers

Refactoring is a practice widely adopted during software maintenance and evolution. Due to its importance, there is extensive work on the effectiveness of refactoring in achieving code quality. However, developer's intentions are usually…

Program comprehension concerns the ability of an individual to make an understanding of an existing software system to extend or transform it. Software systems comprise of data that are noisy and missing, which makes program understanding…

Software Engineering · Computer Science 2019-02-05 Amir Saeidi , Jurriaan Hage , Ravi Khadka , Slinger Jansen

Renaming identifiers in source code is a common refactoring task in software development. When renaming an identifier, other identifiers containing words with the same naming intention related to the renaming should be renamed…

Software Engineering · Computer Science 2024-09-27 Naoki Doi , Yuki Osumi , Shinpei Hayashi

A less complex and more straightforward program is a crucial factor that enhances its maintainability and makes writing secure and bug-free programs easier. However, due to its heavy workload and the risks of breaking the working programs,…

Programming Languages · Computer Science 2024-04-08 Atsushi Shirafuji , Yusuke Oda , Jun Suzuki , Makoto Morishita , Yutaka Watanobe

Naming is very important in software development, as names are often the only vehicle of meaning about what the code is intended to do. A recent study on how developers choose names collected the names given by different developers for the…

Software Engineering · Computer Science 2024-02-16 Rachel Alpern , Ido Lazer , Issar Tzachor , Hanit Hakim , Sapir Weissbuch , Dror G. Feitelson

Software developers and maintainers need to read and understand source programs and other software artifacts. The increase in size and complexity of software drastically affects several quality attributes, especially understandability and…

Software Engineering · Computer Science 2010-04-27 Mohd Nazir , Raees A. Khan , Khurram Mustafa

Architecture optimization is the process of automatically generating design options, typically to enhance software's quantifiable quality attributes, such as performance and reliability. Multi-objective optimization approaches have been…

Software Engineering · Computer Science 2024-01-31 Daniele Di Pompeo , Michele Tucci

Refactoring is a critical process in software development, aiming at improving the internal structure of code while preserving its external behavior. Refactoring engines are integral components of modern Integrated Development Environments…

Software Engineering · Computer Science 2024-09-24 Haibo Wang , Zhuolin Xu , Huaien Zhang , Nikolaos Tsantalis , Shin Hwei Tan

Classification tasks in machine learning involving more than two classes are known by the name of "multi-class classification". Performance indicators are very useful when the aim is to evaluate and compare different classification models…

Machine Learning · Statistics 2020-08-14 Margherita Grandini , Enrico Bagli , Giorgio Visani

Background: The process of mapping a source code entity onto an architectural module is to a large degree a manual task. Automating this process could increase the use of static architecture conformance checking methods, such as reflexion…

Software Engineering · Computer Science 2021-09-21 Tobias Olsson , Morgan Ericsson , Anna Wingkvist

Most engineers use measurements to make decisions. However, measurements are rarely used for decisions about constructing software products. While many approaches to measuring attributes of software (``metrics'') have been developed, they…

Software Engineering · Computer Science 2026-03-18 Ewan Tempero , Paul Ralph

Software testing is one of the very important Quality Assurance (QA) components. A lot of researchers deal with the testing process in terms of tester motivation and how tests should or should not be written. However, it is not known from…

Software Engineering · Computer Science 2022-01-04 Matej Madeja , Jaroslav Porubän , Michaela Bačíková , Matúš Sulír , Ján Juhár , Sergej Chodarev , Filip Gurbáľ

Software systems are composed of many interacting elements. A natural way to abstract over software systems is to model them as graphs. In this paper we consider software dependency graphs of object-oriented software and we study one…

Software Engineering · Computer Science 2017-04-11 Vincenzo Musco , Martin Monperrus , Philippe Preux

Refactoring is widely recognized as one of the efficient techniques to manage technical debt and maintain a healthy software project through enforcing best design practices or coping with design defects. Previous refactoring surveys have…

Software Engineering · Computer Science 2021-09-24 Eman Abdullah AlOmar , Anthony Peruma , Mohamed Wiem Mkaouer , Christian D. Newman , Ali Ouni

Modern code review is a widely used technique employed in both industrial and open-source projects to improve software quality, share knowledge, and ensure adherence to coding standards and guidelines. During code review, developers may…

Software Engineering · Computer Science 2022-03-29 Eman Abdullah AlOmar , Moataz Chouchen , Mohamed Wiem Mkaouer , Ali Ouni

Programming languages and platforms improve over time, sometimes resulting in new language features that offer many benefits. However, despite these benefits, developers may not always be willing to adopt them in their projects for various…

Programming Languages · Computer Science 2018-03-29 Raffi Khatchadourian , Hidehiko Masuhara

The increasing complexity of software supply chains and the rise of supply chain attacks have elevated concerns around software integrity. Users and stakeholders face significant challenges in validating that a given software artifact…

Software Engineering · Computer Science 2025-11-12 Aman Sharma , Benoit Baudry , Martin Monperrus

The estimation and improvement of quality attributes in software architectures is a challenging and time-consuming activity. On modern software applications, a model-based representation is crucial to face the complexity of such activity.…

Software Engineering · Computer Science 2024-01-31 Daniele Di Pompeo , Michele Tucci

Commits often involve refactorings -- behavior-preserving code modifications aiming at software design improvements. Refactoring operations pose a challenge to code reviewers, as distinguishing them from behavior-altering changes is often…

Software Engineering · Computer Science 2025-02-26 Benjamin Ritz , Aleksandar Karakaš , Denis Helic

Refactoring is an important activity that is frequently performed in software development, and among them, Extract Method is known to be one of the most frequently performed refactorings. The existing techniques for recommending Extract…

Software Engineering · Computer Science 2021-08-31 Jinto Yamanaka , Yasuhiro Hayase , Toshiyuki Amagasa