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.

Slides:



Advertisements
Presentaciones similares
Vamos a trabajar en la construcción de un proyecto…
Advertisements

Dra. María del Carmen García González
Metodología de la Investigación
La investigación La construcción del conocimiento.
Presentado por: Roger Brandao Francisco Bravo Aníbal Rodríguez
CÓMO REALIZAR UN PROYECTO
Prof. César Luza Montero
Programación 1 Introducción
Leer y escribir en ciencias
DIAGRAMAS DE CLASES Completando los diagramas de interacción, es posible identificar la especificación de las clases que participarán en la solución indicando.
Teoría de lenguajes y compiladores
Fases para el desarrollo de un proyecto Web
Evaluación de Productos
Diseño de un Sistema de Control en Tiempo Real para el Kernel del Sistema Operativo utilizando MatLab-SimuLink Por: MARCO ANTONIO ESPINEL CANGUI DIRECTOR:
Modelos existentes de base de datos
“Persuasive argumentation in negotiation” Katia P. Sycara.
Software Product Lines para desarrollo interno Maximiliano Ariel Bregante (Universidad de Palermo, Argentina)
Proceso investigativo
MOODLE ASPECTOS BÁSICOS
Modelos de Texto Estructurado M
UNIVERSIDAD DE LA FF. AA. ESPE CARRERA DE INGENIERIA DE SISTEMAS PROYECTO DE TESIS : “Análisis, diseño, construcción e implementación de una Guía Interactiva.
Trabajo presentado por: LUIS FERNANDO OBANDO ING
Pruebas Saber Pro Información tomada de: icfes. gov
Lo bucadores son sistemas que permite al usuario buscar información,estos la consiguen de la web, pero otroa tanto la obtienen del news,gopher,ftp,etc.
Weka.
Ingeniería de Software
Ingeniería de Software Orientado a Objetos
Importancia de Evaluar Sitios Web Diversas características y atributos de calidad de sitios Web tales como usabilidad, navegabilidad, seguridad, características.
Ingeniería de Requisitos
LA IMPORTANCIA DE LAS PyMEs
Análisis y Diseño Orientado a Objetos utilizando UML
Unidad VI Documentación
Jorge Orozco Docente I. E Simon Bolivar. Sede Principal Simón Bolívar Patía Cauca Lucy Erazo Burbano Formadora.
Introducción a las Bases de Datos Relacionales Juan Alberto Sigüenza Escuela Técnica Superior de Informática Universidad Autónoma de Madrid.
12 de diciembre de 2006 Proyecto de Activación del Centro de Desarrollo Empresarial Reunión de Arranque con Empresas Piloto.
WEBQUEST. ¿QUÈ ES UNA WEBQUEST?  Webquest significa indagación, investigación a través de la Web.  Consiste en presentarle al alumnado un problema,
ASPECTOS Y CRITERIOS METODOLÓGICOS PARA LA INVESTIGACIÓN
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
Ingeniería de Software en la Robótica Educativa Gabriela Arévalo, Ph.D. CAETI- UAI, LIFIA-UNLP, CONICET
Ing. Eduard Leonardo Sierra Ballén Seminario de Investigación I Semestre I de 2005 Maestría en Ingeniería - Ingeniería de Sistemas Facultad de Ingeniería.
CICLO DE VIDA Y NORMAALIZACION DE UN SISTEMA DE BASE DE DATOS
Importancia en la efectividad del:
TEMA: DESARROLLO DE UN SISTEMA INFORMÁTICO PARA EL CONTROL DE USO Y EL MANTENIMIENTO DE VEHÍCULOS DE UNA INSTITUCIÓN PÚBLICA AUTOR: EDISON GUAMAN   DIRECTOR:
TEMA 9: DIAGRAMA DE CLASE EN UML
1 Ingeniería del Software Curso German Rigau Ingeniería Técnica en Informática de Sistemas.
Metodología de la programación
Un conjunto de perfiles UML para el modelado conceptual de minería de datos sobre almacenes de datos Tesis Doctoral José Jacobo Zubcoff Vallejo 26 de Junio.
Introducción a UML Departamento de Informática Universidad de Rancagua
COMPLETA LOS ESPACIOS CON LA PALABRA ADECUADA 1.LOS _______________________ SE DEFINEN COMO LA _________________LÓGICA DE _________PARA SOLUCIONAR UN.
Ingeniería de Requisitos
Jairo Pinto Ing. sistemas
Presentación  Nombre del sitio.  Título de la página.  Qué información puede anticiparse de ellos  Es una web oficial? Autor  Es identificable?
Diseño de Adiestramientos
Métodos y diseño de la investigacion
Aplicación JAVA implementando Arboles de Decisión
Un conjunto de perfiles UML para el modelado conceptual de minería de datos sobre almacenes de datos Tesis Doctoral José Jacobo Zubcoff Vallejo 26 de Junio.
Alexis J. Romero José A. De Vincenzo DESARROLLO DE UN SOFTWARE EDUCATIVO DE APOYO A LA LÓGICA CUANTIFICACIONAL, CONJUNTO, RELACIONES Y FUNCIONES DE LA.
INGENIERIA DE SOFTWARE
Francisco Vera Voronisky Marzo, 2013
SEGURIDAD EN APLICACIONES MOVILES Ing. Gabriel M. Ramírez V. PALMIRA 2015.
SEGURIDAD EN APLICACIONES MOVILES Ing. Gabriel M. Ramírez V. PALMIRA 2016.
2015 DIPLOMADO EN DISEÑO E IMPLEMENTACIÓN DE PRODUCTOS ELECTRÓNICOS CODIGO: Director: Miguel Ariza Triviño M.Sc. Escuela de Ciencias Básicas, Tecnología.
Marco de Trabajo para Indexación, Clasificación y Recopilación Automática de Documentos Digitales Javier Caicedo Espinoza Gonzalo Parra Chico.
Cómo escribir un informe de investigación
Ingeniería de Software Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de:
Modelado Orientado a Objetos Programación Orientada a Objetos Departamento de Sistemas Universidad del Cauca 2006.
Entorno de Recomendación para el Desarrollo de Objetos de Aprendizaje Manuel E. Prieto Universidad de Castilla-La Mancha, España Victor H. Menéndez Universidad.
Verificación y Validación del Software
Entregables del Proyecto
Una propuesta metodológica para el desarrollo de plataformas de educación a distancia que incorporen estilos de aprendizaje Pedro Salcedo L M. Angélica.
Transcripción de la presentación:

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 Magdalena Cerviño - Gimena Moro Directora Gabriela Arévalo

