Proyecto para una tienda On-Line

Entorno con Sistema Operativo Linux, servidor de aplicaciones. TOMCAT 5, y máquina virtual java 1.4.2_04. En ambos casos la base de datos ha sido MySQL ...
326KB Größe 400 Downloads 71 vistas
Proyecto para una tienda On-Line Documento FINAL Alumno Santiago González ITIG Consultor Javier Ferró García Fecha de entrega: 16/01/07

Proyecto de tienda On-Line

Documento FINAL

ÍNDICE

1.

INTRODUCCIÓN ................................................................................................................... 3

2. a) b) c) d) e) f) g) h)

FASE DE ANÁLISIS .............................................................................................................. 4 DESCRIPCIÓN DEL PROYECTO A DESARROLLAR ........................................................ 4 RESUMEN DEL ANÁLISIS ................................................................................................... 4 SEGURIDAD EN EL SISTEMA ............................................................................................. 6 DIAGRAMAS Y CASOS DE USO ......................................................................................... 6 DIAGRAMAS DE ESTADO/COLABORACION/SECUENCIA............................................ 27 DIAGRAMA ESTÁTICO ...................................................................................................... 29 DIAGRAMA DE PAQUETES............................................................................................... 30 DISEÑO DE PANTALLAS................................................................................................... 30

3.

FASE DE DISEÑO ............................................................................................................... 34 a) DISEÑO ARQUITECTÓNICO.............................................................................................. 34 ƒ Arquitectura J2EE........................................................................................................ 34 ƒ Patrones J2EE utilizados ............................................................................................ 35 b) SUBSISTEMAS DE LA APLICACIÓN ................................................................................ 37 ƒ Subsistema de Catálogo ............................................................................................. 38 Descripción ............................................................................................................... 38 Diagramas de clases del subsistema..................................................................... 38 Diagramas colaboración del subsistema............................................................... 40 ƒ Subsistema de Administración .................................................................................. 43 Descripción ............................................................................................................... 43 Diagramas de clases del subsistema..................................................................... 43 Diagramas colaboración del subsistema............................................................... 45 ƒ Subsistema de Listados.............................................................................................. 47 Descripción ............................................................................................................... 47 Diagramas de clases del subsistema..................................................................... 47 Diagramas colaboración del subsistema............................................................... 49 c) DIAGRAMA ENTIDAD-RELACIÓN .................................................................................... 50 ƒ Descripción de los atributos ...................................................................................... 51

4.

IMPLEMENTACION............................................................................................................. 53

5.

DESPLIEGUE ...................................................................................................................... 55

6.

VALORACION Y CONCLUSIONES.................................................................................... 56

7.

BIBLIOGRAFÍA Y DOCUMENTACIÓN .............................................................................. 58

Santiago González Prieto

Pag. 2

Proyecto de tienda On-Line

Documento FINAL

1. INTRODUCCIÓN El presente documento pretende describir las tareas generales realizadas en los distintos procesos de Análisis, Diseño y puesta en funcionamiento, así como los resultados generados por cada uno, dentro del desarrollo de una aplicación de compra electrónica a través de Internet, realizada con tecnología J2EE. Para comenzar con esta tarea, y como parte de la toma de requisitos, se decidió tomar la experiencia de algunos de los lugares que ya actualmente utilizan estos mecanismos de compra, y tratar de estudiar y analizar las funcionalidades más importantes que se deberían desarrollar. Productos como las herramientas de e-commerce de Ariba, usadas por grandes empresas como Telefónica, BBVA, etc., www.elcorteingles.es, www.fnac.es, son algunos de los ejemplos que se han ido evaluando de cara al producto final. Asimismo, y como los clientes que podrían utilizar la herramienta podrían ser muy distintos (en los tipos productos que venden, look&feel de la tienda, categorización de sus productos, etc.), se intentó desde el primer momento que el producto no estuviera enfocado a un tipo concreto de tienda online, sino que pudiera ser implantado en el máximo número de clientes de forma out of the box, es decir, con los mínimos (idealmente ninguno) cambios sobre el producto original, sobre todo en lo que se refiere a código. Un elemento que se quiso tener en cuenta es la intención que la propia tienda tenga un carácter comercial para la empresa que vende los productos, y no sólo como un lugar donde realizar compras. Para ello, se tomaron decisiones como la de incluir información general de la empresa en las pantallas iniciales, inclusión de banner en la página, permitir que cualquier usuario pudiera navegar por el catálogo y los productos, pedir información sobre ellos, etc. Además, el hecho de registrarse en la web tendría otros añadidos para los usuarios aparte del propio de poder comprar como serían la descarga del catálogo completo o de partes de él en un formato fácilmente portable como es el PDF. A nivel interno, otro elemento que se ha querido tener en cuenta para este desarrollo es la utilización en todo momento de elementos open source, es decir, aportar ventajas al sistema como que el coste de licencias para servidores de aplicaciones, bases de datos, sistema operativo, etc. sea nulo. En cuanto a la fase de desarrollo, se ha tratado de seguir este mismo sistema, por lo que se han utilizado herramientas como Netbeans para el entorno IDE de desarrollo, y frameworks como Struts (para el desarrollo de aplicaciones en 3 capas (MVC)), jasperreports (para el desarrollo de ficheros PDF) o poolman (para la gestión de las conexiones a la Base de Datos).

Santiago González Prieto

Pag. 3

Proyecto de tienda On-Line

Documento FINAL

En definitiva, se ha tratado de crear un producto ligero en cuanto a su rapidez de respuesta en productivo, con el mínimo coste monetario de implantación, fácilmente configurable e instalable y con una gran facilidad de expansión y mejora en un futuro. A continuación, veremos las distintas fases por las que se ha ido desarrollando esta aplicación.

2. FASE DE ANÁLISIS Esta sección tiene como objeto presentar y describir el análisis funcional para la implantación de una aplicación de compra electrónica a través de Internet. Esta plataforma proporcionará a las empresas, un servicio que facilita, agiliza y simplifica sus procesos de gestión de pedidos, así como la posibilidad de que sus clientes puedan realizar sus compras desde cualquier punto con una conexión a Internet y en cualquier momento.

a) DESCRIPCIÓN DEL PROYECTO A DESARROLLAR Dado que se trabajará con arquitectura cliente/servidor, el software resultante del proyecto estará ubicado en un servidor perteneciente a la tienda, al cual se accederá vía Internet. Cada uno de los usuarios tendrá ordenadores conectados a Internet y el software necesario para poder desarrollar su actividad será un navegador. Resumiendo, el software resultante del proyecto, permitirá el mantenimiento de los datos de los artículos, catálogos, usuario, etc., el tratamiento de las datos – informes pedidos por las empresas anunciadoras y facturación correspondiente -, la gestión de los pedidos que realicen los distintos usuarios de la herramienta y, finalmente, el acceso de todo usuario validado en el aplicativo mediante conexión remota o propia.

b) RESUMEN DEL ANÁLISIS Teniendo en cuenta la funcionalidad que se podrá obtener de la aplicación, a continuación se describe brevemente las soluciones presentadas en este análisis y su alcance concreto para cada uno de estos bloques:

Catálogos La aplicación deberá contener la posibilidad de crear tanto las estructuras que definan la jerarquía del catálogo que va a ser utilizado en la tienda virtual, Santiago González Prieto

Pag. 4

Proyecto de tienda On-Line

Documento FINAL

como la inclusión de los distintos artículos dentro de esta estructura. A su vez, esta jerarquía podrá ser consultada por los usuarios bien navegando por el catálogo o bien realizando búsquedas directas, de forma que puedan seleccionar los artículos necesarios e incluirlos dentro de su cesta de la compra para su posterior pedido.

Compra La aplicación debe permitir que un usuario, a partir de unos artículos seleccionados del catálogo, pueda realizar el envío de un pedido a la empresa. Este pedido podrá pasar por distintas fases según se encuentre su estado (pendiente, enviado, etc.) El usuario, a su vez, podrá cancelar el pedido en ciertas condiciones o consultar su histórico de compras realizadas a través de la plataforma.

Administración de datos Deberá existir una sección dentro de la aplicación que permita a usuario con un rol específico de administración, la opción de gestionar la información existente en el sistema. Esta administración deberá incluir: •

Alta, Baja, Modificación de usuarios.



Alta, Baja, Modificación de categorías en el catálogo



Alta, Baja, Modificación de artículos en el catálogo

Listados de información La aplicación deberá permitir a ciertos usuarios de la compañía, la realización de informes dentro de la herramienta. Estos informes estarán principalmente enfocados a los tipos de datos indicados anteriormente, aunque será posibilidad del usuario el seleccionar qué campos quiere mostrar y la ordenación necesaria. Los informes que se incorporarán a la herramienta en una primera versión serán: •

Datos sobre altas/bajas de usuarios en el sistema



Datos sobre altas/bajas de artículos en el sistema



Estadísticas de pedidos en el sistema

Santiago González Prieto

Pag. 5

Proyecto de tienda On-Line

Documento FINAL

c) SEGURIDAD EN EL SISTEMA Debido a la sensibilidad de los datos que se van a utilizar en la herramienta, se han tomado las siguientes medidas para conservar la seguridad de la información que fluye dentro de ella: •

Identificación de los usuarios que acceden a los módulos de compra y descarga de información en la aplicación mediante la introducción de su nombre y su contraseña.



