Ejemplo de Análisis de Diseño Estructurado

download Ejemplo de Análisis de Diseño Estructurado

of 119

description

geisen

Transcript of Ejemplo de Análisis de Diseño Estructurado

Slide 1

EJEMPLO DE ANLISIS Y DISEOESTRUCTURADO DE UN SISTEMA SOFTWAREEl sistema software simula el comportamiento de una central demensajera de telefona mvil. Este sistema permite a sus afiliados elintercambio de mensajes a travs de telfonos mviles, adems deotras funciones como las de consultar el saldo, recargar su saldo, etc.La funcionalidad de este sistema bsicamente es la siguiente: unusuario debe darse de alta en el sistema mediante cualquier mtodotradicional o electrnico. Una vez el sistema tiene constancia delusuario, ste puede enviar mensajes a otros usuarios existentes en elsistema, puede consultar su saldo, solicitar una recarga de su saldodisponible, y activar o desactivar el desvo del telfono. El sistema encada momento tendr constancia de los usuarios conectados alsistema (aquellos usuarios dados de alta que tengan su terminalmvil encendido) y aquellos usuarios desconectados.Los administradores del sistema en cualquier momento podrnsolicitar a ste informacin de cualquier usuario y estadsticas del usodel sistema por parte de los usuarios del mismo.La informacin que desea mantener referente al problema es lasiguiente:Sobre las Personas1. Los nombres, apellidos, direccin, etc., as como los datosbancarios de los usuarios del sistema de telefona.2. El identificador del telfono mvil asociado al usuario delsistema.Sobre los Telfonos1. El identificador del telfono. Cada persona podr tener ms deun telfono, si bien los telfonos tendrn identificador nicos.2. Saldo asociado al telfono.3. El estado del telfono (conectado o desconectado).4. El desvo del telfono. Los telfonos podrn tener activado eldesvo de recepcin a otro telfono que est dado de alta en lared.

Sobre el Sistema1. Coste de del envo de mensajes. Este coste podr cambiar conel tiempo y da y hora en que se envan por el usuario.2.3.4.5.Saldo de cada uno de los telfonos.Estado de activacin y desvo de cada uno de los telfonos.Historia del uso del sistema de cada uno de los telfonos.Estadsticas del uso de los telfonos.Los ProcesosConsiderando esta informacin se debe disear un sistema softwaremediante el cual pueda llevar a cabo los siguientes procesos:1. La consulta completa por parte de los administradores delsistema de toda la informacin acerca de los usuarios y uso porparte de estos del mismo.2. El uso del sistema por parte de los usuarios, es decir: losusuarios podrn conectarse, desconectarse, recargar el saldo desu telfono, consultar el saldo, activar el desvo y desactivar eldesvo, enviar y recibir mensajes. El sistema, como tal, debeser considerado como un usuario, cuya funcionalidad se limita,en este sentido, a recibir y enviar mensajes, adems de laanteriormente sealada.3. El envo de mensajes desde el sistema a los usuarios. Estosmensajes consistirn en:Mensajes comunicando el saldo actual del terminal mvil.Mensajes de error comunicando cualquier error que seproduzca por el mal uso del sistema por parte de losusuarios.4. Los mensajes de error que deben tratarse al menos por elsistema son:

Intentar desviar el telfono mvil a s mismo.Activar un desvo cclico, es decir, que el conjunto de losdesvos existentes origine que un telfono est desviado a smismo.Intentar enviar un mensaje cuando el saldo del telfono nopermite asimilar su coste.Encender un telfono previamente encendido.Apagar un telfono previamente apagado.Las Estructuras de DatosA la vista de la informacin que debe ser manejada y de lafuncionalidad del sistema exigida, el alumno deber disear unaestructura de datos que permita representar la informacin que fluyea travs del sistema.

Estas estructuras de datos debern ser definidas explcitamente y deforma completa en sus aspectos conceptual, lgico y fsico en cadauna de las partes que componen la documentacin del sistemasoftware que se solicita.

-1-ndice de contenidos

PARTE I : ORIENTADA AL CLIENTE51. Estudio del problema y propuesta de una solucin software.1.1. Descripcin detallada del problema.1.2.Descripcin detallada de la solucin software.67101.2.1.1.2.2.Descripcin de la informacin a tratar.Descripcin de la funcionalidad de la solucin.11131.3. Recursos hardware y software.

PARTE II : ORIENTADA AL INGENIERO

2. Anlisis del sistema software.2.1. Descripcin detallada del problema.2.2. Descripcin del dominio de la funcin.2.3. Diccionario de Datos.2.4. Descripcin del dominio de la informacin.2.5. Validacin del anlisis.

3. Diseo del sistema software.3.1. Refinamiento del dominio de la funcin.3.2. Descripcin lgica y fsica del dominio de la informacin.3.3. Descripcin de la arquitectura del sistema.3.4. Descripcin de la interfaz del sistema.3.5. Validacin del diseo.

APNDICES

Diccionario de Datos ordenado alfabticamente.17

19

202124525662

65667277101108

112

113

-2-ndice de figuras

Diagramas de Flujo de Datos (Yourdon)1.2.3.4.5.6.7.8.DFD nivel 0.DFD nivel 1.DFD nivel 2. (1.Subsistema administrador)DFD nivel 2. (2.Subsistema usuario)DFD nivel 3. (1.2.Gestin usuarios)DFD nivel 3. (1.3.Gestin sistema)DFD nivel 4. (1.3.2.Tarifas)DFD nivel 4. (1.3.4. Enviar mensaje a todos)2629323843454851Diagrama Entidad Interrelacin (Peter Chen)

9. Diagrama Entidad-Interrelacin.61Arquitectura: Diagramas de Descomposicin Funcional (Yourdon)10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.Mostrar UsuariosNuevo UsuarioActualizar UsuarioEliminar UsuarioMostrar TarifasNueva TarifaBorrar TarifaModificar TarifaNmero del SistemaTomar el Siguiente DestinoConstruir Mensaje GratuitoEnviar MensajeHistoriaEstadsticasConectarDesconectarRecargar SaldoConsultar SaldoActivar DesvoDesactivar DesvoDescontar SaldoAltaBaja78798081828384858687888990919293949596979899100

-3-Diagramas de Interfaz

33. Interfaz Administrador: Gestin de usuarios.34. Interfaz Administrador: Gestin del sistema.35. Interfaz Administrador: Historia.36. Interfaz Administrador: Estadsticas.103105106107

-4-ndice de tablas

Validacin del Anlisis

1. Matriz Entidad / Entidad2. Matriz Requisito / Funcin3. Matriz Requisito / Entidad

Validacin del Diseo

4. Matriz Funcin / Papel Usuario5. Matriz Funcin / Requisito626364

109111

-5-PARTE I

ORIENTADA ALCLIENTE

-6-1Estudio del problema ypropuesta de unasolucin software.

-7-1.1.Descripcin detallada del problema.

Se nos plantea la realizacin de un sistema software que simule ygestione una central de mensajera de telfonos mviles en la queexisten una serie de usuarios que se envan mensajes de texto entre sadems de poder realizar otras operaciones que a continuacinpasaremos a describir.

Para que un usuario pase a formar parte de nuestro sistema primerose ha de dar de alta proporcionando sus datos personales y bancarios aladministrador del sistema, o bien rellenando un formulario web,mediante el cual si el usuario no existe ya en el sistema serautomticamente dado de alta.

Si una persona quiere dar de alta un telfono en nuestro sistema, peroya tiene un usuario en el mismo, slo ser necesario el NIF de lapersona y el nmero del telfono mvil, ya que el resto de datos seencuentran 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 NIFser siempre nico.

Si una persona quiere modificar sus datos personales o bancariosdeber realizarlo ponindose en contacto con el administrador quientendr el software con la interfaz necesaria para interactuar con la basede datos del sistema de manera correcta.

Para dar de baja un telfono (usuario del sistema) la persona podrponerse en contacto con el administrador quien le requerir los datosnecesarios (NIF y nmero de telfono) y realizar el proceso, o bien lamisma persona podr realizar el proceso de baja rellenando elformulario existente en la pgina web designada para ello, en este casoel sistema dar de baja automticamente al usuario cuando reciba losdatos del formulario web.

-8-Al darse de baja un usuario pueden darse dos casos: La persona en cuestin tiene algn otro usuario del sistema(otro telfono) por tanto lo nico que se borrar ser eseusuario en cuestin, ese nmero de telfono. La persona no posee ms usuarios del sistema, por lo tanto,adems de borrar el nmero de telfono se han de borrar losdatos de la persona de nuestra base de datos.

El sistema tratar informacin sobre los datos personales (nombre,apellidos, NIF y direccin) y bancarios de sus usuarios, datos referentesal estado (conectado o no, saldo y desvo), nmero (identificador deltelfono dentro del sistema) y propietario de cada uno de los telfonosmviles presentes en dicho sistema as como la historia de todas lasoperaciones llevadas a cabo por cada usuario del sistema, estadsticasdel mismo y dems informacin relativa al sistema como pueden ser lastarifas de costes de mensajes. Esta informacin puede ser manipuladapor los administradores del sistema en cualquier momento.

Cada persona podr tener uno o ms telfonos, pero cada telfonotendr un nmero identificador nico dentro del sistema. El desvo deun telfono deber ser a otro usuario que est conectado, si el telfono alque se desva est apagado el mensaje lo almacenar el sistema y se loentregar al usuario receptor cuando ste se conecte al mismo a no serque el telfono al que se desviaba tuviese a su vez activado el desvo, encuyo caso el sistema realizar el mismo proceso pero con el nmero detelfono al que se desva el segundo.

El coste de los mensajes podr cambiar segn el da de la semana, lahora y la tarifa vigente actualmente.

El sistema permitir a los usuarios darse de alta o de baja pormedios tradicionales o electrnicos. Una vez que el usuario sea aceptadoen el sistema, dispondr de un saldo propio y podr enviar mensajes aotros usuarios del sistema si su saldo lo permite, consultar su saldoactual (enviando un mensaje gratuito al sistema), recargar su saldo (quese cargar en su cuenta bancaria, ste proceso tambin se realizarenviando un mensaje gratuito al sistema), as como activar o desactivarel desvo de su telfono (tambin enviando un mensaje gratuito alsistema).

-9-El tamao mximo permitido para los mensajes de texto ser de 150caracteres.

El saldo ser modificado por el sistema cada vez que el usuario enveun mensaje no gratuito o recargue el saldo de su telfono.

El sistema tendr constancia en un momento dado de qu telfonosestn encendidos (usuarios del sistema conectados) y cuales estnapagados (usuarios del sistema desconectados).

Cada vez que un usuario realice una operacin el sistema lecomunicar mediante mensajes de texto informacin acerca de si laoperacin se ha llevado a cabo satisfactoriamente.

El sistema tambin ha de ser capaz de enviar a los usuarios mensajesde aviso ante una situacin de error, tal como intentar desviar untelfono a s mismo, activar un desvo cclico, desactivar el desvo de untelfono cuando ste no tiene activado el desvo, activar el desvo de untelfono cuando ste ya tiene activado un desvo, enviar mensajescuando el saldo no lo permite, encender un telfono previamenteencendido o apagar un telfono previamente apagado.

