Programación dirigida por eventos

98 views
Skip to first unread message

Leandro Francucci

unread,
May 14, 2012, 9:05:22 PM5/14/12
to embeb...@googlegroups.com
Estimados,

Probablemente gran parte del software que desarrollamos para los embedded systems tenga que lidiar con la ocurrencia de eventos y como consecuencia, con las acciones a ejecutar ante estos, en un determinado contexto.

En este tipo de sistemas, es común describir su comportamiento por medio de frases como: “cuando se recibe una falla de energía en modo de operación normal, si el sistema de comunicaciones está activo, se cambia a modo falla activando los mecanismos de protección y enviando dicha falla al sistema de control” o “al perder registro con la celda GSM en modo comunicación de voz, se activa tono de ocupado y se cambia al estado de falla de red”.

Las máquinas de estados finitos y sus correspondientes diagramas de estados son el mecanismo formal y natural para reunir estos fragmentos en un todo, logrando que el manejo de eventos sea explícitamente dependiente tanto de la naturaleza del evento como así también del contexto (estado) del sistema. Estos conceptos forman parte de lo que se denomina programación dirigida por eventos.

Ahora, si a las máquinas de estados tradicionales (Mealy/Moore) le aplicamos los conceptos y técnicas modernas como Statechart probablemente desarrollemos software más sólido, eficiente y mantenible.

Una de las herramientas que permite aplicar estos y otros conceptos es el framework RKH, el cual facilita la modelización de los sistemas reactivos manteniendo una  implementación sólida y eficiente. En términos generales, RKH ha sido diseñado desde su origen para utilizarse en plataformas de 8-bits pero a su vez puede adaptarse fácilmente a plataformas de 16 y 32-bits.

Les dejo un ejemplo como para que evaluen la representación de un diagrama de estados mediante RKH: aquí. También desde sourceforge pueden descargarla y acceder a su manual de referencia.

Aguardo sus comentarios y opiniones no sólo de la herramienta sino de su experiencia en estos temas.
Saludos!

Javier Jorge

unread,
May 19, 2012, 12:19:26 PM5/19/12
to embeb...@googlegroups.com
Solo le di un vistaso muy rápido y me pareció una herramienta muy completa.

Sin lugar a dudas los diagramas de estado son el método mas prácico para formalizar la interación de un trozo de software. Dependiendo de la herramienta nos permite identificar posibles problemas de concurrencia, interbloqueos e inhanición.

 Debemos tener en cuenta que dependiendo de la herramienta que utilicemos para plasmar nuestro modelo y sus capacidades de inferencia y ejecución, puede que nuestra experiencia trabajando con ellas sea fructifera o una frustración.

Revisando un poco que es lo que hay en el mercado hoy encontré http://www.state-machine.com/ que me dio la impresion de que estaba un poco mas pulido, incluye una gui para modelar, te genera codigo c / c++ y ademas es multiplataforma.

Por otroa lado no quiero dejar de mencionar Qt, como muchos saben, este  es un framework muy utilizado por su portabilidad y funcionalidad. Qt posee un framework específico para maquinas de estado.Aqui hay unas slides muy copadas que explican un poco el tema http://www.slideshare.net/qtbynokia/qt-state-machine-framework.

Muy interesante el topico del mail  !


Saludos
Ing. Javier Alejandro Jorge
INTI Córdoba

2012/5/14 Leandro Francucci <francu...@gmail.com>
-- Recibiste este mensaje porque estás suscripto al Grupo Google Embebidos32. Para postear en este grupo, escribe un email a embeb...@googlegroups.com. Para des-suscribirte, envía un email a embebidos32...@googlegroups.com. Para más opciones, visita el sitio del grupo en https://groups.google.com/d/forum/embebidos32?hl=es

Reply all
Reply to author
Forward
0 new messages