Automatic Refactoring of Component-based Software by Detecting and Eliminating Bad Smells - A Search-based Approach

Salim Kebir, Isabelle Borne, Djamel Meslati

2016

Abstract

Refactoring has been proposed as a de facto behavior-preserving mean to eliminate bad smells. However manually determining and performing useful refactorings is a though challenge because seemingly useful refactorings can improve some aspect of a software while making another aspect worse. Therefore it has been proposed to view object-oriented automated refactoring as a search-based technique. Nevertheless the review of the literature shows that automated refactoring of component-based software has not been investigated yet. Recently a catalogue of component-relevant bad smells has been proposed in the literature but there is a lack of component-relevant refactorings. In this paper we propose detection rules for component-relevant bad smells as well as a catalogue of component-relevant refactorings. Then we rely on these two elements to propose a search-based approach for automated refactoring of component-based software systems by detecting and eliminating bad smells. Finally, we experiment our approach on a medium-sized component-based software and we assess the efficieny and accuracy of our approach.

References

  1. Bavota, G., Di Penta, M., and Oliveto, R. (2014). Search based software maintenance: Methods and tools. In Evolving Software Systems, pages 103-137. Springer.
  2. Bieman, J. M. and Kang, B.-K. (1995). Cohesion and reuse in an object-oriented system. In ACM SIGSOFT Software Engineering Notes, volume 20, pages 259-262. ACM.
  3. Fowler, M., Beck, K., Brant, J., Opdyke, W., and Roberts, D. (1999). Refactoring: Improving the design of existing programs.
  4. Garcia, J., Popescu, D., Edwards, G., and Medvidovic, N. (2009). Toward a catalogue of architectural bad smells. In Architectures for adaptive software systems, pages 146-162. Springer.
  5. Macia, I., Garcia, A., Chavez, C., and von Staa, A. (2013). Enhancing the detection of code anomalies with architecture-sensitive strategies. In Software Maintenance and Reengineering (CSMR), 2013 17th European Conference on, pages 177-186. IEEE.
  6. O'Keeffe, M. and Cinnéide, M. O. (2006). Search-based software maintenance. In Software Maintenance and Reengineering, 2006. CSMR 2006. Proceedings of the 10th European Conference on, pages 10-pp. IEEE.
  7. Romano, D., Raemaekers, S., and Pinzger, M. (2014). Refactoring fat interfaces using a genetic algorithm. In Software Maintenance and Evolution (ICSME), 2014 IEEE International Conference on, pages 351-360. IEEE.
  8. Seng, O., Stammel, J., and Burkhart, D. (2006). Searchbased determination of refactorings for improving the class structure of object-oriented systems. In Proceedings of the 8th annual conference on Genetic and evolutionary computation, pages 1909-1916. ACM.
  9. Vale, T., Crnkovic, I., de Almeida, E. S., Neto, P. A. d. M. S., Cavalcanti, Y. C., and de Lemos Meira, S. R. (2016). Twenty-eight years of component-based software engineering. Journal of Systems and Software, 111:128-148.
Download


Paper Citation


in Harvard Style

Kebir S., Borne I. and Meslati D. (2016). Automatic Refactoring of Component-based Software by Detecting and Eliminating Bad Smells - A Search-based Approach . In Proceedings of the 11th International Conference on Evaluation of Novel Software Approaches to Software Engineering - Volume 1: ENASE, ISBN 978-989-758-189-2, pages 210-215. DOI: 10.5220/0005891602100215


in Bibtex Style

@conference{enase16,
author={Salim Kebir and Isabelle Borne and Djamel Meslati},
title={Automatic Refactoring of Component-based Software by Detecting and Eliminating Bad Smells - A Search-based Approach},
booktitle={Proceedings of the 11th International Conference on Evaluation of Novel Software Approaches to Software Engineering - Volume 1: ENASE,},
year={2016},
pages={210-215},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0005891602100215},
isbn={978-989-758-189-2},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 11th International Conference on Evaluation of Novel Software Approaches to Software Engineering - Volume 1: ENASE,
TI - Automatic Refactoring of Component-based Software by Detecting and Eliminating Bad Smells - A Search-based Approach
SN - 978-989-758-189-2
AU - Kebir S.
AU - Borne I.
AU - Meslati D.
PY - 2016
SP - 210
EP - 215
DO - 10.5220/0005891602100215