Alumno: Juan Francisco Silva Logroño Director: Luis Sebastián Berdún Co-director: Marcelo Gabriel Armentano Detección de Patrones de Diseño de Software con Modelos de Markov de Orden Variable Tesis de Grado de Ingeniería de Sistemas Tandil, Marzo de
Agenda Introducción Trabajos relacionados Trabajo realizado Marco Teórico Modelos de Markov Materialización Experimentos Conclusiones
Introducción Actuar en función del comportamiento del usuario Usuario/Lector Agente Aplicación de Diseño (CASE) Interacción inicial Mixta Observa e Imita Manipulación directa
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 s m,|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), , s m, |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 OperaciónDescripción Clases agregarInterfazAgrega una Interfaz al diagrama agregarClassAbsAgrega una Clase abstracta al diagrama agregarClassAgrega una clase concreta al diagrama Relaciones defAgregacionEstablece una relación de agregación defComposicionEstablece una relación de composición defGeneralizacionEstablece una relación de generalización defAsociacionEstablece una relación de asociación defDependenciaEstablece una relación de dependencia defImplementacionEstablece una relación de implementación
Enfoque I (2) Patrón Composite agregarClass;agregarClassAbs;defDependencia;agregarClass;defGeneraliz acion;agregarClass;defGeneralizacion;defComposicion agregarClass;agregarClassAbs;agregarClass;agregarClass;defGeneralizacio n;defGeneralizacion;defComposicion;defDependencia agregarClassAbs;agregarClass;defDependencia;agregarClass;defComposic ion;defGeneralizacion;agregarClass;defGeneralizacion
PSA para el Patrón Composite s = agregarClass;agregarClassAbs;defDependencia;agregarClass; defGeneralizacion;agregarClass;defGeneralizacion;defComposicion
Enfoque II: VOMM parametrizado Definición del Alfabeto Alfabeto para el Enfoque I Parámetros que se incorporan para el Enfoque II Clases agregarInterfaz ([nombre_interfaz]) agregarClassAbs ([nombre_Clase_Abstracta]) agregarClass ([nombre_Clase]) Relaciones defAgregacion ([nombre_C_CA_I(1) ], [nombre_C_CA_I (2)]) defComposicion ([nombre_C_CA_I(1) ], [nombre_C_CA_I (2)]) defGeneralizacion ([nombre_C_CA_I(1) ], [nombre_C_CA_I (2)]) defAsociacion ([nombre_C_CA_I(1) ], [nombre_C_CA_I (2)]) defDependencia ([nombre_C_CA_I(1) ], [nombre_C_CA_I (2)]) defImplementacion ([nombre_C_CA_I], [nombre _Interfaz])
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
TamañoSubconjuntos 1 (4) {Cliente}; {Grafico}; {Sing}; {Comp} 2 (12) {Cliente, Grafico}; {Cliente, Sing}; {Cliente, Comp};{Grafico,Cliente}; {Grafico, Sing}; {Grafico, Comp};{Sing, Cliente}; …;{Comp, Grafico}; {Comp, Sing} 3 (12) {Cliente, Grafico, Sing}; {Cliente, Grafico, Comp}; {Cliente, Sing, Grafico}; …;{Grafico, Sing, Comp}; {Grafico,Comp, Cliente}; {Grafico, Comp, Sing}; 4 (…) {Cliente, Grafico, Sing, Comp}; {Cliente, Sing, Grafico, Comp}; {Cliente, Sing, Comp, Grafico};... ; {Comp, Sing, Grafico, Cliente}
Administración de parámetros (2) Instanciación de Observaciones {FiltroAbstracto}ClienteagregarClassAbs (Cliente) GraficoagregarClassAbs (Grafico) SingagregarClassAbs (Sing) CompagregarClassAbs (Comp)
Enfoque III: VOMM con Ventana Deslizante tObservaciónEIIEIII 1agregarClass(ProductOne)177 2agregarClassAbs(Cliente)242 3agregarClassAbs(ConcreteTwo)3210 4agregarClassAbs(Product)4840 6agregarClassAbs(ConcreteOne) agregarClassAbs(ProductTwo) agregarClassAbs(Abstraction) agregarClass(ProductOne)
Agenda Introducción Trabajos relacionados Trabajo realizado Marco Teórico Modelos de Markov Materialización Experimentos Conclusiones
Resultado Experimentales Construcción del Data-Set CategoríaPatrón Cantidad de Acciones por Secuencia Cantidad de Acciones distintas Cantidad de Clases (concretas, abstractas e interfaces) Planes Generados E II y E III E I CreacionalesFactory Method (FM) Prototype (Prot) EstructuralesAdapter (Adap) Bridge (Brid) Composite (Comp) Decorator (Deco) ComportamentalesCommand (Comm) Iterator (Ite) Mediator (Med) Observer (Obs)
Resultados Experimentales: Métricas On Line Accuracy Convergencia Presicion
Experimento I Objetivo: Obtener el valor de mas adecuado para cada enfoque Metodología: Leave One Out Cross Validation (LOOCV) Promediado de las métricas On Line Accuracy Punto de Convergencia Convergencia Precision (%) 0,10,71645,275071, ,20,74535,434770, ,30,69148,296951, ,40,644511,530529, ,50,580513,637915, ,60,520914,263511, ,70,491114,422710, ,80,457714,56129, ,90,442114,60879, ,411314,62639,157528
Experimento I: Resultados Media Desviación Estándar
Experimento I: Resultados (2)
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 II: Resultados
Experimento III Objetivo: Medir la confusión entre los patrones estudiados Metodología: LOOCV Métrica On Line Accuracy Ejemplo: Composite 200 cadenas AdapBridCommCompDecoFMIteMedObsProt Composite AdapBridCommCompDecoFMIteMedObsProt Composite ,52,54
Experimento III: Resultados AdapBridCommCompDecoFMIteMedObsProt Adapter 67,807,63 16,952,544,240,85 Bridge 85,71 14,29 Command 100,00 Composite 1,050,7922,2523,0447,384,45 1,05 Decorator 98,521,48 F. Method 100,00 Iterator 4,02 95,67 0,31 Mediator 100,00 Observer 100,00 Prototype 17,652,35 20,0015,292,3542,35 Precisión promedio (E I) 81,23
Experimento III: Resultados (2) Precisión promedio (E III) 70,25 AdapBridCommCompDecoFMIteMedObsProt Adapter 54,177,291,042,603,6511,4619,79 Bridge 90,595,883,53 Command 14,0983,180,681,590,45 Composite 17,688,0016,6116,9712,4327,001,31 Decorator 8,056,653,7377,950,233,38 F. Method 1,172,930,3594,011,53 Iterator 0,2499,76 Mediator 100 Observer 100 Prototype 9,8426,421,045,7033,6810,3611,921,04 Precisión promedio (E II) 71,73
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 – Leave One Out
Experimento IV: Resultados
Agenda Introducción Trabajos relacionados Trabajo realizado Marco Teórico Modelos de Markov Materialización Experimentos 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 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 SILVA LOGROÑO, J.F., L.S. BERDUN, M. G. ARMENTANO, y A.A. AMANDI 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 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
Preguntas
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
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» CategoríaCreacionalEstructuralComportamental PatronesAbstract Factory, Builder, Factory Method, Prototype, Singleton Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy Chain of Responsability, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor 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