Beruflich Dokumente
Kultur Dokumente
Realizado por: Jos Pablo Martn Garca lvaro ngel Mateos Moreno Carlos Alberto Segun Herrero
1
1. ndice
1. ndice ........................................................................................................................... 2 2. Enunciado de la prctica............................................................................................ 3 3. Diagrama de clases ..................................................................................................... 5 4. Descripcin de las clases ............................................................................................ 6 5. Aspectos ms interesantes del modelado conceptual y del paso al diseo............. 9 6. Informe ADAMCASE .............................................................................................. 12
2. Enunciado de la prctica
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: 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 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.
3. Diagrama de clases
Cliente
nombre : String direccion : String telefono : Long correo electronico : String 1 registrar() entrar() modificar_datos() buscar_producto() aadir_al_carrito() borrar_del_carrito() validar_carrito()
Carrito de compra
cuanta : float 0..n comprobar_identidad() realizar_transferencia() recalcular_unidades()
1 0..n 1
paga
aade Producto
hace Empresa
CIF : unsigned int
0..n
Factura
nmero_factura : Integer cuanta : float fecha : date
0..n
genera Persona
NIF : unsigned int fecha_nacimiento : String apellidos : String 0..n 1..n
Pedido
unidades : integer regalo : boolean direccion_envo : string 1 calcular_precio() 1
Cosecha
tipo : string ao : integer
Tipo de vino
nombre : string 1
Caja personal
tipo : integer tamao : integer coste_adicional : float comprobar si llena()
0..n
Lnea de pedido
nombre_artculo : string precio_artculo : float 0..n
0..n
0..n
0..n
crea
1
Producto Vino
identificador : string cata : string gastronoma recomendada : string precio : Integer temperatura a servir : Integer formato caja : Boolean unidades_stock : Integer num_unidades mnima : Integer 0..n 0..n 0..n
Formato caja
1 0..1
Bodega
nombre : string direccin : string correo_electrnico : string telefono : Long 1
procede de
0..n
Denominacin de origen
nombre : string
0..1 1..n
0..n
Formato botella
capacidad : Float
Variedad de uva
porcentaje_uva : Integer
Factura: Clase que mantiene los datos de una compra y del cliente al que pertenece dicha factura. Se compone de cabecera, cuerpo y pie y tiene un carcter legal por lo que algunos de sus campos sern obligatorios. Cada factura es nica y se identifica por un nmero. Se relaciona con las lneas de pedido con el objetivo de mantener un histrico de pedidos por cliente.
Pedido, Lnea de pedido: En la clase pedido tenemos en cuenta los pedidos que estn siendo gestionados para un cliente en un determinado momento. La clase pedido agrega instancias de lnea de pedido que a su vez estn relacionadas con factura de tal manera que puede sobrevivir a la eliminacin en el sistema tanto de una factura, como de un pedido.
Carrito de la compra, gestor de compra: Esta clase es la encargada de recoger los productos seleccionados por un determinado cliente que son candidatos a ser comprados. Se trata de un elemento temporal debido a que en el momento en el que un cliente termina de interactuar con el sistema, es eliminada, volvindose a crear una nueva instancia vaca cuando entre de nuevo un cliente al sistema. La clase carrito de la compra est relacionada por medio de una composicin con la clase gestor de compra que es una clase de control para tratar las restricciones de seguridad y de consistencia del carrito de la compra. Carrito de la compra aade un nmero indeterminado de productos. Producto: Se trata de una clase abstracta, pensada para una posible ampliacin de la tienda virtual por medio de especializaciones a diferentes clases concretas producto; en tal caso con una nueva especializacin, podramos ofertar en nuestro catalogo nuevos productos sin tener que remodelar la lgica de negocio. Unidades: Unidades es una clase asociacin que refleja el nmero de unidades de un determinado producto que ha sido aadido al carrito de la compra, alterndose cuando un cliente agregue o quite productos de su carrito a lo largo del tiempo. Caja personal: Se trata de una especializacin de la clase producto. Una caja personal podr incluir objetos provenientes de otros tipos de producto comprados por un cliente; como es el caso de botellas de vino. Una caja personal est compuesta de botella por lo que esta clase, ser una agregacin de la clase botellas. Producto vino, denominacin de origen, formato caja, formato botella, tipo vino, variedad de uva, cosecha: Se trata de una especializacin de la clase producto. En la actualidad, esta clase abarcar todo el catlogo de artculos ofertados, puesto que no se venden otros tipos de producto. Un producto vino crear una lnea de pedido cuando sea comprado por un cliente. Producto vino agrega varias clases: denominacin de origen, formato caja, formato botella, tipo de vino y variedad de uva. La clase denominacin de origen indica la denominacin de origen que tiene el vino indicando su nombre,. La clase formato caja indica que el formato en el que se vende ese producto vino determinado, es mediante cajas de n unidades de botellas (indicado en el atributo de la clase producto
num_unidades mnima,. La clase formato botella indica que el formato de venta de ese producto es mediante botellas, la capacidad de las botellas viene definida por el atributo capacidad. La clase tipo vino indica el tipo de vino del producto, la variedad de uva refleja el tipo o tipos de uvas con los que se ha elaborado el producto indicando su porcentaje. Por ltimo, la clase cosecha expresa el ao de la cosecha del vino as como su tipo (crianza, etc.) Bodega: La clase bodega recoge informacin acerca de la procedencia de cada uno de los tipos de vino. Una bodega nos puede surtir diferentes tipos de vino, mientras que un tipo de vino concreto ser comprado a una nica bodega y siempre a la misma.
Tipo de vino
nombre : string 1
0..n
0..n
Producto Vino
identificador : string cata : string gastronoma recomendada : string precio : Integer temperatura a servir : Integer formato caja : Boolean unidades_stock : Integer num_unidades mnima : Integer 0..n 0..n 0..n
Formato caja
1 0..1
1 1..n
Formato botella
capacidad : Float
Variedad de uva
porcentaje_uva : Integer
Figura 1
Segn la figura 1, la clase: Producto vino agrega a las clases Denominacin de origen, variedad de uva, formato botella, formato caja, tipo de vino y cosecha Estas agregaciones, suponen que cada tipo de producto vino, se vender en un determinado formato: por botellas o por cajas de n botellas (nicamente se podr vender en uno de los dos formatos), tendr una denominacin de origen de la que procede (puede no tener denominacin su procedencia), tiene uno o varios tipos de uva en su elaboracin, tiene un tipo (tinto, blanco, espumoso) y una cosecha que viene definida por la aada y el tipo (crianza, reserva, gran reserva, etc.). Estas clases van a describir totalmente a la clase que les agrega, puesto que una instancia de un producto vino, se vale de unos determinados atributos, para ser definida con exactitud y de forma unvoca; ya que otra instancia diferente de producto vino, no tiene por qu tener la misma denominacin de origen, variedad de uva, formato, tipo o cosecha. Con estas clases quedar completamente descrito nuestro catlogo de productos.
Producto
Caja personal
tipo : integer tamao : integer coste_adicional : float comprobar si llena()
Producto Vino
identificador : string cata : string gastronoma recomendada : string precio : Integer temperatura a servir : Integer formato caja : Boolean unidades_stock : Integer num_unidades mnima : Integer
Figura 2
Segn la figura 2, la clase: Producto es de tipo abstracto especializado en los nicos dos productos ofertados Producto vino y caja personal. Puesta de esta forma para una posible ampliacin del sistema de cara a la venta de nuevos productos concretos. Por lo tanto, nicamente especializando esta clase en otro nuevo producto podramos ampliar el catlogo sin necesidad de un remodelado.
10
Carrito de compra
cuanta : float
Unidades
0..n
Producto
0..n
Figura 3
Segn la figura 3, Unidades se trata de una clase asociacin entre Carrito de compra y Producto. Tiene un atributo llamado nmero que refleja el nmero de instancias concretas de un determinado producto que se han introducido en el carrito. Esto es as puesto que el nmero de unidades que un cliente deja en su carrito puede variar con el tiempo.
11
6. Informe ADAMCASE
Componentes
Paquetes
o
BASE Descripcin: Paquete Base del diagrama de clases del sistema. Paquete padre: No hay paquete padre disponible.
Clases
o
Cliente Descripcin: Recoge informacin de los usuarios que van a realizar una compra.