WEB Libreria BETA

Sistema de venta. Internet. Requisitos. Propósito. Alcance. Producto. Usuario. Diccionario de datos. Procesos primitivos. Base de Datos. Gestión. Módulos

  • Enviado por: Joze1212
  • Idioma: castellano
  • País: España España
  • 29 páginas
publicidad

PRACTICA ISG1

WEB_Libreria_BETA

3º- Septiembre

Índice

Documento de Requisitos

Introducción

Propósito…………………………………...Pág. 3

Alcance………………………………….…Pág. 4

Definiciones, Acrónimos y Abreviaturas…..Pág. 5

Descripción General

Perspectivas del Producto………………….Pág. 6

Funciones del Producto………………….…Pág. 6

Requisitos Específicos

Requisitos funcionales………………….….Pág. 8

Requisitos relacionados con los datos…...…Pág. 9

Diagramas de flujo de Datos

Diagrama de Contexto…………………..…….Pág. 10

Diagrama de Sistema nivel 0……………….....Pág. 11

Diagramas de nivel 1…………………….……Pág. 12

Diagramas de nivel 2………………………….Pág. 14

Diccionario de Datos………………………….Pág. 16

Especificación de procesos primitivos……..…Pág. 18

Modelo Entidad Relación

Esquema de la Base de datos………………... Pág. 23

Glosario del Esquema de la base de Datos…. Pág. 24

Diseño Arquitectónico

Diagrama de módulos…………………………Pág. 26

Especificación de cada modulo……………….Pág. 28

DOCUMENTO DE REQUISITOS

INTRODUCION

Propósito

El sistema que vamos a describir a continuación se denomina la WEB_Libreria_BETA. Es un sistema de venta de artículos y la compra de productos por Internet que permite a los clientes la adquisición de artículos de librería y papelería de esta tienda, también permitiendo al gerente o encargado de la tienda controlar el stock de sus productos, pidiendo automáticamente, a los proveedores cada producto que necesite. Esta descripción del sistema correspondería a la 1ª versión de la WEB_Libreria_BETA.

La finalidad de este documento es describir el sistema de información necesario para la gestión de una librería destinado a Internet. Para ello definiremos las principales entradas y salidas del sistema y su interacción con los principales componentes y actores del sistema.

Tomaremos como actores principales a los participantes (clientes) que deberán estar registrados con anterioridad para poder adquirir algún producto de la librería BETA a través de la WEB_Libreria_BETA. Esta aplicación actuara de intermediario para poner en contacto a los clientes con la librería y facilitara la tarea de adquirir productos. Existe la figura del Administrador que se encargará de actualizar los productos que ofrece la tienda, los clientes que se registran en ella, y así como también se encarga de realizar los pedidos a los proveedores mediante la aplicación.

El sistema WEB_Libreria_BETA no se encargará de gestionar los servicios de envío de los productos, acudiendo a subcontratas que realizaran esta función.

El sistema se encuentra totalmente afiliado a la librería BETA en la cual se encuentran los productos físicamente, desde donde se envían los productos a los clientes y a donde llegan los suministros desde los proveedores.

El software que se dará lugar estará compuesto por un sistema de bases de datos para almacenar todos los datos de los productos y los clientes así como por un conjunto de páginas Web para la interacción de los clientes (y del administrador). Las paginas Web peden estar realizadas en HTML, JavaScrip, PHP o cualquier otro lenguaje orientado a la creación de paginas Web, que cargara un entorno de ventanas para hacerlo mas agradable para el usuario.

Alcance

Este sistema software esta dirigido para el uso en todo el mundo, pero no tiene en cuenta los gastos de envío ya que estos van ajenos a la librería. Los gastos de envío los pagaría directamente el cliente a la empresa de mensajeria. El sistema realmente estará situado físicamente en un servidor, alimentado las veinticuatro horas del día, al que se accede por Internet.

El desarrollo de este documento esta enfocado a las prácticas de la asignatura de Ingeniería del Software 1.

Este documento estaría destinado al personal de desarrollo de la aplicación software necesario para la puesta en funcionamiento de la WEB_Libreria_BETA así como el personal dedicado al control de calidad del software, el personal de mantenimiento, y otros procedimientos ulteriores al desarrollo de la aplicación software.

