En este artículo se presenta un ejemplo que describe cómo la Ingeniería Dirigida por Modelos (IDM) puede ser aplicada al desarrollo de herramientas para la ingeniería reversa y comprensión de programas. Se seleccionó como caso de estudio la herramienta CodeCrawler, específicamente la funcionalidad denominada polymetric view, desarrollada mediante tecnologías y técnicas de la IDM. Para ello, se emplearon dos metamodelos (entrada y salida) y transformaciones a nivel de los metamodelos que permiten generar la información de un polymetric view asociado a un proyecto de software, utilizando la información extraída del código fuente. Las tecnologías utilizadas para el desarrollo del ejemplo, las relacionadas con el Eclipse Modeling Project, específicamente el lenguaje de transformación ATL y el lenguaje KM3. El enfoque seguido para obtener la implementación resultante puede ser utilizado para desarrollar una herramienta de ingeniería reversa y comprensión de software mediante técnicas de la IDM, incorporando el vocabulario del dominio en la implementación.
INTRODUCCIÓN
La evolución del software es uno de los problemas más importantes y recurrentes de la ingeniería del software. Esto es consecuencia de los rápidos cambios que se han producido en las últimas décadas, tanto a nivel tecnológico como en los métodos y técnicas de desarrollo de software; en consecuencia, las técnicas que soportan la evolución del software son una necesidad, especialmente para el software de gran tamaño (millones de líneas de código).
Hoy en día, como los cambios tecnológicos son tan rápidos, algunas tecnologías se quedan obsoletas rápidamente, incluso antes de alcanzar un nivel de madurez adecuado. El paradigma orientado a objetos (OO) se consideraba una solución para varios problemas de evolución y mantenimiento del software, pero la evidencia empírica está demostrando que el OO está creando nuevos problemas de evolución y debe utilizarse con cuidado para que la complejidad del mantenimiento no sea mayor que la de los sistemas tradicionales.
Además, el concepto de software heredado ha cambiado con el tiempo. En los sistemas de producción del mundo industrial, donde están los sistemas en producción, el término legado se ha convertido en algo habitual. En los últimos años, se ha convertido en normal utilizar el término "legado" para calificar el software Java o C++, y por ello puede decirse que la evolución del software OO y el software tradicional (código no estructurado en COBOL o similar) tienen el mismo nivel de importancia. En el pasado, el software heredado eran sistemas monolíticos, mientras que hoy en día casi todo el software es una combinación de componentes distribuidos, que utilizan tecnologías de middleware estándar y marcos empresariales, lo que provoca problemas en el proceso de evolución y mantenimiento.
Esta es una versión de prueba de citación de documentos de la Biblioteca Virtual Pro. Puede contener errores. Lo invitamos a consultar los manuales de citación de las respectivas fuentes.
Artículo:
Sistema de información de visitantes de la plataforma de comercio electrónico transfronterizo basado en la computación móvil de borde
Artículo:
Evaluación en tiempo real del mecanismo IEEE 802.11p EDCA para el IoV en un entorno de autopista.
Artículo:
Estudio de los ataques de canal lateral basados en la caché de la CPU: Análisis sistemático, modelos de seguridad y contramedidas
Artículo:
Predicción de la calificación del curso a través de un modelado integral del patrón de comportamiento de aprendizaje de los estudiantes.
Artículo:
La variación de la capacidad de tráfico de la red vial urbana debido a la política de desbloqueo comunitario.
Artículo:
Creación de empresas y estrategia : reflexiones desde el enfoque de recursos
Libro:
Ergonomía en los sistemas de trabajo
Artículo:
La gestión de las relaciones con los clientes como característica de la alta rentabilidad empresarial
Artículo:
Los web services como herramienta generadora de valor en las organizaciones