El sistema software simula el comportamiento de una central de mensajería de telefonía móvil. Este sistema permite a sus afiliados el intercambio de mensajes a través de teléfonos móviles, además de otras funciones como las de consultar el saldo, recargar su saldo, etc. La funcionalidad de este sistema básicamente es la siguiente: un usuario debe darse de alta en el sistema mediante cualquier método tradicional o electrónico. Una vez el sistema tiene constancia del usuario, éste puede enviar mensajes a otros usuarios existentes en el sistema, puede consultar su saldo, solicitar una recarga de su saldo disponible, y activar o desactivar el desvío del teléfono. El sistema en cada momento tendrá constancia de los usuarios conectados al sistema (aquellos usuarios dados de alta que tengan su terminal móvil encendido) y aquellos usuarios desconectados. Los administradores del sistema en cualquier momento podrán solicitar a éste información de cualquier usuario y estadísticas del uso del sistema por parte de los usuarios de este. La información que desea mantener referente al problema es la siguiente: Sobre las Personas 1. Los nombres, apellidos, dirección, etc., así como los datos bancarios de los usuarios del sistema de telefonía. 2. El identificador del teléfono móvil asociado al usuario del sistema. Sobre los Teléfonos 1. El identificador del teléfono. Cada persona podrá tener más de un teléfono, si bien los teléfonos tendrán identificadores únicos. 2. Saldo asociado al teléfono. 3. El estado del teléfono (conectado o desconectado). 4. El desvío del teléfono. Los teléfonos podrán tener activado el desvío de recepción a otro teléfono que esté dado de alta en la red. Sobre el Sistema 1. Coste de del envío de mensajes. Este coste podrá cambiar con el tiempo y día y hora en que se envían por el usuario. 2. Saldo de cada uno de los teléfonos. 3. Estado de activación y desvío de cada uno de los teléfonos. 4. Historia del uso del sistema de cada uno de los teléfonos. 5. Estadísticas del uso de los teléfonos. Los Procesos Considerando esta información se debe diseñar un sistema software mediante el cual pueda llevar a cabo los siguientes procesos: 1. La consulta completa por parte de los administradores del sistema de toda la información acerca de los usuarios y uso por parte de estos del mismo. 2. El uso del sistema por parte de los usuarios, es decir: los usuarios podrán conectarse, desconectarse, recargar el saldo de su teléfono, consultar el saldo, activar el desvío y desactivar el desvío, enviar y recibir mensajes. El sistema, como tal, debe ser considerado como un usuario, cuya funcionalidad se limita, en este sentido, a recibir y enviar mensajes, además de la anteriormente señalada. 3. El envío de mensajes desde el sistema a los usuarios. Estos mensajes consistirán en: Mensajes comunicando el saldo actual del terminal móvil. Mensajes de error comunicando cualquier error que se produzca por el mal uso del sistema por parte de los usuarios. 4. Los mensajes de error que deben tratarse al menos por el sistema son: Intentar desviar el teléfono móvil a sí mismo. Activar un desvío cíclico, es decir, que el conjunto de los desvíos existentes origine que un teléfono esté desviado a sí mismo. Intentar enviar un mensaje cuando el saldo del teléfono no permite asimilar su coste. Encender un teléfono previamente encendido. Apagar un teléfono previamente apagado. Las Estructuras de Datos A la vista de la información que debe ser manejada y de la funcionalidad del sistema exigida, el alumno deberá diseñar una estructura de datos que permita representar la información que fluye a través del sistema.
Estas estructuras de datos deberán ser definidas explícitamente y de
forma completa en sus aspectos conceptual, lógico y físico en cada una de las partes que componen la documentación del sistema software que se solicita.
1.1. Descripción detallada del problema.
Se nos plantea la realización de un sistema software que simule y gestione una central de mensajería de teléfonos móviles en la que existen una serie de usuarios que se envían mensajes de texto entre sí además de poder realizar otras operaciones que a continuación pasaremos a describir. Para que un usuario pase a formar parte de nuestro sistema primero se ha de dar de alta proporcionando sus datos personales y bancarios al administrador del sistema, o bien rellenando un formulario web, mediante el cual si el usuario no existe ya en el sistema será automáticamente dado de alta. Si una persona quiere dar de alta un teléfono en nuestro sistema, pero ya tiene un usuario en el mismo, sólo será necesario el NIF de la persona y el número del teléfono móvil, ya que el resto de datos se encuentran ya en la base de datos del sistema. El NIF será el identificador de cada persona dentro del sistema, puede haber dos personas con el mismo nombre y apellidos, pero el NIF será siempre único. Si una persona quiere modificar sus datos personales o bancarios deberá realizarlo poniéndose en contacto con el administrador quien tendrá el software con la interfaz necesaria para interactuar con la base de datos del sistema de manera correcta. Para dar de baja un teléfono (usuario del sistema) la persona podrá ponerse en contacto con el administrador quien le requerirá los datos necesarios (NIF y número de teléfono) y realizará el proceso, o bien la misma persona podrá realizar el proceso de baja rellenando el formulario existente en la página web designada para ello, en este caso el sistema dará de baja automáticamente al usuario cuando reciba los datos del formulario web. Al darse de baja un usuario pueden darse dos casos: • La persona en cuestión tiene algún otro usuario del sistema (otro teléfono) por tanto lo único que se borrará será ese usuario en cuestión, ese número de teléfono. • La persona no posee más usuarios del sistema, por lo tanto, además de borrar el número de teléfono se han de borrar los datos de la persona de nuestra base de datos. El sistema tratará información sobre los datos personales (nombre, apellidos, NIF y dirección) y bancarios de sus usuarios, datos referentes al estado (conectado o no, saldo y desvío), número (identificador del teléfono dentro del sistema) y propietario de cada uno de los teléfonos móviles presentes en dicho sistema así como la historia de todas las operaciones llevadas a cabo por cada usuario del sistema, estadísticas del mismo y demás información relativa al sistema como pueden ser las tarifas de costes de mensajes. Esta información puede ser manipulada por los administradores del sistema en cualquier momento. Cada persona podrá tener uno o más teléfonos, pero cada teléfono tendrá un número identificador único dentro del sistema. El desvío de un teléfono deberá ser a otro usuario que esté conectado, si el teléfono al que se desvía está apagado el mensaje lo almacenará el sistema y se lo entregará al usuario receptor cuando éste se conecte al mismo a no ser que el teléfono al que se desviaba tuviese a su vez activado el desvío, en cuyo caso el sistema realizará el mismo proceso pero con el número de teléfono al que se desvía el segundo. El coste de los mensajes podrá cambiar según el día de la semana, la hora y la tarifa vigente actualmente. El sistema permitirá a los usuarios darse de alta o de baja por medios tradicionales o electrónicos. Una vez que el usuario sea aceptado en el sistema, dispondrá de un saldo propio y podrá enviar mensajes a otros usuarios del sistema si su saldo lo permite, consultar su saldo actual (enviando un mensaje gratuito al sistema), recargar su saldo (que se cargará en su cuenta bancaria, éste proceso también se realizará enviando un mensaje gratuito al sistema), así como activar o desactivar el desvío de su teléfono (también enviando un mensaje gratuito al sistema). El tamaño máximo permitido para los mensajes de texto será de 150 caracteres. El saldo será modificado por el sistema cada vez que el usuario envíe un mensaje no gratuito o recargue el saldo de su teléfono. El sistema tendrá constancia en un momento dado de qué teléfonos están encendidos (usuarios del sistema conectados) y cuales están apagados (usuarios del sistema desconectados). Cada vez que un usuario realice una operación el sistema le comunicará mediante mensajes de texto información acerca de si la operación se ha llevado a cabo satisfactoriamente. El sistema también ha de ser capaz de enviar a los usuarios mensajes de aviso ante una situación de error, tal como intentar desviar un teléfono a sí mismo, activar un desvío cíclico, desactivar el desvío de un teléfono cuando éste no tiene activado el desvío, activar el desvío de un teléfono cuando éste ya tiene activado un desvío, enviar mensajes cuando el saldo no lo permite, encender un teléfono previamente encendido o apagar un teléfono previamente apagado. Así mismo el administrador podrá enviar mensajes de información general (a través del sistema, no de un teléfono usuario), como por ejemplo el cambio de tarifas en el coste de los mensajes (horario, o precio), el cambio del número del sistema (al que los usuarios mandarán los mensajes gratuitos como recargar, activar desvío, etc...).
1.2. Descripción detallada de la solución software.
Para la resolución óptima de dicho problema le proponemos la siguiente solución software, que a continuación pasamos a describir basándonos en los siguientes aspectos: Descripción de la información a tratar, en la que describiremos la información que va a tratar nuestro sistema de forma clara y concisa. Descripción de la funcionalidad de la solución, en la que describiremos toda la funcionalidad de la que va a disponer el sistema a desarrollar. - 1.2.1. Descripción de la información a tratar La solución propuesta considerará la siguiente información acerca del problema: ! Datos personales del cliente: - NIF del cliente. - Nombre del cliente. - Apellidos del cliente. - Dirección completa, tal y como consta en el DNI. No permitimos que un cliente de distintas direcciones al dar de alta varios teléfonos. - Datos bancarios, serán los datos de la cuenta bancaria a la que se cargarán las recargas de su teléfono móvil. Al igual que en el caso anterior, no permitimos que un mismo cliente nos proporcione cuentas bancarias distintas al dar de alta varios teléfonos. ! Datos sobre el teléfono móvil que será usuario del sistema - Número del teléfono móvil, que se considera único. - Saldo asociado a dicho teléfono y que le permitirá al usuario mandar mensajes. - Estado, se tendrá en cuenta si el teléfono está o no conectado al sistema, que corresponderá a saber si está encendido o apagado, ya que consideramos que la conexión y desconexión al sistema se realiza de forma automática. - Desvío, en caso de estar activado el desvío de mensajes almacenará el número de teléfono al que serán desviados. ! Datos sobre cada mensaje: - Remitente, número de teléfono de la persona que envió el mensaje. - Destino, es el número de teléfono de la persona a la que va dirigido el mensaje. Dicha persona ha de ser usuario del sistema. - Cuerpo del mensaje de texto, que ha de constar de menos de 150 caracteres. - 12 - - Recibido, se refiere a si un mensaje que un determinado usuario a escrito y enviado, ha sido recibido por el usuario destino. - Fecha de envío del mensaje. - Hora de envío del mensaje, incluyendo hora, minutos y segundos. - Coste que le corresponde a ese mensaje y que dependerá de la fecha, hora y tarifas vigentes en el momento de ser enviado. ! Datos sobre cada tarifa: - Identificador de tarifa, será un número que identificará de forma única a cada tarifa. - Día inicio, día de la semana en la que comienza a aplicarse la tarifa. - Día fin, día de la semana en la que finaliza la aplicación de dicha tarifa. - Hora inicio, hora a la que comienza a aplicarse. - Hora fin, hora a la que finaliza su aplicación. - Coste, coste que tendrán los mensajes enviados dentro de esta tarifa. - Fecha vigencia, fecha de vigencia de la tarifa, que será una fecha de caducidad. - 13 - 1.2.2. Descripción de la funcionalidad de la solución La solución software propuesta para del sistema tendrá las siguientes funcionalidades: ! El administrador del sistema podrá: o Manipular información referente a los usuarios de nuestro sistema: " Dar de alta a un nuevo usuario en el sistema, tomando el número de teléfono móvil que se dará de alta y el NIF de su propietario, en caso de que ese propietario no exista en la compañía porque no tenga otros teléfonos dados de alta, se tendrán que proporcionar también sus datos personales para almacenarlos en el sistema. " Dar de baja a un determinado número de teléfono en nuestro sistema, así como borrar los datos personales de su propietario en caso de que no tenga más teléfonos registrados. " Hacer consultas genéricas y específicas sobre los datos de los usuarios. " Realizar modificaciones sobre los datos de los usuarios. o Realizar operaciones consideradas como gestión del sistema: " Realizar operaciones de creación, borrado, consulta y modificación sobre las tarifas de costes que aplica nuestro sistema a los mensajes. " Modificar el número fijado como número del sistema al que los usuarios deberán mandar sus peticiones. " Permitir el envío de mensajes de propósito general a todos los usuarios del sistema. Estos mensajes tendrán como fin informar acerca del cambio del número del sistema, de cambios de tarifas y de promociones de la compañía. o Consultar la historia de las operaciones llevadas a cabo en nuestro sistema por un determinado teléfono. Podremos saber las recargas que ha hecho y por que cantidad, las consultas de saldo realizadas, los desvíos de llamadas realizados y a qué número, las anulaciones de desvío y el destino, cuerpo, coste y estado (recibido o no) de cada mensaje. Para cada una de estas operaciones también conoceremos la fecha y la hora a la que fueron realizadas. o Consultar estadísticas sobre el uso del sistema por parte de un determinado usuario. En estas estadísticas se mostrarán los siguientes datos considerados de interés para la compañía: el total de dinero que lleva ese usuario gastado en la compañía, el número de mensajes que ha enviado, el número de teléfono al cuál envía más mensajes, el número de teléfono del cuál recibe más mensajes y el número de teléfono al cuál más comúnmente desvía su teléfono. ! Cualquier persona que se conecte a la web podrá: o Darse de alta en el sistema rellenando un formulario con sus datos personales y el número de teléfono que desea dar de alta. Si ya tiene otro teléfono registrado en la compañía no tendrá que volver a dar sus datos personales, sólo tendrá que dar su NIF y el sistema tras consultar sus datos, le mostrará tanto sus datos personales como los de sus teléfonos registrados. o Dar de baja en el sistema cualquier teléfono de su propiedad. Para ello deberá proporcionar su NIF y se le mostrarán los teléfonos que tiene registrados, para que elija el que quiere dar de baja. Si da de baja todos sus teléfonos, también se eliminarán sus datos personales de la compañía. ! Cualquier usuario del sistema podrá: o Conectarse al sistema (simplemente encendiendo el teléfono), en caso de que no tuviera activado el desvío al conectarse recibirá los mensajes que le fueron enviados mientras el teléfono estaba desconectado. El sistema comprobará que no se intente conectar un teléfono que ya está conectado, generando en dicho caso un mensaje de error. o Desconectarse del sistema (apagando el teléfono). El sistema comprobará que no se intente desconectar un teléfono ya desconectado y generará el mensaje de error oportuno. o Recargar su saldo mediante el envío de un mensaje gratuito al sistema, indicando la cantidad que se desea recargar. El cuerpo de este mensaje será RECARGA seguido de una cantidad en euros. Dicha cantidad se cargará en la cuenta bancaria que proporcionó al darse de alta y se sumará al saldo asociado a su teléfono. El sistema mandará al usuario un mensaje indicando que la operación se ha realizado con éxito, así como su nuevo saldo o indicándole el tipo de error si la operación no ha podido realizarse. o Consultar su saldo actual mediante el envío de un mensaje gratuito al sistema. El cuerpo de este mensaje será CONSULTA, el sistema responderá inmediatamente al usuario con un mensaje de texto en el que se le indicará su saldo actual o se le informará si hay algún tipo de error.