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.

Slides:



Advertisements
Presentaciones similares
¿ Que es una muestra?.
Advertisements

DISEÑO DE EXPERIMENTOS EXPERIMENTOS DE COMPARACIÓN SIMPLE
Curso de java básico (scjp)
FACHADA COMPOSITOR MEMENTO
DISEÑO DE EXPERIMENTOS
Planificación de Monoprocesadores
Simulación Prof. Daniel Ramírez C..
Uso de patrones de arquitectura
Razonamiento algorítmico
Diseño orientado al flujo de datos
Mathematical modelling methodologies in predictive food microbiology: A SWOT analysis LEOPOLDO GARCÍA BAEZA.
Ingeniería en Ciencias Económicas y Financieras
Ingeniería Matemática
Ingeniería en Ciencias Económicas y Financieras
Tema 3 Revisión de diversos métodos robustos aplicados en algunos problemas fotogramétricos.
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno.
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.
METODOLOGIA DE LA PROGRAMACION
Principios y Patrones de Diseño
Profesor: Miguel Angel Vidal
Tema 10: Interfaces Antonio J. Sierra.
DEPARTAMENTO DE INGENIERÍA INFORMÁTICA
Tema 12 – Conceptos Básicos
Diseño de Sistemas. Patrones de Diseño. Geronimo Manso.
Patrones de Comportamiento: Patrón de Diseño Observer
DEPARTAMENTO DE INGENIERÍA INFORMÁTICA
Validación de propiedades de Workflow Alumno: Fernando Villar Director: Dr. Germán Regis Universidad Nacional de Río Cuarto.
UNIVERSIDAD MICHOACANA DE SAN NICOLÁS DE HIDALGO
LEDA Un Lenguaje para la Especificación y Validación de Arquitecturas de Software Carlos Canal Velasco Depto. de Lenguajes y Ciencias de la Computación.
SOFTWARE DE SIMULACION
Ingeniería de Software Orientado a Objetos
Sesión 6: Campos de Markov
PRUEBA SABER MATEMÁTICAS 3° Y 5°
Ignacio CascosDepto. Estadística, Universidad Carlos III1 Estadística en la Ingeniería Introducción.
Lenguajes de Programación Tema 3
Estadística Descriptiva
Bioinformática: Fundamentos y aplicaciones de actualidad Curso de verano 2005 Revisión de algunos modelos probabilísticos de evolución genética (Procesos.
5.3 APROXIMACIONES AL DISEÑO
Patrones de Diseño: Command
Juan Manuel Perdigón Mario Felipe Monsalve
Pasos de un estudio de simulacion (repaso).
UNIDAD 2. ALGORITMOS Y ESTRUCTURAS DE DATOS.
Diseños experimentales de caso único
Métodos de calibración: regresión y correlación
Universidad Nacional de Colombia Curso Análisis de Datos Cuantitativos.
Simular: Representar una cosa, fingiendo o imitando lo que no es.
PATRON DE SOFTWARE: COMMAND
3.- Introducción a Patrones de Diseño
INGENIERIA DE SOFTWARE GUILLERMO OCHOA GAVIRIA Octubre 2006 Factory Method.
Patrones de diseño Web Pierre Sergei Zuppa Azúa.
Planeación: Fundamento teórico: Administración, bases de aplicación: PHVA Psi. Vanessa Soto Gogue.
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
SOFTWARE PARA PAGOS DE SUELDOS Patrones de Diseño
PATRONES DE DISEÑO.
Una introducción a la computación evolutiva
Introducción a la Simulación de Eventos Discretos José Daniel García Sánchez Grupo de Arquitectura Comunicaciones y Sistemas Universidad Carlos III de.
Introducción al Biclustering
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
SENA REGIONAL HUILA REGIONAL HUILA CENTRO DE LA INDUSTRIA LA EMPRESA Y LOS SERVICIOS Huila Elementos de sistemas de información.
Introducción a UML Departamento de Informática Universidad de Rancagua
Modelos ocultos de Markov (HMM)
Facultad de Ingeniería y Tecnologías Memoria de Grado Geolocalización de documentos en el marco GIS.
Patrones de diseño equipo n.1
Patrones de diseño Grupo 1 Haeberli, Julián Lara, Guisell
Aplicaciones Estadísticas a las Finanzas Clase 1
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.
UNIDAD II LINEAS DE ESPERA
Marco de Trabajo para Indexación, Clasificación y Recopilación Automática de Documentos Digitales Javier Caicedo Espinoza Gonzalo Parra Chico.
Copyright 1996, Ricardo Devis Botella, Reservados todos los derechos.Página 1 Patrones de Diseño Tecnología de Objetos PATRONES DE DISEÑO por Ricardo Devis.
Transcripción de la presentación:

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