análisis crítico de metodología usadas en el proceso de reingeniería de aplicaciones orientadas...
TRANSCRIPT
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??