ABSTRACT
Technical Debt (TD) reflects problems in software maintainability along evolution. TD principal is defined as the effort required for refactoring an existing system to an ideal one (a.k.a. optimal) that suffers from no maintainability problems. One of the open problems in the TD community is that ideal versions of systems do not exist, and there are no methods in the literature for approaching them, even theoretically. To alleviate this problem, in this paper we propose an efficient TD management strategy, by applying Search-Based Software Engineering techniques. In particular, we focus on one specific aspect of TD, namely inefficient software modularity, by properly assigning behavior and state to classes through search space exploration. At the same time, in the context of TD, we: (a) investigate the use of local search algorithms to obtain a near-optimum solution and propose TD repayment actions (i.e., refactorings), and (b) calculate the distance of a design to the corresponding optimal (i.e., a proxy of TD principal). The approach has been implemented in the JCaliper Eclipse plugin enabling a case study, which validates the approach and contrasts it to existing measure of software evolution.
- N. S. R. Alves, T. S. Mendes, M. G. de Mendonça, R. O. Spínola, F. Shull, and C. Seaman, "Identification and management of technical debt: A systematic mapping study," Inf. Softw. Technol., vol. 70, pp.100--121, Feb. 2016. Google ScholarDigital Library
- A. Ampatzoglou, A. Ampatzoglou, A. Chatzigeorgiou, P. Avgeriou, P. Abrahamsson, A. Martini, U. Zdun, and K. Systa, "The Perception of Technical Debt in the Embedded Systems Domain: An Industrial Case Study," in 2016 IEEE 8th International Workshop on Managing Technical Debt (MTD), Raleigh, NC, USA, 2016, pp. 9--16.Google Scholar
- A. Arcuri and G. Fraser, "On Parameter Tuning in Search Based Software Engineering," in Search Based Software Engineering, M. B. Cohen and M. Ó. Cinnéide, Eds. Springer Berlin Heidelberg, 2011, pp. 33--47. Google ScholarDigital Library
- E. M. Arvanitou, A. Ampatzoglou, A. Chatzigeorgiou, M. Galster, and P. Avgeriou, "A mapping study on design-time quality attributes and metrics," J. Syst. Softw., vol. 127, pp. 52--77, May 2017. Google ScholarDigital Library
- M. Basdavanos and A. Chatzigeorgiou, "Placement of Entities in Object-Oriented Systems by Means of a Single-Objective Genetic Algorithm," in 2010 Fifth International Conference on Software Engineering Advances, Nice, France, 2010, pp. 70--75. Google ScholarDigital Library
- G. Bavota, F. Carnevale, A. D. Lucia, M. D. Penta, and R. Oliveto, "Putting the Developer in-the-Loop: An Interactive GA for Software Re-modularization," in Search Based Software Engineering, G. Fraser and J. T. de Souza, Eds. Springer Berlin Heidelberg, 2012, pp. 75--89. Google ScholarDigital Library
- G. Booch, R. A. Maksimchuk, M. W. Engle, B. J. Young, J. Conallen, and K. A. Houston, Object-Oriented Analysis and Design with Applications, 3 edition. Upper Saddle River, NJ: Addison-Wesley Professional, 2007. Google ScholarDigital Library
- S. R. Chidamber and C. F. Kemerer, "A metrics suite for object oriented design," IEEE Trans. Softw. Eng., vol. 20, no. 6, pp. 476--493, Jun. 1994. Google ScholarDigital Library
- B. Curtis, J. Sappidi, and A. Szynkarski, "Estimating the principal of an application's technical debt," IEEE Softw., no. 6, pp. 34--42, 2012. Google ScholarDigital Library
- E. Falkenauer, Genetic Algorithms and Grouping Problems, 1 edition. Chichester ; New York: Wiley, 1998. Google ScholarDigital Library
- M. Fowler, K. Beck, J. Brant, W. Opdyke, D. Roberts, and E. Gamma, Refactoring: Improving the Design of Existing Code, 1 edition. Reading, MA: Addison-Wesley Professional, 1999. Google ScholarDigital Library
- E. Gamma, R. Helm, R. Johnson, J. Vlissides, and G. Booch, Design Patterns: Elements of Reusable Object-Oriented Software, 1 edition. Reading, Mass: Addison-Wesley Professional, 1994. Google ScholarDigital Library
- C. Ghezzi, M. Jazayeri, and D. Mandrioli, Fundamentals of software engineering. Upper Saddle River, N.J.: Prentice Hall, 2003. Google ScholarDigital Library
- F. Glover and M. Laguna, "Tabu Search," in Handbook of Combinatorial Optimization: Volume 1-3, D.-Z. Du and P. M. Pardalos, Eds. Boston, MA: Springer US, 1999, pp. 2093--2229.Google Scholar
- M. Harman and J. Clark, "Metrics Are Fitness Functions Too," in Proceedings of the Software Metrics, 10th International Symposium, USA, 2004. Google ScholarDigital Library
- D. E. Knuth, The Art of Computer Programming, 1 edition. Amsterdam: Addison-Wesley Professional, 2011. Google ScholarDigital Library
- P. Kruchten, R. L. Nord, and I. Ozkaya, "Technical debt: from metaphor to theory and practice," Ieee Softw., no. 6, pp. 18--21, 2012. Google ScholarDigital Library
- M. M. Lehman, "Laws of software evolution revisited," in Software Process Technology, 1996, pp. 108--124. Google ScholarDigital Library
- J. Letouzey and T. Coq, "The SQALE Analysis Model: An Analysis Model Compliant with the Representation Condition for Assessing the Quality of Software Source Code," in 2010 Second International Conference on Advances in System Testing and Validation Lifecycle, 2010, pp. 43--48. Google ScholarDigital Library
- Z. Li, P. Liang, P. Avgeriou, N. Guelfi, and A. Ampatzoglou, "An empirical investigation of modularity metrics for indicating architectural technical debt," in Proceedings of the 10th international ACM Sigsoft conference on Quality of software architectures, 2014, pp. 119--128. Google ScholarDigital Library
- R. Marinescu, "Assessing technical debt by identifying design flaws in software systems," IBM J. Res. Dev., vol. 56, no. 5, pp. 9--1, 2012. Google ScholarDigital Library
- R. C. Martin, Agile software development: principles, patterns, and practices. Upper Saddle River, N.J.: Prentice Hall, 2003. Google ScholarDigital Library
- R. H. Myers, D. C. Montgomery, and C. M. Anderson-Cook, Response Surface Methodology: Process and Product Optimization Using Designed Experiments. John Wiley & Sons, 2009.Google Scholar
- R. L. Nord, I. Ozkaya, P. Kruchten, and M. Gonzalez-Rojas, "In search of a metric for managing architectural technical debt," in Software Architecture (WICSA) and European Conference on Software Architecture (ECSA), 2012 Joint Working IEEE/IFIP Conference on, 2012, pp. 91--100. Google ScholarDigital Library
- M. O'Keeffe and M. Ó. Cinnéide, "Search-based refactoring: an empirical study," J. Softw. Maint. Evol. Res. Pract, vol. 20, no. 5, pp.345--364, Sep. 2008. Google ScholarDigital Library
- A. J. Riel, Object-Oriented Design Heuristics, 1 edition. Reading, Mass.: Addison-Wesley Professional, 1996. Google ScholarDigital Library
- P. Runeson, M. Host, A. Rainer, and B. Regnell, Case Study Research in Software Engineering: Guidelines and Examples, 1 edition. Wiley, 2012. Google ScholarDigital Library
- S. Russell and P. Norvig, Artificial Intelligence: A Modern Approach, 3 edition. Upper Saddle River: Pearson, 2009. Google ScholarDigital Library
- C. L. Simons and I. C. Parmee, "Elegant Object-Oriented Software Design via Interactive, Evolutionary Computation," IEEE Trans. Syst. Man Cybern. Part C Appl. Rev., vol. 42, no. 6, pp. 1797--1805, Nov. 2012. Google ScholarDigital Library
- P. Skiada, A. Ampatzoglou, E. M. Arvanitou, A. Chatzigeorgiou, and I. Stamelos, "Exploring the Relationship between Software Modularity and Technical Debt," in 4th Conference on Software Engineering and Advanced Applications (SEAA) 2018.Google Scholar
- N. Tsantalis and A. Chatzigeorgiou, "Identification of Move Method Refactoring Opportunities," IEEE Trans Softw Eng, vol. 35, May 2009. Google ScholarDigital Library
- H. van Vliet, Software Engineering: Principles and Practice, 3 edition. Chichester, England ; Hoboken, NJ: Wiley, 2008. Google ScholarDigital Library
- S. Wang, S. Ali, and A. Gotlieb, "Random-Weighted Search-Based Multi-objective Optimization Revisited," in Search-Based Software Engineering, 2014, pp. 199--214.Google Scholar
Index Terms
- JCaliper: search-based technical debt management
Recommendations
Prioritizing code-smells correction tasks using chemical reaction optimization
The presence of code-smells increases significantly the cost of maintenance of systems and makes them difficult to change and evolve. To remove code-smells, refactoring operations are used to improve the design of a system by changing its internal ...
An innovative approach to teaching refactoring
SIGCSE '06: Proceedings of the 37th SIGCSE technical symposium on Computer science educationRefactoring is the process of transforming the internal structure of existing code while keeping the integrity of the code's functional requirements. Refactoring is proven to increase program maintainability, flexibility, and understandability and is ...
Recommendation system for software refactoring using innovization and interactive dynamic optimization
ASE '14: Proceedings of the 29th ACM/IEEE International Conference on Automated Software EngineeringWe propose a novel recommendation tool for software refactoring that dynamically adapts and suggests refactorings to developers interactively based on their feedback and introduced code changes. Our approach starts by finding upfront a set of non-...
Comments