As mismo el administrador podr enviar mensajes de informacingeneral (a travs del sistema, no de un telfono usuario), como porejemplo el cambio de tarifas en el coste de los mensajes (horario, oprecio), el cambio del nmero del sistema (al que los usuarios mandarnlos mensajes gratuitos como recargar, activar desvo, etc...).

- 10 -1.2.Descripcin detallada de la solucinsoftware.

Para la resolucin ptima de dicho problema le proponemos lasiguiente solucin software, que a continuacin pasamos a describirbasndonos en los siguientes aspectos:

Descripcin de la informacin a tratar, en la que describiremos lainformacin que va a tratar nuestro sistema de forma clara y concisa.

Descripcin de la funcionalidad de la solucin, en la quedescribiremos toda la funcionalidad de la que va a disponer el sistema adesarrollar.

1.2.1. Descripcin de la informacin a tratar

La solucin propuesta considerar la siguiente informacin acercadel problema:

! Datos personales del cliente:----NIF del cliente.Nombre del cliente.Apellidos del cliente.Direccin completa, tal y como consta en el DNI. Nopermitimos que un cliente de distintas direcciones al darde alta varios telfonos.- Datos bancarios, sern los datos de la cuenta bancaria ala que se cargarn las recargas de su telfono mvil. Aligual que en el caso anterior, no permitimos que unmismo cliente nos proporcione cuentas bancariasdistintas al dar de alta varios telfonos.

! Datos sobre el telfono mvil que ser usuario del sistema

- Nmero del telfono mvil, que se considera nico.- Saldo asociado a dicho telfono y que le permitir alusuario mandar mensajes.- Estado, se tendr en cuenta si el telfono est o noconectado al sistema, que corresponder a saber si estencendido o apagado, ya que consideramos que laconexin y desconexin al sistema se realiza de formaautomtica.- Desvo, en caso de estar activado el desvo de mensajesalmacenar el nmero de telfono al que serndesviados.

! Datos sobre cada mensaje:

- Remitente, nmero de telfono de la persona que enviel mensaje.- Destino, es el nmero de telfono de la persona a la queva dirigido el mensaje. Dicha persona ha de ser usuariodel sistema.- Cuerpo del mensaje de texto, que ha de constar demenos de 150 caracteres.

- 11 -

- 12 -- Recibido, se refiere a si un mensaje que un determinadousuario a escrito y enviado, ha sido recibido por elusuario destino.- Fecha de envo del mensaje.- Hora de envo del mensaje, incluyendo hora, minutos ysegundos.- Coste que le corresponde a ese mensaje y quedepender de la fecha, hora y tarifas vigentes en elmomento de ser enviado.

! Datos sobre cada tarifa:

- Identificador de tarifa, ser un nmero queidentificar de forma nica a cada tarifa.- Da inicio, da de la semana en la que comienza aaplicarse la tarifa.- Da fin, da de la semana en la que finaliza la aplicacinde dicha tarifa.- Hora inicio, hora a la que comienza a aplicarse.- Hora fin, hora a la que finaliza su aplicacin.- Coste, coste que tendrn los mensajes enviados dentrode esta tarifa.- Fecha vigencia, fecha de vigencia de la tarifa, que seruna fecha de caducidad.

- 13 -1.2.2. Descripcin de la funcionalidad de la solucin

La solucin software propuesta para del sistema tendr las siguientesfuncionalidades:

! El administrador del sistema podr:

o Manipular informacin referente a los usuarios de nuestrosistema:"Dar de alta a un nuevo usuario en el sistema,tomando el nmero de telfono mvil que se dar dealta y el NIF de su propietario, en caso de que esepropietario no exista en la compaa porque no tengaotros telfonos dados de alta, se tendrn queproporcionar tambin sus datos personales paraalmacenarlos en el sistema." Dar de baja a un determinado nmero de telfono ennuestro sistema, as como borrar los datos personalesde su propietario en caso de que no tenga mstelfonos registrados." Hacer consultas genricas y especficas sobre losdatos de los usuarios." Realizar modificaciones sobre los datos de losusuarios.

o Realizar operaciones consideradas como gestin delsistema:" Realizar operaciones de creacin, borrado, consulta ymodificacin sobre las tarifas de costes que aplicanuestro sistema a los mensajes." Modificar el nmero fijado como nmero del sistemaal que los usuarios debern mandar sus peticiones." Permitir el envo de mensajes de propsito general atodos los usuarios del sistema. Estos mensajestendrn como fin informar acerca del cambio delnmero del sistema, de cambios de tarifas y depromociones de la compaa.

- 14 -o Consultar la historia de las operaciones llevadas a cabo ennuestro sistema por un determinado telfono. Podremossaber las recargas que ha hecho y por que cantidad, lasconsultas de saldo realizadas, los desvos de llamadasrealizados y a qu nmero, las anulaciones de desvo y eldestino, cuerpo, coste y estado (recibido o no) de cadamensaje. Para cada una de estas operaciones tambinconoceremos la fecha y la hora a la que fueron realizadas.

o Consultar estadsticas sobre el uso del sistema por parte deun determinado usuario. En ests estadsticas se mostrarnlos siguientes datos considerados de inters para lacompaa: el total de dinero que lleva ese usuario gastadoen la compaa, el nmero de mensajes que ha enviado, elnmero de telfono al cul enva ms mensajes, el nmerode telfono del cul recibe ms mensajes y el nmero detelfono al cul ms comnmente desva su telfono.

! Cualquier persona que se conecte a la web podr:

o Darse de alta en el sistema rellenando un formulario consus datos personales y el nmero de telfono que desea darde alta. Si ya tiene otro telfono registrado en la compaano tendr que volver a dar sus datos personales, slo tendrque dar su NIF y el sistema tras consultar sus datos, lemostrar tanto sus datos personales como los de sustelfonos registrados.

o Dar de baja en el sistema cualquier telfono de supropiedad. Para ello deber proporcionar su NIF y se lemostrarn los telfonos que tiene registrados, para que elijael que quiere dar de baja. Si da de baja todos sus telfonos,tambin se eliminarn sus datos personales de la compaa.

- 15 -! Cualquier usuario del sistema podr:

o Conectarse al sistema (simplemente encendiendo eltelfono), en caso de que no tuviera activado el desvo alconectarse recibir los mensajes que le fueron enviadosmientras el telfono estaba desconectado. El sistemacomprobar que no se intente conectar un telfono que yaest conectado, generando en dicho caso un mensaje deerror.

o Desconectarse del sistema (apagando el telfono). Elsistema comprobar que no se intente desconectar untelfono ya desconectado y generar el mensaje de erroroportuno.

o Recargar su saldo mediante el envo de un mensaje gratuitoal sistema, indicando la cantidad que se desea recargar.El cuerpo de este mensaje ser RECARGA seguido de unacantidad en euros. Dicha cantidad se cargar en la cuentabancaria que proporcion al darse de alta y se sumar alsaldo asociado a su telfono.El sistema mandar al usuario un mensaje indicando que laoperacin se ha realizado con xito, as como su nuevosaldo o indicndole el tipo de error si la operacin no hapodido realizarse.

o Consultar su saldo actual mediante el envo de un mensajegratuito al sistema.El cuerpo de este mensaje ser CONSULTA, el sistemaresponder inmediatamente al usuario con un mensaje detexto en el que se le indicar su saldo actual o se leinformar si hay algn tipo de error.

- 16 -o Activar el desvo a otro nmero de telfono del sistemapara que este ltimo reciba todos los mensajes que le seanenviados al usuario.Para activarlo habr que enviar un mensaje gratuito cuyocuerpo ser DESVIA seguido de un nmero, que ser alque se desviarn los mensajes.El sistema comprobar que el desvo no sea cclico ymandar al usuario un mensaje indicndole una situacinde error o informndole de que el desvo ha sido realizadocon xito.

o Desactivar el desvo para que le vuelvan a llegar losmensajes que le sean enviados.El usuario deber mandar un mensaje gratuito al sistema,cuyo cuerpo ser DESVIA NO.El sistema informar al usuario que se ha realizado laoperacin de forma correcta o del error que haya ocurrido.

o Enviar un mensaje de texto a otro usuario del sistema,descontando del saldo el importe del mensaje segn latarifa que le corresponda.El sistema comprobar si el emisor tiene saldo suficiente,que el usuario destino existe, as como el estado de desvoy el estado conectado o desconectado.Si se presenta algn error el sistema se lo comunicar alusuario mediante un mensaje de texto.

- 17 -1.3.Recursos Hardware y Software.

Recursos de desarrollo

Estos son los recursos software que consideramos necesarios para eldesarrollo de nuestro sistema software:

Sistema operativo Windows 98, NT, 2000 o XP.Como entorno de desarrollo para las interfaces usaremos MicrosoftVisual Basic.Se utilizar Oracle 8i para la definicin y manipulacin de la base dedatos de nuestro sistema.Software de conexin a internet para el mdem.

Como recursos hardware mnimos y recomendados se considerarnlos siguientes:

Microprocesador Intel Pentium o similar.Frecuencia de reloj de la CPU 200 Mhz.Memoria RAM de 32 Mb.Mdem de 128 Kbps (para realizar las pruebas con conexin a lared).

- 18 -Recursos de explotacin

Estos son los recursos software que consideramos necesarios para laexplotacin de nuestro sistema software:

Sistema operativo Windows 98, NT, 2000 o XP.Se utilizar Oracle 8i para la manipulacin de la base de datos denuestro sistema.Software de conexin a internet para el mdem.El software desarrollado en este proyecto, por supuesto.

Como recursos hardware mnimos y recomendados se considerarnlos siguientes:

Microprocesador Intel Pentium o similar.Frecuencia de reloj de la CPU 350 Mhz.Memoria RAM de 32 Mb.Mdem de 128 Kbps.

- 19 -PARTE II

ORIENTADA ALINGENIERO

- 20 -2Anlisis del sistemasoftware.

2.1.Descripcin detallada del problema.

Se trata de realizar un sistema que se encargar de simular elfuncionamiento de una central de mensajera de mviles, para ellodeber tratar una cierta informacin y ser capaz de realizar una serie deoperaciones sobre sta.Los objetivos, requisitos y restriccionesdelsistemaqueposteriormente sern validados son los siguientes:

Alta y baja1.

2.

3.

4.

5.Una persona podr darse de alta en el sistema proporcionandosus datos personales: NIF, nombre, apellidos, direccin y datosbancarios, as como el nmero de telfono mvil que se deseadar de alta. Si ya posee otro telfono dado de alta, slo tendrque proporcionar su NIF y el nmero de telfono que desea darde alta.

Una persona podr tener dados de alta en el sistema variostelfonos distintos pero sus datos personales han de ser nicospara todos sus telfonos.

Un usuario podr dar de baja un nmero de telfono quepreviamente a dado de alta, proporcionando para ello su NIF yel nmero de telfono que desea dar de baja.

Los mtodos para darse de alta en el sistema son mediantecontacto directo con el administrador o mediante la pgina webde la compaa.

Los mtodos para darse de baja son o bien contactandodirectamente con el administrador o mediante la pgina web dela compaa.

- 21 -

- 22 -Usuario

6.

7.

8.

9.

10.

11.

12.

13.

14.Para que un usuario pueda realizar cualquier operacin debehaberse dado previamente de alta en el sistema.

