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

skip to main content
10.1145/3422392.3422439acmotherconferencesArticle/Chapter ViewAbstractPublication PagessbesConference Proceedingsconference-collections
research-article

On the Relation between Complexity, Explicitness, Effectiveness of Refactorings and Non-Functional Concerns

Published: 21 December 2020 Publication History

Abstract

Developers need to consistently improve the internal structural quality of a program to address its maintainability and possibly other non-functional concerns. Refactoring is the main practice to improve code quality. Typical refactoring factors, such as their complexity and explicitness (i.e., their self-affirmation), may influence its effectiveness in improving key internal code attributes, such as enhancing cohesion or reducing its coupling, complexity and size. However, we still lack an understanding of whether such concerns and factors play a role on improving the code structural quality. Thus, this paper investigates the relationship between complexity, explicitness and effectiveness of refactorings and non-functional concerns in four projects. We study four non-functional concerns, namely maintainability, security, performance, and robustness. Our findings reveal that complex refactorings indeed have an impactful effect on the code structure, either improving or reducing the code structural quality. We also found that both self-affirmed refactorings and non-functional concerns are usually accompanied by complex refactorings, but tend to have a negative effect on code structural quality. Our findings can: (i) help researchers to improve the design of empirical studies and refactoring-related tools, and (ii) warn practitioners on which circumstances their refactorings may cause a negative impact on code quality.

References

