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ículos:
Investigación sobre la toma de decisiones de capital de riesgo complejo basada en una plataforma de datos financieros masivos.
Artículos:
Funcionamiento coordinado de los componentes de un sistema comunitario de energía para maximizar los beneficios teniendo en cuenta las limitaciones de la red
Artículos:
Optimización de los recursos del aula del modelo inglés de cuatro pasos basado en el aprendizaje profundo
Artículos:
Cifrado compresible multiclave y multiidentidad totalmente homomórfico
Artículos:
Una plataforma de análisis de big data basada en microservicios para aplicaciones educativas en línea.
Tesis y Trabajos de grado:
Sistema de costos por órdenes de producción para determinar la rentabilidad de la empresa de lácteos “San Agustín” Cía. Ltda., ubicada en la parroquia de Pintag, provincia de Pichincha
Showroom:
Bombas centrífugas
Norma:
Bombas centrífugas
Artículos:
Comportamiento del aguacate Hass liofilizado durante la operación de rehidratación