DEFINICIONES DE ACRONIMOS Y ABREVIATURAS

  • Cliente: Persona que accede a la WEB_Libreria_BETA.

  • Cliente Registrado: Cliente que tiene Nick y contraseña cuyos datos están almacenados en la base de datos.

  • Administrador: Persona que accede al sistema y es el encargado de dar de alta y dar de baja a los clientes registrados, escoge los productos que son pedidos, ofertados, dados de alta y de baja.(El administrador es el dueño o el encargado del negocio).

  • Producto: Articulo de librería o de papelería que se venden en la librería.

  • Proveedor: Entidad encargada de recibir los pedidos y de abastecer de productos la tienda.

  • Banco: Entidad que tras comprobar que un número de tarjeta corresponde a una cuenta que pertenece a un cliente concreto, y que la cuenta tiene una cierta cantidad de dinero, procede al cobro de esta cantidad (traspasando de la cuenta del cliente a la cuenta de la librería).

  • Cesta de Compra: Conjunto de productos que son relacionados con un cliente que se agrupan para después poderlo comprar.

  • Grupo: conjunto de productos que están agrupados porque tienen ciertas características comunes.

  • Pedido: E-mail que se manda desde el sistema a un proveedor con los datos de los productos que se desean reponer en la tienda, con objetivo de que este los envíe.

  • Stock: Lista de productos con su numero correspondiente de existencias en la tienda.

  • BD: Base de Datos.

  • Selección: Acción que realiza el cliente o el administrador que consiste en elegir con el puntero del ratón una opción.

DESCRIPCION GENERAL

Perspectivas del producto.

La librería BETA es una tienda con artículos de librería y papelería de propósito general que necesita informatizar algunos de sus procesos con el fin de conseguir mayor eficacia, ahorro de costes y aumento de los beneficios.

Funciones del producto y Características de Usuario.

La dirección de la tienda ha pensado en un servicio de venta de artículos a través de Internet.

En el acceso a la Web, la pantalla inicial mostrará los distintos productos en oferta, así como enlaces a cada grupo de productos ofertados (consumibles papelería, libros,…) El usuario puede consultar los productos, características generales, precios, disponibilidad…, en cada pantalla de consulta de producto aparece una opción (un botón) desde el que se puede añadir a la “cesta de la compra” el producto deseado.

El usuario puede acceder en cualquier momento a comprobar el estado de su “cesta de la compra”, desde donde puede confirmar los datos de la compra.

La confirmación de una compra esta restringida a usuarios registrados previamente.

Al usuario que haya decidido confirmar una “cesta de la compra” si no esta validado en el sistema se le presentara una pantalla de validación donde introducir su nick de usuario y su clave de acceso (contraseña).

Una vez pasada la validación, se le presentara una pantalla donde figuran los detalles del pedido

Si los datos son correctos se le presentara una pantalla que muestra sus datos personales. El usuario procederá al pago del pedido introduciendo un número de tarjeta de crédito y su fecha de caducidad.

Una vez validada la compra con la entidad emisora de la tarjeta se presentará una pantalla donde figuraran los datos relativos al pedido (incluyendo el numero de pedido, artículos que lo forman, fecha, estado...) que el usuario podrá consultar en una ocasión futura.

Los pedidos que hacen los clientes en la librería actualizan el stock de productos de la misma cada producto tiene registrado un umbral por debajo del cual es necesario pedir nuevos suministros a los proveedores.

Semanalmente el administrador de la tienda, debe recuperar el estado del stock para aquellos productos cuyo número de existencia se encuentre por debajo de su umbral preestablecido. El administrador elegirá de la lista de productos aquellos que enviará a los proveedores, así como el proveedor al que se pedirá cada uno de los productos, el numero de unidades de cada producto, guardando un registro del pedido para cotejar posteriormente la entrega por parte de cada proveedor.

Requisitos Específicos

