You are on page 1of 139

UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA ESCUELA DE FORMACION PROFESIONAL DE MINAS, GEOLOGIA Y CIVIL FACULTAD DE INGENIERIA DE SISTEMAS

SISTEMA WEB PARA LA COMERCIALIZACIN DE ARTESANA DE HUAMANGA SHOSAKO NAGASECON TECNOLOGIA CRM GRUPO 03 DOCENTE CURSO INTEGRANTES : MSc. Ing. EFRAN ELAS PORRAS FLORES : SISTEMAS DE INFORMACION II : AGUILAR HUAMAN, Vctor HUAMANRIMACHI HUAMAN, Basilio HUAMAN SULCA, Richard Yony MENDOZA REVOLLAR, Frank HUAYCHA ALLCCA, Rubn RIMACHI HUARIPAUCAR, Gloria AYACUCHO PERU 2011

CONTENIDO
CAPITULO I Pag. ANLISIS DE REQUISITOS I.TABLA DE REQUISITOS FUNCIONALES Y NO FUNCIONALES GLOSARIO DE TERMINOS 03

04 05, 06 07

PAQUETE DE REQUISITOS FUNCIONALES Y NO FUNCIONALES. Modelo de dominio inicial CAPITULO II MODELADO DE CASOS DE USO REVISION DEL MODELO DE DOMINIO . . ..

08 14 23

PRIMER BORRADOR DE CASOS DE USO CAPITULO III REVISION DE LOS REQUISITOS (primer intento) Prototipos de interfaz grfica (primer intento) DISEO PRELIMINAR ..

29 34 38 40

PRACTICA DEL DISEO PRELIMINAR- ANALISIS DE ROBUSTEZ

MODELO DE DOMINIO ACTUALIZADO (segundo intento) 47 REVISION DEL DISEO PRELIMINAR CAPTULO IV REVISIN DE REQUISITOS (segundo intento) REVISION DE MODELO DE DOMINIO REVISION DE INTERFAZ GRAFICA 2 .. .. .. 49 50 51 48

REVISION DE CASO DE USO Y BORRADOR

..

57

CAPITULO V DISEO PRELIMINAR ... 75 76

REVISION DE DIAGRAMA DE ROBUSTEZ CAPITULO VI ARQUITECTURA TECNICA CAPITULO VII DISEO EN LA PRCTICA DIAGRAMA SECUENCIA .. .

84

86 89 94

DIAGRAMA DE CLASES ACTUALIZADO CAPITULO VIII IMPLEMENTACION ...

95 95 102 105 106 109 110 120 121 127 136

REVISION DE INTERFAZ GRAFICA CODIGO WEB MENU PRINCIPAL BEAN DE CLIENTE DAOCliente SERVLET CLIENTE

.. .. ..

CODIGO PARA CARGAR CESTA O CARRITO DE COMPRAS.. LISTAR PEDIDO COMPRA FINALIZADA DESCRIPCION DE PRODUCTO DATOS DEL USUARIO ANEXO RESUMEN .. .. . .

139 138

TECNOLOGIA: CRM (CUSTOMER RELATIONSHIP MANAGEMENT)

CAPITULO I
ANLISIS DE REQUISITOS I. TABLA DE REQUISITOS FUNCIONALES Y NO FUNCIONALES: REQUISITOS FUNCIONALES:
Nro. REQ

01

El sistema ser capaz de mostrar el men principal de nuestra artesana al cliente (actor directo).

02 03 04 05 06 07

El administrador debe ser capaz de crear una cuenta para el usuario El sistema nos muestra la barra de opciones (quienes somos, productos) El sistema debe mostrar el cdigo de cuenta a pagar en el tipo de banco El sistema nos muestra la opcin de registro de usuario. El sistema ser capaz de mostrar la imagen de los productos clasificados El sistema ser capaz de mostrar los tipos de producto con detalles (artesana, hojalatera, textilera, etc.)

08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 4

El sistema ser capaz de mostrar la descripcin del producto. El sistema ser capaz de mostrar el precio del producto. El sistema ser capaz de mostrar el tipo de moneda. El sistema ser capaz de mostrar el tipo y la cantidad que solicita. El cliente debe ser capaz de crear una cuenta cliente. El administrador debe tener una cuenta en el sistema. El sistema tiene que ser capaz de registrar y almacenar los datos del cliente El administrador debe ser capaz de actualizar el producto artesanal. El administrador ser capaz de generar reporte de venta, reporte de clientes y otros. El administrador definir la forma de entrega del producto al cliente. El administrador ser capaz de dar plazo de entrega de productos al cliente El sistema ser capaz de mostrar la proforma de la compra realizada. El administrador ser capaz de verificar la transaccin. El sistema debe mostrar el tipo de tarjeta de la transaccin. El sistema ser capaz de mostrar los clientes potenciales. El sistema ser capaz de mostrar el cdigo de oferta por puntos acumulados.

24 25 26 27 28

El sistema debe mostrar la informacin de la empresa. El sistema debe ser capaz de gestionar productos y ofertas lanzadas. El sistema debe ser capaz de gestionar clientes. El administrador debe ser capaz de realizar la proforma ante la venta a un cliente. El sistema permitir al vendedor y cliente realizar la modificacin de su perfil as como tambin la eliminacin de cuenta.

29

El Sistema ser capaz de permitir a los clientes realizar consultas y pedidos al vendedor.

30

El Sistema ser capaz de permitir al vendedor realizar consultas al almacn para y luego hacer pedidos al proveedor (actor indirecto).

31

El Sistema debe ser capaz de registrar nuevos productos en la lista de productos existente.

32

El administrador puede registrar una boleta, factura por la venta de la artesana. REQUISITOS NO FUNCIONALES:

33 34

El sistema dar las ventajas y beneficios de comprar a travs del sitio web. El sistema debe presentar interfaces que hagan posible que el cliente pueda elegir y comprar con comodidad.

35

Brindar todas las posibilidades de pago (on-line con tarjeta de crdito o mediante depsitos bancarios).

36 37

El sistema deber mantener un interfaz amigable y segura. El sistema deber ser gil y ligero.

GLOSARIO DE TERMINOS: Cliente registrado Men principal barra de opciones Cliente nuevo Usuario Administrador Vendedor Proveedor Producto Consulta 5 Cantidad Cuenta Banco Comprobante de pago Documento Oferta Perfil Empresa Almacenar Boleta

Factura Precio Moneda Actor directo Actor indirecto Prod. Clasificados Descripcin

Actualizar Gestionar Entrega (reparto) Proforma Transaccin Tarjeta Detalle

PAQUETE DE REQUISITOS FUNCIONALES Y NO FUNCIONALES

PAQUETE DE REQUISITOS NO FUNCIONALES:

MODELO DE DOMINIO INICIAL

CAPTULO II
MODELADO DE CASOS DE USO
LISTA DE CASOS DE USO: NRO. C.U 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 CASOS DE USO Iniciar sesin Crear cuenta usuario Solicitar cuenta usuario Restablecer cuenta usuario Realizar bsqueda producto artesanal Mostrar precio producto Realizar pedido producto artesanal Cancelar cuenta usuario Realizar mantenimiento producto Registrar venta productos Modificar perfil cliente Eliminar cuenta cliente Establecer reglamentos promocin Modificar producto Eliminar producto Entregar producto Modificar descuento Emitir documento de venta Mantener clientes Mantener ventas Acceder sistema Generar reporte productos

23 24 25 26 27 28 29 30 31 32 33

Gestionar cuenta usuario Emitir proforma Mantener proforma Registrar comprobante pago Mantener comprobante pago. Registrar almacn Actualizar producto Realizar consulta Realizar pedido Emitir reporte venta Emitir reporte cliente

II. DENTIFICACION DE CASOS DE USO A PARTIR DE LOS REQUERIMIENTOS FUNCIONALES

CASOS DE USO

REQUISITOS FUNCIONALES El sistema ser capaz de mostrar el men principal de nuestra

CU 1. Iniciar sesin

artesana al cliente. El sistema debe mostrar la informacin de la empresa( men principal) El administrador debe ser capaz de crear una cuenta para el

CU 2. Crear cuenta usuario

usuario El sistema debe mostrar una cuenta para el usuario. El cliente debe ser capaz de crear una cuenta cliente. El sistema nos muestra la barra de opciones (quienes somos,

CU 3. Solicitar cuenta usuario

productos, etc.) El sistema debe mostrar la informacin de la empresa.

CU 4. Restablecer cuenta usuario

El sistema nos muestra la opcin de registro de usuario.

10

CU 5. Realizar bsqueda producto artesanal

El sistema ser capaz de mostrar la descripcin del producto. El sistema ser capaz de mostrar los tipos de (artesana, hojalatera, textilera, etc.) producto

CU 6. Mostrar precio producto CU 7. Realizar pedido producto artesanal

El sistema ser capaz de mostrar el precio del producto. El sistema ser capaz de mostrar el tipo y la cantidad que solicita. El sistema ser capaz de mostrar el tipo de moneda.

CU 8. Cancelar cuenta usuario

El sistema ser capaz de mostrar la imagen de los productos clasificados.

CU 9. Realizar mantenimiento producto CU 10. Registrar venta productos

El administrador debe tener una cuenta en el sistema.

El sistema tiene que ser capaz de registrar y almacenar los datos del cliente.

CU 11. Modificar perfil cliente CU 12. Eliminar cuenta cliente

El sistema debe ser capaz de gestionar clientes. El sistema permitir al cliente realizar la modificacin de su perfil as como tambin la eliminacin de su cuenta.

11

CU 13. Establecer reglamentos promocin CU 14. Modificar producto CU 15. Eliminar producto CU 16. Entregar producto CU 17. Modificar descuento CU 18. Emitir documento de venta CU 19. Mantener clientes CU 20. Mantener ventas

El administrador debe ser capaz de actualizar el producto artesanal.

El sistema debe ser capaz de gestionar productos.

El administrador definir la forma de entrega del producto al cliente. El administrador ser capaz de dar plazo de entrega de productos al cliente El sistema ser capaz de mostrar la proforma de la compra realizada. El administrador ser capaz de verificar la transaccin.

El sistema debe mostrar el tipo de tarjeta de la transaccin.

12

CU 21. Acceder sistema

El sistema debe mostrar el cdigo de cuenta a pagar en el tipo de banco

CU 22. Generar reporte productos CU 23. Gestionar cuenta usuario

El sistema ser capaz de mostrar los clientes potenciales.

El sistema ser capaz de mostrar el cdigo de oferta por puntos acumulados.

CU 24. Emitir proforma CU 25. Mantener proforma El administrador debe ser capaz de realizar la proforma ante la venta a un cliente

CU 26. Registrar comprobante pago CU 27. Mantener comprobante pago El administrador puede registrar comprobante de pago por producto.

CU 28. Registrar almacn CU 29. Actualizar producto

El Sistema ser capaz de permitir al vendedor realizar consultas al almacn para hacer pedidos al proveedor. El Sistema debe ser capaz de registrar nuevos productos en la lista de productos existente.

CU 30. Realizar consulta CU 31. Realizar pedido CU32. Emitir reporte venta CU 33. Emitir reporte cliente

El Sistema ser capaz de permitir a los clientes realizar consultas y pedidos al vendedor.

El administrador ser capaz de generar reporte de venta, reporte de clientes y otros.

13

REVISION DEL MODELO DE DOMINIO

14

IDENTIFICACION DE ACTORES A PARTIR DE LOS REQUERIMIENTOS FUNCIONALES: 1. Administrador 2. Usuario 3. Cliente 3.1 Cliente nuevo 3.2 Cliente registrado 4. Proveedor

Figura: Paquete de actores.

uc Use Case Diagram 1

cliente nuev o

cliente registrado

Prov eedor

Cliente

Administrador

Usuario

15

EMPAQUETADO DE CASOS DE USO:

Figura 1 Paquete de gestin de administracin.


uc Administrador

Gestion de Cuentas

gestion de producto

gestion de categorias

Administrador (from ACTORES) control de acceso

v alidar producto

Figura 2Diagrama de casos de uso para el paquete Gestin de Administracin.

16

Figura 3 Paquete de gestin de producto.


uc Use Case Diagram 2

ingresar producto artesania

elimina producto artesania

modifica producto artesania Administrador (from ACTORES)

actualiza producto artesania

Figura4 Diagrama de casos de uso para el paquete Producto.

Figura 5 Paquete de gestin de Clientes.

17

uc

Acceder Pagina Artesania

Realiza pedido producto

crear cuenta

(from GESTION DE CUENTAS) Selecciona Producto

Cliente (from ACTORES)

Realiza busqueda de productos

Realiza consulta

Figura 6Diagrama de casos de uso para el paquete Clientes.

Figura 7 Paquete de gestin de Documentos.

18

uc Comprobante

Emite Comprobante

Emite proforma

Emite factura Usuario (from ACTORES)

Emite guia de remision

Figura 8 Diagrama de casos de uso para el paquete Comprobante.

Figura 9 Paquete de Gestin de cuentas.


uc Cliente

Crear cuenta

Cancelar cuenta administrador (from Actores) Restablecer contrasea Cliente (from Actores) Cambiar contrasea

Figura 10 Diagrama de casos de uso para el paquete Gestin de cuentas.

19

Solicitar cuenta usuario

Figura 11 Paquete de gestin de Gestin de Categora.

uc CATEGORIA

agregar categoria

buscar categoria

modificar categoria

Administrador (from ACTORES)

eliminar categoria

Figura 12 Diagrama de casos de uso para el paquete Preferencias.

Figura 13 Paquete de Gestin de CRM.

20

uc Actores

Establece reglamento de promocion

Administrador (from ACTORES)

Etiqueta codigo de promocion de los productos

Modificar descuento

cliente registrado (from ACTORES) Registrar descuento

Figura 14 Diagrama de casos de uso para el paquete CRM.

Figura 15 Paquete de gestin de Gestin de Ventas.

uc COMP...

consultar producto

Figura 16 Diagrama de casos de uso para el paquete Compra.


comprar producto

agregar lista producto

Administrador (from ACTORES) modificar lista producto

21

eliminar lista producto

EMPAQUETADO DE LOS REQUISITOS FUNCIONALES REVISADO:

EMPAQUETADO DE LOS REQUISITOS NO FUNCIONALES:

22

PRIMER BORRADOR DE CASOS DE USO: CASOS DE USO CURSO BASICO CU 1. Iniciar sesin El usuario (Cliente) ingresa el URL del sistema. El sistema muestra la Pgina de Bienvenida principal. El usuario ingresa sus datos en dicha cuenta y muestra la Pgina de cuenta del usuario. CURSO ALTERNO Nombre de usuario no existe: El sistema muestra un mensaje que dice "Nombre de usuario no existe". El sistema muestra un mensaje "Contrasea incorrecta". DESCRIPCION

CURSO BASICO CU 2. Crear cuenta usuario 1) El actor (cliente) accede al men Principal y hace un click en registrarse, el sistema le muestra el interfaz registrar cliente con los datos a llenar del cliente 2) El actor ingresa los datos cliente (Nombre, apellidos, telfono, pas, ciudad, correo y password) en el interfaz registro cliente, el sistema valida la informacin haciendo click en siguiente

