lunes, 7 de diciembre de 2015

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