Acceso restringido a determinados módulos según perfiles que se asocian los usuarios definidos en el sistema.



Los usuarios no se eliminan definitivamente. Los usuarios que ya no utilizarán el sistema obtienen una baja lógica que evita su acceso sin eliminar la información de las bases de datos.



Solicitud de confirmación antes de completar cualquier acción delicada para el sistema o de carácter irreversible.

.

d) DIAGRAMAS Y CASOS DE USO En este capítulo se describe cada uno de los procesos principales del sistema y sus procesos subordinados. En cada apartado se presenta gráficamente la relación entre el proceso principal y sus subordinados, así como los casos de uso de cada uno de ellos. Los casos de uso subordinados se han realizado en forma de tabla para que puedan servir como base para la realización en una fase posterior de una batería de pruebas sobre el sistema.

A continuación se presenta la lista de casos de uso aplicables al desarrollo de la aplicación:

Caso de Uso DESCRIPCIÓN CU-001-001 Proceso general de uso de la aplicación CU-001-002 Identificación en la aplicación CU-001-003 Búsqueda de Artículos en catálogo CU-001-004 Consultar catálogo CU-001-005 Añadir Artículos a Solicitud CU-001-006 Enviar Pedido CU-001-007 Consultar Pedidos CU-001-008 Exportar Catálogo

Santiago González Prieto

Pag. 6

Proyecto de tienda On-Line

Documento FINAL

Caso de Uso DESCRIPCIÓN CU-001-009 Alta como Comprador CU-002-001 Proceso general de administración de la aplicación CU-002-002 Identificación en la aplicación CU-002-003 Administración de Usuarios CU-002-004 Administración de Catálogo CU-002-005 Administración de Artículos CU-002-006 Administración de Pedidos CU-003-001 Proceso general de informes de la aplicación CU-002-002 Identificación en la aplicación CU-003-003 Informe de Usuarios CU-003-004 Informe de Artículos CU-003-005 Estadística de Pedidos

CU-001-001 - Proceso general de uso de la aplicación A continuación se esboza el escenario funcional de la plataforma para general la idea completa de uso de la plataforma.

Santiago González Prieto

Pag. 7

Proyecto de tienda On-Line

Documento FINAL

1. Identificación Identificador:

CU-001-002

Título:

Identificación en la aplicación

Santiago González Prieto

Pag. 8

Proyecto de tienda On-Line

Documento FINAL

2. Características Objetivo:

Descripción del proceso de identificación del usuario en la aplicación

Ámbito:

Creación de Tienda OnLine

Precondiciones:

Tener usuario, acceso y permisos en la plataforma

Condiciones éxito:

de

Condiciones fallo:

de

El usuario queda validado en el sistema •

Error en el sistema.



Datos de acceso incompletos o erróneos

Actor principal:

Usuario

Actores secundarios:

Sistema

Evento de disparo:

Selección de opción de identificación en el sistema

3. Descripción Funcional del Proceso Paso 1.

Acción Dentro de la aplicación, el usuario elige la opción para identificarse en el sistema

2.

El sistema muestra un formulario con el nombre de usuario y contraseña.

3.

El usuario introduce los valores para los campos

4.

El sistema valida que el nombre de usuario introducido es correcto y coincide con la palabra de paso introducida

5.



Si ha ocurrido algún error se muestra un mensaje por pantalla indicándolo



Si la validación es correcta, se presenta la pantalla en la que se encontraba el usuario, con las visión de un usuario registrado (comprador)

4. Información adicional Casos de subordinados:

uso



CU-001-006 – Enviar Pedido



CU-001-007 – Consultar Pedidos

1. Identificación Identificador:

CU-001-003

Título:

Búsqueda de Artículos en el Catálogo

Santiago González Prieto

Pag. 9

Proyecto de tienda On-Line

Documento FINAL

2. Características Objetivo:

Descripción del proceso de búsqueda de artículos del catálogo de la tienda

Ámbito:

Creación de Tienda OnLine

Precondiciones:

Estar dentro de la aplicación de tienda online

Condiciones éxito:

de

Condiciones fallo:

de

El usuario encuentra una lista con los artículos que cumplen la búsqueda realizada •

Error en el sistema.

Actor principal:

Usuario

Actores secundarios:

Sistema

Evento de disparo:

Selección de opción de buscar artículos

3. Descripción Funcional del Proceso Paso

Acción

1.

Dentro de la aplicación, el usuario elige la opción para buscar artículos en el sistema

2.

El sistema muestra un formulario para introducir las palabras de búsqueda.

3.

El usuario introduce los valores

4.

El sistema buscar los artículos que cumplen con el criterio indicado

4. Información adicional Casos de subordinados:

uso



CU-001-005 – Añadir Artículos a la Solicitud



CU-001-008 – Exportar Catálogo

1. Identificación Identificador:

CU-001-004

Título:

Consultar Catálogo

2. Características Objetivo:

Descripción del proceso de consulta de artículos del catálogo de la tienda

Ámbito:

Creación de Tienda OnLine

Precondiciones:

Estar dentro de la aplicación de tienda online

Santiago González Prieto

Pag.10

Proyecto de tienda On-Line

Documento FINAL

2. Características Condiciones éxito:

de

Condiciones fallo:

de

El usuario navega por la jerarquía de catálogo y su lista de artículos •

Error en el sistema.

Actor principal:

Usuario

Actores secundarios:

Sistema

Evento de disparo:

Navegación por las carpetas que forman la jerarquía de catálogos

3. Descripción Funcional del Proceso Paso

Acción

1.

Dentro de la aplicación, el usuario elige la opción para ver el catálogo electrónico

2.

El usuario pulsa en la rama del catálogo que le interesa

3.

El sistema muestra el contenido de la sección seleccionada por el usuario

4. Información adicional Casos de subordinados:

uso



CU-001-006 – Añadir Artículos a la Solicitud



CU-001-006 – Exportar Catálogo

1. Identificación Identificador:

CU-001-005

Título:

Añadir Artículos a Solicitud

2. Características Objetivo:

Descripción del proceso de creación adición de nuevos elementos a la solicitud

Ámbito:

Creación de Tienda OnLine

Precondiciones:

Haber realizado una búsqueda de artículos en el catálogo, bien por navegación o bien por búsqueda directa y estar logado en el sistema.

Condiciones éxito:

de

Condiciones fallo:

de

El artículo seleccionado se añade a una nueva solicitud

Santiago González Prieto



Error en el sistema.

Pag.11

Proyecto de tienda On-Line

Documento FINAL

2. Características Actor principal:

Usuario

Actores secundarios:

Sistema

Evento de disparo:

El usuario selecciona la opción de añadir un artículo a una solicitud

3. Descripción Funcional del Proceso Paso

Acción

1.

El usuario selecciona el/los artículos en que está interesado

2.

El usuario pulsa en añadir el artículo a una solicitud •

Si el artículo ya existía en la solicitud, se suman las cantidades anteriores a las actualmente añadidas y no se crea una nueva línea en la solicitud



Si el artículo no existe, se crea una nueva línea en la solicitud.

3.

4.

El sistema indica al usuario que se ha procedido a añadir el artículo a su solicitud de compra

4. Información adicional Casos de subordinados:

uso

1. Identificación Identificador:

CU-001-006

Título:

Enviar Pedido

2. Características Objetivo:

Descripción del proceso envío de un pedido para su tramitación

Ámbito:

Creación de Tienda OnLine

Precondiciones:

El usuario debe haberse identificado en el sistema y debe existir artículos en su solicitud

Condiciones éxito:

de

Condiciones fallo:

de

Actor principal:

El pedido es creado en el sistema •

Error en el sistema.

Usuario

Santiago González Prieto

Pag.12

Proyecto de tienda On-Line

Documento FINAL

2. Características Actores secundarios:

Sistema

Evento de disparo:

El usuario selecciona la opción de añadir un artículo a una solicitud

3. Descripción Funcional del Proceso Paso

Acción

1.

El usuario selecciona enviar la solicitud actual.

2.

El sistema crea un pedido a partir de los datos de la solicitud

3.

El sistema indica al usuario que se ha procedido a crear el pedido correctamente

4. Información adicional Casos de subordinados:

uso

1. Identificación Identificador:

CU-001-007

Título:

Consultar Pedidos

2. Características Objetivo:

Descripción del proceso de consulta del histórico de pedidos de un usuario

Ámbito:

Creación de Tienda OnLine

Precondiciones:

El usuario debe haberse identificado en el sistema

Condiciones éxito:

de

Condiciones fallo:

de

El sistema muestra al usuario su historial de pedidos realizado •

Error en el sistema.



El sistema no muestra su historial de pedidos

Actor principal:

Usuario

Actores secundarios:

Sistema

Evento de disparo:

El usuario selecciona la opción de visualizar su histórico de pedidos

Santiago González Prieto

Pag.13

Proyecto de tienda On-Line

Documento FINAL

3. Descripción Funcional del Proceso Paso

Acción

1.

El usuario selecciona la opción de visualizar pedidos históricos.

2.

El sistema muestra al usuario su historial de pedidos

4. Información adicional Casos de subordinados:

uso

1. Identificación Identificador:

CU-001-008

Título:

Exportar catálogo

2. Características Objetivo:

Descripción del proceso envío de exportación de datos del catálogo

Ámbito:

Creación de Tienda OnLine

Precondiciones:

El usuario ha realizado una navegación dentro del catálogo