Agenda Introducción Análisis de Conceptos Formales Estado del Arte Estado del Arte Generación de la guía de lectura Generación de la guía de lectura Conclusiones Conclusiones Trabajo Futuro Trabajo Futuro

introducción Tener que reemplazar sus sistemas de información Mantener un control de sus sistemas legacy. En la actualidad, las organizaciones enfrentan problemas como:

(Chikofsky) 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) REINGENIERIA introducción Para el adecuado mantenimiento de un sistema, es necesario aplicar:

introducción En un proceso de reingeniería completo identificaremos dos etapas: Reverse EngineeringForward 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 identicar metodologías con características similares y comprender como funciona un sistema. introducción Nos 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 formales Es una rama de la teoría de Lattice. Permite identicar grupos signicativos de elementos que tienen propiedades comunes. Los elementos son llamados objetos y las propiedades, atributos. Técnica matemática que permite identicar 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 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 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 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 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 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 formales A partir del conjunto de conceptos se construye el Lattice de conceptos

Estado 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 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 arte Identifying 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 Restructuring A 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 Identication In Procedural Code Types and Concept Analysis for Legacy Systems

Estado del arte Locating 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 Evolution Conceptual 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 Conguration Structures from Source Code

generació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 clasicaremos las publicaciones analizadas en la sección anterior

generació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 lectura 1. Construcción del contexto binario y lattice Nuestro contexto binario esta compuesto: por objetos O, que son las publicaciones, y atributos A, que son las palabras claves identicadas en cada una de ellas. La relación binaria R resulta del tipo contiene

generación de la guía de lectura 1. Construcción del contexto binario y lattice 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 lectura 1. Construcción del contexto binario y lattice

generación de la guía de lectura 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 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

generación de la guía de lectura Ejemplos de las jerarquías obtenidas 2. Extracción de las jerarquías

generación de la guía de lectura 2. Extracción de las jerarquías

generación de la guía de lectura 2. Extracción de las jerarquías

generación de la guía de lectura 3. 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 especicos.

generació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ías

Explicaremos como se desarrollan ambas búsquedas: generació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 Identication, Concept Analysis, Object Oriented - Reverse Engineering, UML} 3. 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 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ías

generació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 armativa, 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ías

generació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ías

generació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ías

4. Algoritmo de búsqueda generació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 búsqueda en anchura es un algoritmo de búsqueda sin información, que examina todos los nodos de un árbol sistemáticamente para buscar una solución. El algoritmo no 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 lectura 4. Algoritmo de búsqueda

generación de la guía de lectura 4. Algoritmo de búsqueda La figura muestra el funcionamiento del paso a paso del algoritmo

conclusiones 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: conclusiones

Una dicultad 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. conclusiones

conclusiones Una ventaja obtenida fue la facilidad de la construcción de jerarquías a partir del lattice. Una desventaja encontrada fue que las jerarquías están sujetas al dominio.

trabajo 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. Clasicar 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. Clasicar 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 gracias ¿PREGUNTAS?