CUESO ALTERNO

1) el sistema le muestra un mensaje de llenar todos los campos en datos del cliente

CURSO BASICO CU 3. Solicitar cuenta usuario El sistema muestra la Pagina Trminos y condiciones. El sistema muestra al usuario selecciona la eleccin de cuenta para Crear Cuenta. El sistema muestra la Pgina de Creacin de Nueva Cuenta. El usuario ingresa todos los datos solicitados.

23

CURSO ALTERNO La cuenta ya existe: El sistema muestra un mensaje "El nombre de usuario ya existe " en la Pgina de Creacin de Nueva Cuenta. Datos incorrectos: El sistema muestra un mensaje "Datos incorrectos" en la Pgina de Creacin de Nueva Cuenta, sealando los campos incorrectos.

CU 4. Restablecer cuenta usuario

CURSO BASICO En la pgina acceso de cuenta el usuario se realiza acciones en olvide contrasea. El sistema le muestra la Pagina Restaurar Contrasea. El usuario ingresa los datos requeridos y hace clic en el botn enviar. El sistema verifica en usuario si existe el E-mail correspondiente a dicha cuenta, recupera el nombre de la cuenta y contrasea; y enva un mensaje a dicho E-mail con su nombre y contrasea de su cuenta. El sistema muestra la Pgina de confirmacin de restauracin.

CURSO ALTERNO E-mail no corresponde al usuario: El sistema muestra un mensaje "Email no encontrado" en la Pagina Restaurar Contrasea.

CURSO BSICO: CU 5. Realizar bsqueda producto artesanal Desde la Pagina de Productos el administrador hace clic en el botn Buscar, el Sistema muestra la Pgina Buscar productos, El administrador ingresa el nombre del producto a buscar. El sistema recupera la informacin del producto buscado desde Detalle producto y le muestra el resultado en la misma pgina. CURSO ALTERNO: Producto no encontrado: El sistema muestra un mensaje El

producto no encontrado y vuelve a mostrar la Pgina de Productos.

24

CU. 6 Control de acceso

CURSO BASICO:

1) El administrador ingresa a la interfaz de acceso al sistema. 2) El administrador ingresa el nombre de usuario y su contrasea. 3) El sistema valida al usuario y su contrasea en Cuenta 4) El sistema muestra un mensaje de confirmacin. 5) A continuacin muestra el men de la interfaz con un mensaje de bienvenida.

CURSO ALTERNO:

El sistema muestra un mensaje de error indicando que la cuenta y usuario no existe. CURSO BASICO: El Usuario hace clic en el botn Productos en la Pgina de Administrar ventas, el sistema recupera la informacin de Productos vendidos y le muestra en la Pgina de Productos, El Usuario ingresa los datos solicitados por el Sistema del Producto y luego Agregar, El Sistema verifica si los datos son correctos y no se duplican en la Base de Datos e inmediatamente actualiza. CU 10. Registrar venta productos CURSO ALTERNO. Datos Incorrectos: El Usuario ha ingresado datos incorrectos, El sistema muestra un mensaje Datos Incorrectos y luego direcciona a la Pgina Modificar Productos. Ya existe Producto: El Administrador ha ingresado datos duplicados, El sistema muestra un mensaje El Producto ya existe y luego direcciona a la Pgina de Productos.

CU 13. Realiza consulta

CURSO BASICO:

1) El usuario (cliente) accede al interfaz de men principal y hace click en nuevo registro y el sistema le muestra el 25

interfaz de registro cliente 2) El usuario se registra sus datos(nombre ,apellido, pas , ciudad, correo , password) en el interfaz registro de clientes CURSO ALTERNO: 1) El sistema le manda un mensaje de error si no registra los campos de datos del cliente 2) El sistema le manda un mensaje de la confirmacin de registro de datos con xito CU 14. Modificar producto CURSO BASICO 1) El usuario cliquea sobre botn modificar productos en la Pgina de men el sistema le muestra la Pgina de administrar productos con todos los detalles de esa oferta en donde el usuario podr consultar e ingresar todas las modificaciones necesarias, el sistema validar los datos ingresados y se actualizar productos con sus respectivas detalles. CURSO ALTERNO 2) Datos incorrectos: El Sistema muestra un mensaje de Datos incorrectos. 3) Usuario no existe: El sistema muestra un mensaje de Usuario no existe.

CU17. Comprar producto

CURSO BASICO: 1) el usuario (cliente) realiza la gestin de proceso de compra (visualiza el producto, escoge el producto y decide comprar producto artesana) en el interfaz producto dependiendo de la verificacin del stock del producto en producto 2) El usuario dentro del interfaz producto hace click en continuar y el sistema le muestra el interfaz lista de productos seleccionado donde se visualiza los productos

seleccionados(nombre del producto, cantidad precio y total) 3) el usuario busca la oferta y escoge la oferta dentro del interfaz

26

lista de productos seleccionados 4) El usuario dentro del interfaz de lista de productos seleccionados hace click en continuar y el sistema le muestra el interfaz registro de clientes 5) dentro del interfaz registro de cliente existe la obsion de nuevo cliente y cliente registrado, el usuario se registra como cliente nuevo 6) El usuario dentro del interfaz registro de cliente hace click en continuar y el sistema le muestra el interfaz ubicacin y datos del cliente donde registra datos segundario 7) El usuario dentro del interfaz de ubicacin y datos del cliente hace click en continuar y el sistema le muestra el interfaz documentos (emitir factura y manteniendo de proforma) 8) El usuario dentro del interfaz de documento hace click en continuar y el sistema le muestra el interfaz de transaccin donde ingresa los datos de la tarjeta CURSO ALTERNO:

1) El sistema le manda un mensaje si el stock del producto sobre pasa 2) El sistema muestra un mensaje de error indicando que la cuenta y usuario no existe. 3) El sistema le enviara un mensaje con la observacin que debe llenar todos los campos de datos del cliente nuevo 4) El sistema manda un mensaje de error al ingresar incorrectamente los datos de la tarjeta

CU 30. Realizar consulta

CURSO BASICO:

El usuario (cliente) accede en el men principal artesana y el sistema le muestra el interfaz nuestros producto donde se en cuenta las categoras productos El usuario (cliente) escoge categora productos y el sistema le muestra interfaz producto segn la categora. 27

El usuario escoge producto, busca producto en el interfaz productos El usuario dentro del interfaz producto hace un click en la descripcin del producto y el sistema le muestra el interfaz de descripcin del producto CURSO ALTERNO: El sistema muestra error al descripcin de producto al no existir CU 31. Realizar pedido CURSO BASICO Desde la Interfaz de Productos el usuario realiza la accin de

pedidos, el sistema muestra la pgina de pedidos con todos sus campos necesarios, para luego ser llenados por el usuario donde el sistema muestra el lugar de ubicacin del producto con su respectivo destino a donde sern enviados.

CURSO ALTERNO No hay productos en stock: el sistema muestra un producto pedido no disponible mensaje

28

CAPTULO III
REVISION DE REQUISITOS (primer intento)

REVISION DE LOS REQUISITOS FUNCIONALES

Nro. REQ.

REQUISITOS FUNCIONALES

01 El sistema deber permitir realizar descuentos a los

clientes(potenciales, asiduos) 02 El sistema deber de realizar ofertas de productos de preferencia al cliente 03 El sistema permitir abonar puntos al cliente para realizar sorteos

04 05

El sistema debe ser capaz de reconocer las preferencias del cliente El sistema deber permitir al usuario (administrador, cliente, vendedor) el registro en lnea.

06

El sistema mostrara la informacin de las caractersticas del producto al cliente

07

El sistema permitir al comercializador realizar cambios en la informacin de los productos

08

El sistema segn sea el tipo de usuario permitir el restringir las opciones por cuestin de seguridad

09

El cliente podr calificar al comercializador segn sea la atencin que a tenido del mismo.

10

El

cliente

ser

capaz

de

visualizar

la

calificacin

del

comercializador. 11 El usuario(cliente , comercializador) deben ser capaces de realizar


29

una solicitud de creacin de cuenta al sistema 12

El Sistema ser capaz de permitir a los clientes realizar consultas y pedidos al comercializador.

13

El Sistema debe ser capaz de agregar nuevos productos en la lista de productos existente.

14

El comercializador podr tener las opciones para mantener sus productos y sus ofertas lanzadas.

15

El sistema ser capaz mostrar a los clientes, los productos con sus respectivos detalles del producto.

16

El sistema ser capaz de mostrar la informacin de los productos comercializados, clientes y otros al comercializador.

17

El sistema permitir al usuario (administrador, comercializador y cliente) realizar la gestin de sus cuentas.

18

El sistema ser capaz de mostrar las opciones para realizar consultas diversas a los usuarios.

19

El sistema ser capaz de mostrar al comercializador la informacin de la transaccin.

20

El cliente ser capaz de realizar la compra de manera entretenida mediante el uso de un lista de productos.

ms

21

El sistema ser capaz de mostrar los productos clasificados al cliente

22

El sistema ser capaz de mostrar el tipo y la cantidad del producto que solicita.

23

El administrador debe tener una cuenta en el sistema con privilegios necesarios.

30

24

El sistema tiene que ser capaz de registrar y almacenar los datos del cliente.

25 El sistema deber ser capaz de gestionar la informacin del producto artesanal. 26 El Comercializador ser capaz definir la forma de entrega del producto al cliente. 27 El Comercializador ser capaz asignar un plazo de entrega de productos al cliente 28 El Comercializador deber ser capaz de emitir la proforma ante la cotizacin del cliente para la venta de producto. 29 El Comerciante ser capaz de verificar la transaccin financiera con el cliente. 30 El sistema permitir realizar la transaccin financiera mediante diferentes formas (depsitos, tarjetas de crdito, dbito). 31 El sistema ser capaz de ofrecer la oferta adecuada de productos al cliente por puntos acumulados. 32 El sistema mostrara la informacin estadstica de cada cliente al comercializador 33 El sistema debe ser capaz de gestionar la informacin del clientes 34 El usuario podr contar con las ayudas necesarias para el correcto uso del sistema

31

35 El cliente ser capaz de realizar una cotizacin de productos que estn en la oferta del comercializador 36 El usuario podr realizar las recomendaciones, reclamos respecto al producto.

37

El comercializador podr obtener la informacin de las ventas

Lista de casos de uso revisado (primer intento) 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
32

Iniciar sesin Crear cuenta usuario Restablecer cuenta usuario Consultar producto Comprar producto Agregar carrito Modificar carrito Quitar carrito Hacer pedido. Verificar pedido Emitir proforma Registrar comprobante de pago Emitir cotizacin Emitir factura Emitir boleta Confirmar orden Controlar acceso administrador Gestionar cuentas administrador Gestionar cuentas cliente Gestionar categoras producto Agregar categoras producto Modificar categoras producto Quitar categoras producto Gestionar producto Ingresar producto Modificar producto Eliminar producto

28. 29. 30. 31. 32. 33. 34. 35. 36.

Validar pedidos Gestionar venta Mantener comprobante de pago Publicar oferta Mantener oferta Gestionar imagen producto Ingresar imagen producto Modificar imagen producto Eliminar imagen producto

33

PROTOTIPOS DE INTERFAZ GRAFICA


AQU SE MUESTRA LA INTERFAZ DE LA PGINA PRINCIPAL INICIAR SESIN:

SE MUESTRA LA INTERFAZ DE REALIZAR BSQUEDA PRODUCTO ARTESANAL:

34

LA INTERFAZ DE CREAR CUENTA USUARIO:

LA INTERFAZ MOSTRAR PRECIO PRODUCTO Y ESTABLECER OFERTA- PROMOCIN:

35

INTERFAZ DE REGISTRAR COMPROBANTE PAGO:

36

INTERFAZ DE EMITIR PROFORMA Y MANTENER PROFORMA:

37

DISEO PRELIMINAR TAREA Rescribir y el primer borrador de la descripcin de los casos de uso. ARTEFACTO TCNICA Observacin de Primer borrador de casos de uso refinado. operaciones del negocio. Realizacin evento/respuesta Diagramacin de la descripcin del caso de uso lnea por lnea. Identificacin de los objetos: Diagrama de robustez parcialmente completo. interfaz, control y entidad. Dibujar con los objetos (interfaz, control o entidad) los cursos alternos. Diferenciacin de diseo conceptual con diseo real. Compruebe el diagrama de robustez con el caso de uso y el Diagrama de robustez, modelo de dominio y descripcin de Inspeccin gramatical. Aplicacin de semntica y sintaxis gramatical y conceptual
Analista RESPONSABLES

Elaborar el anlisis y el diagrama de robustez.

modelo de dominio caso de uso actualizado. actualizados.

38

Comprobacin de los objetos de dominio y la terminologa de casos de uso con los objetos del diagrama de robustez.

4.2 PRACTICA DEL DISEO PRELIMINAR- ANALISIS DE ROBUSTEZ


DIAGRAMA DE ROBUSTEZ, CASO DE USO REALIZA CONSULTA:
analysis Realiza consulta Robustness

CURSO BASICO: El usuario (cliente) accede en el menu principal artesania y el sistema le muestra el interfaz nuestros producto donde se encuenta las categorias productos 2) El usuario (cliente) escoge categoria productos y el sistema le muestra interfaz producto segun la categoria. 3) El usuario escoge producto, busca producto en el interfaz productos 4) El usuario dentro del interfaz productohace un click en la descripcion del producto y el sistema le muestra el interfaz de descripcion del producto CURSO ALTERNO: 1) El sistema muestra error al descripcion de producto al no existir Descripcion de producto visualiso la descripcion del producto 1)

muestra categiras productos

categoria

menu principal artesania

accede

escoge categoria busca producto

Usuario (from ACTORES) interfaz producto escoge producto producto

descripcion no existe

39

DIAGRAMA DE ROBUSTEZ, CASO DE USO REALIZA NUEVO REGISTRO:


analysis muev o registro Robustne...

CURSO BASICO: 1) El usuario (cliente) accede al interfaz de menu pincipal y hace click en nuevo registro y el sistema le muestra el interfaz de registro cliente Eusuario se registra sus datos(nombre ,apellido, pais , ciudad, correo , password) en el interfaz registro de clientes Usuario (from ACTORES) CURSO ALTERNO: 1) El sistema le manda un mensaje de error si no registra los campos de datos del cliente El sistema le manda un mensaje de la confirmacion de registro de datos con existo interfaz registro de cliente

click interfaz menu Principal accede nuevo registro registro datos exitoso

2)

ingresa datos del cliente

cuenta_usuario

llenar los campos datos

2)

40

DIAGRAMA DE ROBUSTEZ, CASO DE USO COMPRAR PRODUCTO:


