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)