Entorno de ingeniería inversa para la integración de funcionalidades basado en una arquitectura orientada a componentes

En la búsqueda de mejorar y realizar avances relacionados al desarrollo de software aparecen las herramientas CASE (Computer Aided Software Engineering) - (Ingeniería de Software Asistida por Computadora), cuyo objetivo es mejorar y reducir el impacto de las fallas o problemas que se puedan presenta...

Full description

Autores:
Pájaro Almagro, Eugenio
Barrios Pacheco, Mario
Tipo de recurso:
Trabajo de grado de pregrado
Fecha de publicación:
2021
Institución:
Universidad de Cartagena
Repositorio:
Repositorio Universidad de Cartagena
Idioma:
spa
OAI Identifier:
oai:repositorio.unicartagena.edu.co:11227/15009
Acceso en línea:
https://hdl.handle.net/11227/15009
http://dx.doi.org/10.57799/11227/8492
Palabra clave:
Arquitectura de Software
Ingeniería inversa
Ingeniería de software
Sitios web académicos
Arquitectura orientada a servicios (Computadores)
Rights
openAccess
License
https://creativecommons.org/licenses/by-nc-nd/4.0/
Description
Summary:En la búsqueda de mejorar y realizar avances relacionados al desarrollo de software aparecen las herramientas CASE (Computer Aided Software Engineering) - (Ingeniería de Software Asistida por Computadora), cuyo objetivo es mejorar y reducir el impacto de las fallas o problemas que se puedan presentar en el ciclo de vida de un proyecto software. La ingeniería inversa ha contribuido al desarrollo de software de calidad y esto en parte ha sido gracias al uso de herramientas CASE, la mayoría de estas herramientas se limitan sólo a la recuperación de la vista estática, dejando aún, muchos vacíos y limitaciones al no permitir extender sus funcionalidades. Esta problemática ha sido expuesta por el profesor Martín Monroy en su tesis doctoral titulada “Marco de referencia para la recuperación y análisis de vistas arquitectónicas de comportamiento” y en respuesta a ella se desarrolló un entorno de ingeniería inversa que funciona como una interface integradora, que permite añadir nuevas funcionalidades, garantizando la extensibilidad e integridad. Para la toma de decisiones se tuvo en cuenta, la literatura referente a las funcionalidades en las herramientas existentes, lo que resultó en el uso de RUP como metodología y una arquitectura orientada a componentes, con el fin de alcanzar una independencia funcional, mantener un bajo acoplamiento, alta cohesión y escalabilidad horizontal. Facilitando la interoperabilidad a nivel de funcionalidades, lo cual ofrece un aporte significativo en pro del desarrollo de herramientas CASE en el ámbito local. Durante la investigación se evaluaron diversas tecnologías con el fin de encontrar una que se amoldara a las necesidades el proyecto, empezando por Java Swin, Visual Library, módulos de NetBeans y Core-Common, al final de una serie de pruebas, la tecnología que se adaptó mejor a las necesidades del proyecto fue Core-Common, que forman parte del framework de Docking Frames. De la investigación es importante resaltar las estrategias utilizadas en la integración de funcionalidades dinámicas o estáticas. Además de arquitecturas y patrones orientados a componentes, de lo que resaltan micro kernel y la inflexión. Como resultado se obtuvo una interfaz integradora de componentes software, documento de integración basado en xmi y resultados arquitectónicos.