450 likes | 608 Views
Detección de Patrones de Diseño de Software con Modelos de Markov de Orden Variable. Alumno: Juan Francisco Silva Logroño Director: Luis Sebastián Berdún Co-director: Marcelo Gabriel Armentano. Tesis de Grado de Ingeniería de Sistemas. Tandil, Marzo de 2012.-. Agenda. Introducción
E N D
Detección de Patrones de Diseño de Software con Modelos de Markov de Orden Variable Alumno: Juan Francisco Silva Logroño Director: Luis Sebastián Berdún Co-director: Marcelo Gabriel Armentano Tesis de Grado de Ingeniería de Sistemas Tandil, Marzo de 2012.-
Agenda • Introducción • Trabajos relacionados • Trabajo realizado • Marco Teórico • Modelos de Markov • Materialización • Experimentos • Conclusiones
Introducción Agente Usuario/Lector Interacción inicial Mixta Observa e Imita Actuar en función del comportamiento del usuario Manipulación directa Aplicación de Diseño (CASE)
Trabajos Relacionados • Dos enfoques predominantes • Ingeniería Reversa • Detección dinámica del Patrón objetivo
Trabajo realizado • Detección temprana del Patrón de Diseño objetivo • Agente de Interfaz • Detección dinámica • Plan Recognition • Objetivo + Acciones + Dominio • Biblioteca de Planes: Modelos de Markov de Orden Variable (VOMM) • 3 enfoques • Generación computacional del Plan Corpus: Planning
Agenda • Introducción • Trabajos relacionados • Trabajo realizado • Marco Teórico • Modelos de Markov • Materialización • Experimentos • Conclusiones
Modelos de Markov • Una cadena de Markov es un proceso estocástico con la propiedad Markoviana
Modelos de Markov (2) • Modelos de Markov de orden m (m-gramas) • P(|s), and sm ,|s|=m • Unigramas, Bigramas, … • Problemas?
Modelos de Markov de Orden Variable • El numero de variables aleatorias que condicionan la distribución de probabilidades depende del contexto bajo observación • Reducción en el numero de parámetros que condicionan al modelo • P(|s), , sm, |s|m • Probabilistic Suffix Automata (PSA) • Modela el conjunto mínimo de sub secuencias (de longitud variable) necesarias para modelar a la fuente de información estadística • Construcción mediante PBE o PBD
Probabilistic Suffix Automata • Para cada acción observada, cada PSA realizará la correspondiente transición de estado y calculara la probabilidad para la secuencia de acciones observada hasta el momento • Exponential Moving Average (EMA)
Agenda • Introducción • Trabajos relacionados • Trabajo realizado • Marco Teórico • Modelos de Markov • Materialización • Experimentos • Conclusiones
Enfoque I: VOMM no parametrizado • Definición del Alfabeto
Enfoque I (2) • Patrón Composite • agregarClass;agregarClassAbs;defDependencia;agregarClass;defGeneralizacion;agregarClass;defGeneralizacion;defComposicion • agregarClass;agregarClassAbs;agregarClass;agregarClass;defGeneralizacion;defGeneralizacion;defComposicion;defDependencia • agregarClassAbs;agregarClass;defDependencia;agregarClass;defComposicion;defGeneralizacion;agregarClass;defGeneralizacion
PSA para el Patrón Composite • s = agregarClass;agregarClassAbs;defDependencia;agregarClass; defGeneralizacion;agregarClass;defGeneralizacion;defComposicion Costo:
Enfoque II: VOMM parametrizado • Definición del Alfabeto
Enfoque II (2) • Patrón Composite agregarClass(Cliente); agregarClassAbs(Grafico); defDependencia(Cliente, Grafico); agregarClass(Sing); defGeneralizacion(Sing, Grafico); agregarClass(Comp); defGeneralizacion(Comp, Grafico); defComposicion(Comp, Grafico) • Que cambio? • Explosión del Universo de tareas • Símbolos únicos • Cantidad de posibles transiciones en cada nodo • Administración de parámetros
Administración de parámetros (2) • Ejemplo: agregarClassAbs(FiltroAbstracto) • Costo:
Enfoque III: VOMM con Ventana Deslizante • Se utiliza una Ventana Deslizable para restringir el numero de variables extraídas de las acciones del usuario • Evaluaciones del PSA (cantidad de ) • Filtrado de las Observaciones
Agenda • Introducción • Trabajos relacionados • Trabajo realizado • Marco Teórico • Modelos de Markov • Materialización • Experimentos • Conclusiones
Resultado Experimentales • Construcción del Data-Set
Resultados Experimentales: Métricas • On Line Accuracy • Convergencia • Presicion
Experimento I • Objetivo: Obtener el valor de 𝝀mas adecuado para cada enfoque • Metodología: • LeaveOneOut Cross Validation (LOOCV) • Promediado de las métricas
Experimento I: Resultados Media Desviación Estándar
Experimento II • Objetivo: medir la cantidad de veces que un modelo se encuentra dentro de los n mejores resultados predichos • Metodología: • LOOCV • Umbral de confianza τ • Modificación sobre métrica:
Experimento III • Objetivo: Medir la confusión entre los patrones estudiados • Metodología: • LOOCV • Métrica On Line Accuracy • Ejemplo: Composite 200 cadenas
Experimento IV • Objetivo: Evaluar el rendimiento de los enfoques en presencia de ruido • Metodología: • Construcción de Corpus Ruidoso: 20 y 40% • Experimento I – LeaveOneOut
Agenda • Introducción • Trabajos relacionados • Trabajo realizado • Marco Teórico • Modelos de Markov • Materialización • Experimentos • Conclusiones
Conclusiones • Modelado de los Patrones de Diseño de Software con Modelos de Markov: 3 Enfoques • Sin parámetros • Con parámetros • Utilizando una ventana deslizante • Función de suavizado de datos estadísticos: EMA • Limitaciones: • El crecimiento del alfabeto perjudica a los VOMM • Aumento en los estados necesarios para representar a cada patrón • Complejidad poco practica del Enfoque II • Disminución en las observaciones a analizar en el Enfoque III
Conclusiones • Trabajos futuros • Extensión del alfabeto utilizado por cada enfoque • Métodos y Variables • Diagramas de Secuencia • Detección de Anti-Patrones de Diseño
Conclusiones • Publicaciones • SILVA LOGROÑO, J.F., L.S. BERDUN, M. G. ARMENTANO, y A.A. AMANDI. 2011. Discrete Sequences Analysis for Detecting Software Design Patterns. In: Proceedings of the 2nd International Conference on Advances in New Technologies, Interactive Interfaces and Communicability (ADNTIIC 2011). Huerta Grande, Córdoba: ALAIPO & AINCI, pp.243 - 253. • SILVA LOGROÑO, J.F., L.S. BERDUN, M. G. ARMENTANO, y A.A. AMANDI. 2011. Un enfoque para la generación de Plan Corpus con un Algoritmo de Planning. In: Proceedings del 12º Simposio Argentino de Inteligencia Artificial (ASAI 2011), 40º JAIIO.. Cordoba, Argentina • SILVA LOGROÑO, J.F., L.S. BERDUN, M. G. ARMENTANO, y A.A. AMANDI. 2010. Análisis de secuencias discretas para la detección de Patrones de Diseño de Software. In: 11º Simposio Argentino de Inteligencia Artificial (ASAI 2010), 39º JAIIO. Buenos Aires, Argentina
Generación del Plan Corpus • Generación Manual • Generación Automática • Algoritmo de Planning • «Permite obtener un conjunto de acciones, que cuando son ejecutadas en orden permiten alcanzar un objetivo»
Algoritmo de Planning • Consiste de una 3-upla • : estado inicial • : estado final • : conjunto de acciones disponibles • Ejemplos de Acciones: • Agregar clase action (agrClass(C),[],[ clase(C), tipo(C,concreta),libre(C) ] ). • Agregar relación de dependencia action (defDependencia(A,B),[ distintas(A,B), clase(A),clase(B)],[ dependencia(A,B) ] ).
Algoritmo de Planning (2) • Ejemplo de Estado Final:
Patrones de Diseño de Software • «Conjunto de clases y objetos donde cada uno de sus elementos fue especificado con las características necesarias para solucionar un problema de diseño general en un contexto particular» • «Mediante ellos se busca abstraer soluciones a problemas comunes y lograr así repetirlas ante un problema similar las veces que sean necesarias» E. Gamma, R. Helm, R. Johnson y J. Vlissides, 1994
Plan Recognition • «… inferir los objetivos de un sujeto basándose en las acciones que este haya realizado en un determinado dominio… » • Entrada: • Un conjunto de objetivos que el agente espera que el usuario intente realizar en el dominio bajo estudio • Un conjunto de modelos describiendo la forma en que el usuario puede alcanzar cada uno de los objetivos • Una acción observada por el agente • Salida: • Predecir el objetivo del usuario y determinar como la acción observada contribuye para lograrlo • Bibliotecas de Planes • Modelos de Markov
Probabilistic Suffix Automata • La probabilidad empírica de una secuencia s con longitud l • Probabilidad empírica condicional de observar una acción σ luego de una secuencia s donde