METODOLOGÍAS PARA SISTEMAS DE TIEMPO REAL.
Cuando viajamos en un avión
sabemos que el piloto debe solicitar permiso para despegar o para
conocer la ruta que debe seguir, o la altura de vuelo. Todo esto se lo indica
un controlador de vuelo que se ayuda de un sistema informático. ¿Qué pasaría si
hay muchos aviones en vuelo que saturan el sistema informático y el controlador
aéreo tiene que esperar para dar una orden a dos aviones que intentan aterrizar
al mismo tiempo en el mismo aeropuerto?
Desde luego lo mejor es no
estar en esos aviones.
Un sistema informático que
debe captar señales (en este caso del radar y de los sistemas de comunicación
de los aviones) sin perder ninguna y que debe contestar a las mismas antes de
un determinado momento, es un sistema de tiempo real. En estos sistemas
la velocidad de respuesta es fundamental porque el usuario, en este caso
el controlador aéreo y el piloto, no pueden esperar.
No debemos confundir los sistemas
de tiempo real con los sistemas interactivos, en los que hay que responder
lo más rápido posible al usuario pero no hay riesgo de perder señales o datos a
la entrada, ni un límite de tiempo en la respuesta.
• Por ejemplo,
un sistema interactivo que controla las operaciones de venta en un supermercado
interesa que responda rápido, pero si tarda, el único problema es que hay que
esperar. No perderemos datos porque no habrá otra venta hasta que termine la anterior,
y no hay un límite de tiempo porque el cliente puede esperar. Esto es un
inconveniente pero no un problema crítico como un accidente aéreo.
• Otro ejemplo
sería un sistema que controle las máquinas de una fábrica donde las tareas
deben sincronizarse perfectamente.
Para desarrollar estos sistemas
será necesario disponer de metodologías de desarrollo del software que permitan
especificar este tipo de situaciones de tiempo real y las posibles soluciones.
¿Qué incluirán estas metodologías? Deberán establecer mecanismos para modelar
sistemas que:
• Controlen
la comunicación y sincronización entre tareas.
• Gestionen
los procesos concurrentes que se ejecutan en paralelo.
• Respondan
ante eventos externos como puede ser una nueva señal.
• Reciban
datos y señales continuas que no pueden perderse.
• Interrumpan
los procesos para pasar a otra acción: por ejemplo al producirse
una señal de alarma.
Para enfrentarse a estos
sistemas las metodologías de desarrollo tradicionales evolucionaron para adaptarse.
Así por ejemplo, tenemos la metodología de Hatley y Pirbhay (1987) que es una
ampliación de la metodología estructurada de Yourdon/Constantine que ya vimos.
También hay una evolución de las metodologías orientadas a objetos para
desarrollos de sistemas de tiempo real, como la extensión de
UML realizada por Douglass
No hay comentarios:
Publicar un comentario