48
Análisis Crítico de Análisis Crítico de Metodología usadas en el Metodología usadas en el Proceso de Reingeniería de Proceso de Reingeniería de Aplicaciones Orientadas a Aplicaciones Orientadas a Objetos Objetos Facultad de Ingeniería - Facultad de Ingeniería - Universidad Austral Universidad Austral Magdalena Cervi Magdalena Cervi ñ ñ o - Gimena Moro o - Gimena Moro Directora Directora Gabriela Arévalo Gabriela Arévalo

Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

Embed Size (px)

Citation preview

Page 1: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

Análisis Crítico de Metodología Análisis Crítico de Metodología usadas en el Proceso de usadas en el Proceso de

Reingeniería de Aplicaciones Reingeniería de Aplicaciones Orientadas a ObjetosOrientadas a Objetos

Facultad de Ingeniería - Universidad Facultad de Ingeniería - Universidad AustralAustral

Magdalena CerviMagdalena Cerviñño - Gimena Moroo - Gimena MoroDirectoraDirectora

Gabriela ArévaloGabriela Arévalo

Page 2: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

AgendaAgendaIntroducciónIntroducción

Análisis de Conceptos Análisis de Conceptos FormalesFormales

Estado del ArteEstado del Arte

Generación de la guía de Generación de la guía de lecturalectura

ConclusionesConclusiones

Trabajo FuturoTrabajo Futuro

Page 3: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

introducciónintroducción

✓Tener que reemplazar sus sistemas de información

✓Mantener un control de sus sistemas legacy.

En la actualidad, las organizaciones enfrentan problemas como:

Page 4: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

Recuperación de información sobre el diseño de un programa existente y el uso de esta información para reestructurar o reconstruir el programa existente, con vistas a adaptarlo a un cambio, a ampliarlo o a mejorar su calidad general, con el objetivo de conseguir una mayor facilidad de mantenimiento en el futuro (mantenimiento preventivo). (Chikofsky)(Chikofsky)

REINGENIERIA

introducciónintroducción

Para el adecuado mantenimiento de un sistema, es necesario aplicar:

Page 5: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

introducciónintroducción

En un proceso de reingeniería completo identificaremos

dos etapas:

Reverse Engineering

Forward Engineering

Page 6: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

APORTE DE ESTE TRABAJO

Generación de un estado del arte completo

Desarrollo de una guía para asistir a los desarrolladores en la elección de las metodologías de reingenieria adecuadas, dependiendo en que etapa de la reingeniería se halla el sistema.

Page 7: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

Por las ventajas que la misma provee para agrupar elementos basados en sus

propiedades.

Esto resulta vital para identificar metodologías con características similares y comprender como

funciona un sistema.

introducciónintroducciónNos centraremos

Analizar metodologías de reingeniería que utilicen el Análisis de Conceptos Formales (ACF), como herramienta de base.

¿Por qué esta metodología?

Page 8: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

análisis de conceptos formalesanálisis de conceptos formales

Es una rama de la teoría de Lattice.

Permite identificar grupos significativos de elementos que tienen propiedades comunes.

Los elementos son llamados objetos y las propiedades, atributos.

➡Técnica matemática que permite identificar estructuras conceptuales en un conjunto de datos. ➡Introducida por Rudolf Wille, en 1982 y luego desarrollada por Ganter y Wille en 1999.

Page 9: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

análisis de conceptos formalesanálisis de conceptos formales

Comenzamos con un conjunto de elementos y propiedades de esos elementos

AFC determina grupos maximáles de elementos y propiedades. A los que llamamos conceptos

Cada concepto está formado por un conjunto de elementos que tienen una o más propiedades en común

Page 10: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

análisis de conceptos formalesanálisis de conceptos formales

EJEMPLO

{Garfield, Snoopy, Willy, Lassie}Conjunto de Elementos

Conjunto de Propiedades {Cartoon, Real, Perro, Gato, Ballena}

Los elementos y propiedades se ordenan en una tabla de incidencia

