ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

GENERAR MÁQUINAS DE ESTADOS UTILIZADAS EN LAS ACTIVIDADES DE LOS LABORATORIOS

kayrumetTesis6 de Septiembre de 2016

3.004 Palabras (13 Páginas)284 Visitas

Página 1 de 13

 HERRAMIENTA PARA GENERAR MÁQUINAS DE ESTADOS UTILIZADAS EN LA LÓGICA DE LAS ACTIVIDADES DE LOS LABORATORIOS VIRTUALES

 Tool For Generating Finite State Machines Used In The Logic Of The Activities Of Virtual Labs 

Lui Kayrumet Pérez Buigas1, Juan Miguel Rodríguez Sillero2, Angel Ulise Tabarez Gonzáles3

1 Universidad de las Ciencias Informáticas, Cuba, kayrumet@uci.cu, calle 141 % 238 y 240, Edif 2 apto B-5, Matanzas

2 Universidads de las Ciencias Informáticas, Cuba, jmsillero@uci.cu

3 Universidad de las Ciencias Informáticas, Cuba, ulise@uci.cu

RESUMEN:

Los laboratorios virtuales son medios educativos de gran utilidad, con ellos es posible simular el ambiente de un laboratorio tradicional y desarrollar una práctica de laboratorio sin correr los riesgos ni costear los gastos que conlleva una práctica de laboratorio tradicional. Algunos laboratorios virtuales utilizan una máquina de estados para su desarrollo, permitiendo que la implementación sea más organizada. En el presente trabajo se describe una investigación que se desarrolló con el objetivo de reducir los tiempos de desarrollo de los laboratorios virtuales que utilizan máquinas de estados. Aquí se exponen los principales elementos que conforman las máquinas de estados, especialmente cómo funcionan, además se realizó un estudio de los trabajos referentes al tema. Se obtuvo una herramienta desarrollada en Qt Creator capaz de realizar el diseño de una máquina de estado, para luego exportarla a código fuente C++ para su utilización en los entornos de desarrollo integrado.

Palabras Clave: Laboratorios virtuales, máquina de estados, diseño

ABSTRACT:  Virtual Labs are very useful educational media, with them is possible to simulate the environment of a traditional lab and develop a laboratory practice without the risks or cover expenses carrying a traditional laboratory practice. Some virtual laboratories use a state machine for its development, allowing implementation more organized. In the present work an investigation that was developed with the objective of reducing development times of virtual laboratories that use state machines is described. Here the main elements to compose the state machines are exposed, especially as work, besides a study of the work done regarding the topic. Was obtained a tool in qt creator able to make design a state machine, to later export it to c ++ source code for using in a development environment integrated. 

KeyWords: Virtual Labs, state machine, design

  1. INTRODUCCIÓN

Con el avance de las Tecnologías de la Informática y las Comunicaciones prácticamente todos los aspectos cotidianos se han vistos reflejados en el fenómeno de la virtualización. Mediante la aplicación de la Realidad Virtual (RV), podemos hacer que el usuario interactúe con aplicaciones que simulan diferentes situaciones de la vida real. Los Laboratorios Virtuales (LVs) son un área de aplicación de la RV, que pretenden acercar al usuario al ambiente de un Laboratorio Tradicional (LT), los LVs tienen como objetivo facilitar la comprensión de conceptos científicos a través de la simulación de estos en un computador. Los experimentos se desarrollan paso a paso, como se haría en un LT, ya que se visualizan instrumentos y fenómenos mediante objetos dinámicos, imágenes o animaciones. [1]

La Universidad de las Ciencias Informáticas mediante el centro VERTEX ya ha desarrollado su propia versión de varios LVs, ejemplo de esto es el “Laboratorio Virtual Ensamblaje de una Computadora para la enseñanza de la Informática” [2] y se encuentra desarrollando nuevas versiones de otros. Durante el desarrollo de algunos de estos productos, una situación ha sido recurrente, y es el hecho de detectar la existencia de varios estados y transiciones en los comportamientos de estos. Una forma usual de solventar estas situaciones es la utilización del patrón máquina de estados a partir de un boceto del autómata finito determinista que cumple con estos estados y transiciones.

Una máquina de estados o autómata es un modelo de comportamiento de un sistema con entradas y salidas, donde un estado modela un comportamiento determinado. Al utilizarse este patrón se permite que la implementación sea más organizada y que el mantenimiento posterior sea más fácil.

En estos momentos el centro no cuenta con ningún medio que permita automatizar este proceso de diseñar un autómata con las especificaciones que son necesarias como son el nombre de los estados, atributos de las clases y métodos de transición con sus parámetros. Actualmente cuando se realiza el diseño de un autómata, el desarrollador lo tiene que hacer de forma manual y escrita, el problema que trae consigo esto es que tras el diseño de un autómata, estos son propensos a no estar correctamente elaborados, ya que pueden existir errores humanos al elaborarlos que de pasar desapercibidos en una etapa más avanzada del desarrollo pueden inducir retrasos importantes que atentan contra el cumplimiento del cronograma. También al realizar el diseño de forma escrita no permite realizarlo con las especificaciones anteriormente mencionadas por lo que el proceso de implementación sería más extenso. 