Condiciones éxito:

Condiciones fallo:

de

El catálogo completo a partir de la sección actual es descargado en un fichero

de



Error en el sistema.



El catálogo no es descargado



Los datos descargados no son correctos



El fichero no puede abrirse

Actor principal:

Usuario

Actores secundarios:

Sistema

Evento de disparo:

El usuario selecciona la opción de descargar el catálogo

3. Descripción Funcional del Proceso Paso

Acción

1.

El usuario selecciona la opción de descargar el catálogo

2.

El sistema genera un fichero con los datos actuales del catálogo según la sección elegida

Santiago González Prieto

Pag.14

Proyecto de tienda On-Line

Documento FINAL

3. Descripción Funcional del Proceso Paso 4.

Acción El sistema indica al usuario que se descargue el fichero generado

4. Información adicional Casos de subordinados:

uso

1. Identificación Identificador:

CU-001-009

Título:

Alta de comprador

2. Características Objetivo:

Descripción del proceso de alta de un usuario comprador en la herramienta

Ámbito:

Creación de Tienda OnLine

Precondiciones:

El usuario debe encontrarse navegando dentro de la aplicación

Condiciones éxito:

de

Condiciones fallo:

de

El nuevo comprador es creado en el sistema •

Error en el sistema.



El usuario no se puede crear

Actor principal:

Usuario

Actores secundarios:

Sistema

Evento de disparo:

El usuario selecciona la opción de darse de alta en la plataforma

3. Descripción Funcional del Proceso Paso

Acción

1.

El usuario selecciona la opción de darse de alta en el sistema

2.

El sistema le muestra al usuario un formulario con los datos que debe rellenar para poder acceder al sistema

3.

El usuario rellena los datos del formulario y pulsa botón aceptar

4.

El sistema comprueba que todos los datos son correctos

5.

El sistema indica al usuario que el proceso de alta ha sido correcto y ya puede acceder a la plataforma con sus datos

Santiago González Prieto

Pag.15

Proyecto de tienda On-Line

Documento FINAL

4. Información adicional Casos de subordinados:

uso

CU-002-001 - Proceso general de administración de la aplicación A continuación se esboza el escenario funcional de la plataforma para administrar los distintos datos que se encuentran en la plataforma

1. Identificación Identificador:

CU-002-002

Título:

Identificación en la aplicación

2. Características

Santiago González Prieto

Pag.16

Proyecto de tienda On-Line

Documento FINAL

2. Características Objetivo:

Descripción del proceso de identificación del usuario en la aplicación

Ámbito:

Creación de Tienda OnLine

Precondiciones:

Tener usuario, acceso y permisos en la plataforma

Condiciones éxito:

de

Condiciones fallo:

de

El usuario queda validado en el sistema •

Error en el sistema.



Datos de acceso incompletos o erróneos

Actor principal:

Usuario

Actores secundarios:

Sistema

Evento de disparo:

Selección de opción de identificación en el sistema

3. Descripción Funcional del Proceso Paso

Acción

1.

Dentro de la aplicación, el usuario elige la opción para identificarse en el sistema

2.

El sistema muestra un formulario con el nombre de usuario y contraseña.

3.

El usuario introduce los valores para los campos

4.

El sistema valida que el nombre de usuario introducido es correcto y coincide con la palabra de paso introducida

5.



Si ha ocurrido algún error se muestra un mensaje por pantalla indicándolo



Si la validación es correcta, se presenta la pantalla en la que se encontraba el usuario, con las visión de un usuario registrado (administrador)

4. Información adicional Casos de subordinados:

uso



CU-002-003 – Administración de Usuarios



CU-002-004 – Administración de Catálogo



CU-002-005 – Administración de Artículos



CU-002-003 – Administración de Pedidos

1. Identificación Identificador:

CU-002-003

Título:

Administrador de Usuarios

Santiago González Prieto

Pag.17

Proyecto de tienda On-Line

Documento FINAL

2. Características Objetivo:

Descripción del proceso de administración de usuarios

Ámbito:

Creación de Tienda OnLine

Precondiciones:

Haber realizado una identificación válida en el sistema como administrador

Condiciones éxito:

de

Condiciones fallo:

de

El usuario da de alta, baja o modificación usuarios en el sistema •

Error en el sistema.



Las acciones de alta,baja o modificación no se realizan

Actor principal:

Usuario

Actores secundarios:

Sistema

Evento de disparo:

Selección de opción de administrar usuarios

3. Descripción Funcional del Proceso Paso

Acción

1.

Dentro de la aplicación, el administrador elige la opción de administrar usuarios

2.

El sistema muestra un formulario de búsqueda de usuario o de nueva alta

3.

El administrador introduce los valores para los campos y pulsa Buscar

4.

El sistema muestra un formulario con los datos del usuario y dos opciones : modificar datos o borrar usuario

5.

6.



Si el administrador elige dar de baja el usuario, el sistema le desactiva del sistema



Si el administrador elige modificar los datos con los nuevos introducidos, se sustituirán los datos en el sistema.

El sistema muestra al administrador un mensaje confirmando la acción realizada

4. Extensiones del escenario principal Paso

Acción

3.a

El administrador elige crear un nuevo usuario

4.a

El sistema muestra un formulario vacío para que el administrador pueda rellenar los datos

5.a

El administrador rellena los datos y los envía al sistema

6.a

El sistema valida los datos e indica al administrador si hay algún posible error

7.a

El sistema muestra la administrador un mensaje confirmando el alta

5. Información adicional

Santiago González Prieto

Pag.18

Proyecto de tienda On-Line

Documento FINAL

5. Información adicional Casos de subordinados:

uso

1. Identificación Identificador:

CU-002-004

Título:

Administrador de Catálogo

2. Características Objetivo:

Descripción del proceso de administración de catálogo y categorías

Ámbito:

Creación de Tienda OnLine

Precondiciones:

Haber realizado una identificación válida en el sistema como administrador

Condiciones éxito:

de

Condiciones fallo:

de

El usuario da de alta, baja o modificación jerarquías en el catálogo de la tienda •

Error en el sistema.



Las acciones de alta,baja o modificación no se realizan

Actor principal:

Usuario

Actores secundarios:

Sistema

Evento de disparo:

Selección de opción de administrar catálogo

3. Descripción Funcional del Proceso Paso

Acción

1.

Dentro de la aplicación, el administrador elige la opción de administrar catálogo

2.

El sistema muestra un formulario de búsqueda de una categoría o para dar de alta una nueva

3.

El administrador introduce los valores para los campos y pulsa Buscar

4.

El sistema muestra un formulario con los datos de la categoría y dos opciones : modificar datos o borrar usuario

5.



Si el administrador elige dar de baja la categoría, el sistema le desactiva del sistema



Si el administrador elige modificar los datos con los nuevos introducidos, se sustituirán los datos en el sistema.

Santiago González Prieto

Pag.19

Proyecto de tienda On-Line

Documento FINAL

3. Descripción Funcional del Proceso Paso 6.

Acción El sistema muestra al administrador un mensaje confirmando la acción realizada

4. Extensiones del escenario principal Paso

Acción

3.a

El administrador elige crear una nueva categoría

4.a

El sistema muestra un formulario vacío para que el administrador pueda rellenar los datos

5.a

El administrador rellena los datos y los envía al sistema

6.a

El sistema valida los datos e indica al administrador si hay algún posible error

7.a

El sistema muestra la administrador un mensaje confirmando el alta

5. Información adicional Casos de subordinados:

uso

1. Identificación Identificador:

CU-002-005

Título:

Administrador de Artículos

2. Características Objetivo:

Descripción del proceso de administración de artículos

Ámbito:

Creación de Tienda OnLine

Precondiciones:

Haber realizado una identificación válida en el sistema como administrador

Condiciones éxito:

de

Condiciones fallo:

de

El usuario da de alta, baja o modificación de artículos en el sistema •

Error en el sistema.



Las acciones de alta,baja o modificación no se realizan

Actor principal:

Usuario

Actores secundarios:

Sistema

Evento de disparo:

Selección de opción de administrar artículos

Santiago González Prieto

Pag.20

Proyecto de tienda On-Line

Documento FINAL

3. Descripción Funcional del Proceso Paso

Acción

1.

Dentro de la aplicación, el administrador elige la opción de administrar artículos

2.

El sistema muestra un formulario de búsqueda de artículos o de nueva alta

3.

El administrador introduce los valores para los campos y pulsa Buscar

4.

El sistema muestra un formulario con los datos del usuario y dos opciones : modificar datos o borrar artículo

5.

6.



Si el administrador elige dar de baja el artículo, el sistema le desactiva del sistema



Si el administrador elige modificar los datos con los nuevos introducidos, se sustituirán los datos en el sistema.

El sistema muestra al administrador un mensaje confirmando la acción realizada

4. Extensiones del escenario principal Paso

Acción

3.a

El administrador elige crear un nuevo artículo

4.a

El sistema muestra un formulario vacío para que el administrador pueda rellenar los datos

5.a

El administrador rellena los datos y los envía al sistema

6.a

El sistema valida los datos e indica al administrador si hay algún posible error

7.a

El sistema muestra la administrador un mensaje confirmando el alta

5. Información adicional Casos de subordinados:

uso

1. Identificación Identificador:

CU-002-006

Título:

Administrador de Pedidos

2. Características Objetivo:

Descripción del proceso de administración de Pedidos

Ámbito:

Creación de Tienda OnLine

Precondiciones:

Haber realizado una identificación válida en el sistema como administrador

Santiago González Prieto

Pag.21

Proyecto de tienda On-Line

Documento FINAL

2. Características Condiciones éxito:

de

Condiciones fallo:

de

El usuario realiza la consulta y/o modificación de pedidos en el sistema •

Error en el sistema.



Las acciones de modificación no se realizan

Actor principal:

Usuario

Actores secundarios:

Sistema

Evento de disparo:

Selección de opción de administrar Pedidos

3. Descripción Funcional del Proceso Paso

Acción

1.

Dentro de la aplicación, el administrador elige la opción de administrar pedidos

2.

El sistema muestra un formulario de búsqueda de pedidos.

3.

El administrador introduce los valores para los campos y pulsa Buscar

4.

El sistema muestra un formulario con los datos del pedido y la opción de modificar datos

5.

El administrador elige modificar los datos con los nuevos introducidos y los envía al sistema

6.

El sistema muestra al administrador un mensaje confirmando la acción realizada

4. Información adicional Casos de subordinados:

uso

CU-003-001 - Proceso general de listados de la aplicación A continuación se esboza el escenario funcional de la plataforma para el seguimiento de la actividad en el sistema mediante listados de los distintos datos que se encuentran en la plataforma:

Santiago González Prieto

Pag.22

Proyecto de tienda On-Line

Documento FINAL

CU-003-002 Identificación en la aplicación

«extends»

«uses»

«extends» CU-003-003 Informe de Usuarios

«uses»

«extends»

«uses»

Administrador

«uses»

CU-003-004 Informe de Artículos

CU-003-005 Informe de Pedidos

1. Identificación Identificador:

CU-003-002

Título:

Identificación en la aplicación

2. Características Objetivo:

Descripción del proceso de identificación del usuario en la aplicación

Ámbito:

Creación de Tienda OnLine

Precondiciones:

Tener usuario, acceso y permisos en la plataforma

Condiciones éxito:

de

Condiciones fallo:

de

El usuario queda validado en el sistema •

Error en el sistema.



Datos de acceso incompletos o erróneos

Actor principal:

Usuario

Actores secundarios:

Sistema

Evento de disparo:

Selección de opción de identificación en el sistema

Santiago González Prieto

Pag.23

Proyecto de tienda On-Line

Documento FINAL

3. Descripción Funcional del Proceso Paso

Acción

1.

Dentro de la aplicación, el usuario elige la opción para identificarse en el sistema

2.

El sistema muestra un formulario con el nombre de usuario y contraseña.

3.

El usuario introduce los valores para los campos

4.

El sistema valida que el nombre de usuario introducido es correcto y coincide con la palabra de paso introducida

5.



Si ha ocurrido algún error se muestra un mensaje por pantalla indicándolo



Si la validación es correcta, se presenta la pantalla en la que se encontraba el usuario, con las visión de un usuario registrado (adinistrador)

4. Información adicional Casos de subordinados:

uso



CU-003-003 – Informe de Usuarios



CU-003-004 – Informe de Artículos



CU-003-005 – Informe de Pedidos

1. Identificación Identificador:

CU-003-003

Título:

Informe de Usuarios

2. Características Objetivo:

Descripción del proceso de visualización de informe de datos de Usuario

Ámbito:

Creación de Tienda OnLine

Precondiciones:

Tener usuario, acceso y permisos en la plataforma

Condiciones éxito:

de

Condiciones fallo:

de

Se abre una pantalla con los datos solicitados sobre usuarios •

Error en el sistema.



Datos de acceso incompletos o erróneos

Actor principal:

Usuario

Actores secundarios:

Sistema

Evento de disparo:

Selección de opción de Informe de Usuarios

Santiago González Prieto

Pag.24

Proyecto de tienda On-Line

Documento FINAL

3. Descripción Funcional del Proceso Paso

Acción

1.

Dentro de la aplicación, el usuario elige la opción para exportar un informe sobre usuarios

2.

El sistema muestra un formulario preguntando por la fecha de inicio y fin para extraer datos, los campos que se quieren Mostar y los campos usados para la ordenación

3.

El usuario introduce los valores para los campos

4.

El sistema valida que los valores son correctos

5.



Si ha ocurrido algún error se muestra un mensaje por pantalla indicándolo



Si la validación es correcta, se abre una nueva pantalla con una visualización de los datos requeridos.

4. Información adicional Casos de subordinados:

uso

1. Identificación Identificador:

CU-003-004

Título:

Informe de Artículos

2. Características Objetivo:

Descripción del proceso de visualización de informe de datos de Artículos

Ámbito:

Creación de Tienda OnLine

Precondiciones:

Tener usuario, acceso y permisos en la plataforma

Condiciones éxito:

de

Condiciones fallo:

de

Se abre una pantalla con los datos solicitados sobre artículos •

Error en el sistema.



Datos de acceso incompletos o erróneos

Actor principal:

Usuario

Actores secundarios:

Sistema

Evento de disparo:

Selección de opción de Informe de Artículos

Santiago González Prieto

Pag.25

Proyecto de tienda On-Line

Documento FINAL

3. Descripción Funcional del Proceso Paso

Acción

1.

Dentro de la aplicación, el usuario elige la opción para exportar un informe sobre artículos

2.

El sistema muestra un formulario preguntando por la fecha de inicio y fin para extraer datos, los campos que se quieren Mostar y los campos usados para la ordenación

3.

El usuario introduce los valores para los campos

4.

El sistema valida que los valores son correctos

5.



Si ha ocurrido algún error se muestra un mensaje por pantalla indicándolo



Si la validación es correcta, se abre una nueva pantalla con una visualización de los datos requeridos.

4. Información adicional Casos de subordinados:

uso

1. Identificación Identificador:

CU-003-005

Título:

Informe de Pedidos

2. Características Objetivo:

Descripción del proceso de visualización de informe de datos de Pedidos

Ámbito:

Creación de Tienda OnLine

Precondiciones:

Tener usuario, acceso y permisos en la plataforma

Condiciones éxito:

de

Condiciones fallo:

de

Se abre una pantalla con los datos solicitados sobre pedidos •

Error en el sistema.



Datos de acceso incompletos o erróneos

Actor principal:

Usuario

Actores secundarios:

Sistema

Evento de disparo:

Selección de opción de Informe de Pedidos

Santiago González Prieto

Pag.26

Proyecto de tienda On-Line

Documento FINAL

3. Descripción Funcional del Proceso Paso

Acción

1.

Dentro de la aplicación, el usuario elige la opción para exportar un informe sobre Pedidos

2.

El sistema muestra un formulario preguntando por la fecha de inicio y fin para extraer datos, los campos que se quieren Mostar y los campos usados para la ordenación

3.

El usuario introduce los valores para los campos

4.

El sistema valida que los valores son correctos

5.



Si ha ocurrido algún error se muestra un mensaje por pantalla indicándolo



Si la validación es correcta, se abre una nueva pantalla con una visualización de los datos requeridos.

4. Información adicional Casos de subordinados:

uso

e) DIAGRAMAS DE ESTADO/COLABORACION/SECUENCIA En este capítulo se describe desde distintos diagramas el proceso más importante dentro de la aplicación: el ciclo de vida de una solicitud/pedido dentro del sistema, junto con todos los actores que intervienen.

Diagrama de estado:

Santiago González Prieto

Pag.27

Proyecto de tienda On-Line

Documento FINAL

Diagrama de colaboración::

Santiago González Prieto

Pag.28

Proyecto de tienda On-Line

Documento FINAL

Diagrama de secuencia::

f) DIAGRAMA ESTÁTICO En esta sección vamos a mostrar un diagrama estático de lo que podrán ser las entidades que formarán parte de la aplicación. Aunque actualmente se muestran a un nivel aún general, son la base sobre la que se generará en la siguiente fase (Diseño Técnico) las diferentes clases y entidades que serán posteriormente implementadas en la fase de desarrollo.

.

Santiago González Prieto

Pag.29

Proyecto de tienda On-Line

Documento FINAL

g) DIAGRAMA DE PAQUETES En esta sección se va a mostrar un pequeño esquema de cómo se agruparan los distintos elementos que van a formar la aplicación en forma de paquetes:

Servidor de Aplicaciones

Gestor de Acciones del Sistema

Gestor de accesos a BBDD

Gestor de informes

Gestor de Entidades

h) DISEÑO DE PANTALLAS A continuación se van a mostrar diversas plantillas como primera idea de lo que finalmente serán las pantallas por las que los distintos tipos de usuario navegarán para poder realizar cada una de las acciones indicadas anteriormente. Pantalla inicial Esta pantalla será la que se encuentre el usuario cuando navega por primera vez en nuestra tienda virtual. La pantalla se divide en cuatro partes: la cabecera donde se encuentra el logotipo de la tienda, y una imagen que puede ser una imagen corporativa o bien un banner con promociones, etc.; el menú izquierdo con las distintas opciones que tiene el usuario para realizar, la columna central con datos de marketing sobre la tienda, y a la derecha espacios para incorporar los productos más vendidos, productos con ofertas especiales, etc.

Santiago González Prieto

Pag.30

Proyecto de tienda On-Line

Documento FINAL