analysis comprar producto Robustness CURSO BASICO: 1) el usuari o (cl i ente) real i za l a sobre pasa stock gesti on de proceso de com pra producto (vi sual i za el producto, escoge el veri fi ca el stock del producto y deci de com prar producto producto artesani a) en el i nterfaz i nterfaz producto producto dependi ento de l a veri fi caci on del stock del producto en producto vi sual i za/escoge El usuari o dentro del i nterfaz vi sual i za producto producto hace cl i ck en conti nuar escogi do y el si stem a l e m uestra el i nterfaz busca oferta deci de com prar i nterfaz l i sta de l i sta de productos sel ecci onado productos sel eci onados donde se vi sual i za l os productos sel eci onados(nom bre del producto, canti dad preci o y total ) el usuari o busca l a oferta y Usuario escoge oferta escoge l a oferta dentro del (from ACTORES) error de cuenta y deci de com prar cl i ente regi strado i nterfaz l i sta de productos contrasea sel eci onados

producto

2)

oferta

3)

El usuari o dentro del i nterfaz de l i sta de productos sel eci onados hace cl i ck en conti nuar y el si stem a l e m uestra el i nterfaz regi stro de cl i entes 5) dentro del i nterfaz regi stro de cl i ente exi ste l a obsi on de nuevo cl i ente y cl i ente regi strado, el usuari o se regi stra com o cl i ente nuevo 6) El usuari o dentro del i nterfaz regi stro de cl i ente hace cl i ck en conti nuar y el si stem a l e m uestra el i nterfaz ubi caci on y datos del cl i ente donde regi stra datos segundari o 7) El usuari o dentro del i nterfaz de ubi caci on y datos del cl i ente hace cl i ck en conti nuar y el si stem a l e m uestra el i nterfaz ducum entos (em i ti r factura y m anteni ento de proform a) 8) El usuari o dentro del i nterfaz de docum ento hace cl i ck en conti nuar y el si stem a l e m uestra el i nterfaz de transacci on donde i ngresa l os datos de l a tarj eta CURSO ALTERNO: 1) El si stem a l e m anda un m ensaj e si el stock del producto sobre pasa El si stem a m uestra un m ensaj e de error i ndi cando que l a cuenta y usuari o no exi ste. El si stem a l e m adara un m esaj e con l a observaci on que debe l l enar todos l os cam pos de datos del cl i ente nuevo El si stem a m anda un m ensaj e de error al i ngresar i ncorrectam ente l os datos de l a tarj eta

4)

cuenta deci de com prar i nterfas regi stro de cl i ente l l enar todos l os cam pos deci de com prar cuenta_usuari o datos com o cl i ente nuevo

regi stra com o cl i ente nuevo

ubi caci on y datos del cl i ente

factura i ngresa datos segundari os em i ti r fatura tarj eta

Interfaz docum ento i nterfaz fransacci on i ngresa datos de l a tarj eta

error de i ngreso de datos de l a tarj eta

2)

3)

4)

41

DIAGRAMA DE ROBUSTEZ, CASO DE USO CONSULTAR PRODUCTO:


analysis consultar producto Robustness

CURSO BASICO: El usuario (cliente) hace click en el menu principal artesania y el sistema le muestra el interfaz nuestros producto donde se encuenta las categorias productos 2) El usuario (cliente) escoge categoria productos y el sistema le muestra interfaz producto segun la categoria. 3) El usuario escoge producto, busca producto y visualiza si hay productos en stock CURSO ALTERNO: 1) El sistema muestra error producto al no existir el producto en buscar producto el sistema muestra mensaje si sobre pasa el stock del producto 1)

muestra categiras productos

categoria

menu principal artesania hace click

busca producto

Usuario (from ACTORES) interfaz producto

mostrar error producto producto

2)

escoge producto

sobrepasa stock visualiza si hay producto en stock

DIAGRAMA DE ROBUSTEZ, CASO DE USO CONTROL DE ACCESO:


analysis control de acceso Robustness

CURSO BASICO: 1) El administrador ingresa a la interfaz de acceso al sistema . El administrador ingresa el nombre de usuario y su contrasea. El sistema valida al usuario y su contrasea en Cuenta El sistema muestra un mensaje de confirmacion. A continuacion muestra el menu de la interfaz con un mensaje de bienvenida.

2)

Usuario contrasea Interfaz acceso al sistema Gestion de administracion autorizados

Valida usuario y contrasea

3)

4)

Usuario contrasea Cuenta

5)

ok

CURSO ALTERNO: 1) El sistema muestra un mensaje de error indicando que la cuenta y usuario no existe. Administrador (from ACTORES)

Mostrar error usuario contrasea

Muestra menu prrincipal

42

DIAGRAMA DE ROBUSTEZ, CASO DE USO CREAR CUENTA:


analysis registra Cliente Robustness

CURSO BASICO 1) El actor (cliente) accede al menu Principal y hace un click en registrarse, el sistema le muestra el interfas registrar cliente con los datos a llenar del cliente El actor ingresa los datos cliente (Nombre, apellidos,telefono,pais, ciudad,correo y password) en el interfas registro cliente, el sistema valida la informacion haciendo click en siguiente Usuario (from ACTORES) 1) el sistema le muestra un mensaje de llenar todos los campos en datos del cliente

datos del cliente

cliente

2)

click registrar cliente

mensaje llenar todos los campos menu principal interfas registrarse cliente

CUESO ALTERNO

DIAGRAMA DE ROBUSTEZ, CASO DE USO ELIMINAR PRODUCTO:


analysis Iconix-Robustness

CURSO BASICO: El usuario (administrador) hace click en menu administrsr productos para selecionar producto 2) Selecciona categoria de productos para encontrar el producto deseado. 3) El usuario (administrador) hace click sobre eliminar producto 4) El sistema muestra un mensaje de confirmacion de eliminacion de producto CURSO ALTERNO: 1) El sistema muestra el mensaje de advertencia para confirmar la accion de eliminacion 1)

Menu administrar productos click

Seleccionar categoria

Seleccionar datos

Administrador (from ACTORES)

mensaje de advertencia

Producto

43

DIAGRAMA DE ROBUSTEZ, CASO DE USO INGRESAR PRODUCTO:


analysis Iconix-Robustness

CURSO BASICO El usuario( administrador) hace click en munu "Gestion producto", el sistema muestra la interfaz "ingreso de nuevos productos. 2) El usuario (Administrador) escoge categoria de productos. 3) Ingresa la descripcion , precio y stock del producto 4) Escoge un imagen adecuado. 5) Hace click en agregar, entonces el sistema muestra el producto agragado recientemente. CURSO ALTERNO 1) El sistema muestra un mensaje de la existencia de imagen 1) Producto

Menu gestion producto

agregar producto

hace click

Muestra el mensaje "ya existe imagen"

Buscar imagen

Imagen

Interfaz ingreso productos Administrador (from ACTORES) Categoria Mostrar categoria

44

DIAGRAMA DE ROBUSTEZ, CASO DE USO MODIFICAR PRODUCTO:


analysis Iconix-Robustness

CURSO BASICO 1) El usuario cliquea sobre botn modificar productos en la Pgina de men Gestion producto el sistema le muestra la Pgina de modificar productos con todos los detalles de esa oferta en donde el usuario podr consultar e ingresar todas las modificaciones necesarias. El sistema validar los datos ingresados y se actualizar productos con sus respectivas detalles. Producto

Gestionar datos Menu gestion producto

No existe producto

Selecciona categoria

2)

Administrador (from ACTORES) Interfaz modificar producto Escoger categoria Categoria

CURSO ALTERNO 1) El Sistema muestra un mensaje de "Datos incorrectos". El sistema muestra un mensaje de "Producto no existe".

2)

Escoger Imagen

Imagen

45

4.3 MODELO DE DOMINIO ACTUALIZADO, SOFTWARE PARA LA VENTA DE ARTESANIA:


MUESTRA EL MODELO DE DOMINIO ACTUALIZADO TRAS HABER REALIZADO EL ANLISIS DE ROBUSTEZ.

46

4.4 REVISION DEL DISEO PRELIMINAR:

TAREA

ARTEFACTO

TCNICA La descripcin del

RESPONSABLES

Revisar la descripcin de los casos de uso. Caso de uso

caso de uso debe coincidir con el diagrama de robustez. Hacer coincidir el diagrama de robustez con la descripcin del caso de uso Comprobar que

Revisar el diagrama Diagrama de de robustez. robustez

el diagrama de robustez cumple las reglas. Verificar que el diagrama de robustez tiene todos los cursos alternos. Los objetos

Usuario Cliente Analista Programador

Revisar caso de uso y el modelo de dominio actualizado.

Modelo de dominio y descripcin de caso de uso actualizados.

entidad del diagrama de robustez debe coincidir con el modelo de dominio actualizado.

47

CAPTULO IV REVISIN DE REQUISITOS(segundo intento)

48

4.1

REVISION DE MODELO DE DOMINIO

49

4.2 REVISION DE INTERFAZ GRAFICA REVISION DE INTERFAZ GRAFICA/MENU PRINCIPAL

5. QUIENES SOMOS

50

6. MUESTRO PRODUCTOS

7. CATALAGO CERAMICA

51

8. DETALLE CERAMICA

9. REGISTRAR CLIENTE

52

10. INTERFAZ DE MENSAJE

11. INTERFAZ CARRITO

53

12. Aadiendo al carrito

13. FORMA DE COMPRA Y DETALLE PRODUCTO

54

14. FACTURA DE COMPRA

15. Recomendaciones

55

15.1 REVISION DE CASO DE USO

1. Realizar pedido producto artesanal 2. Aadir producto al carrito 3. Borrar producto del carrito 4. Emitir comprobante de pago 5. Registrar cliente 6. Elegir forma de pago 7. Mostrar detalle producto 8. Modificar contrasea usuario 9. Mostrar detalle cliente 10. 11. 12. 13. Registrar sugerencia y reclamos cliente Aadir producto artesana al catalogo Modificar producto artesana al catalogo Borrar producto artesana del catalogo

56

14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30.

Registrar envo de producto Publicar ofertas de productos Modificar ofertas publicadas Enviar mensajes de ofertas y agradecimiento a los clientes Generar reporte Emitir gua de remisin Emitir proforma Consultar pedido cliente Consultar catalogo Consultar sugerencia Aadir proveedor Modificar proveedor Borrar proveedor Realizar pedido a proveedor Modificar pedidos proveedor Cancelar pedidos a proveedor Consultar pedido a proveedor Descripcin Curso bsico:
01. El actor cliente solicita al sistema comenzar el proceso de registro de una nueva compra de producto artesanal. 02. El sistema solicita al cliente que seleccione un producto en catlogo de la lista que ste le facilita. 03. El actor cliente selecciona un producto de la lista. 04. El sistema solicita al cliente que introduzca sus dados necesarios, si es registrado, de lo contrario registraEl actor Administrador introduce los datos solicitados y confirma la compra. 05. El sistema almacena la compra con la fecha del da e informa al administrador que la operacin ha finalizado con xito.

Caso de uso Cu1:Realizar pedidos a producto artesanal

Curso alterno: 01. si el producto


no existe en el catlogo, el sistema muestra una excepcin " no existe productos en el catalogo"

Caso de uso

Descripcin

57

Cu02:Aadir producto al carrito de compra

Curso bsico:
01. El actor Cliente en la pantalla de productos por catlogo elige el producto que desea compra y hace clic en botn agregar carrito. 02. El sistema busca el producto en catlogo, activa el carrito luego el producto encontrado muestra en el carrito. 03. El sistema el sistema saca el producto seleccionado y guarda en carrito y luego actualiza e stock de producto.

Curso alterno:
01. Si el producto no existe en stock, el sistema activa una excepcin con un mensaje el producto no existe en stock.

Caso de uso Cu03:Borrar producto del carrito

Descripcin Curso bsico:


El actor Cliente elige el producto que desea eliminar del carrito de la compra. El sistema lo elimina del carro de la compra del cliente.

Curso alterno:

Caso de uso Cu04:Emitir comprobante pago

Descripcin
Curso bsico: 01. El usuario (cliente) hace clic en el botn Emitir comprobante de de pago en el interfaz en li interfaz carrito de compras. 02. El sistema verifica el tipo de usuario y la modalidad de compra si es el correcto muestra la pgina de registrar compra, el usuario ingreso los datos de la compra en el momento de agregar el producto al carrito de la compra que realiz, en donde el usuario ingresa varios productos haciendo clic en el botn Ingresar producto al carrito, despus del cual el sistema le muestra una relacin con los productos seleccionados en una pgina de productos comprados, haciendo clic en botn registrar pasara a grabar pgina de registrar compra en la base de datos. 03. Si el usuario se confunde en eligir producto lo puede eliminar haciendo clic en eliminar producto,, el sistema valida los datos y almacena compra y DetalleCompra. 04. El sistema muestra un mensaje de confirmacin de la transaccin correcta. Curso alterno: Si la transaccin es incorrecto: El sistema muestra el mensaje Usted no puede realizar esta operacin.

58

Caso de uso Cu05:Registrar cliente

Descripcin Curso bsico:


01. El actor Cliente solicita al sistema comenzar el proceso de registro en el sistema. 02. El sistema solicita al cliente que introduzca el nombre de usuario, contrasea, verificacin de la contrasea, correo electrnico y verificacin del correo electrnico. Adems, le pide que rellene un cdigo de reconocimiento. 03. El actor Cliente facilita los datos requeridos al sistema. 04. El sistema almacena los datos solicitados en la base de datos e informa al cliente que recibir un email que deber confirmar para seguir el proceso de registro. 05. El actor Cliente confirma el correo electrnico que ha enviado el sistema. 06. El sistema remite al cliente a una nueva zona de la aplicacin y le solicita que termine de rellenar los datos necesarios: nombre, apellidos, direccin, fecha de nacimiento y telfono. 07. El actor Cliente introducir los datos requeridos. 08. El sistema introduce los datos en la base de datos y acaba de rellenar la informacin correspondiente al cliente, indicando de forma automtica la categora del cliente. Por ltimo, comunica al cliente que el registro ha finalizado con xito. Curso alterno: 01. Si el nombre de usuario se encuentra ya registrado en la base de datos, el sistema pedir al cliente que elija un nuevo nombre, salta al paso 2, a continuacin este caso de uso contina. 02. Si el cdigo de reconocimiento no se Ha ingresado correctamente, el sistema solicita al cliente que vuelva a introducirlo, salta al paso 3, a continuacin este caso de uso contina 03. Si la contrasea y su confirmacin no coinciden o su el correo y su confirmacin no coincide o el correo no es correcto, el sistema le pide al cliente que introduzca de nuevo el dato errneo, salta al paso 3, a continuacin este caso de uso contina.

59

Caso de uso

Descripcin

Cu06:Eligir forma de Curso bsico: pago


01. El usuario cliente estando en la interfaz carrito de la compra hace clic en el botn finalizar. 02. El sistema muestra un interfaz formas de pago con las opciones a elegir conjuntamente con los detalles de los productos elegidos. 03. El usuario elige una de las opciones a elegir para activar el radio botn (contra reembolso o transferencia/ingreso bancario). 04. El usuario finalmente hace clic en el botn siguiente para ir a la siguiente secuencia de compra.

Curso alterno:
Si el usuario no elogi una de las opciones el sistema muestra una excepcin no elogi forma de pago

