miércoles, 27 de abril de 2011

Diagrama de Clases y Uso de Tienda de Vinos

Un distribuidor de vinos ha decido montar una tienda virtual en Internet a través de la cual vender sus productos on-line. Las primeras reuniones se han resumido en un documento expresado en lenguaje natural, que recoge a grandes rasgos la lógica de negocio del sistema a construir. Este documento se presenta a continuación:
 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
• Facturación de los pedidos
• Permitir listados y estadísticas
Productos
El distribuidor en cuestión comercializa diferentes productos relacionados con el vino. Cada producto (llamémosle tipo de vino), viene definido por un nombre, una denominación de origen, una categoría (cosecha, media barrica, crianza, reserva, gran reserva), una añada, un precio por botella sin IVA y las características destacables de ese tipo de vino.
Cada tipo de vino puede distribuirse en diferentes formatos siendo los más habituales (aunque pueden aparecer más) 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 sólo 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 número de botellas más un plus por la caja de madera. De cada tipo de vino se debe tener constancia del número de unidades de que se dispone, haciendo referencia la unidad al formato de distribución (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 dirección, el correo electrónico y una lista de teléfonos de contacto. Además, 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 función del tamaño. Opcionalmente, el cliente puede elegir una dirección diferente a la que enviar el pedido. Si se elige la opción “Regalo”, la factura se enviará a la dirección del cliente y el pedido a la dirección indicada, y en este caso será obligatorio pagar con VISA.
Clientes
Para que un cliente pueda comprar tiene que estar dado de alta en el sistema. Por ello, de cada uno se conocerá su CI, fecha de nacimiento (no se venderá vino a los menores de 18 años), nombre, apellidos, dirección, correo electrónico y lista de teléfonos. Se contempla la posibilidad de que el cliente sea una empresa, pero entonces se almacenará su RUC, 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 información histórica de los carritos de la compra.
Facturación
Cuando el cliente ha confirmado su carrito, se emite una factura que se le enviará con la mercancía, excepto si el pedido era para regalo. Debe tenerse constancia de la dirección a la que se envió la factura. Dicha factura podrá pagarse a través de VISA en el momento de la compra, o contra reembolso a la entrega. La factura detallará perfectamente todos los productos comprados, más una cantidad fija por gastos de envío. Las facturas no se borrarán, ni podrán modificarse, pero podrán imprimirse tantas veces como sea necesario.
Listados
El usuario no ha definido todos los listados que requiere, pero si le interesa obtener estadísticas de compras por tipos de vino.





martes, 12 de abril de 2011

Ejemplo de Diagrama de Actividades

Para construir un edificio, un inversor deberá contratar primero un arquitecto, y luego a los obreros que trabajarán en la obra. Pero antes que nada, los planos deben estar armados. Luego del armado de los planos y de la contratación del arquitecto y los obreros, es posible comenzar con la construcción del edificio.

Al iniciar la construcción, todos los obreros juntos construyen los cimientos. Para construir una planta todos los obreros juntos colocan el piso. Luego, algunos colocan las paredes, otros las tuberías, y otros la electricidad del mismo. Una vez finalizadas todas estas tareas, se puede construir otra planta arriba de la última planta construida (repitiendo los pasos anteriores), o simplemente poner el techo y concluir la construcción (dependiendo de lo especificado en los planos). Utilice la técnica de diagramas de actividad para describir las principales actividades mencionadas.



miércoles, 6 de abril de 2011

Ejemplo 2 de Diagrama de Estados



2.- Construya un diagrama de estados que represente el estado de una multa de tráfico (impuesta,comunicada, recurrida, anulada, confirmada, cobrada, en embargo), teniendo en cuenta lo siguiente: - Cuando se crea una multa, automáticamente se envía una notificación al conductor. - Si correos devuelve firmado el acuse de recibo o certifica que el conductor ha rechazado la notificación la multa pasa a notificada. - A los 30 días sin recurrir pasa automáticamente a confirmada. Si llega antes un recurso pasa a recurrida hasta que la autoridad competente decide confirmar o anular la sanción salvo que transcurran 6 meses sin decisión y en ese caso pasa también a anulada. - Si la multa está confirmada y transcurren 6 meses se inicia automáticamente el procedimiento de embargo con comunicación simultánea al interesado. - En cualquier momento apropiado la multa se puede pagar y pasa al estado cobrada.



Ejemplo de Diagrama de Estados

Hacer el Diagrama de Estados que modele el comportamiento de una Máquina Expendedora. 
El comportamiento a modelar se describe informalmente como sigue: 
a) La máquina expendedora acepta las monedas y comprueba que son válidas, calcula su valor a partir de su tamaño y peso.
b. Acumula el valor total pagado
c. Después de introducir dinero el usuario hace su selección (pulsa el botón asociado al item que desea).
d. Comprobar si la existencia del producto elegido y el pago realizado es suficiente antes de dispensar el producto.
e. La máquina es capaz de dar cambio y puede devolver el valor pagado a petición del cliente