Pantalla de navegación de catálogo La siguiente pantalla será la que vean los usuarios cuando realicen navegaciones por el catálogo de la tienda. La navegación se realizará entrando en cada categoría. Sigue manteniendo una estructura muy parecida la pantalla anterior, pero se sustituye la parte central y derecha por la lista de carpetas (categorías) que haya dentro de la sección elegida. Además, se incorpora una ruta de navegación en la parte superior de la zona de categorías que nos permite saber siempre cómo hemos llegado a este punto y movernos hacia atrás mucho más rápido, junto con los botones que permitirán imprimir y exportar el catálogo, a partir de esta categoría, a un fichero en PDF.

Santiago González Prieto

Pag.31

Proyecto de tienda On-Line

Documento FINAL

Pantalla de artículos Esta pantalla aparece después de realizar una búsqueda de artículos o al llegar a un categoría de tipo hoja, es decir, donde ya se encuentran directamente catalogados los artículos. Además de todos los elementos de la pantalla anterior, nos va a permitir agregar artículos a una solicitud, y si además el usuario es administrador, le permitirá acceder en modo de administración a estos artículos.

Santiago González Prieto

Pag.32

Proyecto de tienda On-Line

Documento FINAL

Pantalla de edición de artículos Esta pantalla es la utilizada para la modificación o el alta de artículos en el sistema. En ella se rellenarán desde la categoría dónde aparecerá el artículo, hasta sus datos básicos o la imagen que queremos que aparezca al navegar por el catálogo.

Pantalla de envío de pedido En esta pantalla se mostrará el detalle de la actual solicitud y se permitirá al comprador que envíe al sistema el pedido.

Santiago González Prieto

Pag.33

Proyecto de tienda On-Line

Documento FINAL

3. FASE DE DISEÑO Los puntos que van a ser tratados en esta sección van a ser, por un lado, la decisión sobre el diseño arquitectónico elegido para la realización e implantación de la aplicación, siembre basándonos en una especificación J2EE, requisito imprescindible inicial al desarrollo de este proyecto. No sólo se identificarán los requisitos que se van a usar, sino que también se justificará su uso en base a distintos valores. Posteriormente, se detallarán los diagramas creados en la fase de análisis, de forma que este documento pueda ser usado en la siguiente fase (fase de implementación), para el desarrollo de la aplicación final.

a) DISEÑO ARQUITECTÓNICO ƒ Arquitectura J2EE La arquitectura que se va a utilizar, como ya se ha indicado, se va a basar en la especificación J2EE. Esta arquitectura se pensó para el desarrollo de aplicaciones distribuidas que fueran construidas en base a componentes, los cuales interaccionan entre si para realizar las acciones para las que fueron pensados, usando para ello la parte del servidor de aplicaciones J2EE que les proporciona el uso de servicios como la seguridad, concurrencia, transacciones, etc.

Santiago González Prieto

Pag.34

Proyecto de tienda On-Line

Documento FINAL

Algunas de las ventajas principales del uso de esta tecnología son: la portabilidad de las aplicaciones, ya que estas pueden ser ejecutadas en cualquier sistema que cuente con una máquina virtual java; la facilidad de escalabilidad de las aplicaciones, que permiten que sobre el mismo software puedan correr tanto aplicaciones pequeñas como programas destinados a una gran cantidad de transacciones; el gran soporte a red que contiene esta arquitectura, ya que fue pensada desde sus inicios como un producto pensado para su uso distribuido. El lenguaje utilizado por esta arquitectura es el lenguaje Java. Este lenguaje fue creado por Sun Microsystems y se ha convertido en uno de los grandes estándares dentro de la industria del desarrollo, tanto para la creación de aplicaciones web, como aplicaciones pensadas para Móviles, Domótica, etc. Hay que añadir a esto que, además, ha sido el principal lenguaje usado por la comunidad opensource para el desarrollo de aplicaciones web, lo que está ayudando mucho a que la expansión y el desarrollo de este lenguaje estén siendo muy altos. Java es un lenguaje orientado a objetos, lo que quiere decir que pertenece al paradigma de programación en el que se manejan elementos como clases, objetos, etc. y define su comportamiento y sus relaciones. Por tanto, un programa en este lenguaje estará formado por distintos módulos que serán más fáciles de escribir, mantener y reutilizar.

ƒ Patrones J2EE utilizados Para intentar facilitar y estandarizar lo más posible los desarrollos que se realizan, han aparecido dentro de la comunidad de programación en Java los llamados Patrones de diseño. Estos patrones intentan reutilizar las soluciones dadas por otras personas a problemas o situaciones que se han generado con anterioridad, y pueden abarcar desde sólo para ciertas partes o capas del desarrollo de una aplicación (capa de visualización, capa de negocio, capa de acceso a datos, etc.) o bien pueden intentar aunar una forma de trabajo para todo el conjunto del programa. Como la solución que se puede haber dado para un problema, puede no haber sido la misma por varios grupos de personas, existen varios patrones en la comunidad de desarrolladores, y será cada persona en cada proyecto la que deba decidir cuál es el que mejor se adapta a sus necesidades. Se ha realizado un estudio de diversos patrones actualmente utilizados como Cocoon o Spring pero en nuestro caso, vamos a utilizar otros varios para distintas partes de la aplicación. En el caso del diseño general de la aplicación, utilizaremos uno que ya lleva varios años siendo usado, y que además es uno

Santiago González Prieto

Pag.35

Proyecto de tienda On-Line

Documento FINAL

de los mayores estándares actualmente para el desarrollo de aplicaciones web: Struts. Struts se basa en el patrón de tres capas Modelo-Vista-Controlador(MVC), en el que el procesamiento interno se separan en estas tres secciones. La idea de realizar esta separación es tratar de seguir la máxima de la programación a objeto de “divide y vencerás”, ya que contar con un solo controlador que tuviera toda la lógica del programa, nos llevaría a tener un controlador que podría saturarse de peticiones, más difícil de mantener y de actualizar. Por ello, Struts surge como una posible solución a este problema. La separación en estas tres capas se realiza de la siguiente manera: La capa de Modelo es aquella que se encarga de la relación de la aplicación con la Base Datos y el diseño de los objetos que va a utilizar la aplicación. Esto va a permitir que en ningún momento, desde la capa de vista o negocio se hagan llamadas directas a la BBDD para conseguir información, sino que siempre pasará por llamadas a estos objetos que son los que se encargan en si mismos de realizar las acciones concretas sobre los datos. En cuanto a la capa de Controlador o Negocio, será donde se defina cómo debe funcionar la aplicación en cuanto a qué cosas se pueden o no hacer, cómo deben ser los flujos de información, etc. Esto se consigue mediante las llamadas Actions, clases que se encargan de encapsular estos elementos, totalmente aislados de cómo se van a mostrar por pantalla o de cómo obtienen los datos reales. Y finalmente, la capa de Vista es aquella que se encarga de mostrar la información necesaria en cada momento según la acción que se esté realizando. En estas vistas, no se realiza ningún tipo de operación, sino que simplemente muestra los datos que internamente está manejando el negocio, sin actuar sobre ellos. De esta forma, conseguimos por un lados seguridad, ya que desde la vista no se va a poder realizar acciones no controladas por la capa de negocio, e independencia y facilidad a la hora de realizar mejoras, añadidos, o arreglo de problemas en la aplicación, ya que estos estarán muy localizados y fáciles de acceder, sin afectar al resto de partes que no intervienen. Además, el uso de este patrón añade otras ventajas como son el uso de ficheros de configuración xml para indicar la lógica de la aplicación (strutsconfig.xml), control interno de formularios (la lógica y el manejo de errores ya no se encuentra en las páginas JSP sino en el propio código) lo que ayuda a que las páginas JSP se dediquen simplemente a mostrar información y no contienen ningún tipo de lógica de negocio.

En un diagrama de cómo funciona una aplicación en un framework Struts sería:

Santiago González Prieto

Pag.36

Proyecto de tienda On-Line

Documento FINAL

Struts también cuenta incluido con Tiles, un framework de generación de vistas que permite realizar plantillas a partir de las cuales se generarán distintos tipos de páginas con esa misma estructura. Cuenta con un fichero de configuración (tiles-def.xml), en el que se indican todas las plantillas y sus relaciones. Las plantillas pueden ser extendidas, de forma que a partir de una base común, se pueden realizar nuevas pantallas con personalizaciones propias. Otras librerías que van a ser usadas en la aplicación serán jasperreports, creada en el proyecto sourceforge, y que permite exportar datos a distintos formatos (PDF, Excel, gráficos, etc.) En nuestro caso, se utilizará para generar la salida en PDF de forma online del catálogo de nuestra tienda. Con esta librería generaremos unos ficheros base a partir de ficheros xml con la estructura deseada, que se utilizarán posteriormente en la composición. Además, para la controlar la gestión de conexiones a la BBDD, se ha recurrido a la librería también opersource de Poolman, que gestionará las distintas conexiones que se realizan a la BBDD, y por tanto se encargue de abrir las necesarias, cerrar las que ya no se usan, etc.

b) SUBSISTEMAS DE LA APLICACIÓN Tal y como se analizó en el documento previo, se van a dividir la aplicación en 3 subsistemas principales: • • •

Subsistema de Catalogo Subsistema de Administración Subsistema de Informes.

A continuación vamos se va a describir en detalle cada uno de estos sistemas.

Santiago González Prieto

Pag.37

Proyecto de tienda On-Line

Documento FINAL

