Esto se representa, como muestra la Figura 5. Algunas Estructuras tienen Arcos y Segmentos, y, por tanto, pueden tener otras Estructuras anidadas. Independientemente de su complejidad, todas estas construcciones se encapsulan dentro de una Estructura para facilitar la idea de Estructuras anidadas. Todas las Estructuras tienen un comportamiento muy similar. La diferencia principal entre las Complejas y las Simples es el anidamiento, como se muestra en la Figura 5. Las Estructuras contienen, por lo menos, una Figura.
Este comportamiento se describe en la Figura 5. Es necesario permitir que una Figura se encuentre seleccionada sin editar el texto, especialmente para distinguir acciones que pueden afectar tanto al texto como a la Estructura padre por ejemplo, borrar. Esto se representa con el evento de entrada en el estado de Figura Seleccionada. El anidamiento de Estructuras se define en la Figura 5. A partir del esquema presentado en la Figura 5.
Diagrama 1 Princip al Figura 5. El proceso para seleccionar una Estructura se muestra en la Figura 5. Des elecciona Figura. Seleccionada Segmento. Des elecciona Des elecciona No Seleccionada Figura.
Des elecciona Figura 5. Dos objetos que se requieren son las Cajas de Herramientas y Operaciones. La segunda puede, en algunos casos, reemplazar el uso del teclado al editar expresiones. Cuando el Estudiante hace click en el segmento, una nueva Estructura, de la subclase correspondiente a la elegida en la Caja de Herramientas, es creada e insertada en el Segmento destino. Cuando el Estudiante hace click sobre algo, aunque no sea un Segmento Habilitado, la herramienta se deselecciona.
Con este par de casos, es posible transformar un diagrama en cualquier otro. A diferencia de Agregar, este caso requiere, como intermediario con el Estudiante, al Ambiente. Los dos primeros requieren guardar una Estructura para que pueda ser pegada posteriormente. Este espacio se implementa con la clase Portapapeles.
Diagrama Portapapeles 1 Estructura La diferencia fundamental es que al Copiar, se coloca una copia de la Estructura en el Portapapeles, mientras que al Cortar, se coloca a la misma Estructura. Para hacer esto, es necesario seleccionar el Segmento donde se pretende pegar la Estructura. De esta manera, se puede reproducir una Estructura. Este proceso implica una variedad de interacciones, lo que lleva a descomponer este caso de uso.
Esto se muestra en la Figura 5. En cambio, los de la derecha sirven para especificar una variable en particular. Por un lado, tenemos que administrar un conjunto de variables. Se representa en la Figura 5. Por lo tanto, las Variables pueden tener una Variable seleccionada. Estas dos ideas se reflejan en la Figura 5.
La secuencia de eventos implicados en hacer un Nuevo Programa se muestra en la Figura 5. Pero no es necesario Leer y Escribir en un archivo para implementar esta funcionalidad.
Es suficiente hacerlo en memoria. Entonces, tenemos dos medios muy distintos, archivo y memoria, donde queremos poder Leer y Escribir Programas. Podemos generalizar este comportamiento en una interfase, Canal, tal como muestra la Figura 5. Trad u cto rA mb ien te Trad u cto rPas cal Figura 5. Con este traductor las expresiones no se traducen. La Tabla 5. El lenguaje y el medio no influyen en el proceso de escritura.
Se puede ver claramente la manera en que esto se realiza. Al terminar de construir un enunciado, lo escribe en el Canal. En el lugar apropiado, solicita a las Variables y al Diagrama que ellos escriban en el Canal, usando el Traductor.
A su vez, estos componentes solicitan lo mismo a cada Variable y a la Estructura Principal, respectivamente. Los eventos escriben los Arcos. En cada uno se escriben las Estructuras hijo que contiene. La lectura del Diagrama implica leer el Inicio de la Estructura Principal y pasarle el control. Todas las Estructuras implementan la manera en que se leen. Ambiente DialogoArchivo Figura 5. Se puede ver que es muy similar al caso de guardarlo.
La diferencia radica en que, una vez creado el canal, se lee en lugar de escribir. Es conveniente encapsular esta funcionalidad en una clase: la Lista de Cambios. Este conjunto se divide en Cambios por Rehacer y Cambios por Deshacer. Al Rehacer es el proceso inverso. Cada vez que se guarda un cambio, se borran los Cambios por Rehacer. Esto se refleja en la Figura 5. Evidentemente, para poder Deshacer o Rehacer debe haber algo en el conjunto de Cambios correspondientes. Con este proceso, toma sentido que cada cambio que se realice, tanto en el Diagrama como en las Variables, sea notificado al Ambiente con un evento de Cambio.
Luego lo pasa a la Lista de Cambios para su almacenamiento. Las acciones de Deshacer y Rehacer implican recuperar un Canal de la Lista y leerlo. Si se encuentra visible, cada cambio que se realice al programa se refleja inmediatamente en ella. Con cada cambio, se traduce en un Canal Cadena el Programa. Puesto que tiene un comportamiento similar al que comparten las Cajas de Herramientas y Operaciones 5.
Este se presenta en la Figura 5. Pas o Lis to Figura 5. Hacer una referencia a una Variable no inicializada genera un error. Cada Paso consiste en Ejecutar la Figura que tiene el control y transferir el control a la siguiente Figura. Pas o Lis to. Se pasa del primero al segundo estado en el momento en que el Estudiante genera el evento para Correr o dar un Paso.
Los subestados de Ejecutando no son visibles en el diagrama. Una vez evaluada, pierde el control. En cambio, si se trata de la Figura de una Estructura Simple, es necesario encontrar la Siguiente en el Padre, a partir del Segmento en que se encuentra la Estructura.
Debido a que este llamado puede hacerse tanto a Estructuras como a Arcos, se separan los diagramas que representan estos casos. Los llamados para Encontrar la Siguiente a un Segmento simplemente se transfieren como llamados a su Arco padre. En el caso de Estructuras Simples esto es trivial, pero en el caso de las Complejas es necesario tomar en cuenta las relaciones entre los distintos Arcos y Figuras. Si el control desemboca en una Figura, hemos encontrado la siguiente Figura a ejecutar.
Este caso de uso se aplica en la Figura con el control y luego transfiere el control a la siguiente Figura. El evento de arrastrar 4 puede repetirse indefinidamente. Cuando el Estudiante deja de arrastrar, el control se queda en la Figura que lo tiene en ese momento. Esto nos puede llevar a un caso que no cubre este diagrama: que el Estudiante arrastre adentro y luego afuera de una Figura. Si esto sucede, el control se regresa a la Figura original, invirtiendo los eventos Aunque este caso se ubica en Editar Diagrama, es hasta este momento que tiene sentido definirlo.
Por esto en el diagrama de secuencia de la Figura 5. Sin embargo, esto no se cumple en el caso de hacer una Entrada. El Analizador realiza tres funciones: Analizar revisar sintaxis , Evaluar ejecutar y Traducir Expresiones. El Analizador tiene dos partes: el simbolizador y el parser.
De esta manera se pueden realizar el resto de las funciones sin necesidad de volver a Simbolizar. Al Analizar, simplemente checa los tipos de los operandos y regresa el tipo del resultado. Las relaciones del Analizador con otras clases se muestran en la Figura 5. En esta fase es posible que se haga Referencia a Variables y a sus tipos. Las subclases que no se muestran se encuentran en el mismo paquete que su superclase.
Los paquetes globales pueden accesar y ser accesados por todos. Se indica el inicio y el fin del uso del programa, en caso de que el Tutor requiera manejar sesiones. Esto puede darse como respuesta a un evento propiciado por el Estudiante, o de manera independiente. El Tutor puede mandar Comandos al sistema. Para realizar esto, se abstrae la funcionalidad de la Consola, tal como muestra la Figura 5.
Varios de estos sistemas de ensayo se fueron extendiendo y refinando hasta formar algunos de los componentes actuales del sistema, como Variables y el mismo Ambiente. El nombre de cada ciclo va seguido por los objetivos que se especificaron para finalizarlo. En otras palabras, un Editor de Programas 6. Usabilidad y robustez mejoradas. Figura 6. Las fronteras temporales en realidad fueron difusas, pero se muestran discretas para puntualizar.
La Figura 6. En este caso, el progreso en objetos del Diagrama y Variables es independiente. Estos, a su vez, se construyen integrando una variedad de componentes. Cada uno se almacena como archivo. Visual Basic no soporta declarar y usar clases globales dentro del mismo proyecto. No se puede heredar de otra clase padre, pero al implementar su interfase, se permite usarla en lugar del padre.
Otros tipos de componentes, como control o forma, no las soportan. Este es el caso de las Cajas Flotantes. Esto lo hace el Analizador para distinguir a la Consola del Flujo de Prueba. Las interfases, representadas en la Figura 6.
Los subprogramas son simplemente funciones o subrutinas. Las propiedades se definen con una o dos rutinas, una para leer y la otra para escribir. Se usaron mucho para fomentar el encapsulamiento. En general, las operaciones generadas por el estudiante se implementaron como eventos. Hay muchas cosas que no se pueden hacer con Visual Basic. Por ejemplo, no hay manera de dibujar un rombo. Esto hizo necesario recurrir extensamente al API. Una forma tiene que tener un arreglo de controles.
Algunas de las operaciones que realizan las Estructuras son recursivas. No se pueden modificar a partir de una referencia. Los controles no pueden usar interfases. Los ejecutables desarrollados en Visual Basic requieren, para poder utilizarse, de una gran cantidad de archivos instalados correctamente en el sistema operativo.
Sin embargo, no hubo manera de lograrlo con Visual Basic. AMIVA se compone de una ventana principal y varias ventanas auxiliares. La principal tiene cuatro secciones Figura 6. Se crea una nueva caja de variable. Las cajas se pueden seleccionar, mover y borrar.
Al ejecutar un programa, los valores de las variables se muestran y pueden modificarse. No se puede introducir un valor incompatible con el tipo de la variable. El usuario puede mover las barras que dividen las secciones. Hay tres ventanas auxiliares. Este proceso es muy similar al de los ambientes para dibujar. Pretende ayudar a la memoria. Cada cambio al diagrama, expresiones o declaraciones se ve reflejado inmediatamente en esta ventana.
Las estructuras se pueden arrastrar y dejar en un nuevo segmento. Las figuras pueden tener barreras. La Tabla 6. Una estructura compuesta incluye todas sus estructuras anidadas. AMIVA soporta plenamente deshacer y rehacer. Si no modifica posteriormente el programa, puede rehacer los cambios que deshizo. El sistema puede salvar y recuperar diagramas. Actualmente se soportan C, Pascal y Visual Basic.
Los programas se pueden ejecutar en cualquier momento. El control se puede arrastrar de una figura a otra. No importa que el diagrama tenga errores. Si el control llega a un error, simplemente se detiene mostrando un mensaje. El aspecto negativo es que los estudiantes tuvieron que lidiar con un sistema incompleto y poco confiable con errores. El hecho de usar directamente la computadora ya era un incentivo.
Los criterios de usabilidad 3. La Tabla 4. AMIVA debe tener, por lo menos, tres ventanas o zonas. El programa se especifica en los espacios para el diagrama y para las variables. Para ejecutarlo, es necesario un sitio para realizar los procesos de entrada y salida. En otras palabras, no es posible cometer errores visuales. Finalmente, es muy sencillo establecer una equivalencia entre las estructuras en los diagramas de flujo y los lenguajes imperativos estructurados.
De esta manera, se reduce considerablemente la viscosidad y con ello el compromiso prematuro. Caja de herramientas: Para insertar una nueva estructura en el diagrama, el estudiante la selecciona en una caja flotante de herramientas y luego la coloca en alguno de los segmentos existentes. De esta manera, se es consistente con los programas para dibujar. Cortar y pegar: el estudiante puede seleccionar una estructura del diagrama incluyendo todas las estructuras anidadas y copiarla o cortarla.
Posteriormente, puede pegarla en un nuevo segmento. Esta funcionalidad permite modificar con mucha facilidad al programa. Cajas de variables: El estudiante puede crear y borrar declaraciones de va- riables. Estas se representan como cajas donde se determina su nombre, tipo y valor. El valor de la variable toma la forma de un campo de texto que solo puede contener un valor compatible con su tipo. El usuario puede modificar, guardar y ejecutar el programa sin importar la existencia de errores.
De esta manera, cometer errores no es grave. Y, si se arrepiente, volverlas a hacer. Esto implica que el desarrollo avanza como una serie de iteraciones que evolucionan hasta el producto final. UML es un lenguaje para especificar, visualizar y documentar los artefactos de un sistema en desarrollo orientado a objetos.
Finalmente se realizan pruebas para asegurar que cumpla con el comportamiento esperado. Estudiante Tutor Figura 5. Esto se representa en la Figura 5. Para programar, es necesario Editar el Diagrama de flujo y Editar las Variables. Correr, pausar y detener el programa corresponde al caso de Ejecutar el Programa. Mientras el programa se ejecuta, es posible que se pida al Estudiante Interactuar con la Consola. En este caso los efectos pueden afectar a la totalidad del sistema.
Las dos primeras constituyen el Programa. En cambio, Ejecutar el Programa y las Operaciones del Sistema son casos que implican a varios, si no es que todos, los componentes del Ambiente. A estas alturas es posible esbozar los paquetes principales que van a componer el sistema Figura 5.
Por lo tanto, es preferible comenzar con alguna de las clases que pueden capturar toda la funcionalidad de un caso de uso, de manera independiente. En este punto ya se tiene definido como Editar el Programa. Finalmente se describe el Analizador, que interpreta los enunciados textuales y es utilizado en varios casos. Como muestra la Figura 5. El Diagrama necesita informar al Ambiente de todas las acciones que reali- za el Estudiante.
Esto se representa como un evento de cambio cada vez que el estudiante intenta editar el Diagrama Figura 5. Por lo tanto, se descompone en una serie de objetos visuales: Estructuras, Figuras, Arcos y Segmentos. La Figura 5. Los Arcos representan caminos que puede seguir el flujo de control por una estructura, y se componen de Segmentos.
Estructura a c Figura b abc Arcos b b c a Segmentos Figura 5. Esto se representa, como muestra la Figura 5. Algunas Estructuras tienen Arcos y Segmentos, y, por tanto, pueden tener otras Estructuras anidadas. Independientemente de su complejidad, todas estas construcciones se encapsulan dentro de una Estructura para facilitar la idea de Estructuras anidadas. Todas las Estructuras tienen un comportamiento muy similar. La diferencia principal entre las Complejas y las Simples es el anidamiento, como se muestra en la Figura 5.
Las Estructuras contienen, por lo menos, una Figura. Este comportamiento se describe en la Figura 5. Es necesario permitir que una Figura se encuentre seleccionada sin editar el texto, especialmente para distinguir acciones que pueden afectar tanto al texto como a la Estructura padre por ejemplo, borrar. Esto se representa con el evento de entrada en el estado de Figura Seleccionada.
El anida- miento de Estructuras se define en la Figura 5. A partir del esquema presentado en la Figura 5. Diagrama 1 Princip al Figura 5. El proceso para seleccionar una Estructura se muestra en la Figura 5. D eselecciona Sele ccion a Figura 5. Des elecciona Figura. Seleccionada Segmento. Des elecciona Des elecciona No Seleccionada Figura. Des elecciona Figura 5. Dos objetos que se requieren son las Cajas de Herramientas y Operaciones. La segunda puede, en algunos casos, reemplazar el uso del teclado al editar expresiones.
Cuando el Estudiante hace click en el segmento, una nueva Estructura, de la subclase correspondiente a la elegida en la Caja de Herramientas, es creada e insertada en el Segmento destino.
Cuando el Estudiante hace click sobre algo, aunque no sea un Segmento Habilitado, la herramienta se deselecciona. Con este par de casos, es posible transformar un diagrama en cualquier otro. A diferen- cia de Agregar, este caso requiere, como intermediario con el Estudiante, al Ambiente. Los dos primeros requieren guardar una Estructura para que pueda ser pegada posteriormente. Este espacio se implementa con la clase Portapapeles.
Diagrama Portapapeles Estructura 1 La diferencia funda- mental es que al Copiar, se coloca una copia de la Estructura en el Portapapeles, mientras que al Cortar, se coloca a la misma Estructura. Para hacer esto, es necesario seleccionar el Segmento donde se pretende pegar la Estructura.
De esta manera, se puede reproducir una Estructura. Este proceso implica una variedad de interacciones, lo que lleva a descomponer este caso de uso.
Esto se muestra en la Figura 5. En cambio, los de la derecha sirven para especificar una variable en particular. Por un lado, tenemos que administrar un conjunto de variables. Se representa en la Figura 5. Por lo tanto, las Variables pueden tener una Variable seleccionada. Estas dos ideas se reflejan en la Figura 5. La secuencia de eventos implicados en hacer un Nuevo Programa se muestra en la Figura 5. Pero no es necesario Leer y Escribir en un archivo para implementar esta funcionalidad.
Es suficiente hacerlo en memoria. Entonces, tenemos dos medios muy distintos, archivo y memoria, donde queremos poder Leer y Escribir Programas. Podemos generalizar este comportamiento en una interfase, Canal, tal como muestra la Figura 5. Figura 5. Con este traductor las expresiones no se traducen. La Tabla 5. El lenguaje y el medio no influyen en el proceso de escritura. Se puede ver claramente la manera en que esto se realiza. Al terminar de construir un enunciado, lo escribe en el Canal.
En el lugar apropiado, solicita a las Variables y al Diagrama que ellos escriban en el Canal, usando el Traductor. A su vez, estos componentes solicitan lo mismo a cada Variable y a la Estructura Principal, respectivamente. Los eventos escriben los Arcos. En cada uno se escriben las Estructu- ras hijo que contiene. La lectura del Diagrama implica leer el Inicio de la Estructura Principal y pasarle el control.
Todas las Estructuras implementan la manera en que se leen. Ambiente DialogoArchivo Figura 5. Se puede ver que es muy similar al caso de guardarlo. La diferencia radica en que, una vez creado el canal, se lee en lugar de escribir. Es conveniente encapsular esta funcionalidad en una clase: la Lista de Cambios. Este conjunto se divide en Cambios por Rehacer y Cambios por Deshacer.
Al Rehacer es el proceso inverso. Cada vez que se guarda un cambio, se borran los Cambios por Rehacer. Esto se refleja en la Figura 5.
Evidentemente, para poder Deshacer o Rehacer debe haber algo en el conjunto de Cambios correspondientes. Con este proceso, toma sentido que cada cambio que se realice, tanto en el Diagrama como en las Variables, sea notificado al Ambiente con un evento de Cambio. Luego lo pasa a la Lista de Cambios para su almacenamiento.
Las acciones de Deshacer y Rehacer implican recuperar un Canal de la Lista y leerlo. Si se encuentra visible, cada cambio que se realice al programa se refleja inmediatamente en ella. Con cada cambio, se traduce en un Canal Cadena el Programa. Puesto que tiene un comportamiento similar al que comparten las Cajas de Herramientas y Operacio- nes 5. Este se presenta en la Figura 5. Pas o Lis to Figura 5. Hacer una referencia a una Variable no inicializada genera un error. Cada Paso consiste en Ejecutar la Figura que tiene el control y transferir el control a la siguiente Figura.
Pas o Lis to. Se pasa del primero al segundo estado en el momento en que el Estudiante genera el evento para Correr o dar un Paso. Los subestados de Ejecutando no son visibles en el diagrama. Una vez evaluada, pierde el control. En cambio, si se trata de la Figura de una Estructura Simple, es necesario encontrar la Siguiente en el Padre, a partir del Segmento en que se encuentra la Estructura.
Debido a que este llamado puede hacerse tanto a Estructuras como a Ar- cos, se separan los diagramas que representan estos casos. Los llamados para Encontrar la Siguiente a un Segmento simplemente se transfieren como llamados a su Arco padre. En el caso de Estructuras Simples esto es trivial, pero en el caso de las Complejas es necesario tomar en cuenta las relaciones entre los distintos Arcos y Figuras. Si el control desemboca en una Figura, hemos encontrado la siguiente Fi- gura a ejecutar.
Este caso de uso se aplica en la Figura con el control y luego transfiere el control a la siguiente Figura. El evento de arrastrar 4 puede repetirse indefinidamente. Cuando el Estudiante deja de arrastrar, el control se queda en la Figura que lo tiene en ese momento. Esto nos puede llevar a un caso que no cubre este diagrama: que el Estudiante arrastre adentro y luego afuera de una Figura. Si esto sucede, el control se regresa a la Figura original, invirtiendo los eventos Aunque este caso se ubica en Editar Diagrama, es hasta este momento que tiene sentido definirlo.
Por esto en el diagrama de secuencia de la Figura 5. Sin embargo, esto no se cumple en el caso de hacer una Entrada. El Analizador realiza tres funciones: Analizar revisar sintaxis , Evaluar ejecutar y Traducir Expresiones. El Analizador tiene dos partes: el simbolizador y el parser. De esta manera se pueden realizar el resto de las funciones sin necesidad de volver a Simbolizar.
Al Analizar, simplemente checa los tipos de los operandos y regresa el tipo del resultado. Las relaciones del Analizador con otras clases se muestran en la Figura 5. En esta fase es posible que se haga Referencia a Variables y a sus tipos.
Las subclases que no se muestran se encuentran en el mismo paquete que su superclase. Los paquetes globales pueden accesar y ser accesados por todos. Se indica el inicio y el fin del uso del programa, en caso de que el Tutor requiera manejar sesiones. Esto puede darse como respuesta a un evento propiciado por el Estudiante, o de manera independiente.
El Tutor puede mandar Comandos al sistema. Para realizar esto, se abstrae la funcionalidad de la Consola, tal como muestra la Figura 5. Varios de estos sistemas de ensayo se fueron extendiendo y refinando hasta formar algunos de los componentes actuales del sistema, como Variables y el mismo Ambiente.
El nombre de cada ciclo va seguido por los objetivos que se especificaron para finalizarlo. En otras palabras, un Editor de Programas 6. Usabilidad y robustez mejoradas. Figura 6. Las fronteras temporales en realidad fueron difusas, pero se muestran discretas para puntualizar. La Figura 6. En este caso, el progreso en objetos del Diagrama y Variables es independiente.
Estos, a su vez, se construyen integrando una variedad de componentes. Cada uno se almacena como archivo. Visual Basic no soporta declarar y usar clases globales dentro del mismo proyecto.
No se puede heredar de otra clase padre, pero al implementar su interfase, se permite usarla en lugar del padre. Otros tipos de componentes, como control o forma, no las soportan. Este es el caso de las Cajas Flotantes. Esto lo hace el Analizador para distinguir a la Consola del Flujo de Prueba. Las interfases, representadas en la Figura 6. Los subprogramas son simplemente funciones o subrutinas. En este caso se pulsa sobre Java en la parte izquierda y Java Project en la derecha. Una vez introducidos se pulsa sobre Finish.
Se crea el directorio especificado con dos ficheros. Project y. Gutierrez, 4. En esta perspectiva aparecen views correspondientes al proyecto, a paquetes, a clases e interfaces y a los miembros de estas. Disponibilidad de un amplio conjunto de bibliotecas. Lenguaje simple. Interpretado y compilado a la vez. Dada la naturaleza distribuida de Java, donde las applets se bajan desde cualquier punto de la Red, la seguridad se impuso como una necesidad de vital importancia.
Indiferente a la arquitectura. Alto rendimiento. Multi hilos. Produce applets. Java puede ser usado para crear dos tipos de programas: aplicaciones independientes y applets. Que desarrolla aplicaciones software en lenguaje PHP. Con el nombre de EngineHosting.
Ya varios grandes proveedores de Web 2. Estas son las cosas que serviciamos con servicios web REST. Resulta muy flexible el poder exponer los recursos del sistema con un API REST, de manera de brindar datos a distintas aplicaciones, formateados en distintas maneras. Ubuntu contiene todas las aplicaciones que puedas necesitar. Semana 3 Preparamos un servidor en la nube para poder instalar y desarrollar el Moodle y nuestro Restful service, Se configuro una lamp en el servidor.
Esta puede ser usada por un webservice. El esqueme utilizado se le llama handshake 1. Usuario obtiene userid y el API key para comunicarse con el servicio. Guia de Moodle 1. F de Eclipse 2. Obtenido de Universidad de Valencia. Hernandez, E.
0コメント