GENERAR MÁQUINAS DE ESTADOS UTILIZADAS EN LAS ACTIVIDADES DE LOS LABORATORIOS
Enviado por Rimma • 29 de Marzo de 2018 • 2.915 Palabras (12 Páginas) • 392 Visitas
...
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:
- 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]
- Enterprise Architect 7.0
Enterprise Architect es una herramienta potente de modelado UML 2.0. Posee una amplia gama de características para el desarrollo de software, modelado de base de datos, requisitos, diseño de interfaz y la generación de documentos informes en formato HTML. Esta herramienta tiene como inconveniente que debido a que posee una gran cantidad de funcionalidades puede provocar un mayor tiempo de asimilación, por lo que el problema de la investigación no se resolvería. Otra desventaja que posee es que no se le pueden agregar nuevas funcionalidades, ya que se está desarrollando una herramienta que va a ser integrada a la base técnica de los LVs y en el futuro pudieran desearse otras funcionalidades. Además que esta aplicación es privativa y no es multiplataforma. [8]
- Visual Paradim
Visual Paradigm for UML Professional Edition es una herramienta de casos de uso. Es compatible con todo lo necesario en la identificación y la organización de los requisitos del sistema a través del análisis de casos de uso. Esta herramienta tiene como inconveniente que no permite simular el autómata diseñado por un usuario y por lo tanto no se puede conocer si la máquina de estados funciona correctamente. [9]
- Comparación entre las herramientas existentes
Luego de realizar un estudio de las principales características de cada herramienta (Ver en anexos tabla comparativa), se pudo identificar algunas características comunes, como son:
- Exportar e importar en formato XML.
- Lista infinita de deshacer y rehacer.
- Guardar el diseño como imagen.
- Exportar a código el diagrama diseñado.
- Algunas de estas aplicaciones son multiplataforma
Selección del ambiente de desarrollo
Teniendo presente los problemas detectados en el desarrollo de los laboratorios virtuales que utilicen máquinas de estados se propone desarrollar una herramienta que permita a los desarrolladores realizar un diseño de los autómatas que sean necesarios para luego exportarlo a código fuente C++. A continuación, se presenta el ambiente de desarrollo
...