Está en la página 1de 12

Ingeniera del Software, Noviembre 2005

TiendaVirtual de Vinos
Realizado por: Angel Oreja Martn Pablo San Feliciano Martn Victor Teniente Mateos

Departamento de Informtica y Automtica Universidad de Salamanca

NDICE GENERAL
1. 2. 3. 4. 5. Descripcin del proyecto .......................................................................................... 3 Diagrama Entidad / Relacin.................................................................................... 5 Descripcin de las Entidades y Relaciones .............................................................. 6 Modelo lgico del sistema: MODELO RELACIONAL .......................................... 7 Descripcin de las relaciones mas interesantes ...................................................... 11

1. Descripcin del proyecto


TIENDA VIRTUAL DE VINOS Un distribuidor de vinos ha decido montar una tienda virtual en Internet a travs de la cual vender sus productos en lnea. Las primeras reuniones se han resumido en un documento expresado en lenguaje natural, que recoge a grandes rasgos la lgica de negocio del sistema a construir. Este documento se presenta a continuacin: El software a construir debe cumplir las siguientes funcionalidades:
o o o o o o

Mantenimiento de los productos Mantenimiento de proveedores Mantenimiento de los clientes Gestionar el carrito de la compra de vinos Facturacin de los pedidos Permitir listados y estadsticas

Productos El distribuidor en cuestin comercializa diferentes productos relacionados con el vino. Cada producto (llammosle tipo de vino), viene definido por un nombre, una denominacin de origen, una categora opcional (cosecha, media barrica, crianza, reserva, gran reserva, reserva especial), la variedad de uva y su porcentaje, la crianza, una aada, un precio por botella sin IVA, la cata, la gastronoma recomendada, la temperatura a la que se debe servir y los comentarios destacables de ese tipo de vino. Cada tipo de vino puede distribuirse en diferentes formatos siendo los ms habituales (aunque pueden aparecer ms) media botella, tres cuartos, litro y medio y cinco litros. No todo tipo de vino tiene por que distribuirse en todos los formatos. Cada tipo de vino de un formato determinado puede venderse en una (y slo en una) de las dos siguientes posibilidades: por botellas o por cajas de madera de n unidades, de forma que el precio de la caja ser el de cada botella multiplicado por el nmero de botellas ms un plus por la caja de madera. De cada tipo de vino se debe tener constancia del nmero de unidades de que se dispone, haciendo referencia la unidad al formato de distribucin (botella o cajas de n botellas). Cada tipo de vino se compra en una bodega, de forma que de cada bodega se debe conocer el nombre, la direccin, el correo electrnico y una lista de telfonos de contacto. Adems, el cliente podr configurar cajas de madera con las botellas compradas individualmente (los tipos de cajas disponibles son de 1, 2, 3, 4 y 6 botellas) para poder adquirir una caja as conformada debe llenarse la caja. La caja de madera tendr un coste adicional y variar en funcin del tamao. Opcionalmente, el cliente puede elegir una direccin diferente a la que enviar el pedido. Si se elige la opcin Regalo, la factura se enviar a la direccin del cliente y el pedido a la direccin indicada. Clientes Para que un cliente pueda comprar tiene que estar dado de alta en el sistema. Por 3

ello, de cada uno se conocer su NIF, fecha de nacimiento (no se vender vino a los menores de 16 aos), nombre, apellidos, direccin, correo electrnico y lista de telfonos. Se contempla la posibilidad de que el cliente sea una empresa, pero entonces se almacenar su CIF, y, obviamente, no har falta la fecha de nacimiento. Una vez que el cliente est dado de alta se le asignar un nombre de usuario y una clave. El carrito de la compra El usuario ir seleccionando los productos e incorporarlos a su carrito. Este carrito se podr vaciar en cualquier momento, o bien confirmar su contenido para conformar el pedido final. No se desea guardar informacin histrica de los carritos de la compra. Facturacin Cuando el cliente ha confirmado su carrito, se emite una factura que se le enviar con la mercanca, excepto si el pedido era para regalo. Debe tenerse constancia de la direccin a la que se envi la factura. La factura siempre se paga con VISA en el momento de confirma el pedido. La factura detallar perfectamente todos los productos comprados, ms una cantidad fija por gastos de envo. Las facturas no se borrarn, ni podrn modificarse, pero podrn imprimirse tantas veces como sea necesario. Listados El usuario no ha definido todos los listados que requiere, pero si le interesa obtener estadsticas de compras por tipos de vino.