Un usuario podr conectarse al sistema encendiendo sutelfono mvil, y al hacerlo recibir (si no tiene activado eldesvo) los mensajes que le enviaron cuando lo tena apagado.

Un usuario podr desconectarse del sistema apagando sutelfono mvil.

Un usuario podr enviar mensajes de texto a otros usuarios delsistema siempre que cumpla unos requisitos: cuerpo delmensaje vlido, saldo suficiente y existencia en la compaadel telfono destino.

Un usuario podr consultar su saldo actual enviando unmensaje al sistema con el cuerpo CONSULTA.

Un usuario podr recargar su saldo enviando al sistema unmensaje con el cuerpo RECARGA seguido de la cantidad arecargar. Esta recarga se cargar a la cuenta bancaria delusuario.

Un usuario podr activar un desvo de su telfono, siempre queste no sea cclico, enviando al sistema un mensaje con elcuerpo DESVIA seguido del nmero de telfono al que sedesea desviar.

Un usuario podr desactivar el desvo de su telfono mandandoal sistema un mensaje con el cuerpo DESVIA NO.

Al realizar una operacin de consulta, recarga, desvo odesactivar desvo, el sistema responder de forma inmediata alusuario con un mensaje de texto que indique si la operacin hasido concluida satisfactoriamente y la informacin actual desaldo y desvo, segn corresponda. En caso de error se lecomunicar en este mensaje de informacin.

Administrador15.

16.

17.

18.

19.

20.

21.

22.

23.El administrador podr consultar la historia de todas lasoperaciones llevadas a cabo en el sistema por un determinadonmero de telfono.

El administrador podr consultar las estadsticas de undeterminado nmero de telfono de nuestro sistema.

El administrador podr dar de alta a un nuevo usuario en elsistema, tomando sus datos personales y bancarios, as como elnmero de telfono mvil que ser dado de alta en el sistema,en caso de que ese usuario ya exista en la compaa porquetenga otros telfonos dados de alta, slo tendr queproporcionar el NIF y el nmero de telfono a dar de alta.

Dar de baja a un determinado nmero de telfono en nuestrosistema. Deber proporcionar el NIF de su propietario,seguidamente el sistema le mostrar los telfonos que tienedados de alta, el administrador seleccionar o proporcionar elnmero que desee eliminar. En caso de que ese propietario notenga ms telfonos registrados, se eliminarn sus datospersonales.

El administrador podr realizar consultas genricas yespecficas sobre los datos de los usuarios registrados en elsistema.

El administrador podr realizar modificaciones sobre los datosde los usuarios registrados en el sistema.

Podr realizar operaciones de creacin, borrado, consulta ymodificacin sobre las tarifas de costes que aplica nuestrosistema a los mensajes.

Podr modificar el nmero fijado como nmero del sistema alque los usuarios debern mandar sus peticiones.

El administrador podr enviar mensajes de propsito general atodos los usuarios del sistema. Estos mensajes tendrn comofin informar acerca del cambio del nmero del sistema, decambios de tarifas y de promociones de la compaa.

- 23 -

- 24 -2.2.Descripcindeldominiodelafuncin.

En este apartado se presenta la funcionalidad del sistema quesatisface los objetivos, requisitos y restricciones expresadas en elapartado anterior, descripcin detallada del problema. Para ello se haruso de los Diagramas de Flujo de Datos.

Nivel 0 o de contexto:

En este diagrama se define la frontera del sistema con el mundoexterior y se definen los flujos de entrada y salida del sistema con elentorno.

Entidad externa Administrador:Representa a una persona que desempea la labor deadministrador y que se comunica con el sistema mediante unterminal.

Entidad externa Usuario:Representa a un usuario dado de alta en la compaa y queinteracta con nuestro sistema mediante seales o mensajes desu telfono mvil.

Entidad externa Web:Representa la pgina web de la compaa, mediante la cul unusuario se podr dar de alta usando su propio terminal.

- 25 -Entidad externa Pantalla de ordenador:Representa la pantalla de cualquier terminal de ordenador conel que se haya accedido a nuestro sistema, all se ir mostrandoinformacin de inters.Entidad externa Usuario:Representa un telfono mvil de un usuario conectado anuestro sistema. A ste le llegar informacin en forma demensajes de texto.Proceso Sistema:Gestiona el centro de mensajera de telefona mvil, dandorespuesta a las peticiones de gestin lanzadas por losadministradores, a las peticiones que los usuarios hacenmediante su telfono mvil y a las peticiones de alta y bajarealizadas mediante la pgina web. Adems de esto, se encargade generar mensajes de informacin o de error y de hacrselosllegar al terminal del operador o al telfono mvil del usuarioen forma de mensaje de texto.Flujo de datos flujo_administrador:Contiene datos acerca de la operacin que el administradordesea realizar en el sistema, usando su terminal.Flujo de datos flujo_usuario:Contiene informacin acerca de la peticin de servicio que noshace un usuario de nuestro sistema mediante su telfonomvil.Flujo de datos flujo_web:Contiene los datos extrados del formulario web y que sernnecesarios para dar de alta o de baja al cliente que lo solicita.Flujo de datos salida_a_pantalla:Representa cualquier informacin que el sistema arrojar a lapantalla de un terminal conectado al sistema: este terminalpuede ser el de un administrador o el de un usuario conectadoa la web.Flujo de datos salida_a_usuario:Representa los datos que enva el sistema a un usuario enforma de mensaje de texto.

o_ainisdoro_wantalida_salida_a_usua- 26 -FIGURA 1USUARIOWEB0SISTEMAPANTALLAORDENADOR

USUARIOflujdmtra

flujo_usuario

ebflujsaa_plla

rioNIVEL 0

ADMINISTRADOR

- 27 -Nivel 1:En este diagrama se definen los subsistemas principales as comoalgunos procesos primitivos que ya no se descompondrn ms.Subsistema administrador:Este subsistema se encarga de gestionar las peticiones deladministrador acerca de la gestin de usuarios, la gestin delpropio sistema y la consulta de la historia y las estadsticas.Subsistema usuario:Se encarga de gestionar las peticiones que puede hacer unusuario mediante su telfono mvil: conectarse, desconectarse,recargar saldo, consultar saldo, activar el desvo, desactivar eldesvo o enviar un mensaje de texto a otro usuario.Proceso distinguir_peticin_web:Dependiendo de los datos que recibe de la pgina webmediante un formulario decide si lo que se quiere realizar esuna alta o una baja en el sistema y dependiendo de esto pasarlos datos de alta al proceso alta o los datos de baja al procesobaja, para poder realizar la operacin.Proceso alta:Da de alta un nuevo usuario en el sistema, almacenando en labase de datos los datos proporcionados por el formulario webrellenado por el propio usuario. En el caso en el que elpropietario del telfono que se desea dar de alta no est yaregistrado en el sistema, tambin habr que registrar sus datos.Proceso baja:Partiendo del NIF introducido en el formulario web de baja,comprueba que est registrado en el sistema, en casoafirmativo le mostrar los nmeros de telfono que tieneregistrados para que d de baja los que desee. Si una personada de baja todos sus telfonos registrados tambin se darn debaja de forma automtica sus datos personales.Flujo de datos salida_administrador:Representa los datos de informacin que se le mostrarn aladministrador al realizar alguna operacin.

- 28 -Flujo de datos salida_a_usuario:Representa los datos en forma de mensaje que se mandarn alusuario como salida de alguna operacin realizada.

Flujo de datos datos_alta:Contiene el NIF del propietario del telfono que se desea darde alta.

Flujo de datos alta_lee_bd:Representa los datos personales del propietario que extrae elproceso alta de la base de datos si ese usuario que estintentando dar de alta un telfono existe ya en el sistema y aspoder usarlos para que no tenga que volver a proporcionarlos.

Flujo de datos alta_act_bd:Representa el conjunto de datos del telfono que sernalmacenados en la base de datos para que conste comoregistrado y el NIF de su propietario. Si el propietario no erausuario del sistema tambin contendr los datos necesariospara registrarlo.

Flujo de datos datos_baja:Contiene el NIF del usuario que quiere dar de baja alguno desus telfonos.

Flujo de datos baja_lee_bd:Representa los datos, acerca del propietario y sus telfonosregistrados, que el proceso Baja extrae de la base de datospartiendo del NIF proporcionado.

Flujo de datos baja_act_bd:Representa el nmero de telfono y opcionalmente el NIF desu propietario, que son necesarios para eliminarlos de la basede datos.

Almacn Base de Datos:Representa la base de datos del sistema, que ser consultada ymodificada por los procesos alta y baja.

lta_adatosdatos_baja- 29 -1. SUBSISTEMAADMINISTRADOR

2. SUBSISTEMAUSUARIO4. Altasalida_administrador

salida_a_usuarioflujo_web3.Distinguir_peticin_web5. Bajasalida_a_pantallaBase de Datosalta_lee_bdalta_act_bdbaja_act_bd

baja_lee_bdNIVEL 1

flujo_administrador

flujo_usuariosalida_a_pantalla

FIGURA 2

- 30 -Nivel 2:1. Subsistema administradorSubsistema gestin_usuarios:Este subsistema se encarga de gestionar las operaciones que eladministrador podr realizar con la informacin de losusuarios, estas operaciones sern dar de alta, dar de baja,consultar y modificar.Subsistema gestin_sistema:Se encarga de gestionar las operaciones que el administradorpuede realizar con informacin que afecta directamente alfuncionamiento del sistema, tal como el cambio del nmeropredeterminado del sistema, operaciones con las tarifas decostes de mensajes y envos de mensajes de propsito generala todos los usuarios del sistema.Proceso historia:Consulta en la base de datos la historia de un determinadotelfono y muestra al administrador toda la informacin de lasoperaciones realizadas por dicho telfono.Proceso estadsticas:Consulta en la base de datos del sistema y extrae y calculavaria informacin en forma de estadsticas acerca de untelfono proporcionado. Dicha informacin se le mostrar aladministrador.Flujo de datos datos_usuario:Estar formado por varios datos acerca de un usuario que serndiferenciados y usados en el subsistema de gestin de usuarios.Flujo de datos datos_sistema:Estar formado por informacin referente al sistema que serdiferenciada y usada en el subsistema de gestin del sistema.Flujo de datos datos_historia:Nmero de telfono aportado por el administrador al procesoque se encarga de mostrarle la historia de ese telfono dentrode nuestro sistema.

- 31 -Flujo de datos datos_estadsticas:Nmero de telfono aportado por el administrador, que sernecesario para que el proceso estadsticas le muestre variasestadsticas acerca de ese telfono.

Flujo de datos historia_lee_bd:Representa los datos que el proceso historia ha de extraer dela base de datos para poder presentar la historia del sistema.

Flujo de datos estadsticas_lee_bd:Representa los datos que el proceso estadsticas ha deextraer de la base de datos para poder realizar su labor.

Almacn Base de Datos:Representa la base de datos del sistema que ser consultadapor los procesos historia y estadsticas.

datos_usuariodstatodaes_icistassis- 32 -flujo_administrador1.1.Seleccionar_opcin_administradorGestin_sistema1.2.Gestin_usuarios

1.3.1.4. Historia

1.5. Estadsticasdatos_temadatos_historiasalida_a_pantalla

salida_gestin_sistemasalida_a_pantallahistoria_lee_bd

Base de datos

