Laboratorio de Programación

Laboratorio de Programación Proyecto 4 Simulador de un Aeropuerto basado en Eventos Dpto. de Ingeniería de Sistemas Telemáticos http://www.lab.dit.up

6 downloads 90 Views 383KB Size

Story Transcript

Laboratorio de Programación

Proyecto 4 Simulador de un Aeropuerto basado en Eventos Dpto. de Ingeniería de Sistemas Telemáticos http://www.lab.dit.upm.es/~lprg/ Abril 2008

Proyecto 4

1

Objetivos z Se cubren los siguientes aspectos: „

Pruebas funcionales con JUnit

„

Trazas de ejecución

„

Entrada/salida de ficheros

„

Elementos de programación en Java

„

Estilo de codificación

„

Documentación de programas con javadoc

Abril 2008

Proyecto 4

2

Simulación basada en eventos z Evento = suceso que ocurre en un instante en el tiempo z Ejemplos de eventos: „

Un avión solicita permiso para aterrizar

„

Un avión “toca tierra” tras una maniobra de aterrizaje

„

Un avión solicita permiso para despegar

„

Un avión finaliza una maniobra de despegue

z Simulador basado en eventos = aquel que se “mueve” con eventos (es

decir, “a saltos”) z En el proyecto p4 desarrollaremos un simulador basado en eventos para un

aeropuerto. Podremos medir resultados estadísticos resultantes para distintas combinaciones de parámetros de entrada. Abril 2008

Proyecto 4

3

Lógica del simulador Llegada de aeronave

Asistencia en tierra

Intento de aterrizaje

Intento de despegue

Actividad Evento

Decisión Reintento de aterrizaje

Reintento de despegue

Pista libre? No



Sí Utilización de pista

Utilización de pista

Demora aleatoria

No Demora aleatoria

Fin de aterrizaje

Fin de despegue

Si intento/reintento de aterrizaje: 4Si hay pista libre, se ocupa una, y se genera un nuevo evento de fin de aterrizaje 4Si todas las pistas ocupadas, se genera un nuevo evento de reintento de aterrizaje Si fin de aterrizaje: 4Se libera una pista y se genera un nuevo evento de intento de despegue

Abril 2008

Pista libre?

Si intento/reintento de despegue: 4Si hay pista libre, se ocupa una, y se genera un nuevo evento de fin de despegue 4Si todas las pistas ocupadas, se genera un nuevo evento de reintento de despegue Si fin de aterrizaje: 4Se libera una pista

Proyecto 4

4

Interface Evento

Abril 2008

Proyecto 4

5

Class EventoAeroportuario z EventoAeroportuario implementa la interfaz Evento z + atributos específicos: „ TipoOperacion: ATERRIZAJE, DESPEGUE „ EstadoOperacion: INTENTO, REINTENTO, FIN z + factorías para nuevos eventos (relacionados con uno):

Fin de aterrizaje

Fin de despegue

Intento de aterrizaje

Reintento de aterrizaje

Reintento de despegue

Intento de despegue

Abril 2008

Proyecto 4

6

Class Generador z Usado por las factorías de EventoAeroportuario z Permite simular la duración aleatoria de las actividades del aeropuerto

(entre eventos relacionados): Intento de aterrizaje

Abril 2008

demoraReintento()

Reintento aterrizaje/ despegue

Fin de aterrizaje

duracionEnTierra()

Intento de despegue

Intento de aterrizaje

entreLlegadas()

Pista libre?

No

Intento de aterrizaje

Proyecto 4

7

Class Parametros z Permite modificar en tiempo de ejecución las características de

la simulacion. z Debe leer un fichero de configuración “parametros.ini”: ################################################### # parámetros del aeropuerto ####################### ################################################### # numero total de pistas numero.pistas = 2 # duracion del slot aeroportuario (en segundos) duracion.slot = 120 ################################################### # parámetros de generador de números aleatorios ### ################################################### # generacion de números aleatorios semilla = 1 # frecuencia de llegada de aeronaves (llegadas por minuto) frecuencia.llegadas= 0.5 # duración de asistencia en tierra en segundos duracion.media= 600 duracion.desviacion = 200 duracion.minima= 100 # demora para reintentar solicitud de pista en segundos demora.media= 60 demora.desviacion = 10 Abril 2008

Proyecto 4

8

Class Controlador z Controla la asignación y liberación de pistas

en el aeropuerto:

Abril 2008

Proyecto 4

9

Class Estadistica z Se utiliza desde el Controlador z Registra la ocurrencia de los eventos y calcula

resultados estadísticos:

… Abril 2008

Proyecto 4

10

Class Simulador z Implementa el bucle de simulación y la lógica:

Abril 2008

Proyecto 4

11

Simulador.simulaBucle() z Implementa el bucle de simulación y la lógica: Crea una ColaEventos vacía miEvento = nuevo evento aeroportuario de intento de aterrizaje [Bucle de iteración] MIENTRAS miEvento.getCuando()

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.