Abstract
With the rapid growth of the complexity of software systems, the problem of integrating and maintaining legacy software is more relevant than ever. To overcome this problem, many methods for refactoring legacy code have already been proposed such as renaming classes or extracting interfaces. To perform a real modularization, methods have to be moved between classes. However, moving a single method is often not possible due to code dependencies.
In this article we present an approach to modularize legacy software by moving multiple related class members. It is shown how to identify groups of class members with similar concerns. We present two different code patterns that the related members and their dependent classes must match to allow a relocation of the related members. We also demonstrate how our pattern-based approach for automated modularization of legacy software can be applied to two open source projects.
Chapter PDF
Similar content being viewed by others
References
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)
Binkley, D.: Source Code Analysis: A Road Map. In: Future of Software Engineering (FOSE), pp. 104–119. IEEE Comp. Soc., Washington, DC (2007)
Mens, T., Tourwé, T.: A Survey of Software Refactoring. IEEE Transactions on Software Engineering 30(2), 126–139 (2004)
Serrano, M.A., Carver, D.L., de Oca, C.M.: Reengineering Legacy Systems for Distributed Environments. Journal of Systems and Software 64(1), 37–55 (2002)
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 Annual Conf. on Genetic and Evolutionary Computation (GECCO), pp. 1909–1916. ACM, New York (2006)
Fowler, M., Beck, K., Brant, J., Opdyke, W., Roberts, D.: Refactoring: Improving the Design of Existing Code. Addison-Wesley Professional, Massachusetts (1999)
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 International Computer Software and Applications Conf (COMPSAC), pp. 303–310 (2008)
Hunold, S., Krellner, B., Rauber, T., Reichel, T., Rünger, G.: Pattern-based Refactoring of Legacy Software Systems. In: Proc. of the 11th International Conference on Enterprise Information Systems (ICEIS), pp. 78–89 (2009)
Lanza, M., Marinescu, R., Ducasse, S.: Object-Oriented Metrics in Practice. Springer-Verlag New York, Inc., Secaucus (2006)
Brito e Abreu, F., Carapuça, R.: Object-Oriented Software Engineering: Measuring and Controlling the Development Process. In: Proc. of the 4th International Conference on Software Quality (ASQC), McLean, VA, USA (1994)
Moser, R., Abrahamsson, P., Pedrycz, W., Sillitti, A., Succi, G.: A Case Study on the Impact of Refactoring on Quality and Productivity in an Agile Team. In: Meyer, B., Nawrocki, J.R., Walter, B. (eds.) CEE-SET 2007. LNCS, vol. 5082, pp. 252–266. Springer, Heidelberg (2008)
O’Keeffe, M., í Cinnéide, M.: Search-based Refactoring for Software Maintenance. Journal of Systems and Software 81(4), 502–516 (2008)
Tahvildari, L., Kontogiannis, K.: Improving Design Quality Using Meta-pattern Transformations: a Metric-based Approach. Journal of Software Maintenance 16(4-5), 331–361 (2004)
Brown, W.J., Malveau, R.C., McCormick III, H.W., Mowbray, T.J.: Anti-Patterns: Refactoring Software, Architectures, and Projects in Crisis, 1st edn. John Wiley & Sons, Inc. (1998)
Rayside, D.: Points-To Analysis. Technical report, MIT Computer Science and Artificial Intelligence Laboratory, Cambridge, MA, USA (2005)
Ryder, B.G.: Dimensions of Precision in Reference Analysis of Object-Oriented Programming Languages. In: Hedin, G. (ed.) CC 2003. LNCS, vol. 2622, pp. 126–137. Springer, Heidelberg (2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 IFIP International Federation for Information Processing
About this paper
Cite this paper
Ferber, M., Hunold, S., Krellner, B., Rauber, T., Reichel, T., Rünger, G. (2012). Reducing the Class Coupling of Legacy Code by a Metrics-Based Relocation of Class Members. In: Szmuc, T., Szpyrka, M., Zendulka, J. (eds) Advances in Software Engineering Techniques. CEE-SET 2009. Lecture Notes in Computer Science, vol 7054. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-28038-2_16
Download citation
DOI: https://doi.org/10.1007/978-3-642-28038-2_16
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-28037-5
Online ISBN: 978-3-642-28038-2
eBook Packages: Computer ScienceComputer Science (R0)