estadisticas_lee_bdsalida_a_pantalla

FIGURA 3NIVEL 2: SUBSISTEMA ADMINISTRADOR

- 33 -Nivel 2:2. Subsistema usuario

Proceso distinguir_flujo_usuario:Distingue el tipo de seal que ha enviado un usuario al sistemay dependiendo de sta arrojar varios tipos de flujos condistinta informacin.

Proceso conectar:Cuando el usuario enciende su telfono se ejecuta este procesoque se encarga de actualizar en la base de datos su estado dedesconectado a conectado y de ver si tiene mensajespendientes de recibir, en cuyo caso se le enviarn.

Proceso desconectar:Cuando el usuario apaga su telfono se ejecuta este procesoque se encarga de actualizar su estado de conectado adesconectado en la base de datos para que el sistema tengaconstancia de ello.

Proceso ver_tipo_de_mensaje:Se encarga de distinguir entre los distintos tipos de mensajesque puede mandar un usuario, que representan distintasoperaciones, y de arrojar varios flujos con distinta informacinextrada del cuerpo del mensaje que ser necesaria para llevara cabo la operacin solicitada.

Proceso recargar_saldo:Dado un nmero de telfono y una cantidad a recargar,consulta el saldo actual de ese telfono y lo actualizasumndole la cantidad de recarga. Construye el cuerpo de unmensaje que informar al usuario de su nuevo saldo.

Proceso consultar_saldo:Dado un nmero de telfono consulta su saldo en la base dedatos y construye el cuerpo de un mensaje que informar alusuario de su saldo actual.

- 34 -Proceso activar_desvo:Dado un nmero de telfono y un nmero de telfono al quedesviar los mensajes, comprueba que este desvo sea vlido ylo activa, almacenando dicho estado en la base de datos.Construye el cuerpo de un mensaje que informar al usuario deque sus mensajes sern desviados al nmero indicado.

Proceso desactivar_desvo:Dado un nmero de telfono almacena en la base de datos elestado de no desvo.

Proceso descontar_saldo:A partir de un mensaje que le llega, extrae los datos que locomponen, calcula el coste del mensaje consultando la tarifaque hay que aplicarle segn la fecha y hora de envo y se lodescuenta del saldo, forma el mensaje completo y lo almacenaen la base de datos como un mensaje pendiente de ser enviado.

Proceso construir_mensaje_gratuito:Recibe el cuerpo de un mensaje de informacin, el nmero detelfono del destinatario y calcula los restantes datosnecesarios para la construccin de un mensaje, tomando comoremitente el propio sistema, el coste de este tipo de mensajesser gratuito. El mensaje se almacena en la base de datos comopendiente de ser enviado.

Proceso enviar_mensaje:Recibe todos los datos de un mensaje y controla desvo yestado del telfono para ver si lo puede enviar, en casoafirmativo lo actualizar en la base de datos como recibido y loenviar directamente al usuario destino.

Flujo de datos flujo_mensaje:Representa la informacin que un usuario enva al sistemacuando manda un mensaje, ya sea a otro usuario o para realizaralguna operacin.

Flujo de datos flujo_conectar:Es el flujo de datos que el usuario enva al sistema de formaautomtica cuando enciende su telfono mvil.

- 35 -Flujo de datos conectar_lee_bd:Representa la informacin que necesita extraer el proceso"Conectar" de la base de datos para conocer su estado y sitiene mensajes pendientes.Flujo de datos conectar_act_bd:Representa los datos necesarios para las actualizaciones que hade hacer el proceso "Conectar" en la base de datos, referentesal cambio de estado de desconectado a conectado y a laactualizacin de los mensajes pendientes como recibidos.Flujo de datos flujo_desconectar:Es el flujo de datos que el usuario enva al sistema de formaautomtica cuando apaga su telfono mvil.Flujo de datos desconectar_lee_bd:Representa la informacin que necesita extraer el proceso"Desconectar" de la base de datos para conocer su estado.Flujo de datos desconectar_act_bd:Representa los datos necesarios para la actualizacin que ha dehacer el proceso "Desconectar" en la base de datos, referente alcambio de estado de conectado a desconectado.Flujo de datos flujo_recarga:Contiene los datos necesarios para realizar la recarga de untelfono mvil: el nmero y la cantidad a recargar.Flujo de datos recargar_saldo_lee_bd:Representa la informacin referente al saldo actual deltelfono, que necesita extraer el proceso "Recargar_saldo" dela base de datos.Flujo de datos recargar_saldo_act_bd:Representa los datos necesarios para la actualizacin que ha derealizar el proceso "Recargar_saldo" en la base de datos,actualizando el saldo del telfono que se ha recargado.Flujo de datos flujo_consulta:Contiene los datos necesarios para realizar una consulta desaldo: nmero de telfono.

- 36 -Flujo de datos consultar_saldo_lee_bd:Representa la informacin referente al saldo actual deltelfono, que necesita extraer el proceso "Consultar_saldo" dela base de datos.

Flujo de datos flujo_desvo:Contiene los datos necesarios para realizar un desvo: elnmero de telfono a desviar y el telfono al que serdesviado.

Flujo de datos activar_desvio_lee_bd:Representa la informacin referente al desvo actual deltelfono, que necesita extraer el proceso "Activar_desvo" dela base de datos.

Flujo de datos activar_desvio_act_bd:Representa los datos necesarios para la actualizacin que ha dehacer el proceso "Activar_desvo" en la base de datos para queconste el nuevo nmero al que se van a desviar los mensajes.

Flujo de datos flujo_no_desvo:Contiene el nmero de telfono que lo solicita, necesario pararealizar la operacin.

Flujo de datos desactivar_desvio_act_bd:Representa los datos necesarios para la actualizacin que ha dehacer el proceso "Desactivar_desvo" en la base de datos paraque ese telfono conste como que no tiene activado el desvo.

Flujo de datos datos_mensaje:Contiene todos los datos referentes a un mensaje.

Flujo de datos descontar_saldo_lee_bd:Representa la informacin referente al saldo actual del telfonoy a la tarifa que hay que aplicar, que necesita extraer elproceso "Descontar_saldo" de la base de datos para llevar acabo su funcin.

- 37 -Flujo de datos descontar_saldo_act_bd:Representa los datos necesarios para la actualizacin de saldoque debe realizar el proceso "Descontar_saldo" en la base dedatos para que conste el nuevo saldo una vez descontado elcoste del envo del mensaje y los datos referentes al mensajeque ser almacenado en la base de datos para posteriormenteser enviado.

Flujo de datos flujo_enviar_mensaje:Contiene todos los datos que componen un mensaje,necesarios para que el mensaje pueda ser enviado.

Flujo de datos construir_mensaje_act_bd:Representa todos los datos referentes a un mensaje nuevo queser insertado en la base de datos por el proceso"Construir_mensaje_gratuito".

Flujo de datos enviar_mensaje_lee_bd:Representa los datos necesarios para enviar un mensaje: elestado y el desvo del telfono destino, que necesita extraer elproceso "Enviar_mensaje" de la base de datos.

Flujo de datos enviar_mensaje_act_bd:Representa los datos necesarios para la actualizacin que ha dehacer el proceso "Enviar_mensaje" en la base de datos paraque el mensaje conste como recibido.

Almacn Base de Datos:Representa la base de datos del sistema, que ser consultada ymodificada por los procesos conectar, desconectar,recargar_saldo, activar_desvo, descontar_saldo yenviar_mensaje, ser consultada por el procesoconsultar_saldo y ser modificada por los procesosconstruir_mensaje_gratuito y desactivar_desvo.

NIVEL 2: SUBSISTEMA USUARIO2.5.Recargar_saldoesajen_mtosdarecargar_saldo_act_bdrecargar_saldo_lee_bdBase de datos2.6.Consultar_saldoconsultar_saldo_lee_bddatos_mensajconstruir_mensaje_act_bdcojo_fluaultnseflujo_usuario2.1. Distinguir_flujo_usuarioflujo_mensaje2.4. Ver_tipo_de_mensajeflujo_desvioflujo_no_desviotda_mosenjesa2.7. Activar_desvodatos_mensaje1.3.4.2.Construir_mensaje_gratuitojesaenms_todanviar_mflujo_errctanectaonedescoflujo_o _cfluj2.8.Desactivar_desvoconectar_act_bd2.2. Conectarconectar_lee_bddesactivar_desvio_act_bdactivar_desvio_lee_bdactivar_desvio_act_bdensajeBase de datos2.9.Descontar_saldoflujo_enviar_mensaje1.3.4.3.Enviar_mensajesalida_a_usuariodesconectar_lee_bd2.3. Desconectardesconectar_act_bddescontar_saldo_lee_bddescontar_saldo_act_bdBase de datosFIGURA 4enviar_mensaje_lee_bdenviar_mensaje_act_bd- 38 -flujo_recarga

- 39 -

- 40 -Nivel 3:1.2. Gestin usuariosProceso Mostrar_usuarios:Muestra en la pantalla una lista de todos los usuarios existentesen la base de datos, de forma que se puedan seleccionar deforma individual para actuar sobre ellos.Proceso seleccionar_accin_gestin_usuarios:Distingue la operacin que el administrador desea realizar conrespecto a la gestin de usuarios y dependiendo de sta arrojala informacin necesaria para llevarla a cabo.Proceso nuevo_usuario:Da de alta un nuevo usuario en el sistema, almacenando en labase de datos los datos proporcionados por el formulariorellenado por el administrador. En el caso en el que elpropietario del telfono que se desea dar de alta no est yaregistrado en el sistema, tambin habr que registrar sus datos.Proceso eliminar_usuario:Partiendo del NIF introducido por el administrador,comprueba que est registrado en el sistema, en casoafirmativo le mostrar los nmeros de telfono que tieneregistrados para que d de baja los que desee. Si una personada de baja todos sus telfonos registrados tambin se darn debaja de forma automtica sus datos personales.Proceso actualizar_usuario:Partiendo del NIF introducido por el administrador, muestrasus datos personales y los de sus telfonos para que eladministrador pueda actuar sobre ellos de forma individual ymodificarlos.Flujo de datos mostrar_usuarios_lee_bd:Representa los datos de todos los usuarios de nuestro sistema,que sern mostrados por el proceso Mostrar_usuarios.Flujo de datos datos_nuevo_usuario:Representa el NIF del usuario que desea dar un telfono dealta.

- 41 -Flujo de datos nuevo_usuario_lee_bd:Representa los datos que necesita extraer el procesoNuevo_usuario de la base de datos para determinar si elusuario que se desea dar de alta ya existe o si su propietario yatiene algn telfono dado de alta, en cuyo caso recuperar susdatos para no tener que volver a introducirlos.Flujo de datos nuevo_usuario_act_bd:Representa los datos necesarios para crear un nuevo usuario enel sistema y registrarlo en la base de datos de formapermanente. Opcionalmente si el propietario del telfono noposee otro telfono registrado, tambin contendr sus datospersonales para poder registrarlo.Flujo de datos datos_eliminar_usuario:Representa el NIF del propietario del telfono o telfonos quese deseen dar de baja.Flujo de datos eliminar_usuario_lee_bd:Representa los datos acerca del propietario y sus telfonos, quese han de extraer de la base de datos.Flujo de datos eliminar_usuario_act_bd:Representa el nmero de telfono que se desea dar de baja yopcionalmente el NIF de su propietario, necesarios pararealizar la eliminacin de un usuario en la base de datos.Flujo de datos datos_actualizar_usuario:Contiene NIF del usuario del cul se van a mostrar y modificarsus datos.Flujo de datos actualizar_usuario_lee_bd:Representa los datos del propietario y de sus telfonos que elproceso Actualizar_usuario extrae de la base de datospartiendo del NIF proporcionado para mostrarlos y poderrealizar los cambios de forma ms clara.Flujo de datos actualizar_usuario_act_bd:Representa los datos de una persona y sus telfonos que hansido modificados y sern necesarios para realizar laactualizacin en la base de datos del sistema.

