Skip to main content

Recommending Refactorings to Re-establish Architectural Consistency

  • Conference paper
Book cover Software Architecture (ECSA 2014)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 8627))

Included in the following conference series:

  • 1725 Accesses

Abstract

Keeping the software architecture of a system and its implementation consistent can be tough. The larger and more complex a software system is, the more likely software architecture erosion occurs. This effect can lead to a decrease of quality with respect to adaptability, maintainability, or reusability.

Refactorings can help to reverse software architecture erosion through systematically applying them to resolve architecture violations. However, it can be difficult in complex systems to manually resolve all violations in an efficient way due to the complex interdependencies between them.

In this paper, we propose a new approach to the automatic recommendation of refactorings to resolve architecture violations based on a meta-heuristic search for an efficient set of refactorings. The approach is applied to resolve architectural dependency violations using the “move class” refactoring.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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)

    Google Scholar 

  2. Eden, A., Hirshfeld, Y., Kazman, R.: Abstraction classes in software design. IEE Proc. - Softw. 153(4), 163–182 (2006)

    Article  Google Scholar 

  3. Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley (1999)

    Google Scholar 

  4. van Gurp, J., Bosch, J.: Design erosion: Problems and causes. J. Syst. Softw. 61(2), 105–119 (2002)

    Article  Google Scholar 

  5. Herold, S.: Architectural Compliance in Component-Based Systems. Ph.D. thesis, Clausthal University of Technology (2011)

    Google Scholar 

  6. Herold, S., Rausch, A.: Complementing model-driven development for the detection of software architecture erosion. In: 5th International Workshop on Modeling in Software Engineering (MiSE) at ICSE 2013, pp. 24–30 (2013)

    Google Scholar 

  7. Lindvall, M., Muthig, D.: Bridging the software architecture gap. IEEE Computer 41, 98–101 (2008)

    Article  Google Scholar 

  8. Mair, M., Herold, S.: Towards extensive software architecture erosion repairs. In: Drira, K. (ed.) ECSA 2013. LNCS, vol. 7957, pp. 299–306. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

  9. Patel, S., Dandawate, Y., Kuriakose, J.: Architecture recovery as first step in system appreciation. In: 2nd Workshop on Empirical Studies in Reverse Engineering (WESRE) at the 13th Working Conference on Reverse Engineering, WCRE 2006 (2006)

    Google Scholar 

  10. Perry, D.E., Wolf, A.L.: Foundations for the study of software architecture. ACM SIGSOFT Softw. Eng. Notes 17, 40–52 (1992)

    Article  Google Scholar 

  11. Russell, S.J., Norvig, P.: Artificial Intelligence: A Modern Approach. Pearson (2003)

    Google Scholar 

  12. 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)

    Article  Google Scholar 

  13. Seng, O., Stammel, J., Burkhart, D.: Search-based determination of refactorings for improving the class structure of object-oriented systems. In: Proc. 8th Conf. on Genetic and Evolutionary Computation, pp. 1909–1916. ACM (2006)

    Google Scholar 

  14. Shah, S.M.A., Dietrich, J., McCartin, C.: Making smart moves to untangle programs. In: Proc. 16th Europ. Conf. on Software Maintenance and Reengineering, pp. 359–364. IEEE (2012)

    Google Scholar 

  15. Terra, R., Valente, M.T., Czarnecki, K., da Silva Bigonha, R.: Recommending refactorings to reverse software architecture erosion. In: Proc. 16th Europ. Conf. on Software Maintenance and Reengineering, pp. 335–340. IEEE (2012)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer International Publishing Switzerland

About this paper

Cite this paper

Herold, S., Mair, M. (2014). Recommending Refactorings to Re-establish Architectural Consistency. In: Avgeriou, P., Zdun, U. (eds) Software Architecture. ECSA 2014. Lecture Notes in Computer Science, vol 8627. Springer, Cham. https://doi.org/10.1007/978-3-319-09970-5_33

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-09970-5_33

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-09969-9

  • Online ISBN: 978-3-319-09970-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics