Abstract
Software architecture erosion can reduce the quality of software systems significantly. It is hence of great importance to repair erosion efficiently, for example, by means of refactoring. However, existing refactoring approaches do not address architecture erosion holistically.
In this paper, we describe the problem of optimally repairing software architecture erosion and investigate the applicability and limitations of current refactoring approaches. We argue that a heuristic search for adequate repairs using formalized and explicit knowledge of software engineers could overcome those limitations.
This paper outlines an approach we have been starting to investigate in our recent research and also aims at stimulating a discussion about further research challenges in repairing software architecture erosion.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Perry, D.E., Wolf, A.L.: Foundations for the study of software architecture. ACM SIGSOFT Softw. Eng. Notes 17, 40–52 (1992)
van Gurp, J., Bosch, J.: Design erosion: problems and causes. J. Syst. Softw. 61(2), 105–119 (2002)
Lindvall, M., Muthig, D.: Bridging the software architecture gap. IEEE Computer 41, 98–101 (2008)
Sarkar, S., Ramachandran, S., Kumar, G.S., Iyengar, M.K., Rangarajan, K., Sivagnanam, S.: Modularization of a large-scale business application: A case study. IEEE Softw. 26(2), 28–35 (2009)
de Silva, L., Balasubramaniam, D.: Controlling software architecture erosion: A survey. J. Syst. Softw. 85(1), 132–151 (2012)
Murphy, G.C., Notkin, D., Sullivan, K.J.: Software reflexion models: bridging the gap between design and implementation. IEEE Trans. Softw. Eng. 27(4), 364–380 (2001)
Opdyke, W.F.: Refactoring object-oriented frameworks. PhD thesis, University of Illinois at Urbana-Champaign (1992)
Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley (1999)
Eden, A., Hirshfeld, Y., Kazman, R.: Abstraction classes in software design. IEE Proc. - Softw. 153(4), 163–182 (2006)
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P.: A System of Patterns: Pattern-Oriented Software Architecture, vol. 1. John Wiley & Sons (1996)
Ouni, A., Kessentini, M., Sahraoui, H., Boukadoum, M.: Maintainability defects detection and correction: a multi-objective approach. Automated Software Engineering 20, 47–79 (2013)
Seng, O., Stammel, J., Burkhart, D.: Search-based determination of refactorings for improving the class structure of object-oriented systems. In: Proc. of the 8th Conf. on Genetic and Evolutionary Computation, pp. 1909–1916. ACM (2006)
O’Keeffe, M., Cinneide, M.: Search-based software maintenance. In: Proc. of the 10th Europ. Conf. on Software Maintenance and Reengineering (2006)
Ivkovic, I., Kontogiannis, K.: A framework for software architecture refactoring using model transformations and semantic annotations. In: Proc. of the 10th Europ. Conf. on Software Maintenance and Reengineering, pp. 135–144. IEEE (2006)
Dietrich, J., McCartin, J., Tempero, E., Shah, S.M.A.: On the existence of high-impact refactoring opportunities in programs. In: Australasian Computer Science Conf., vol. 122, pp. 37–48. ACS (2012)
Shah, S.M.A., Dietrich, J., McCartin, C.: Making smart moves to untangle programs. In: Proc. of the 2012 16th Europ. Conf. on Software Maintenance and Reengineering, pp. 359–364. IEEE (2012)
Hotta, K., Higo, Y., Kusumoto, S.: Identifying, tailoring, and suggesting form template method refactoring opportunities with program dependence graph. In: 16th Europ. Conf. on Software Maintenance and Reengineering, pp. 53–62 (2012)
Bourqun, F., Keller, R.K.: High-impact refactoring based on architecture violations. In: Proc. of the 11th Europ. Conf. on Software Maintenance and Reengineering, pp. 149–158. IEEE (2007)
Schmidt, F., MacDonell, S.G., Connor, A.M.: An automatic architecture reconstruction and refactoring framework. In: Lee, R. (ed.) Software Eng. Research, Management & Appl. 2011. SCI, vol. 377, pp. 95–111. Springer, Heidelberg (2012)
Pérez, J., Crespo, Y.: Computation of refactoring plans from refactoring strategies using htn planning. In: Proc. of the Fifth Workshop on Refactoring Tools, pp. 24–31. ACM (2012)
Tsantalis, N., Chatzigeorgiou, A.: Identification of move method refactoring opportunities. IEEE Trans. Softw. Eng. 35(3), 347–367 (2009)
Ouni, A., Kessentini, M., Sahraoui, H., Hamdi, M.: Search-based refactoring: Towards semantics preservation. In: 28th IEEE Int. Conf. on Software Maintenance, pp. 347–356 (2012)
Moghadam, I.H., Cinneide, M.O.: Automated refactoring using design differencing. In: Proc. of the 16th Europ. Conf. on Software Maintenance and Reengineering, pp. 43–52. IEEE Computer Society (2012)
Terra, R., Valente, M.T., Czarnecki, K., da Silva Bigonha, R.: Recommending refactorings to reverse software architecture erosion. In: Proc. of the 16th Europ. Conf. on Software Maintenance and Reengineering, pp. 335–340. IEEE (2012)
Herold, S.: Architectural Compliance in Component-Based Systems. Foundations, Specification, and Checking of Architectural Rules. PhD thesis, Clausthal University of Technology (2011)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Mair, M., Herold, S. (2013). Towards Extensive Software Architecture Erosion Repairs. In: Drira, K. (eds) Software Architecture. ECSA 2013. Lecture Notes in Computer Science, vol 7957. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-39031-9_25
Download citation
DOI: https://doi.org/10.1007/978-3-642-39031-9_25
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-39030-2
Online ISBN: 978-3-642-39031-9
eBook Packages: Computer ScienceComputer Science (R0)