- 42 -Almacn Base de Datos:Representa la base de datos del sistema, que ser consultada ymodificada por los procesos nuevo_usuario,eliminar_usuario y actualizar_usuario y que serconsultada por el proceso mostrar_usuarios.

NIVEL 3: GESTION USUARIOSsalida_a_pantalla1.2.3.Nuevo_usuariovoue_ndastos_uruaionuevo_usuario_act_bdnuevo_usuario_lee_bdsalida_a_pantalladatos_actualizar_usuariodatosdatos_usuario1.2.1.Mostrar_usuariosdatos_usuario1.2.2.Seleccionar_accin_gestin_usuarios1.2.4.Actualizar_usuario_elimactualizar_usuario_act_bdactualizar_usuario_lee_bdinar_usuariosalida_a_pantalla1.2.5.Eliminar_usuarioeliminar_usuario_act_bdeliminar_usuario_lee_bdmostrar_usuarios_lee_bdBase de DatosFIGURA 5- 43 -

- 44 -Nivel 3:1.3. Gestin sistema

Proceso seleccionar_accin_gestin_sistema:Distingue la operacin que el administrador desea realizar conrespecto a la gestin del sistema y dependiendo de sta arrojala informacin necesaria para llevarla a cabo.

Proceso tarifas:Se encarga de la gestin de las tarifas de costes de mensaje queaplicar nuestro sistema.

Proceso numero_sistema:Cambia el nmero actual del sistema por otro nmeroproporcionado por el administrador.

Proceso enviar_mensaje_a_todos:Enva un mensaje de propsito general a todos los usuarios denuestro sistema.

Flujo de datos datos_tarifas:Representa un conjunto de datos referentes a la gestin de lastarifas actuales del sistema.

Flujo de datos datos_n_sistema:Informacin sobre el nmero del sistema.

Flujo de datos datos_enviar_mensaje_a_todos:Contiene el cuerpo de un mensaje de informacin general queser enviado a todos los usuarios del sistema.

Flujo de datos nmero_sistema_lee_bd:Representa el nmero que consta como nmero actual delsistema.

Flujo de datos nmero_sistema_act_bd:Representa un nmero que ser registrado como el nuevonmero de sistema.

daardas_viar_ensa_a_t- 45 -Almacn Datos sistema:Representa un fichero que contiene datos sobre el sistema,como su nmero, en este caso el proceso nmero_sistemaconsulta y modifica este dato.datos_sistemasalida_a_usuario

FIGURA 61.3.1.Seleccionar_accin_gestin_sistematos_tifas1.3.3.Nmero_sistema1.3.2. Tarifas1.3.4.Enviar_mensaje_a_todosdatos_n_sistematoenmjeodossalida_a_pantallasalida_a_pantallanmero_sistema_lee_bdnmero_sistema_act_bd

Datos SistemaNIVEL 3: GESTION SISTEMA

- 46 -Nivel 4:1.3.2. Tarifas

Proceso mostrar_tarifas:Muestra en la pantalla una lista de todas las tarifas registradasen la base de datos.

Proceso seleccionar_opcin_tarifa:A partir de los datos proporcionados por el administradordistingue su peticin y arroja los datos necesarios para llevarlaa cabo.

Proceso nueva_tarifa:Crea una nueva tarifa a partir de la informacin que le llega, sino le llega ninguna informacin la pedir. Estos datos serncomprobados antes de almacenarse en la base de datos.

Proceso borrar_tarifa:Borra una tarifa que indicamos mediante la seleccin dealguna de las tarifas existentes.

Proceso modificar_tarifa:Tras seleccionar una tarifa existente y modificar sus datos,comprueba que sean vlidos los cambios, pide confirmacin yalmacena los cambios en la base de datos.

Flujo de datos mostrar_tarifas_lee_bd:Representa los datos que el proceso Mostrar_tarifas debeextraer de la base de datos para poder mostrar todas las tarifasexistentes.

Flujo de datos nueva_tarifa:Opcionalmente contiene varios datos proporcionados por eladministrador y que son necesarios para crear una tarifa nueva.

Flujo de datos nueva_tarifa_lee_bd:Representa los datos que el proceso Nueva_tarifa ha deextraer de la base de datos para saber si existe o no otra tarifaya creada con esos datos.

- 47 -Flujo de datos nueva_tarifa_act_bd:Representa todos los datos de una tarifa que necesita elproceso Nueva_tarifa para poder llevar a cabo el registro deuna nueva tarifa en la base de datos del sistema.

Flujo de datos borrar_tarifa:Contiene el identificador de tarifa necesario para poder borraruna tarifa existente.

Flujo de datos borrar_tarifa_lee_bd:Representa los datos que el proceso Borrar_tarifa extrae dela base de datos para saber si existe la tarifa que se deseaborrar.

Flujo de datos borrar_tarifa_act_bd:Representa el identificador de tarifa necesario para que elproceso Borrar_tarifa pueda realizar el borrado de la tarifasolicitada en la base de datos.

Flujo de datos modificar_tarifa:Contiene nuevos datos proporcionados por el administradoracerca de una tarifa en concreto que ser actualizada con estosnuevos datos.

Flujo de datos modificar_tarifa_lee_bd:Representa los datos que el proceso Modificar_tarifa ha deextraer de la base de datos para una vez seleccionada una tarifase le muestren todos sus datos al administrador y as puedamodificarlos de forma ms cmoda.

Flujo de datos modificar_tarifa_act_bd:Representa los nuevos datos con los que se va a actualizar latarifa en cuestin en la base de datos.

Almacn Base de Datos:Representa la base de datos del sistema, que ser consultada ymodificada por los procesos nueva_tarifa, borrar_tarifa ymodificar_tarifa, y ser consultada por mostrar_tarifa.

NIVEL 4: TARIFAS1.3.2.3.Nueva_tarifasalida_a_pantallanueva_tarifa_act_bdnueva_tarifa_lee_bddatos_tarifas1.3.2.1.Mostrar_tarifas1.3.2.2.datos_tarifasSeleccionar_opcin_tarifaborrar_tarifa1.3.2.4.Borrar_tarifaar_tarificodmifasalida_a_pantallaborrar_tarifa_act_bdborrar_tarifa_lee_bd1.3.2.5.Modificar_tarifasalida_a_pantallamodificar_tarifa_act_bdmodificar_tarifa_lee_bdmostrar_tarifas_lee_bdBase de DatosFIGURA 7- 48 -eva_rifnutaa

- 49 -Nivel 4:1.3.4. Enviar mensaje a todos

Proceso tomar_el_siguiente_destino:Extrae de la base de datos del sistema todos los nmeros detelfono registrados y los va proporcionando uno a uno.

Proceso construir_mensaje_gratuito:Recibe el cuerpo de un mensaje de informacin, el nmero detelfono del destinatario y calcula los restantes datosnecesarios para la construccin de un mensaje, tomando comoremitente el propio sistema, el coste de este tipo de mensajesser gratuito. El mensaje se almacena en la base de datos comopendiente de ser enviado.

Proceso enviar_mensaje:Recibe todos los datos de un mensaje y controla desvo yestado del telfono para ver si lo puede enviar, en casoafirmativo lo actualizar en la base de datos como recibido y loenviar directamente al usuario destino.

Flujo de datos flujo_tomar_el_siguiente_destino:Representa una seal que se genera cuando el procesoEnviar_mensaje enva un mensaje y que se utilizar para quese genere el siguiente nmero de destino al que hay quemandarle el prximo mensaje

Flujo de datos tomar_sig_destino_lee_bd:Representa el nmero de telfono extrado de forma secuencialde todos los nmeros de telfono registrados que representa elsiguiente nmero al que se le va a enviar el mensaje.

Flujo de datos datos_mensaje:Contiene los datos necesarios para construir un mensaje.

- 50 -Flujo de datos flujo_enviar_mensaje:Contiene todos los datos que componen un mensaje,necesarios para que el mensaje pueda ser enviado.

Flujo de datos construir_mensaje_act_bd:Representa todos los datos referentes a un mensaje nuevo queser insertado en la base de datos por el proceso"Construir_mensaje_gratuito".

Flujo de datos enviar_mensaje_lee_bd:Representa los datos necesarios para enviar un mensaje: elestado y el desvo del telfono destino, que necesita extraer elproceso "Enviar_mensaje" de la base de datos.

Flujo de datos enviar_mensaje_act_bd:Representa los datos necesarios para la actualizacin que ha dehacer el proceso "Enviar_mensaje" en la base de datos paraque el mensaje conste como recibido.

Almacn Base de Datos:Representa la base de datos del sistema, que ser consultada ymodificada por el proceso enviar_mensaje, ser consultadapor el procesotomar_el_siguiente_destinoy sermodificada por el proceso construir_mensaje_gratuito.

tomar_sig_destino_lee_bd- 51 -salida_a_usuariodatos_enviar_mensaje_a_todos 1.3.4.1. Tomar_el_siguiente_destino1.3.4.3.Enviar_mensajeflujo_tomar_el_siguiente_destinoconstruir_mensaje_act_bd

datos_mensaje 1.3.4.2. Construir_ flujo_enviar_mensajemensaje_gratuitoenviar_mensaje_lee_bdenviar_mensaje_act_bdNIVEL 4: ENVIAR MENSAJES A TODOS

Base de datosFIGURA 8

- 52 -2.3.Diccionario de Datos.

A continuacin se presenta una lista, organizada por niveles, de losdatos utilizados por el sistema y que grficamente se encuentranpresentes en los flujos de datos y en los almacenes del conjunto deDFDs.

persona = { @NIF + nombre + apellidos + direccin +datos_bancarios }

telefono = { @numero + saldo + estado + NIF }

mensaje = { @fecha + @hora + @numero + destino + recibido +cuerpo + coste_mensaje + id_tarifa }

tarifa = { @id_tarifa + dia_inicio + dia_fin + hora_inicio + hora_fin +fecha_vigencia + coste }

desvio = {@numero_desvia + numero_recibe }

[ NIF | nombre | apellidos | direccin | datos_bancarios | numero | saldo| estado | fecha | hora | cuerpo | recibido | destino | coste_mensaje| id_tarifa | dia_inicio | dia_fin | hora_inicio | hora_fin |fecha_vigencia | coste | numero_desvia | numero_recibe ] =itemdedatos

itemdedatos = {a-z, A-Z, 0-9}

