La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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.

Presentaciones similares


Presentación del tema: "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."— Transcripción de la presentación:

1 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 2012.-

2 Agenda Introducción Trabajos relacionados Trabajo realizado Marco Teórico Modelos de Markov Materialización Experimentos Conclusiones

3 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

4 Trabajos Relacionados Dos enfoques predominantes Ingeniería Reversa Detección dinámica del Patrón objetivo

5 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

6 Agenda Introducción Trabajos relacionados Trabajo realizado Marco Teórico Modelos de Markov Materialización Experimentos Conclusiones

7 Modelos de Markov Una cadena de Markov es un proceso estocástico con la propiedad Markoviana

8 Modelos de Markov (2) Modelos de Markov de orden m (m-gramas) P(  |s),  and s  m,|s|=m Unigramas, Bigramas, … Problemas?

9 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

10 Probabilistic Suffix Automata

11 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)

12 Agenda Introducción Trabajos relacionados Trabajo realizado Marco Teórico Modelos de Markov Materialización Experimentos Conclusiones

13 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

14 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

15 PSA para el Patrón Composite s = agregarClass;agregarClassAbs;defDependencia;agregarClass; defGeneralizacion;agregarClass;defGeneralizacion;defComposicion

16 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])

17 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

18 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}

19 Administración de parámetros (2) Instanciación de Observaciones {FiltroAbstracto}ClienteagregarClassAbs (Cliente) GraficoagregarClassAbs (Grafico) SingagregarClassAbs (Sing) CompagregarClassAbs (Comp)

20 Enfoque III: VOMM con Ventana Deslizante tObservaciónEIIEIII 1agregarClass(ProductOne)177 2agregarClassAbs(Cliente)242 3agregarClassAbs(ConcreteTwo)3210 4agregarClassAbs(Product)4840 6agregarClassAbs(ConcreteOne)52520 7agregarClassAbs(ProductTwo)650402520 9agregarClassAbs(Abstraction)750402520 13agregarClass(ProductOne)8403202520

21 Agenda Introducción Trabajos relacionados Trabajo realizado Marco Teórico Modelos de Markov Materialización Experimentos Conclusiones

22 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) 1337852211 Prototype (Prot) 74419385 EstructuralesAdapter (Adap) 644192118 Bridge (Brid) 114617021 Composite (Comp) 844837382 Decorator (Deco) 1246857338 ComportamentalesCommand (Comm) 1477880664 Iterator (Ite) 1557842323 Mediator (Med) 112486815 Observer (Obs) 115417865

23 Resultados Experimentales: Métricas On Line Accuracy Convergencia Presicion

24 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,499495 0,20,74535,434770,434792 0,30,69148,296951,353482 0,40,644511,530529,796565 0,50,580513,637915,747153 0,60,520914,263511,576645 0,70,491114,422710,514938 0,80,457714,56129,591830 0,90,442114,60879,275428 10,411314,62639,157528

25 Experimento I: Resultados Media Desviación Estándar

26 Experimento I: Resultados (2)

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

28 Experimento II: Resultados

29 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 16 365004224358 AdapBridCommCompDecoFMIteMedObsProt Composite 881825021121,52,54

30 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

31 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

32 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

33 Experimento IV: Resultados

34 Agenda Introducción Trabajos relacionados Trabajo realizado Marco Teórico Modelos de Markov Materialización Experimentos Conclusiones

35 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

36 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

37 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

38 Preguntas

39

40 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»

41 Algoritmo de Planning

42 Algoritmo de Planning (2) Ejemplo de Estado Final:

43 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

44 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

45 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


Descargar ppt "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."

Presentaciones similares


Anuncios Google