ƒ Subsistema de Catálogo Descripción En este subsistema se van a englobar todas las acciones que los usuarios o compradores pueden realizar cuando acceden a la aplicación. Estas acciones son las siguientes: • • • • • • •

Consulta del catálogo Online navegando por las distintas categorías de las que está compuesto. Búsqueda directa de artículos según las especificaciones indicadas. Generación y exportación en fichero PDF de las zonas del catálogo por donde navega el usuario. Escoger y añadir artículos con los que ir rellenando la solicitud de pedido. Darse de alta como usuario comprador para poder enviar pedidos. Realizar la actualización de sus datos de usuario. Consultar el histórico de pedidos realizados hasta el momento y cuál es su situación actual.

Con el fin de que el aprendizaje del uso de la herramienta sea lo más fácil y rápido posible, se han diseñado la aplicación para que cualquier acción que quiera hacer el usuario esté lo más clara posible y esté accesible con un simple clic del ratón. La estructura de las pantallas es casi siempre la misma, simplemente cambiando la información que aparece en el centro de la pantalla, lugar normalmente destinado a la información específica de la sección en que nos encontremos. El resto elementos, como el menú general a la izquierda, o la indicación de la sección en que nos encontramos, cabeceras, etc. seguirán apareciendo en los mismos lugares, por lo que el usuario podrá navegar de unas secciones a otras desde cualquier pantalla. El perfil del usuario es el que va a determinar qué opciones tendrá disponibles y cuáles no, ya que si el usuario no está identificado en el sistema, no podrá realizar pedidos o consultar un histórico de pedidos, aunque sí que podrá realizar todo el resto de acciones como consultar el catálogo o descargarlo en PDF.

Diagramas de clases del subsistema

Santiago González Prieto

Pag.38

Proyecto de tienda On-Line

Documento FINAL

En este subsistema se van a englobar todas las acciones que los usuarios o compradores pueden realizar cuando acceden a la aplicación. A continuación mostramos el diagrama de clases gestoras y entidades que utilizará la aplicación para este subsistema:

A continuación mostramos el diagrama detallado de clases entidad del subsistema:

Santiago González Prieto

Pag.39

Proyecto de tienda On-Line

Documento FINAL

Usuario -idUsuario : string -login : string -password : string -nombre : string -cc : string -direccion : string -telefono : string -poblacion : string -codigopostal : string -provicia : string -DNI -email

Estados

*

-idEstado : int -nombre : string -Fin6

* Solicitud

-Fin2

*

-idSolicitud : int -nombre : string -fechaAlta : Date

-Fin1

-Fin3

*

Pedido -Fin4

-idPedido : int -nombre : string -fechaAlta : Date

* *

Fin1

-Fin7

*

-Fin5

*

-Fin9

Fin2 Roles -idRole : int -nombre : string

*

Atributo

* -Fin8-Fin10 Artículos

-Fin15

-Fin16

-idArtículo : int -nombre : string

-idAtributo : int -nombre : string -valor : string -fechaAlta : Date

*

*

* -Fin12 -Fin11 Catálogo

*

*

-idCatalogo : int -nombre : string

-Fin17

* *

Categorías

*

-idCategoria : int -nombre : string -Fin14 -Fin13

-Fin18

Diagramas colaboración del subsistema Alta de Usuario:

Santiago González Prieto

Pag.40

Proyecto de tienda On-Line

Documento FINAL

Rellenar formulario rio ua Us a t Al

Usuario

M os tra

:PantallaAltaUsuario

GestorUsuario

tos Da r a ob pr m Co

r

PantallaAltaUsuario

Consulta de Catálogo:

Buscar Artículos:

Santiago González Prieto

Pag.41

Proyecto de tienda On-Line

Documento FINAL

Exportar PDF: PantallaCategoría

Ex r rta po

c Re

Elegir Catálog o

tos Da ibir

Elegir categoría GestorCatálogo

Re cib

Usuario

ir D

GestorCatalogo r rta po x E

ato s

Crear fichero

:PantallaCategoría

PantallaArtículos

FicheroPDF

Enviar Pedido: Buscar

Enviar Datos :PantallaEnvioPedido

Comprobar Datos

GestorPedidos

PantallaOKPedido

Comprador

Consultar Pedidos:

Santiago González Prieto

Pag.42

Proyecto de tienda On-Line

Documento FINAL

ƒ Subsistema de Administración Descripción En este subsistema se van a englobar todas las acciones que los administradores pueden realizar cuando acceden a la aplicación en modo de edición de datos. Estas acciones son las siguientes: • • • •

Alta, Baja, Modificación de Usuarios. Alta, Baja, Modificación de categorías. Alta, Baja, Modificación de Artículos Cancelación, Modificación de Pedidos.

Tal y como hemos indicado en el anterior subsistema, tanto en el diseño de las pantallas como la distribución de opciones se ha intentado buscar la facilidad y la rapidez en las tareas de administración, que sin tener en cuenta esta situación podrían llegar a ser muy tediosas. Este tipo de usuario va a tener, además de las funciones de administración, las mismas funcionalidades que un usuario que no esté registrado salvo que no podrá crear solicitudes ni enviar pedidos, ya que no se considera que estos usuarios deban poder realizar estas acciones.

Diagramas de clases del subsistema En este subsistema se van a englobar todas las acciones que los usuarios administradores pueden realizar cuando acceden a la aplicación. A continuación mostramos el diagrama de clases gestoras y entidades que utilizará la aplicación para este subsistema:

Santiago González Prieto

Pag.43

Proyecto de tienda On-Line

Documento FINAL

Roles -idRole : int -nombre : string Usuario PantallaGestionUsuario

GestorUsuarios PantallaAccesoPedidos

-idUsuario : string -login : string -password : string -nombre : string -cc : string -direccion : string -telefono : string -poblacion : string -codigopostal : string -provicia : string -DNI -email

Estados -idEstado : int -nombre : string dbHelper

GestorPedidos

Acciones

Pedido -idPedido : int -nombre : string -fechaAlta : Date

Artículos -idArtículo : int -nombre : string

PantallaAccesoArtículos

Atributo

GestorCatálogo

-idAtributo : int -nombre : string -valor : string -fechaAlta : Date

PantallaAccesoCatalogo Categorías -idCategoria : int -nombre : string

Catálogo -idCatalogo : int -nombre : string

A continuación mostramos el diagrama detallado de clases entidad del subsistema:

Santiago González Prieto

Pag.44

Proyecto de tienda On-Line

Documento FINAL

Usuario -idUsuario : string -login : string -password : string -nombre : string -cc : string -direccion : string -telefono : string -poblacion : string -codigopostal : string -provicia : string -DNI -email

Estados

*

-idEstado : int -nombre : string -Fin6

-Fin3

*

Pedido -Fin4

-idPedido : int -nombre : string -fechaAlta : Date

* *

Fin1

-Fin5

*

-Fin9

Fin2 Roles -idRole : int -nombre : string

*

Atributo

-Fin10

Artículos

-Fin15

-Fin16

-idArtículo : int -nombre : string

-idAtributo : int -nombre : string -valor : string -fechaAlta : Date

*

*

* -Fin12 -Fin11 Catálogo

*

*

-idCatalogo : int -nombre : string

-Fin17

* *

Categorías

*

-idCategoria : int -nombre : string -Fin14 -Fin13

-Fin18

Diagramas colaboración del subsistema Administración de Usuario:

Validar Datos

Santiago González Prieto

Pag.45

Proyecto de tienda On-Line

Documento FINAL

Consulta de Categorías: Consulta Categorías

Modificar Datos

Enviar Datos

GestorCatalogo

PantallaEdiciónCategoría

GestorCatálogo

Administrador

PantallaEdiciónCategoría

Administrar Artículos:

Validar Datos

Administrar Pedidos: Consulta Pedidos

GestorPedidos

PantallaEdiciónPedidos

GestorPedidos Validar Datos

Administrador

Modificar Datos

Enviar Datos

PantallaEdiciónPedidos

Santiago González Prieto

Pag.46

Proyecto de tienda On-Line

Documento FINAL

ƒ Subsistema de Listados Descripción En este subsistema se van a englobar todas las acciones que los administradores pueden realizar a la hora de sacar estadísticas sobre los datos de la tienda. Los tipos de información que se van a definir en una primera fase de este desarrollo van a ser: • • •

Listados de Usuarios. Listados de Artículos Listados de Pedidos.

Aunque siempre se hable de usuarios administradores, realmente va a tratarse como si fuera un tipo especial de estos, y aunque cualquier administrador podrá acceder a los informes, no todos los tipos de administradores podrán acceder a las opciones de administración de datos.

Diagramas de clases del subsistema En este subsistema se van a englobar todas las acciones que los administradores pueden realizar cuando acceden a la aplicación. A continuación mostramos el diagrama de clases gestoras y entidades que utilizará la aplicación para este subsistema:

Santiago González Prieto

Pag.47

Proyecto de tienda On-Line

Documento FINAL

Roles -idRole : int -nombre : string Usuario PantallaGestionUsuario

GestorUsuarios PantallaAccesoPedidos

-idUsuario : string -login : string -password : string -nombre : string -cc : string -direccion : string -telefono : string -poblacion : string -codigopostal : string -provicia : string -DNI -email

Estados -idEstado : int -nombre : string dbHelper

GestorPedidos

Acciones

Pedido -idPedido : int -nombre : string -fechaAlta : Date

