Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas...

Post on 03-Jan-2015

13 views 3 download

Transcript of Análisis Crítico de Metodología usadas en el Proceso de Reingeniería de Aplicaciones Orientadas...

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

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

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:

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:

introducciónintroducción

En un proceso de reingeniería completo identificaremos

dos etapas:

Reverse Engineering

Forward Engineering

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.

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?

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.

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

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

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

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

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

análisis de conceptos formalesanálisis de conceptos formales

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

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.

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

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

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

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

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:

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”

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)

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

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.

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

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

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

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

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.

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

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

(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

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

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

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

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.

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

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

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

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.

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

conclusionesconclusiones

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

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.

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

Muchas graciasMuchas gracias

¿PREGUNTAS¿PREGUNTAS??