Navegación

Búsqueda

Búsqueda avanzada

Impacto de las métricas CK en la refactorización

Las métricas CK son las que alcanzan un mayor consenso, a nivel de diseño orientado a objetos, sobre la idenficación de la necesidad de una refactorización. Para estimar el impacto de estas métricas de calidad en la refactorización en este trabajo nos basamos en la reducción de la entropía. Para medir este impacto empleamos datos validados de refactorizaciones y métricas de código de varios proyectos open source. Las valoraciones obtenidas se combinan para ordenar las métricas y proponemos un método para medir su influencia incluso en aquellas situaciones en las que no todas las métricas puedan ser valoradas o cuando esta valoración no alcance unos tasas suficientemente representativas. Los resultados obtenidos con el enfoque aplicado están en la misma línea de trabajos previos de otros autores.

Refactorización selectiva de Procesos de Negocio

Los modelos de procesos de negocio se han convertido en uno de los activos más importantes para las organizaciones. Las organizaciones intentan disponer de representaciones precisas de sus procesos de negocio, por lo que deben enfrentarse, durante el ciclo de vida de los procesos de negocio, a defectos en la calidad en dichas representaciones como, por ejemplo, la falta de entendibilidad y modificabilidad. Estos defectos se acentúan cuando los modelos de procesos de negocio han sido extraídos mediante ingeniería inversa (por ejemplo desde los sistemas de información que los soportan parcialmente). En este caso, la refactorización puede ser usada para modificar la representación de los procesos de negocio preservando su comportamiento externo. Este trabajo propone una técnica para seleccionar el conjunto de operadores de refactorización más apropiado en cada caso a fin de maximizar la mejora de entendibilidad y modificabilidad de los modelos de procesos de negocio. La técnica considera un conjunto de medidas presentes en la literatura para evaluar entendibilidad y modificabilidad, y define un conjunto de indicadores para dichas medidas para priorizar la aplicación de cada uno de los operadores de refactorización.

Alf como lenguaje de especificación de refactorizaciones

Las definiciones más habituales de operaciones de refactorización se centran en un lenguaje particular. Sin embargo, una de las líneas de investigacíon en refactorizacíon en los últimos años aborda la independencia del lenguaje en la definicíon de refactorizaciones, que posteriormente deberá ser implementada para lenguajes particulares. Se han aportado diferentes soluciones para representar el código con cierta independencia del lenguaje, sin embargo la definicíon e implementacíon de refactorizaciones continúa siendo mayoritariamente dependiente del lenguaje. En cuanto a esta definicíon e implementacíon de refactorizaciones, se aprecia un importante salto bien sea desde las definiciones de refactorizaciones en forma de recetas, bien sea desde las definiciones formales utilizando lógica de predicados o reescritura de grafos, a la implementacíon real de la refactorizacíon. En este trabajo, tomando como base un metamodelo UML definido para la representacíon de código de forma independiente del lenguaje, se valida la aplicacíon del lenguaje de acciones Alf como lenguaje para la definicíon de refactorizaciones. El uso de Alf tiene una doble implicacíon. Por una parte se consigue acercar la definicíon de refactorizaciones a su posterior implementacíon, dado que se produce una traduccíon con menor esfuerzo desde el lenguaje de acciones al lenguaje de implementacíon elegido. Por otra parte, el uso de Alf y los parsers asociados, permiten validar que el metamodelo contiene la informacíon suficiente para definir refactorizaciones.

Desafíos de la Mejora de Procesos de Negocio recuperados mediante ingeniería inversa

Con el fin de realizar una adecuada gestión de sus procesos, las empresas cada vez están más interesadas en disponer de procesos de negocio que presenten grados de calidad óptimos. Estos procesos de negocio que son ejecutados por las empresas son a menudo obtenidos utilizando técnicas de ingeniería inversa a partir de sus propios sistemas de información. Sin embargo, estos modelos de procesos de negocio que son obtenidos suelen tener un grado menor de calidad debido a la pérdida semántica que conllevan, y no siempre corresponden a representaciones exactas de los procesos de negocio actuales. En este trabajo se presentan todos los problemas detectados que deben ser abordados para mejorar la calidad de los procesos de negocio especialmente recuperados mediante ingeniería inversa. Entre estos dichos problemas se encuentran la no recuperación automática de elementos relevantes en el modelo o la recuperación de elementos que no son relevantes, el exceso de elementos de granularidad fina que disminuye el nivel de abstracción, entre otros. Este trabajo también sugiere una técnica para mejorar un modelo de procesos de negocio a lo largo de tres fases: reparación, refactorización y mejora semántica.