Tabla de Incidencia: muestra la relación entre los elementos y las propiedades

Page 11: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

análisis de conceptos formalesanálisis de conceptos formales

Tabla de Incidencia

Existe una relación entre el elemento y la propiedad

El elemento no posee relación con la propiedad

correspondiente

Page 12: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

análisis de conceptos formalesanálisis de conceptos formales

El conjunto de elementos y propiedades junto con sus relaciones forman lo que se llama contexto

formal

Si O es el conjunto de elementos, A el conjunto de propiedades e I la relación binaria entre O y A

Llamamos contexto formal C a (O,A,I) con I ⊆ O x A

La relación binaria I nos da la incidencia del conjunto de propiedades sobre el de elementos

Page 13: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

análisis de conceptos formalesanálisis de conceptos formales

El conjunto de elementos es llamado la extensión

El conjunto de propiedades es llamado la intención

Extensión e intención de los conceptos del ejemplo

Page 14: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

análisis de conceptos formalesanálisis de conceptos formales

A partir del conjunto de conceptos se construye el Lattice de conceptos

Page 15: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

Estado del arteEstado del arte

➡ En esta sección presentaremos las metodologías analizadas para poder desarrollar la contribución de nuestro trabajo.

➡Ademas del estado del arte, presentamos un análisis critico de cada una de las metodologías investigadas.

Page 16: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

Estado del arteEstado del arte

Sobre cada una de las publicaciones se realizo el siguiente análisis:

Descripción

Análisis critico

Ventajas

Desventajas

Etapa de reingenieria en la que participa

Lenguaje de aplicación

Autor(es)

Palabras claves

Page 17: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

Estado del arteEstado del arteIdentifying Object using Cluster and Concept Analysis

Reverse Engineering of use case realizations in UML

Aiding Program Comprenhension by Static and Dynamic Feature Analysis

Feature-Driven Program Understanding Using Concept Analysis of Execution

Concept Analysis for Module RestructuringA Scalable Approach to User-session based Testing of Web Applications through Concept Analysis

Multi-Dimensional Concerns Mining for Web Applications via Concept-Analysis

Using FCA to Suggest Refactorings to Correct Design Defects‣Applying Concept Formation Methods to Object Identification In Procedural Code

Types and Concept Analysis for Legacy Systems

Page 18: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

Estado del arteEstado del arteLocating Features in Source Code

Reverse Engineering Aspectual Views using Formal Concept Analysis

Revealing Java Class Structure with Concept Lattices

Aspect Mining throught the Formal Concept Analysis of Execution Traces

Clustering and Concept Analysis for Software EvolutionConceptual Code Mining: Mining for Source-Code Reguarities with Formal Concept Analysis

Building Abstractions in Class Models: Formal Concept Analysis in a Model-Driven Approach

ARES, Adding a class and REStructuring Inheritance Hierarchy‣On the Inference of Configuration Structures from Source Code

Page 19: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

generación de la guía de lecturageneración de la guía de lectura

➡En esta sección explicaremos como generamos la guía de lectura usando Análisis de Conceptos Formales como herramienta de base y ademas clasificaremos las publicaciones analizadas en la sección anterior

Page 20: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

generación de la guía de lecturageneración de la guía de lectura

Para construir la guía de lectura, se realizan los siguientes pasos:

Page 21: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

generación de la guía de lecturageneración de la guía de lectura

1. Construcción del contexto binario y 1. Construcción del contexto binario y latticelattice

Nuestro contexto binario esta compuesto:

por objetos O, que son las publicaciones,

y atributos A, que son las palabras claves identificadas en cada una de ellas.

La relación binaria R resulta del tipo La relación binaria R resulta del tipo “contiene”“contiene”

Page 22: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

generación de la guía de lecturageneración de la guía de lectura1. Construcción del contexto binario y 1. Construcción del contexto binario y latticelattice

La figura muestra la Tabla de incidencia del contexto binario (entorno parcial)

Page 23: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

La figura muestra el lattice resultante a partir de la tabla de incidencia. Para la generación del lattice hemos utilizado la herramienta Galicia 3.0