Caso de uso

Descripcin

Cu7:Mostrar detalle Curso bsico: producto


01. El usuario cliente en la interfaz men principal hace clic en las categoras para deslizar lista de productos. 02. El sistema muestra la lista de productos con sus respectivas imgenes de presentacin.

03. El usuario cliente hace clic botn detalle, el sistema muestra la


interfaz del detalle del producto seleccionado con su respectiva imagen de presentacin del producto.

Curso alterno:
04. El cliente usuario hace clic en detalle de producto, si el producto no hay en stock muestra un mensaje producto no existe en stock

60

Caso de uso Cu08:Modificar contrasea usuario

Descripcin Curso bsico:


01. El actor Cliente solicita al sistema comenzar el proceso de modificacin de contrasea. 02. El sistema solicita al cliente que introduzca la contrasea actual, la nueva contrasea y que repita esta nueva contrasea. 03. El actor Cliente rellena los datos solicitados. 04. El sistema cifra la nueva contrasea e introduce la cadena cifrada en la base de datos, sustituyndola por la clave actual e informa al cliente que la operacin ha finalizado con xito.

Curso alterno:
01. Si la contrasea actual es incorrecta, el sistema salta al paso 2, a continuacin este caso de uso contina. 02. Si la contrasea nueva y su verificacin son distintas, el sistema salta al paso 2, a continuacin este caso de uso contina

Caso de uso

Descripcin

Cu09:Mostrar detalle Curso bsico: cliente


01. El usuario cliente en la interfaz inicio sesin en el estado conectado, que muestra dos opciones su cuenta y

desconectar, el usuario hace clic en el link su cuenta. 02. El sistema muestra dos links uno de datos y de pedidos.

03. El usuario cliente hace clic en link datos, entonces el sistema


muestra datos del cliente en detalle.

04. El usuario hace clic en link pedidos, el sistema muestra la interfaz


del detalle de productos pedidos.

Curso alterno:
01. El cliente usuario no ha hecho pedidos: el sistema muestra un error el sistema no registro pedidos. Por favor hacer pedidos para realizar esta accin.

61

Caso de uso Cu10:Registrar sugerencias/reclamos cliente

Descripcin Curso bsico:


01. El actor usuario (cliente) en el interfaz principal de la comercializacin de producto artesana hace clic en el link sugerencias /reclamos 02. El sistema muestra campo de texto en donde llenara el usuario su nombre completo, apellidos completos, email, con la finalidad de que sern identificado. Y un textfield en el que el usuario cliente escribir sus sugerencias y/o reclamos que

quisieran a hacer con respecto a nuestro servicio. 03. El usuario escribe su punto de vista para sugerirnos al proveedor que somos nosotros. 04. El usuario confirma la sugerencia plasmada haciendo clic en el botn enviar. 05. El sistema registrara automticamente el texto escrito (mensaje) en el campo de texto.

Curso alterno:
01. El usuario se olvid llenar uno de los campos de texto: el sistema muestra un mensaje rellene por favor todos campos de texto

Caso de uso Cu11:Aadir producto artesana al catalogo

Descripcin Curso bsico:


01. El actor Administrador solicita al sistema comenzar el proceso aadir un nuevo producto en la base de datos. 02. El sistema solicita los siguientes datos al administrador: nombre del producto, categora, stock, descripcin, comentarios del producto artesana 03. El actor Administrador proporciona los datos requeridos. 04. El sistema almacena los datos, introduce un identificador nico para el producto de forma automtica y le indica al administrador que la accin se ha llevado con xito. Curso alterno: 01. Si comprueba que el producto ya ha sido introducido, el sistema vuelve al paso 2, a continuacin este caso de uso contina

62

Caso de uso Cu12:Modificar producto artesana en catalogo

Descripcin Curso bsico:


01. El actor Administrador solicita al sistema comenzar el proceso de modificar los datos de un producto en la base de datos. 02. El sistema solicita al administrador que seleccione el producto a modificar. 03. El actor Administrador selecciona el producto entre la lista que le muestra el sistema. 04. El sistema muestra todas las caractersticas del producto: nombre, categora, stock, descripcin y comentarios. 05. El actor Administrador modifica los valores oportunos cambiando los valores actuales por los nuevos. 06. El sistema modifica el producto en la base de datos con los nuevos valores y le indica al administrador que la operacin ha finalizado con xito. Curso alterno: Si el producto no es el deseado, el actor Administrador buscar un nuevo producto de la lista que proporciona el sistema, salta al paso 3, a continuacin este caso de uso contina

Caso de uso Cu13:Borrar producto artesana en catalogo

Descripcin Curso bsico:


01. El actor Administrador solicita al sistema comenzar el proceso de borrar un producto de la base de datos. 02. El sistema solicita al administrador que seleccione el producto que quiere borrar de la base de datos. 03. El actor Administrador selecciona el producto que quiere borrar de la lista de productos actualmente introducidos en la base de datos. 04. El sistema muestra una descripcin detallada del producto a borrar: nombre, categora, stock, descripcin y comentarios, y solicita al administrador que verifique la eliminacin. 05. El actor Administrador verifica la eliminacin del producto. 06. El sistema elimina el producto seleccionado de la base de datos y le indica al administrador que la operacin ha finalizado con xito. Curso alterno: 01. Si el producto no es el que quiere borrar el administrador, el actor Administrador selecciona otro producto diferente de la lista, salta al paso 3, a continuacin este caso de uso contina

63

Caso de uso Cu14:Publicar ofertas de producto

Descripcin Curso bsico:


01. El usuario (administrador) en GUI principal de administrador hace clic en el botn nueva oferta en la Pgina de men de administracin de Oferta. 02. El sistema le muestra la Pgina de administrar ofertas en donde mostrara al usuario varias ofertas de productos. 03. El sistema realiza la conexin a base de datos y le muestra una relacin con las ofertas de productos existentes en una pgina de productos. 04. Selecciona la opcin crear nueva promocin. 05. El sistema muestra la interfaz de formato de captura. 06. El usuario rellena la interfaz formato de acuerdo a las caractersticas presentes de la oferta. 07. El sistema valida el formato y realiza conexin a base de datos verificando de la duplicidad de promociones, luego muestra la vista previa para solicitar confirmacin. 08. El usuario confirma la creacin nueva de la promocin. 09. El sistema realiza la conexin respectiva a base de datos y registra la nueva promocin en la base de datos. Curso alterno: 01. Enva un mensaje de error en la conexin con la base de datos: No se realiza la conexin con base de datos

Caso de uso Cu15:Modificar ofertas publicadas

Descripcin Curso bsico:


01. El usuario administrador en el interfaz GUI principal del administrador y elige la opcin promociones. 02. El sistema realiza las conexiones a base de datos respectivos y muestra la lista de promociones 03. El usuario selecciona una de las promociones de la lista de promociones 04. El sistema realiza su conexin respectiva y muestra los datos de la promocin seleccionada. 05. El usuario solicita modificar la promocin. 06. El sistema muestra formato de captura. 07. El usuario modifica los datos en el formato. 08. El sistema valida los datos capturados en el formato y luego realiza la conexin en BD, verifica que no haya la duplicidad de promociones y muestra la vista previa para solicitar la confirmacin. 09. El usuario confirma la actualizacin. 10. El sistema realiza la conexin con BD y actualiza la promocin en BD. Curso alterno: 01. Enva el mensaje de error en la conexin con la base de datos: no se realiz la conexin con la base de datos

64

02. Datos no validos: ingrese nuevamente. 03. Mensaje: promocin ya existe.

Caso de uso
Cu16: Efectuar l envi de producto artesana pedida por cliente

Descripcin Curso bsico:


01. El usuario administrador en la GUI principal administrar productos hace clic en link ENVIO DE PRODUCTOS. 02. El sistema muestra la interfaz de envo de productos. 03. El administrador Selecciona el usuario de la lista desligarle de usuarios registrados que se le ha enviado el producto. 04. El administrador activa el check de enviado luego se selecciona la fecha actual. 05. El administrador escribe el detalle del producto que se ha enviado. 06. El sistema se conecta a la base de datos, lo valida los datos para almacenar. 07. El sistema actualiza los datos y lo almacena. Curso alterno: 01. Mensaje: el usuario no existe. 02. Mensaje: formato no valido

Caso de uso Cu17:Enviar mensajes de ofertas y agradecimiento a los clientes

Descripcin Curso bsico:


08. El usuario administrador en la GUI principal de administrar productos selecciona el link mensajes y agradecimientos. 01. El sistema muestra la interfaz del formato de mensajes y agradecimientos con sus campos de seleccin del usuario, y campo de texto para escribir mensaje. 09. El usuario administrador selecciona el usuario a quien se va dirigido el mensaje y escribe mensaje y hace clic en el botn enviar. 02. El sistema se conecta a la base de datos y verifica la existencia del usuario. 03. El sistema verifica su email del usuario en la base de datos, valida los datos y enva el mensaje al correo del usuario. Curso alterno:

01. Mensaje: correo no existe. Mensaje: usuario no existe

65

Caso de uso Cu18:Generar reporte

Descripcin

Curso bsico:
01. 02. 03. 04. 05. El usuario solicitara generar un reporte. El sistema verifica los permisos de acceso del usuario. El sistema mostrara los reportes que se pueden generar. El usuario seleccionara uno o ms reportes. El sistema generara el reporte.

Curso alterno:
01. Si el usuario no tiene los permisos requeridos, se le notificara al usuario del problema y se cancelara el caso uso.

Caso de uso Cu19:Emitir proforma

Descripcin Curso bsico:


01. El usuario (Cliente, Comercializador), estando en la Pagina consultar cotizacin recibida, el usuario selecciona el botn proforma, el sistema recupera la informacin de usuario y detalle de usuario y lo muestra la pgina emitir proforma. 02. El usuario rellena los datos requeridos en la pgina emitir proforma, seguidamente hace clic en botn enviar proforma. 03. El sistema verifica los datos y seguido muestra una mensaje de confirmacin preguntndonos estamos seguros de emitir la proforma, el usuario hace clic en el botn aceptar. 04. El sistema le muestra un mensaje de confirmacin" proforma enviada satisfactoriamente" Curso alterno: 01. Datos incorrectos: al verificar los datos de la proforma el sistema le muestra los campos rellenados con datos incorrectos en la pgina emitir proforma. Datos incompletos: al verificar los datos de la proforma el sistema le muestra un mensaje en los campos que faltan datos en la pgina emitir proforma.

Caso de uso Cu20:Consultar pedidos cliente

Descripcin Curso bsico:


01. El usuario (comercializador) hace clic en el botn consultar registro de compras en la pgina de cuenta usuario. 02. El sistema verifica el tipo de usuario y si es el correcto muestra la pgina de registrar de compras con la relacin de las compras realizadas, los cuales se obtienen de compra, DetalleCompra y producto.

Curso alterno:
66

01. Usuario incorrecto: El sistema muestra el mensaje Usted no puede realizar esta operacin, La informacin no existe. 02. El sistema le muestra el mensaje La informacin no existe

Caso de uso Cu21:Consultar catalogo

Descripcin Curso bsico:


01. El usuario (Administrador) hace clic en el vnculo consultar catlogo de productos ms mas pedidas desde la pgina de men principal Cliente. 02. El sistema muestra la pgina Reporte de los productos ms mas pedidos mostrando los detalles, la cantidad, categora de productos cargados en la lista desplegable. 03. El administrador de productos selecciona la fecha de inicio y fecha fin, 04. El sistema recupera los datos de la entidad productos, recupera los datos de la entidad Pedidos, finalmente el sistema muestra el reporte de productos pedidos.

Curso alterno:
05. El sistema muestra un mensaje de error ".

Caso de uso Cu22:Aadir proveedor

Descripcin Curso bsico:


01. El actor Administrador solicita al sistema comenzar el proceso de aadir un nuevo proveedor en la base de datos. 02. El sistema El sistema solicita los siguientes datos al administrador: nombre del proveedor, CIF, domicilio, pgina Web, correo electrnico y telfono. 03. El actor Administrador proporciona los datos requeridos. 04. El sistema almacena los datos, introduce un identificador nico para el proveedor de forma automtica y le indica al administrador que la operacin se ha finalizado con xito.

Curso alterno:
01. Si comprueba que el proveedor ya ha sido introducido, el sistema salta al paso 2, a continuacin este caso de uso contina

Caso de uso Cu23:

Descripcin

Modificar Curso bsico:


01. El actor Cliente solicita al sistema comenzar el proceso de

67

cliente

modificacin de los datos personales de su perfil. 02. El sistema muestra todos los datos personales de su perfil: nombre, apellidos, direccin, correo electrnico, telfono y fecha de nacimiento. 03. El actor Cliente modifica los valores oportunos cambiando los actuales por los nuevos. 04. El sistema modifica los datos personales del cliente en la base de datos con los nuevos valores y le indica al cliente que la operacin ha finalizado con xito.

Curso alterno:
El sistema busca el usuario, si el usuario no existe retorna con un mensaje de error el usuario no existe favor de registrarse previamente

Caso de uso Cu24:Aadir categora

Descripcin
Curso bsico: 01. El actor Administrador solicita al sistema comenzar el proceso aadir una nueva categora en la base de datos. 02. El sistema solicita los siguientes datos al administrador: nombre de la categora y descripcin de esta. 03. El actor Administrador proporciona los datos requeridos. 04. El sistema almacena los datos, introduce un identificador nico para la categora de forma automtica y le indica al administrador que la accin ha finalizado con xito.

Curso alterno:
01. Si comprueba que la categora ya ha sido introducida, el sistema vuelve al paso 2, a continuacin este caso de uso contina

Caso de uso Cu25:Modificar categora

Descripcin
Curso bsico: 01. El actor Administrador solicita al sistema comenzar el proceso de modificar una categora existente en la base de datos. 02. El sistema le pide al administrador que seleccione la categora a modificar. 03. El actor Administrador selecciona la categora entre la lista que le muestra el sistema. 04. El sistema muestra todas las caractersticas de la categora: nombre y descripcin de esta. 05. El actor Administrador modifica los valores oportunos cambiando los valores actuales por los nuevos. 06. El sistema modifica la categora en la base de datos con los nuevos valores y le indica al administrador que la operacin ha finalizado

68

con xito.

Curso alterno:
01. Si la categora no es la deseada, el actor Administrador buscar una nueva categora de la lista que proporciona el sistema, salta al paso 3, a continuacin este caso de uso contina

Caso de uso Cu26:Borrar categora

Descripcin
Curso bsico: 01. El actor Administrador solicita al sistema comenzar el proceso de borrado de una categora de la base de datos. 02. El sistema solicita al administrador que seleccione la categora a eliminar de la base de datos. 03. El actor Administrador selecciona la categora que quiere borrar de la lista de categoras actualmente introducidas en la base de datos. 04. El sistema muestra una descripcin detallada de la categora a borrar: nombre y descripcin de la categora. 05. El actor Administrador verifica la eliminacin de la categora. 06. El sistema elimina la categora seleccionada de la base de datos y le indica al administrador que la operacin ha finalizado con xito.

