Download Prototipo de visualización de técnicas de diseño de
Document related concepts
no text concepts found
Transcript
Prototipo de visualización de técnicas de diseño de algoritmos - Antonio Pérez Carrasco Prototipo de visualización de técnicas de diseño de algoritmos Antonio Pérez Carrasco 1 Departamento de Visualización y Documentación Electrónica (VIDO) Prototipo de visualización de técnicas de diseño de algoritmos - Antonio Pérez Carrasco 0. Índice • • • • • • 1. ¿Qué es? 2. Objetivos 3. Casos de uso 4. Arquitectura y funcionamiento 5. Ejemplo de procesado 6. Demostración 2 Departamento de Visualización y Documentación Electrónica (VIDO) Prototipo de visualización de técnicas de diseño de algoritmos - Antonio Pérez Carrasco 1. ¿Qué es? Método .java Parámetros Programa Opciones Formato 3 Departamento de Visualización y Documentación Electrónica (VIDO) Prototipo de visualización de técnicas de diseño de algoritmos - Antonio Pérez Carrasco 1. ¿Qué es? • Visualiza algoritmos en función de la técnica de diseño – Backtracking – Divide y vencerás – Programación dinámica – Algoritmos voraces 4 Departamento de Visualización y Documentación Electrónica (VIDO) Prototipo de visualización de técnicas de diseño de algoritmos - Antonio Pérez Carrasco 2. Objetivos • Reducir esfuerzo de generación de ejemplos para profesores • Facilitar la comprensión de los algoritmos a los estudiantes: animaciones mediante cambios en configuración en clase dónde en casa 5 Departamento de Visualización y Documentación Electrónica (VIDO) Prototipo de visualización de técnicas de diseño de algoritmos - Antonio Pérez Carrasco 3. Casos de uso Ver código Generar visualización Cargar visualización Guardar visualización Configurar visualización Inicio de visualización Atrás en visualización Adelante en visualización Visualización múltiple Detener animación Activar animación Final de visualización 6 Departamento de Visualización y Documentación Electrónica (VIDO) Prototipo de visualización de técnicas de diseño de algoritmos - Antonio Pérez Carrasco 4. Arquitectura y funcionamiento Visualizador FactoriaVentana PanelVentana Ventana VentanaArbol Factoría para creación de ventanas VentanaInducción Modelo (datos) FactoríaCelda Traza Celda Representación (común) RegistroActivacion Estado CeldaNodo CeldaFlecha 7 Departamento de Visualización y Documentación Electrónica (VIDO) Prototipo de visualización de técnicas de diseño de algoritmos - Antonio Pérez Carrasco 4. Arquitectura y funcionamiento Traza Aplicación Código Java orig. Gestor procesado Repr. XML código or. Parser Java-XML Transformador ad-hoc Generador Java Repr. XML código tr. Árbol DOM (memoria) Código Java tr. 8 Departamento de Visualización y Documentación Electrónica (VIDO) Prototipo de visualización de técnicas de diseño de algoritmos - Antonio Pérez Carrasco 5. Ejemplo de procesado • Generación de ficheros y procesado .java .xml .class Árbol DOM .java (memoria) La aplicación solicita método y valores para los parámetros. Ejecutamos y Visualizamos. .class 9 Departamento de Visualización y Documentación Electrónica (VIDO) Prototipo de visualización de técnicas de diseño de algoritmos - Antonio Pérez Carrasco 5. Ejemplo de procesado • Clase java original class Fibbonaci { public static int fibbonaci (int n) { int resultado = 0; if (n==1) resultado = 1; else if (n==2) resultado = 1; else resultado = fibbonaci(n-1)+fibbonaci(n-2); return resultado; } } 10 Departamento de Visualización y Documentación Electrónica (VIDO) Prototipo de visualización de técnicas de diseño de algoritmos - Antonio Pérez Carrasco 5. Ejemplo de procesado • Clase java generada class Fibbonaci { public static int fibbonaci (int n) { Object pppppp01[] = new Object[1]; pppppp01[0]=n; Traza.singleton().anadirEntrada(new Estado(pppppp01)); int resultado = 0; if (n==1) resultado = 1; else if (n==2) resultado = 1; else resultado = fibbonaci(n-1)+fibbonaci(n-2); int zzzzzz01 = resultado; Object rrrrrr01[] = new Object[1]; rrrrrr01[0]=zzzzzz01; Traza.singleton().anadirSalida(new Estado(rrrrrr01)); return zzzzzz01; } } 11 Departamento de Visualización y Documentación Electrónica (VIDO) Prototipo de visualización de técnicas de diseño de algoritmos - Antonio Pérez Carrasco 5. Ejemplo de procesado • Representación XML <java-class-file> <class name="Fibbonaci" visibility="protected"> <method name="fibbonaci" visibility="public" static="true"> <type primitive="true" name="int"/> <formal-arguments> <formal-argument name="n"> <type primitive="true" name="int"/> </formal-argument> </formal-arguments> <block> <local-variable name="resultado"> <type primitive="true" name="int"/> <literal-number kind="int" value="0"/> </local-variable> <if> <test> <binary-expr op="=="> <var-ref name="n"/> <literal-number kind="int" value="1"/> </binary-expr> </test> <true-case> ... 12 Departamento de Visualización y Documentación Electrónica (VIDO) Prototipo de visualización de técnicas de diseño de algoritmos - Antonio Pérez Carrasco 6. Demostración • Se verá: – Ejemplo básico de visualización • Avances/retrocesos manuales/animados • Cambios de configuración y formato – Algunas de las posibilidades que ofrece • Generación aleatoria de valores • Carga/almacenamiento de trazas 13 Departamento de Visualización y Documentación Electrónica (VIDO)