Descargar - Cupi2 - Universidad de los Andes

Anuncio
Universidad de los Andes
Ingeniería de Sistemas y Computación
ISIS1206 - Estructuras de Datos
Hoja de Trabajo: Transmilenio
Cupi2
Objetivos

Crear habilidades básicas para diseñar una estructura de datos que permita implementar una contenedora de
acceso directo.

Utilizar el diseño de estructuras de datos para la solución de un problema
Enunciado
El sistema de Transmilenio necesita un sistema para monitorear el funcionamiento del mismo. Así, necesita una
aplicación que lleve el registro de los buses articulados, las rutas posibles, las estaciones existentes y el número de
personas que entran y salen del sistema Transmilenio. Con esta información, la aplicación debe poder generar
estadísticas que permitan a la organización mejorar su servicio, e inclusive, llegar a predecir los tiempos de llegada de
los buses a las estaciones.
En el sistema Transmilenio, cada bus articulado tiene un identificador (su placa) y el número de personas que puede
llevar. Por otro lado, una ruta es un conjunto de estaciones, caracterizada por un origen, un destino, un identificador,
unos buses asignados y un tiempo promedio, el cual es el tiempo promedio que demora un bus articulado en recorrer
la ruta completa. La ruta tiene un solo sentido y pueden existir cuantas rutas sean necesarias. Por último, cada
estación en el sistema tiene un identificador único y debe conocer el promedio de personas que entran y salen tanto
en un día laboral, como en uno no laboral.
Las operaciones críticas del sistema que necesita Transmilenio son:
1: Crear una nueva ruta
2: Determinar si la ruta es congestionada: Una ruta es congestionada si la suma de los promedios de las personas que
entran a las estaciones de una ruta es al menos 2 veces mayor a la suma del número de personas que los buses
asignados de la ruta pueden llevar.
3: Agregar un bus articulado al sistema de Transmilenio
4: Consultar el promedio de personas que entran y salen de una estación en días laborales y no laborales, dado el
identificador de una estación
5: Dada una estación, consultar cuántas rutas pasan por ella
6: Consultar la información de una ruta dado su identificador
7: Consultar la ruta con más buses asignados y la ruta con menos
8: Dada un estación, devolver las estaciones aledañas
9: Devolver un iterador que contenga las rutas ordenadas de la más congestionada a la menos congestionada.
Ejercicio
Para plantear una solución al problema es necesario (1) entender completamente el problema, (2) diseñar las
estructuras de datos necesarias para la solución y (3) plantear la solución utilizando estas estructuras de datos.
1. Análisis: Dibuje el diagrama UML de análisis del problema
2. Diseño de la Solución
a. Declare en java la interface ITransmilenio, definiendo la signatura de cada una de las operaciones.
Haga una breve descripción de cada una de ellas. Utilice genericidad e iteradores en donde sea
necesario.
b. Identifique las estructuras de datos importantes para el problema. Declare en java las interfaces de
cada una de ellas. Utilice genericidad e iteradores en donde sea necesario.
c. Diseñe las estructuras de datos genéricas que se utilizarán en la solución del problema.
d. Diseñe la solución del problema utilizando las estructuras de datos que diseñó en el punto anterior
(para ello utilice las interfaces de las estructuras).
3. Evaluación de la solución: Evalúe la complejidad de cada una de las operaciones expuestas en ITransmilenio.
Justifique su respuesta.
Descargar