Refactorización Basada en Componentes de Código Java Legado
DOI:
https://doi.org/10.17533/udea.redin.17165Palabras clave:
integridad de comunicación, Java, refactorización, programación basada en componentesResumen
La Ingeniería de Software Basada en Componentes (CBSE) pretende mejorar la modularización del software y la inserción de preocupaciones arquitecturales. Refactorizar código Java legado con CBSE en mente requiere evaluar primero el cumplimiento del código legado con los principios de la programación por componentes. En este artículo presentamos un portafolio de reglas para evaluar el cumplimiento de la propiedad de Integridad de Comunicación en código Java legado; esta propiedad es una de las mayores fortalezas del enfoque CBSE. Proponemos estas reglas para identificar tipos componente y así proveer una medida de la construcción de componentes CBSE de una aplicación. Con el objetivo de ayudar a los desarrolladores y al personal responsable del mantenimiento de código legado cuando se hace necesario refactorizar sus aplicaciones, nuestro trabajo nos lleva a definir un conjunto de acciones de refactorización. En este artículo también presentamos resultados de pruebas, comparaciones y análisis de las salidas logradas luego de refactorizar varias aplicaciones Java.
Descargas
Citas
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
Descargas
Publicado
Cómo citar
Número
Sección
Licencia
Derechos de autor 2018 Revista Facultad de Ingeniería

Esta obra está bajo una licencia internacional Creative Commons Atribución-NoComercial-CompartirIgual 4.0.
Los artículos disponibles en la Revista Facultad de Ingeniería, Universidad de Antioquia están bajo la licencia Creative Commons Attribution BY-NC-SA 4.0.
Eres libre de:
Compartir — copiar y redistribuir el material en cualquier medio o formato
Adaptar : remezclar, transformar y construir sobre el material.
Bajo los siguientes términos:
Reconocimiento : debe otorgar el crédito correspondiente , proporcionar un enlace a la licencia e indicar si se realizaron cambios . Puede hacerlo de cualquier manera razonable, pero no de ninguna manera que sugiera que el licenciante lo respalda a usted o su uso.
No comercial : no puede utilizar el material con fines comerciales .
Compartir igual : si remezcla, transforma o construye a partir del material, debe distribuir sus contribuciones bajo la misma licencia que el original.
El material publicado por la revista puede ser distribuido, copiado y exhibido por terceros si se dan los respectivos créditos a la revista, sin ningún costo. No se puede obtener ningún beneficio comercial y las obras derivadas tienen que estar bajo los mismos términos de licencia que el trabajo original.