- 53 -NIVEL 0:flujo_administrador /*Contiene datos acerca de la operacin que eladministrador desea realizar en el sistema, usando suterminal*/flujo_usuario /*Contiene informacin acerca de la peticin deservicio que nos hace un usuario de nuestro sistemamediante su telfono mvil*/flujo_web /*Contiene los datos extrados del formulario web y quesern necesarios para dar de alta o de baja al cliente quelo solicita*/salida_a_pantalla = { itemdedatos }salida_a_usuario = mensajeNIVEL 1:flujo_web = [datos_alta | datos_baja]datos_alta = NIFalta_lee_bd = personaalta_act_bd = telefono + NIF + (persona)datos_baja = NIFbaja_lee_bd = persona + {telefono}baja_act_bd = numero + (NIF)salida_administrador = [salida_a_pantalla | salida_gestion_sistema]NIVEL 2: (1. subsistema administrador)flujo_administrador = [datos_usuario | datos_sistema | datos_historia| datos_estadisticas]datos_historia = numerohistoria_lee_bd = {mensaje}datos_estadisticas = numeroestadisticas_lee_bd = {mensaje}salida_gestion_sistema = [ salida_a_pantalla | salida_a_usuario ]

- 54 -NIVEL 3: (1.2. gestin usuarios)

datos_usuario = [ datos_nuevo_usuario | datos_actualizar_usuario |datos_eliminar_usuario ]datos_nuevo_usuario = NIFnuevo_usuario_lee_bd = personanuevo_usuario_act_bd = telefono + NIF + (persona)datos_actualizar_usuario = NIFactualizar_usuario_lee_bd = persona + (telefono)actualizar_usuario_act_bd = (persona) + ({telefono})datos_eliminar_usuario = NIFeliminar_usuario_lee_bd = persona + {telefono}eliminar_usuario_act_bd = numero + NIF

NIVEL 3: (1.3. gestin sistema)

datos_sistema = [ datos_tarifas | datos_n_sistema |datos_enviar_mensaje_a_todos ]datos_n_sistema = numeronumero_sistema_lee_bd = numeronumero_sistema_act_bd = numero

NIVEL 4: (1.3.2. tarifas)

datos_tarifas = [ nueva_tarifa | borrar_tarifa | modificar_tarifa ]mostrar_tarifas_lee_bd = {tarifa}nueva_tarifa = (tarifa)nueva_tarifa_lee_bd = tarifanueva_tarifa_act_bd = tarifaborrar_tarifa = id_tarifaborrar_tarifa_lee_bd = tarifaborrar_tarifa_act_bd = id_tarifamodificar_tarifa = id_tarifamodificar_tarifa_lee_bd = tarifamodificar_tarifa_act_bd = tarifa

- 55 -NIVEL 4: (1.3.4. enviar mensajes a todos)datos_enviar_mensaje_a_todos = cuerpodatos_mensaje = mensajeflujo_enviar_mensaje = mensajeflujo_tomar_el_siguiente_destino = destinotomar_sig_destino_lee_bd = destinoconstruir_mensaje_act_bd = mensaje + numeroenviar_mensaje_lee_bd = estado + numeroenviar_mensaje_act_bd = mensajeNIVEL 2: (2. subsistema usuario)flujo_usuario = [conectar | desconectar | flujo_mensaje]flujo_mensaje = [flujo_recarga | flujo_consulta | flujo_desvio |flujo_no_desvio | flujo_mensaje]flujo_conectar = numeroconectar_lee_bd = estado + ({mensaje})conectar_act_bd = numero + estado + ({mensaje})flujo_desconectar = numerodesconectar_lee_bd = estadodesconectar_act_bd = numero + estadoflujo_recarga = numero + saldorecargar_saldo_lee_bd = saldorecargar_saldo_act_bd = numero + saldoflujo_consulta = numeroconsultar_saldo_lee_bd = saldoflujo_desvio = desvioactivar_desvio_lee_bd = numeroactivar_desvio_act_bd = desvioflujo_no_desvio = numerodesactivar_desvio_act_bd = numerodatos_mensaje = mensajeflujo_enviar_mensaje = mensajeenviar_mensaje_lee_bd = estado + numeroenviar_mensaje_act_bd = mensajedescontar_saldo_lee_bd = saldo + costedescontar_saldo_act_bd = numero + saldo + mensajeconstruir_mensaje_act_bd = mensaje + numero

2.4.Descripcin deldominiodelainformacin.

Para la descripcin del dominio de la informacin se ha realizadoun esquema conceptual usando la metodologa propuesta por Peter Cheny hemos obtenido el siguiente diagrama Entidad-Interrelacin.

Para realizar dicho esquema conceptual hemos considerado lossiguientes supuestos:

Supuestos

S1 Se mantendr la siguiente informacin acerca de las personas dadas dealta en la compaa: nombre, apellidos, direccin, NIF y nmero de cuentabancaria.

S2 Se considera que no existen dos NIF iguales para la misma persona.

S3 Consideramos que aunque el usuario tenga varios telfonos en lacompaa, los datos bancarios, as como la direccin del usuario, sern losmismos para todos sus telfonos dados de alta.

S4 Una persona puede tener varios telfonos en nuestro sistema pero untelfono slo puede tener un propietario.

S5 Un telfono no podr existir en nuestro sistema si no tiene asociado unpropietario registrado.

S6 Se mantendr la siguiente informacin acerca de los telfonos: sunmero, saldo asociado y estado (conectado o desconectado).

S7 Se considera que los nmeros de telfono mvil son nicos.

- 56 -

- 57 -S8 Un telfono podr desviarse a otro o no hacerlo.

S9 Un telfono puede recibir desvos de ninguno, uno o muchostelfonos.

S10 Slo existirn en el sistema aquellos desvos que no sean cclicos, esdecir, que un telfono no se termine desviando a s mismo tras una serie dedesvos intermedios.

S11 Un telfono puede enviar o ningn mensaje o todos los mensajes quequiera, pero un mensaje slo puede ser enviado por un nico telfono.

S12 Para que pueda existir un mensaje debe existir un telfono que loenve.

S13 Se considera que un mismo telfono no puede enviar dos mensajes almismo tiempo.

S14 Un mensaje ser identificado por la fecha, la hora de envo y elnmero de telfono.

S15 Cada mensaje llevar asociado el nmero de destino al que serenviado, el cuerpo del mensaje, un estado recibido (si o no) que indicar siel mensaje ya le ha llegado a su destinatario, y un coste asociado a la tarifavigente.

S16 A cada mensaje dependiendo de la fecha y hora de envo lecorresponder una tarifa.

S17 A cada mensaje le corresponde una nica tarifa, pero una tarifapuede ser aplicada a varios mensajes o a ninguno.

S18 Se considera que una tarifa se identifica mediante un nmero enteroid_tarifa, que ser nico para cada tarifa.

S19 Con respecto a las tarifas se desea sostener informacin acerca delda de la semana de inicio, da de la semana de fin, hora de inicio, hora defin, coste por mensaje y fecha de vigencia.

- 58 -Anlisis de los tipos de entidad:Tipo de entidad persona:Representa una persona del mundo real, dada de alta ennuestro sistema.Se consideran los siguientes atributos:! NIF: representa el NIF de la persona y va a ser elidentificador de esta entidad (supuesto 1 y 2).! Nombre: representa el nombre de dicha persona(supuesto 1).! Apellidos: representa los apellidos de dicha persona(supuesto 1).! Direccin: representa la direccin de dicha persona(supuesto 1).! datos bancarios: representa la cuenta bancaria delusuario en la que se van a cargar las recargas(supuesto 1).Tipo de entidad telfono:Representa un telfono dado de alta en nuestro sistema.Se consideran los siguientes atributos:! nmero: es el nmero de ese telfono mvil, que va aser nico (supuesto 6 y 7).! Saldo: indica el saldo que en ese momento tieneasociado el telfono (supuesto 6).! Estado: indica el estado del telfono, que puede serconectado o desconectado del sistema (supuesto 6).Tipo de entidad mensaje:Representa un mensaje que ha sido enviado por nuestrosistema.Se consideran los siguientes atributos:! Fecha: fecha en la que el mensaje se envi, identificaal mensaje junto con la hora (supuesto 13 y 14).! Hora: hora en la que el mensaje se envi, identificaal mensaje junto con la fecha de envo (supuesto 13 y14).

- 59 -! Destino: nmero del usuario al que se le mandar ofue mandado el mensaje (supuesto 15).! Cuerpo: representa el texto que compone el mensaje(supuesto 15).! Recibido: indica si el destinatario del mensaje ya loha sido recibido o no (supuesto 15).! Coste_mensaje: indica el coste de ese mensaje segnla tarifa que le corresponda, se hereda del atributocoste del tipo de entidad tarifa, se duplica porqueaumenta el rendimiento aunque haya redundancia(supuesto 15).

Tipo de entidad tarifa:

Representa una tarifa de coste de mensaje que ser aplicada alos mensajes que cumplan unas caractersticas.Se consideran los siguientes atributos:! id_tarifa: es un nmero entero que identifica deforma nica la tarifa (supuesto 18).! da_inicio: da de la semana en el que empieza aaplicarse la tarifa (supuesto 19).! da_fin: da de la semana en el que finaliza laaplicacin de la tarifa (supuesto 19).! hora_inicio: hora en la que empieza a aplicarse latarifa (supuesto 19).! hora_fin: hora a la que finaliza la aplicacin de latarifa (supuesto 19).! coste: coste por mensaje asociado a dicha tarifa(supuesto 19).! fecha_vigencia: fecha de vigencia de la tarifa(supuesto 19).

- 60 -Anlisis de los tipos de interrelacin:

Tipo de interrelacin P-T:

Relaciona el tipo de entidad persona con el tipo de entidadtelfono de forma que a una persona le corresponden uno ovarios telfonos, pero un telfono es propiedad de una solapersona (supuesto 3 y 4). Esta interrelacin es dbil porexistencia (supuesto 5).

Tipo de interrelacin T-M:

Relaciona el tipo de entidad telfono con el tipo de entidadmensaje de forma que un telfono puede enviar cero o variosmensajes, pero un mensaje slo puede ser enviado por unnico telfono (supuesto 11). Esta interrelacin es dbil porexistencia (supuesto 12).

Tipo de interrelacin TA-M:

Relaciona el tipo de entidad mensaje con el tipo de entidadtarifa de forma que a un mensaje le corresponde una nicatarifa, pero una tarifa puede ser aplicada a varios mensajes(supuestos 16 y 17).

Tipo de interrelacin T-T:

Relaciona el tipo de entidad telfono consigo mismo, de formaque un telfono se desva a ninguno o a un telfono, y untelfono recibe desvos de ninguno o muchos telfonos(supuesto 8 y 9).

(1,1)(1,1)propiedad_dees_propietaria_de(1,1)(0,n)(0,n)es_aplicada_a(1,n)le_corresponde- 61 -FIGURA 9PERSONAP-TTELEFONOT-TEX(0,1)se_desva_a(0,n)recibe_desvos_denumerosaldoestadoMENSAJETARIFAcuerpodestino

recibidofechahoracoste_mensajehora_inicio

hora_findia_inicio

dia_finDiagrama Entidad-Interrelacin (Peter Chen)

NIFnombreapellidosdirecciondatos_bancariosid_tarifacostefecha_vigencia1:NT-Mson_enviados_porenvaID1:N1:N1:NTA - M

- 62 -2.5.Validacin del anlisis.

Matriz Entidad / Entidad