Curso alterno:
01. Si la categora no es la que quiere borrar el administrador, el actor Administrador selecciona otra categora diferente de la lista, salta al paso 3, a continuacin este caso de uso contina

Caso de uso
69

Descripcin

Cu27:Modificar proveedor

Curso bsico:
El actor Administrador solicita al sistema comenzar el proceso de modificacin de los datos de un proveedor en la base de datos. El sistema le pide al administrador que seleccione el proveedor a modificar. El actor Administrador selecciona el proveedor entre la lista que le muestra el sistema. El sistema muestra todas las caractersticas del proveedor: nombre, CIF, domicilio, pgina Web, correo electrnico y telfono. El actor Administrador modifica los valores oportunos cambiando los valores actuales por los nuevos. El sistema modifica el proveedor en la base de datos con los nuevos valores y le indica al administrador que la operacin ha finalizado con xito.

Curso alterno: Si el proveedor no es el deseado, el actor Administrador buscar un nuevo proveedor de la lista que proporciona el sistema, salta al paso 3, a continuacin este caso de uso contina

Caso de uso Cu28:Borrar proveedor

Descripcin Curso bsico:


01. El actor Administrador solicita al sistema comenzar el proceso de eliminacin de un proveedor de la base de datos. 02. El sistema solicita al administrador que seleccione al proveedor que desee eliminar de la base de datos. 03. El actor Administrador selecciona el proveedor que quiere borrar de la lista de proveedores. 04. El sistema muestra una descripcin detallada del proveedor a borrar: nombre, CIF, domicilio, pgina Web, correo electrnico y telfono. 05. El actor Administrador verifica la eliminacin del proveedor. 06. El sistema elimina el proveedor seleccionado de la base de datos y le indica al administrador que la operacin ha finalizado con xito.

Curso alterno:
01. Si el proveedor no es el que desea eliminar el administrador, el actor Administrador selecciona otro proveedor diferente de la lista, salta al paso 3, a continuacin este caso de uso contina

Caso de uso
70

Descripcin

Cu29:Realizar pedidos proveedor a

Curso bsico:
06. El actor Administrador solicita al sistema comenzar el proceso de registro de una nueva compra a un proveedor. 07. El sistema solicita al vendedor que seleccione un proveedor de la lista que ste le facilita. 08. El actor Administrador selecciona un proveedor de la lista. 09. El sistema solicita al administrador que introduzca, por cada producto comprado al proveedor, su nombre, descripcin, cantidad, precio unitario e IVA. 10. El actor Administrador introduce los datos solicitados y confirma la compra. 11. El sistema almacena la compra con la fecha del da e informa al administrador que la operacin ha finalizado con xito.

Curso alterno:

Caso de uso Cu30:Mantener ofertas publicadas

Descripcin Curso bsico:


01. El proveedor en men "Administrar productos" hace clic en "Mantener oferta de Productos" en la "Pagina men principal usuario". 02. El sistema muestra la "Pagina ofertas productos" recuperando todas las ofertas publicadas por el usuario logueado desde OfertaProducto como numero de oferta de producto, Descripcin oferta producto, fecha publicacin. 03. El proveedor modifica las ofertas publicadas, seleccionando en los tems correspondientes a una oferta de bienes publicados y haciendo clic en "modificar", el Sistema modifica las ofertas de producto en OfertaProducto y DetalleProdcto y actualiza la "Pagina ofertas Producto". 04. El proveedor consulta la oferta publicada modificadas, haciendo clic en "Detalles" en la "Pagina ofertas productos". 05. El Sistema muestra la "Pagina detalle oferta de productos publicados" con todos los detalles de la Oferta de Producto publicados, mostrando Razn Social de la empresa, Nombre persona, Nombre Usuario, Tipo Actor, RUC/DNI, Telfono y Direccin recuperados desde Usuario, Persona, Tipo Actor; tambin datos de la oferta como: nmero de oferta, descripcin oferta, fecha publicacin de la oferta recuperados desde OfertaProducto y DetalleOferta y Detalles de bienes en la oferta publicada como: Nombre bien, descripcin bien, descuento, cantidad y precio unitario recuperados desde producto, DetalleProducto, OfertaProducto. 06. El proveedor puede eliminar productos seleccionando en el tem del producto y clic en "Eliminar" 07. El proveedor hace clic en "Guardar", el aplicativo valido los datos ingresados como Direccin, Telfono, Oferta bien, fecha publicacin, descuento, cantidad y precio unitario y luego graba los datos en la base de datos, y muestra un mensaje de confirmacin. Curso alterno: 01. No existe oferta de productos publicadas: El Sistema muestra un

71

mensaje "No existe oferta de productos publicadas" en la "Pagina ofertas productos. NO existe oferta seleccionada para eliminar: El Sistema muestra un mensaje "debe seleccionar al menos una oferta para eliminar" en la "Pagina ofertas productos. No existe bienes en la oferta. 02. El Sistema muestra un mensaje "Debe registrar al menos un producto" en la "Pagina modificar oferta de productos. No existe producto. 03. El sistema muestra un mensaje "No existe bien buscado" en la "Pagina modificar oferta de productos. 04.El proveedor ha cancelado la modificacin de la oferta haciendo clic en "Cancelar" y el Sistema vuelve a mostrar la pgina ofertas de productos

Caso de uso Cu31:Eliminar cliente a travs de formulario

Descripcin Curso bsico:


08. El actor Administrador solicita al sistema comenzar el proceso de eliminar un cliente de la base de datos. 09. El sistema solicita al administrador que seleccione el cliente que quiere eliminar. 10. El actor Administrador selecciona el nombre de usuario del cliente entre la lista que le muestra el sistema. 11. El sistema muestra una descripcin detallada del cliente a eliminar: nombre, apellidos, correo, direccin, telfono y fecha de nacimiento, y solicita al administrador que verifique la eliminacin. 12. El actor Administrador verifica la eliminacin el cliente. 13. El sistema elimina al cliente de la base de datos y le indica al administrador que la operacin ha finalizado con xito.

Curso alterno:
14. Si el cliente no es el que quiere eliminar el administrador , el actor Administrador selecciona otro nombre de usuario diferente de la lista, salta al paso 3, a continuacin este caso de uso contina

Caso de uso Cu32:Emitir cotizacin

Descripcin Curso bsico:


01. En la pgina detalle de oferta publicada. EL usuario hace clic en el botn cotizar. 02. El sistema recupera la informacin de usuario y detalle de usuario correspondiente al quien est cotizando. El sistema le muestra la pgina de enviar cotizacin.

72

03. El usuario rellena los datos necesarios para enviar la cotizacin. El usuario hace clic en el botn enviar. 04. El sistema verifica los datos, procede a enviar la cotizacin y muestra un mensaje de confirmacin "datos envi satisfactoriamente la cotizacin".

Curso alterno:
01. Datos incorrectos: al verificar los datos de la cotizacin el sistema le muestra los campos rellenados con datos incorrectos en la pgina enviar cotizacin. Datos incompletos: al verificar los datos de la cotizacin el sistema le muestra un mensaje en los campos que faltan datos en la pgina enviar cotizacin.

Caso de uso Cu33:Identificar usuario

Descripcin Curso bsico:


01. El actor Usuario solicitar al sistema comenzar el proceso de identificarse en la web. 02. El sistema solicita que introduzca su nombre de usuario y su contrasea. 03. El actor Usuario introduce los datos solicitados y confirma el acceso. 04. El sistema acepta el acceso. El usuario se encuentra actualmente identificado.

Curso alterno:
Si el nombre de usuario o la contrasea no son vlidos, el sistema salta al paso 2., a continuacin este caso de uso contina

73

CAPITULO V
DISEO PRELIMINAR

El concepto de anlisis de robustez fue introducido por Jacobson para el mundo de la orientacin a objetos (Booch et al., 2000; pud Jacobson, 1991). El anlisis de robustez es, analizar los casos de uso e identificar un primer conjunto de objetos para cada caso de uso (Rosenberg y Scott, 1999), los objetos son clasificados en tres estereotipos:

a. Objeto interfaz.- Capa de presentacin que los actores usan para interactuar con el sistema (pantallas o pginas Web), objeto en el caso de uso que debe ser un nombre (sustantivo); b. Objeto entidad.- Son objetos del modelo de dominio, objeto en el caso de uso que debe ser un nombre (sustantivo);

74

c. Objeto control (controlador).- Estn entre los objetos interfaz y los objetos entidad, en el caso de uso debe ser un verbo. Un controlador en un diagrama de robustez no siempre es una clase control real, puede ser contenedor de una funcin de software.

REVISION DE DIAGRAMA DE ROBUSTEZ Cu1: Realizar pedidos a producto artesanal

75

analysis Iconix-Robustness co01:Realizar pedido producto a... Curso bsico: 1) El actor cliente solicita al sistema comenzar el proceso de elecion de una nueva compra de producto artesanal. 2) El sistema muestra al cliente una lista de catalogos enlos que estan los productos por catalogos (ceramica, tallados,cornoplastia, textil, etc) 3) El actor cliente selecciona un un catalogo de la lista de la lista de catalogos. 4) El sistema solicita al cliente la autenticacion de nombre usuario y password del cliente. 5) El actor cliente introduce los datos solicitados , si el cliente ya registrado el sistema accede a la gama de productos a eligir. Curso alterno: 1) si el producto no existe en el catlogo, el sistema muestra una excepcin " no existe productos en el catalogo"

GUI principal de la venta de artesania clic

buscar catalogo catalogo

Cliente (from Actores)

GUI catalogo

No existe producto en catalogo

producto buscar producto

Cu02: Aadir producto al carrito de compra


analysis Iconix-Robustness Aadir producto al carrito ... Curso bsico: 1) El actor Cliente en la pantalla de productos por catlogo elige el producto que desea compra y hace clic en botn agregar carrito. 2) El sistema busca el producto en catlogo, activa el carrito luego el producto encontrado muestra en el carrito. 3) El sistema el sistema saca el producto seleccionado y guarda en carrito y luego actualiza e stock de producto. Curso alterno: 1) Si el producto no existe en stock, el sistema activa una excepcin con un mensaje "el producto no existe en stock".

GUI catalogo clic

No existe producto en catalogo

Producto

buscar producto Cliente (from Actores) actualizar producto

GUI carrito de compras

Guardar compra producto

carrito

Cu03: Borrar producto del carrito

76

analysis Borrar producto del carrito de compras Robustness

Curso bsico: 1) El actor Cliente en la pantalla de carrito decompras elige el producto que desea sacar GUI carrito de compras del carrito y hace clic en botn sacar producto del carrito. clic sacar producto 2) El sistema busca el producto en catlogo, activa el carrito luego saca el producto del carrito. 3) El sistema guarda el producto en catalogo y Cliente actualiza el stock de producto. (from Actores) 4) el sistema finalmente actualiza el carrito de la compra GUI catalogo Curso alterno: 1) Si el producto no existe en carrito, el sistema activa una excepcin con un mensaje "el producto no existe en carritto de compras".

no existe producto en carrito de compras actualizar prductos en carrito

carrito

buscar producto producto

actualizar productos en catalogo

catalogo

Cu04: Emitir comprobante de pago

analysis Emitir comprobante de pago Robustness Curso bsico: 1) El usuario (cliente) hace clic en el botn Emitir comprobante de pago en el interfaz carrito de compras. 2) El sistema verifica el tipo de usuario y la modalidad de compra si es el correcto muestra la pgina de registrar compra, el usuario ingreso los datos de la compra en el momento de agregar el producto al carrito de la compra que realiz, en donde el usuario ingresa varios productos haciendo clic en el botn Ingresar producto al carrito, despus del cual el sistema le muestra una relacin con los productos seleccionados en una pgina de productos comprados, haciendo clic en botn registrar pasara a grabar pgina de registrar compra en la base de datos. 3) Si el usuario se confunde en eligir producto lo puede eliminar haciendo clic en eliminar producto,, el sistema valida los datos y almacena compra y DetalleCompra. 4) El sistema muestra un mensaje de confirmacin de la transaccin correcta. Curso alterno: Si la transaccin es incorrecto: El sistema muestra el mensaje "Usted no puede realizar esta operacin".

GUI carrito de compras ingesa producto accede agregar producto

eliminar producto

Cliente (from Actores) Mostrar error "transaccion incorrecta"

mostrar producto seleccionados

Emite comprobante de pago

compra

Pagina de productos comprados

registrar productos comprados

Cu06: Elegir forma de pago


77

analysis Iconix-Robustness Note Curso bsico: 1) El usuario cliente estando en la interfaz carrito de la compra hace clic en el botn finalizar. 2) El sistema muestra un interfaz'' formas de pago'' con las opciones a elegir conjuntamente con los detalles de los productos elegidos. 3) El usuario elige una de las opciones a elegir para activar el radio botn (contra reembolso o transferencia/ingreso bancario). 4) El usuario finalmente hace clic en el botn siguiente para ir a la siguiente secuencia de compra. Curso alterno: Si el usuario no elogi una de las opciones el sistema muestra una excepcin ''no elogi forma de pago''

interface formas de pago

seleccioanr productos

accede

eligir productos deseados

Cliente (from Actores)

mostrar error "no eligio forma de pago"

eligir transferencia ingreso/ bancario forma de psgo

GUI carrito de compra

Eleccion de forma de pago

compra

Cu08: Modificar contrasea usuario


analysis Iconix-Robustness borrar producto del carrito Curso bsico: 1) El actor Cliente solicita al sistema comenzar el proceso de modificacin de contrasea. Gui principal de registro 2) El sistema solicita al cliente que introduzca la accede contrasea actual, la nueva contrasea y que repita esta nueva contrasea. 3) El actor Cliente rellena los datos solicitados. 4) El sistema cifra la nueva contrasea e introduce la cadena cifrada en la base Cliente de datos, sustituyndola (from Actores) por la clave actual e informa al cliente que la operacin ha finalizado con xito. Curso alterno: 1) Si la contrasea actual es incorrecta, el sistema salta al paso 2, a continuacin este caso de uso contina. 2) Si la contrasea nueva y Pagina de inicio su verificacin son distintas, el sistema salta al paso 2, a continuacin este caso de uso contina

obtener datos del cliente

Cuenta

Validar datos

Mostrar "Contrasea incorrecta"

Modificar contrasea Cliente

Tabla cuenta

Mostrar pagina

78

Cu11: Aadir producto artesana al catalogo


analysis Iconix-Robustness

Note caso de uso : aadir producto artesania de catalago Curso bsico: 1) Se presenta el administrador en la pantalla para actualizar nuevo producto o item la opcin de ingresar artculo llenando los campos de catalogo.al gestor de producto. 2) Lo cual se tiene que seleccionar los datos a ingresar una o ya existente, nombre del producto, descripcin, precio, cantidad en stock y una imagen para identificar al pro- ducto. 3) lo cual sera almacenado los datos del producto en la entidad producto Curso alterno: Si comprueba que el producto ya ha sido introducido, el sistema le enva un mensaje de xito por que ingreso a la base de datos..

administrador de producto nuevo producto o item