generación de la guía de lecturageneración de la guía de lectura

1. Construcción del contexto binario y 1. Construcción del contexto binario y lattice lattice

Page 24: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral
Page 25: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

generación de la guía de lecturageneración de la guía de lectura

2. Extracción de las jerarquías 2. Extracción de las jerarquías

➡Las jerarquías se obtienen a partir de los nodos que son hijos del nodo top.

➡ Los nodos hijos representan las raíces de las jerarquías resultantes.

➡ A su vez los nodos que tienen como hijo el nodo bottom pasan a representar los nodos terminales de las respectivas jerarquías.

El lattice genera un conjunto de jerarquías, que luego se usarán para construir la guía de lectura.

Page 26: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

generación de la guía de lecturageneración de la guía de lectura

Para analizar las jerarquías obtenidas en el en el contexto del lattice resultante, hemos considerado los siguientes puntos de partida:

2. Extracción de las jerarquías 2. Extracción de las jerarquías

Page 27: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

generación de la guía de lecturageneración de la guía de lectura

Ejemplos de las jerarquías obtenidas

2. Extracción de las jerarquías 2. Extracción de las jerarquías

Page 28: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral
Page 29: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

generación de la guía de lecturageneración de la guía de lectura

2. Extracción de las jerarquías 2. Extracción de las jerarquías

Page 30: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

generación de la guía de lecturageneración de la guía de lectura

2. Extracción de las jerarquías 2. Extracción de las jerarquías

Page 31: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

generación de la guía de lecturageneración de la guía de lectura

3. Construcción de la guía a partir de las jerarquías3. Construcción de la guía a partir de las jerarquías

La guía de lectura que se propone a partir del lattice resultante tiene la metáfora de

donde se propone como raíz un tema general, y luego en base a la elección del usuario se guía la lectura a temas más especificos.

Page 32: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

generación de la guía de lecturageneración de la guía de lectura

Lo que le proponemos es la lectura de un conjunto de publicaciones desde dos puntos de vista:

3. Construcción de la guía a partir de las jerarquías3. Construcción de la guía a partir de las jerarquías

Page 33: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

Explicaremos como se desarrollan ambas búsquedas:

generación de la guía de lecturageneración de la guía de lectura

(3.1) Se le sugiere al usuario un conjunto de palabras claves desde las que se puede iniciar la búsqueda. Este conjunto se desprende de las intenciones reducidas de los atributos de los nodos hijos del conjunto top (nodos 3, 4, 6 y 2).

Estas palabras claves son:

{Object Identification, Concept Analysis, Object Oriented - Reverse Engineering, UML}

3. Construcción de la guía a partir de las jerarquías3. Construcción de la guía a partir de las jerarquías

Page 34: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

(3.1) A través de un ejemplo mostraremos la navegación por una jerarquía.

generación de la guía de lecturageneración de la guía de lectura

Tomamos como punto de partida el nodo 6, que tiene como intención reducida las palabras claves:

{Object Oriented-Reverse Engineering }

la extensión de este nodo muestra las publicaciones que analizan las claves mencionadas anteriormente.

3. Construcción de la guía a partir de las jerarquías3. Construcción de la guía a partir de las jerarquías

Page 35: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

generación de la guía de lecturageneración de la guía de lectura

Si su respuesta es negativa, se le ofrece un conjunto de publicaciones {[BV00], [TM04]}, que tratan los temas relacionados con las palabras claves {Object Oriented-Reverse Engineering}, pero no sólo esos.

(3.1)Se le pregunta al usuario si le interesa profundizar más en estos temas.

•Si su respuesta es afirmativa, se le ofrecen otros temas que están contenidos en la extensión del nodo padre. En el ejemplo, las opciones para continuar a través del nodo 33 o 20. Los temas que se proponen, para seguir profundizando, a partir del nodo 33 son {Aspect, Views}, por otro lado la propuesta a partir del nodo 20 es {Use Case}.