Esta matriz muestra las interrelaciones entre los tipos de entidad dela base de datos desarrollada como soporte para la informacin que hade manejar el sistema software.

La Base de Datos consta de los siguientes tipos de entidades:PersonaTelfonoMensajeTarifa

Los tipos de interrelaciones existentes entre ellas son las siguientes:Interrelacin Persona - TelfonoInterrelacin Telfono - MensajeInterrelacin Mensaje - TarifaInterrelacin Telfono - TelfonoPERSONA TELFONO MENSAJETARIFAPERSONA

TELFONOP-TP-T

T-TT-MMENSAJET-MTA-MTARIFATA-MTABLA 1

- 63 -Matriz Requisito / Funcin

Esta matriz muestra en las filas los requisitos que debe cumplirnuestro sistema y en las columnas los distintos subsistemas en que sedivide el propio sistema, se trata de validar los requisitos con las funcionesa nivel de subsistema.

Las casillas marcadas con una X representan que dicho requisito escubierto por el subsistema con el que se relaciona.

Podemos observar que todos los requisitos de nuestro sistema soncubiertos satisfactoriamente por algn subsistema.SUBSISTEMASUBSISTEMAADMINISTRADOR USUARIOALTA/BAJA1X2X3456XXXXXXX7891011121314XXXXXXXX151617181920212223XXXXXXXXXTABLA 2

- 64 -Matriz Requisito / Entidad

Esta matriz muestra en las filas los requisitos que debe cumplirnuestro sistema y en las columnas los distintos tipos de entidad existentesen nuestro sistema.

Las casillas marcadas con una X representan que dicho requisito escubierto por el tipo de entidad con el que se relaciona.

Podemos observar que todos los requisitos de nuestro sistema soncubiertos satisfactoriamente por algn o algunos tipo o tipos de entidad.TARIFA

XMENSAJE

X

XXXXXXTELFONO

XXXX

XXXXXXX

XXXX1234567891011121314151617181920PERSONAXXXXXXXXXXXXXX

XXXX21X22X23XTABLA 3

- 65 -3Diseo del sistemasoftware.

- 66 -3.1.Refinamientodeldominiodelainformacin.

En el desarrollo de los DFDs en el apartado 2.2. Descripcin deldominio de la funcin, alcanzamos el nivel de primitivas y consideramosque no sera necesario refinar ms.

En este apartado comentaremos brevemente los procesos internosque debera de realizar cada uno de estos procesos primitivos paradesarrollar su funcin de forma correcta.

Esta descripcin se har siguiendo el orden de numeracin querecibieron las funciones primitivas en los DFDs.

1. Subsistema administradorEste subsistema se encarga de gestionar las peticiones del administradoracerca de la gestin de usuarios, la gestin del propio sistema y la consultade la historia y las estadsticas.

1.2. Subsistema gestin usuariosEste subsistema se encarga de gestionar las operaciones que eladministrador podr realizar con la informacin de los usuarios, estasoperaciones sern dar de alta, dar de baja, consultar y modificar.

1.2.1. Proceso Mostrar_usuariosMuestra en la pantalla una lista de todos los usuarios existentesen la base de datos, de forma que se puedan seleccionar deforma individual para actuar sobre ellos.

1.2.2. Proceso seleccionar_accin_gestin_usuariosDistingue la operacin que el administrador desea realizar conrespecto a la gestin de usuarios y dependiendo de sta arrojala informacin necesaria para llevarla a cabo.

- 67 -1.2.3. Proceso nuevo_usuarioDa de alta un nuevo usuario en el sistema, almacenando en labase de datos los datos proporcionados por el formulariorellenado por el administrador. En el caso en el que elpropietario del telfono que se desea dar de alta no est yaregistrado en el sistema, tambin habr que registrar sus datos.1.2.4. Proceso actualizar_usuarioPartiendo del NIF introducido por el administrador, muestrasus datos personales y los de sus telfonos para que eladministrador pueda actuar sobre ellos de forma individual ymodificarlos.1.2.5. Proceso eliminar_usuarioPartiendo del NIF introducido por el administrador,comprueba que est registrado en el sistema, en casoafirmativo le mostrar los nmeros de telfono que tieneregistrados para que d de baja los que desee. Si una personada de baja todos sus telfonos registrados tambin se darn debaja de forma automtica sus datos personales.1.3. Subsistema gestin sistemaSe encarga de gestionar las operaciones que el administrador puederealizar con informacin que afecta directamente al funcionamientodel sistema, tal como el cambio del nmero predeterminado delsistema, operaciones con las tarifas de costes de mensajes y envosde mensajes de propsito general a todos los usuarios del sistema.1.3.1. Proceso seleccionar_accin_gestin_sistemaDistingue la operacin que el administrador desea realizar conrespecto a la gestin del sistema y dependiendo de sta arrojala informacin necesaria para llevarla a cabo.1.3.2. Subsistema tarifasSe encarga de la gestin de las tarifas de costes de mensaje queaplicar nuestro sistema.1.3.2.1. Proceso mostrar_tarifasMuestra en la pantalla una lista de todas las tarifasregistradas en la base de datos.

- 68 -1.3.2.2. Proceso seleccionar_opcin_tarifaA partir de los datos proporcionados por eladministrador distingue su peticin y arroja los datosnecesarios para llevarla a cabo.1.3.2.3. Proceso nueva_tarifaCrea una nueva tarifa a partir de la informacin que lellega, si no le llega ninguna informacin la pedir. Estosdatos sern comprobados antes de almacenarse en labase de datos.1.3.2.4. Proceso borrar_tarifaBorra una tarifa que indicamos mediante la seleccin dealguna de las tarifas existentes.1.3.2.5. Proceso modificar_tarifaTras seleccionar una tarifa existente y modificar susdatos, comprueba que sean vlidos los cambios, pideconfirmacin y almacena los cambios en la base dedatos.1.3.3. Proceso numero_sistemaCambia el nmero actual del sistema por otro nmeroproporcionado por el administrador.1.3.4. Subsistema enviar_mensaje_a_todosEnva un mensaje de propsito general a todos los usuarios denuestro sistema.1.3.4.1. Proceso tomar_el_siguiente_destinoExtrae de la base de datos del sistema todos los nmerosde telfono registrados y los va proporcionando uno auno.1.3.4.2. Proceso construir_mensaje_gratuitoRecibe el cuerpo de un mensaje de informacin, elnmero de telfono del destinatario y calcula losrestantes datos necesarios para la construccin de unmensaje, tomando como remitente el propio sistema, elcoste de este tipo de mensajes ser gratuito. El mensajese almacena en la base de datos como pendiente de serenviado.

- 69 -1.3.4.3. Proceso enviar_mensajeRecibe todos los datos de un mensaje y controla desvoy estado del telfono para ver si lo puede enviar, en casoafirmativo lo actualizar en la base de datos comorecibido y lo enviar directamente al usuario destino.1.4. Proceso historiaConsulta en la base de datos la historia de un determinado telfono ymuestra al administrador toda la informacin de las operacionesrealizadas por dicho telfono.1.5. Proceso estadsticasConsulta en la base de datos del sistema y extrae y calcula variainformacin en forma de estadsticas acerca de un telfonoproporcionado. Dicha informacin se le mostrar al administrador.2. Subsistema usuarioSe encarga de gestionar las peticiones que puede hacer un usuario mediantesu telfono mvil: conectarse, desconectarse, recargar saldo, consultarsaldo, activar el desvo, desactivar el desvo o enviar un mensaje de texto aotro usuario.2.1. Proceso distinguir_flujo_usuarioDistingue el tipo de seal que ha enviado un usuario al sistemay dependiendo de sta arrojar varios tipos de flujos condistinta informacin.2.2. Proceso conectarCuando el usuario enciende su telfono se ejecuta este procesoque se encarga de actualizar en la base de datos su estado dedesconectado a conectado y de ver si tiene mensajespendientes de recibir, en cuyo caso se le enviarn.2.3. Proceso desconectarCuando el usuario apaga su telfono se ejecuta este procesoque se encarga de actualizar su estado de conectado adesconectado en la base de datos para que el sistema tengaconstancia de ello.

- 70 -2.4. Proceso ver_tipo_de_mensajeSe encarga de distinguir entre los distintos tipos de mensajesque puede mandar un usuario, que representan distintasoperaciones, y de arrojar varios flujos con distinta informacinextrada del cuerpo del mensaje que ser necesaria para llevara cabo la operacin solicitada.2.5. Proceso recargar_saldoDado un nmero de telfono y una cantidad a recargar,consulta el saldo actual de ese telfono y lo actualizasumndole la cantidad de recarga. Construye el cuerpo de unmensaje que informar al usuario de su nuevo saldo.2.6. Proceso consultar_saldoDado un nmero de telfono consulta su saldo en la base dedatos y construye el cuerpo de un mensaje que informar alusuario de su saldo actual.2.7. Proceso activar_desvoDado un nmero de telfono y un nmero de telfono al quedesviar los mensajes, comprueba que este desvo sea vlido ylo activa, almacenando dicho estado en la base de datos.Construye el cuerpo de un mensaje que informar al usuario deque sus mensajes sern desviados al nmero indicado.2.8. Proceso desactivar_desvoDado un nmero de telfono almacena en la base de datos elestado de no desvo.2.9. Proceso descontar_saldoA partir de un mensaje que le llega, extrae los datos que locomponen, calcula el coste del mensaje consultando la tarifaque hay que aplicarle segn la fecha y hora de envo y se lodescuenta del saldo, forma el mensaje completo y lo almacenaen la base de datos como un mensaje pendiente de ser enviado.3. Proceso distinguir_peticin_webDependiendo de los datos que recibe de la pgina web mediante unformulario decide si lo que se quiere realizar es una alta o una baja en elsistema y dependiendo de esto pasar los datos de alta al proceso alta o losdatos de baja al proceso baja, para poder realizar la operacin.

- 71 -4. altaDa de alta un nuevo usuario en el sistema, almacenando en la base de datoslos datos proporcionados por el formulario web rellenado por el propiousuario. En el caso en el que el propietario del telfono que se desea dar dealta no est ya registrado en el sistema, tambin habr que registrar susdatos.

5. bajaPartiendo del NIF introducido en el formulario web de baja, compruebaque est registrado en el sistema, en caso afirmativo le mostrar losnmeros de telfono que tiene registrados para que d de baja los quedesee. Si una persona da de baja todos sus telfonos registrados tambin sedarn de baja de forma automtica sus datos personales.

- 72 -3.2.Descripcin lgica y fsicadeldominio de la informacin.

A partir del diagrama Entidad-Interrelacin descrito en el apartado2.4. Descripcin del dominio de la informacin, y aplicando las reglasde transformacin de esquemas E-R a esquemas relacionales(RTECAR), siguiendo el proceso que indicamos a continuacin,obtendremos los esquemas lgicos basados en el lgebra relacional quecorresponden a dicho esquema conceptual.

Aplicamos la regla RTECAR 1 a los tipos de entidad, cada uno setransformar en una tabla que mantendr tanto el nmero y tipo deatributos como la caracterstica de identificador de estos atributos. Conesto obtenemos las tablas persona, telefono, mensaje y tarifa.