elige dato a modificar

gestor de producto

detalle producto

administrador (from Actores) aade producto Producto

almacena datos del nuevo producto

mensaje de confirmacion de modificamiento

Cu12: Modificar producto artesana en catalogo

79

analysis Iconix-Robustness Note caso de uso: Modificar producto artesania en catalogo Curso bsico: 1) Se presenta al administrador la pantalla administrador de producto la cual aparecen los productos se selecciona el producto a modificar en el cual se puede cambiar de categora de las existentes, nombre del pro- ducto, descripcin, precio, cantidad en stock y la imagen a mostrar ya sea borrndola o cambindola. 2) El sistema solicita al administrador que seleccione el producto a modificar. 3) El actor Administrador selecciona el producto entre lgestor de producto 4) que le muestra el sistema. 5) El actor Administrador modifica los valores oportunos cambiando los valores actuales por los nuevos. 6) El sistema modifica el producto en la base de datos con los nuevos valores y le indica al administrador que la operacin ha finalizado con xito. Curso alterno: Si el producto no es el deseado, el actor Administrador buscar un nuevo producto de la lista que proporciona el sistema, salta al paso 3, a continuacin este caso de uso contina

admistrador de producto

aade nuevo producto

acceso al interfaz

gestor producto

detalle producto

modifica producto aadir nuevo producto administrador (from Actores) producto

almacena datos producto

mensaje de confirmacion de producto

80

Cu13: Borrar producto artesana en catalogo


analysis Listar a los clientes segn sus gustos y preferencias Robustness

caso de uso: Borrar producto artesania del catalogo Curso bsico: 1) Se presenta al administrador la pantalla administrador de producto con las categoras existentes y se da borrar la categora y sale una leyenda diciendo "Borrando esta categora, borrara tambin sus productos. Des- ea continuar?" y se da aceptar El sistema solicita al administrador que seleccione el producto que quiere borrar de la base de datos. El actor Administrador selecciona el producto que quiere borrar de la lista de gestor de productos actualmente introducidos en el detalle producto El actor Administrador verifica la eliminacin del producto. El sistema elimina el producto seleccionado de la base de datos y le indica al administrador que la operacin ha finalizado con xito.

visualiso producto a borrar

captura datos a borrar gestor de producto detalle producto Administrador de acceso al interfaz producto

2)

envio datos a borrar administrador (from Actores) borrar producto

3)

4)

almacena datos de productos

producto

Curso alterno:

mensaje de confirmacion o error

1)

2)

Si el producto no es el que quiere borrar el administrador, el actor Administrador selecciona otro producto diferente de la lista, salta al paso 3, a continuacin este caso de uso contina mensaje de confirmacion o error

Cu14: Registrar envo de productos


analysis Iconix-Robustness

cu: Registrar envio de producto Curso bsico: 1) El usuario administrador en la GUI principal administrar productos hace clic en link ENVIO DE PRODUCT OS. El sistema muestra la interfaz de envio de productos. El administrador Selecciona el usuario de la lista desligarle de usuarios registrados que se le ha enviado el producto. El administrador activa el check de enviado luego se selecciona la fecha actual. El administrador escribe el detalle del producto que se ha enviado. El sistema se conecta a la base de datos, lo valida los datos para almacenar. El sistema actualiza los datos y lo almacena. alterno: Mensaje: "el usuario no existe". Mensaje: "formato no valido" no se encuentra el producto producto seleccionar producto GUI principal administrar productos mostrar registro no existe producto en stock

2) 3)

4)

buscarDetalleProducto

DetalleProducto

5)

6)

no se encuentra el producto administrador (from Actores) Registro de envio de productos cliente buscar usuario

7) Curso 1) 2)

81

Cu15: Modificar ofertas publicadas


analysis Iconix-Robustness cu: modificar ofertas publicadas Curso bsico: 1) El usuario administrador en el interfaz GUI principal del administrador y elige la opcin promociones. 2) El sistema realiza las conexiones a base de datos respectivos y muestra la lista de promociones 3) El usuario selecciona una de las promociones de la lista de promociones. 4) El sistema realiza su conexin respectiva y muestra los datos de la promocin seleccionada. 5) El usuario solicita modificar la promocin. 6) El sistema muestra formato de captura. 7) El usuario modifica los datos en el formato. 8) El sistema valida los datos capturados en el formato y luego realiza la conexin en BD, verifica que no haya la duplicidad de promociones y muestra la vista previa para solicitar la confirmacin. 9) El usuario confirma la actualizacin. 10) El sistema realiza la conexin con BD y actualiza la promocin en BD. Curso alterno: 1) Enva el mensaje de error en la conexin con la base de datos: "no se realiz la conexin con la base de datos" 2) Datos no validos: "ingrese nuevamente". 3) Mensaje: "promocin ya existe".

no existe promocion

promocion buscar lista de promociones

GUI principal administrador

mostrar promocion

actualizar promocion

datos no validos ingrese nuevamente

administrador (from Actores) GUI promociones

buscar detalle promociones

detallePromocion

actualizar detalle

datos no validos verifique nuevamente

Cu17: Enviar mensajes de ofertas y agradecimiento a los clientes


analysis Iconix-Robustness cu: enviar mensaje de ofertas y de ... Curso bsico: 1) El usuario administrador en la GUI principal de administrar productos selecciona el link ''mensajes y agradecimientos''. 2) El sistema muestra la interfaz del formato de mensajes y agradecimientos con sus campos de seleccin del usuario, y campo de texto para escribir mensaje. 3) El usuario administrador selecciona el usuario a quien se va dirigido el mensaje y escribe mensaje y hace clic en el botn enviar. 4) El sistema se conecta a la base de datos y verifica la existencia del usuario. 5) El sistema verifica su email del usuario seleccionado en la base de datos, valida los datos y enva el mensaje al correo del usuario. Curso alterno: 1) Mensaje: "correo no existe". 2) Mensaje: "usuario no existe"

no hay promocion promocion

GUI pricipal de administracion

buscar promocion producto no existe conexion a base de datos

cliente

administrador (from Actores)

buscar usuario no existe usuario buscar correo

GUI mensaje de ofertas detalleProducto buscar detalle

buscar oferta producto producto

82

CAPITULO VI
ARQUITECTURA TECNICA

6.1

PORQUE PATRON MVC PARA EL DESARROLLO DE LA APLICACIN WEB Porque los diferentes frameworks (spring, jsf, struts y otros) de java tienen como base el patron MVC, el aprendizaje de este modelo nos facilitara en el aprendizaje de los frameworks de java.

El patrn MVC facilita la implementacin de la aplicacin web de la biblioteca. Por su sencillez y orden en la codificacin. En el patrn MVC se diferencian bien las tres capas (modelo-vista-controlador), un controlador administra el sistema de navegacin, un modelo almacena un conjunto de datos y un visor(o multiples) presenta los datos que se encuentra en el modelo.

6.2.

DIAGRAMA DE COMPONENTES
cmp Diagrama de Componentes

VISTA

Artesana

JSP's de la Biblioteca

CONTROLADORES

Serv let

Validadores de Entrada

Patron DAO

Modelo de Dominio

MODELO

Implementaciones JDBC DAO

Figura 6.2. Arquitectura de componentes para el sistema web de la artesana

83

6.3. DIAGRAMA DE DESPLIEGUE

deployment Diagrama de Despliegue

CAPA DE PRESENTACION

WEB BROWSER

SERVLET (controlador)

JSP's de la biblioteca JSP`S DE LA ARTESANIA


Artesana

SERVIDOR WEB/APLICACION controladores de la biblioteca Controladores de la Artesana

Componentes de Acceso a Datos

BASE DE DATOS

POSTGRESQL

Figura 6.3 Arquitectura de despliegue para el sistema web de la artesania usando un diagrama de despliegue UML.

84

CAPITULO VII DISEO EN LA PRCTICA

DIAGRAMA SECUENCIA: Cu1 Realizar pedidos a producto

artesanal

DIAGRAMA SECUENCIA: Cu02 compra

Aadir producto al carrito de

DIAGRAMA SECUENCIA: Cu03 Borrar producto del carrito

85

DIAGRAMA SECUENCIA: Cu04 Emitir comprobante de pago

86

DIAGRAMA SECUENCIA: Cu06 Elegir forma de pago

DIAGRAMA SECUENCIA: Cu08 Modificar contrasea usuario

87

DIAGRAMA catalogo

SECUENCIA:

Cu11

Aadir

producto

artesana

al

88

DIAGRAMA SECUENCIA: Cu12 Modificar producto artesana en catalogo

89

DIAGRAMA catalogo

SECUENCIA:

Cu13

Borrar

producto

artesana

en

90

DIAGRAMA SECUENCIA: Cu14 Registrar envo de productos

DIAGRAMA SECUENCIA: Cu15 Modificar ofertas publicadas

91

DIAGRAMA SECUENCIA: Cu17 Enviar mensajes de ofertas y agradecimiento a los clientes

92

7.2. DIAGRAMA DE CLASES ACTUALIZADO

93

CAPITULO VIII
IMPLEMENTACION

VII1 REVISION DE INTERFAZ GRAFICA MENU PRINCIPAL

94

QUIENES SOMOS

MUESTRO PRODUCTOS

95

CATALAGO CERAMICA

DETALLE CERAMICA

96

REGISTRAR CLIENTE

INTERFAZ DE MENSAJE

97

INTERFAZ CARRITO

Aadiendo al carrito

98

FORMA DE COMPRA Y DETALLE PRODUCTO

FACTURA DE COMPRA

99

Recomendaciones

100

CODIGO WEB MENU PRINCIPAL

101

CODIGO WEB REGISTRAR CLIENTE

102

103

BEAN DE CLIENTE

104

DAOCliente Registrar cliente, listar cliente, buscar cliente

105

106

107

SERVLET CLIENTE

108

CODIGO PARA CARGAR CESTA O CARRITO DE COMPRAS


