Celulares

UNSAM - Algoritmos 1 - TP Integrador 2015 C2


Entrega 1: Objetos


Una compañía telefónica nos pide construir un sistema que modele la interacción de los equipos celulares de sus clientes para mejorar su proceso de facturación y ventas. Para esto, nos proveyeron información de los equipos y planes de venta de los que dispone, sobre los cuales tenemos que poder realizar ciertas consultas.


La compañía ofrece a sus clientes dos tipos de planes para elegir. El plan Silver ofrece 200 minutos para hablar a $2/minuto. Por otro lado, el plan Gold tiene un costo base de $200 y ofrece 300 minutos gratis y, una vez gastados, llamadas sin límite a $1/minuto.


Para cualquiera de estos planes está disponible la siguiente variedad de equipos:

Nexus 6: Este equipo avanzado y flexible está disponible con baterías de 3 celdas (que dura 720 minutos), 6 celdas (que dura 1500 minutos) o 12 celdas (que dura 2000 minutos).

Iphone 8: Es el equipo más caro de todos. Su batería dura 2000 minutos, mientras no se lo use, pero cada vez que se realiza o recibe una llamada la batería se descarga un minuto por cada dos minutos de llamada.

Nokia 1810: Es un modelo viejo, pero rendidor. Su batería dura 72 horas (4320 minutos) sin importar cuanto lo usen.


La empresa también nos hizo saber que cada equipo puede estar asociado a un único plan a la vez, pero es indispensable que el programa permita que cualquier equipo cambie de plan o equipo cuando quiera.


Basándonos en esta información, se pide modelar un programa que permita:

  1. Saber cuánto tiene que pagar a la fecha cierto equipo.

  2. Saber cuántos minutos le quedan a un equipo para hablar (que es el mínimo entre los minutos de llamada que le quedan y los minutos de batería del equipo)

  3. Hacer que un equipo realice una llamada de cierta cantidad de minutos (asumiendo que le alcanzan tanto la batería como los minutos de llamada).


Entrega 2: Colecciones


En esta entrega se pide modificar la solución presentada en la entrega anterior para permitirle al cliente extraer información para mejorar su análisis de mercado.


Para lograr esto es necesario que cada equipo celular guarde un registro de los equipos a los que llamó.


Se pide, además, agregar la posibilidad de realizar las siguientes consultas para cada equipo:


  1. ListaDeContactos: todos los equipos (sin repetidos) a los que un equipo llamó.

  2. MedianaDePago: Promedio de lo que deben pagar los contactos de un equipo.

  3. VaAActualizar: La empresa considera que un equipo va a ser actualizado si toda la gente a la que llamó tiene Iphone.

  4. LlamóA(otroEquipo): Se cumple si el equipo está en la lista de contactos.

  5. PlanesDeContactos: Son los planes, sin repetidos, de todos los teléfonos a los que un equipo llamó.

  6. ContactosTacaños: Los contactos tacaños son aquellos que tienen el plan más barato (tienen que pagar menos) de entre todos los contactos del equipo.


Además de estas consultas, la empresa nos pide que actualicemos la aplicación para incluir su nuevo plan Platinum: Que permite incorporar hasta 5 equipos para llamar grátis y cobra por llamar a los demás $5/minuto.



Entrega 3: Clases


La empresa quiere proveer nuevos servicios además de llamadas telefónicas, para lo cual nos pide actualizar el código para que los equipos puedan realizar las siguientes tareas y almacenar estos datos para procesamiento futuro:


Llamadas: De cada llamada se conoce la duración, la fecha, y el equipo destino. Los costos de las llamadas para cada plan se mantienen igual a lo descripto en las entregas anteriores.


SMS: Cualquier equipo puede enviar un sms a otro. De cada sms se conoce la fecha, el destino y el texto del mensaje. para el plan Platinum, el envío de mensajes es grátis a sus números gratis y a cualquier otro sale $0.05. Para el plan Gold se agrega un recargo de $10 al precio base del plan y los mensajes son grátis. Para el Silver cada mensaje sale $0.01 por cada caracter del texto.


Descargas: Los equipos nuevos (todos menos el Nokia 1810) pueden descargar archivos de internet. De cada uno se sabe el tamaño en Mb y el sitio del cual se descargó. Todos los planes cobran $0.05 por Mb descargado, salvo el Silver, que tiene además un recargo de $1 por archivo.


Se pide también refactorizar la entrega anterior para evitar la repetición de código (Pista: Prestarle especial atención a los distintos equipos) y revisar la delegación de responsabilidades (Ej: Donde debería estar la lista de números grátis del plan Platinum?).



Entrega 4: Herencia


En esta entrega se pide refactorizar el código de las entregas anteriores para minimizar la repetición de lógica y distribuir mejor las responsabilidades, aprovechando la herencia y la sobreescritura de métodos.


Además, aparecen dos nuevos equipos:


Nexus 6 Trucho: Este equipo de segunda es una copia exacta del Nexus 6, pero sus componentes de mala calidad lo hacen mucho menos rendidor: todos los tipos de batería le duran sólo la mitad de minutos que a su contraparte (es decir, la de 3 celdas dura 360 min, la de 6, 750 y la de 12 celdas 1000.


Iphone 9: Es el equipo no tiene nada nuevo pero, cómo está de moda, le cobran todos los planes 10% más caro.


Modelar estos equipos teniendo cuidado de no repetir código siempre que sea posible.