3. Construcción de la guía a partir de las jerarquías3. Construcción de la guía a partir de las jerarquías

Page 36: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

generación de la guía de lecturageneración de la guía de lectura

Proponemos una automatización de esta búsqueda con un algoritmo implementado en el lenguaje Java.

3. Construcción de la guía a partir de las jerarquías3. Construcción de la guía a partir de las jerarquías

Page 37: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral
Page 38: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

generación de la guía de lecturageneración de la guía de lectura

(3.2)El usuario propone una palabra clave sobre la que desea realizar una búsqueda. Se utiliza un algoritmo que recibe como parámetro de entrada la palabra clave solicitada por el usuario.

Si encuentra la misma retorna las publicaciones asociadas a este tema.

•Si no la encuentra alerta al usuario que la palabra buscada no esta contenida en el lattice.

3. Construcción de la guía a partir de las jerarquías3. Construcción de la guía a partir de las jerarquías

Page 39: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

4. Algoritmo de búsqueda4. Algoritmo de búsqueda

generación de la guía de lecturageneración de la guía de lectura

Para automatizar la búsqueda de publicaciones en el lattice resultante, proponemos un algoritmo basado en la teoría de Búsqueda en Anchura.

La La búsqueda en anchurabúsqueda en anchura es un algoritmo de búsqueda sin es un algoritmo de búsqueda sin información, que examina todos los nodos de un árbol información, que examina todos los nodos de un árbol

sistemáticamente para buscar una solución. El algoritmo no sistemáticamente para buscar una solución. El algoritmo no usa ninguna estrategia heurística [BFS]. usa ninguna estrategia heurística [BFS].

Basándonos en esta teoría formalizamos un algoritmo de búsqueda en anchura que permite localizar una o mas

publicaciones a través de palabras claves. El mismo fue implementado en Java.

Page 40: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

generación de la guía de lecturageneración de la guía de lectura

4. Algoritmo de búsqueda4. Algoritmo de búsqueda

Page 41: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral
Page 42: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

generación de la guía de lecturageneración de la guía de lectura

4. Algoritmo de búsqueda4. Algoritmo de búsquedaLa figura muestra el funcionamiento del paso a paso

del algoritmo

Page 43: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

conclusionesconclusiones

En este trabajo presentamos un estado del arte completo para el desarrollo de una guía de uso de metodologias basadas en el Análisis de Conceptos Formales, el cual permite guiar la investigación de un tema a elección.

Page 44: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

Es importante remarcar las dos propuestas, que hacemos, sobre la lectura de un conjunto de publicaciones:

conclusionesconclusiones

Page 45: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

Una dificultad que encontramos en el desarrollo de este trabajo fue que las metodologías analizadas abarcan en su gran mayoría el proceso de reverse engineering, dejando de lado el proceso de forward engineering.

conclusionesconclusiones

Page 46: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

conclusionesconclusiones

Una ventaja obtenida fue la facilidad Una ventaja obtenida fue la facilidad de la construcción de jerarquías a de la construcción de jerarquías a

partir del partir del latticelattice..

Una desventaja encontrada fue que las Una desventaja encontrada fue que las jerarquías están sujetas al dominio.jerarquías están sujetas al dominio.

Page 47: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

trabajo futurotrabajo futuro

A continuación se detallan aquellas nuevas ideas que resultan más interesantes para su desarrollo en trabajos futuros:

Desarrollar una herramienta visual que nos permita la navegación.

•Clasificar las publicaciones analizadas por conferencia en la que fue publicada, por año, o por autores, y evaluar los respectivos resultados.

Proponer nuevas guía de lectura

Desarrollar una herramienta visual que nos permita la navegación.

•Clasificar las publicaciones analizadas por conferencia en la que fue publicada, por año, o por autores, y evaluar los respectivos resultados.

Proponer nuevas guía de lectura

Page 48: Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas a Objetos Facultad de Ingeniería - Universidad Austral

Muchas graciasMuchas gracias

¿PREGUNTAS¿PREGUNTAS??