Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1109/ICSE-Companion.2019.00083acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Stuck in the middle: removing obstacles to new program features through batch refactoring

Published: 25 May 2019 Publication History

Abstract

Developers may introduce poor code structures spotted by code smells along the software maintenance. However, only some of these structures eventually become obstacles to the addition of new features. Developers are forced to remove these obstacles before adding features. Identifying which poor structures are actual obstacles is hard, due to their subtlety and scattering across code elements. Such identification has been largely debated by developers in public platforms such as Gerrit Code Review. Fully removing obstacles is also hard, as developers often have to perform non-trivial sets of interrelated code transformations. Despite enabling the feature addition, certain sets of transformations tend to introduce rather than remove code smells. The scarce knowledge on recurring obstacles, and how refactoring can cope with them, helps little in guiding the feature addition. This doctoral research aims to address the current scarceness via empirical studies with projects and their developers. Our major goal is three-fold: (1) to assess past feature additions in order to elicit recurring obstacles; (2) to understand when interrelated transformations unexpectedly introduce poor code structures; and (3) to propose a refactoring recommender system. Contrarily to the few existing ones, our system aims to guide developers along the feature addition while removing poor code structures.

References

[1]
M. Fowler, Refactoring: Improving the Design of Existing Code, 1st ed. Addison-Wesley Professional, 1999.
[2]
M. Kim, T. Zimmermann, and N. Nagappan, "An empirical study of refactoring: Challenges and benefits at Microsoft," IEEE Trans. Softw. Eng., vol. 40, no. 7, pp. 633--649, 2014.
[3]
E. Murphy-Hill, C. Parnin, and A. Black, "How we refactor, and how we know it," IEEE Trans. Softw. Eng., vol. 38, no. 1, pp. 5--18, 2012.
[4]
E. Tempero, T. Gorschek, and L. Angelis, "Barriers to refactoring," Commun. ACM, vol. 60, no. 10, pp. 54--61, 2017.
[5]
D. Cedrim, "Understanding and improving batch refactoring in software systems," Ph.D. dissertation, DI/PUC-Rio, Brazil, 2018.
[6]
M. Tufano, F. Palomba, G. Bavota, R. Oliveto, M. Di Penta, A. De Lucia, and D. Poshyvanyk, "When and why your code starts to smell bad (and whether the smells go away)," IEEE Trans. Softw. Eng., vol. 43, no. 11, pp. 1063--1088, 2017.
[7]
A. Yamashita and L. Moonen, "To what extent can maintenance problems be predicted by code smell detection? An empirical study," Inf. Softw. Technol., vol. 55, no. 12, pp. 2223--2242, 2013.
[8]
A. Chávez, I. Ferreira, E. Fernandes, D. Cedrim, and A. Garcia, "How does refactoring affect internal quality attributes? A multi-project study," in 31st SBES, 2017, pp. 74--83.
[9]
R. Peters and A. Zaidman, "Evaluating the lifespan of code smells using software repository mining," in 16th CSMR, 2012, pp. 411--416.
[10]
D. Silva, N. Tsantalis, and M. T. Valente, "Why we refactor? Confessions of GitHub contributors," in 24th FSE, 2016, pp. 858--870.
[11]
M. Silva, M. T. Valente, and R. Terra, "Does technical debt lead to the rejection of pull requests?" in 10th SBSI, 2016.
[12]
G. Szoke, C. Nagy, R. Ferenc, and T. Gyimóthy, "Designing and developing automated refactoring transformations: An experience report," in 23rd SANER, 2016, pp. 693--697.
[13]
Y. Lin, X. Peng, Y. Cai, D. Dig, D. Zheng, and W. Zhao, "Interactive and guided architectural refactoring with search-based recommendation," in 24th FSE, 2016, pp. 535--546.
[14]
E. Fernandes, J. Oliveira, G. Vale, T. Paiva, and E. Figueiredo, "A review-based comparative study of bad smell detection tools," in 20th EASE, 2016, pp. 18:1--18:12.
[15]
A. Bacchelli and C. Bird, "Expectations, outcomes, and challenges of modern code review," in 35th ICSE, 2013, pp. 712--721.
[16]
I. Macia, R. Arcoverde, A. Garcia, C. Chavez, and A. von Staa, "On the relevance of code anomalies for identifying architecture degradation symptoms," in 16th CSMR, 2012, pp. 277--286.
[17]
E. Fernandes, G. Vale, L. Sousa, E. Figueiredo, A. Garcia, and J. Lee, "No code anomaly is an island: Anomaly agglomeration as sign of product line instabilities," in 16th ICSR, 2017, pp. 48--64.
[18]
M. Paixao, J. Krinke, D. Han, C. Ragkhitwetsagul, and M. Harman, "Are developers aware of the architectural impact of their changes?" in 32nd ASE, 2017, pp. 95--105.
[19]
B. Kitchenham, S. Pfleeger, L. Pickard, P. Jones, D. Hoaglin, K. El Emam, and J. Rosenberg, "Preliminary guidelines for empirical research in software engineering," IEEE Trans. Softw. Eng., vol. 28, no. 8, pp. 721--734, 2002.
[20]
K.-J. Stol, P. Ralph, and B. Fitzgerald, "Grounded theory in software engineering research: A critical review and guidelines," in 38th ICSE, 2016, pp. 120--131.

Cited By

View all
  • (2020)How Does Incomplete Composite Refactoring Affect Internal Quality Attributes?Proceedings of the 28th International Conference on Program Comprehension10.1145/3387904.3389264(149-159)Online publication date: 13-Jul-2020

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '19: Proceedings of the 41st International Conference on Software Engineering: Companion Proceedings
May 2019
369 pages

Sponsors

Publisher

IEEE Press

Publication History

Published: 25 May 2019

Check for updates

Author Tags

  1. code refactoring
  2. feature addition
  3. poor code structure
  4. recommender system
  5. software maintenance

Qualifiers

  • Research-article

Conference

ICSE '19
Sponsor:

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)1
Reflects downloads up to 19 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2020)How Does Incomplete Composite Refactoring Affect Internal Quality Attributes?Proceedings of the 28th International Conference on Program Comprehension10.1145/3387904.3389264(149-159)Online publication date: 13-Jul-2020

View Options

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