Component-Based Java Legacy Code Refactoring
DOI:
https://doi.org/10.17533/udea.redin.17165Keywords:
communication integrity, Java, refactoring, component based programmingAbstract
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.
Downloads
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
Downloads
Published
How to Cite
Issue
Section
License
Copyright (c) 2018 Revista Facultad de Ingeniería

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Revista Facultad de Ingeniería, Universidad de Antioquia is licensed under the Creative Commons Attribution BY-NC-SA 4.0 license. https://creativecommons.org/licenses/by-nc-sa/4.0/deed.en
You are free to:
Share — copy and redistribute the material in any medium or format
Adapt — remix, transform, and build upon the material
Under the following terms:
Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
NonCommercial — You may not use the material for commercial purposes.
ShareAlike — If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original.
The material published in the journal can be distributed, copied and exhibited by third parties if the respective credits are given to the journal. No commercial benefit can be obtained and derivative works must be under the same license terms as the original work.