Enunciado

download Enunciado

of 11

Transcript of Enunciado

  • 5/27/2018 Enunciado

    1/11

    !"#$ & !"#'

  • 5/27/2018 Enunciado

    2/11

    "

    !"#$%#&'(%" *& +$,'$%-%.(/0 1 !"#$2.#2$%" *& 3%#,"

    !"#$% '()* + '(),

    !020.(%*, *& 4% +$5.#(.%

    67 80#$,*2..(/0

    La empresa Alloted Parkings, Inc. (conocida como API) est dedicada a gestionar, entre otros, el

    aparcamiento de un conocido centro comercial. El aparcamiento dispone de un total de 6 plantas

    idnticas y cada planta est dividida en 4 secciones nombradas como A, B, C y D respectivamente

    dispuestas en el sentido horario. Adems cada seccin se compone, a su vez, de 4 zonas dispuestas

    de manera semejante a la anterior y numeradas como I, II, III y IV. Finalmente, dentro de cada zona,

    existen un total de 6 plazas dedicadas a estacionar los vehculos de los usuarios del parking. 3 de

    ellas estn pensadas para alojar tan solo coches de tamao familiar mientras que en las otras 3 se

    utilizan para aparcar coches normales. La figura 1 muestra una representacin esquemtica de la

    estructura de una planta cualquiera del parking segn lo descrito.

    Figura 1. Disposicin organizativa de las plazas del parking.

    !

    !!!!#

    !!$

    !#

    !!!!!

    !%

    !!

    !#!

    !!!

    &

    !!!

    !!!

    !#

    '

    $ %

    & '

    !"#$%& (%$)&)%#

    #

    *&%+,%

    -.//)0+

    1"+%

    2+,#%3% 3.

    45/.+5"#.5

  • 5/27/2018 Enunciado

    3/11

    #

    Adicionalmente, como se aprecia en la figura, cada planta dispone de 4 entradas de ascensores

    diferentes para el acceso al centro comercial que se encuentran prximas a cada una de las 4

    secciones de planta. Por su proximidad a dichas secciones identificaremos a cada una de estas

    entradas tambin con los nombres A, B, C y D respectivamente. Dado que las dimensiones de la

    planta son muy grandes y que cada entrada de ascensores dirige a un punto distinto del centro

    comercial (pinsese en Seoras, caballeros, Jvenes, etc.) los clientes que hacen uso del parkingsiempre buscan la plaza libre ms prxima a la entrada de ascensores de su inters segn las

    compras que vayan a realizar y teniendo en cuenta las dimensiones de la plaza y de su propio

    vehculo (slo se distingue entre coche normal o familiar).

    Tras un anlisis riguroso desarrollado por API acerca del uso del parking en das alternos se observa

    una alta ineficacia en el aprovechamiento de las capacidades del parking por parte de los clientes.

    En el estudio se estima que los clientes aparcan ms lejos de lo estrictamente necesario porque no

    se dedican a realizar una bsqueda exhaustiva de la plaza ptima por cada una de las plantas

    (tngase en cuenta que todas las plantas son idnticas y disponen de los mismos 4 tipos de

    entradas). Es entonces cuando se decide instalar un sistema de asistencia automtico que ayude a

    gestionar las plazas del parking. Los requisitos de dicho sistema, cuya construccin ser objeto de

    estudio en esta prctica, se detallan a continuacin.

    97 :42;, *& !0#$%*%

    En el flujo de entrada, los clientes esperan en una cola su turno de acceso al parking controlado por

    una barrera elevadiza automatizada. Las condiciones de espera tienen que ver, naturalmente, con el

    estado de plazas libres que hay en el parking para el tipo de vehculo (normal o familiar) situado en

    la cabeza de la cola. Es decir, el sistema de control del parking detectar automticamente las

    dimensiones del vehculo en cabeza, lo clasificar como normal o familiar y mantendr bajada la

    barrera mientras no existan plazas libres de dicho tamao aunque ello sea en perjuicio de otros

    coches que esperando detrs de ste si tuvieran una plaza libre por tratarse de vehculos de otras

    dimensiones.

    Una vez que se levanta la barrera, el conductor del vehculo en cabeza accede al parking y all

    indica al sistema, a travs de un interfaz de mandos, la matricula del coche, el tiempo exacto de

    permanencia en el parking y la parte del centro comercial a la que se dirige (entrada A, B, C o D).

    Entonces el sistema, localiza dentro del parking la mejor plaza para el vehculo, la marca como

    reservada y emite un ticket para el conductor con la posicin exacta de dicha plaza. Esta posicin

    tiene el siguiente formato:

    {Planta} {Seccin} {Zona} {Plaza}

    Donde planta se refiere al nmero de la planta y es un digito comprendido entre 1 y 6, seccin serefiere al nombre de la seccin dentro de la planta y es una letra comprendida en el rango

    (A,B,C,D), zona es la indicacin de la zona dentro de la seccin y es uno de los 4 identificadores (I,

    II, III, IV) y plaza es un nmero de plaza dentro de la zona comprendido entre los valores 1 y 6. Un

    identificador de posicin correcto sera, por ejemplo, 5-B-IV-3.

    Los criterios para seleccionar, dentro del proceso de bsqueda, la mejor plaza se establecen en

    trminos de la proximidad relativa de la misma a la entrada objetivo. Dicho proceso puede

    describirse de la siguiente forma:

    1. Determinacin de Planta. El algoritmo debe recorrer la coleccin de plantas y encontrarpara cada una de ellas la mejor solucin entendiendo que sta es la plaza de menordistancia a la entrada objetivo dentro de dicha planta. Obtenida as una coleccin de

    soluciones de tamao comprendido entre 0 (ninguna planta tiene plaza) y 6 (todas tienen

  • 5/27/2018 Enunciado

    4/11

    $

    una plaza libre candidata) se debe devolver aquella plaza de la coleccin de soluciones

    cuya distancia a la entrada objetivo sea menor. Y ante varias plazas de igual distancia

    dentro de la coleccin de soluciones aquella que se encuentre en un nmero de planta

    menor.

    2. Determinacin de Seccin. Para encontrar la mejor solucin dentro de una planta se debedeterminar, en primer lugar, la seccin ms prxima a la entrada objetivo con plazasdisponibles del tamao adecuado al tipo de vehculo. Los criterios de proximidad aqu se

    establecen en trminos de vecindad entre secciones donde cada seccin tiene 2 secciones

    vecinas a distancia 1 y una seccin a distancia 2. As, por ejemplo, si un cliente desea

    acceder a la entrada A, primero debera intentar encontrarse una solucin dentro de la

    seccin A. Si dicha seccin no tiene plazas libres, se buscara en las secciones vecinas a

    distancia 1 de A ordenadas de acuerdo a su orden lexicogrfico. Esto es, en las secciones B

    y C respectivamente. Y finalmente, si ni las secciones B y C disponen de plazas libres, se

    buscara en la zona D que se ubica a distancia 2 de A. Si por el contrario, la entrada

    objetivo es la D, el orden de bsqueda sobre secciones sera primero D, luego A y C y

    finalmente B. Una inspeccin del esquema de planta del parking de la figura 1 hace

    intuitivo este criterio.3. Determinacin de Zona. Para buscar una solucin a nivel de zona se procede de forma

    similar a lo establecido en el punto anterior con respecto a los criterios de proximidad por

    vecindad aplicados en esta ocasin entre zonas. En este caso, como se observa en la figura

    1, las zonas de distancia menor preferente a cualquier entrada son las identificadas como I,

    despus aqullas a distancia de vecindad 1, correspondientes con los identificadores II y IV.

    Y finalmente, aqulla a distancia de vecindad 2 identificada como III. Es decir el orden de

    bsqueda dentro de las 4 zonas que componen una seccin debera ser I, II, IV y III.

    4. Determinacin de Plaza. A efectos de la determinacin del nmero de plaza, se entenderque de las 6 plazas que conforman una zona, con numeracin correlativa de 1 a 6, aquellas

    con nmero par corresponden a vehculos normales mientras que las de numeracin impar

    corresponden a vehculos familiares siendo totalmente incompatibles entre s. Es decir, a uncoche normal no se le puede asignar una plaza familiar y recprocamente. El criterio de

    ordenacin en este ltimo paso consiste siempre en devolver el nmero de plaza menor,

    par o impar segn corresponda al tipo de vehculo.

    Una vez que un conductor dispone de un ticket con la informacin exacta hacia la posicin donde

    debe dirigirse dentro del parking y que el sistema ha marcado como reservada dicha posicin, el

    cliente se dirige a ella y hace uso de la plaza exactamente durante el tiempo que indic en la

    entrada. Es decir, por simplicidad puede asumirse que no se consideran efectos de retraso

    motivados por clientes que se demoran en su tiempo estimado de abandono del parking. Adems

    el proceso de estacionamiento del vehculo desde que el cliente recibe el ticket hasta que aparca

    se considera ajeno al sistema y por tanto su tiempo es despreciable.

  • 5/27/2018 Enunciado

    5/11

    %

    cola de salida. Dado que en un momento determinado se pueden detectar una coleccin de

    vehculos con intencin de abandonar el parking, es preciso establecer unos criterios exactos que

    indiquen el orden en que stos deben ser encolados. A continuacin describimos dichos criterios:

    1. Salida de Planta. La coleccin de vehculos saliente debe ser en primer lugar ordenada enfuncin del nmero de planta que ocup el vehculo durante su estacionamiento. As porejemplo, todos los vehculos salientes con plaza en la planta 3 debern ir encolados

    estrictamente antes de los vehculos con plaza en las plantas inferiores (4, 5, o 6) y

    estrictamente despus de aquellos con plaza en plantas superiores (1 y 2).

    2. Salida de Seccin. A igualdad del nmero de planta entre varios coches salientes seaplicar de forma prioritaria el criterio de orden de la seccin de planta donde se estacion

    cada vehculo. De esta forma, los coches de una misma planta que ocuparon la seccin A

    deben ir encolados estrictamente antes que los que ocuparon las secciones B, C y D

    respectivamente y por este orden.

    3. Salida de Zona. A igualdad del orden de seccin y planta se aplicar, en tercer lugar, elcriterio de orden de la zona donde se estacion cada vehculo. Los coches de una misma

    planta y seccin que ocuparon la zona I se encolarn estrictamente antes que los queocuparon las zonas II, III y IV respectivamente.

    4. Salida de Plaza. Finalmente, igualdad del orden en el nmero de planta, seccin y zona seaplicar,, el criterio de orden de la plaza ocupada. Ello indica que los vehculos de una

    misma planta, seccin y zona que ocuparon plazas de numeracin inferior a otros deben

    posicionarse estrictamente antes en la cola de salida.

    >7 >,0#$,4 *& :42;,"

    De la descripcin de los dos flujos de trabajo anteriores se desprende un necesidad de

    coordinacin motivada por el hecho de que el acceso de entrada y salida es compartido (Ver figura

    2). Esta coordinacin dara la oportunidad de establecer unas polticas de gestin de turnos tanto a

    la entrada como a la salida potencialmente configurables y variantes en funcin de la longitud de

    ambas colas de espera y del estado de llenado del parking.

    Figura 2. Estructura de barreras de acceso al parking.

    De acuerdo a lo anterior puede describirse el flujo completo de procesamiento de accesos de

    entrada y salida al parking que debe hacer el sistema a partir de la secuencia de pasos siguiente.

    Este proceso de trabajo se articula en un ciclo iterativo permanente mientras dure el tiempo de vida

    del parking.

    !"#$ &' '()*$&$

    !"#$ &' +$#,&$

    -$**'*$ &' '()*$&$

    -$**'*$ &' +$#,&$

    .,+/'(+$&"* &' 0,12')+

    3'4516#" '()*$()'

  • 5/27/2018 Enunciado

    6/11

    &

    1. Gestin del flujo de entrada. En primer lugar, el sistema detecta si existen cochesesperando en la cola de entrada. Si existen, analiza el tamao del vehculo en cabeza, lo

    clasifica como normal o familiar y comprueba si hay una plaza libre para l antes de

    levantar la barrera. Si es as, el sistema levanta la barrera dejando pasar al coche en cabeza,

    solicita al conductor los datos de entrada (matricula, tiempo exacto de permanencia y

    entrada objetivo), busca a partir de ellos la mejor plaza para el vehculo, genera un ticket,reserva la plaza de acuerdo a lo descrito en el flujo del apartado A y salta al paso 2. Por

    otro lado, tanto si no existen coches en la cola de entrada como si no hay plazas

    disponibles para el vehculo en cabeza, el algoritmo salta al paso 2.

    2. Gestin de flujo de salida. El sistema detecta los coches dentro del parking que hanagotado su tiempo de permanencia y los encola en la cola de salida de acuerdo al flujo de

    trabajo descrito en el apartado B. Despus, si existen coches en la cola de salida permite la

    salida del primero. Para cerrar el ciclo, se retorna al paso 1.

    ?7 9$@2(#&.#2$% *&4 =("#&-%

    El sistema de gestin de plazas de parking que se propone desarrollar en esta prctica gira entorno a un ecosistema de artefactos que queda representado por cada una de las abstracciones

    que aparecen en el diagrama de clases de la figura 3. De todas ellas, la entidad central es la

    representada por la clase ParkingDispatcherque dispone del mtodo main necesario para arrancar

    el sistema. Cuando se arranca, esta clase invoca a init y genera con nimo simulativo una coleccin

    de vehculos aleatoria invocando iterativamente a los mtodos que a tal efecto dispone la clase

    VehicleGenerator. Cada llamada invoca al constructor de la clase Vehicle con unos parmetros

    reales de valor aleatorio sobre el nmero de matricula, tipo de vehculo y puerta de acceso

    objetivo. La clase ParkingDispatcher recoger estos vehculos y los encolar consecutivamente en la

    cola de entrada asociada a dicha clase representada por el artefacto VehicleQueue.

    Figura 3. Diagrama de clases del sistema de gestin del parking.

    !"#$%&"

    ! #$%&' () * +$%&' (,')

    ! #$%-./$ () * +$%-./$ (%./$)

    ! #$%01%$ () * +$%01%$ (#1%$)

    ! #$%2345 () * +$%2345 (6345)

    ()*+$,- .$/0)1%#"*!"#$

    ! 73,' ,8,% (8)

    ! 73,' ',+/1%96 ()

    !"#$%&" 23"3"

    ! 73,' 1'':$6,9;$ (7)

    ! :$6,9;$ #$%:$6,9;$ ()

    ! ,8#?/19$ #$%?/19$ (%./$)

    ! ,8#?/19$K #$%N$O% ()

    !

  • 5/27/2018 Enunciado

    7/11

    '

    Superado este proceso de inicializacin, la clase ParkingDispatcher pasa a ejecutar el mtodo de

    dispatch (), responsable de iterar los vehculos de la cola de entrada hasta que sta quede vaca y

    articulando el proceso de control de flujos que se describi en el apartado C de la introduccin.

    Por su parte, se puede observar que el ParkingDispatcher est conectado con la clase Parking, que

    es la responsable de mantener todas las estructuras de control que gestionan el aparcamiento. Esta

    clase dispone de mtodos para encontrar una plaza para un determinado tipo de vehculo

    getSpace (type) as como para averiguar gilmente si existen plazas disponibles de un

    determinado tipo hasSpace (type). Para gestionar esto ltimo, la clase Parking delega en la

    abstraccin ParkingState, que mantiene en todo momento el nmero de plazas libres dentro del

    aparcamiento para cada tipo de vehculo getSpaces (type) as como informa de si existen plazas

    libres de cada tipo hasSpaces (type).

    La clase Parking tambin se conecta con una agregacin de elementos de parking que quedan, en

    trminos abstractos, representados por la interfaz ParkingElement. De acuerdo a la descripcin del

    enunciado, ser necesario distinguir entre plantas, secciones, zonas, y plazas del parking que se

    representan respectivamente a travs de las clases ParkingFloor, ParkingSection, ParkingAreay

    ParkingSpace. Como puede apreciarse, cada una de estas clases dispone de mtodos propios

    que ofrecen informacin respectiva al nmero de planta, nombre de seccin, identificador de zona

    y nmero de plaza respectivamente. Adems, en el caso de la plaza existen mtodos para alojar,

    consultar o liberar un determinado vehculo de dicha plaza.

    Si se observa la anotacin sobre el diagrama de la figura, los elementos de parking se agregan de

    acuerdo a una estructura de rbol general que responde a la organizacin descrita en el enunciado.

    El nodo raz de dicho rbol no tiene una semntica particular. De ste nacen 6 hijos que alojan

    entidades de tipo ParkingFloor y que representan cada una de las plantas. De cada uno de estos

    nodos nacen 4 nodos hijos que contienen elementos de tipo ParkingSection para representar las 4secciones que existen por planta (A,B,C y D). De cada uno de estos nodos, a su vez, salen 4 hijos

    que albergan elementos de tipo ParkingArea para representar los 4 tipos de zonas por seccin (I, II,

    III y IV) y finalmente de estos nodos cuelgan 6 nodos hoja que se corresponden con cada una de las

    6 plazas de una zona. Esta disposicin estructural debe ser garantizada por construccin durante el

    proceso de arranque del sistema que realiza el mtodo init () de la clase ParkingDispatcher.

    Ntese adems que cada uno de los 4 tipos de elementos de parking que gestiona el sistema estn

    obligados a implementar, por contrato, un mtodo getIterator () que devuelva un iterador propio

    sobre los hijos de cada nodo. La responsabilidad de estos iteradores es encapsular la lgica de

    recorrido que es necesaria sobre cada tipo de nodo para realizar el proceso de bsqueda. As el

    iterador del nodo raz debe iterar linealmente sobre cada uno de los 6 nodos de planta, cadaiterador de planta sobre las secciones hijas en el orden alterno de bsqueda establecido en el

    enunciado y de forma similar para los iteradores de zona. Los iteradores de plaza no tienen sentido,

    en tanto que stas son nodos hojas. Por tanto puede suponerse que una implementacin adecuada

    de su iterador es devolver siempre false en su mtodo hasNext ().

    Finalmente, existe el artefacto representado por la clase ParkingScheduler, cuya misin es la de

    gestionar gilmente el tiempo de permanencia de los vehculos dentro del parking. En concreto,

    esta clase se invoca una vez en cada iteracin dentro del proceso representado por el mtodo

    dispatch y le sirve al sistema para conocer la coleccin de coches que deben abandonar el parking

    encolndose en la cola de salida y las plazas que de esta forma quedarn vacantes. El diseo e

    implementacin de esta estructura de datos queda a la eleccin del estudiante. No obstante,

    tngase en cuenta que en ningn caso se considerarn aceptables soluciones que pasen por

    recorrer la estructura jerrquica del parking discutida anteriormente.

  • 5/27/2018 Enunciado

    8/11

    (

    A7 3&".$(B.(/0 *&4 C$%D%;,

    Con el nimo de acercar al alumno al desarrollo de la prctica de forma progresiva y ordenada, a lo

    largo de esta seccin se proponen una coleccin de tareas que se invita a seguir de forma

    secuencial, si bien cualquier otro orden de desarrollo es igualmente satisfactorio.

    1. Clase Vehicle. Implemente la clase para vehculos incluyendo un constructor de 4parmetros que representen respectivamente la matricula (id) el tipo (type), la puerta

    objetivo y la cantidad exacta de horas de permanencia en el parking (hours). Defnanse

    estos tres atributos como privados e implemntese mtodos de acceso y modificacin

    get/set para cada uno de ellos. Incluya adems los mtodos hashcode, equals y toString

    que toda clase de tipo entidad debe tener. Tenga en cuenta que de forma preliminar

    necesitar declarar un par de tipos enumerado TTypey TGate para representar los tipos

    de vehculos (Normal, Familiar) y puertas (A,B,C,D).

    2. Clase VehicleGenerator. Implemente la clase generadora de vehculos. Esta clase debeestar formada por un constructor que reciba como nico argumento un valor entero para

    utilizar como semilla en los procesos de construccin de vehculos con atributos aleatorios.Implemente tres mtodos privados nextId (), nextType () y nextGate () y nextHours () que

    tomando como punto de partida el valor de seed generen valores aleatorios de matricula,

    tipo y puerta respectivamente. Implemente el mtodo generate () que haciendo uso de los

    tres mtodos anteriores construya un nuevo vehculo de valores aleatorio. Como nota

    orientativa se informa al alumno que la clase Math.Random permite obtener nmeros

    aleatorios a partir de una semilla pasada como parmetro en su constructor.

    3. Clase VehicleQueue. Implemente la clase cola de vehculos. Esta clase puede serdirectamente una implementacin de la interfaz QueueIF concretada para la clase

    vehculo, segn se describe en el material de la asignatura, o, preferentemente, una clase

    que encapsule un atributo de tipo cola concretando el tipo paramtrico en objetos de la

    clase Vehicle. En cualquiera de ambos casos este artefacto debe tener mtodos para lainsercin, borrado y consulta de elementos sobre la coleccin.

    4. Clase ParkingState. Implemente la clase ParkingState incluyendo un constructor quereciba como nico parmetro el nmero total de plazas de cada tipo dentro del parking.

    Incluya dos atributos privados que mantengan en cada momento el nmero de plazas de

    cada tipo. Para cada atributo defina mtodos de acceso y consulta getSpaces (type) /

    hasSpaces (type) y mtodos de incremento y decremento para mantener vigentes sus

    valores en todo momento incSpace (type) / decSpace (type).

    5. Interfaz ParkingElement. Defina la interfaz ParkingElement incluyendo como nicomtodo getIterator, encargado de devolver un artefacto de la clase

    IteratorIF.

    6. Clases ParkingFloor, ParkingSection, ParkingArea y ParkingSpace. Codifique cada unade las clases que implementan la interfaz ParkingElement. Para cada una de ellas incluya un

    constructor que reciba como argumento el tipo de dato pertinente para representar la

    informacin de dicho tipo de elemento (nmero de planta, nombre de seccin,

    identificador de zona o nmero de plaza). Implemente los mtodos de acceso,

    modificacin y consulta que en cada caso se incluyen en la figura. No olvide agregar

    adems los mtodos hashcode, equals y toString que convenientemente incluyen todas las

    clases de tipo entidad.

    7. Clase Parking. Implemente la clase Parking. El constructor sin argumentos debe crear unejemplar de la clase ParkingState configurado con tantas plazas totales de cada tipo como

    disponga el parking (6 x 4 x 4 x 3). Asimismo debe construir una estructura jerrquica detipo TreeIF de acuerdo a la estructuracin de plantas secciones, zonas

  • 5/27/2018 Enunciado

    9/11

    )

    y plazas que se describi a lo largo del texto. Ambos elementos formarn parte de la clase

    como atributos privados. Haciendo uso de los iteradores definidos sobre los elementos de

    tipo ParkingElement y de acuerdo a su disposicin jerrquica, implemente el mtodos de

    bsqueda de la mejor plaza getSpace (type) para cada tipo de vehculo. Para ello siga

    las directrices indicadas en el flujo de entrada de vehculos descrito en la seccin A de la

    introduccin. Igualmente, implemente el mtodo de consulta de plazas libres hasSpace(type) que permitir a la clase ParkingDispatcher conocer en todo momento la disposicin

    de plazas de parking para cada tipo de vehculo. Para su implementacin haga uso de las

    facilidades proporcionadas por la clase ParkingState.

    8. Clase ParkingDispatcher. Implemente la clase ParkingDispatcher. Implemente el mtodoinit (n, s). Este mtodo debe instanciar un ejemplar de la clase VehicleGenerator y utilizar

    dicho objeto para generar tantos vehculos aleatorios como indique el parmetro n del

    mtodo que se irn encolando en la cola de entrada. La semilla de generacin que se debe

    proporcionar al generador de Vehculos en su instanciacin corresponde con el otro

    parmetro, s, del mtodo init. Implemente el mtodo dispatch partiendo del estado de las

    colas de entrada y salida y de acuerdo a lo descrito en el apartado C de la introduccin.

    Implemente el mtodo main en esta clase. Dicho mtodo debe leer como argumentos(String args[]) de la lnea de comandos primero el nmero de vehculos a generar y despus

    el valor de la semilla generadora. El mtodo main debe invocar primero a init, con los

    parmetros recibidos en lnea de comandos (n y s) y despus llamar al mtodo dispatch.

    9. Clase ParkingScheduler. Disee e Implemente la clase ParkingScheduler de acuerdo a lasprescripciones del enunciado e incluyendo al menos los mtodos que se prescriben en el

    diagrama de la figura 3.

    E7 !F%42%.(/0 *& 4% +$%.#(.%

    A lo largo de esta ltima seccin se expone toda la informacin relativa al proceso de evaluacin al

    que ser sometido la practica. En concreto se describe en las secciones subsiguientes lascondiciones mnimas que debe satisfacer el cdigo para poder ser evaluado, as como la forma y

    fecha de entrega y los criterios de evaluacin que sers aplicados durante la correccin.

    97 >,0*(.(,0&" *& !0#$&'%

    Para facilitar los procesos de evaluacin de la prctica se requiere a los estudiantes que se aseguren

    de forma previa a la entrega, de que su cdigo cumple con las siguientes condiciones mnimas

    particulares que se exponen a continuacin:

    1. Mensaje de Entrada. Cada vez que un nuevo vehculo entrante ingresa al parking, y unavez que se ha procesado dicho ingreso de acuerdo a lo establecido en el enunciado, el

    sistema deber imprimir por la salida estndar (la consola) un mensaje con el siguiente

    formato:

    ENTRA: {Id} {Tipo} {Puerta} {Horas} {Planta} {Seccin} {Zona} {Plaza}

    Donde los cuatro primeros elementos corresponden a los parmetros caractersticos del

    vehculo y los cuatro segundos son los correspondientes a la plaza que ocupa dentro del

    parking. Entindase que las llaves no aparecern en estos mensajes, que detrs de la

    cadena ENTRA aparece el carcter dos puntos (:) seguido de un espacio en blanco, que

    cada dato viene separado de un guion rodeado por delante y detrs de sendos caracteres

    en blanco y tras el dato de la plaza no aparece ningn carcter ni espacio en blanco

    adicional, sino tan slo el salto de lnea que, de forma automtica, genera la instruccinprintln de Java.

  • 5/27/2018 Enunciado

    10/11

    *

    2. Mensaje de Salida. De forma similar una vez que un coche saliente haya sidocompletamente procesado y se disponga a abandonar la cola de salida del parking el

    sistema debe imprimir por la salida estndar un mensaje con formato similar al anterior. Las

    explicaciones precedentes relativas al formato de mensaje entrante son tambin aplicables

    a este tipo de mensajes:

    SALE: {Id} {Tipo} {Puerta} {Horas}

    3. Arquitectura. En trminos generales, la prctica debe respetar de manera estricta elmodelo de clases prescrito en la arquitectura del sistema. No obstante, es especialmente

    importante, de cara a facilitar el proceso de automatizacin de las correcciones, garantizar

    las siguientes restricciones estructurales:

    a. Sobre VehicleGenerator. La clase generadora de vehculos debe ser nombradacomo VehicleGenerator y debe constar de un nico mtodo constructor pblico

    con un parmetro para inyectar la semilla de aleatoriedad. Asimismo, el nico

    mtodo pblico que incluya esta clase debe ser el mtodo generate () que

    devolver un objeto aleatorio de la clase Vehicle.b. Sobre Vehicle. La clase vehculo debe ser nombrada con el nombre Vehicle. Su

    nico constructor debe recibir, en este orden, los cuatro parmetros caractersticos

    siguientes: id, type, gate y hours, que corresponden a un nmero de matricula,

    tipo de vehculo, puerta de entrada y hora. Para cada uno de sus 4 parmetros

    deben definirse mtodos de acceso y modificacin pblicos get/set y en particular

    el tipo sobre el parmetro gate y type debe usar sendos tipos enumerados para

    representar el tipo de puerta y vehculo cuyos nombres deben ser TGate (con

    etiquetas A, B, C, y D) y TType (con etiquetas Normal y Familiar).

    c. Sobre VehicleDispatcher. La clase VehcleDispatcher debe ser la nica quedisponga de un mtodo main de arranque y debe seguir las restricciones sobre los

    parmetros de configuracin por lnea de comandos que se describieron con

    anterioridad.

    d. Sobre la Organizacin. Todas las clases de la prctica deben ser incluidas en elpaquete eped.parking. Adicionalmente puede incluirse un subpaquete tads para

    incluir las implementaciones necesarias de los tipos abstractos de datos

    implementados

  • 5/27/2018 Enunciado

    11/11

    "+

    4. Entrega tanto del cuadernillo del estudiante como del cdigo al Tutor, que ser elencargado de evaluar la prctica, en la forma y tiempo que ste estime oportuno segn el

    calendario marcado por l mismo.

    5. Entrega del cdigo al Equipo Docente mediante el entorno virtual. La tarea de entregadentro del entorno ser habilitada das prximos a la fecha final de entrega que ser el

    prximo da 20 de Junio de 2014 para la convocatoria de Junio y el da 15 deSeptiembre de 2014para la correspondiente a Septiembre.

    >7 >$(#&$(," *& !F%42%.(/0

    Segn aparece publicado en la normativa de la asignatura la evaluacin de la prctica supone un 20

    % sobre el total de la nota final. Es decir, la nota del examen se pondera en rango [0...10] al 80% y

    la de esta prctica en rango [0...10] al 20% de manera que: NotaFinal = 0,8 !NotaExamen + 0,2 !

    NotaPrctica

    Lo que se describe a continuacin es cmo se computa el valor de NotaPrctica a partir del

    resultado de los pasos de evaluacin descritos en la subseccin 5.1. Describiremos los factores que

    intervienen en la calificacin de forma aislada:

    1. Sesin de control [SC]. Para aprobar la sesin de control nicamente es necesario que elTutor registre la asistencia del alumno. Recomendamos que el alumno se asegure de este

    hecho ya que de no figurar como presentado en la misma, la prctica estar suspensa. De

    cara al cmputo numrico, considere que esta calificacin es 1 en caso de asistencia y 0 en

    caso contrario. El Centro slo tiene obligacin de celebrar una sesin para cada grupo de

    alumnos en los que divida sus matriculados y por cada curso acadmico.

    2. Cdigo de la prctica [CP], que valorar el Tutor en un rango de 0 a 10 segn los criteriosque prescriba el Equipo Docente.

    3. Cuadernillo del Estudiante [CE], que se puntuar de 0 a 10 de acuerdo a los criterios depuntuacin por pregunta establecidos dentro del propio cuadernillo.

    A partir de esta informacin se pueden describir los criterios que asignan una calificacin final a la

    nota de la prctica por aplicacin de la siguiente frmula, donde deben cumplirse para computar la

    frmula las siguientes restricciones: SC = 1, CP "4, CE "4.

    NotaPrctica = SC !( 0.6 x CP + 0.4 x CE )