Component-Based Java Legacy Code Refactoring

Authors

  • Hugo Arboleda ICESI University
  • Andrés Paz ICESI University
  • Jean-Claude Royer Mines of Nantes

DOI:

https://doi.org/10.17533/udea.redin.17165

Keywords:

communication integrity, Java, refactoring, component based programming

Abstract

Component-Based Software Engineering (CBSE) claims to improve software modularisation and to embed architectural concerns. Refactoring Java legacy code with CBSE in mind requires first assessing the compliance of legacy code with component programming principles. This paper presents a portfolio of rules to assess the compliance of Java legacy code with the Communication Integrity (CI) property, which is one of the major strengths of the CBSE approach. These rules are proposed with the objective of identifying implicit component types and thus provide a measure of the componentisation of an application. In order to help developers and legacy code maintainers when refactoring their applications, along with the rules, this work leads to define a set of refactoring actions. Additionally, the results of testing, comparing and analysing the outputs of refactoring several Java applications are also presented.

|Abstract
= 116 veces | PDF (ESPAÑOL (ESPAÑA))
= 77 veces|

Downloads

Download data is not yet available.

Author Biographies

Hugo Arboleda, ICESI University

I2T Group.

Andrés Paz, ICESI University

I2T Group.

Jean-Claude Royer, Mines of Nantes

ASCOLA Group.

References

N. Medvidovic, R. Taylor. “A Classification and Comparison Framework for Softwar Architecture Description Languages”. IEEE Transactions on Software Engineering. Vol. 26. 2000. pp. 70-93. DOI: https://doi.org/10.1109/32.825767

C. Luckham, J. Kenney, L. Augustin, J. Vera, D. Bryan, W. Mann. “Specification and Analysis of System Architecture Using Rapide”. IEEE Transactions on Software Engineering. Vol. 21. 1995.pp. 336-355. DOI: https://doi.org/10.1109/32.385971

J. Aldrich, C. Chambers, D. Notkin. ArchJava: connecting software architecture to implementation. Proceedings of the 24th International Conference on Software Engineering (ICSE’02). Orlando, FL, USA. 2002. pp. 187-197. DOI: https://doi.org/10.1145/581339.581365

R. Terra, M. Valente, K. Czarnecki, R. Bigonha. Recommending Refactorings to Reverse Software Architecture Erosion. 16th European Conference on Software Maintenance and Reengineering (CSMR).Szeged, Hungary. 2012. pp. 335-340. DOI: https://doi.org/10.1109/CSMR.2012.40

D. Perry, A. Wolf. “Foundations for the Study of Software Architecture”. Software Engineering Notes. Vol. 17. 1992. pp. 40-52. DOI: https://doi.org/10.1145/141874.141884

J. van Gurp, J. Bosch.“Design Erosion: Problems & Causes”. Journal of Systems and Software. Vol. 61. 2002. pp. 105-119. DOI: https://doi.org/10.1016/S0164-1212(01)00152-2

M. Lindvall, D. Muthig. “Bridging the Software Architecture Gap”. IEEE Compute. Vol. 41. 2008. pp. 98-10. DOI: https://doi.org/10.1109/MC.2008.176

H. Arboleda, J. Royer. Component types qualification in Java legacy code driven by communication integrity rules. Proceedings of the 4th India Software Engineering Conference (ISEC’11). New York, NY, USA. 2011. pp. 155-164. DOI: https://doi.org/10.1145/1953355.1953377

H. Arboleda, J. Royer. Java Component Refactoring Based on Communication Integrity Violations. 9thBelgian-Netherlands Software Evolution Seminar. Lille, France. 2010. pp. 115-129.

I. Crnkovic, S. Sentilles, A. Vulgarakis, M. Chaudron. “A Classification Framework for Software Component Models.” IEEE Transactions on Software Engineering. Vol. 37. 2011. pp. 593-615. DOI: https://doi.org/10.1109/TSE.2010.83

J. Bosch, C. Szyperski, W. Weck. Component-Oriented Programming. European Conference on Object-Oriented Programming (ECOOP) Workshops 2003. Darmstadt, Germany. 2003. pp. 34-49. DOI: https://doi.org/10.1007/978-3-540-25934-3_5

J. Aldrich, C. Chambers, D. Notkin. Architectural Reasoning in ArchJava. Proceedings Eureopean Conference on Onject-Oriented Programming (ECOOP) 2002. Málaga, Spain. 2002. Vol. 2374. pp. 334-367. DOI: https://doi.org/10.1007/3-540-47993-7_15

M. da Silva, P. de Castro, C. Rubira. A java component Model for Envolving Software Systems.18th IEEE International conference on Automated Software Engineering (ASE). Montreal, Canada. 2003. pp. 327-330.

J. Gosling, B. Joy, G. Steele, G. Bracha. The Java Language Specification. 3rd ed. Ed. Addison-Wesley. Santa Clara, California, USA. 2005. pp. 175-248.

J. Aldrich, C. Chambers. Ownership Domains: Separating Aliasing Policy from Mechanism. Object-Oriented Programming European Conference(ECOOP’04). 2004. Vol. 3086. pp. 1-25. DOI: https://doi.org/10.1007/978-3-540-24851-4_1

M. Abi, J. Aldrich, W. Coelho.“A case study in re-engineering to enforce architectural control flow and data sharing.” Journal of Systems and Software. Vol. 80. 2007.pp. 240-264. DOI: https://doi.org/10.1016/j.jss.2006.10.036

Slashdot Media. SourceForge. Available: http://sourceforge.net/. Accessed in october 18, 2012.

The Apache Software Foundation. The Apache Jakarta Project. Available: http://jakarta.apache.org/. Accessed in october 18, 2012.

A. Cansado, D. Caromel, L. Henrio, E. Madelaine, M. Rivera, E. Salageanu. “A Specification Language for Distributed Components Implemented in {GCM}/ProActive”. CoCoME. Vol. 5153. 2007. pp. 418-448. DOI: https://doi.org/10.1007/978-3-540-85289-6_16

L. Hochstein, M. Lindvall. “Combating architectural degeneration: a survey”. Information & Software Technology. Vol. 47. 2005. pp. 643-656. DOI: https://doi.org/10.1016/j.infsof.2004.11.005

N. Mendonça, J. Kramer. “Requirements for an effective architecture recovery framework”. Joint proceedings of the second international software architecture workshop (ISAW-2) and international workshop on multiple perspectives in software development (Viewpoints ’96) on SIGSOFT ‘96 workshops. ACM. New York, NY, USA. 1996. pp. 101-105. DOI: https://doi.org/10.1145/243327.243620

D. Gallardo. Refactoring for everyone. IBM developerWorks Technical library. 2003. Available: http://www.ibm.com/developerworks/library/os-ecref/. Accessed in october 18, 2012.

C. Stringfellow, C. Amory, D. Potnuri, A. Andrews, M. Georg. “Comparison of software architecture reverse engineering methods”. Information & Software Technology. Vol. 48. 2006. pp. 484-487. DOI: https://doi.org/10.1016/j.infsof.2005.05.007

Published

2013-10-21

How to Cite

Arboleda, H., Paz, A., & Royer, J.-C. (2013). Component-Based Java Legacy Code Refactoring. Revista Facultad De Ingeniería Universidad De Antioquia, (68), 104–114. https://doi.org/10.17533/udea.redin.17165