(0,1) (1,1) Incorpora cod_li nea NIF Dispone (1,1) PART ICULAR (0,1) id_pedi do (0,1) (1,1) BOT ELLA_IND Genera id_caj a_bot (1,1) (0,n) (1,1) Reci be USUARIO (1,1) id_factura (0,n) VINO (0,n) (0,n) Posee FORMAT O T ELEF_USR n_telef login (1,1) CAJA_BOT ELLAS ISA 3 id_ref (1,1) (1,1) (0,1) (0,1) PEDIDO (0,1) CIF LINEA_PEDIDO (0,n) (0,n)

conforma

cod_producto (1,1) (1,n)

PRODUCT O

ISA 2

EMPRESA

id_caj a

2. Diagrama Entidad / Relacin

CAJA

cod_uva

cod_Dorigen

UVA Distribuye FACTURA

DENOMINACION_ORIGEN

(1,1)

(0,1)

Reconoce

uva-tipo (1,n) E T lf-User

(0,n)

(0,n)

(1,n)

Provee

T IPO_VINO

id_bodega id_form ato

(1,1)

cod_vino

BODEGA

(1,1) T ELF-BOD

E T lf-Bod

(1,n)

n_telef

3. Descripcin de las Entidades y Relaciones


Informe generado automticamente con la herramienta CASE StudioCase.
ENTIDADES:
Regulares: o TIPO_VINO =(@cod_vino, categora, porcentaje_uva, crianza, aada, cata, o FORMATO =(@id_formato, volumen) o BOTELLA_IND = (@id_ref, fecha_envasado, etiquetado) o BODEGA = (@id_bodega, nombre_bod, direccion_bod, correo_bod) o CAJA = (@id_caja, tipo_caja, tamao_caja, precio, descripcin) o LINEA_PEDIDO = (@cod_linea, cod_producto, subtotal_linea, id_pedido, cantidad) o CAJA_BOTELLAS = (@id_caja_bot, fecha_embalado, n_botellas, descripcin_c) o PEDIDO = (@id_pedido, total_sin_iva,fecha, direccion_des,nombre_des,apellido_des) o USUARIO = (@login, password, correo_user) o FACTURA = (@id_factura, login, fecha_factura, id_pedido, n_factura, total_iva) o PARTICULAR = (@NIF, fecha_nac, nombre, apellido1, apellido2, direccion_user) o EMPRESA = (@CIF, nombre_e, direccin_e) o DENOMINACION_ORIGEN = (@cod_Dorigen, zona_produccin, info_Dorigen) o UVA = (@cod_uva, nombre_u) o PRODUCTO = (@cod_producto, precio) Debiles: o TELF_BOD = (@n_telef, id_bodega) o TELF_USR = (@n_telef, login)
temperatura, comentarios_vino, cod_Dorigen, id_bodega,cod_uva)

RELACIONES:
Regulares: o Posee = . TIPO_VINO/FORMATO . Tipo N:N o A) Distribuye = . BOTELLA_IND/VINO . Tipo 1:N o B) Distribuye = . BOTELLA_IND /CAJA_BOTELLAS . Tipo 1:N o Provee = . TIPO_VINO/BODEGA . Tipo N:1 o Incorpora = . LINEA_PEDIDO/PRODUCTO . Tipo N:1 o Dispone = . LINEA_PEDIDO/PEDIDO . Tipo N:1 o Recibe = . USUARIO/FACTURA . Tipo 1:N o Genera = . PEDIDO/FACTURA . Tipo 1:1 o Reconoce = . DENOMINACION_ORIGEN/TIPO_VINO . Tipo 1:N o uva-tipo = . UVA/TIPO_VINO . Tipo 1:1
(*)Las relaciones A y B son opciones disjuntas en el modelo.

(*)

Debiles: o Tlf-Bod = BODEGA/TELF-BOD . o Tlf-User = USUARIO/TELEF_USR .