package pe.com.articulos; import java.io.InputStream; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.entity.BufferedHttpEntity; import org.apache.http.impl.client.DefaultHttpClient; import org.ksoap2.SoapEnvelope; import org.ksoap2.serialization.SoapObject; import org.ksoap2.serialization.SoapPrimitive; import org.ksoap2.serialization.SoapSerializationEnvelope; import org.ksoap2.transport.HttpTransportSE; import utils.DatosCesta; import utils.ListaCesta; import utils.Validaciones; import utils.Valores; public class Cesta extends Activity { private TableLayout tlCesta; private CheckBox borrar = null; private ImageView imagenProd = null; private TextView nombreProd = null; private EditText cantidadProd = null; private TextView precioProd = null; private static final String HOST = Valores.HOST; private String ruta = "http://"+HOST+"/catalog/images/"; private Bundle bundle = null;

109

private TableRow row=null; private HashMap<String, TableRow> cantidadCesta= new HashMap<String, TableRow>(); private double total = 0.0; //botones private ImageView ivInicio = null; private ImageView ivActualizaCesta=null; private ImageView ivLimpiaCesta = null; private ImageView ivRegresar = null; private ImageView ivConfirmarPedido = null; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.cesta); //objetos obtenidos del xml ivInicio = (ImageView)findViewById(R.id.ivInicioCesta); tlCesta = (TableLayout)findViewById(R.id.tlCesta); ivActualizaCesta = (ImageView) findViewById(R.id.ivActualizaCesta); ivLimpiaCesta = (ImageView)findViewById(R.id.ivLimpiaCesta); ivRegresar = (ImageView)findViewById(R.id.ivRegresarCesta); ivConfirmarPedido = (ImageView) findViewById(R.id.ivConfirmaPedido); //click ivInicio.setOnClickListener(ivInicioPres); ivActualizaCesta.setOnClickListener(ivActualizaCestaPres); ivLimpiaCesta.setOnClickListener(ivLimpiaCestaPres); ivRegresar.setOnClickListener(ivRegresarPres); ivConfirmarPedido.setOnClickListener(ivConfirmarPedidoPres); llenaCesta(); } public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { return false; } return super.onKeyDown(keyCode, event);

110

} public void llenaCesta(){ double precioCant = 0.0; double subTotalProd = 0.0; total = 0.0; TextView tvTotal = (TextView) findViewById(R.id.tvPrecioTotalCesta); if (!ListaCesta.arregloCesta.isEmpty()){ bundle = getIntent().getExtras(); if (bundle != null){ String id = bundle.getString("idProducto"); Log.i("bundle", id+" "+bundle.getString("cantidad")); DatosCesta datos = ListaCesta.arregloCesta.get(id); Log.i("id",datos.getIdProducto()); /* DatosCesta sumaUno = ListaCesta.arregloCesta.get(id); int cantidad = sumaUno.getCantidadProd(); sumaUno.setCantidadProd(cantidad+1); ListaCesta.arregloCesta.put(id, sumaUno); */ } try{ int cont=0; Set set = ListaCesta.arregloCesta.entrySet(); Iterator i = set.iterator(); while(i.hasNext()){ Map.Entry<String,DatosCesta> me = (Map.Entry<String, DatosCesta>)i.next(); //Log.i("Datos map: ",me.getKey() + " : " + ((DatosCesta) me.getValue()).getNombreProducto()); row = new TableRow(this); row.setLayoutParams(new LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); String rutaUrl = ruta + ((DatosCesta) me.getValue()).getImagenProducto();

111

/* String rutaUrl = ruta + ((DatosCesta) me.getValue()).getImagenProducto(); URL aURL = new URL(rutaUrl); HttpURLConnection conn= (HttpURLConnection)aURL.openConnection(); conn.setDoInput(true); conn.connect(); int length = conn.getContentLength(); int[] bitmapData =new int[length]; byte[] bitmapData2 =new byte[length]; InputStream is = conn.getInputStream(); Bitmap bmImg = BitmapFactory.decodeStream(is); */ //cambio HttpGet httpRequest = null; try { httpRequest = new HttpGet(rutaUrl); } catch (Exception e) { e.printStackTrace(); } HttpClient httpclient = new DefaultHttpClient(); HttpResponse response = (HttpResponse) httpclient.execute(httpRequest); HttpEntity entity = response.getEntity(); BufferedHttpEntity bufHttpEntity = new BufferedHttpEntity(entity); InputStream instream = bufHttpEntity.getContent(); Bitmap bmImg = BitmapFactory.decodeStream(instream); //fin Bitmap bMapScala = Bitmap.createScaledBitmap(bmImg, 80, 80, true); borrar = new CheckBox(this); borrar.setLayoutParams(new LayoutParams(30, LayoutParams.FILL_PARENT)); imagenProd = new ImageView(this); imagenProd.setLayoutParams(new LayoutParams( LayoutParams.FILL_PARENT,

112

LayoutParams.FILL_PARENT)); imagenProd.setImageBitmap(bMapScala); nombreProd = new TextView(this); nombreProd.setText(((DatosCesta) me.getValue()).getNombreProducto()); nombreProd.setTextColor(Color.BLACK); nombreProd.setLayoutParams(new LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); nombreProd.setGravity(Gravity.CENTER_VERTICAL); nombreProd.setWidth(50); cantidadProd = new EditText(this);

cantidadProd.setText( Integer.toString(((DatosCesta) me.getValue()).getCantidadProd())); cantidadProd.setTextColor(Color.BLACK); cantidadProd.setLayoutParams(new LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); cantidadProd.setGravity(Gravity.CENTER_VERTICAL); cantidadProd.setWidth(30); cantidadProd.setHeight(5); cantidadProd.setLines(1); cantidadProd.setId(100+cont); precioCant = ((DatosCesta) me.getValue()).getPrecioProd(); subTotalProd = precioCant * Double.parseDouble(cantidadProd.getText().toString()); precioProd = new TextView(this); precioProd.setText(Double.toString(subTotalProd)); precioProd.setTextColor(Color.BLACK); precioProd.setLayoutParams(new LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); precioProd.setGravity(Gravity.CENTER_VERTICAL); precioProd.setWidth(20);

113

row.addView(borrar); row.addView(imagenProd); row.addView(nombreProd); row.addView(cantidadProd); row.addView(precioProd); row.setBackgroundColor(Color.WHITE); tlCesta.addView(row); //arr.add(row); cantidadCesta.put(((DatosCesta) me.getValue()).getIdProducto(), row); total += Double.parseDouble(((TextView)(row.getChildAt(4))).getText().toString()); //Log.i("total", Double.toString(total)); tvTotal.setText(Double.toString(total)); cont++; } } catch(Exception err){ Log.e("error", err.toString()); } } else{ ImageView ivSinProductos = new ImageView(this); ivSinProductos = (ImageView)findViewById(R.id.ivSinProductosCesta); Bitmap bitmapOrg = BitmapFactory.decodeResource(getResources(),R.drawable.cestavacia); Bitmap bMapScala = Bitmap.createScaledBitmap(bitmapOrg, 192, 100, true); BitmapDrawable bmd = new BitmapDrawable(bMapScala); ivSinProductos.setImageDrawable(bmd); ivRegresar.setOnClickListener(ivRegresarPresIni); } } private void actualizaCesta(){ Set set = cantidadCesta.entrySet(); Iterator i = set.iterator();

114

if (validaCesta() == false){ while(i.hasNext()){ Map.Entry<String, TableRow> me = (Map.Entry<String, TableRow>)i.next(); /* if (validaCantidad(Integer.parseInt(me.getKey()), Integer.parseInt(((EditText) me.getValue().getChildAt(3)).getText().toString())) == false){ mensajeError("Error", "La cantidad capturada es mayor que la existente en inventario del producto "+ ((TextView) me.getValue().getChildAt(2)).getText().toString()); break; } */ if (((EditText) me.getValue().getChildAt(3)).getText().toString().length() me.getValue().getChildAt(3)).getText().toString()) ){ == 0 || !Validaciones.esNumero(((EditText)

mensajeError("Error", "Verifique la cantidad del producto "+ ((TextView) me.getValue().getChildAt(2)).getText().toString()); break;} else{ String cantProd = ((EditText) me.getValue().getChildAt(3)).getText().toString(); Log.i("Cajas texto: ",me.getKey() + " : " + cantProd); if (Integer.parseInt(cantProd) == 0 || ((CheckBox) me.getValue().getChildAt(0)).isChecked()){ Log.i("Borrado","La clave "+me.getKey()+" Ah sido borrado"); ListaCesta.arregloCesta.remove(me.getKey()); Intent intent = new Intent(); intent.setClass(Cesta.this, Cesta.class); startActivity(intent); finish();} else{ int nuevaCant = Integer.parseInt(((EditText) me.getValue().getChildAt(3)).getText().toString()); DatosCesta cantidadCambiada = ListaCesta.arregloCesta.get(me.getKey()); cantidadCambiada.setCantidadProd(nuevaCant); ListaCesta.arregloCesta.put(me.getKey(), cantidadCambiada); Intent intent = new Intent(); intent.setClass(Cesta.this, Cesta.class); startActivity(intent); finish(); }

115

//sumaCant.setCantidadProd(cantidadDatos+Integer.parseInt(cantidad.getText().toString())); }}}} else{ mensajeError("Error", "Revise cantidad");}} private void limpiaCesta(){ ListaCesta.arregloCesta.clear(); Intent intent = new Intent(); intent.setClass(Cesta.this, Cesta.class); startActivity(intent); finish(); }

private boolean validaCesta(){ boolean encontrado = false; if (ListaCesta.arregloCesta.isEmpty() == true){ return true;} if (!cantidadCesta.isEmpty()){ Set set = cantidadCesta.entrySet(); Iterator i = set.iterator(); while(i.hasNext()){ Map.Entry<String,TableRow> me = (Map.Entry<String, TableRow>)i.next(); Log.i("Cesta confirmada: ",me.getKey() + " Producto: "+((TextView) me.getValue().getChildAt(2)).getText().toString() +" Cantidad:"+((EditText) me.getValue().getChildAt(3)).getText().toString() ); if (((EditText) me.getValue().getChildAt(3)).getText().toString().length()>0 && Validaciones.esNumero(((EditText) me.getValue().getChildAt(3)).getText().toString())){ int num = Integer.parseInt(((EditText) me.getValue().getChildAt(3)).getText().toString()); if (num < 0){ encontrado = true; break;}} if (!Validaciones.esNumero(((EditText) me.getValue().getChildAt(3)).getText().toString()) ){ //mensajeError("Error", "Verifique me.getValue().getChildAt(2)).getText().toString()); encontrado = true; break; la cantidad del producto "+ ((TextView)

116

} else{ encontrado = false;}}} return encontrado;} private boolean validaCantidad(int idProd, int cantidad){ //Definicin para servicio Web String SOAP_ACTIONV = "capeconnect:servicios:serviciosPortType#validaCantidad"; String METHOD_NAMEV = "validaCantidad"; String NAMESPACEV = "http://www.your-company.com/servicios.wsdl"; String URLV = "http://"+HOST+"/servicios/servicios.php"; SoapSerializationEnvelope envelopeValida; HttpTransportSE httptValida; SoapObject resultValida; SoapObject requestValida = new SoapObject(NAMESPACEV, METHOD_NAMEV); try{ httptValida = new HttpTransportSE(URLV); envelopeValida = new SoapSerializationEnvelope( SoapEnvelope.VER11 ); envelopeValida.dotNet = false; requestValida.addProperty ("idProd", idProd ); requestValida.addProperty ("cantidad", cantidad); envelopeValida.setOutputSoapObject(requestValida); httptValida.call(SOAP_ACTIONV, envelopeValida); resultValida = (SoapObject)envelopeValida.bodyIn; SoapPrimitive result = (SoapPrimitive) resultValida.getProperty("result"); //Log.e("resultado valida cant", result.toString()); if (Integer.parseInt(result.toString()) == 1){ return true; } else{ return false; } }catch (Exception e) {

117

return false; }} private OnClickListener ivInicioPres = new OnClickListener() { public void onClick(View arg0) { Intent intent = new Intent(); intent.setClass(Cesta.this, Principal.class); startActivity(intent); finish();}}; private OnClickListener ivActualizaCestaPres = new OnClickListener() { public void onClick(View arg0) { actualizaCesta();}}; private OnClickListener ivLimpiaCestaPres = new OnClickListener() { public void onClick(View arg0) { limpiaCesta();}}; private OnClickListener ivRegresarPres = new OnClickListener() { public void onClick(View arg0) { Intent intent = new Intent(); intent.setClass(Cesta.this, MuestraCategorias.class); startActivity(intent); finish();}}; private OnClickListener ivRegresarPresIni = new OnClickListener() { public void onClick(View arg0) { Intent intent = new Intent(); intent.setClass(Cesta.this, Principal.class); startActivity(intent); finish();}}; private OnClickListener ivConfirmarPedidoPres = new OnClickListener() { public void onClick(View arg0) { if (validaCesta() == false){ Intent intent = new Intent(); intent.setClass(Cesta.this, VerificaCliente.class); startActivity(intent);

118

finish(); } else{ mensajeError("Error", "Verifique cantidad");}}}; private void mensajeError(String titulo, String msj){ new AlertDialog.Builder(Cesta.this) .setTitle(titulo) .setMessage(msj) .setPositiveButton("Ok", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { setResult(RESULT_OK);}}) .show();}}

LISTAR PEDIDO
public class ListadoPedidos { private int idPedido; private String fecha; private int cantProd; private double precioTot; private String estado;

public String getEstado() { return estado; } public void setEstado(String estado) { this.estado = estado; } public int getIdPedido() { return idPedido; } public void setIdPedido(int idPedido) { this.idPedido = idPedido; } public String getFecha() { return fecha;

119

} public void setFecha(String fecha) { this.fecha = fecha; } public int getCantProd() { return cantProd; } public void setCantProd(int cantProd) { this.cantProd = cantProd; } public double getPrecioTot() { return precioTot; } public void setPrecioTot(double precioTot) { this.precioTot = precioTot; }}

COMPRA FINALIZADA

package pe.com.art; import org.ksoap2.SoapEnvelope; import org.ksoap2.serialization.SoapObject; import org.ksoap2.serialization.SoapPrimitive; import org.ksoap2.serialization.SoapSerializationEnvelope; import org.ksoap2.transport.HttpTransportSE;

import utils.Valores; public class CompraFinalizada extends Activity{ private ImageView ivInicio; private ImageView ivLlamar; private ImageView ivSms; private String HOST = Valores.HOST;

120

private Bundle bundle; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.comprafinalizada); bundle = getIntent().getExtras(); enviaCorreo(bundle.getString("idPedido"));

if (obtenerCelular() != null){ ivSms = (ImageView) findViewById(R.id.ivSms); ivSms.setOnClickListener(ivSmsPres); } ivInicio = (ImageView) findViewById(R.id.ivInicioCompraFin); ivInicio.setOnClickListener(ivInicioPres); ivLlamar = (ImageView) findViewById(R.id.ivLlamar); ivLlamar.setOnClickListener(ivLlamarPres); ivSms = (ImageView) findViewById(R.id.ivSms); ivSms.setOnClickListener(ivSmsPres); } private void enviaCorreo(String idPedido){ //Definicin para servicio Web String SOAP_ACTION = "capeconnect:servicios:serviciosPortType#correoOrden"; String METHOD_NAME = "correoOrden"; String NAMESPACE = "http://www.your-company.com/servicios.wsdl"; String URL = "http://"+HOST+"/servicios/servicios.php"; SoapSerializationEnvelope envelope; HttpTransportSE httpt; SoapObject result=null; //Fin definicin try{ SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);

121

httpt = new HttpTransportSE(URL); envelope = new SoapSerializationEnvelope( SoapEnvelope.VER11 ); envelope.dotNet = false; request.addProperty ("idPedido", idPedido); envelope.setOutputSoapObject(request); httpt.call(SOAP_ACTION, envelope); //result = (SoapObject) envelope.bodyIn; //SoapObject resultSoap = (SoapObject) envelope.getResponse(); }catch (Exception e) { Log.e("error enviaCorreo", e.toString()); } } private String obtenerTelefono(){ //Definicin para servicio Web String SOAP_ACTION = "capeconnect:servicios:serviciosPortType#obtenerTelefono"; String METHOD_NAME = "obtenerTelefono"; String NAMESPACE = "http://www.your-company.com/servicios.wsdl"; String URL = "http://"+HOST+"/servicios/servicios.php"; SoapSerializationEnvelope envelope; HttpTransportSE httpt; SoapObject result=null; //Fin definicin try{ SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); httpt = new HttpTransportSE(URL); envelope = new SoapSerializationEnvelope( SoapEnvelope.VER11 ); envelope.dotNet = false; envelope.setOutputSoapObject(request); httpt.call(SOAP_ACTION, envelope); result = (SoapObject) envelope.bodyIn;

122

SoapPrimitive spTelefono = (SoapPrimitive) result.getProperty("result"); //SoapObject resultSoap = (SoapObject) envelope.getResponse(); Log.i("Telefono", spTelefono.toString()); return spTelefono.toString(); }catch (Exception e) { Log.e("error obtener telfono", e.toString()); return ""; } } private String obtenerCelular(){ //Definicin para servicio Web String SOAP_ACTION = "capeconnect:servicios:serviciosPortType#obtenerCelular"; String METHOD_NAME = "obtenerCelular"; String NAMESPACE = "http://www.your-company.com/servicios.wsdl"; String URL = "http://"+HOST+"/servicios/servicios.php"; SoapSerializationEnvelope envelope; HttpTransportSE httpt; SoapObject result=null; //Fin definicin try{ SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); httpt = new HttpTransportSE(URL); envelope = new SoapSerializationEnvelope( SoapEnvelope.VER11 ); envelope.dotNet = false; envelope.setOutputSoapObject(request); httpt.call(SOAP_ACTION, envelope); result = (SoapObject) envelope.bodyIn; SoapPrimitive spCelular = (SoapPrimitive) result.getProperty("cel"); //SoapObject resultSoap = (SoapObject) envelope.getResponse(); Log.i("Celular", spCelular.toString());

123

return spCelular.toString(); }catch (Exception e) { Log.e("error obtener telfono", e.toString()); return null; } } public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { return false; } return super.onKeyDown(keyCode, event); } private OnClickListener ivInicioPres = new OnClickListener() { public void onClick(View arg0) { Intent intent = new Intent(); intent.setClass(CompraFinalizada.this, Principal.class); startActivity(intent); finish(); } }; private OnClickListener ivLlamarPres = new OnClickListener() {

public void onClick(View arg0) { try { Intent intentLlamada = new Intent(Intent.ACTION_CALL); intentLlamada.setData(Uri.parse("tel:"+obtenerTelefono())); startActivity(intentLlamada); } catch (ActivityNotFoundException err) { Log.e("error llamar", err.toString());

124

Toast.makeText(CompraFinalizada.this, Toast.LENGTH_LONG).show(); } } }; private OnClickListener ivSmsPres = new OnClickListener() { public void onClick(View arg0) {

"No

se

puede

establecer

la

llamada",

final AlertDialog.Builder alerta = new AlertDialog.Builder(CompraFinalizada.this); final EditText entrada = new EditText(CompraFinalizada.this); entrada.setHeight(150); entrada.setText("El "+bundle.getString("idPedido")); cliente "+bundle.getString("nombreC")+" ha realizado el pedido

alerta.setView(entrada); alerta.setPositiveButton("Enviar", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { SmsManager sms = SmsManager.getDefault(); sms.sendTextMessage(obtenerCelular(), null, entrada.getText().toString(), null, null); Toast.makeText(CompraFinalizada.this, "Enviando mensaje", Toast.LENGTH_LONG).show(); Log.i("sms", entrada.getText().toString()); } }); alerta.setNegativeButton("Cancelar", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { dialog.cancel(); } }); alerta.setTitle("Mensaje"); alerta.show();}};}

125