Cuando se procede a la implementación de este patrón el programador debe utilizar más tiempo para implementar desde el principio cada clase correspondiente a cada estado del diagrama, teniendo en cuenta la estructura que utiliza el patrón máquina de estados, esta tarea puede tornarse extensa y propensa a errores a medida que la cantidad de estados del autómata crece, lo que impide centrarse en la programación de las particularidades de cada ejercicio y subutiliza el tiempo en la resolución de tareas más comunes.

Para dar solución al problema planteado se define como objetivo general: desarrollar una herramienta que permita generar código fuente, a partir del diseño de un autómata finito, para la lógica de los laboratorios virtuales.

  1. CONTENIDO

Laboratorio Virtual

Los laboratorios virtuales son entornos virtuales como ambientes de aprendizaje, que fomentan grandemente la integración de los usuarios a la práctica propiciando cada vez más simulaciones de fenómenos de la vida diaria.

Como concepto se conoce que son objetos digitales que, mediante el modelado de la realidad, permiten la simulación y la experimentación de fenómenos o situaciones de la vida real. Son un espacio electrónico de trabajo concebido para la colaboración y la experimentación a distancia con objeto de investigar o realizar otras actividades creativas y elaborar y difundir resultados mediante tecnologías de información y comunicación. [1]

 

Máquina de estados

Una descripción precisa de una máquina de estados es que es un grafo dirigido, que posee en un conjunto de nodos y un conjunto correspondiente de funciones de transición. La máquina pasa de un estado para responder a una serie de eventos. Cada evento está en el dominio de la función de transición que pertenece al nodo "actual" donde se encuentra la máquina de estados, donde el rango de la función es un subconjunto de los nodos. La función devuelve el "siguiente" (quizás el mismo) nodo. Al menos uno de estos nodos debe ser un estado final. Cuando se alcanza un estado final, la máquina puede detenerse. [3]

A los efectos de este trabajo de define que una máquina de estado y un autómata representan el mismo concepto.

Autómata finito determinista

Un autómata finito tiene un conjunto de estados, y su control "se mueve" de estado a estado en respuesta a "entradas" externas. Una de las distinciones fundamentales entre las clases de autómatas finitos es si ese control es "determinista", lo que significa que el autómata no puede estar en más de un estado en cualquier momento. [4]

Estado

Un estado modela una situación durante la cual tiene alguna (por lo general implícita) condición invariante. El invariante puede representar una situación estática, como un objeto a la espera de que se produzca algún acontecimiento externo. Sin embargo, también puede modelar condiciones dinámicas, tales como el proceso de la realización de algún comportamiento. [5]

Transición

Una transición es una relación dirigida entre un estado origen y un estado destino. Puede ser parte de una transición compuesta, que tiene la máquina de estado de una configuración estado a otro, lo que representa la respuesta completa de la máquina de estados a una ocurrencia de un evento de un tipo particular. [5]

Patrón State

Es un patrón de diseño que se utiliza para codificar cada clase correspondiente a cada estado que modela el comportamiento de un objeto, Por ejemplo: una alarma puede tener diferentes estados, como desactivada, activada, en configuración. [6]

Aplicabilidad: Se utiliza este patrón cuando:

  • El comportamiento de un objeto depende de su estado y tiene que cambiar su comportamiento en tiempo de ejecución en función de ese estado.
  • Se presentan muchos condicionales en el código, es posible que sea necesario aplicar este patrón.

Ventajas:

  • Se localizan fácilmente las responsabilidades de los estados específicos. Esto facilita la ampliación de estados.
  • Hace los cambios de estado explícitos puesto que en otros tipos de implementación los estados se cambian modificando valores en variables.
  • Evita la utilización de estructuras condicionales.
  • Impone una estructura sobre el código y hace más clara su intención.
  • Hace explícitas las transiciones entre cuándo se tiene que ejecutar un comportamiento u otro.
  • Permite a un objeto cambiar de clase en tiempo de ejecución.

Herramientas diseño de máquinas de estados

Existen diferentes herramientas que permiten realizar el diseño de máquinas de estados. A continuación se enuncian algunas:

  1. Altova UModel ® 2014

Permite diseñar de forma visual modelos de aplicaciones en UML y generar código Java, C # o Visual Basic.NET. Es la herramienta UML que permite el diseño de software de forma práctica y visual para cualquier proyecto. Esta herramienta tiene como desventaja que no permite simular el autómata diseñado por el usuario, para conocer si funciona correctamente y es un software privativo. [7]

...

Descargar como (para miembros actualizados) txt (20 Kb) pdf (528 Kb) docx (359 Kb)
Leer 12 páginas más »
Disponible sólo en Clubensayos.com