Requisitos funcionales

  • El sistema mostrará una pantalla inicial con varios enlaces. Cada enlace nos llevara a una pantalla distinta dependiendo de este. también se nos mostrara una lista con todos los productos los cuales tengan el atributo “en oferta” activado. El cliente o el administrador en esta pantalla inicial puede seleccionar un grupo de productos, seleccionar un solo producto, ver la cesta de la compra o ir a la pantalla login.

  • El sistema mostrará una pantalla con todas las características de un producto, la referencia de que producto mostrar la obtendremos como parámetro de entrada a la pantalla. A esta pantalla se puede acceder desde la pantalla inicial o desde la pantalla de grupo. El usuario puede volver a la pantalla inicial o añadir el producto a la cesta (donde se mostrará la pantalla de la cesta).

  • La pantalla de Grupo muestra una lista con los nombres de todos los productos de dicho grupo (el grupo a mostrar se recibe como parámetro de entada a la página). A esta pantalla se tiene acceso desde la pantalla inicial. En esta pantalla el cliente puede seleccionar un producto e ir a la pantalla que muestra este producto, o bien volver a la pantalla inicial.

  • La pantalla de Cesta muestra una lista con todos los productos añadidos por el cliente a dicha lista, a dicha pantalla se puede acceder directamente desde un enlace en la pantalla principal o bien a la vez que añades un articulo desde la pantalla de mostrar articulo. El numero de ejemplares añadidos a la cesta no puede superar en ningún caso al stock (numero de ejemplares disponibles) Desde esta pantalla puedes regresar a la pantalla principal o activar el proceso de compra (ir a la pantalla de entrada).

  • En la pantalla de entrada (pantalla login) el sistema muestra un formulario con dos campos a rellenar nick y contraseña que tras rellenarlo comprueba si es un cliente registrado, el administrador o ninguno de ellos , dependiendo de esto procede al pago de la cesta, activa el menú del administrador, o muestra un mensaje de error.

  • El procedimiento de pago muestra al cliente los datos del pedido que se han obtenido de la cesta de compra, además muestra los datos del cliente correspondiente, también obtiene el numero de tarjeta de crédito y la fecha de caducidad de esta. Envía el numero de tarjeta de crédito, el importe y el DNI del cliente comprador a una entidad bancaria que se encarga de validar los datos que han sido enviados y en el caso de que sea todo correcto procede al cobro de el importe a la cuenta que corresponda al numero de tarjeta, devuelve al sistema la información de si ha sido cobrado o no. El flujo de información entre el sistema y el banco se realiza sincronizando los dos sistemas. El movimiento real de dinero lo realizará un sistema independiente de la WEB_Libreria_BETA por motivos de seguridad del banco. Después de que el sistema halla recibido la confirmación del cobro por parte del banco, nuestro sistema debe actualizar el stock de los productos del pedido.

  • En el caso de que el usuario se halla identificado como administrador. El sistema le mostrará un menú con dos opciones correspondientes a las dos funciones de gestión que tiene el administrador: gestionar los clientes y gestionar los productos.

  • En cuanto a la gestión de Clientes el sistema le muestra un formulario para conseguir el Nick del cliente que se quiere “gestionar” y dependiendo de si el Nick esta o no en la base de datos se procederá a crearlo en el caso de que no exista mostrando un formulario para obtener todos los datos necesarios (contraseña, DNI, dirección, nombre y dirección electrónica) que se almacenaran en dicha base de datos. En el caso de que exista dicho nick se muestran los datos y se modifican o se borrar si es menester del administrador.

  • Si el Administrador decide gestionar los productos el sistema mostrara la lista de todos los productos con su stock (El stock del producto le mostrará resaltado en color rojo si es menor que su umbral) y una casilla donde es posible introducir un numero que corresponderá a el numero de dichos productos a reponer. Junto a cada casilla en cada producto hay un enlace que pulsándole pasamos al procedimiento de alta-baja de producto. Al final de la lista aparece un botón que al pulsarle se realiza el pedido al proveedor.

  • Cuando el administrador realiza el pedido el sistema agrupa los productos por proveedor, creando tantos pedidos como proveedores y manda un e-mail a cada proveedor con el pedido correspondiente a este.

  • Para dar de Alta o Baja de un producto el sistema debe obtener el nombre de referencia de dicho producto mediante un formulario o similar y dependiendo si el nombre obtenido esta o no esta en la base de datos se procederá a crearlo y almacenarlo en la base de datos (pidiendo al administrador los datos del producto) en el caso de que el producto no exista. En el otro caso (que el nombre del producto si se encuentre en la base de datos) se mostrarán los datos y se eliminará dicho producto si así aceptase el administrador.

  • Requisitos relacionados con los datos.

    • Cada cliente debe tener un Nick o seudónimo que será el identificador principal de cada cliente (no pueden existir dos clientes con el mismo Nick), también debe tener una contraseña, el DNI, la dirección, el nombre real (y los apellidos) y el correo electrónico. A excepción del Administrador que solo tiene Nick y contraseña.

    • Cada proveedor tendrá un código como identificador principal, el nombre el NIF y la dirección electrónica.

    • Las cestas de la compra se componen de productos y pueden estar o no estar relacionadas con un cliente (pero para efectuar la compra de una cesta se debe relacionar con un cliente). Cada cesta debe tener un código como identificador principal. Las cestas de compra se eliminan de la base de datos cada vez que se realiza el envío físico de cada cesta.

    • Los productos tienen como identificador principal un código, también tienen nombre, precio, descripción, stock (numero entero), una foto (opcional), un umbral (numero), y un valor booleano que indica si esta o no esta en oferta.

    • Los pedidos están compuestos por un numero de pedido (identificador principal) una fecha y un conjunto de productos cada uno con su correspondiente numero de unidades pedidas de dicho producto.

    Diagrama de Contexto.

    Diagrama de sistema: Diagrama 0

    Diagrama nivel 1

    Proc_cliente

    2. Proc_Administrador

    Diagrama Nivel 2.

    1.1 Producto

    2.3

    Gestion_Productos.

    Diccionario de Datos

    • p_inicial= *pantalla que muestra los distintos productos en oferta y enlaces a los distintos grupos de productos*

    • Selección = *Selección en un enlace o una opción que realice un cliente mediante el ratón*

    • Consulta_producto= Nombre +precio + descripción + disponibilidad + (foto) + enl_cesta + enl_inicio.

    • Nombre = String.

    • Precio = numero.

    • Descripción = {String}

    • Disponibilidad = numero entero

    • Foto = imagen.

    • Grupo = {Nombre + (foto) + precio +enl_prod} + enl_inicio. *es una pantalla que muestra al cliente todos los productos del grupo escogido*

    • Enl_cesta = *botón (enlace) que al pulsarle activa la pantalla de cesta pasando la referencia del producto como parámetro*

    • Enl_producto = *botón (enlace) que al pulsarle activa la pantalla de consulta de producto pasando la referencia del producto como parámetro*.

    • Cesta = productos + total + enl_confirmacion + enl_inicio *pantalla que muestra todos los productos que se han añadido a la cesta*

    • Productos = {nombre + precio + unidades}

    • Unidades = numero entero.

    • Enl_confirmacion = *botón (enlace) que al pulsarle activa la pantalla de entrada pasando la referencia de la cesta como parámetro*

    • confirmación = *Selección que hace el cliente en el enlace de confirmación*

    • Enl_inicio = *botón (enlace) que al pulsarle activa la pantalla inicial*

    • Pantalla login = *es una pantalla que muestra un formulario donde se pide nick y contraseña*

    • Login = nick + contraseña.

    • Nick =String

    • Contraseña = String *que sale oculto por asteriscos *

    • Pedido_c = Cesta + num_pedido *Pantalla con los datos de cada pedido*

    • Num_pedido =Numero entero

    • D_personales = Nombre + dirección +correo electrónico + DNI

    • Direccion= 1{String} 10.

    • Correo electrónico = String +”@”+String

    • DNI= 1{numero}8 +Carácter

    • Numero = [0|1|2|3|4|5|6|7|8|9]

    • P_pago = *pantalla con un formulario para introducir dos datos un numero de tarjeta y una fecha de caducidad*

    • Pago = nº tarjeta + fecha_caducidad

    • Nº tarjeta = 1{numero}12

    • Fecha_caducidad= date.

    • Validación Tarjeta = DNI +pago +importe

    • Importe= numero real.

    • Menu_A = *pantalla que tendrá enlaces a distintas opciones que puede realizar el administración*

    • Estado_Stock = {nombre + disponibilidad +umbral+casilla+ enl_prod} + botón *pantalla que muestra toda una lista de productos con su numero de existencias y su umbral preestablecido (si el nº de existencias es menor que el umbral estos datos aparecerán en rojo además aparecerá una casilla al lado de esta)*

    • Umbral = numero entero

    • Casilla = *casilla de un formulario o similar que permite poner un numero entero*

    • botón = botón que pertenece a un formulario para enviar datos a otra proceso.

    • Pedido_p = proveedor + {nombre + unidades}*e-mail enviado al proveedor con distintos datos de los productos*

    • Crear_modificar_producto = código +Nombre +Precio +Descripción +disponibilidad +foto+ umbral + oferta

    • Oferta = boolean

    • Tarjeta Valida =bolean

    • Producto= Crear_modificar_producto.

    • Crear_Modificar_cliente = login +DNI +dirección +Nombre + correo electrónico.

    • Cliente = CrearModificar_cliente

    • P_cliente= *pantalla que muestra un formulario donde se pueden introducir todos los datos del cliente*

    • Clientes = @{nick}

    • Productos = @ {codigo_p}

    • Codigo_p = numero *identificador para la B.D de los productos*

    • Cestas = @ {codigo_c}

    • Codigo_c = numero *identificador para la B.D de las cestas*

    • Act_admin= *Activa Menu_Admin*

    • Act_entrada = *Activa Entrada y pasa como parámetro un codigo_c*

    • Act_prc_pago= *Activa proc_pago y pasa como parámetro un codigo_c*

    • Act_Gestion_cliente=*Activa Gestion_cliente*

    • Act_Gestion_productos= *Activa gestión productos y pasa como parámetro un codigo_p*

    • Act_p_inicial= *Activa pan_inicial *

    • Act_p_producto= *Activa pan_producto y pasa como parámetro un codigo_p*

    • Act_pan_grupo= *Activa pan_grupo y pasa como parámetro el código de un grupo*

    • Act_pan_Cesta= *Activa pan_cesta *

    • Añadir_pan_cesta= *Activa pan cesta y pasa como parámetro un codigo_p*

    • Act_hacer_pedido= *Activa proc_pago y pasa como parámetro un pedido_p*

    • Act_alta_baja_producto= *Activa Alta_baja_producto y pasa como parámetro un codigo_p*

    Especificación de procesos primitivos

  • pan_inicial

  • (Este proceso nos muestra la pantalla inicial con varias opciones y dependiendo de cual se escoja realiza uno u otro proceso)

    INICIO

    Abrir B.D productos

    Repetir

    Leer Registro de producto

    Si (el registro esta marcado como “en oferta”) Entonces

    Guardar datos en ofertas

    Hasta que no queden registros en la base de datos

    Mostrar ofertas

    Cerrar B.D productos.

    Obtener Selección

    En El Caso de que (Selección) Sea:

    Producto: Act_pan_producto (pasando el codigo_p del producto seleccionado como parámetro).

    Grupo: Act_pan_grupo (pasando como parámetro el código del grupo escogido)

    Cesta: Act_pan_Cesta.

    Salir: Salir del sistema.

    FIN.

    1.1.2_pan_producto

    Precondición: Recibe el codigo_p de un producto determinado.

    (Muestra las características de un producto)

    INICIO

    Abrir B.D. Producto

    Repetir

    Leer Registro de producto

    Si (código de producto leído = código de producto pasado _____recibido) Entonces

    Guardar reg. de producto en prod y marcar la variable encontrado

    Hasta que encontrado = trae

    Cerrar BD Productos

    Mostrar registro prod

    Obtener Selección

    En El Caso de que (Selección) Sea:

    Inicio: Act_pan_inicio

    Añadir a Cesta: Añadir_pan_Cesta (pasando como parámetro el codigo_p).

    FIN

    1.1.3_ pan_Grupo

    Precondición: Recibe el código correspondiente a un grupo

    (Este proceso nos muestra todos los productos correspondientes a un grupo dado con sus respectivos enlaces)

    INICIO

    Abrir BD producto

    Repetir

    Leer Registro de producto

    Si (código del Grupo del producto = código de entrada) Entonces

    Guardar Registro producto en Gru

    Hasta que no queden registros en la B.D

    Cerrar B.D producto

    Mostrar Gru

    Obtener Selección

    En el Caso de que selección Sea:

    Inicio:Act_pan_inicio.

    Producto: Act_pan_producto (y pasa como referencia el codigo_p )

    1.1.4_ pan_cesta

    Precondición: Puede recibir el código correspondiente a un producto o puede que no recibir nada, también recibirá un código de Cesta que es único para cada sesión de cliente

    (Este proceso nos muestra todos los productos correspondientes a una Cesta dado con sus respectivas opciones)

    INICIO

    Abrir BD producto

    Si recibe producto Entonces

    Si (el nº de unidades <= Stock del producto) Entonces

    Añade el producto con el código recibido a la cesta correspondiente a la sesión

    Repetir

    Leer Registro de producto

    Si (código de la Cesta del producto = código de cesta de entrada)

    Entonces

    Guardar Registro producto en Cest

    Hasta que no queden registros en la B.D

    Cerrar B.D producto

    Mostrar Cest

    Obtener Selección

    En el Caso de que selección Sea:

    Inicio:Act_pan_inicio.

    Confirmar: Act_entrada (y pasa como referencia el código de la cesta )

    FIN

    1.2_ Entrada

    Precondición: Puede recibir el código correspondiente a una Cesta.

    (Este proceso nos muestra un formulario donde identificarse y lo comprueba)

    INICIO

    Abrir B.D. Clientes

    Repetir

    Mostrar formulario (p_login)

    Obtener login

    Si (Nick esta en B.D.Clientes) y (contraseña coincide) Entonces

    Si (usuario= Administrador) Entonces

    Act_Admin.

    Si No

    Act_proc_pago (enviando el código de la cesta)

    Hasta que Nick y contraseña sean correctos

    Cerrar B.D. Clientes

    FIN

    1.3._ proc_pago

    Precondición: Recibe un código de cesta

    (En este procedimiento el sistema nos muestra los datos del pedido y los datos personales y si lo aceptamos nos pide un numero de tarjeta de crédito correspondiente a una cuenta de la cual se realiza el código del pedido)

    INICIO

    Abrir B.D. Cesta

    Obtener Cesta con el código sea igual al de entrada

    Obtener productos relacionados con la Cesta y mostrarlos por pantalla

    Cerrar B.D. Cesta

    Esperar confirmación del cliente

    Abrir B.D Cliente

    Obtener el código de cliente a partir de la Cesta

    Mostrar d_personales de dicho cliente

    Esperar confirmación del cliente

    Repetir

    Mostrar p_pago

    Obtener pago

    Calcular el importe total del pedido

    Enviar Validación Tarjeta

    Obtener tarjeta_Valida

    Si (tarjeta_Valida =true) Entonces

    Actualizar la B.D productos restando al stock de cada producto que aparece en el pedido_c el numero de unidades correspondientes

    Hasta que (tarjeta_valida = true)

    FIN

    2.1_ Menu_Admin

    (Este proceso nos muestra un menú y dependiendo de lo que se seleccione activa un proceso u otro)

    INICIO

    Mostrar Menu_A

    Obtener Selección

    En el Caso de que Selección Sea:

    gestión de Clientes: Act_Gestion_Clientes

    gestión de productos: Act_Gestion_productos.

    FIN

    2.2_ Gestion_Clientes

    (Este proceso no muestra un formulario para poner un Nick y dependiendo de si esta o no crea un nuevo cliente o lo modifica)

    INICIO

    Mostrar p_cliente

    Obtener Crear_Modificar_Cliente

    Abrir B.D.Clientes

    Si (Nick esta en la B.D. Clientes) Entonces

    Mostrar Cliente

    Actualizar B.D cliente con los datos obtenidos en Crear_modificar_cliente

    Si No

    Crear Cliente con los datos obtenidos

    Mostrar Cliente

    Cerrar B.D. clientes

    FIN

  • _ Inicio_Gestor

  • (Nos muestra una pantalla con el estado del stock y dependiendo la opción escogida lanza un proceso u otro)

    INICIO

    Abrir B.D productos

    Mostrar Estado_Stock

    Obtener Selección

    Cerrar B.D productos

    En el Caso de que selección Sea:

    Hacer Pedido: Act_Pedir_productos (pasando al siguiente proceso el código de los productos pedidos y sus unidades)

    Gestión: Act_Alta_Baja_productos

    FIN

  • _ hacer_pedido

  • Precondición: recibe unos pares de datos (codigo_p y numero)

    (Este proceso agrupa los productos por proveedores y manda a cada uno un e-mail con el pedido)

    INICIO

    Abrir B.D. Productos

    Repetir

    Leer registro de producto (de la B.D)

    Si (codigo_p = codigo_p_recibido) Entonces

    Guardar reg en Pedidos

    Hasta que no queden registros en la base de datos

    Agrupar los registros de Pedidos por el proveedor de cada producto

    Enviar a cada proveedor un pedido_p con los registros correspondientes a este

    Almacenar cada pedido_p enviado en la B.D

    Cerrar_B.D. productos

    FIN

    2.3.3_ Alta baja producto

    (Este proceso no muestra un formulario para poner unos datos del producto y dependiendo de si esta o no crea un nuevo cliente o lo modifica)

    INICIO

    Obtener Crear_Modificar_producto

    Abrir B.D.productos

    Si (Nick esta en la B.D. productos) Entonces

    Mostrar producto

    Actualizar B.D productos con los datos obtenidos en Crear_modificar_producto

    Si No

    Crear producto con los datos obtenidos

    Mostrar producto

    Cerrar B.D. productos

    FIN

    Esquema de la Base de Datos

    Glosario del Esquema de la Base de Datos:

  • Codigo_p (identificador principal) (numero entero)

  • Nombre (String)

  • Precio (numero)

  • Descripción (texto)

  • Stock (numero)

  • Foto (archivo binario)

  • Umbral (numero)

  • Oferta (boolean)

  • Numero pedido (numero)(identificador principal)

  • Fecha (date)

  • Numero unidades (numero)

  • Codigo_g (numero)(identificador principal)

  • Nombre_g (String)

  • Codigo_proveedor (identificador principal)

  • ñ. Nombre_p (string)

    o. NIF (numero)

    p. E-mail (string)

    q. Nº de ejemplares (numero)

    r. Codigo_c (numero)(identificador principal)

    s. Nick (String) (identificador principal)

    t. Contraseña (String).

    u. DNI (numero)

    v. dirección (texto)

    w. Nombre (String)

    x. Correo electrónico


    DISEÑO ARQUITECTONICO


    ESPECIFICACION DE CADA MODULO

    Selección de producto

    Este modulo se compone de un conjunto de ventanas que tendrán enlaces entre si para pasar de una a otra. La función de estas ventanas es mostrar al cliente los distintos productos que se pueden comprar. Este modulo tan solo consta de un proceso y según el dato que se introduzca mostrará unos productos o otros.

    INICIO

    Abrir B.D productos

    En El Caso de que Parámetro de entrada Sea:

    Nulo: (pan_inicial)

    Inicio

    Repetir

    Leer registro de producto

    Si (esta en oferta) Entonces

    Guardar registro en Ofertados

    Hasta que no halla mas registros en la B.D

    Mostrar el nombre u el precio de los productos que están en ofertados.

    Mostrar diferente enlaces.

    Fin

    Codigo_g : (pan_grupo)

    Inicio

    Repetir

    Leer registro de producto

    Si (su código es = código de grupo) Entonces

    Guardar registro en Grupo

    Hasta que no halla mas registros en la B.D

    Mostrar el nombre u el precio de los productos que están en Grupo.

    Mostrar diferente enlaces.

    Fin

    Codigo_p (pan_producto)

    Inicio

    Mostrar datos del registro cuyo código de producto coincide con el de entrada.

    Mostrar los diferentes enlaces.

    Fin

    Codigo_p y codigo_cesta (pan_cesta)

    Inicio

    Si (el codigo_cesta es 0 (código por defecto)) Entonces

    Asignamos a esta sesión un numero de cesta siguiente al ultimo

    Si (el codigo_p no es 0 (código por defecto)) Entonces

    Enlazamos el producto con la cesta dados

    Mostramos todos los productos que componen la cesta con el numero dado.

    Mostramos los diferentes enlaces.

    Fin

    Cerrar B.D

    FIN

    Modulo pago producto

    Este modulo consiste en que recibe una cesta de la compra (un conjunto de productos) y se pide una tarjeta de crédito para cobrarse de ella el importe de la cesta.

    Pago producto

    Entrada: código de Cesta (leer cesta), Nº de tarjeta(leer pago)

    INICIO

    Abrir B.D productos

    Agrupar los productos que estén en la cesta y sumar los precios de estos por el numero de ejemplares en la cesta y guardarlo en una variable: Importe.

    Cerrar B.D. productos

    Repetir

    Obtenemos un numero de tarjeta

    Enviamos al banco el numero de tarjeta el Importe (calculado antes) y la identificación del cliente y esperamos respuesta del banco.

    Si (respuesta es valida) Entonces

    Escribimos mensaje Correcto

    Si No

    Escribimos mensaje de Error

    Hasta que la respuesta sea valida

    FIN

    Modulo de la gestión de la Base de Datos

    Entrada: El Nick o código identificativo de la relación de datos que queremos modificar

    Acción: Modifica la correspondiente Tupla de la base de Datos de la forma deseada Creándola o borrándola.

    INICIO

    Obtener identificador

    Si (identificador es numérico) Entonces

    Abrir B.D productos

    Si No

    Abrir B.D. Clientes

    Si (identificador existe en la base de datos) Entonces

    Mostrar Datos del registro con dicho identificador

    Actualizar estos datos con otros obtenidos manualmente por el administrador

    Si No

    Crear Nuevo registro don los datos obtenidos manualmente por el administrador

    Mostrar Datos del Registro con dicho identificador

    Si (identificador es numérico) Entonces

    Cerrar B.D productos

    Si No

    Cerrar B.D. Clientes

    FIN

    Modulo gestión Pedido

    Este modulo gestiona la opciones que se puede hacer de un pedido y envía este pedido vía correo electrónico.

    Entrada: artículos y nº de ellos que se quieren pedir

    Salida: e-mail a cada proveedor con su pedido correspondiente

    INICIO

    Abrir B.D productos

    Agrupar los artículos que aparezcan en la entrada y tengan el mismo proveedor en registros con el nombre de cada proveedor y con el numero de unidades

    Enviar a cada proveedor un e-mail con los artículos y el numero de unidades a pedir de el grupo formado para dicho proveedor.

    FIN

    29

    Pedido_c

    Cliente

    Selección

    Producto

    Crear_modificar_producto

    Selección

    P_cliente

    Producto

    Estado_stockl

    Grupo

    Crear_modif.icar_Cliente

    Pedido_p

    Tarjeta Valida

    Validación Tarjeta

    P_inicial

    Consulta producto

    pago

    P_pago

    D_personales

    login

    P_login

    Confirmacion

    Cesta

    1

    Proc_Cliente

    Administrador

    Proveedor

    Banco

    WEB_ Librería_BETA

    Cliente

    P_inicial

    Selección

    Consulta_producto

    Grupo

    Cesta

    P_login

    Confirmacion

    login

    Pedido_c

    D_personales

    P_pago

    pago

    Validación_tarjeta

    tarjeta

    2

    Proc_Admin

    Clientes

    productos

    Act_Admin

    Estado_Stock

    producto

    P_cliente

    Crear_Modificar_cliente

    Selección

    Mostrar_modificar_producto

    Estado_Stock

    Cliente

    Producto

    Pedido_p

    Tarjeta_Valida

    Validar_tarjeta

    pago

    P_pago

    Datos personales

    Pedido_c

    Act_proc_pago

    productos

    Cestas

    Clientes

    Act_Admin

    login

    P_login

    1.3

    proc_pago

    Act_entrada

    1.2

    Entrada

    Cesta

    Confirmacion

    Grupo

    Consulta_Producto

    Seleccionl

    P_inicilal

    1.1

    producto

    2.1

    Menu_Admin

    2.2

    Gestion_Clientes

    Act_Admin Menu_A Selección

    Menu_A

    Act_Gestion_Cliente

    Clientes

    Crear_Modificar_Cliente

    P_Cliente

    Cliente

    2.3

    Gestion_Productos

    Act_Gestion_Productos

    Productos

    Estado _Stock

    Selección

    Pedido_p

    Crear_Modificar_Producto

    Producto

    1.1.1

    pan_inicial

    1.1.3

    pan_Grupo

    1.1.2

    pant_producto

    1.1.4

    pan_Cesta

    Productos

    Act_pan_inicial

    Act_pan_inicial

    Act_pan_inicial

    Act_pan_Cesta

    Act_pan_Grupo

    Act_pan_producto

    Act_pan_producto

    Añadir_pan_Cesta

    Act_Entrada

    Crear_Modificar_Producto

    Producto

    Pedido_p

    productos

    Estado_Stock Selección

    2.3.3

    Alta_baja_Producto

    2.3.2

    Hacer_pedido

    2.3.1

    Inicio_Gestor

    P_inicial

    Selección

    Consulta_producto

    Selección

    Selección

    Cesta

    Selección

    Act_Alta_Baja_Producto

    Act_hacer_pedido

    PRODUCTO

    PEDIDO

    GRUPO

    PROVEEDOR

    CESTA

    CLIENTE

    Se compone de

    Provee

    de

    pertenece

    Se compone de

    Se relaciona con:

    a

    b

    c

    d

    f

    e

    g

    h

    i

    j

    k

    i

    l

    m

    n

    ñ

    o

    p

    q

    r

    s

    t

    u

    v

    w

    x

    1:N

    1:N

    1:N

    N:M

    N:M

    Enviar

    Pedido

    Leer

    pedido

    Escribir Datos

    Leer

    Datos

    Escribir cesta valida

    Leer

    Pago

    Leer

    Cesta

    Leer prod

    seleccionado

    Mostrar

    Productos

    Seleccionar

    Opción

    Seleccionar

    Opción

    GESTION DE LA BASE DE DATOS

    GESTION PEDIDO

    GESTION PRODUCTO

    GESTION CLIENTES

    PAGO PRODUCTO

    SELECCIÓN PRODUCTO

    GESTION

    COMPRA

    Seleccionar

    Modo

    GESTION CENTRAL LIBRERIA