Universidad Simón Bolívar Dpto. de Computación y Tecnología de la Información CI-2126, Computación II Enero – Marzo 2008 PROYECTO Información general y especificaciones para la 1era entrega 1. Información general 1.1 Descripción general del proyecto Este proyecto consiste en la realización de un programa en Lenguaje C para el manejo de información de sistemas de metro. Esto incluye algunos subsistemas como: información al pasajero, simulación de los procesos de operación y protección de trenes, y cálculo de estadísticas de funcionamiento. La implementación del proyecto estará basada en la utilización de TADs dinámicos y archivos de texto. 1.2 Caracterización de un sistema de metro El metro es un medio de transporte masivo ampliamente usado en las grandes ciudades, brindando importantes beneficios ambientales, económicos y sociales a la población. Para estos medios de transporte, la tecnología informática juega un papel fundamental para garantizar la funcionalidad, seguridad y eficiencia del sistema. Debido a las características geográficas que presenta cada ciudad, cada metro posee una conformación espacial específica. Para conocer diferentes conformaciones de metros, visite algunas páginas web, como por ejemplo: http://es.wikipedia.org/wiki/Metro_de_Caracas, http://www.metromadrid.es/, http://es.wikipedia.org/wiki/Metro_de_la_Ciudad_de_M%C3%A9xico. Los metros http://es.wikipedia.org/wiki/Metro_de_Londres, son sistemas dinámicos que van cambiando a medida que las ciudades se expanden o surgen nuevas necesidades obtenidas a través del cálculo de estadísticas de funcionamiento para mejorar del servicio, como el cierre (temporal o definitivo) o la apertura de una estación o el cierre (temporal) o la apertura de una línea. Un metro está formado por una o varias líneas; y cada línea consiste en una secuencia de estaciones. En una estación pueden conectarse varias líneas. Las unidades (trenes) que trasladan a los pasajeros, por lo general, se dirigen desde la 1era estación (terminal) de una línea hasta la última (terminal), y luego, en dirección contraria, desde la última estación a la 1era. Sin embargo, existen líneas que forman un ciclo completo. Cada línea se identifica por un código, generalmente numérico, aunque algunas líneas corresponden a letras. Cada estación se identifica por un nombre. Existen por lo menos tres tipos de estaciones: de paso, de correspondencia (o transferencia) y terminales. Algunas estaciones son tanto terminales como de correspondencia. Las estaciones denominadas "de correspondencia" pertenecen a dos o más líneas que se cruzan en ese punto determinado. En ellas el usuario puede moverse entre una y otra línea sin necesidad de salir de las instalaciones y adquirir otro boleto. En cuanto a sistemas informáticos de operación y control que suelen estar presentes en metros, los más importantes son del tipo Control supervisor y adquisición de datos (SCADA, Supervisory Control and Data Acquisition). SCADA comprende todas aquellas soluciones de aplicación para referirse a la captura de información de un proceso, para que sea posible realizar una serie de análisis o estudios con los que se pueden obtener valiosos indicadores que permitan una retroalimentación sobre un operador o sobre el propio proceso. Los procesos de supervisión, automatización y control a distancia del equipamiento se realizan mediante el software utilizando Controladores Lógicos Programables (PLCs) como elementos claves para las tareas de automatización. Algunas funciones específicas que permite realizar este tipo de software en un metro son: dirigir trenes en forma automática, despacho de trenes, monitoreo constante de las posiciones de los trenes, activación de sistemas de seguridad, etc. Entre los subsistemas SCADA más importantes que se utilizan en metros, se pueden mencionar los siguientes: a) Sistema de operación automática de trenes (ATO, Automatic Train Operation): permite que los trenes funcionen como si se tratara de un avión que vuela con piloto automático. b) Sistema de protección automática de trenes (ATP, Automatic Train Protection): permite el control de la velocidad máxima de la circulación de los trenes y por tanto protege de forma segura y automática ante un alcance cuando las velocidades son muy excesivas. Esto es, su función básica consiste en impedir de modo automático y continuo que los trenes en circulación pasen señales o superen velocidades no seguras, que se determinan de acuerdo con la vía y las posiciones que los trenes ocupan. Esto se implementa generalmente mediante un sistema de bloqueo por tramos, de manera que debe estar desocupado el tramo entre la señal de partida del tren y la señal siguiente incluyendo el tramo de protección. El sistema ATP está basado en un diálogo constante entre el tren y la vía y, juntamente con el sistema ATO, permite aumentar la frecuencia de paso de los trenes, fijando también la velocidad máxima de los trenes en determinados tramos del recorrido, con las máximas condiciones de seguridad. 1.4 Lineamientos generales del proyecto El proyecto consiste en un trabajo en equipo de 1 ó 2 personas, quienes deberán participar activamente en las distintas etapas de análisis, diseño, implementación, pruebas y documentación del software. El proyecto se realizará en dos partes con sus respectivas entregas. En los laboratorios y prácticas correspondientes a las semanas 8, 9, 10 y 11 usted podrá hacer consultas y recibir sugerencias sobre el avance de su proyecto. Es importante que mantenga un ritmo de trabajo que garantice el cumplimiento del cronograma. Antes de pasar a la 2da entrega asegúrese de haber cubierto todos los objetivos de la 1era entrega. 1.5 Cronograma de trabajo del proyecto El cronograma de actividades del proyecto se muestra a continuación: Actividades Información general del proyecto Especificaciones de 1era entrega 1era entrega (7%) Especificaciones de 2da entrega 2da entrega (8%) 7 8 Semanas 9 10 11 12 Viernes 29/02 Viernes 14/03 Lunes 07/04 2. Especificaciones de la 1era entrega: 2.1 Análisis y Diseño Una vez leído este documento y discutido el problema, el equipo debe preparar un informe impreso con los detalles de diseño de la solución que se propone y entregarlo al Profesor del Laboratorio. El informe de diseño debe contener al menos la siguiente información: 1. Especificaciones deseables para el archivo de trenes, líneas y estaciones de metro que servirá de entrada al programa, es decir, cuál es el formato que debe cumplir cada archivo de acuerdo a la información requerida. Preparar archivos de prueba con la información correspondiente, los cuales serán utilizados posteriormente para probar sus programas. Puede considerar metros construidos o en proyecto de cualquier parte del mundo. 2. Proponga TADs dinámicos para representar trenes, líneas, y metros. Considere tanto los datos que deben almacenarse para cada TAD, como las operaciones primitivas: constructor, destructor, modificadores y observadores. 3. Diseñar el subsistema de información al pasajero, de manera que, dado un metro y dos estaciones, retorne y muestre una lista con el trayecto que debe seguir el usuario para ir de una a la otra. Además, informar el tiempo aproximado que tardará en recorrer este trayecto. Para esto último considere que se conocen tiempos aproximados entre una estación y la siguiente (tomados de estadísticas de funcionamiento ya calculados), y que éstos forman parte de los archivos de entrada que son cargados por el programa. 2.2 Implementación Además del documento de diseño, el equipo debe entregar un programa (y los archivos de prueba) siguiendo las actividades que se presentan a continuación: 1. Escriba en C los archivos necesarios para implementar los TADs diseñados. Recuerde colocar de forma separada las definiciones y los prototipos de las operaciones (archivo.h) de su implementación (archivo.c). 2. Escriba en C, un programa principal que contenga un menú que permita: a. Leer (cargar) el archivo con las líneas y estaciones del metro, almacenando estos datos en las estructuras de datos diseñadas. b. Utilizar el subsistema de información al pasajero, esto es, permitir al usuario la consulta de trayectos y tiempos entre estaciones del metro.