Los tipos de interrelacin que se nos presentan son 1:N, luegodebemos aplicar la regla RTECAR 3.2 para el caso de la relacin T-T yaque el tipo de entidad que participa con cardinalidad mxima uno lohace con mnima cero, y para el resto de tipos de interrelacin debemosaplicar la RTECAR 3.1 ya que la cardinalidad mnima del tipo deentidad que participa con mxima uno es uno.

Para el primer caso, el de la interrelacin reflexiva, se crea una tablanueva: teldevia-telrecibe, el identificador de telefono pasa como claveprincipal y fornea en el papel que tiene cardinalidad mxima muchos yde nuevo el identificador principal pasa como clave fornea en el papelque tiene cardinalidad mxima uno.

Para el segundo caso el identificador del tipo de entidad que participacon cardinalidad mxima uno pasa a formar parte de la tablacorrespondiente al tipo de entidad con cardinalidad mxima muchos,como clave fornea. En este caso a telefono pasara NIF y a mensajenumero e id_tarifa.

- 73 -Despus de aplicar estas reglas obtendramos:

Persona (NIF, nombre, apellidos, direccion, datos_bancarios)

Telefono (numero, saldo, estado, n_desvio, NIF)

Mensaje (fecha, hora, cuerpo, recibido, destino, coste_mensaje,numero, id_tarifa)

Tarifa (id_tarifa, dia_inicio, dia_fin, hora_inicio, hora_fin, coste,fecha vigencia)

Desvio (numero_desvia, numero_recibe)

- 74 -Estos esquemas relacionales estn normalizados a la forma normalde Boyce-Codd ya que los determinantes funcionales que existen sonclaves candidatas de su relacin. Recordemos que se denominadeterminante funcional a uno o un conjunto de atributos de una relacinR del cual depende funcionalmente de forma completa algn otroatributo de la misma relacin.

A continuacin pasaremos a describir la estructura fsica necesariapara representar y mantener la informacin, para ello utilizaremos SQLya que es un lenguaje estandarizado y el ms utilizado por los SGBDbasados en el lgebra relacional.

CREATE TABLE persona(NIF VARCHAR2(9) NOT NULL,nombre VARCHAR2(15) NOT NULL,apellidos VARCHAR2(30) NOT NULL,direccion VARCHAR2(50) NOT NULL,datos_bancarios NUMBER(20) NOT NULL,CONSTRAINT pk_personaPRIMARY KEY (NIF));

CREATE TABLE telefono(numero NUMBER(9) NOT NULL,saldo NUMBER(4) NOT NULL,estado RAW(1),NIF VARCHAR(9) NOT NULL,CONSTRAINT pk_telefonoPRIMARY KEY (numero),CONSTRAINT fk_propietarioFOREIGN KEY (NIF)REFERENCES persona(NIF)ON DELETE CASCADE);

- 75 -CREATE TABLE mensaje(fecha DATE NOT NULL,hora NUMBER(6) NOT NULL,cuerpo VARCHAR2(160),recibido RAW(1),destino NUMBER(9) NOT NULL,coste_mensaje FLOAT,numero NUMBER(9) NOT NULL,id_tarifa NUMBER(3) NOT NULL,CONSTRAINT pk_mensajePRIMARY KEY (fecha, hora, numero),CONSTRAINT fk_numeroFOREIGN KEY (numero)REFERENCES telefono(numero)CONSTRAINT fk_tarifaFOREIGN KEY (id_tarifa)REFERENCES tarifa(id_tarifa)ON DELETE CASCADE);

CREATE TABLE tarifa(id_tarifa NUMBER(3) NOT NULL,dia_inicio VARCHAR2(1) NOT NULL,dia_fin VARCHAR2(1) NOT NULL,hora_inicio NUMBER(6) NOT NULL,hora_fin NUMBER(6) NOT NULL,fecha_vigencia VARCHAR2(10) NOT NULL,coste FLOAT NOT NULL,CONSTRAINT pk_tarifaPRIMARY KEY (id_tarifa));

- 76 -CREATE TABLE desvio(numero_desvia NUMBER(9) NOT NULL,numero_recibe NUMBER(9) NOT NULL,CONSTRAINT pk_tarifaPRIMARY KEY (numero_desvia)CONSTRAINT fk_ndesviaFOREIGN KEY (numero_desvia)REFERENCES telefono(numero)CONSTRAINT fk_nrecibeFOREIGN KEY (numero_recibe)REFERENCES telefono(numero)ON DELETE CASCADE);

- 77 -3.3.Descripcin de la arquitectura delsistema.

Para describir la arquitectura del sistema haremos uso de losDiagramas de Descomposicin Funcional (DDF).

Ms concretamente usaremos la simbologa propuesta por Yourdonpara desarrollar los siguientes diagramas de estructuras.

1.2.1. MOSTRAR USUARIOSMostrar usuarioshasta salir = sisaNIFlirdatospersonaLeer siguiente NIFde la BDLeer datos de esapersona de la BDMostrar datos de lapersonaFIGURA 10- 78 -NIFdatospersona

1.2.3. NUEVO USUARIONuevo usuariohasta salir = siexi stetlfpersonaFNInumerexlfeti stnuosa lNIFirmeronumeroeNi stexIFokFNITomarNIFConsulta existenciapersonaMostrar datospersonaSolicita nmero detelfonoConsulta existenciatelfonoAlta telfonoper sonapers onuFNInaokmeroLeer datos personade la BDAlta personaerrorGuardar telfonoper sooknanuFNIpersonameokrosaldoSolicita datospersonaComprobar validezde los datosAlmacenar personaen la BDSolicita saldo inicialAlmacenar telfonoen la BDFIGURA 11- 79 -istNIFexeNIFpersonaNIFpersonapersonapersonaoksaldo

1.2.4. ACTUALIZAR USUARIOActualizar usuariohasta salir = sico nnuefirmvoa cisdatosnueonNIFnumsa lNIFirvo se rocosdatsperonfirmnueaci onvo sso nFNIexdaei sttosaokTomarNIFConsulta existenciaMostrar datosRealizar cambiosPedir confirmacinRealizaactualizacinLeer datos personay de sus telfonosde la BDerrorActualizar personay telfonos en laBDsalirFIGURA 12- 80 -NIFexistepersonaNIFpersonatelefonostelefonosNIFoknuevosdatos

1.2.5. ELIMINAR USUARIOEliminar usuariohasta salir = siexistetlfn_a_NIFexNIFe xisteNIFeNistpersonaIFsalirexi stetlfNIFNIFconfib o rrarn_aFNImnuMostrar datos_boexr ma cionr raistetlfokrerTomarNIFConsulta existenciapersonaSelecciona nmerode telfonoosokPedir confirmacinBaja telfonoConsulta existenciade ms telfonosBaja personaNIFokLeer datos personay de sus telfonosde la BDerrorEliminar telfonode la BDsalirsalirEliminar personade la BDFIGURA 13- 81 -NIFpersonanumerosn_a_borrarnumerosn_a_borrarok

1.3.2.1. MOSTRAR TARIFASMostrar tarifashasta salir = sisaar_tidifalirdatostarifaLeer siguienteidentificador detarifa de la BDLeer datos de esatarifa de la BDMostrar datos de latarifaFIGURA 14- 82 -id_tarifadatostarifa

1.3.2.3. NUEVA TARIFANueva tarifahasta salir = sisaitarfalirvoklidatariComprobar validezfaRealizar operacinSolicita datos tarifaGuardar tarifaerrorid_okitarfaitarfaGeneraridentificador detarifaAlmacenar tarifaen la BDFIGURA 15- 83 -tarifavlidatarifaokid_tarifa

1.3.2.4. BORRAR TARIFABorrar tarifahasta salir = siconsalirfirmacionid_tarid_rtaifaifaconfirmionacSeleccionar tarifaConsulta existenciaokMostrar tarifaPedir confirmacinRealiza eliminacinLeer datos tarifade la BDerrorEliminar tarifade la BDsalirFIGURA 16- 84 -id_tarifaexisteid_tarifaexisteid_tarifatarifatarifaid_tarifaok

1.3.2.5. MODIFICAR TARIFAModificar tarifahasta salir = sico nfirmnua cievonid_atarifaifatarid_ei stitarfaid_rtaifasa lirtarifaconuenuenaa ri fva tfirmva ta riacionfaexokSeleccionar tarifaConsulta existenciaMostrar tarifaRealizar cambiosPedir confirmacinRealizaactualizacinLeer datos tarifade la BDerrorActualizar tarifaen la BDsalirFIGURA 17- 85 -atatarifaexisteid_tarifatarifatarid_

ifaid_tarifanuev

okrifa

1.3.3. NMERO DEL SISTEMANmero delsistemahasta salir = sinucosalirevnfirmonumacinenumeronumeroronuevcononumefirmroacinokLeer nmero delsistema deDatos SistemaMostrarnmero del sistemaRealizar cambiosPedir confirmacinRealizaactualizacinActualizar nmerodel sistema enDatos SistemasalirFIGURA 18- 86 -nuevonumerooknumero

nuevonumero

1.3.4.1. TOMAR EL SIGUIENTE DESTINOTomar el siguientedestinohasta fin = sicue rponunumemeroroLeer el siguientenmero de telfonode la BDLeer cuerpo delmensaje a enviarFIGURA 19- 87 -numerofin

1.3.4.2. CONSTRUIR MENSAJE GRATUITOConstruir mensajegratuitoordescunovlidotinoe rpoigendestinomen sajecu erp odesticuerpomensajeokTomar datosComprobar validezdel cuerpo delmensajeCuerpo vlidoFormar mensajeAlmacenarmensaje en la BDLeer nmero delsistema deDatos SistemareerrorTomar comono recibidoTomar fecha y horadel sistemacibidocosteTomar costegratuitoFIGURA 20- 88 -origenorigenvlidofecha

hora

1.3.4.3. ENVIAR MENSAJEEnviar mensajenshasta salir = simeinstadctoajedesadelirosvomensasajelirmensajedeconestinoExtraer destino delmensajeLeer estado deltelfono de la BDTelfonoconectadoenTelfono desviadosadesvolirjemsasasamenjemlirensajeLeer desvo deltelfono de la BDDejar mensajecomo pendienteFormar mensajecon un nuevodestinoEnviar mensajemesa ln sairjeActualizar mensajeen la BDcomo enviadoenviarFIGURA 21- 89 -desvodesvoconectadodestinosalirdestinomensaje

1.4. HISTORIAHistoriahasta salir = siexistemensajessamerlirmennumerosajesonuTomarnmeroConsultaexistenciaMostrardatosVer detallehasta fin = siseleccionadoLeer mensajesde ese telfonode la BDerrorSeleccionarun mensajeMostrar datosmensajeFIGURA 22- 90 -numeroexistenumeromensajesmensajesseleccionadofin

1.5. ESTADSTICASEstadsticashasta salir = sinumesermetadoesamerolirstadnsajesicai stsisticasnuTomarnmeroConsultaexistenciaMostrardatosCalcular datosestadsticasMostrar datosestadsticasLeer mensajesde ese telfonode la BDerrorFIGURA 23- 91 -numeroexistenumeroexistemensajesnumeromensajes

2.2. CONECTARConectarnumeroestadooknunumenumei stexe romeroroTomarnmeroConsultaexistenciaVer estadoActivarMensajespendienteshasta fin = sime nnume rooksajeLeer estadode ese telfonode la BDerrorerrorActualizar estadoconectado de