DESCRIPCION DE PRODUCTO
package pe.com.art; import java.io.InputStream; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.entity.BufferedHttpEntity; import org.apache.http.impl.client.DefaultHttpClient; import org.ksoap2.SoapEnvelope; import org.ksoap2.serialization.SoapObject; import org.ksoap2.serialization.SoapPrimitive; import org.ksoap2.serialization.SoapSerializationEnvelope; import org.ksoap2.transport.HttpTransportSE; import utils.DatosCesta; import utils.ListaCesta; import utils.Producto; import utils.Validaciones; import utils.Valores; public class DescripcionProdSelec extends Activity{ private static final String HOST = Valores.HOST; //esto es para el equipo local private static final String SOAP_ACTION = "capeconnect:servicios:serviciosPortType#obtenerProducto"; private static final String METHOD_NAME = "obtenerProducto"; private static final String NAMESPACE = "http://www.your-company.com/servicios.wsdl"; private static final String URL = "http://"+HOST+"/servicios/servicios.php"; private SoapSerializationEnvelope envelope; private HttpTransportSE httpt; private Producto producto;

126

Bundle bundle = null; //botones private ImageView ivCesta = null; private ImageView ivRegresa = null; private ImageView ivInicio = null; private SoapObject result; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.descripcionprodselec); //acciones ivRegresa = (ImageView)findViewById(R.id.ivRegresarDescripProd); ivRegresa.setOnClickListener(ivRegresaPres); ivCesta = (ImageView) findViewById(R.id.ivAgregaCestaDescripProd); ivCesta.setOnClickListener(ivCestaPress); ivInicio = (ImageView) findViewById(R.id.ivInicioDescripProdSelec); ivInicio.setOnClickListener(ivInicioPres); SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); httpt = new HttpTransportSE(URL); envelope = new SoapSerializationEnvelope( SoapEnvelope.VER11 ); envelope.dotNet = false; bundle = getIntent().getExtras(); request.addProperty ("idProd", bundle.getString("idProducto")); envelope.setOutputSoapObject(request); producto = new Producto(); inicializaCat(); } public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) {

127

return false; } return super.onKeyDown(keyCode, event); } private void inicializaCat(){ //ObtenerValoresJSon obtenerValores = new ObtenerValoresJSon(); //Bundle prodObtenidos = new Bundle(); final String url = "http://"+HOST+"/catalog/images/"; TextView tvNombreProd = (TextView) findViewById(R.id.tvNombProdDescripProd); TextView tvModeloProd = (TextView) findViewById(R.id.tvModeloProdDescripProd); TextView tvDescripProd = (TextView) findViewById(R.id.tvDescripProdDescripProd); TextView tvPrecioProd = (TextView) findViewById(R.id.tvPrecioProdDescripProd); TextView tvFabricanteProd = (TextView) findViewById(R.id.tvFabricanteDescripProd); ImageView ivImagenProd = (ImageView) findViewById(R.id.ivImgProdDescripProd); try{ httpt.call(SOAP_ACTION, envelope); result = (SoapObject)envelope.bodyIn; SoapObject resultSoap = (SoapObject) envelope.getResponse(); //obtenemos las primitivas SoapPrimitive id = (SoapPrimitive) resultSoap.getProperty("idProd"); SoapPrimitive nombre = (SoapPrimitive) resultSoap.getProperty("nombreProd"); SoapPrimitive descripcion = (SoapPrimitive) resultSoap.getProperty("descripProd"); SoapPrimitive modelo = (SoapPrimitive) resultSoap.getProperty("modeloProd"); SoapPrimitive cantidad = (SoapPrimitive) resultSoap.getProperty("cantidadProd"); SoapPrimitive imagen = (SoapPrimitive) resultSoap.getProperty("imagenProd"); SoapPrimitive precio = (SoapPrimitive) resultSoap.getProperty("precioProd"); SoapPrimitive fabricante = (SoapPrimitive) resultSoap.getProperty("fabricanteProd");

128

double precioProd = Double.parseDouble(precio.toString()); producto.setIdProd(id.toString()); producto.setNombreProd(nombre.toString()); producto.setDescripProd(descripcion.toString()); producto.setModeloProd(modelo.toString()); producto.setCantidadProd(cantidad.toString()); producto.setImagenProd(imagen.toString()); producto.setPrecioProd(Double.toString(precioProd)); producto.setFabricanteProd(fabricante.toString()); tvNombreProd.setText(producto.getNombreProd()); tvModeloProd.setText("Modelo: ["+producto.getModeloProd()+"]"); tvDescripProd.setText(producto.getDescripProd()); tvPrecioProd.setText("$"+producto.getPrecioProd()); tvFabricanteProd.setText(producto.getFabricanteProd()); ImageView i = new ImageView(DescripcionProdSelec.this); /* URL aURL = new URL(url+producto.getImagenProd()); URLConnection conn = aURL.openConnection(); conn.connect(); InputStream is = conn.getInputStream(); BufferedInputStream bis = new BufferedInputStream(is); Bitmap bm = BitmapFactory.decodeStream(bis); bis.close(); is.close(); */ //cambio String rutaUrl = url+producto.getImagenProd(); HttpGet httpRequest = null;

129

try { httpRequest = new HttpGet(rutaUrl); } catch (Exception e) { e.printStackTrace(); } HttpClient httpclient = new DefaultHttpClient(); HttpResponse response = (HttpResponse) httpclient.execute(httpRequest); HttpEntity entity = response.getEntity(); BufferedHttpEntity bufHttpEntity = new BufferedHttpEntity(entity); InputStream instream = bufHttpEntity.getContent(); Bitmap bm = BitmapFactory.decodeStream(instream); //fin i.setImageBitmap(bm); ivImagenProd.setImageBitmap(bm); } catch(Exception err){ new AlertDialog.Builder(DescripcionProdSelec.this) .setTitle("error en inicializaCat()") .setMessage(err.toString()) .setPositiveButton("Ok", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { setResult(RESULT_OK); } }) .show(); Log.e("Error", err.toString()); } }

130

private boolean validaCantidad(int idProd, int cantidad){ //Definicin para servicio Web String SOAP_ACTIONV = "capeconnect:servicios:serviciosPortType#validaCantidad"; String METHOD_NAMEV = "validaCantidad"; String NAMESPACEV = "http://www.your-company.com/servicios.wsdl"; String URLV = "http://"+HOST+"/servicios/servicios.php"; SoapSerializationEnvelope envelopeValida; HttpTransportSE httptValida; SoapObject resultValida; SoapObject requestValida = new SoapObject(NAMESPACEV, METHOD_NAMEV); try{ httptValida = new HttpTransportSE(URLV); envelopeValida = new SoapSerializationEnvelope( SoapEnvelope.VER11 ); envelopeValida.dotNet = false; requestValida.addProperty ("idProd", idProd ); requestValida.addProperty ("cantidad", cantidad); envelopeValida.setOutputSoapObject(requestValida); httptValida.call(SOAP_ACTIONV, envelopeValida); resultValida = (SoapObject)envelopeValida.bodyIn; SoapPrimitive result = (SoapPrimitive) resultValida.getProperty("result"); //Log.e("resultado valida cant", result.toString()); if (Integer.parseInt(result.toString()) == 1){ return true; } else{ return false; } }catch (Exception e) {

131

return false; } } private OnClickListener ivCestaPress = new OnClickListener() { public void onClick(View arg0) { EditText cantidad = (EditText) findViewById(R.id.etxtCantidadDescripProd); if (!Validaciones.esNumero(cantidad.getText().toString())){ mensajeError("Error", "Capture la cantidad"); /* if (Validaciones.esNumero(cantidad.getText().toString())){ if (Integer.parseInt(cantidad.getText().toString()) <= 0 ) mensajeError("Error", "La cantidad debe ser mayor o igual a 1"); } */ } else{ if (Integer.parseInt(cantidad.getText().toString())!= 0 ){ if Integer.parseInt(cantidad.getText().toString())) == true){ (validaCantidad(Integer.parseInt(producto.getIdProd()),

DatosCesta dc = new DatosCesta(); dc.setIdProducto(producto.getIdProd()); dc.setImagenProducto(producto.getImagenProd()); dc.setNombreProducto(producto.getNombreProd());

dc.setCantidadProd(Integer.parseInt(cantidad.getText().toString()));

dc.setPrecioProd(Double.parseDouble(producto.getPrecioProd())); DatosCesta ListaCesta.arregloCesta.get(producto.getIdProd()); if (sumaCant != null){ sumaCant =

132

int cantidadDatos = sumaCant.getCantidadProd();

sumaCant.setCantidadProd(cantidadDatos+Integer.parseInt(cantidad.getText().toString())); ListaCesta.arregloCesta.put(producto.getIdProd(), sumaCant); } else{ ListaCesta.arregloCesta.put(dc.getIdProducto(), dc); } Intent intent = new Intent(); intent.putExtra("idProducto", producto.getIdProd()); intent.putExtra("cantidad", cantidad.getText().toString()); intent.setClass(DescripcionProdSelec.this, Cesta.class); startActivity(intent); finish(); } else{ mensajeError("Error", "La cantidad capturada es mayor que la existente en inventario"); } } else{ mensajeError("Error", "Capture cantidad"); } } } };

private OnClickListener ivRegresaPres = new OnClickListener() { public void onClick(View v) { Intent intent = new Intent();

133

if (bundle.getInt("busca") != 0){ intent.putExtra("palabra", bundle.getString("palabra")); intent.setClass(DescripcionProdSelec.this, ProductosListCatLVBuscar.class); startActivity(intent); finish(); } else{ intent.putExtra("idCategoria", bundle.getString("idCategoria")); intent.setClass(DescripcionProdSelec.this, ProductosListCatLV.class); startActivity(intent); finish(); } } }; private OnClickListener ivInicioPres = new OnClickListener() { public void onClick(View arg0) { Intent intent = new Intent(); intent.setClass(DescripcionProdSelec.this, Principal.class); startActivity(intent); finish(); } }; private void mensajeError(String titulo, String msj){ new AlertDialog.Builder(DescripcionProdSelec.this) .setTitle(titulo) .setMessage(msj) .setPositiveButton("Ok", new DialogInterface.OnClickListener() {

134

public void onClick(DialogInterface dialog, int whichButton) { setResult(RESULT_OK); } }) .show(); } }

DATOS DEL USUARIO


package pe.com.art; public class DatosCuenta extends Activity{ private ImageView ivInicio; private ImageView ivVerPedidos; private ImageView ivModificaDatos; private ImageView ivCambiaContra; private ImageView ivCancelaPedidos; private Bundle bundle; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.datoscuenta); ivInicio = (ImageView)findViewById(R.id.ivInicioDatosCliente); ivInicio.setOnClickListener(ivInicioPres); ivVerPedidos = (ImageView)findViewById(R.id.ivVerPedidosCliente); ivVerPedidos.setOnClickListener(ivVerPedidosPres); ivModificaDatos = (ImageView)findViewById(R.id.ivModificaDatosCliente); ivModificaDatos.setOnClickListener(ivModificaDatosPres); ivCambiaContra = (ImageView)findViewById(R.id.ivModificaPasswordCliente); ivCambiaContra.setOnClickListener(ivCambiaContraPres); ivCancelaPedidos = (ImageView)findViewById(R.id.ivCancelaPedidosCliente);

135

ivCancelaPedidos.setOnClickListener(ivCancelaPedidosPres); bundle = getIntent().getExtras(); } public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { return false; } return super.onKeyDown(keyCode, event); } private OnClickListener ivInicioPres = new OnClickListener() { public void onClick(View arg0) { Intent intent = new Intent(); intent.setClass(DatosCuenta.this, Principal.class); startActivity(intent); finish(); } }; private OnClickListener ivVerPedidosPres = new OnClickListener() { public void onClick(View arg0) { Intent intent = new Intent(); intent.putExtra("emailCliente", bundle.getString("emailCliente")); intent.putExtra("contra", bundle.getString("contra")); intent.setClass(DatosCuenta.this, RevisaPedidosCliente.class); startActivity(intent); finish(); } };

136

private OnClickListener ivModificaDatosPres = new OnClickListener() { public void onClick(View arg0) { Intent intent = new Intent(); intent.putExtra("emailCliente", bundle.getString("emailCliente")); intent.putExtra("contra", bundle.getString("contra")); intent.setClass(DatosCuenta.this, ModificaDatosCliente.class); startActivity(intent); finish(); } }; private OnClickListener ivCambiaContraPres = new OnClickListener() { public void onClick(View arg0) { Intent intent = new Intent(); intent.putExtra("emailCliente", bundle.getString("emailCliente")); intent.putExtra("contra", bundle.getString("contra")); intent.setClass(DatosCuenta.this, ActualizaContra.class); startActivity(intent); finish();}}; private OnClickListener ivCancelaPedidosPres = new OnClickListener() { public void onClick(View arg0) { Intent intent = new Intent(); intent.putExtra("emailCliente", bundle.getString("emailCliente")); intent.putExtra("contra", bundle.getString("contra")); intent.setClass(DatosCuenta.this, CancelaPedidos.class); startActivity(intent); finish(); }};}

137

ANEXO RESUMEN En este trabajo se describe las etapas del proceso de ICONIX. Como primer punto tenemos el anlisis de requisitos, donde se identifican los requerimientos de los usuarios, para identificar los objetos y realizar el modelo de dominio. El modelo de dominio constituye la base de toda la actividad del Modelado de objetos. Como segundo punto se tiene el anlisis de casos de uso que estn descritos en el contexto del modelo de dominio, se identifican las tareas del negocio. En el captulo de la revisin de requisitos nos permite garantizar la coincidencia del sistema con los requisitos y las abstracciones del modelo de dominio. En el cuarto captulo se detalla el anlisis de robustez tomando como base todos los captulos anteriores. El artefacto este captulo es el diagrama de robustez que se obtiene para cada caso de uso. El anlisis de robustez es el intermedio entre el anlisis y diseo.

SISTEMA WEB PARA LA COMERCIALIZACIN DE ARTESANA DE HUAMANGA SHOSAKO NAGASE CON TECNOLOGIA CRM La artesana se impone en Huamanga con fines de suntuosidad y necesidad cotidiana. El artesano ayacuchano como heredero de una larga tradicin, expresa con autenticidad personal y calidad profesional su obra, que es testigo de su sentir, su sociedad y su cultura, consagrndose por generaciones y lograr al natural paso del tiempo una increble maestra y una muestra de talento creador, pocas veces superado. En Ayacucho se desarrollaron ms de 40 lneas artesanales, mantenindose en cada de ellas la expresin artstica (pese a su deformacin y gradual extincin de algunos). Se llama artesana a la produccin de bienes elaborados a mano, o con la ayuda de una

138

herramientas o medios mecnicos siempre y cuando la participacin del trabajo manual siga siendo el componente ms importante del producto final.

TECNOLOGIA: CRM (CUSTOMER RELATIONSHIP MANAGEMENT). En su traduccin literal, se entiende como la Gestin sobre la Relacin con los Consumidores, bsicamente se refiere a una estrategia de negocios centrada en el cliente. Los beneficios del CRM no slo se concretan en la retencin y la lealtad de los clientes, sino tambin en tener un marketing ms efectivo, crear inteligentes oportunidades y abrir la posibilidad a una rpida introduccin de nuevos productos artesanales.

139

You might also like