Pattern-Based Refactoring of Legacy Software Systems

  • Sascha Hunold
  • Björn Krellner
  • Thomas Rauber
  • Thomas Reichel
  • Gudula Rünger
Part of the Lecture Notes in Business Information Processing book series (LNBIP, volume 24)


Rearchitecturing large software systems becomes more and more complex after years of development and a growing size of the code base. Nonetheless, a constant adaptation of software in production is needed to cope with new requirements. Thus, refactoring legacy code requires tool support to help developers performing this demanding task. Since the code base of legacy software systems is far beyond the size that developers can handle manually we present an approach to perform refactoring tasks automatically. In the pattern-based transformation the abstract syntax tree of a legacy software system is scanned for a particular software pattern. If the pattern is found it is automatically substituted by a target pattern. In particular, we focus on software refactorings to move methods or groups of methods and dependent member variables. The main objective of this refactoring is to reduce the number of dependencies within a software architecture which leads to a less coupled architecture. We demonstrate the effectiveness of our approach in a case study.


Pattern-based transformation Legacy system restructuring Business software Class decoupling Object-oriented metrics 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Abreu, F., Brito, R.: Object-Oriented Software Engineering: Measuring and Controlling the Development Process. In: Proc. of the 4th Int. Conf. on Software Quality (ASQC), McLean, VA, USA (1994)Google Scholar
  2. 2.
    Beck, K., Andres, C.: Extreme Programming Explained: Embrace Change, 2nd edn. Addison-Wesley Professional, Reading (2004)Google Scholar
  3. 3.
    Cordy, J.R.: Source transformation, analysis and generation in TXL. In: Proc. of the 2006 ACM SIGPLAN Symp. on Partial Evaluation and Semantics-based Program Manipulation (PEPM 2006), New York, NY, USA, pp. 1–11(2006)Google Scholar
  4. 4.
    Correia, R., Matos, C., El-Ramly, M., Heckel, R., Koutsoukos, G., Andrade, L.: Software Reengineering at the Architectural Level: Transformation of Legacy Systems. Technical report, University of Leicester (2006)Google Scholar
  5. 5.
    Côté, I., Heisel, M., Wentzlaff, I.: Pattern-based Exploration of Design Alternatives for the Evolution of Software Architectures. Int. Journal of Cooperative Information Systems (December 2007) (Special Issue of the Best Papers of the ECSA 2007) Google Scholar
  6. 6.
    Eick, S.G., Graves, T.L., Karr, A.F., Marron, J.S., Mockus, A.: Does Code Decay? Assessing the Evidence from Change Management Data. IEEE Transactions on Software Engineering 27(1), 1–12 (2001)CrossRefGoogle Scholar
  7. 7.
    Fokaefs, M., Tsantalis, N., Chatzigeorgiou, A.: JDeodorant: Identification and Removal of Feature Envy Bad Smells. In: Proc. of the 23rd IEEE Int. Conf. on Software Maintenance (ICSM 2007), Paris, France, pp. 519–520 (October 2007)Google Scholar
  8. 8.
    Fowler, M., Beck, K., Brant, J., Opdyke, W., Roberts, D.: Refactoring: Improving the Design of Existing Code. Addison-Wesley Professional, Massachusetts (1999)Google Scholar
  9. 9.
    Hunold, S., Korch, M., Krellner, B., Rauber, T., Reichel, T., Rünger, G.: Transformation of Legacy Software into Client/Server Applications through Pattern-Based Rearchitecturing. In: Proc. of the 32nd IEEE Int. Computer Software and Applications Conf (COMPSAC 2008), Turku, Finland, pp. 303–310 (2008)Google Scholar
  10. 10.
    Lanza, M., Marinescu, R., Ducasse, S.: Object-Oriented Metrics in Practice. Springer, New York (2006)Google Scholar
  11. 11.
    Mäntylä, M.V., Lassenius, C.: Drivers for software refactoring decisions. In: Proc. of the 2006 ACM/IEEE Int. Symp. on Empirical Software Engineering (ISESE 2006), New York, NY, USA, pp. 297–306 (2006)Google Scholar
  12. 12.
    Mens, T., Tourwé, T.: A Survey of Software Refactoring. IEEE Transactions on Software Engineering 30(2), 126–139 (2004)CrossRefGoogle Scholar
  13. 13.
    Portugal, L., Baroni, L.: Formal Definition of Object-Oriented Design Metrics. Master’s thesis, Ecole des Mines de Nantes, France; Universidade Nova de Lisboa, Portugal (2002)Google Scholar
  14. 14.
    Rauber, T., Rünger, G.: Transformation of Legacy Business Software into Client-Server Architectures. In: Proc. of the 9th Int. Conf. on Enterprise Information Systems, Funchal, Madeira, Portugal (2007)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Sascha Hunold
    • 1
  • Björn Krellner
    • 2
  • Thomas Rauber
    • 1
  • Thomas Reichel
    • 2
  • Gudula Rünger
    • 2
  1. 1.University of BayreuthGermany
  2. 2.Chemnitz University of TechnologyGermany

Personalised recommendations