[1]
E. AlOmar, M. W. Mkaouer, and A. Ouni. 2019. Can refactoring be self-affirmed? an exploratory study on how developers document their refactoring activities in commit messages. In 3rd IWoR. IEEE, 51--58.
[2]
E. A. AlOmar, M.W. Mkaouer, A. Ouni, and M. Kessentini. 2019. Do design metrics capture developers perception of quality? an empirical study on self-affirmed refactoring activities. arXiv preprint arXiv:1907.04797 (2019).
[3]
M. Alshayeb. 2009. Empirical investigation of refactoring effect on software quality. Information and Software Technology 51, 9 (2009), 1319--1326.
[4]
G. An, A. Blot, J. Petke, and S. Yoo. 2019. PyGGI 2.0: Language Independent Genetic Improvement Framework. In 27th Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. ACM, 1100--1104.
[5]
G. Bavota, A. De Lucia, M. Di Penta, R. Oliveto, and F. Palomba. 2015. An experimental investigation on the innate relationship between quality and refactoring. Journal of Systems and Software 107 (2015), 1--14.
[6]
A. C. Bibiano, E. Fernandes, D. Oliveira, A. Garcia, M. Kalinowski, B. Fonseca, R. Oliveira, A. Oliveira, and D. Cedrim. 2019. A quantitative study on characteristics and effect of batch refactoring on code smells. In ESEM. IEEE, 1--11.
[7]
A. C. Bibiano, V. Soares, D. Coutinho, E. Fernandes, J. Correia, K. Santos, A. Oliveira, A. Garcia, R. Gheyi, B. Fonseca, M. Ribeiro, C. Barbosa, and D. Oliveira. 2020. How Does Incomplete Composite Refactoring Affect Internal Quality Attributes?. In 28th ICPC.
[8]
F. Bourquin and R. K. Keller. 2007. High-impact refactoring based on architecture violations. In 11th European Conference on Software Maintenance and Reengineering (CSMR'07). IEEE, 149--158.
[9]
N. Cacho, E. A. Barbosa, J. Araujo, F. Pranto, A. Garcia, T. Cesar, E. Soares, A. Cassio, T. Filipe, and I. Garcia. 2014. How Does Exception Handling Behavior Evolve? An Exploratory Study in Java and C# Applications. In IEEE ICSME.
[10]
N. Cacho, T. César, T. Filipe, E. Soares, A. Cassio, R. Souza, I. Garcia, E. A. Barbosa, and A. Garcia. 2014. Trading Robustness for Maintainability: An Empirical Study of Evolving C# Programs. In 36th ICSE. ACM, 584--595.
[11]
A. Casamayor, D. Godoy, and M. Campo. 2010. Identification of non-functional requirements in textual specifications: A semi-supervised learning approach. Information and Software Technology 52, 4 (2010), 436--445.
[12]
A. Chávez, I. Ferreira, E. Fernandes, D. Cedrim, and A. Garcia. 2017. How Does Refactoring Affect Internal Quality Attributes? A Multi-Project Study. In 31st SBES. ACM, 74--83.
[13]
I. Chowdhury, B. Chan, and M. Zulkernine. 2008. Security Metrics for Source Code Structures. In 4th International Workshop on Software Engineering for Secure Systems. ACM, 57--64.
[14]
S. Demeyer. 2003. Maintainability versus Performance: What's the Effect of Introducing Polymorphism?
[15]
E. Fernandes, A. Chávez, A. Garcia, I. Ferreira, D. Cedrim, L. Sousa, and W. Oizumi. 2020. Refactoring effect on internal quality attributes: What haven't they told you yet? Information and Software Technology 126 (2020), 106347.
[16]
M. Fowler. 2018. Refactoring: improving the design of existing code. Addison-Wesley Professional.
[17]
E. Gamma, R. Helm, R.Johnson, and J. Vlissides. 1994. Design Patterns: Elements of Reusable Object-Oriented Software. Pearson Educationl.
[18]
S. Götz and M. Pukall. 2009. On Performance of Delegation in Java. In 2nd International Workshop on Hot Topics in Software Upgrades (HotSWUp '09). ACM, Article 3, 6 pages.
[19]
S. Hayashi, M. Saeki, and M. Kurihara. 2006. Supporting refactoring activities using histories of program modification. Transactions on Information and Systems 89, 4 (2006), 1403--1412.
[20]
B. Jakobus, E. A. Barbosa, A. Garcia, and C. J. P. de Lucena. 2015. Contrasting exception handling code across languages: An experience report involving 50 open source projects. In IEEE 26th ISSRE. 183--193.
[21]
M. Kim, T. Zimmermann, and N. Nagappan. 2014. An empirical study of refactoring challenges and benefits at Microsoft. TSE 40, 7 (2014), 633--649.
[22]
M. Lu and P. Liang. 2017. Automatic Classification of Non-Functional Requirements from Augmented App User Reviews. In 21st EASE. ACM, 344--353.
[23]
S. Moshtari and A. Sami. 2016. Evaluating and Comparing Complexity, Coupling and a New Proposed Set of Coupling Metrics in Cross-Project Vulnerability Prediction. In 31st Annual Symposium on Applied Computing. ACM, 1415--1421.
[24]
E. Murphy-Hill, C. Parnin, and A. P. Black. 2011. How we refactor, and how we know it. TSE 38, 1 (2011), 5--18.
[25]
M. Paixao, M. Harman, Y. Zhang, and Y. Yu. 2017. An empirical study of cohesion and coupling: Balancing optimization and disruption. IEEE Transactions on Evolutionary Computation 22, 3 (2017), 394--414.
[26]
C. Parnin and C. Görg. 2006. Lightweight visualizations for inspecting code smells. In Symposium on Software visualization. ACM, 171--172.
[27]
J. Petke, M. Harman, W. B. Langdon, and W. Weimer. 2018. Specialising Software for Different Downstream Applications Using Genetic Improvement and Code Transplantation. IEEE TSE 44, 6 (2018), 574--594.
[28]
J. Ratzinger. 2007. sPACE -- Software Project Assessment in the Course of Evolution. Doctoral Dissertation. Vienna University of Technology.
[29]
Scientific Toolworks, Inc. 2020. Understand. https://scitools.com/support/metrics_list/?
[30]
M. Siavvas and D. Kehagias, D.and Tzovaras. 2017. A Preliminary Study on the Relationship Among Software Metrics and Specific Vulnerability Types. In International Conference on Computational Science and Computational Intelligence (CSCI). 916--921.
[31]
N. Siegmund, M. Kuhlemann, M. Pukall, and S. Apel. 2010. Optimizing Nonfunctional Properties of Software Product Lines by means of Refactorings. In 4th International Workshop on Variability Modelling of Software-Intensive Systems, Vol. 37. Universität Duisburg-Essen, 115--122.
[32]
C. U. Smith and L. G. Williams. 2000. Software Performance AntiPatterns. In 2nd International Workshop on Software and Performance.
[33]
V. Soares, A. Oliveira, J. Pereira, A. C. Bibano, A. Garcia, P. R. Farah, S. Vergilio, M. Schots, C. Silva, D. Coutinho, D. Oliveira, and A Uchôa. 2020. Website. https://sbes2020refactoring.github.io/
[34]
L. Sousa, D. Cedrim, A. Garcia, W. Oizumi, A. C. Bibiano, D. Tenorio, M. Kim, and A. Oliveira. 2020. Characterizing and Identifying Composite Refactorings: Concepts, Heuristics and Patterns. In 17th ICSE.
[35]
D. Tenorio, A. C. Bibiano, and A. Garcia. 2019. On the customization of batch refactoring. In 3rd IWoR. IEEE Press, 13--16.
[36]
N. Tsantalis, M. Mansouri, L. M. Eshkevari, D. Mazinanian, and D. Dig. 2018. Accurate and Efficient Refactoring Detection in Commit History. In 40th ICSE. ACM, 483--494.
[37]
M. Vakilian, N. Chen, S. Negara, B. A. Rajkumar, B. P. Bailey, and R. E. Johnson. 2012. Use, disuse, and misuse of automated refactorings. In 34th ICSE. IEEE Press, 233--243.

Cited By

View all
  • (2024)An exploratory evaluation of code smell agglomerationsSoftware Quality Journal10.1007/s11219-024-09680-6Online publication date: 11-Jul-2024
  • (2023)Beyond the Code: Investigating the Effects of Pull Request Conversations on Design Decay2023 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM)10.1109/ESEM56168.2023.10304805(1-12)Online publication date: 26-Oct-2023
  • (2022)On the Influential Interactive Factors on Degrees of Design Decay: A Multi-Project Study2022 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER)10.1109/SANER53432.2022.00093(753-764)Online publication date: Mar-2022
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Other conferences
SBES '20: Proceedings of the XXXIV Brazilian Symposium on Software Engineering
October 2020
901 pages
ISBN:9781450387538
DOI:10.1145/3422392
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]