Artículos -idArtículo : int -nombre : string

PantallaAccesoArtículos

Atributo

GestorCatálogo

-idAtributo : int -nombre : string -valor : string -fechaAlta : Date

PantallaAccesoCatalogo Categorías -idCategoria : int -nombre : string

Catálogo -idCatalogo : int -nombre : string

A continuación mostramos el diagrama detallado de clases entidad del subsistema:

Santiago González Prieto

Pag.48

Proyecto de tienda On-Line

Documento FINAL

Usuario -idUsuario : string -login : string -password : string -nombre : string -cc : string -direccion : string -telefono : string -poblacion : string -codigopostal : string -provicia : string -DNI -email

Estados

*

-idEstado : int -nombre : string -Fin6

-Fin3

*

Pedido -Fin4

-idPedido : int -nombre : string -fechaAlta : Date

* *

Fin1

-Fin5

*

-Fin9

Fin2 Roles -idRole : int -nombre : string

*

Atributo

-Fin10

Artículos

-Fin15

-Fin16

-idArtículo : int -nombre : string

-idAtributo : int -nombre : string -valor : string -fechaAlta : Date

*

*

* -Fin12 -Fin11 Catálogo

*

*

-idCatalogo : int -nombre : string

-Fin17

* *

Categorías

*

-idCategoria : int -nombre : string -Fin14 -Fin13

-Fin18

Diagramas colaboración del subsistema

Listado de Usuario:

Santiago González Prieto

Pag.49

Proyecto de tienda On-Line

Documento FINAL

Listado de Artículos:

Listado de Pedidos:

c) DIAGRAMA ENTIDAD-RELACIÓN Atributo

1 1..*

Roles

-Asignado

-Pertenece

Usuario

1

Solicitu

1 1

1

0..*

*

1 1

1 1

Artículo

1 1

-Crea

1 1..*

0..1 1 Estados

1

0..*

Pedido

*

1 1 1

-Situación

Categorías

1..*

1

1 Catálogo 1

Santiago González Prieto

Pag.50

Proyecto de tienda On-Line

Documento FINAL

ƒ Descripción de los atributos Usuario idUsuario, DNI, nombre, direccion, provincia, codigopostal, población, cc, telefono, email, idRol, login, password Donde idRole es clave foránea hacia Roles

Roles idRol, nombre

Solicitud idSolicitud, nombre, fechaAlta

Artículos-Solicitud idSolicitud, idArtículo, precio Donde idSolicitud es clave foránea hacia Solicitud Donde idArtículo es clave foránea hacia Artículos

Pedido idPedido, nombre, fechaAlta, idSolicitud, idEstado Donde idSolicitud es clave foránea hacia Solicitud Donde idEstado es clave foránea hacia Estados

Artículos-Pedidos idPedido, idArtículo, precio Donde idPedido es clave foránea hacia Pedido Donde idArtículo es clave foránea hacia Artículos

Santiago González Prieto

Pag.51

Proyecto de tienda On-Line

Documento FINAL

Estados idEstado, nombre

Atributo idAtributo, nombre

Artículos idArtículo, nombre

Atributo-Artículos idAtributo, idArtículo, valor Donde idArtículo es clave foránea hacia Artículos

Categorías idCategoría, nombre

Atributo-Categoría idAtributo, idCategoría, valor Donde idCategoría es clave foránea hacia Categoría

Artículo-Categoría idArtículo, idCategoría, orden Donde idCategoría es clave foránea hacia Categoría

Catalogo idCatalogo, nombre

Santiago González Prieto

Pag.52

Proyecto de tienda On-Line

Documento FINAL

Catalogo-Categoría idCatalogo, idCategoría, orden Donde idCategoría es clave foránea hacia Categoría

4. IMPLEMENTACION A la hora de implementar la aplicación, se ha tenido que montar un equipo de desarrollo en el que se han instalado las siguientes aplicaciones: •

Un servidor de aplicaciones. En este caso el elegido ha sido TOMCAT en su versión 5. Se descargó desde el sitio http://tomcat.apache.org.



Un Gestos de Bases de Datos. El elegido ha sido MySQL en su versión 5.0. Se descargó desde el sitio http://www.mysql.com



La máquina virtual Java 1.5.0_09 de Sun, junto con el entorno IDE de desarrollo NetBeans 5.5 descargada desde el sitio http://java.sun.com

En cuanto a los frameworks de desarrollo que han sido usados, son los siguientes: •

Framework Struts, descargado desde http://struts.apache.org. Este framework es el que nos va a permitir diseñar una aplicación siguiendo el formato de 3 capas (Modelo-Vista-Controlador).



Framework Jasperreports, descargado desde https://sourceforge.net/projects/jasperreports/. Este framework es el que nos va a permitir diseñar una salida de datos, en nuestro caso la del catálogo que tenemos en la aplicación, en formato PDF.



Framework poolman, descargado desde https://sourceforge.net/projects/poolman/.Este framework es el que nos va a permitir gestionar las conexiones que se generar hacia la Base de Datos.

Una vez que contamos con todos los elementos, se ha creado un directorio de trabajo llamado Catalogo, donde se ha creado una estructura web de la siguiente manera: /: directorio root de la aplicación. Sólo cuenta con la página inicial(index.jsp) que arranca el uso de la aplicación al acceder al contexto dentro del servidor de aplicaciones.

Santiago González Prieto

Pag.53

Proyecto de tienda On-Line

Documento FINAL

/jsp: directorio que contiene las páginas jsp de la aplicación. Dentro de este directorio se han diferenciado las páginas genéricas de las plantillas y de las pantallas de ayuda. /css: directorio que contiene la definición de tipos de letra, colores, etc. siguiendo el estandar css. También contiene la definición de datos para la salida en PDF. /images: directorio que contiene las imágenes base de la aplicación. /reportXML: directorio que contiene las definiciones que van a ser usadas para la creación de los ficheros PDF. Estas definiciones están dentro de ficheros con extencisón .jasper. /fichero: directorio que contiene los ficheros pertenecientes a la ejecución de la aplicación, y la página inicial perteneciente a la empresa. Dentro de este directorio se guardan los ficheros PDF generados (en el directorio reportes), los ficheros adjuntos asociados a los productos (en el directorio adjuntos) y las imágenes pertenecientes a la empresa a la que pertenece la aplicación (dentro del directorio images). Dentro de este último directorio, se encuentran también las imágenes de las categoría y productos que componen su catálogo. /WEB-INF: directorio que contiene las definiciones de datos tld para los tipos de tags que van a ser usados dentro de las páginas jsp, así como los ficheros de configuración utilizados en la aplicación, como el strutsconfig.xml, tiles-def.xml o validation.xml. /WEB-INF/lib: directorio que contiene las librerías de código que van a ser usadas para la ejecución de la aplicación. Dentro de este directorio se incorporan las de los frameworks indicados con anterioridad de Struts, poolman y jasperreports. /WEB-INF/classes: directorio que contiene las clases que han sido desarrolladas para la ejecución de la aplicación. También contiene la definición de los textos que han sido traducidos a distintos idiomas, y que van a permitir que la aplicación pueda aparecer en una lengua distinta, según la configuración local del usuario que acceder a la aplicación. Dentro de este directorio también se encuentra la definición del método de acceso de poolman (poolman.xml) /WEB-INF/classes/com/UOC/TFC/Actions: directorio que contiene las clases que definen la capa de negocio de la aplicación según el esquema de Struts.

Santiago González Prieto

Pag.54

Proyecto de tienda On-Line

Documento FINAL

/WEB-INF/classes/com/UOC/TFC/Forms: directorio que contiene las clases de definición de beans para los formularios de la aplicación, junto con su control de errores. /WEB-INF/classes/com/UOC/TFC/Models: directorio que contiene las clases de definición de beans para los datos que va a utilizar la capa de negocio. /WEB-INF/classes/com/UOC/TFC/Utils: directorio que contiene la clase de acceso a datos directos. Es la única que tiene acceso directo a la BBDD. /WEB-INF/classes/com/myapp: directorio que contiene los ficheros de textos por idiomas.

5. DESPLIEGUE Una vez desarrollada la aplicación, se procede a desplegar sobre el entorno de QA, que nos permitirá tanto realizar las pruebas fuera del entorno de desarrollo, como las pruebas de despliegue sobre un entorno estándar sin parametrizar. Estas pruebas se han realizado sobre dos entornos distintos: •

Entorno con Sistema Operativo Windows, servidor de aplicaciones JBoss 4.0.5 y máquina virtual java 1.5



Entorno con Sistema Operativo Linux, servidor de aplicaciones TOMCAT 5, y máquina virtual java 1.4.2_04

En ambos casos la base de datos ha sido MySQL ya que es la definida para usar en esta aplicación. El procedimiento en ambos casos ha sido el mismo: •

Se ha creado un fichero war que contiene la aplicación completa con la estructura señalada en el apartado anterior sin datos de prueba.



Se ha colocado este fichero war en el directorio de aplicación de cada servidor de aplicaciones: tomcat/webapps en el caso de TOMCAT y jboss/server/default/deploy/catalogo



Se han revisado los parámetros de configuración de la aplicación: o Fichero struts-config.xml:

Santiago González Prieto

Pag.55

Proyecto de tienda On-Line

Documento FINAL

Se debe introducir el puerto en el que se escucha el servidor de aplicaciones. o Fichero poolman.xml: com.mysql.jdbc.Driver jdbc:mysql://localhost:xxxx/catalogo xxxxxx xxxxxxx

