video club rocco - asuarseb.com club rocco.pdf · la empresa escogida en cuestión es un videoclub,...
TRANSCRIPT
Práctica de Ingeniería del Software VideoClub
1
Indice
1. Introducción al S.I. Página 2
1.1. ¿De qué se trata? Página 2 1.2. ¿Qué Ofrece? Página 2 1.3. Consideraciones Adicionales Página 2
2. Proceso de Análisis Página 3 2.1. Organización Física Página 3 2.2. Personal del VideoClub Página 5 2.3. Actividades del VideoClub Página 6 2.4. Gestión del VideoClub Página 7 2.5. Funcionamiento Página 8 3. Definición de Requisitos del Usuario Página 10 3.1. Lista de Eventos Página 10 3.2. Diagramas de Flujos de Datos Página 14 3.3. Diccionario de Datos Página 34 3.4. Especificación Lógica de Procesos Página 36 3.5. Diagrama Entidad – Relación Página 44 4. Definición de Requisitos del Software Página 46 4.1. Diagrama de Objetos del Sistema Página 46 4.2. Especificación de los Ciclos de Vida Página 54 4.3. Descripciones de las Operaciones Página 56 4.4. Diseño de la Interfaz del Software Página 75 4.5. Interacciones entre Objetos Página 95 4.6. Visibilidad entre Objetos Página 100 4.7. Herencias entre Clases Página 106 4.8. Clases Página 114
Práctica de Ingeniería del Software VideoClub
2
1. Introducción al S.I.
1.1 ¿De qué trata? A continuación vamos a describir sobre qué se va a realizar esta práctica de Ingeniería del Software. La empresa escogida en cuestión es un VideoClub, que abarca, además de los tradicionales temas relacionados con alquileres de películas, también temas relacionados con videojuegos. No sólo trata la gestión de alquileres, sino también la venta de películas y cosas relacionadas con los videojuegos, por ejemplo los propios juegos, hardware, como consolas, joysticks, etc... A partir de ahora, empezaremos a describir la empresa, sus características, funciones, organización, localización, empleados, productos, etc... Todo esto nos llevará a unos requisitos, tanto por parte de la empresa, como los del software.
1.2. ¿Qué Ofrece? La empresa en cuestión trata 2 temas básicamente:
• Alquiler y Venta de Películas • Alquiler y Venta de productos relacionados con los Videojuegos.
En cuanto al primer ámbito que trata, decir que se alquilan y venden películas en 2 tipos de formato. Concretamente estos son en formato VHS y en formato DVD. Comentar que no trata el tema de compra y venta de DVD’s de segunda mano, como hay empresas de este tipo que ya están realizando. Para el caso de los videojuegos, el entramado es mayor. Primero comentar que se tratan exclusivamente consolas, y nada para PC’s. Entonces el tema se divide en 2 ramas: juegos y hardware. Esto nos lleva a que se pueden alquiler y comprar juegos, para las consolas PlayStation y Nintendo 64. Por otra parte, se puede, tanto comprar como alquilar piezas relacionadas con el hardware de las consolas, que va desde la propia consola en sí, hasta los joysticks, módulos de memoria, etc ... Para ambos casos, hay definidos unos precios de venta, así como unos precios y días estipulados para alquileres de estos productos.
1.3. Consideraciones Adicionales Dentro de este apartado, decir que el empresario está estudiando la posibilidad de implantar terminales en el frontal del comercio, de cara a la calle, con destino a ofrecer servicios de alquiler de películas en cualquiera de los 2 formatos las 24 horas al día, sin tener por parte del cliente que entrar en la tienda. Simplemente introduciendo su tarjeta de usuario registrado podrá alquilar cualquier película. Así, este usuario abonaría mensualmente el importe que haya gastado en alquileres.
Práctica de Ingeniería del Software VideoClub
3
2. Proceso de Análisis
2.1 Organización Física A continuación sigue un mapa indicando la distribución física de los elementos que integran el videoclub, así como una posterior descripción de cada uno de esos elementos:
1
2 3
4
5
6
7
Leyenda: 1 : Alquiler y Venta de Videojuegos 2 : Alquiler y Venta de Hardware 3 : Atención al Cliente 4 : Alquiler y Venta en formato VHS 5 : Alquiler y Venta en formato DVD 6 : Administración 7 : Almacén
Práctica de Ingeniería del Software VideoClub
4
Expliquemos mejor cada zona que compone la leyenda del mapa. 1. Alquiler y Venta de Videojuegos En esta zona se van a encontrar los distintos títulos de juegos que estén disponibles, tanto para venta como para alquiler, de las consolas PlayStation y Nintendo 64. 2. Alquiler y Venta de Hardware Nos encontraremos con aspectos de tipo hardware que están relacionados con las consolas, como pueden ser las propias consolas, mandos para jugar (joysticks), módulos de memoria, etc... Estarán disponibles a la venta y para el alquiler. 3. Atención al Cliente Es una de las zonas fundamentales del establecimiento, pues es aquí donde se va a tener el contacto directo con el cliente. En este espacio se le dará al cliente información sobre nuestros productos y servicios, así como se les despachará sus peticiones. Se cobrará dinero a ingresar en la caja y se emitirán facturas de las que se enviarán sus respectivas copias a la zona de administración. 4. Alquiler y Venta de Películas en formato VHS Tendremos películas en formato VHS, es decir, para ser utilizadas en un video “casero”. Se podrán alquilar o vender. 5. Alquiler y Venta de Películas en formato DVD Sección completamente dedicada a lo mismo que la anterior, con la salvedad de que el formato de las películas está en DVD y sólo pueden ser visualizadas mediante reproductores para este tipo de discos. 6. Administración Aquí se va a llevar todo el papeleo relacionado con la empresa, es decir, llevar la contabilidad, mantenimiento de productos en tienda, control del almacén, etc... 7. Almacén Este espacio físico va a estar destinado al almacenamiento de productos. Se mantendrá con los productos que no abunden en las zonas de tienda.
Práctica de Ingeniería del Software VideoClub
5
2.2. Personal del VideoClub Aquí vamos a detallar el personal que trabaja dentro de la empresa, así como ciertos detalles de organización que existen entre ellos. Para empezar, decir que existen 3 turnos de trabajo:
• De Lunes a Viernes, de 09:00 a 13:00 horas. • De Lunes a Viernes, de 16:00 a 20:00 horas. • Sábados, de 09:00 a 13:00 horas.
Decir que dentro de la empresa hay 6 trabajadores, los cuáles son:
• 3 dependientas encargadas de atender al cliente en la tienda. • 1 encargado de reposición de productos en la tienda y atención al cliente. • 1 encargado del control del almacén. • 1 encargado de la parte administrativa, en concreto, un contable.
Los 2 primeros turnos los realizan todos los trabajadores, exceptuando el encargado de la parte administrativa, que solo realiza el turno de mañana. El tercer turno, para apuntillar, no lo realizan ni el contable ni el encargado del almacén. De tal forma, este último horario solo lo cumplen 2 de los restantes trabajadores. Lo cumplen mediante una rotación, de tal forma que trabajen 2 sábados cada mes. La rotación podría ser simulada mediante el siguiente esquema que mostramos a continuación:
Trabajador 1 (a) Trabajador 2 (b) Trabajador 3 (c) Trabajador 4 (d) 1ª Semana X X 2ª Semana X X 3ª Semana X X 4ª Semana X X 5ª Semana X X 6ª Semana X X 7ª Semana X X 8ª Semana X X 9ª Semana X X
10ª Semana X X 11ª Semana X X 12ª Semana X X
Con esto, podemos observar una serie de consideraciones:
1. Las dependientas deben tener conocimientos suficientes sobre los productos que hay en la tienda.
2. El encargado de reposición hace también tareas de Atención al Cliente. 3. El contable trabaja en turnos de mañanas debido a que es el horario de entrada de
mercancía para facilitar el trato con los proveedores, fundamentalmente en cuanto a temas de pagos.
Anotar también la inestimable ayuda del dueño de la empresa, que principalmente no falla ninguno de los turnos del Sábado por la mañana, para ayudar a la/s dependienta/s junto al posible dependiente que le toque encargarse del comercio ese día.
Práctica de Ingeniería del Software VideoClub
6
2.3. Actividades del VideoClub Pasamos a describir el conjunto de actividades más detallado que se realizan dentro de la empresa. Estas actividades se podrían resumir en:
• Compra de Productos. • Alquiler de Productos. • Venta de Productos. • Información sobre Productos. • Almacenaje de Productos. • Tareas Administrativas.
A continuación las describiremos en más profundidad: 1. Compra de Productos El VideoClub debe comprar inicialmente aquellos productos que bien va a vender o alquilar. Los tendrá que tener en exposición o en almacén. Por lo tanto ha de adquirirlos a ciertas empresas que se dedican a esas labores, es decir, los Proveedores. Estos entregan los productos junto con los albaranes correspondientes, que serán remitidos desde la zona de almacenaje a la de administración. Posteriormente cobrarán el correspondiente albarán en la zona de administración. En la mencionada zona, hay una persona encargada de controlar todos los aspectos relacionados con el almacenaje además del pago a los distintos proveedores y recogida y organización de los albaranes. 2. Alquiler de Productos Los productos que se disponen a la venta, pueden ser también alquilado por el cliente, de tal manera que mediante el pago de una fracción de dinero respecto al total, se le da el derecho a su utilización durante una cierta porción de tiempo. Las reglas que determinan el pago y el tiempo que se le ofrece están estipuladas en el comercio, junto con las condiciones que el cliente acepta al realizar el alquiler. Cuando se realiza un alquiler, el comercio le entrega una factura al cliente donde se detalla el servicio ofrecido así como su correspondiente coste. 3. Venta de Productos Los mismos productos que están en alquiler están a la venta. Eso si, no el mismo producto físico, como es obvio, sino otro de las mismas características y evidentemente con un precio más elevado, y con otro tipo de condiciones adjuntas. También, al igual que en el caso de alquiler, se le entrega al cliente una factura, que le dará derechos a garantías en caso de deterioramiento del producto por causas ajenas a él. 4. Información sobre Productos Existirá un apartado en la tienda dedicado, entre otras cosas, a proporcionar información sobre los productos que el cliente esté interesado. Este apartado de la tienda se concentra en Atención al Cliente.
Práctica de Ingeniería del Software VideoClub
7
5. Almacenaje de Productos Esta actividad de la empresa es realizada en la zona física correspondiente al almacén. En ella se guardan todos aquellos productos que estén a la venta pero que abunden dentro del espacio del local comercial dedicado a la tienda. Esta zona está controlada por una persona, sabiéndose en cada momento que abunda y que falta, lo cuál esto último provocará la realización de un pedido de estos productos. 6. Tareas Administrativas Se realizan en una zona situada al lado (casi dentro) del almacén. En ella se realizan las tareas de tipo administrativas y contables. Es decir, se lleva la contabilidad de la empresa, se lleva el control de las existencias que hay en almacén y tienda, costes que deben poseer los productos, tanto para alquiler como para venta, etc ... Evidentemente, esta tarea está también realizada por una persona.
2.4. Gestión del VideoClub En este apartado vamos a describir las necesidades imperiosas que ha de realizar el VideoClub para subsistir y mantenerse en el mercado, en el cuál se ha hecho un sitio. Comentar que para ello, dispone de un administrativo, que se encarga de todo lo relacionado con el papeleo, y que está directamente relacionado con el encargado de almacén, el cuál le va dando información referente al estado de los productos que se venden. Básicamente, las funciones que se realizan son:
• Compra de Productos a Proveedores. • Alquiler y Venta de Productos a Clientes. • Control y Mantenimiento del Almacén. • Labores Administrativas de la Empresa.
Todas han sido ya comentadas anteriormente, por lo que a continuación vamos a realizar un breve apunte sobre cada una de estas, pero más conciso y detallado. 1. Compra de Productos a Proveedores
1. Conocimiento exhaustivo de existencias de productos en el almacén para la posterior realización de pedidos de aquellos productos que escaseen a los diversos proveedores con los que se trabaja.
2. Revisión de los albaranes y de la mercancía entregada por los proveedores para asegurarnos de su debido cumplimiento, todo en presencia de los responsables enviados por parte de los proveedores.
3. Realizar el pago a estos de las cantidades adquiridas, entregando las correspondientes facturas y recogiendo los albaranes que afirman la compra realizada.
2. Alquiler y Venta de Productos a Clientes
1. Conocimiento detallado de las características del producto y de la operación a realizar para determinar precio, y en su caso, fecha de devolución. Así mismo, emisión de la correspondiente factura, en caso de que se produzca una venta junto con el archivo de la copia de esa factura.
Práctica de Ingeniería del Software VideoClub
8
2. Manejo de caja, para la realización de los distintos cobros que se hacen a los clientes por
sus ventas o alquileres de los distintos productos que se ofertan en el comercio. 3. Emisión y archivado, en caso de venta, de la copia de la correspondiente factura que se
emite y se entrega al cliente tras su compra. 3. Control y Mantenimiento del Almacén
1. Control en cada momento de las existencias que hay de cada uno de los diversos productos que se venden o alquilen, así como de su situación dentro del almacén para una rápida búsqueda del artículo en cuestión. Para ello, es bueno la realización de un inventario periódico, cada 2 meses.
2. Llevar un control del año, o época a la que pertenece una determinada película, en cualquiera de los 2 formatos disponibles, para pedidos menores en caso de tiempos excesivos. Este control lleva a que el inventario que se realiza sea tan prematuro respecto a otras empresas.
3. Hacer la correspondiente revisión entre la mercancía traída por los proveedores y el/los albaranes emitidos. Todo esto en presencia del proveedor y se realiza antes de que el administrativo haga el pago al proveedor.
4. Labores Administrativas de la Empresa
1. Control de los pedidos que le encarga a realizar el responsable del almacén. 2. Pago a los distintos proveedores, cuando estos llegan con los pedidos realizados. Emisión
de las correspondientes facturas a entregar a estos, y recogida y archivado de los distintos albaranes que se nos entregan junto con la mercancía.
3. Llevar la gestión contable de la empresa, simplemente, llevar la contabilidad y lo relacionado con los distintos papeleos que se puedan generar dentro de la empresa. No entra en este apartado y no es su misión, lo referente al tema salarial y demás de los trabajadores, entre los que se incluye el administrativo. Para ello, hay una Asesoría externa que se ocupa de esas labores, con la cuál, también habrá que dialogar y tratarles como un proveedor más en cuánto a pagos se refiere.
2.5. Funcionamiento A continuación vamos a describir realmente el meollo del comercio, su funcionamiento de cara al público, lo que se realiza de forma cotidiana, como se actúa de cara al cliente, proveedor, que se les da, que se pide, etc... Nos vamos a centrar en 3 aspectos principales:
• Clientes. • Proveedores. • Asesoría.
1. Clientes Los clientes en el comercio solo tienen 2 alternativas posibles, las cuáles son bien comprar, bien alquilar. Analicemos por separado cada una de estas opciones.
Práctica de Ingeniería del Software VideoClub
9
Para comprar, el cliente entra en el comercio con la idea de la obtención de un determinado producto. Este entra, observa, se informa preguntando a alguno/a de lo/as trabajadore/as pidiéndole el producto. Se le factura y lo paga. Se le da la factura, quedándose la empresa con un resguardo de esta para su posterior contabilidad. No tenemos ninguna constancia en cuanto a datos personales del cliente que ha venido y ha realizado una compra. El pago del producto se puede realizar, bien en metálico, bien mediante tarjeta bancaria. En el caso del alquiler, la cosa es bien distinta, pues no sólo se ha de realizar un pago de una determinada manera, sino que habrá que tener una serie de datos personales sobre el cliente que realiza el alquiler. Primero que nada, decir que se le llama abonado. Los pasos a seguir podrían empezarse por la subscripción de la persona al VideoClub. Para este, se dirige al comercio, a la zona de Atención al Cliente, donde se le preguntarán una serie de datos personales, muy básicos eso si. Principalmente, el DNI (Documento Nacional de Identidad). Se le realizará fotocopia del DNI, para almacenamiento propio, y se le generará un registro dentro del ordenador de la empresa y se le emitirá y carnet, o tarjeta de identificación para poder realizar alquileres. El pago de los productos alquilados se realiza en el momento de su alquiler, a través de una serie de bonos adquiridos, habiendo 2 formas para realizar su adquisición, siendo estas en metálico o a través de tarjetas de cuentas bancarias. Estos bonos se adquieren por parte del abonado, evidentemente, en el momento que no disponga de más crédito en su tarjeta identificadora. Si se realiza en metálico, en el momento del pago se le añade el importe realizado. Si es mediante cuenta bancaria, el abonado da la tarjeta bancaria y la tarjeta identificadora, indicando la cantidad deseada a aumentar su crédito. Inmediatamente se cargará en ambas tarjetas el importe dicho, en una decrementando y en otra incrementando el crédito disponible. Para realizar el alquiler, el abonado se dirigirá con el producto a la zona de Atención al Cliente, en la cual le entregará el producto junto con su tarjeta identificadora al trabajador/a que se encuentre atendiéndole. Se le realizará la operación, decrementándose su crédito. En ese momento, quedará registrada la operación y se generará un ticket comprobante que se le entrega al abonado donde se le indica distinta información sobre el producto alquilado, como puede ser el importe, fecha de entrega, y fundamentalmente, la fecha de devolución, en la cuál el producto ha de ser entregado por el abonado a la tienda. Si se incumple esa fecha, se producirá una infracción, imponiéndosele una sanción, las cuáles son de carácter económico, decrementándosele el crédito de su tarjeta identificadora, de acuerdo con las reglas establecidas y según el número de días de retraso con los que se hace la devolución. 2. Proveedores Las operaciones con los proveedores se limitan exclusivamente a realización y entrega, junto con el pago evidentemente, de productos que posteriormente van a ser vendidos o alquilados por los clientes. Todo se reduce a lo siguiente: La empresa realiza un pedido de acuerdo con las exigencias que impone en un determinado momento el encargado de almacén. El proveedor, de acuerdo con el pedido que se le ha realizado, prepara el pedido y nos lo trae. Al llegar, lo primero que hace es entregarnos un albarán junto con el pedido. En dicho albarán, hay una relación de los productos que ha traído. Se realiza la correspondiente comprobación. Si esto no es correcta, se le comunica al responsable del proveedor que se encuentra en ese momento allí, haciendo este una corrección sobre la factura encargada, y generando otro pedido que posteriormente va a traer. Si la comprobación es correcta, que es lo más frecuente, nos entrega la factura que nos indica el importe del pago que se ha de realizar. Este se realiza, entregándonos el/los albaranes junto con la factura correspondiente. Ellos se quedan con una copia, tanto del albarán como de la factura.
Práctica de Ingeniería del Software VideoClub
10
3. Asesoría El caso de la asesoría en principio parece un poco oscuro, pero necesario. Estas se encarga de todo el papeleo del comercio, exceptuando el caso de la contabilidad, que la lleva directamente un administrativo contratado. Pero los temas burocráticos no se limitan exclusivamente a la contabilidad. Hay que llevar otra serie de documentos, como nóminas, partes de altas o bajas (enfermedades), contrataciones de personal de apoyo en determinados casos, etc... En estos casos, el trato es tan simple como la entrega de la tienda a la Asesoría encargada, principalmente de documentos de identificación personal de cada uno de los trabajadores. En ciertos casos, la tienda necesitará ciertos documentos en concreto que se le exigen por parte de las entidades del gobierno. Entonces, entregará la información necesaria junto con las exigencias a la Asesoría, encargándose esta de todo lo restante y generando copia de ciertos documentos que ha de guardarlos el comercio. Obviamente, al final de mes habrá que realizar el pago a esta entidad. Esto se realiza, entregándole la Asesoría la correspondiente factura para su posterior contabilización. Comentar adicionalmente, que para todo el papeleo hay una relación directa de comunicación entre el administrativo y la Asesoría. A continuación, vamos a pasar con la definición de requisitos del usuario.
3. Definición de Requisitos del Usuario En este apartado vamos a definir perfectamente cuáles son las necesidades y problemas que tiene el cliente, el usuario final en el VideoClub. Se va a reflejar que es lo que el usuario espera tener al final, el sistema con el que va a trabajar. Para ello, nos vamos a apoyar en 5 representaciones, que son las siguientes:
1. Lista de Eventos. 2. Diagramas de Flujos de Datos (DFD’s). 3. Diccionario de Datos. 4. Especificación Lógica de Procesos. 5. Diagrama Entidad-Relación.
3.1. Lista de Eventos Ahora pasaremos a mostrar los eventos que ocurren en la tienda. Empezaremos describiéndolos para cada proceso fundamental que se desarrolla en el VideoClub. 1. Gestión de los Abonados Se trata todo el tema relacionado con los abonados o futuros abonados, como es la suministración de información a éste, realización de subscripciones, fabricación de tarjetas, recargas, etc ... Veamos qué ocurre:
Práctica de Ingeniería del Software VideoClub
11
1. Una persona se quiere abonar:
• La persona da sus datos personales. • Atención al Cliente rellenará su pertinente ficha, generándole su tarjeta.
2. Un abonado quiere recargar su tarjeta:
• El Abonado proporciona la cantidad a recargar en la tarjeta, así como la tarjeta. • Atención al Cliente recarga su tarjeta con la cantidad deseada.
3. Alquiler de un producto:
• Para realizar un alquiler, el abonado llega con su tarjeta y nos la entrega. • Con ella, sacamos el número identificativo, DNI de la tarjeta y se le identifica. • Si el abonado existe, este pedirá un determinado producto, relacionado bien con
consolas, películas, en formato VHS o DVD, o bien juegos. • Se comprobará que hay existencias de su pedido para entregárselas. • Si las hay, se le entrega el producto, haciéndose la correspondiente anotación y
generándose y entregándosele el correspondiente comprobante. 4. Entrega de un alquiler:
• Una vez hecho el alquiler, el abonado habrá de devolverlo. • Llegará y entregará la tarjeta, de la que sacaremos su DNI. • Confirmada la existencia del abonado, se observa qué producto tiene alquilado. • El abonado entrega el producto. • Se observa la fecha en que se ha producido la devolución y se observará si se le debe
poner una sanción por impuntualidad en la devolución.Ésta será de tipo económico. 5. El usuario del software quiere realizar ciertas funciones con los datos del abonado para operaciones
internas:
• Dar de baja a un abonado. • Visualizar los datos de un abonado. • Modificar los datos de un abonado. • Realizar listados de abonados, bien por nombre, bien por código.
En todos los casos, los pasos serán, salvo para los listados:
• Introducir el Código del abonado. • Realizar la operación deseada.
En los listados, se introduce el dato según el tipo que se haya elegido.
Práctica de Ingeniería del Software VideoClub
12
2. Gestión de los Proveedores Acometeremos los eventos que se pueden producir en el tratamiento de este proceso. Estos se pueden enumerar como los siguientes: 1. Petición de productos que escasean en el almacén:
• El responsable de Almacén observa qué productos son los que escasean. • El responsable de Almacén generará un pedido con aquellos productos que escasean. • Con el código del pedido, el cuál se ha generado, se comprueba que no exista ya un
pedido realizado de idénticas características. • Si no se ha realizado, se genera el pedido para su posterior envío al proveedor.
2. Llegada de un pedido:
• El proveedor llega al comercio. • Hace entrega del pedido que se le ha solicitado junto con la correspondiente factura. • El encargado de Almacén revisa el pedido junto con la factura entregada. • Se generará un código que identifique al pedido. • Si la revisión es positiva, confirmará la operación. • Si es negativa la revisión, repetirá los 2 primeros puntos con la información sobre los
productos que no hayan sido recibidos. • Este pedido se lo entregará al responsable del proveedor que haya venido.
3. Pago a un proveedor:
• Para tratar las facturas, se mira el código de la factura. • Se chequeará en la base de datos de facturas. • Con la identificación de la factura se harán ciertas operaciones. • Esta operación se seleccionará antes de realizar la operación. • Se confirmará la operación realizada sobre la factura escogida. • Una operación especial consiste en el pago. • Para ello, con el código de la factura, se verifica primeramente su existencia. • Con la confirmación de ésta, pasamos simplemente a realizar el pago de la cantidad
expuesta al encargado del proveedor que se haya acercado al VideoClub. 4. Control de los proveedores:
• Hay que llevar un control de los proveedores con los que se trabaja. Para ello, introducimos los datos del proveedor con el que realizar ciertas cosas.
• Se generará un código de proveedor. • Con ese código podemos realizar ciertas operaciones. • Seleccionamos la operación a realizar con ese proveedor, teniendo ya su código. • Se realiza la operación seleccionado, confirmándose la operación hecha.
Práctica de Ingeniería del Software VideoClub
13
3. Gestión de los Clientes Observemos los eventos que se dan en este proceso: 1. Compra de un producto:
• Si lo que se quiere es una compra, por parte de un abonado o de un cliente desconocido, entrará, observará y escogerá el producto deseado.
• Si hay existencias disponibles para la venta, se realiza la correspondiente factura, entregando el producto y efectuando el cobro impuesto.
2. Devolución de un producto comprado:
• Si un cliente ha comprado un producto defectuoso, llegará al comercio con éste. • Atención al Cliente comprobará el estado del producto. • El cliente entregará la factura, de la que obtendremos el código de la factura y
comprobaremos que ésta exista. • Con todo correcto y el producto en mal estado, se realizará la devolución del importe
recibido en su momento y anotarlo. 4. Gestión de los Bancos Para concluir con la relación de eventos que se dan, observemos los que se producen con las entidades bancarias. Pasamos a describirlos a continuación:
1. Cobro a un cliente:
• Con un cobro, introducimos los datos personales del Cliente. • Se identificará a éste, con lo que obtendremos el DNI que habría en su tarjeta y que es su
identificación. • Para concluir, hacemos el cobro de la cantidad correspondiente desde el banco.
2. Control de los bancos:
• Llegan datos sobre un determinado banco con el que realizar ciertas operaciones. • Se genera un código identificativo para el banco. • Posteriormente, tendremos que seleccionar una operación a realizar. • Según la operación seleccionada y el código obtenido, se ejecutará la operación. • Esta pueda ser inserción de un nuevo banco, eliminación del trato con ese banco,
visualizar datos relacionados con ese banco y modificar datos determinados de operaciones que se tengan con ese banco.
Práctica de Ingeniería del Software VideoClub
14
3.2. Diagramas de Flujos de Datos (DFD’s) A continuación pasamos a mostrar el estudio que se ha realizado del VideoClub en cuestión, a través de las distintas representaciones que se hacen. La primera que vamos a tratar es el Diagrama de Flujo de Datos, es decir, los DFD’s. Pasemos a su muestra:
0. Gestionar VideoClub
Clientes
Asesorías
Proveedores
Bancos
Diagrama de Contexto
Datos_
Pedido
Pago_
Proveedor
Entrega Pedido
Factura_
Prov.
Papeles
Pago_
Asesoría
Factura_
Asesoría
Pagos_Alquiler
Información_Bancaria
Datos_Cliente
Datos_Cliente
Pago_
Compra
Devolución
Preguntas
Información_
Producto
Entrega_Producto
Emisión_Tarjeta
Requerimientos
Comprobante
Sanciones
Datos_
Proveedor
Pendientes
Comprobante
DNI_Tarjeta
Peticiones
Preguntas_Del_Cliente
Respuestas_
Al_Cliente
Alquileres_
Sin_Devolver
En este primer diagrama mostrado en la página anterior podemos observar como el VideoClub se relaciona con 4 entidades externas, con las cuáles va a tener intercambios de información. Estas son los Clientes, que son uno de los principales componentes en el negocio, los Proveedores, que son el otro componente principal, los cuáles nos van a suministrar los productos necesarios para vender o alquilar, Asesoría, entidad fundamental para nosotros pues nos va a resolver todos los temas de la empresa de tema laboral, fiscal y jurídico, económico, etc..., y por últimos los Bancos, para efectuar pagos y cobros, tanto a Clientes como a Proveedores y Asesoría.
Práctica de Ingeniería del Software VideoClub
15
1.GestionarAbonados
4.Gestionar
Bancos
2.Gestionar
Proveedores
3.GestionarClientes
Diagrama 0 : Gestión del VideoClub
ABONADOS
CONSOLAS
JUEGOS
PELICULAS
Datos_
Proveedores
Factura_Prov.
Pedido
Pago_Prov.
Entrega_
PedidoPedidos_
Pendientes
Datos_
Cliente
Pago_
Alquiler
Información
Emisión_
Tarjeta
BANCOS
Pago_
Asesoría
Información_
Bancaria
Datos_
Cliente
Proveedores
Peticiones
Entrega_
Producto
Pago_Compra
Devolución
Sancione
Comprobante
Alquileres_
Sin_Devolver
Operación_
Realizada
Preguntas_
Del_
Cliente
Respuestas_
Al_Cliente
DNI_Tarjeta
Operación_
Realizada
Datos_
Pedido
Información_
Producto
Operación_
Realizada
Dentro ya del Diagrama 0, vemos que la Gestión del VideoClub se puede descomponer en 4 procesos, los cuáles son: Gestionar Abonados, Gestionar Proveedores, Gestionar Clientes y Gestionar Bancos. Mediante estos 4 procesos se va a controlar todo lo que se aborda dentro de la empresa, tanto en ventas como compras y relaciones con las entidades mostradas y visualizadas en el Diagrama de Contexto . Observamos también como entra en acción almacenes para Abonados, Bancos, Consolas, Películas y Juegos. Para aclarar, dentro de Consolas se engloba lo referente a estos productos, tanto el aparato para procesar los videojuegos, como los componentes que se les puede agregar.
Práctica de Ingeniería del Software VideoClub
16
1.1.
SuministrarInformación
1.2.
RealizarAbono
1.3.
RecargarTarjeta
Diagrama 1 : Gestión de los Abonados
ABONADOSGenera_
Folletos
Respuestas_
Al_Cliente
Preguntas_
Del_ClienteDatos_Cliente
Tarjeta
DNI_Tarjeta
Cantidad_
Pago_Alquiler
Operación_
Realizada
Tarjeta_
Recargada
Operación_
Realizada
Operación_
Realizada
Este diagrama comprende la subscripción de nuevos abonados para el VideoClub. Estos podrán realizar alquileres de distintos tipos de productos. Observar que en este diagrama se alcanza una función primitiva, es decir, funciones que no se van a descomponer en más procesos, pues se ha llegado al nivel más bajo. Decir que la primitiva es Suministrar Información. Procesos, eso si, descomponibles en primitivas son Realizar Abono y Recargar Tarjeta , utilizando para ello un almacén, el de los Abonados, donde se va a registrar toda la información referente a los subscriptores del VideoClub, como sus datos personales, bancarios si los posee, cantidad del último bono adquirido, etc...
Práctica de Ingeniería del Software VideoClub
17
2.1.
RealizarPedidos
2.3.Tratar
Facturas
2.2.
ComprobarEntregas
2.4.Realizar
Pagos
2.5.Actualizar
Proveedores
Diagrama 2 : Gestión de los Proveedores
PEDIDOS
CONSOLAS
PELICULAS
JUEGOS
PAGOSFACTURAS
PROVEEDORES
Entrega_
PedidoFactura_
Proveedor
Pedido_
Pendiente
Datos_Pedido
Pedido
Factura
Datos_
Proveedores
Pago_Proveedor
Factura_
Proveedor
Operación_
Realizada
Operación_
Realizada
Operación_
Realizada
Disponemos de 5 funciones, Realizar Pedidos, Comprobar Entregas, Tratar Facturas, Realizar Pagos y Actualizar Proveedores. Ver también que aparecen nuevos almacenes para contener información, como son Pedidos, Facturas, Pagos y Proveedores, aparte de los ya nombrados en diagramas anteriores. Ver una característica que se va a repetir en posteriores procesos, en casi todos, que es la salida de una confirmación como que la operación ha sido realizado con éxito.
Práctica de Ingeniería del Software VideoClub
18
3.1.GestionarAlquiler 3.2.
GestionarCompra
3.4.GestionarProblemas
Compra
3.5.Tratar
Sanciones
3.3.Gestionar
Devolución
Alquiler
Diagrama 3 : Gestión de los Clientes
CONSOLAS
PELICULAS JUEGOS
ABONADOS
SANCIONES
DNI_
Tarjeta
Pide_
Alquiler
Genera_
Ticket
Pide_CompraPago_
Compra
Factura
DNI_
Tarjeta
Entrega_Alquiler
Factura
Entrega_
Compra
Pago_
Devolución
DNI_Tarjeta
Fecha_Devolución
Sanción
DEVOLUCIONES
Entrega_
Pedido_Alquiler
Operación_
Realizada
Fecha_Devolución
PAGOS
Entrega_
Producto_
Compra
PAGOS
Operación_
Realizada
Operación_
Realizada
En este diagrama observamos las interacciones que ocurren con los clientes. Se dispone de 5 procesos y varios almacenes, en concreto, 6 almacenes. Los procesos son Gestionar Alquiler, Gestionar Compra, Gestionar Devolución Alquiler, Gestionar Problema Compra y Tratar Sanciones. Los almacenes que se tratan son Consolas, Películas, Juegos, Abonados, Sanciones y Devoluciones.
Práctica de Ingeniería del Software VideoClub
19
4.2.Cobrar
de Bancos
4.1.Actualizar
Bancos
Diagrama 4 : Gestión de los Bancos
ABONADOS
BANCOS
Datos_Banco
Datos_Cliente_
Bancarios
Pago_Banco
Operación_Realizada
Operación_Realizada
Aquí hay una función que ya es casi primitiva. Esta es Actualizar Bancos, que compone el diagrama junto con el proceso Cobrar de Bancos. Se apoyan en 2 almacenes, que son Abonados y Bancos. A continuación pasamos a ir profundizando en los niveles inferiores de cada uno de los procesos correspondientes al Diagrama 0, Gestión del VideoClub. Comenzamos con los niveles siguientes al Diagrama 1, es decir, Gestión de los Abonados. Vemos que el siguiente diagrama que mostramos es el correspondiente a Realizar Abonos, cuya enumeración es la 1.2. Esto es debido a que la función 1.1., la cuál es Suministrar Información, es ya una función primitiva, la cuál, no se puede descomponer en ninguna más.
Práctica de Ingeniería del Software VideoClub
20
1.2.1.
GenerarCódigo
Abonado
1.2.2.Crear
Tarjeta
1.2.2.
CrearNueva
Ficha
Diagrama 1.2. : Realizar Abonos
Datos_Cliente_Personales
Datos_Intermedio
s
ABONADOS
Emisión_Tarjeta
Operación_Realizada
DNI_Tarjeta
Tratamos el tema de realizar abonos. Para ello ya encontramos con funciones primitivas, Identificar Abonado, Crear Tarjeta y Crear Nueva Ficha. Todo ello se apoya en un exclusivo almacén, Abonados, que dará soporte con información sobre los abonados de los que dispone el VideoClub. Lo que se hace simplemente es introducir los datos personales del nuevo abonado, al cual se le va a emitir una tarjeta que va a contener un número de identificación exclusivo, a parte de habérsele rellenado una ficha, eso si, electrónica con sus características.
Práctica de Ingeniería del Software VideoClub
21
1.3.1.IdentificarAbonado
1.3.2.AumentarCantidad
Tarjeta
Diagrama 1.3. : Recargar Tarjeta
DNI_TarjetaConfirmación_
Correcta
Cantidad_Pago_Alquiler
Tarjeta_Recargada
ABONADOS
Las funciones primitivas con las que nos vamos a encontrar son: Identificar Abonado y Aumentar Cantidad Tarjeta. El objetivo final es que el abonado incremente su saldo disponible para alquilar nuestros productos. Para ello, se introducirá la identificación exclusiva que le toca, para identificarle y acto seguido la cantidad con la que va a incrementar el saldo. Al final tendrá la tarjeta recargada con mayor cantidad de dinero para gastar. Todo se apoya exclusivamente en un almacén, el de los Abonados.
Práctica de Ingeniería del Software VideoClub
22
2.1.3.Enviar
Pedido
2.1.3.Generar
del Pedido
2.1.1.
GenerarCódigo
Pedido
2.1.2.
VerificarExistencia
Pedido
Diagrama 2.1. : Realización de Pedidos
Datos_Pedido
PEDIDOS
Documento_Pedido
Pedido
Código_Pedido
Existencia_Negativa
Datos_Pedido
De la realización de pedidos se encarga el encargado de almacén. Este observa en cada instante que es lo que escasea en el almacén. Los procesos finales que se obtienen son: Generar Código Pedido, Verificar Existencia Pedido, Generar Pedido y Enviar Pedido. Trata con el almacén Pedidos.
Práctica de Ingeniería del Software VideoClub
23
2.2.1.Revisar
Pedido
2.2.2.
GenerarCódigo
Pedido
2.2.4.
EnviarPedido
Pendiente
2.2.3.
GenerarPedido
Pendiente
Diagrama 2.2. : Comprobación de la Entrega
Entrega_Pedido
Factura_Pedido
Datos_Pedido_
Pendiente
Documento_Pedido_
Pendiente
Pedido_Pendiente
Confirmación_Entrega
CONSOLAS
PELICULAS
JUEGOS
Datos_Pedido_Pendiente
Código_Pedido_
Pendiente
PEDIDOS
Se tienen 4 operaciones primitivas, Revisar Pedido, Generar Código Pedido, Enviar Pedido Pendiente y Generar Pedido Pendiente. En cambio, en este diagrama se observa la inclusión de un mayor número de almacenes, que se encargan de englobar todos los productos de los que se dispone más un almacén para guardar la información sobre los pedidos que son mandados, recogidos y correctos. Estos son: Consolas, Películas, Juegos y Pedidos.
Práctica de Ingeniería del Software VideoClub
24
2.3.4.
InsertarFactura
2.3.2.
SeleccionarOperación
Factura
2.3.1.
ComprobaciónFactura
2.3.3.
EliminarFactura
2.3.5.
VisualizarFactura
2.3.6.
ModificarFactura
Diagrama 2.3. : Tratamiento de Facturas
Inserción_Factura_
ProveedorCódigo_Factura
Operación_Factura
Eliminación_Factura_Proveedor
Visualización_Factura_Proveedor
FACTURA
Operación_Realizada
Operación_Realizada
Operación_Realizada
Modificación_Factura_
Proveedor
Operación_Realizada
Comprobación_Correcta
Operación_Factura
Para el Tratamiento de Facturas, las operaciones son Comprobar Factura, Seleccionar Operación Factura, Eliminar Factura, Insertar Factura, Visualizar Factura y Modificar Factura. Aquí entra en juego un almacén adicional que no se ha visto hasta ahora, el cuál es Facturas. También está el correspondiente a Proveedores.
Práctica de Ingeniería del Software VideoClub
25
2.4.1.Verificar
Existencia
Factura
2.4.2.RealizarPago a
Proveedor
Diagrama 2.4. : Realización de Pagos
Código_Factura
PROVEEDORESFACTURAS
Confirmación_
FacturaPago_Proveedor
PAGOS
Código_Factura
Dentro de los almacenes que están, vemos que el correspondiente a Pagos es nuevo en nuestro contexto. A él le acompañan los de Facturas y Proveedores. Todos estos son para que los usen 2 procesos terminales, Verificar Existencia Factura y Realizar Pago a Proveedor.
Práctica de Ingeniería del Software VideoClub
26
2.5.4.Insertar
Proveedor
2.5.2.
SeleccionarOperación
Proveedor
2.5.3.Eliminar
Proveedor
2.5.5.Visualizar
Proveedor
2.5.6.
ModificarProveedor
2.5.1.
GenerarCódigo
Proveedor
Diagrama 2.5. : Actualización de Proveedores
Inserción_Proveedor
Datos_Proveedor
Operación_Proveedor
Eliminación_Proveedor
Visualización_Proveedor
Operación_Realizada
Operación_Realizada
Operación_Realizada
Modificación_Proveedor
Operación_Realizada
Código_Proveedor
Operación_Proveedor
PROVEEDORES
En el trato con los proveedores, evidentemente vamos a necesitar la existencia de un contenedor de información referente a esta entidad. Y así ocurre. Existe el almacén Proveedores. Es usado por las siguientes primitivas: Generar Código Proveedor, Seleccionar Operación Proveedor, Eliminar Proveedor, Insertar Proveedor, Visualizar Proveedor y Modificar Proveedor.
Práctica de Ingeniería del Software VideoClub
27
3.1.1.IdentificarAbonado
3.1.2.Existir
Producto a
Alquilar
3.1.3.EntregarProducto
Alquilado
Diagrama 3.1. : Gestionar Alquiler
DNI_Tarjeta
Pide_Alquiler
Confirmación_
Abonado
ABONADOS CONSOLAS PELICULAS JUEGOS
Entrega_
Producto
Confirmación_
Existencias
Existencia_
Negativa
Operación_
Realizada
Genera_
Ticket
Para Gestionar Alquiler, tenemos Identificar Abonado, Existir Producto a Alquiler y Entregar Producto Alquilado. Usa 4 almacenes, Abonados, Consolas, Películas y Juegos. Se introducirá la identificación del abonado junto con un producto a sacar, y lo obtendrá junto con un comprobante de la operación.
Práctica de Ingeniería del Software VideoClub
28
3.2.1.Existir
Producto a
Comprar
3.2.2.EntregarProducto
Comprado
Diagrama 3.2. : Gestionar Compra
Pide_CompraConfirmación_
Existencias
Existencias_
Negativas
Entrega_Producto
Operación_Realizada
CONSOLAS PELICULAS JUEGOS
Pago_
Compra
PAGOS
Factura_Compra
Los almacenes manipulados en este proceso son Pagos, Consolas, Películas y Juegos. Estos almacenes participaran junto con las primitivas Existir Productos a Comprar y Entregar Producto Comprado. Para la realización de la compra interviene cualquier persona, sea o no abonado, y este o no por lo tanto asociado con el VideoClub.
Práctica de Ingeniería del Software VideoClub
29
3.3.1.Identificar
Abonado
3.3.2.
DevolverProducto
Alquilado
Diagrama 3.3. : Gestionar Devolución Alquiler
DNI_TarjetaConfirmación_
Abonado
Entrega_Alquiler
Fecha_Devolución
ABONADOS
CONSOLAS
PELICULAS
JUEGOS
Código_Devolución
Operación_Realizada
En Gestionar Devolución Alquiler observamos solo 2 procesos, como en el diagrama anterior. Estos son los siguientes: Identificar Abonado y Devolver Producto Alquilado. Además, tenemos 4 almacenes, los cuáles son Abonados, Consolas, Películas y Juegos. Considerar que no es lo mismo la devolución de un producto por parte de un abonado, que un producto en mal estado por un cliente.
Práctica de Ingeniería del Software VideoClub
30
3.4.2.Comprobar
Estado
Producto
3.4.3.Realizar
Devolución
Pago
3.4.1.Verificar
ExistenciaFactura
Diagrama 3.4. : Gestionar Problemas Compra
Entrega_
Producto_
Compra
Código_
Factura
Estado_
InadecuadoDevolución_Pago
Operación_
Realizada
PAGOS
DEVOLUCIONES
FACTURAS
Confirmación
_
Entrega_Producto_
Compra
En este proceso están involucrados 3 procesos junto a 3 almacenes. Los almacenes que intervienen son Facturas, Devoluciones y Pagos. Además, los procesos primitivos que intervienen en este proceso general son Verificar Existencia Factura, Comprobar Estado Producto y Realizar Devolución Pago.
Práctica de Ingeniería del Software VideoClub
31
3.5.1.
IdentificarAbonado
3.5.2.
ComprobarDevolución
Diagrama 3.5. : Tratar Sanciones
DNI_Tarjeta
Código_Devolución
Confirmación_Abonado
ABONADO SANCIONE
Sanción
Operación_Realizada
Otro proceso, el Tratar Sanciones que contiene 2 almacenes: Sanciones y Abonados. Las funciones primitivas que tenemos son Identificar Abonado, proceso que ya ha sido utilizado en otros procesos, y Comprobar Devolución. En el tratamiento de la sanciones, se introduce el código identificativo del abonado así como el código de devolución que se haya obtenido. Con ello, se obtendrá si se impone o no una sanción al abonado, y en caso afirmativo, a que cuantía ascendería esta sanción.
Práctica de Ingeniería del Software VideoClub
32
4.1.1.
GeneraciónCódigo
Banco
4.1.2.
SeleccionarOperación
Banco
4.1.3.Insertar
Banco
4.1.4.Eliminar
Banco
4.1.5.Visualizar
Banco
4.1.6.Modificar
Banco
Diagrama 4.1. : Actualización de Bancos
BANCOS
Datos_Banco
Código_Banco
Inserción_Banco
Eliminación_Banco
Modificación_Banco
Visualización_Banco
Operación_RealizadaOperación_
Realizada
Operación_Realizada
Operación_Realizada
Operación_Banco
Para el proceso Actualización de Bancos, tenemos que intervienen 6 procesos. Estos son Generar Código Banco, Seleccionar Operación Banco, Insertar Banco, Eliminar Banco, Visualizar Banco y para concluir Modificar Banco. Estas funciones primitivas usan como apoyo exclusivamente un almacén, el cuál es el de Bancos.
Práctica de Ingeniería del Software VideoClub
33
4.2.2.
IdentificaciónAbonado
4.2.4.Realizar
Cobro
Abonado
4.2.3.Realizar
Pago
Asesoría
Diagrama 4.2. : Cobrar de Bancos
Datos_Cliente_Personales DNI_Tarjeta
Pago_
Banco
ABONADOS BANCOS
Pago_Asesoría
Operación_
Realizada
Operación_
Realizada
Código_Factura
Y para concluir con el último diagrama, Cobrar de Bancos, disponemos de 2 almacenes, los cuáles son Abonados y Bancos. Estos almacenes van a ser utilizados por 4 funciones terminales. Estas funciones terminales o primitivas son las siguientes: Seleccionar Cobro o Pago, Identificar Abonado, Realizar Cobro Abonado y Realizar Pago Asesoría.
Práctica de Ingeniería del Software VideoClub
34
3.3. Diccionario de Datos Abonado = Código_Abonado + Nombre + Dirección + Localidad + Cpostal + DNI + TLF + Código_Banco +
CCC_Abonado ABONADOS = { abonado } Albarán = {Productos} ALBARANES = {Albarán} BANCOS = { Datos_banco } Cantidades = * número que indica una cantidad monetaria *
Tipo: XXXXXX Ptas. Cantidad_a_Recargar = Cantidades Categoría = * Indica (numéricamente) el tipo de producto que es, siendo 1 = película , 2 = consola, 3 = juego * Tipo: X CCC_Abonado = * Código de la cuenta corriente especificada por el cliente *
Tipo: XXXX-XXXX-XXXX-XXXX CCC_Proveedor = CCC_cliente CIF = DNI CLIENTES = { Datos_cliente } Código = * número de cinco cifras *
Tipo: XXXXX Código_Abonado = * Código numérico de cinco cifras que identifica al abonado * Código Código_Banco = * Código numérico que identifica al banco * Código Código_Cliente = * Código numérico de cinco cifras que identifica a un cliente * Código Código_Devolución = * Código numérico de cinco cifras que identifica una devolución * Código Código_Factura = * Código numérico de cinco cifras que identifica una factura * Código Código_Pedido = * Código numérico de cinco cifras que identifica un pedido * Código Código_Pedido_Pendiente = * Código numérico de cinco cifras que identifica un pedido * Código Código_Producto = * Código numérico de cinco cifras que identifica un producto * Código Código_Proveedor = * Código numérico de cinco cifras que identifica al proveedor * Código Código_Proveedor = * Código numérico de cinco cifras que identifica un proveedor * Código Confirmación = * Valor verdarero o falso *
Tipo: BOOLEAN Confirmación_Abonado = * Bandera que indica si el abonado existe * Confirmación Confirmación_Correcta = * Bandera que indica si el abonado existe * Confirmación Confirmación_Entrega = * Bandera que indica si el pedido es correcto * Confirmación Confirmación_Existencias = * Bandera que indica si hay existencias * Confirmación Confirmación_Factura = * Bandera que indica si la factura existe * Confirmación CONSOLAS = { producto } Cpostal = * Código postal * Tipo: XXXXX Datos_Abonado = Código_Abonado + Nombre + Dirección + Localidad + Cpostal + DNI + TLF Datos_Banco = Código_Banco + Sucursal + Dirección + Localidad + Cpostal + TLF Datos_Cliente = Código_Cliente + Nombre + Dirección + Localidad + Cpostal + DNI + TLF + Código_Banco +
CCC_Cliente Datos_Cliente_Bancarios = Datos_Clientes Datos_Cliente_Personales = Datos_Clientes Datos_Pedido = { Código_Producto + Código_Proveedor + Cantidades } Datos_Pedido_Pendiente = { Código_Producto + Código_Proveedor + Cantidades } Datos_Proveedor = Código_Proveedor + Nombre + Dirección + Localidad + Cpostal + CIF + TLF + Código_Banco +
CCC_Proveedor Descripción = * Una breve descripción del producto * Tipo: STRING DEVOLUCIONES = { Código_Producto + Cantidades} Dirección = * Indica una dirección * Tipo: STRING DNI = * Documento nacional de identidad * Tipo: XXXXXXXX-Y DNI_Tarjeta = Código_Abonado
Práctica de Ingeniería del Software VideoClub
35
Documento_Pedido = Texto + 1 { productos } Documento_Pedido_Pendiente = Documento_Pedido Eliminación_Banco = 1{ Código_Banco } Eliminación_Factura = 1{ Código_Factura } Eliminación_Proveedor = 1{ Código_Proveedor } Emisión_Tarjeta = [ Tarjeta | Tarjeta_Recargada ] Entrega_Alquiler = 1{ producto } Entrega_Compra = 1{ producto } Entrega_Pedido = 1{ producto } Entrega_Pedido_Alquiler = 1{ producto } Entrega_Producto = 1{ producto } Estado_Inadecuado = Confirmación Existencia_Negativa = Confirmación Factura = Código_Factura + Tipo_Factura + Fecha + Nombre + Dirección + Localidad + Cpostal + DNI + TLF + 1{
Cantidad + Descripción + Importe + IGIC } + Total Factura_Pedido = Factura Factura_Proveedor = Factura FACTURAS = {factura } Fecha = * Indica una fecha * Tipo: XX-XX-XXXX Fecha_Devolución = Fecha Fecha_Sanción = Fecha IGIC = * indica el porcentaje que hay que pagar por impuestos * Tipo: X.X % Importe = * una cantidad numérica * Cantidades Inserción_Banco = 1{Código_Banco } Inserción_Factura = 1{ Código_Factura } Inserción_Proveedor = 1{ Código_Proveedor } JUEGOS = { producto } Localidad = * Indica una localidad * Tipo: STRING Modificación_Banco = 1{Código_Banco } Modificación_Factura = 1{ Código_Factura } Modificación_Proveedor = 1{ Código_Proveedor } Nombre = * Nombre y apellidos de una persona *
Tipo: STRING Operación = [ @INSERTAR | @MODIFICAR | @ELIMINAR | @VISUALIZAR] Operación_Banco = * indica la operación a realizar con un banco * Operación Operación_Factura = * indica la operación a realizar con una factura * Operación Operación_Proveedor = * indica la operación a realizar con un proveedor * Operación Operación_Realizada = Confirmación Pago = * Cantidad numérica correspondiente a algún pago *
Tipo: XXXXXXXX Pago = Código_Factura + Tipo_Factura + Importe Pago_Alquiler = * Cantidad abonada al realizar un alquiler * Cantidades Pago_Asesoría = * Cantidad abonada a la asesoría * Cantidades Pago_Banco = * Cantidad abonada al banco * Cantidades Pago_Compra = * Cantidad abonada por una compra * Cantidades Pago_Devolución = * Cantidad abonada por una devolución * Cantidades Pago_Proveedor = * Cantidad abonada a un proveedor * Cantidades PAGOS = { pago } Pedido = Datos_Pedido Pedido_Confirmado = Confirmación PEDIDOS = { Datos_Pedido } PELÍCULAS = { producto } Pide_Alquiler = 1{ producto } Pide_Compra = 1{ producto } Precio_Venta = * número que indica el precio de algo * Tipo: XXXXX Producto = Código_Producto + Tipo_Producto + Categoría + Descripción + Cantidades + Precio_Venta
Práctica de Ingeniería del Software VideoClub
36
PRODUCTOS = {Producto} PROVEEDORES = { Datos_Proveedor } Sanción = DNI_Tarjeta + Fecha_Sanción + Importe SANCIONES = { Sanción } Sanción_Positiva = * Bandera que indica que hay sanción * Confirmación Sin_Sanción = * Bandera que indica que no hay sanción * Confirmación Sucursal = * Indica el nombre del banco utilizado *
Tipo: STRING Tarjeta = DNI_Tarjeta + Cantidad Tarjeta_Recargada = Tarjeta Texto = * Párrafo o párrafos para hacer pedidos, observaciones, dar información, etc *
Tipo: STRING Tipo_Factura = * indica de quién proviene o a quién va dirigida la factura * [ @CLIENTE | @PROVEEDOR |
@ASESORÍA ] Tipo_Producto = * Indica el subtipo de producto * [ DVD | VHS | GAME-BOY | GAME-GEAR | PLAYSTATION |
PC | NINTENDO-64 | COMPLEMENTOS ] TLF = * Teléfono * Tipo: XXXXXXXX Total = Importe Visualización_Banco = 1{Código_Banco } Visualización_Factura = 1{Código_Factura } Visualización_Proveedor = 1{Código_Proveedor }
3.4. Especificación Lógica de Procesos • Aumentar Cantidad Tarjeta
SI Confirmación_Correcta = TRUE ENTONCES Leer de ABONADOS la entrada correspondiente a Código_Abonado Tarjeta_Recargada.Cantidad = Tarjeta.Cantidad + Cantidad_a_Recargar Actualizar ABONADOS FINSI
• Comprobar Devolución
SI Código_Abonado <> 0 ENTONCES Obtener lista de Productos y Fechas con el Código_Devolución Confirmación_Sanción = FALSE Sanción = 0 PARA cada elemento de la lista HACER
SI Fecha_Devolución <= Fecha ENTONCES Confirmación_Sanción = TRUE Sanción = Sanción + MULTA FINSI FINPARA
FINSI
Práctica de Ingeniería del Software VideoClub
37
• Comprobar Estado Producto
PARA cada producto de Entrega_Producto HACER SI (Confirmación_Existencia Y (leer_estado=MAL))ENTONCES Estado_Inadecuado = TRUE FINSI FINPARA
• Comprobar Factura
SI Buscar_Factura (Código_Factura) = TRUE ENTONCES Comprobación_Correcta = TRUE Operación_Factura = leer_operación() SINO Comprobación_Correcta = FALSE
FINSI • Crear Nueva Ficha
CON Código_Abonado HACER Insertar Datos_Abonado en ABONADOS FINSI
• Crear Tarjeta
CON Datos_Abonado HACER Imprimir_Tarjeta
FINCON • Descontar Crédito
CON Código_Abonado HACER leer de ABONADOS la entrada correspondiente abonado.crédito = abonado.crédito + Sanción
FINCON • Devolver Producto Alquilado
SI Código_Abonado <> 0 ENTONCES PARA cada producto en Entrega_Producto HACER SEGÚN producto HACER 1 * PELÍCULAS * : Actualizar PELÍCULAS 2 * CONSOLAS * : Actualizar CONSOLAS 3 * JUEGOS * : Actualizar JUEGOS
FINSEGÚN FINPARA
Actualizar ABONADOS CON Fecha_devolución HACER
Código_devolución = generar_código_devolución FINCON
FINSI
Práctica de Ingeniería del Software VideoClub
38
• Entregar Producto
SI (Confirmación_Existencias = TRUE) ENTONCES PARA cada producto HACER SEGÚN producto HACER 1: Actualizar PELÍCULAS 2: Actualizar CONSOLAS 3: Actualizar JUEGOS FINSEGÚN Añadir producto a Entrega_Producto FINPARA Añadir a FACTURAS la factura de la nueva venta
Añadir a PAGOS el pago de la nueva venta FINSI
• Generar Código Abonado
CON Datos_Abonado HACER Código_Abonado = DNI_Abonado FINCON
• Generar Código Pedido
CON Datos_Pedido HACER Código_Pedido = generar_código FINCON
• Generar Pedido
SI Existencia_Negativa = TRUE ENTONCES CON Datos_Pedido HACER Insertar pedido en PEDIDOS FINCON Documento _Pedido = generación de pedido
FINSI • Eliminar Banco
PARA cada banco en Eliminación_Banco HACER Eliminar banco de BANCOS FINPARA Operación_Realizada = TRUE
• Eliminar Factura
PARA cada factura en Eliminación_Factura HACER Eliminar factura de FACTURAS FINPARA
Operación_Realizada = TRUE
Práctica de Ingeniería del Software VideoClub
39
• Eliminar Proveedor
PARA cada proveedor en Eliminación_Proveedor HACER Eliminar proveedor de PROVEEDORES FINPARA Operación_Realizada = TRUE
• Enviar Pedido
CON Documento_Pedido HACER Pedido = Imprimir pedido FINCON
• Generar Código Banco
CON Datos_Banco HACER Código_Banco = generar_número_banco FINCON
• Generar Código Proveedor
CON Datos_Proveedor HACER Código_Proveedor = generar_número_proveedor
FINCON Operación_Proveedor = leer_operación()
• Insertar Banco
PARA cada banco en Inserción_Banco HACER Insertar Banco en BANCOS FINPARA Operación_Realizada = TRUE
• Insertar Factura
PARA cada factura en Inserción_Factura HACER Insertar factura en FACTURAS FINPARA Operación_Realizada = TRUE
• Insertar Proveedor
PARA cada proveedor en Inserción_Proveedor HACER Insertar Proveedor en PROVEEDORES FINPARA Operación_Realizada = TRUE
• Modificar Banco PARA cada banco en Modificación_Banco HACER Modificar Banco en BANCOS FINPARA Operación_Realizada = TRUE
Práctica de Ingeniería del Software VideoClub
40
• Modificar Factura
PARA cada factura en Modificación_Factura HACER Modificar factura en FACTURAS FINPARA Operación_Realizada = TRUE
• Modificar Proveedor
PARA cada proveedor en Modificación_Proveedor HACER Modificar proveedor en PROVEEDORES FINPARA Operación_Realizada = TRUE
• Realizar Cobro Abonado
CON DNI_Tarjeta HACER A=Consultar BANCOS Añadir Pago_Banco a A Actualizar BANCOS FINCON Operación_Realizada = TRUE
• Realizar Devolución Pago
SI Estado_Inadecuado = TRUE ENTONCES PARA cada producto en Entrega_Producto HACER
Actualizar DEVOLUCIONES Actualizar PAGOS Devolución_Pago = Generar_devolución_pago
FINPARA Operación_Realizada = TRUE FINSI
• Realizar Pago Asesoría
Pago_Asesoría = Código_Factura.Cantidad Operación_Realizada = TRUE
• Realizar Pago a Proveedor
SI Confirmación_Factura ENTONCES CON Código_Factura HACER Proveedor = leer_Proveedor Pago_Proveedor = Cantidad Actualizar PAGOS FINCON FINSI
Práctica de Ingeniería del Software VideoClub
41
• Revisar el Pedido
Pedido_Confirmado = TRUE PARA cada producto de Entrega_Pedido HACER SI Coincide producto con entrada en Factura_Pedido ENTONCES SEGÚN Tipo_Producto HACER 1 * PELICULA *: Actualizar PELICULAS 2 *CONSOLA*: Actualizar CONSOLAS 3 *JUEGO* : Actualizar JUEGOS FINSEGUN SINO Añadir producto a Datos_Pedido Pedido_Confirmado = FALSE FINSI FINPARA
Añadir nuevo albarán a ALBARANES • Seleccionar Operación Banco
MIENTRAS Operación_Banco != SALIR HACER SEGÚN Operación_Banco HACER INSERTAR : Inserción_Banco = leer_banco();
MODIFICAR : Modificación_Banco = leer_banco(); ELIMINAR : Eliminación_Banco = leer_banco(); VISUALIZAR : Visualización_Banco = leer_banco();
FINSEGÚN FINMIENTRAS • Seleccionar Operación Factura
MIENTRAS Operación_Factura != SALIR HACER SEGÚN Operación_Factura HACER INSERTAR : Inserción_Factura = leer_facturas();
MODIFICAR : Modificación_Factura = leer_facturas(); ELIMINAR : Eliminación_Factura = leer_facturas(); VISUALIZAR : Visualización_Factura = leer_factura();
FINSEGÚN FINMIENTRAS
• Seleccionar Operación Proveedor
MIENTRAS Operación_Proveedor != SALIR HACER SEGÚN Operación_Proveedor HACER INSERTAR : Inserción_Proveedor = leer_proveedor();
MODIFICAR : Modificación_Proveedor = leer_proveedor(); ELIMINAR : Eliminación_Proveedor = leer_proveedor(); VISUALIZAR : Visualización_Proveedor = leer_proveedor();
FINSEGÚN FINMIENTRAS • Verificar Existencia Factura
SI Buscar_Factura (Código_Factura) = TRUE ENTONCES Confirmación_Factura = TRUE Actualizar FACTURAS FINSI
Práctica de Ingeniería del Software VideoClub
42
• Verificar Existencia Pedido
SI Buscar_Pedido (Código_Pedido) en PEDIDOS= TRUE ENTONCES Existencia_Negativa = FALSE SINO Existencia_Negativa = TRUE
FINSI • Verificar existencia Producto
Confirmación_Existencias = TRUE Entrega_Producto = 0 PARA cada producto en Pide_Alquiler HACER SEGÚN producto HACER 1: SI (buscar_producto() en PELÍCULAS = FALSE) ENTONCES Confirmación_Exis tencias = FALSE Existencia_Negativa = TRUE SINO Entrega_Producto = Entrega_Producto + producto
FINSI 2: SI (buscar_producto() en CONSOLAS = FALSE) ENTONCES Confirmación_Existencias = FALSE Existencia_Negativa = TRUE SINO Entrega_Producto = Entrega_Producto + producto FINSI 3: SI (buscar_producto() en JUEGOS = FALSE) ENTONCES Confirmación_Existencias = FALSE Existencia_Negativa = TRUE SINO Entrega_Producto = Entrega_Producto + producto FINSI FINSEGÚN FINPARA
• Verificar Alquiler
PARA cada producto de Entrega_Producto HACER SEGÚN producto HACER 1 * PELÍCULAS * : Actualizar PELÍCULAS 2 * CONSOLAS * : Actualizar CONSOLAS 3 * JUEGOS * : Actualizar JUEGOS
FINSEGÚN FINPARA Actualizar ABONADOS
• Visualizar Banco
PARA cada banco en Visualización_Banco HACER leer Banco de BANCOS mostrar Banco FINPARA Operación_Realizada = TRUE
Práctica de Ingeniería del Software VideoClub
43
• Visualizar Factura
PARA cada factura en Visualización_Factura HACER leer Factura de FACTURAS mostrar Factura FINPARA Operación_Realizada = TRUE
• Visualizar Proveedor
PARA cada proveedor en Visualización_Proveedor HACER leer Proveedor de PROVEEDORES mostrar Proveedor FINPARA Operación_Realizada = TRUE
Práctica de Ingeniería del Software VideoClub
44
3.5. Diagrama Entidad - Relación
Diagrama del Modelo Entidad - Relación
Pagan a
Recibe Compran Piden Devuelven Alquilan Suministran
Productos
Consolas Películas Juegos
Clientes Abonados ProveedoresAbonados
FacturasBancos
Traen GeneranAsesorías
Cobran de
M
N
1
N
M
N
M
N
M
N
1
M
M
N
1
N
1
N
M
N
M1
1
1
M
N
Facturas
Facturas
Facturas
Práctica de Ingeniería del Software VideoClub
45
Mediante la representación arriba expuesta, lo que obtenemos es la relación que existe entre las entidades externas con las que interviene la empresa. Observamos como Consolas, Películas y Juegos se agrupan todas en una categoría exclusivamente, Productos. Con ellos se pueden realizar todas las operaciones y de la misma manera, de ahí que se pueda englobar en una sola categoría, pasando a ser subentidades de la entidad Productos. Con esto, hemos concluido con las descripción de los requerimientos que impone el usuario para la aplicación software a construir. A continuación, ya pasaremos a describir la definición de los requerimientos del software donde se va a reflejar la visión que el desarrollador tiene del software a construir. Para ello, vamos a utilizar el Método de Fusion.
Práctica de Ingeniería del Software VideoClub
46
4. Definición de Requisitos del Software En este apartado vamos a definir perfectamente cuáles son los requisitos que va a imponer el software. as necesidades y problemas que tiene el cliente, el usuario final en el VideoClub. Se va a reflejar que es lo que el usuario espera tener al final, el sistema con el que va a trabajar. Para ello, nos vamos a apoyar en 5 representaciones, que son las siguientes:
1. Diagrama de Objetos del Sistema. 2. Especificación de los ciclos de vida. 3. Descripciones de las Operaciones.
Los objetivos que se buscan con estas representaciones son. Por un lado, con el Diagrama de Objetos del Sistema, se busca capturar los conceptos que existen dentro del dominio del comercio, así como las relaciones entre los objetos. Con la Especificación de los Ciclos de Vida, lo que se busca es definir la secuencia de operaciones necesarias para realizar una actividad. Mediante estas operaciones, se va a permitir que el usuario interactúe con el software. Y para concluir, con las Descripciones de las Operaciones, se utiliza para describir las operaciones identificadas en el Diagrama de Objetos del Sistema y la Especificación de los Ciclos de Vida.
4.1. Diagrama de Objetos del Sistema En los Diagramas de Objetos del Sistema vamos a especificar las clases que intervienen, así como sus atributos o campos, y las subclases que puedan haber. Posteriormente, una vez definidas las clases, se establecerán las distintas relaciones que puedan haber entre ellas. También quedará reflejado las posibles herencias que se vayan a dar. Los objetos serán representados mediante rectángulos, y las relaciones mediante rombos. Dentro de cada objeto, si hay relaciones de uno a mucho, se introducirá en 1 cuadrado la relación. Todo esto lo vamos a representar en una serie de diagramas que pasamos a mostrar a continuación.
Práctica de Ingeniería del Software VideoClub
47
Diagrama de Objetos del Sistema
FICHA PRODUCTOS
Código_Producto Tipo_Producto
Categoría Descripción Cantidades
Precio_Venta
FICHA PROVEEDORES
Código_Proveedor
Nombre Dirección Localidad CPostal
CIF TLF
Código_Banco CCC_Proveedor
FICHA ABONADOS
Código_Abonado
Nombre Dirección Localidad
CPostal DNI TLF
Código_Banco CCC_Abonado
FICHA BANCOS
Código_Banco
Sucursal Dirección Localidad CPostal
TLF
FICHA FACTURAS
Código_Factura Tipo_Factura
Fecha Nombre
Dirección Localidad CPostal
DNI TLF
Cantidad Descripción
Importe IGIC
Total
*
FICHA CLIENTES
Código_Cliente Nombre
Dirección Localidad CPostal
DNI TLF
Código_Banco CCC_Cliente
Traen
Cobran de
Pagan a
Reciben
Generan
Piden
Compran
Devuelven
Alquilan
Suministran
Piden
M
N
1
N
1 N
M N
M
N
M
N
M
N
1
M M
N
M
N
M
N
1
N
Clientes
Representa
Productos
Representa
RepresentaProveedores
Facturas
Representa
Representa
Bancos
AbonadosRepresenta
Productos
Práctica de Ingeniería del Software VideoClub
48
Usuario
Inserta
Extrae
Actualiza
Consulta
Producto
Cliente
Abonado
Proveedor
Banco
Factura
Albarán
Diagrama de Objetos del SistemaOperaciones del Usuario
Práctica de Ingeniería del Software VideoClub
49
BancoTratacon
Persona Manipula Producto
Cliente Abonado Proveedor Video Consola
Diagrama de Objetos del SistemaRelación entre Entidades y Herencias
Práctica de Ingeniería del Software VideoClub
50
Producto Representa
Código_ProductoTipo_Producto
CategoríaDescripciónCantidades
Precio_Venta
Ficha Producto
Banco Representa
Código_BancoSucursalDirecciónLocalidadCpostal
TLF
Ficha Banco
Factura Representa
Código_FacturaTipo_Factura
FechaNombreDirecciónLocalidadCpostal
DNITLF
CantidadImporte
IGICTotal
Ficha Factura
Diagrama de Objetos del SistemaAtributos de los Objetos
Albarán RepresentaCódigo_AlbaránCódigo_Factura
*
Ficha Albarán
Producto
Práctica de Ingeniería del Software VideoClub
51
Cliente Representa
Código_ClienteNombre
DirecciónLocalidadCpostal
TLFDNI
Código_BancoCCC_Cliente
Ficha Cliente
Abonado Representa
Código_AbonadoNombre
DirecciónLocalidadCpostal
TLFDNI
Código_BancoCCC_Abonado
Ficha Abonado
Proveedor Representa
Código_ProveedorNombre
DirecciónLocalidadCpostal
TLFCIF
Código_BancoCCC_Proveedor
Ficha Proveedor
Diagrama de Objetos del SistemaAtributos de los Objetos
Práctica de Ingeniería del Software VideoClub
52
Almacén
*
Productos
FichaProducto
*
Clientes
FichaCliente
*
Proveedores
FichaProveedores
*
Abonados
FichaAbonado
*
Bancos
FichaBanco
*
Facturas
FichaFactura
*
Facturas
FichaFactura
Diagrama de Objetos del SistemaRelación entre Almacén y Objetos del Sistema
Proveedor Trae
Cobra de
Albarán
Factura
Banco
Recibe
Paga a
Cliente
Abonado
Diagrama de Objetos del SistemaRelación de Proveedores respecto al VideoClub
Práctica de Ingeniería del Software VideoClub
53
Cliente
Abonado
Pide
Compra
Devuelve
Pide
Alquila
Devuelve
Producto Suministra Proveedor
Diagrama de Objetos del SistemaRelación entre Clientes y Abonados
Práctica de Ingeniería del Software VideoClub
54
En los diagramas se puede observar como están todos los objetos con los que la empresa va a tratar y tener un control. Ver que con la Asesoría, a nivel de Software no va a haber ningún tipo de operación, por lo que nos es necesario representar su objeto ni sus características. El resto de los objetos y relaciones son muy parecidas a las que ya teníamos para la definición de requisitos del usuario, especificado en el Diagrama Entidad – Relación. Comentar que tenemos en la representación del primer diagrama, las entidades fuera del sistema, el cuál está delimitado mediante líneas discontinuas. Las entidades se unen con los objetos de los que se representan su ficha mediante la relación Representa. En él representamos las fichas de cada una de las entidades que representamos mediante objetos y que componen nuestro sistema. Esos atributos son los campos, que previamente se han especificado en la definición de requerimientos del usuario, a través de las distintas representaciones, como son los Diagramas de Flujos de Datos (DFD’s) y el Diccionario de Datos (DD). En los restantes diagramas, vemos distintas interacciones que se producen entre los objetos del sistema, así como sus respectivas relaciones con otros objetos, siempre pertenecientes al sistema.
4.2. Especificación de los Ciclos de Vida En esta representación, lo que vamos a poner es la secuencialidad de las operaciones que se van a realizar para las distintas funciones que se realizan dentro de nuestro sistema. 1. Gestión de los Abonados Crear Abonado = Abrir Abonados . Insertar Abonado . Introducir Datos Abonado . Generar Código . Almacenar Datos Abonado . Imprimir Tarjeta Recargar Tarjeta = Abrir Abonados . Recargar Tarjeta Abonado . Introducir Código Abonado . Leer Código Banco . Buscar Código Abonado . Buscar Código Banco . Modificar Datos Abonado Eliminar Abonado = Abrir Abonados . Eliminar Abonado . Introducir Código Abonado . Buscar Código Abonado . Eliminar Datos Abonado Visualizar Abonado = Abrir Abonados . Visualizar Abonado . Introducir Código Abonado . Buscar Código Abonado . Visualizar Datos Abonado Modificar Abonado = Abrir Abonados . Modificar Abonado Introducir Código Abonado . Buscar Código Abonado . Modificar Datos Abonado
Práctica de Ingeniería del Software VideoClub
55
2. Gestión de los Proveedores Realizar Pedidos = Abrir Pedidos . ( Insertar Pedido . Introducir Datos Pedido . Generar Código . Buscar Código Pedido . [ Almacenar Datos Pedido . Enviar Pedido ] ) + . Comprobar Entregas = Abrir Pedidos . ( Comprobar Pedidos . Introducir Código Pedido . Buscar Código Pedido . [ Confirmar Código Pedido . [ Abrir Pedidos . Insertar Pedido . Introducir Datos Pedido. Generar Código . Buscar Código Pedido . [ Almacenar Datos Pedido . Enviar Pedido ] ] + ] ) + Traer Facturas = Abrir Facturas . ( Seleccionar Operación Factura . ( ( Insertar Factura . Introducir Datos Factura . Generar Código . Buscar Código Factura . Almacenar Datos Factura ) | ( Modificar Factura . Introducir Código Factura . Buscar Código Factura . [ Modificar Datos Factura ] ) | ( Visualizar Factura . Introducir Código Factura . Buscar Código Factura . [ Visualizar Datos Factura ] ) | ( Eliminar Factura . Introducir Código Factura . Buscar Código Factura . [ Eliminar Datos Factura ] ) | ( Pagar Factura . Introducir Código Factura . Buscar Código Factura . [ Pagar La Factura ] ) ) + Actualizar Proveedores = Abrir Proveedores . ( Seleccionar Operación Proveedor . ( ( Insertar Proveedor . Introducir Datos Proveedor . Generar Código . Buscar Código Proveedor . Almacenar Datos Proveedor ) | ( Modificar Proveedor . Introducir Código Proveedor . Buscar Código Proveedor . [ Modificar Datos Proveedor . Modificar Datos Proveedor ] ) | ( Visualizar Proveedor . Introducir Código Proveedor . Visualizar Datos Proveedor ) | ( Eliminar Proveedor . Introducir Código Proveedor . Buscar Código Proveedor . [ Eliminar Datos Proveedor ] ) ) + 3. Gestión de los Clientes Gestionar Alquiler = Abrir Productos . Alquilar Producto . [ Introducir Código Producto . Buscar Código Producto . [ Introducir Código Abonado . Buscar Código Abonado . Modificar Datos Abonado ] ] + Gestionar Compra = Abrir Productos . Comprar Producto . [ Introducir Código Producto . Buscar Código Producto . [ Introducir Datos Cliente . Almacenar Datos Cliente ] ] + Gestionar Devolución Alquiler = Abrir Productos . Devolver Producto . [ Introducir Código Abonado . Buscar Código Abonado . [ Introducir Código Producto . Buscar Código Producto . Modificar Datos Abonado . Introducir Fecha Devolución . Calcular Sanción . [ Modificar Datos Abonado ] ] ] + Gestionar Problemas Compra = Abrir Productos . Cambiar Producto . [ Introducir Código Factura . Buscar Código Factura . [ Confirmar Estado Producto . [ Devolver Factura ] ] ] +
Práctica de Ingeniería del Software VideoClub
56
4. Gestión de los Bancos Actualizar Bancos = Abrir Bancos . ( Seleccionar Operación Bancos . ( ( Insertar Banco . Introducir Datos Banco . Generar Código . Buscar Código Banco . Almacenar Datos Banco ) | ( Modificar Banco . Introducir Código Banco . Buscar Código Banco . [ Modificar Datos Banco . Modificar Datos Banco ] ) | ( Visualizar Banco . Introducir Código Banco . Visualizar Datos Banco ) | ( Eliminar Banco . Introducir Código Banco . Buscar Código Banco . [ Eliminar Datos Banco ] ) ) +
4.3. Descripciones de las Operaciones A continuación, en este apartado vamos a realizar la descripción de las operaciones anteriormente descritas. Para ello, vamos a seguir el guión especificado que a continuación mostramos:
• Nombre. • Descripción. • Lee. • Cambia. • Envía. • Precondiciones. • Postcondiciones.
Comentar que hay varias operaciones que se repiten en varios procesos, por lo que no vamos a describirlas por duplicado. También decir que la enumeración que a continuación vamos a utilizar no se corresponde con la utilizada dentro de la definición de requerimientos del usuario en los Diagramas de Flujos de Datos (DFD’s) dentro del Análisis Estructurado de Yourdon, que es el que se ha utilizado para tales fines. Otro comentario es que puede ocurrir que 2 funciones de idéntica funcionalidad, posean en procesos distintos, diferentes lecturas, cambios o envíos. En ese caso, si se duplicarán la descripción de las operaciones. Por lo tanto, pasamos a ir describiendo cada una de las operaciones que se realizan. 1. Gestión de los Abonados
1.1. Abrir Abonados • Nombre : Abrir Abonados. • Descripción : Función con la que entramos y visualizamos el menú de Abonados. • Lee : Usuario ⇒ Seleccion del menú inicial. • Envía : Insertar Abonados ⇒ Que se ha seleccionado ese menú. • Precondiciones : El Cliente quiere operar con los abonados. • Postcondiciones : Se ha realizado la selección de esa opción correspondiente a los abonados.
Práctica de Ingeniería del Software VideoClub
57
1.2. Insertar Abonado • Nombre : Insertar Abonado. • Descripción : Función con la cual seleccionamos la inserción de insertar un nuevo abonado. • Lee : Usuario ⇒ Selección de esa operación. • Envía : Introducir Datos Abonado ⇒ Se ha seleccionado el submenú. • Precondiciones : Se ha realizado la selección de esa opción correspondiente a los abonados. • Postcondiciones : Entramos en el submenú para insertar abonados.
1.3. Introducir Datos Abonado • Nombre : Introducir Datos Abonado. • Descripción : Se introducen los datos correspondientes al nuevo usuario del cuál rellenamos su ficha. • Lee : Usuario ⇒ Datos del Abonado • Envía : Generar Código ⇒ Datos para calcular el código. • Precondiciones : Entramos en el submenú para insertar abonados. • Postcondiciones : Rellenamos la ficha con los datos del nuevo abonado.
1.4. Generar Código • Nombre : Generar Código. • Descripción : Se calcula el código necesario a través de los datos pasados. • Lee : Introducir Datos Abonado ⇒ Datos para calcular el código. • Envía : Almacenar Datos Abonado ⇒ Código calculado y los datos usados para tal fin. • Precondiciones : Llegan datos a través del usuario previamente. • Postcondiciones : Se ha generado el código de acuerdo a los datos pasados.
1.5. Almacenar Datos Abonado • Nombre : Almacenar Datos Abonado. • Descripción : Se van a introducir los datos del nuevo abonado en la base de datos diseñada para tal fin. • Lee : Introducir Datos Abonado ⇒ Datos del abonado ; Generar Código ⇒ Código identificativo del abonado. • Cambia : La base de datos ABONADOS. • Envía : Imprimir Tarjeta ⇒ Datos del abonado y el código identificativo. • Precondiciones : Se ha calculado lo necesario para realizar un nuevo abono. • Postcondiciones : Se han almacenado los datos en la base de datos.
Práctica de Ingeniería del Software VideoClub
58
1.6. Impresión Tarjeta • Nombre : Impresión Tarjeta. • Descripción : Imprimimos la tarjeta física que se entrega al abonado. • Lee : La base de datos ABONADOS. • Envía : Usuario ⇒ Tarjeta final del abonado. • Precondiciones : Tenemos los datos almacenados del nuevo abonado. • Postcondiciones : Se obtiene la tarjeta para el abonado.
1.7. Recargar Tarjeta Abonado • Nombre : Recargar Tarjeta Abonado. • Descripción : Seleccionamos la operación para incrementar el crédito de la tarjeta para alquilar productos. • Lee : Usuario ⇒ Selección dentro del menú. • Envía : Selección de esta operación dentro del submenú. • Precondiciones : Se ha seleccionado la operación para entrar en el menú Abonados. • Postcondiciones : Elegimos la opción esta en el submenú.
1.8. Introducir Código Abonado • Nombre : Introducir Código Abonado. • Descripción : Se introduce el código del abonado para operar con él. • Lee : Usuario ⇒ Código del Abonado. • Envía : Buscar Código Abonado ⇒ Código del Abonado. • Precondiciones : Se muestra la operación para introducir el código requerido. • Postcondiciones : Se ha obtenido el código.
1.9. Buscar Código Abonado • Nombre : Buscar Código Abonado. • Descripción : Función que dado un código de abonado, va a intentar buscarlo dentro de la base de datos correspondiente a Abonados. • Lee : Introducir Código Abonado ⇒ Código del Abonado ; ABONADOS. • Envía : Usuario ⇒ Confirmación de la Existencia o no. • Precondiciones : Con el código obtenido, pasamos a realizar la búsqueda. • Postcondiciones : Se ha buscado el código y se sabe de su existencia o no.
Práctica de Ingeniería del Software VideoClub
59
1.9. Leer Código Banco • Nombre : Leer Código Banco. • Descripción : Función que lee el código del banco en el cúal tiene cuenta el abonado. • Lee : Introducir Código Abonado ⇒ Código del Abonado ; ABONADOS. • Envía : Buscar Código Banco ⇒ Código del Banco. • Precondiciones : Se ha obtenido el código del abonado. • Postcondiciones : Sale el código del banco donde tiene cuenta el abonado, si es que la posee.
1.10. Buscar Código Banco • Nombre : Buscar Código Banco. • Descripción : Función que dado un código de banco, va a intentar buscarlo dentro de la base de datos correspondiente a Bancos. • Lee : Lee Código Banco ⇒ Código del Banco ; BANCOS. • Envía : Usuario ⇒ Confirmación de la existencia o no. • Precondiciones : Con el código obtenido, pasamos a realizar la búsqueda. • Postcondiciones : Se ha buscado el código y se sabe de su existencia o no.
1.11. Modificar Datos Abonado • Nombre : Modificar Datos Abonado. • Descripción : Función que va a modificar los datos correspondientes al abonado en los parámetros que se le pasen. • Lee : Usuario ⇒ Cantidad de Dinero a incrementar. • Cambia : ABONADOS ; PAGOS. • Envía : Usuario ⇒ Confirmación de Recarga. • Precondiciones : Se han introducido ciertos datos a modificar en el abonado. • Postcondiciones : Se ha recargado la tarjeta con el crédito dicho.
2. Gestión de los Proveedores
2.1. Abrir Pedidos • Nombre : Abrir Pedidos. • Descripción : Función con la que entramos y visualizamos el menú de Pedidos. • Lee : Usuario ⇒ Seleccion del menú inicial. • Envía : Insertar Pedidos ⇒ Que se ha seleccionado ese menú. • Precondiciones : El usuario quiere operar con los pedidos. • Postcondiciones : Se ha realizado la selección de esa opción correspondiente a los pedidos.
Práctica de Ingeniería del Software VideoClub
60
2.2. Insertar Pedido • Nombre : Insertar Pedido. • Descripción : Función con la cual seleccionamos la inserción de un nuevo pedido. • Lee : Usuario ⇒ Selección de esa operación. • Envía : Introducir Datos Pedido ⇒ Se ha seleccionado el submenú. • Precondiciones : Se ha realizado la selección de esa opción correspondiente a los pedidos. • Postcondiciones : Entramos en el submenú para insertar pedidos.
2.3. Introducir Datos Pedido • Nombre : Introducir Datos Pedido. • Descripción : Se introducen los datos correspondientes al nuevo pedido del cuál rellenamos su ficha. • Lee : Usuario ⇒ Datos del Pedido • Envía : Generar Código ⇒ Datos para calcular el código. • Precondiciones : Entramos en el submenú para insertar pedidos. • Postcondiciones : Rellenamos la ficha con los datos del nuevo pedido.
2.4. Generar Código • Nombre : Generar Código. • Descripción : Se calcula el código necesario a través de los datos pasados. • Lee : Introducir Datos ? ⇒ Datos para calcular el código. • Envía : Buscar Código ? ⇒ Código calculado y los datos usados para tal fin. • Precondiciones : Llegan datos a través del usuario previamente. • Postcondiciones : Se ha generado el código de acuerdo a los datos pasados.
2.5. Buscar Código Pedido • Nombre : Buscar Código Pedido. • Descripción : Función que dado un código de pedido, va a intentar buscarlo dentro de la base de datos correspondiente a Pedidos. • Lee : Generar Código ⇒ Código del Pedido ; PEDIDOS. • Envía : Usuario ⇒ Confirmación de la existencia o no. • Precondiciones : Con el código obtenido, pasamos a realizar la búsqueda. • Postcondiciones : Se ha buscado el código y se sabe de su existencia o no.
Práctica de Ingeniería del Software VideoClub
61
2.6. Almacenar Datos Pedido • Nombre : Almacenar Datos Pedido. • Descripción : Se van a introducir los datos del nuevo pedido en la base de datos diseñada para tal fin. • Lee : Introducir Datos Pedido ⇒ Datos del pedido ; Generar Código ⇒ Código identificativo del pedido. • Cambia : La base de datos PEDIDOS. • Envía : Enviar Pedido ⇒ Datos del Pedido y el código identificativo. • Precondiciones : Se ha calculado lo necesario para realizar un nuevo pedido. • Postcondiciones : Se han almacenado los datos en la base de datos.
2.7. Enviar Pedido • Nombre : Enviar Pedido. • Descripción : Enviamos vía fax o e-mail, el pedido al proveedor para que nos lo traiga. • Lee : La base de datos PEDIDOS. • Envía : Proveedor ⇒ Documento con el Pedido. • Precondiciones : Tenemos los datos almacenados del nuevo pedido. • Postcondiciones : Se hace el envío del pedido al proveedor para que nos los proporcione.
2.8. Comprobar Pedido • Nombre : Comprobar Pedido. • Descripción : Función con la cual seleccionamos la opción para comprobar un pedido. • Lee : Usuario ⇒ Selección de esa operación. • Envía : Introducir Código Pedido ⇒ Se ha seleccionado el submenú. • Precondiciones : Se ha realizado la selección de esa opción correspondiente a los pedidos. • Postcondiciones : Entramos en el submenú para comprobar pedidos.
2.9. Introducir Código Pedido • Nombre : Introducir Código Pedido. • Descripción : Se introduce el código del pedido para operar con él. • Lee : Usuario ⇒ Código del Pedido. • Envía : Buscar Código Pedido ⇒ Código del Pedido. • Precondiciones : Se muestra la operación para introducir el código requerido. • Postcondiciones : Se ha obtenido el código.
Práctica de Ingeniería del Software VideoClub
62
2.10. Confirmar Código Pedido • Nombre : Confirmar Código Pedido. • Descripción : Función que pregunta si el pedido ha sido traído correctamente. • Lee : Usuario ⇒ Confirmación Pedido. • Cambia : PEDIDOS. • Precondiciones : Tenemos un código pedido válido. • Postcondiciones : Se ha confirmado la llegada correcta o no del pedido.
2.11. Abrir Facturas • Nombre : Abrir Facturas. • Descripción : Función con la que entramos y visualizamos el menú de Facturas. • Lee : Usuario ⇒ Seleccion del menú inicial. • Envía : Seleccionar Operación Factura ⇒ Que se ha seleccionado ese menú. • Precondiciones : El usuario quiere operar con las facturas. • Postcondiciones : Se ha realizado la selección de esa opción correspondiente a los facturas.
2.12. Seleccionar Operación Factura • Nombre : Seleccionar Operación Factura. • Descripción : Función con la que selecciomos las operaciones a realizar con las distintas facturas que tengamos. • Lee : Usuario ⇒ Selección de esa operación. • Envía : A las restantes operaciones ⇒ La operación seleccionada. • Precondición : Se ha entrado en el menú de Facturas. • Postcondición : Se ha seleccionado una operación a realizar.
2.13. Insertar Factura • Nombre : Insertar Factura. • Descripción : Función con la cual seleccionamos la inserción de una nueva factura. • Lee : Seleccionar Operación Factura ⇒ Selección de esa operación. • Envía : Introducir Datos Factura ⇒ Se ha seleccionado el submenú. • Precondiciones : Se ha realizado la selección de esa opción correspondiente a las facturas. • Postcondiciones : Entramos en el submenú para insertar facturas.
Práctica de Ingeniería del Software VideoClub
63
2.14. Introducir Datos Factura • Nombre : Introducir Datos Factura. • Descripción : Se introducen los datos correspondientes a la nueva factura del cuál rellenamos su ficha. • Lee : Usuario ⇒ Datos de la Factura. • Envía : Generar Código ⇒ Datos para calcular el código. • Precondiciones : Entramos en el submenú para insertar facturas. • Postcondiciones : Rellenamos la ficha con los datos del nuevo facturas.
2.15. Buscar Código Factura • Nombre : Buscar Código Factura. • Descripción : Función que dado un código de factura, va a intentar buscarlo dentro de la base de datos correspondiente a Facturas. • Lee : Generar Código ⇒ Código del Pedido ; FACTURAS. • Envía : Usuario ⇒ Confirmación de la existencia o no. • Precondiciones : Con el código obtenido, pasamos a realizar la búsqueda. • Postcondiciones : Se ha buscado el código y se sabe de su existencia o no.
216. Almacenar Datos Factura • Nombre : Almacenar Datos Factura. • Descripción : Se van a introducir los datos del nuevo pedido en la base de datos diseñada para tal fin. • Lee : Introducir Datos Factura ⇒ Datos de la factura ; Generar Código ⇒ Código identificativo de la factura. • Cambia : La base de datos FACTURAS. • Envía : Enviar Pedido ⇒ Datos de la Factura y el código identificativo. • Precondiciones : Se ha calculado lo necesario para realizar una nueva factura. • Postcondiciones : Se han almacenado los datos en la base de datos.
2.17. Modificar Factura • Nombre : Modificar Factura. • Descripción : Función con la cual seleccionamos la modificación de una factura. • Lee : Seleccionar Operación Factura ⇒ Selección de esa operación. • Envía : Introducir Código Factura ⇒ Se ha seleccionado el submenú. • Precondiciones : Se ha realizado la selección de esa opción correspondiente a las facturas. • Postcondiciones : Entramos en el submenú para modificar facturas.
Práctica de Ingeniería del Software VideoClub
64
2.18. Introducir Código Factura • Nombre : Introducir Código Factura. • Descripción : Se introduce el código de la factura para operar con él. • Lee : Usuario ⇒ Código de la Factura. • Envía : Buscar Código Factura ⇒ Código de la Factura. • Precondiciones : Se muestra la operación para introducir el código requerido. • Postcondiciones : Se ha obtenido el código.
2.19. Modificar Datos Factura • Nombre : Modificar Datos Factura. • Descripción : Función que va a modificar los datos correspondientes a la factura en los parámetros que se le pasen. • Lee : Usuario ⇒ Parámetros que desea modificar ; FACTURAS. • Cambia : FACTURAS. • Envía : Usuario ⇒ Confirmación de la modificación. • Precondiciones : Se han introducido ciertos datos a modificar en la factura. • Postcondiciones : Se han modificado los datos de una factura determinada.
2.20. Visualizar Facturas • Nombre : Visualizar Facturas. • Descripción : Función con la que entramos y visualizamos el menú de Facturas. • Lee : Usuario ⇒ Seleccion del menú inicial. • Envía : Seleccionar Operación Factura ⇒ Que se ha seleccionado ese menú. • Precondiciones : El usuario quiere operar con las facturas. • Postcondiciones : Se ha realizado la selección de esa opción correspondiente a los facturas.
2.21. Visualizar Datos Factura • Nombre : Visualizar Datos Factura. • Descripción : Función que va a visualizar los datos correspondientes a la factura elegida. • Lee : Introducir Código Factura ⇒ El código de la factura ; FACTURAS. • Envía : Usuario ⇒ Muestra los datos requerido. • Precondiciones : Se ha introducido un código de factura para visualizar. • Postcondiciones : Se ha visualizado la factura requerida.
Práctica de Ingeniería del Software VideoClub
65
2.22. Eliminar Facturas • Nombre : Eliminar Facturas. • Descripción : Función con la que entramos y visualizamos el menú de Facturas. • Lee : Usuario ⇒ Seleccion del menú inicial. • Envía : Seleccionar Operación Factura ⇒ Que se ha seleccionado ese menú. • Precondiciones : El usuario quiere operar con las facturas. • Postcondiciones : Se ha realizado la selección de esa opción correspondiente a los facturas.
2.23. Eliminar Datos Factura • Nombre : Eliminar Datos Factura. • Descripción : Función que va a eliminar la factura pedida. • Lee : Introducir Código Factura ⇒ El código de la factura ; FACTURAS. • Envía : Usuario ⇒ Elimina la factura requerida. • Precondiciones : Se ha introducido un código de factura para eliminar. • Postcondiciones : Se ha eliminado la factura requerida.
2.24. Pagar Facturas • Nombre : Pagar Facturas. • Descripción : Función con la que entramos y visualizamos el menú de Facturas. • Lee : Usuario ⇒ Seleccion del menú inicial. • Envía : Seleccionar Operación Factura ⇒ Que se ha seleccionado ese menú. • Precondiciones : El usuario quiere operar con las facturas. • Postcondiciones : Se ha realizado la selección de esa opción correspondiente a los facturas.
2.25. Pagar La Factura • Nombre : Pagar La Factura. • Descripción : Función que va a servir que registrar el pago de una factura. • Lee : Introducir Código Factura ⇒ El código de la factura ; FACTURAS. • Cambia : FACTURAS ; PAGOS. • Envía : Proveedor ⇒ El pago de la factura. • Precondiciones : Se ha introducido un código de factura para pagar. • Postcondiciones : Se ha pagado la factura mencionada.
Práctica de Ingeniería del Software VideoClub
66
2.26. Abrir Proveedores • Nombre : Abrir Proveedores. • Descripción : Función con la que entramos y visualizamos el menú de Proveedores. • Lee : Usuario ⇒ Seleccion del menú inicial. • Envía : Seleccionar Operación Proveedor ⇒ Que se ha seleccionado ese menú. • Precondiciones : El usuario quiere operar con los proveedores. • Postcondiciones : Se ha realizado la selección de esa opción correspondiente a los proveedoress.
2.27. Seleccionar Operación Proveedor • Nombre : Seleccionar Operación Proveedor. • Descripción : Función con la que selecciomos las operaciones a realizar con los distintos proveedores que tengamos. • Lee : Usuario ⇒ Selección de esa operación. • Envía : A las restantes operaciones ⇒ La operación seleccionada. • Precondición : Se ha entrado en el menú de Proveedores. • Postcondición : Se ha seleccionado una operación a realizar.
2.28. Insertar Proveedor • Nombre : Insertar Proveedor. • Descripción : Función con la cual seleccionamos la inserción de un nuevo proveedor. • Lee : Seleccionar Operación Proveedor ⇒ Selección de esa operación. • Envía : Introducir Datos Proveedor ⇒ Se ha seleccionado el submenú. • Precondiciones : Se ha realizado la selección de esa opción correspondiente a los proveedores. • Postcondiciones : Entramos en el submenú para insertar proveedores.
2.29. Introducir Datos Proveedor • Nombre : Introducir Datos Proveedor. • Descripción : Se introducen los datos correspondientes al nuevo proveedor del cuál rellenamos su ficha. • Lee : Proveedor ⇒ Datos del Proveedor. • Envía : Generar Código ⇒ Datos para calcular el código. • Precondiciones : Entramos en el submenú para insertar proveedores. • Postcondiciones : Rellenamos la ficha con los datos del nuevo proveedores.
Práctica de Ingeniería del Software VideoClub
67
2.30. Buscar Código Proveedor • Nombre : Buscar Código Proveedor. • Descripción : Función que dado un código de proveedor, va a intentar buscarlo dentro de la base de datos correspondiente a Proveedores. • Lee : Generar Código ⇒ Código del Proveedor ; PROVEEDORES. • Envía : Usuario ⇒ Confirmación de la existencia o no. • Precondiciones : Con el código obtenido, pasamos a realizar la búsqueda. • Postcondiciones : Se ha buscado el código y se sabe de su existencia o no.
2.31. Almacenar Datos Proveedores • Nombre : Almacenar Datos Proveedores. • Descripción : Se van a introducir los datos del nuevo proveedor en la base de datos diseñada para tal fin. • Lee : Introducir Datos Proveedor ⇒ Datos del proveedor ; Generar Código ⇒ Código identificativo del proveedor. • Cambia : La base de datos PROVEEDORES. • Envía : Confirmación de que se han almacenado los datos del proveedor. • Precondiciones : Se ha calculado lo necesario para realizar un nuevo proveedor. • Postcondiciones : Se han almacenado los datos en la base de datos.
2.32. Modificar Proveedor • Nombre : Modificar Proveedor. • Descripción : Función con la cual seleccionamos la modificación de un proveedor. • Lee : Seleccionar Operación Proveedor ⇒ Selección de esa operación. • Envía : Introducir Código Proveedor ⇒ Se ha seleccionado el submenú. • Precondiciones : Se ha realizado la selección de esa opción correspondiente a los proveedores. • Postcondiciones : Entramos en el submenú para modificar proveedores.
2.33. Introducir Código Proveedor • Nombre : Introducir Código Proveedor. • Descripción : Se introduce el código del proveedor para operar con él. • Lee : Usuario ⇒ Código del Proveedor. • Envía : Buscar Código Proveedor ⇒ Código del Proveedor. • Precondiciones : Se muestra la operación para introducir el código requerido. • Postcondiciones : Se ha obtenido el código.
Práctica de Ingeniería del Software VideoClub
68
2.34. Modificar Datos Proveedor • Nombre : Modificar Datos Proveedor. • Descripción : Función que va a modificar los datos correspondientes al proveedor en los parámetros que se le pasen. • Lee : Usuario ⇒ Parámetros que desea modificar ; PROVEEDORES. • Cambia : PROVEEDORES. • Envía : Usuario ⇒ Confirmación de la modificación. • Precondiciones : Se han introducido ciertos datos a modificar en el proveedor. • Postcondiciones : Se han modificado los datos de un proveedor determinado.
2.35. Visualizar Proveedor • Nombre : Visualizar Proveedor. • Descripción : Función con la que entramos y visualizamos el menú de Proveedores. • Lee : Usuario ⇒ Seleccion del menú inicial. • Envía : Seleccionar Operación Proveedor ⇒ Que se ha seleccionado ese menú. • Precondiciones : El usuario quiere operar con los proveedores. • Postcondiciones : Se ha realizado la selección de esa opción correspondiente a los proveedores.
2.36. Visualizar Datos Proveedor • Nombre : Visualizar Datos Proveedor. • Descripción : Función que va a visualizar los datos correspondientes al proveedor elegido. • Lee : Introducir Código Proveedor ⇒ El código del proveedor ; PROVEEDORES. • Envía : Usuario ⇒ Muestra los datos requerido. • Precondiciones : Se ha introducido un código de proveedor para visualizar. • Postcondiciones : Se ha visualizado el proveedor requerido.
2.37. Eliminar Proveedor • Nombre : Eliminar Proveedor. • Descripción : Función con la que entramos y visualizamos el menú de Proveedores. • Lee : Usuario ⇒ Seleccion del menú inicial. • Envía : Seleccionar Operación Proveedor ⇒ Que se ha seleccionado ese menú. • Precondiciones : El usuario quiere operar con los proveedores. • Postcondiciones : Se ha realizado la selección de esa opción correspondiente a los proveedores.
Práctica de Ingeniería del Software VideoClub
69
2.38. Eliminar Datos Proveedor • Nombre : Eliminar Datos Proveedor. • Descripción : Función que va a eliminar el proveedor pedido. • Lee : Introducir Código Proveedor ⇒ El código del proveedor ; PROVEEDORES. • Envía : Usuario ⇒ Elimina el proveedor requerido. • Precondiciones : Se ha introducido un código de proveedor para eliminar. • Postcondiciones : Se ha eliminado el proveedor requerido.
3. Gestión de los Clientes .
3.1. Abrir Productos • Nombre : Abrir Productos. • Descripción : Función con la que entramos y visualizamos el menú de Productos. • Lee : Usuario ⇒ Seleccion del menú inicial. • Envía : Insertar Productos ⇒ Que se ha seleccionado ese menú. • Precondiciones : El usuario quiere operar con los productos. • Postcondiciones : Se ha realizado la selección de esa opción correspondiente a los productos.
3.2. Alquilar Producto • Nombre : Alquilar Producto. • Descripción : Función con la que alquilamos un producto. • Lee : Usuario ⇒ Seleccion del menú inicial. • Envía : Introducir código producto ⇒ Que se ha seleccionado ese menú. • Precondiciones : El Cliente quiere alquilar un producto. • Postcondiciones : Se ha realizado el alquiler de un producto.
3.3. Introducir Código Producto • Nombre : Introducir Código Producto. • Descripción : Se introduce el código del producto para operar con él. • Lee : Usuario ⇒ Código del Producto. • Envía : Buscar Código Producto ⇒ Código del Producto. • Precondiciones : Se muestra la operación para introducir el código requerido.
Postcondiciones : Se ha obtenido el código.
Práctica de Ingeniería del Software VideoClub
70
3.4. Buscar Código Producto • Nombre : Buscar Código Producto. • Descripción : Función que dado un código de producto, va a intentar
encontrarlo dentro de la base de datos correspondiente a Productos. • Lee : Introducir Código Producto ⇒ Código del Producto. PRODUCTOS. • Envía : Usuario ⇒ Confirmación de su existencia a no. • Precondiciones : Con el código obtenido, pasamos a realizar la búsqueda. • Postcondiciones : Se ha buscado el código y se sabe de su existencia o no.
3.5. Comprar Producto • Nombre : Comprar Producto. • Descripción : Función con la que el cliente compra un producto. • Lee : Usuario ⇒ Seleccion del menú inicial. • Envía : Introducir código producto ⇒ Que se ha seleccionado ese menú. • Precondiciones : El Cliente quiere comprar un producto. • Postcondiciones : Se ha realizado la compra de un producto.
3.6. Introducir Datos Cliente • Nombre : Introducir Datos Cliente. • Descripción : Función con la que se introducen los datos básicos del cliente. • Lee : Usuario ⇒ Datos del Cliente. • Envía : Almacenar Datos Cliente ⇒ Datos del Cliente. • Precondiciones : Entramos en el submenú de insertar Clientes. • Postcondiciones : Se ha rellenado la ficha con los datos del Cliente.
3.7. Almacenar Datos Cliente • Nombre : Almacenar Datos Cliente. • Descripción : Se almacenan los datos necesarios para realizar la venta de un
producto. • Lee : Introducir Datos Cliente ⇒ Datos del Cliente. • Precondiciones : Se han obtenido todos los datos del Cliente.. • Postcondiciones : Se han almacenado los datos del Cliente.
3.8. Devolver Producto • Nombre : Devolver Producto. • Descripción : Un Abonado desea devolver un producto comprado. • Lee : Usuario ⇒ Código del Abonado. • Envía : Introducir Código Abonado ⇒ Código del Abonado. • Precondiciones : Un Abonado muestra su código y trae el Producto a devolver.
Postcondiciones : Se ha devuelto el Producto.
Práctica de Ingeniería del Software VideoClub
71
3.9. Introducir Fecha Devolución • Nombre : Introducir Fecha Devolución. • Descripción : Función en la que se introduce la fecha de devolución del
alquiler de un producto. • Lee : Usuario ⇒ Fecha de devolución del Producto. • Envía : Calcular Sanción ⇒ Fecha de devolución y de alquiler del Producto. • Precondiciones : Se realiza la devolución de un Producto. • Postcondiciones : Se ha insertado la fecha de devolución de un Producto.
3.10. Calcular Sanción • Nombre : Calcular Sanción. • Descripción : Se calcula el intervalo de tiempo que el abonado ha tenido el
Producto y se verifica si éste debe pagar una sanción por retraso. • Lee : Introducir Fecha Devolución ⇒ Fecha de Devolución. • Envía : Modificar Datos Abonado ⇒ Importe de la sanción si ésta existe. • Precondiciones : Se tiene la fecha de alquiler y de entrega del producto. • Postcondiciones : Se ha obtenido el importe de la sanción si ésta existe.
3.11. Cambiar Producto • Nombre : Cambiar Producto. • Descripción : Función con la que se modifica una factura debido a un problema
con un producto. • Lee : Usuario ⇒ Datos de la Factura. • Envía : Introducir Código Factura ⇒ Datos de la Factura. • Precondiciones : Ha habido algún problema con algún Producto en una venta. • Postcondiciones : Se ha modificado una factura cambiando algún producto.
3.12. Confirmar Estado Producto • Nombre : Confirmar Estado Producto. • Descripción : Función en la que determina el estado de un Producto. • Lee : Cambiar Producto ⇒ Código Producto. • Envía : Devolver Factura ⇒ Datos Producto. • Precondiciones : Se tiene el código de la factura. • Postcondiciones : Se devuelve el estado del producto.
3.13. Devolver Factura • Nombre : Devolver Factura. • Descripción : Función con la que se devuleve una factura ya hecha modificada. • Lee : Confirmar Estado Producto ⇒ Datos Producto. • Envía : Usuario ⇒ Nueva Factura. • Precondiciones : Se tiene el producto a modificar. • Postcondiciones : Se ha modificado la factura .
Práctica de Ingeniería del Software VideoClub
72
4. Gestión de los Bancos 4.1. Abrir Bancos • Nombre : Abrir Bancos. • Descripción : Función con la que entramos y visualizamos el menú de Bancos. • Lee : Usuario ⇒ Seleccion del menú inicial. • Envía : Seleccionar Operación Banco ⇒ Que se ha seleccionado ese menú. • Precondiciones : El usuario quiere operar con los bancos. • Postcondiciones : Se ha realizado la selección de esa opción correspondiente a los bancos.
4.2. Seleccionar Operación Bancos • Nombre : Seleccionar Operación Bancos. • Descripción : Función con la que selecciomos las operaciones a realizar con
los distintos bancos que tengamos. • Lee : Usuario ⇒ Selección de esa operación. • Envía : A las restantes operaciones ⇒ La operación seleccionada. • Precondición : Se ha entrado en el menú de Bancos. • Postcondición : Se ha seleccionado una operación a realizar.
4.3. Insertar Banco • Nombre : Insertar Banco. • Descripción : Función con la cual seleccionamos la inserción de un nuevo banco. • Lee : Seleccionar Operación Banco ⇒ Selección de esa operación. • Envía : Introducir Datos Banco ⇒ Se ha seleccionado el submenú. • Precondiciones : Se ha realizado la selección de esa opción correspondiente a los bancos. • Postcondiciones : Entramos en el submenú para insertar bancos.
4.4. Introducir Datos Banco • Nombre : Introducir Datos Banco. • Descripción : Se introducen los datos correspondientes al nuevo banco con el
que vamos a trabajar. • Lee : Usuario ⇒ Datos del Banco. • Envía : Generar Código ⇒ Datos para calcular el código. • Precondiciones : Entramos en el submenú para insertar bancos. • Postcondiciones : Rellenamos la ficha con los datos del nuevo banco.
Práctica de Ingeniería del Software VideoClub
73
4.6. Almacenar Datos Banco • Nombre : Almacenar Datos Banco. • Descripción : Se van a introducir los datos del nuevo banco en la base de datos diseñada para tal fin. • Lee : Introducir Datos Banco ⇒ Datos del banco; Generar Código ⇒ Código identificativo del banco. • Cambia : La base de datos BANCOS. • Envía : Usuario ⇒ Banco insertado. • Precondiciones : Se ha calculado lo necesario para insertar un nueo banco en la
base de datos correspondiente. • Postcondiciones : Se han almacenado los datos en la base de datos.
4.7. Modificar Banco • Nombre : Modificar Banco. • Descripción : Función que va a modificar los datos correspondientes a un
banco insertado en la base de datos. • Lee : Usuario ⇒ Banco a modificar. • Envía : Usuario ⇒ Confirmación de la modificación. • Precondiciones : Se ha elegido esta opción dle menú. • Postcondiciones : Se ha modificado la base de datos correspondiente a los
bancos..
4.8. Introducir Código Banco • Nombre : Introducir Código Banco. Descripción : Se introduce el código del banco para operar con él. • Lee : Usuario ⇒ Cantidad del Banco • Envía : Buscar Código Banco ⇒ Código del Banco. • Precondiciones : Se muestra la operación para introducir el código requerido. • Postcondiciones : Se ha obtenido el código.
4.9. Modificar Datos Banco • Nombre : Modificar Datos Banco • Descripción : Función que va a modificar los datos correspondientes al banco en los parámetros que se le pasen. • Lee : Usuario ⇒ Datos del Banco a modificar. • Cambia : BANCOS. • Envía : Usuario ⇒ Confirmación de cambio en los datos de un banco. • Precondiciones : Se han introducido ciertos datos a modificar en un banco. • Postcondiciones : Se ha modificado un banco.
Práctica de Ingeniería del Software VideoClub
74
4.10. Visualizar Bancos • Nombre : Visualizar Bancos. • Descripción : Función con la que entramos y visualizamos el menú de facturas. • Lee : Usuario ⇒ Selección del menú inicial.. • Envía : Seleccionar Operación Banco ⇒ Que se ha seleccionado ese menú. • Precondiciones : El usuario quiere operar con los bancos. • Postcondiciones : Se ha realizado la selección de esa opción correspondiente a
los bancos.
4.11. Visualizar Datos Banco • Nombre : Visualizar Datos Banco. • Descripción : Función con la que se visualizan los datos correspondientes al
banco elegido. • Lee : Introducir Código Banco ⇒ El código del banco. BANCOS. • Envía : Usuario ⇒ Muestra los datos requeridos. • Precondiciones : Se ha introducido un código de banco para visualizar.
Postcondiciones : Se ha mostrado el banco requerido.
4.12. Eliminar Bancos • Nombre : Eliminar Bancos. • Descripción : Función con la que entramos y visualizamos el menú de bancos. • Lee : Usuario ⇒ Selección del menú inicial.. • Envía : Seleccionar Operación Banco ⇒ Que se ha seleccionado ese menú. • Precondiciones : El usuario quiere operar con los bancos. • Postcondiciones : Se ha realizado la selección de esa opción correspondiente a
los bancos.
4.13. Eliminar Datos Banco • Nombre : Eliminar Datos Banco. • Descripción : Función que elimina el banco requerido. • Lee : Introducir Código Banco ⇒ El código del banco. BANCOS. • Envía : Usuario ⇒ Confirmación de la eliminación del banco. • Precondiciones : Se ha introsucido un código de banco para eliminar.
Postcondiciones : Se ha eliminado el banco requerido.
Práctica de Ingeniería del Software VideoClub
75
4.4. Diseño de la Interfaz del Software Se corresponde este punto con el Diseño de la Interfaz que va a tener nuestro software. Aquí es donde diseñamos la apariencia que nuestro programa va a mostrar. Para tal diseño, nos debemos apoyar en los requisitos que debe tener la aplicación, es decir, básicamente en la Lista de Eventos. Con dicha lista, sacamos 3 menús principales, los cuáles son:
1. Archivo 2. Edición 3. Herramientas
A esto, a toda aplicación software se le deben añadir 2 apartados más, que son:
1. Ayuda 2. Salir
Dentro del apartado Ayuda, debe existir un apartado denominado Acerca de ... en el cuál se informa de los diseñadores del software. La ocpción para salir del software está integrada dentro del menú Archivo. Con todo esto, nos queda interfaz con 4 menús. Dentro de estos menús, aparecerán submenús, los cuáles están diseñados para cumplir con la Lista de Eventos detallada, y con los requisitos que se han estudiado en este documento (los del Usuario). Pasemos pues a ver las ventanas que componen la interfaz. Ventana Principal
Práctica de Ingeniería del Software VideoClub
76
Ventana de Archivo Dentro del menú de Archivo, vamos a encontrarnos con 5 submenús, los cuáles son:
• Nuevo • Abrir • Borrar • Buscar • Salir
Cada uno de ellos, exceptuando el de Salir va a contener submenús para realizar distintas operaciones. El objetivo de dicha estructuración es la de aprovechar la posibilidad de Polimorfismo existente. Esto es debido a que con los objetos que van a haber en el sistema se pueden realizar operaciones muy parecidas. Por ejemplo, se puede crear un abonado, un cliente, un producto, un proveedor, etc ... De ahí que usemos el menu Archivo ? Nuevo ? Abonado para crear un nuevo abonado y así con todos los objetos con los que el software va a poder trabajar. Entonces, tenemos que los siguientes menús equivalen a realizar las siguientes operaciones: Nuevo ? Crear Abrir ? Visualizar y Modificar Borrar ? Eliminar Buscar ? Buscar y Listar Si vamos recorriendo los distintos menús, vamos a ir viendo que poseen las siguientes opciones: Ventana de Nuevo
Práctica de Ingeniería del Software VideoClub
77
Mediante estas opciones, se va a permitir crear objetos del tipo que indique cada submenú. A la hora de la creación, nos van a aparecer ciertas fichas a rellenar, según el tipo de objeto elegido. Abonado – Cliente - Proveedor
Práctica de Ingeniería del Software VideoClub
78
Banco
Facturas
Práctica de Ingeniería del Software VideoClub
79
Pedidos
Productos
Práctica de Ingeniería del Software VideoClub
80
Hasta aquí ha llegado el contenido de este submenú. Hemos visualizado todas las plantillas de las que dispone el software para la introducción de datos necesarios por este para la correcta ejecución. A continuación, pasaremos al submenú Abrir que es útil, bien para visualizar, como para modificar datos de los objetos ya creados. Ventana de Abrir Vamos a tener las mismas posibilidad que en el submenú anterior, e iguales plantillas que la anterior. La diferencia que estriba entre los 2 submenús, es el tratamiento que el software va a hacer de los datos. En el primer caso, la plantilla estará vacía y la rellenará el usuario, cuyos datos serán posteriormente introducidos en la base de datos correspondiente. En el segundo caso, se introducirá un código identificativo del tipo en cuestión, para posteriormente recuperar de la base de datos, los datos que serán mostrados en la plantilla. Si se modifica alguno de estos sobre la plantilla, entonces se actualizarán estos en la mencionada base de datos. Con esto, se ha cubierto las opciones para visualizar y modificar. La apariencia del submenú es:
Ventana de Borrar Ocurre lo mismo que con los 2 apartados anteriores. Visualizamos a continuación su pantalla.
Práctica de Ingeniería del Software VideoClub
81
Ventana de Buscar Aquí el concepto cambia. En este submenú, las plantillas vuelven a ser las mismas, salvo la existencia de una novedad. A la hora de realizar búsquedas, se generan listados, los cuáles serán mostrados por pantalla en otras plantillas con distintas características. La visualización previa del submenú es la que mostramos en la siguiente hoja. Posteriormente pasaremos a mostrar los distintos tipos de búsqueda que se pueden realizar, según el tipo de código a buscar (se visualizan las pantallas). Decir que vamos a tener tantas plantillas distintas en número con en la opción de nuevo, y las coincidencias serán para los mismos objetos. Dichas plantillas las mostramos todas seguidas a partir de la visualización del submenú. Antes que nada, vamos a presentar aquellas pantallas dedicadas para introducción del tipo a buscar. Existen varios tipos:
• Por Nombre • Por Código • Por Tipo • Por Fecha
Seguiremos este orden pues para mostrarlos:
Práctica de Ingeniería del Software VideoClub
82
Práctica de Ingeniería del Software VideoClub
83
A partir de este punto, el documento va a ser un poco monótono en cuanto a estructura. Vamos a ir poniendo los distintos submenús de búsqueda por tipos así como los listados que van a ir generando. Empezamos por Abonados. Abonados
Práctica de Ingeniería del Software VideoClub
84
Clientes
Práctica de Ingeniería del Software VideoClub
85
Productos
Práctica de Ingeniería del Software VideoClub
86
Bancos
Práctica de Ingeniería del Software VideoClub
87
Facturas
Práctica de Ingeniería del Software VideoClub
88
Las facturas a su vez tienen una opción, la de detalle:
Práctica de Ingeniería del Software VideoClub
89
Pedidos
Práctica de Ingeniería del Software VideoClub
90
Proveedor
Si en la introducción de los datos, esta no se hiciera de la forma correcta, también hay una ventana dedicada para informar al usuario de este error. En concreto es un mensaje.
Práctica de Ingeniería del Software VideoClub
91
Ventana de Salir
La pantalla para salir del software es la que mostramos a continuación y es donde se escoge entre abandonar o continuar la ejecución del programa. Ventana de Edición A continuación, seguimos exponiendo los menús. El siguiente es el de Edición. Este menú es una serie de utilidades para seguir con una estructura de menús de acuerdo a la utilización estándar que de estos se dan en las distintas aplicaciones software que existen. En concreto, este menú esta compuesto de 4 utilidades:
• Cortar • Copiar • Pegar • Seleccionar Todo
Las 4 son bastante usuales y nosotros en nuestra aplicación les damos cabida para utilización más rápido de posibles datos que se pueden repetir. La apariencia es la siguiente:
Práctica de Ingeniería del Software VideoClub
92
Ventana de Herramientas
Aquí tenemos un menú que completa la aplicación con una serie de herramientas necesarias.
Práctica de Ingeniería del Software VideoClub
93
Estas herramientas son las que mostramos:
• Recargar Tarjeta • Enviar Pedido • Pagar Factura
Estas opciones invocan a formularios que ya hemos presentado, y que en su interior se encuentran la posibilidad de activar o no estas opciones, pero que se han separado dentro de este menú para darle un mayor énfasis al tema-. Los formularios que salen son los que se encuentran en las páginas 77, 78 y 79. Ventana de Ayuda Para concluir, tenemos este menú en el que se disponen de 2 opciones. Estas son la del Tema de Ayuda, y la de Acerca de. Es uno de los menús que debería contener toda aplicación software que se cree. Esta sirve para informar al usuario del software de ciertas características de este, de cómo realizar ciertas operaciones que para el usuario son nuevas en un primer instante. También, dentro de este menú, debe existir la opción donde se informe de aquellas personas que han hecho el desarrollo del software, o han intervenido en él. En esta aplicación, ha sido diseñado, y la apariencia es la que mostramos en la página siguiente. Esta opción es la denominada Acerca de. Las mostramos a continuación. Inicialmente la de Ayuda, que como no se ha llevado su implementación, simplemente nos lo comunica.
Práctica de Ingeniería del Software VideoClub
94
Para concluir con el diseño de la interfaz, tenemos el formulario que informa sobre los diseñadores del software. Dicha ventana es la siguiente:
Práctica de Ingeniería del Software VideoClub
95
4.5. Interacción entre Objetos Se representa lo que se denomina en el método de Fusion, Diagrama de Interacción de Objetos. Comentar que vamos a utilizar la técnica de Observador Observable . Vamos a representar la interacción entre los objetos que tenemos en el sistema. Esto se observa a través de una serie de diagramas en los que se va a observar estas relaciones. El primer diagrama muetra la inicialización que se realiza al iniciar la aplicación.
C:CControl Escritorio
Inicializar
Mostrar (1)
Registrar Eventos (2) A continuación, veremos la interacción que se produce entre los objetos que componen los distintos menús, de ahí que haya bastante semejanza entre ellos. Aprovechando el Polimorfismo existente, empezamos por las opciones del menú Archivo.
C:CControl Dg:CDatos Bd:CVideoClub
Msg:CError
Msg:CConfirmar
Mostrar (1)
Nuevo
Enviar_Datos (2)
Mostrar (3)
Mostrar (4)
Práctica de Ingeniería del Software VideoClub
96
C:CControl Dg:CDatos Bd:CVideoClub
Msg:CError
Msg:CConfirmar
Abrir
Leer_Datos (2)
Mostrar (6)
Mostrar (1)
Actualizar (3)
Enviar_Datos (4)
Mostrar (5)
C:CControl Dg:CDatos Bd:CVideoClub
Msg:CError
Msg:CConfirmar
Borrar
Leer_Datos (2)
Mostrar (6)
Mostrar (1)
Actualizar (3)
Enviar_Datos (4)
Mostrar (5)
Práctica de Ingeniería del Software VideoClub
97
C:CControl Dg:CDatos Bd:CVideoClub
V:CVistaListado
Dg:CImpresión
Buscar
Leer_Datos (2)
Imprimir (4)
Mostrar (1)
Mostrar (3)
Vemos como se van llamando los sucesivos objetos que provocan que se vayan mostrando las distintas ventanas y plantillas de las que está compuesto el software. Indicar que Videoclub es una clase para gestionear accesos a una Base de Datos, en la cuál no vamos a entrar en detalle. Veamos el diagrama de Salir para concluir con este menú.
C:CControl Dg:CSalir
Salir
Mostrar
Sigamos a continuación con las operaciones del menú Herramientas. Nombrar antes que seguir, que el menú Edición es un menú estándar con opciones usuales que no están implementadas dentro de nuestro software, sino recursos del propio Sistema Operativo.
Práctica de Ingeniería del Software VideoClub
98
C:CControl Dg:CDatos Bd:CVideoClub
Msg:CError
Msg:CConfirmar
Recargar Tarjeta
Leer_Datos (2)
Mostrar (6)
Mostrar (1)
Actualizar (3)
Enviar_Datos (4)
Mostrar (5)
C:CControl Dg:CDatos Bd:CVideoClub
Msg:CError
Msg:CConfirmar
Enviar Pedido
Leer_Datos (2)
Mostrar (6)
Mostrar (1)
Actualizar (3)
Enviar_Datos (4)
Mostrar (5)
Práctica de Ingeniería del Software VideoClub
99
C:CControl Dg:CDatos Bd:CVideoClub
Msg:CError
Msg:CConfirmar
Pagar Factura
Leer_Datos (2)
Mostrar (6)
Mostrar (1)
Actualizar (3)
Enviar_Datos (4)
Mostrar (5)
Como podemos observar, los 3 diagramas son exactamente idénticos, debido a que los pasos que se realizan son siempre lo mismos para estas operaciones. Continuemos pues con el último menú, el de Ayuda. Tenemos los siguientes diagramas.
C:CControl Msg:CAyuda
Ayuda
Mostrar
C:CControl C:CAcerca_De
Acerca de
Mostrar
Práctica de Ingeniería del Software VideoClub
100
4.6. Visibilidad entre Objetos Vamos a tratar la visibilidad que se da entre los objetos que se describen en el software. Este apartado se corresponde con la representación que el método de Fusión hace mediante los Grafos de Visibilidad. A continuación mostramos una serie de diagramas donde se muestran estas visibilidades. Estos los hemos descompuesto en 3 unidades. En estas plantillas, se puede observar la relación de visibilidad existente entre el control de la aplicación con las restantes plantillas que se van a poder utilizar en la aplicación, cosa que era ya evidente por otra parte. Se muestra la relación entre las plantillas con las que interactúa el control, con otros objetos que van a servir a la aplicación para realizar tareas de peticiones de datos al usuario externo, así como visibilidad con otras plantillas.
Práctica de Ingeniería del Software VideoClub
101
TMainMenu : MainMenu1
CDatos : CDatos_Abonado
CDatos : CDatos_Cliente
CDatos : CDatos_Proveedor
CDatos : CDatos_Pedido
CDatos : CDatos_Factura
Control : CControl
CDatos : CDatos_Producto
CDatos : CDatos_Banco
CVistaListado : CVistaListado_Abonado
Práctica de Ingeniería del Software VideoClub
102
CVistaListado : CVistaListado_Cliente
CVistaListado : CVistaListado_Banco
CVistaListado : CVistaListado_Proveedor
CVistaListado : CVistaListado_Producto
CVistaListado : CVistaListado_Pedido
CVistaListado : CVistaListado_Factura
Control : CControl
CDatos : CDatos_Listado_Nombre
CDatos : CDatos_Listado_Código
CDatos : CDatos_Listado_Tipo
Práctica de Ingeniería del Software VideoClub
103
CDatos : CDatos_Listado_Fecha
CVideoClub : CVideoC
CError : CError_Msg
CConfirmar : CConfirmar_Msg
CAcerca_De : TAboutBox
CAyuda : CAyuda_Msg
Control : CControl
CSalir : CSalir_Fin
CVistaListado : CVistaListado_Factura_Detalle
Práctica de Ingeniería del Software VideoClub
104
TMainMenu : MainMenu1
CVistaListado : CVistaListado_Abonado
CDatos : CDatos_Banco
CDatos : CDatos_Producto
CDatos : CDatos_Factura
CDatos : CDatos_Pedido
CDatos : CDatos_Proveedor
CDatos : CDatos_Cliente
CDatos : CDatos_Abonado
CVistaListado : CVistaListado_Cliente
CDatos : CDatos_Listado_Código
CVistaListado : CVistaListado_Banco
CVistaListado : CVistaListado_Proveedor
CVistaListado : CVistaListado_Producto
CVistaListado : CVistaListado_Pedido
CVistaListado : CVistaListado_Factura
CDatos : CDatos_Listado_Nombre
Control : Ccontrol
Práctica de Ingeniería del Software VideoClub
105
CDatos : CDatos_Listado_Tipo
CVistaListado : CVistaListado_Factura_Detalle
CSalir : CSalir_Fin
CAyuda : CAyuda_Msg
CAcerca_De : TAboutBox
CConfirmar : CConfirmar_Msg
CError : CError_Msg
CVideoClub : CVideoC
CDatos : CDatos_Listado_Fecha
Control : Ccontrol
Práctica de Ingeniería del Software VideoClub
106
4.7. Herencias entre Clases Vamos a definir las herencias que se dan entre las clases que intervienen en el software que se realiza. En este apartado, se nombran una serie de clases, que se heredan de la clase principal. También vamos a indicar sus atributos principales, y se van a definir con más detalle, principalmente sus métodos, en el siguiente apartado, el cuál es Descripción de las Clases. Este apartado es el que se denomina en el método de Fusion, Grafos de Herencia, donde mediante unos diagramas, representamos las herencias entre los distintos objetos. Los diagramas que mostramos a continuación hace referencia a las clases utilizadas para mostrar los menús en pantalla. Es el siguiente:
MainMenu1
Archivo1 Edición1 Herramientas1 Ayuda1
Pero como hemos visto en el diseño de la interfaz, estos tienen submenús. En concreto, el menú Archivos. La primera subdivisión sería la siguiente que visualizamos:
Archivo1
Nuevo1 Abrir1 Borrar1 Buscar1 Salir1
Práctica de Ingeniería del Software VideoClub
107
Continuando con la subdivisión, llegamos a las del submenú Nuevo.
Nuevo1
Abonados1 Clientes1 Producto1 Bancos1 Facturas1 Pedido1 Proveedores1
Continuando con los submenús del menú Archivo, vamos a tener los siguientes diagramas que mostramos.
Abrir1
Abonados2 Clientes2 Producto2 Bancos2 Facturas2 Pedido2 Proveedores2
Borrar1
Abonados3 Clientes3 Producto3 Bancos3 Facturas3 Pedido3 Proveedores3
Práctica de Ingeniería del Software VideoClub
108
Buscar1
Abonados4 Clientes4 Producto4 Bancos4 Facturas4 Pedido4 Proveedores4
Pero llegamos a un submenú, que a su vez se subdivide en otras ramificaciones; las correspondientes para visualizar los listados. Por tanto, se nos van a generar más herencias, que son:
Abonado4
Por_Nombre1 Por_Código1
Cliente4
Por_Nombre2
Práctica de Ingeniería del Software VideoClub
109
Producto4
Por_Código2 Por_Tipo1
Banco4
Por_Nombre3 Por_Código3
Facturas4
Por_Código4 Por_Fecha1
Práctica de Ingeniería del Software VideoClub
110
Pedido4
Por_Código5 Por_Fecha2
Proveedores4
Por_Nombre4 Por_Código6
Una vez concluida todas las subdivisiones que se hacen dentro del menú Archivos, pasamos a mostrar los diagramas de herencias de los siguientes menús de los que se compone la aplicación software. Estos van a ser los que mostramos a partir de la siguiente hoja.
Práctica de Ingeniería del Software VideoClub
111
Edición1
Cortar1 Copiar1 Pegar1Seleccionar
Todo1
Herramientas1
RecargarTarjeta1
EnviarPedido1 PagarFactura1
Ayuda1
TemaAyuda1 AcercaDe1
Práctica de Ingeniería del Software VideoClub
112
A continuación, mostraremos aquellos diagramas donde se muestra la herencia existente entre los distintos formularios que irán apareciendo para interectuar con el programa. Inicialmente vamos a empezar con aquellos formularios para introducción de datos.
TForm
MainMenu1CDatos_Abonado CDatos_Cliente
CDatos_Proveedor CDatos_Pedido CDatos_
Factura
TForm
CDatos_Producto CDatos_Banco
CVistaListado_Abonado
CVistaListado_Cliente
CVistaListado_Banco
CVistaListado_Proveedor
Práctica de Ingeniería del Software VideoClub
113
TForm
CVistaListado_Producto
CVistaListado_Pedido
CVistaListado_Factura
CDatos_Listado_Nombre
CDatos_Listado_Código
CDatos_Listado_Tipo
CVistaListado_Factura_Detalle
TForm
CDatos_Listado_Fecha CVideoC CError_Msg CConfirmar_Msg TAboutBox CAyuda_Msg CAyuda_Msg
En estos diagramas representamos la herencia de todas las clases que se corresponden con formularios, de una clase, la principal.
Práctica de Ingeniería del Software VideoClub
114
4.8. Clases En este apartado vamos a definir cada una de las clases, en cuánto a sus atributos, que ya han sido mostrados en la representación de herencias hecha anteriormente, así como de los métodos que describen las operaciones que se pueden realizar a estos objetos. En esta representación, vamos a nombrar las clases existentes, sus atributos así como los métodos u operaciones que se pueden realizar a las clases. Atributos solo vamos a nombrar los relacionados directamente con la aplicación, puesto que son múltiples los que proporciona o puede proporcionar un lenguaje de programación visual. Pasemos pues a la definición:
è MainMenu1 Esta clase se corresponde con la visualización del menú de la aplicación. Los métodos son todos aquellas acciones que se puedan hacer con ella. Sus atributos serán:
CLASS MainMenu1 is a TmainMenu
Attribute a: Archivo1 Attribute b: Nuevo1 Attribute c: Abrir1 Attribute d: Borrar1 Attribute e: Buscar1 Attribute f: Abonado1 Attribute g: Por_Nombre1 Attribute h: Por_Código1 Attribute i: Cliente1 Attribute j: Por_Nombre2 Attribute k: Producto1 Attribute l: Por_Código2 Attribute m: Por_Tipo1 Attribute n: Banco1 Attribute o: Por_Nombre3 Attribute p: Por_Código3 Attribute q: Facturas1 Attribute r: Por_Código4 Attribute s: Por_Fecha1
Attribute t: Pedido1 Attribute u: Por_Código5 Attribute v: Por_Fecha2 Attribute w: Proveedores1 Attribute x: Por_Nombre4 Attribute y: Por_Código6 Attribute z: Salir1 Attribute ab: Edición1 Attribute ac: Cortar1 Attribute ad: Copiar1 Attribute af: Pegar1 Attribute ag: Seleccionar_Todo1 Attribute ah: Herramientas1 Attribute ai: RecargarTarjeta1 Attribute aj: EnviarPedido1 Attribute ak: PagarFactura1 Attribute al: Ayuda1 Attribute am: TemaAyuda1 Attribute an: AcercaDe1
method Salir1Click(Sender: TObject); method Temasdeayuda1Click(Sender: TObject); method Acercade1Click(Sender: TObject); method PorNombre1Click(Sender: TObject); method PorCdigo1Click(Sender: TObject); method PorCdigo5Click(Sender: TObject);
Práctica de Ingeniería del Software VideoClub
115
method PorTipo1Click(Sender: TObject); method PorNombre2Click(Sender: TObject); method PorCdigo2Click(Sender: TObject); method PorCdigo3Click(Sender: TObject); method PorFecha1Click(Sender: TObject); method PorFecha2Click(Sender: TObject); method PorFecha3Click(Sender: TObject); method PorCdigo4Click(Sender: TObject); method PorNombre3Click(Sender: TObject); method PorNombre4Click(Sender: TObject); method Abonado1Click(Sender: TObject); method Proveedor1Click(Sender: TObject); method Abondo1Click(Sender: TObject); method Cliente1Click(Sender: TObject); method Factura1Click(Sender: TObject); method Pedido1Click(Sender: TObject); method Producto1Click(Sender: TObject); method Abonado2Click(Sender: TObject); method Banco1Click(Sender: TObject); method Cliente2Click(Sender: TObject); method Factura2Click(Sender: TObject); method Pedido2Click(Sender: TObject); method Proveedor2Click(Sender: TObject); method Producto2Click(Sender: TObject); method Abonado3Click(Sender: TObject); method Banco2Click(Sender: TObject); method Cliente3Click(Sender: TObject); method Factura3Click(Sender: TObject); method Pedido3Click(Sender: TObject); method Producto3Click(Sender: TObject); method Proveedor3Click(Sender: TObject); method RecargarTarjeta1Click(Sender: TObject); method EnviarPedido1Click(Sender: TObject); method PagarFactura1Click(Sender: TObject);
ENDCLASS
Práctica de Ingeniería del Software VideoClub
116
A partir de este punto, empezamos a describir las clases que se utilizan para las plantillas. Dichas clases tienen atributos propios que son del lenguaje de programación, las cuáles nosotros no vamos a enumerar. Los métodos que vamos a nombrar son exclusivamente aquellos a los que se hace referencia en el Diagrama de Interacción de Objetos, que son los que va a usar.
è CDatos_Abonado
Clase para visualizar en pantalla la plantilla para Abonados.
CLASS CDatos_Abonado is a TForm Method Mostrar ( ) Method Ocultar ( ) Method Actualizar ( ) ENDCLASS
è CDatos_Cliente
Clase para visualizar en pantalla la plantilla para Clientes.
CLASS CDatos_Cliente is a TForm Method Mostrar ( ) Method Ocultar ( ) Method Actualizar ( ) ENDCLASS
Práctica de Ingeniería del Software VideoClub
117
è CDatos_Proveedor
Clase para visualizar en pantalla la plantilla para Proveedores.
CLASS CDatos_Proveedor is a TForm Method Mostrar ( ) Method Ocultar ( ) Method Actualizar ( ) ENDCLASS
è CDatos_Pedido
Clase para visualizar en pantalla la plantilla para Pedidos.
CLASS CDatos_Pedido is a TForm Method Mostrar ( ) Method Ocultar ( ) Method Actualizar ( ) ENDCLASS
è CDatos_Factura
Clase para visualizar en pantalla la plantilla para Abonados.
CLASS CDatos_Factura is a TForm Method Mostrar ( ) Method Ocultar ( ) Method Actualizar ( ) ENDCLASS
Práctica de Ingeniería del Software VideoClub
118
è CDatos_Producto
Clase para visualizar en pantalla la plantilla para Abonados.
CLASS CDatos_Producto is a TForm Method Mostrar ( ) Method Ocultar ( ) Method Actualizar ( ) ENDCLASS
è CDatos_Banco
Clase para visualizar en pantalla la plantilla para Bancos.
CLASS CDatos_Banco is a TForm Method Mostrar ( ) Method Actualizar ( ) Method Actualizar ( ) ENDCLASS
è CvistaListado_Abonado
Clase para visualizar en pantalla la plantilla para listar Abonados.
CLASS CVistaListado_Abonado is a TForm Method Mostrar ( ) Method Ocultar ( ) ENDCLASS
Práctica de Ingeniería del Software VideoClub
119
è CvistaListado_Cliente
Clase para visualizar en pantalla la plantilla para listar Clientes.
CLASS CVistaListado_Cliente is a TForm Method Mostrar ( ) Method Ocultar ( ) ENDCLASS
è CvistaListado_Banco
Clase para visualizar en pantalla la plantilla para listar Bancos.
CLASS CVistaListado_Banco is a TForm Method Mostrar ( ) Method Ocultar ( ) ENDCLASS
è CvistaListado_Proveedor
Clase para visualizar en pantalla la plantilla para listar Proveedores.
CLASS CVistaListado_Proveedor is a TForm Method Mostrar ( ) Method Ocultar ( ) ENDCLASS
Práctica de Ingeniería del Software VideoClub
120
è CvistaListado_Producto
Clase para visualizar en pantalla la plantilla para listar Productos.
CLASS CVistaListado_Producto is a TForm Method Mostrar ( ) Method Ocultar ( ) ENDCLASS
è CvistaListado_Pedido
Clase para visualizar en pantalla la plantilla para listar Pedidos.
CLASS CVistaListado_Pedido is a TForm Method Mostrar ( ) Method Ocultar ( ) ENDCLASS
è CvistaListado_Factura
Clase para visualizar en pantalla la plantilla para listar Facturas.
CLASS CVistaListado_Factura is a TForm Method Mostrar ( ) Method Ocultar ( ) ENDCLASS
Práctica de Ingeniería del Software VideoClub
121
è CDatos_Listado_Nombre
Clase para visualizar en pantalla la plantilla para tipo de búsqueda por Nombres.
CLASS CDatos_Listado_Nombre is a TForm Method Mostrar ( ) Method Ocultar ( ) ENDCLASS
è CDatos_Listado_Código
Clase para visualizar en pantalla la plantilla para tipo de búsqueda por Código.
CLASS CDatos_Listado_Código is a TForm Method Mostrar ( ) Method Ocultar ( ) ENDCLASS
è CDatos_Listado_Tipo
Clase para visualizar en pantalla la plantilla para tipo de búsqueda por Tipos.
CLASS CDatos_Listado_Tipo is a TForm Method Mostrar ( ) Method Ocultar ( ) ENDCLASS
Práctica de Ingeniería del Software VideoClub
122
è CDatos_Listado_Fecha
Clase para visualizar en pantalla la plantilla para tipo de búsqueda por Fechas.
CLASS CDatos_Listado_Fecha is a TForm Method Mostrar ( ) Method Ocultar ( ) ENDCLASS
è CVideoC
Clase para gestionar accesos a la Base de Datos.
CLASS CVideoC is a TForm Method Leer_Datos ( ) Method Enviar_Datos ( ) ENDCLASS
è CError_Msg
Clase para visualizar en pantalla un mensaje indicando que se ha producido un error.
CLASS CError_Msg is a TForm Method Mostrar ( ) Method Ocultar ( ) ENDCLASS
Práctica de Ingeniería del Software VideoClub
123
è CConfirmar_Msg
Clase para visualizar en pantalla un mensaje indicando que se ha realizado correctamente una operación.
CLASS CConfirmar_Msg is a TForm Method Mostrar ( ) Method Ocultar ( ) ENDCLASS
è CVistaListado_Factura_Detalle
Clase para visualizar en pantalla la plantilla que muestra el Detalle de una Factura.
CLASS CvistaListado_Factura_Detalle is a TForm Method Mostrar ( ) Method Ocultar ( ) ENDCLASS
è TAboutBox
Clase para visualizar en pantalla la plantilla que informa sobre los desarrolladores de Software.
CLASS TAboutBox is a TForm Method Mostrar ( ) Method Ocultar ( ) ENDCLASS
Práctica de Ingeniería del Software VideoClub
124
è CAyuda_Msg
Clase para visualizar en pantalla la plantilla que informa sobre la disponibilidad de la ayuda.
CLASS CAyuda_Msg is a TForm Method Mostrar ( ) Method Ocultar ( ) ENDCLASS
è CSalir_Fin
Clase para visualizar en pantalla la plantilla para la elección de abandonar o no el software.
CLASS CSalir_Fin is a TForm Method Mostrar ( ) Method Ocultar ( ) ENDCLASS