In-Cooperation

  • SBC: Brazilian Computer Society

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 21 December 2020

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. internal quality attributes
  2. non-functional concerns
  3. refactoring
  4. self-affirmed refactorings

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Funding Sources

  • Coordenação de Aperfeiçoamento de Pessoal de Nível Superior
  • Fundação Carlos Chagas Filho de Amparo à Pesquisa do Estado do Rio de Janeiro
  • Conselho Nacional de Desenvolvimento Científico e Tecnológico

Conference

SBES '20

Acceptance Rates

Overall Acceptance Rate 147 of 427 submissions, 34%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

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

Other Metrics

Citations

Cited By

View all
  • (2024)An exploratory evaluation of code smell agglomerationsSoftware Quality Journal10.1007/s11219-024-09680-6Online publication date: 11-Jul-2024
  • (2023)Beyond the Code: Investigating the Effects of Pull Request Conversations on Design Decay2023 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM)10.1109/ESEM56168.2023.10304805(1-12)Online publication date: 26-Oct-2023
  • (2022)On the Influential Interactive Factors on Degrees of Design Decay: A Multi-Project Study2022 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER)10.1109/SANER53432.2022.00093(753-764)Online publication date: Mar-2022
  • (2022)On the documentation of refactoring typesAutomated Software Engineering10.1007/s10515-021-00314-w29:1Online publication date: 1-May-2022
  • (2021)Predicting Design Impactful Changes in Modern Code Review: A Large-Scale Empirical Study2021 IEEE/ACM 18th International Conference on Mining Software Repositories (MSR)10.1109/MSR52588.2021.00059(471-482)Online publication date: May-2021
  • (2021)Look Ahead! Revealing Complete Composite Refactorings and their Smelliness Effects2021 IEEE International Conference on Software Maintenance and Evolution (ICSME)10.1109/ICSME52107.2021.00033(298-308)Online publication date: Sep-2021

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