Se debe introducir el puerto en el que se escucha el servidor de base de datos, y el usuario creado para acceso a la base de datos catalogo. •

A continuación, ejecutamos la importación del fichero crear_catalogo.sql en el gestor de bases de datos, lo que creará una base de datos llamada catalogo con todos sus elementos. Habrá que crear un usuario de acceso según la especificación del punto anterior.



Una vez arrancados tanto el gestor de base de datos como el servidor de aplicaciones, se accede mediante navegador web a la aplicación, según definición que hayamos hecho de cada servidor.

6. VALORACION Y CONCLUSIONES Una vez que la aplicación ya ha sido desarrollada y está funcionando en un entorno estable, llega el momento de sacar ciertas conclusiones sobre el proceso que se ha seguido en el proceso hasta llegar a este punto y si se han conseguido los puntos que inicialmente se querían cubrir. En cuanto a la consecución de los objetivos iniciales, se ha conseguido el crear un sitio web ligero, intuitivo para los usuarios que tienen que acceder a él para realizar sus compras, y aportando una labor comercial además de la práctica de compras. La aplicación cuenta con las opciones básicas para la tramitación de pedidos y consulta de los productos de la empresa, así como un área de administración básica de los datos que componen la plataforma. También se ha conseguido que la adaptación del producto a cualquier tipo de cliente o tienda sea muy fácil. Para ello, no se ha tenido en cuenta ningún tipo especial de productos/catálogos en el análisis, sino que se han definido elementos genéricos que puedan englobar cualquier configuración. Es por ellos que, por ejemplo, los atributos de los productos, salvo los básicos, no están incluidos dentro de una relación externa. De esta manera, se podrán cargar tanto atributos y del tipo necesario como se desee. Otro objetivo cubierto ha sido la de la máxima parametrización posible, de forma que el producto sea adaptable a las necesidades del usuario en cuanto a

Santiago González Prieto

Pag.56

Proyecto de tienda On-Line

Documento FINAL

configuración de colores corporativos, tipos de letra, logotipos, banners, etc. Simplemente sustituyendo los ficheros por los convenientes, se podría convertir el mismos producto, en otro distinto, sólo manteniendo la estructura básica de las páginas. Esto permite mucha potencia a la aplicación a la hora de poder ser utilizada por la mayor cantidad posible de clientes con mínimos cambios en ficheros y que no requieren cambios de código. También se ha conseguido, ya hablando de su estructura interna, componer todas estas funcionalidad usando siempre código abierto y herramientas Open Source, con las ventajas ya conocidas de menor coste monetario, código no desconocido para futuros desarrollos, etc. Por una parte, aunque en diferentes ocasiones personalmente he tenido que pasar por todas las fases que han compuesto el desarrollo de aplicaciones, nunca había tenido que ponerme en el lugar de tantos roles distintos en un mismo proyecto, lo que ha supuesto una muy buena experiencia. En cuanto a las valoraciones personales del trabajo realizado para este proyecto, principalmente tengo que destacar el paso por cada una de las fases de las que se ha compuesto el proyecto por ejemplo, que normalmente la toma de requisitos en un proyecto suele estar llevada a cabo por perfiles más comerciales, que intentan recoger por parte del usuario final la visión de sus necesidades, y que necesitan plasmarlas de un modo lo más claro posible. En este punto aún no se tiene mucha visión sobre las posibilidades que se tendrán al final de poder conseguirlo, por ello es importante que estas personas tengan un conocimiento técnico que les permitirá, al menos a primera vista, intuir lo que supone tomar elecciones frente al usuario. Una vez tenemos claro lo que necesita el usuario, hay que plasmar de una forma más formal esas necesidades. En este caso aparece la figura del Analista, que se encargará de tomar esos requerimientos y utilizar elementos como UML para que todo quede de una manera lo más cerrada posible, es decir, con todos los elementos posibles plasmados, casos de uso, etc. Además, muchas veces esta misma persona es la que se encarga de llevar estos diagramas a un entorno más tecnológico, donde ya se tomarán muchas más decisiones, como la arquitectura de software que se va a utilizar, arquitectura hardware necesaria, lenguaje de programación que mejor se ajusta, etc. Y con estas decisiones, realizar un nuevo diseño de cómo traducir los elementos del análisis funcional a una realidad más concreta. El siguiente paso lo darán los programadores que, al recibir este diseño técnico, deberán pasar a la práctica todo lo que en él contiene. Dentro del desarrollo, además, se deben tener en cuenta las pruebas unitarias que se realizan con cada parte del código, junto con unas pruebas integradas cada vez que es necesario que varios módulos interactúen entre si.

Santiago González Prieto

Pag.57

Proyecto de tienda On-Line

Documento FINAL

Una vez que el desarrollo está finalizado, es el turno del departamento de QA el realizar pruebas integradas de todo el conjunto, siguiendo las especificaciones dadas en los documentos de análisis, y son los que, finalmente, deberán de validar que el producto realizado cumple con la calidad que se le supone. Por tanto, en un mismo proyecto hemos tenido que realizar todas estar labores, lo que creo que nos ayuda a ver las necesidades y dificultades que cada persona/rol tiene a la hora de realizar su labor, según el trabajo que la etapa anterior ha realizado. Creo que este es uno de los puntos importantes que más he sacado personalmente de este trabajo. También hay un elemento que también ha influido y que es muy característico de la vida real, como es el cumplir una planificación y unos plazos ya preestablecidos. No ha sido fácil cumplir estos hitos ya que, tampoco es fácil prever las dificultades y problemas que siempre ocurren y que no entran dentro de las previsiones iniciales, lo que lleva a una presión extra para poder cumplir con lo establecido con el cliente. En cuanto al trabajo en si mismo, aunque siempre es posible mejorar, creo que estoy bastante satisfecho del trabajo realizado en el tiempo que se ha dispuesto. Creo que algunos de los objetivos que me propuse desde que comenzó el proyecto se han cumplido, como son el realizar un código fácilmente ampliable y soportable, una aplicación que fuera ágil en su uso y lo más estándar posible para que fuera independiente de elementos externos como el servidor de aplicaciones, el sistema operativo, etc. Dentro de las posibles mejoras, y tomando en cuenta elementos ya introducidos en los análisis realizados, se podría tener en cuenta una mejor gestión de los pedidos, incluyendo la gestión de expediciones de estos; mejoras en el look&feel de la aplicación; integración con una aplicación de gestión de stocks de almacén para el control de artículos; etc. En definitiva, creo que el trabajo ha sido muy duro durante estos meses, pero el resultado ha merecido la pena, tanto por lo que actualmente es, como por las posibilidades futuras que tiene.

7. BIBLIOGRAFÍA Y DOCUMENTACIÓN Para la realización del proyecto, se han utilizado distintas fuentes tanto informativas como de componentes.

Santiago González Prieto

Pag.58

Proyecto de tienda On-Line

Documento FINAL

Las principales han sido: •

java.sun.com. Página principal de Sun donde se puede descargar toda la información sobre la máquina virtual java, en nuestro caso la jdk 1.5, su documentación y el entorno de desarrollo IDE Netbeans.



tomcat.apache.org: Página principal del servidor de aplicaciones Tomcat, junto com la documentación asociada. Este servidor pertenece al proyecto Apache, basado en tecnología Open Source.



struts.apache.org: Página principal del framework de desarrollo struts, donde se puede descargar tanto los desarrollos básicos como la documentación asociada. Pertenece también al proyecto Apache.



Labs.jboss.com: Página principal del servidor de aplicaciones JBoss.



www.mysql.com: Página principal del Gestor de Bases de datos MySQL. También se puede encontrar documentación asociada y aplicaciones para su mejor control. También está basado en codigo OpenSource.



sourceforge.net/projects/jasperreports: Página principal del proyecto Jasperreports dentro del grupo Sourceforge, donde se puede obtener los ficheros básicos y documentación para poder realizar desarrollos basados en este framework para la extracción de información en diversos formatos. Este grupo aporta varios proyectos basados en código OpenSource, entre ellos los dos usados en ente proyecto.



sourceforge.net/projects/poolman: Página principal del proyecto poolman dentro del grupo Sourceforge, donde se puede obtener los ficheros básicos y documentación para poder realizar desarrollos basados en este framework para la gestión de pools de conexión contra Bases de Datos.



http://www.java-source.net: Portal sobre desarrollo de aplicaciones Open Source.



http://www.programacion.net/java/tutorial/joa_struts: Manual básico de programación utilizando el framework Struts.



http://www.ariba.com: Empresa dedicada al desarrollo de productos de e-commerce en J2EE para grandes empresas.



http://www.fnac.es: Portal de compras en Internet de una gran superficie. Utilizado como ejemplo de lo que podría ser una tienda en Internet.

Santiago González Prieto

Pag.59

Proyecto de tienda On-Line



Documento FINAL

http://www.elcorteingles.es: Portal de compras en Internet de una gran superficie. Utilizado como ejemplo de lo que podría ser una tienda en Internet.

Además de los elementos anteriormente referidos, se ha realizado mucha labor de investigación en cuanto a bugs en aplicaciones, corrección de posibles errores, etc. participando en foros y leyendo documentación repartida por la Internet respecto a los distintos temas que han sido objeto durante este proyecto.

Santiago González Prieto

Pag.60