GENERALIZACIONES:
o o
ISA 3 = . PARTICULAR/EMPRESA/(@USUARIO ISA 2 = . (@PRODUCTO/CAJA/BOTELLA_IND/CAJA_BOTELLAS

AGREGACIONES:
o
VINO = . Relacion agregada: Posee

4. Modelo lgico del sistema: MODELO RELACIONAL

Cod_vino Categora

TIPO_VINO
Crianza Aada Cata Temperatura Comentarios_vino Cod_Dorigen Cod_uva Id_bodega

Porcentaje_uva

Claves ajenas: Id_bodega referencia BODEGA: Al borrar: En cascada Al actualizar: En cascada Posibilidad de valores nulos: No Cod_uva referencia UVA: Al borrar: En cascada Al actualizar: En cascada Posibilidad de valores nulos: No Cod_Dorigen referencia DENOMINACION_ORIGEN: Al borrar: En cascada Al actualizar: En cascada Posibilidad de valores nulos: No

FORMATO
Volumen

Id_formato

Id_ref

BOTELLA_IND
Fecha_envasado Etiquetado

Id_bodega

BODEGA
Nombre_bod Direccion_bod Correo_bod


Id_caja

CAJA
Tipo_caja Tamao_caja Precio Descripcin

LINEA DE PEDIDO
Cod_linea Cod_producto Subtotal_linea Id_pedido Cantidad

Claves ajenas: Cod_producto referencia PRODUCTO: Al borrar: En cascada Al actualizar: En cascada Posibilidad de valores nulos: No Id_pedido referencia PEDIDO: Al borrar: En cascada Al actualizar: En cascada Posibilidad de valores nulos: No

CAJA_BOTELLAS
Id_caja_bot Fecha_embalado N_botellas Descripcin_c

PEDIDO
Id_pedido Total_sin_iva Fecha

USUARIO
Login Password Correo_user

FACTURA
Id_factura Login Fecha_factura Id_pedido N_factura Total_iva

Claves ajenas: Id_pedido referencia FACTURA: Al borrar: En cascada Al actualizar: En cascada Posibilidad de valores nulos: No Login referencia USUARIO: Al borrar: Restringido Al actualizar: En cascada Posibilidad de valores nulos: No PARTICULAR
NIF Fecha_nac Nombre Apellido1 Apellido2 Direccion_user

EMPRESA
CIF Nombre_e Direccin_e

DENOMINACION_DE_ORIGEN
Cod_Dorigen Zona _ produccin Info_Dorigen

UVA
Cod_uva Nombre_u

PRODUCTO
Cod_producto Precio

TELF_BOD
N_telef Id_bodega

Claves ajenas: Id_bodega referencia BODEGA: Al borrar: En cascada Al actualizar: En cascada Posibilidad de valores nulos: No

TELF_USR
N_telef Login

Claves ajenas: Login referencia USUARIO: Al borrar: Restringido Al actualizar: En cascada Posibilidad de valores nulos: No

POSEE
Cod_vino Id_formato

VINO
Cod_vino Id_formato Id_ref

Claves ajenas: Id_ref referencia identificador del producto: Al borrar: En cascada Al actualizar: En cascada Posibilidad de valores nulos: No

10

5. Descripcin de las relaciones mas interesantes

Agregacin VINO: TIPO_VINO posee FORMATO


VINO TIPO_VINO (0,n) Posee (0,n) FORMATO

Esta agregacin permite definir un elemento manejable en el sistema, es decir el conjunto formado por el vino en cuestin y el formato en el que se distribuye. Generalizacin PRODUCTO

PRODUCTO (1,1)

(1,1)

(0,n) Incorpora

LINEA_PEDIDO

ISA 2

(0,1)

(0,1)

(0,1)

CAJA

BOTELLA_IND

CAJA_BOTELLAS

Esta relacin de generalizacin permite englobar las caractersticas comunes a los distintos tipos de productos que pueden seleccionarse en una lnea de pedido, as como elegir el producto de cada lnea. Relacion reflexiva LINEA_PEDIDO

conform a (0,1)

LINEA_PEDIDO (0,n)

Esta relacin reflexiva expresa la asociacin que pudiera existir entre la lnea de pedido que incluye la caja de madera vaca con la/as lnea/as de pedido de botellas individuales que la configuran.

11

Relacin VINO distribuye BOTELLA_IND CAJA_BOTELLAS

/ VINO distribuye

BOTELLA_IND (1,1)

CAJA_BOTELLAS (1,1)

Distribuye

(0,n)

VINO

La entidad VINO se relaciona de forma disjunta con las entidades BOTELLA_IND y CAJA_BOTELLAS, es decir, el conjunto formado por un TIPO_VINO y el formato de distribucin solo puede seguir una (y solo una) de dichas formas de venta. Relaciones USUARIO-FACTURA-PEDIDO
PEDIDO (1,1)

Genera

(1,1) (0,n) (1,1) Recibe USUARIO

FACTURA

La entidad USUARIO se relaciona con una o varias facturas (en funcin del numero de veces que ha realizado compras), manteniendo un histrico de facturas y quedando asociada de forma unvoca cada entidad FACTURA con un nico usuario. Adems, cada entidad PEDIDO se corresponde con una (y solo una) entidad FACTURA y viceversa.

12

También podría gustarte