domingo, 3 de abril de 2011

Indices, Esquemas y Generacion desde Erwin a PLSQL

Para crear indexes haces click derecho sobre la tabla, elegimos la opción Indexes:



En esta pantalla hacemos un chech en Show FK Indexes para ver ademas de las llaves primarias, las llaves foraneas. En la pertana de Oracle elejimos el tablespace donde se ubicaran los indexes, para este ejemplo elejimos EXAMPLE. Ademas indicamos el porcentaje libre PCTFREE y el Owner, en este caso HR.

Luego en la pestana de Members elegimos la columna que es index, en este caso PRO_ID de Lista de Available Columns a la lista de Index Members.

Para crear un nuevo esquema (NEW SCHEMA) damos click sobre Tools, escojemos Forward Engineer



En la lista ORACLE 8x Shema Generation nos ubicamos sobre la opcion SCHEMA y damos click en el boton New, nos aparece la forma para insertar el nombre del esquema, escribimos y OK.  


Luego nos vamos ubicando sobre cada una de las opciones de la lista ORACLE 8x Shema Generation y vamos haciendo un check en las opciones de la lista respectiva que nos van a ser utiles en la generacion del esquema.

 Ejemplo para TABLAS:
Ejemplo para COLUMNS:

Ejemplo para INDEXES:
Ejemplo para REFERENCIAL INTEGRITY:


En este ejemplo no vamos a utilizar TRIGGERS por lo tanto hacemos un UNCHECK de todas las opciones de TRIGGERS.

Ejemplo para OTHER OPTIONS:


En el botón PREVIEW vemos la generación previa del script.





Rebizamos que todo este bien antes de generar y en este caso vemos que el nombre de las llaves foráneas nos apareces con nombres no identificables por lo que antes de generar regresamos al modelo, hacemos doble click sobre la relación y procedemos a cambiar el nombre.


Rebizamos una vez mas que todo el codigo a generarse este bien y hacemos click en el boton Generate.


Al Generar nos aparecerá esta opción de ORACLE Connection y damos el nombre y password de usuario con la cadena de conexión. Y click en Connect. Luego ya podemos abrir plsql y trabajar.

Otra opción es la de copiar todo el código que esta por generarse y ese código pegamos en la pantalla de plsql para trabajar ahí en consultas.

Para no generar todo el codigo porque probablemente ya se genero previamente parte del modelo entonces hacemos un filtrado de las tablas que se van a generar. En la lista Table Pool van a estar las tablas que no se van a generar y en la lsita Table Filter las que si.






RECURSIVIDAD CLIC EN LA RELACION: Se indica de la siguiente manera. Ver Tabla PROCLAS.



En recursividad antes de generar vamos a renombrar al id. Damos doble click sobre la relación y en la pestaña Rolename escribimos otro nombre para el rol.


Tambien renombramos el rol de UNI_ID.