Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2
7.2.3. Validarse en la aplicacin.......................................................................... 99
7.3. Men principal................................................................................................ 100
7.3.1. Alta de producto ...................................................................................... 100
7.3.2. Alta Ubicacin ......................................................................................... 103
7.3.3. Entrada producto..................................................................................... 106
7.3.4. Salida producto ....................................................................................... 108
7.3.5. Movimiento de productos ........................................................................ 111
7.3.6. Listado de productos ............................................................................... 114
7.3.7. Listado de ubicaciones............................................................................ 120
7.3.8. Listado de movimientos........................................................................... 125
7.3.9. Listado Inventario .................................................................................... 127
7.3.10. Cerrar Sesin ........................................................................................ 129
7.3.11. Funcionalidad Buscar en los listados .................................................. 130
7.3.12. Funcionalidad Orden en los listados ................................................... 133
8. Bibliografa............................................................................................................ 135
3
1. Introduccin
4
El Gerente de la empresa y el encargado del almacn expusieron el problema,
explicando que es lo que esperaban del programa, despus de varias reuniones y tras
estudiar el proyecto, se les pidi autorizacin para organizar reuniones con los
operarios y que estos demostrasen como desempeaban su trabajo diario, de esta
forma podra tener una visin mas amplia de su forma de trabajar y podra adecuar el
nuevo sistema tanto a las necesidades de sus superiores como a las suyas. Una vez
analizada la forma de trabajar y siempre cindome a las peticiones del gerente y el
encargado realice una propuesta de proyecto y este fue aceptado.
5
- Capitulo 5: Anlisis detallado. Estudio del proyecto y modelado de los
diferentes diagramas que describen la estructura del sistema, necesarios para su
desarrollo.
- Capitulo 6: Implementacin. Herramientas y entornos utilizados para la
implementacin del proyecto
- Capitulo 7: Manual de usuario. Gua detallada para el uso de la aplicacin por
el cliente.
- Capitulo 8: Bibliografa. Autores, ttulos y referencias de los textos utilizados
como soporte para la realizacin del proyecto.
6
1.1. Qu es un Almacn?
1.1.1. Definicin
7
- Ciclo Combinado Son una serie de operaciones que sufre un artculo desde
que llega al almacn hasta que se deposita en su alveolo. Formar de moverlo.
- Ciclo Simple Es cada una de las partes en las que se divide el Ciclo
Combinado.
8
1.2.1. Recepcin: Responsabilidades que Incluye
Actividad de Recepcin
9
1.2.3. Almacenamiento: Sus Diferentes Actividades
Almacn de suministros
Materiales para el mantenimiento de equipos.
Oficinas material de oficina.
Se guardan cerca del rea de uso.
10
El almacn y rea colindante deben estar perfectamente coordinados.
Identificacin positiva.
No haya ninguna duda de que los materiales estn perfectamente identificados.
Es absolutamente vital para un almacn medio o grande.
Mxima proteccin.
Los costes, si no se protege, son muy grandes.
Tanto en cuestin de golpes, contaminacin.
Deben llevar cierre, seguridad, etc. Con la mxima proteccin.
Evitar todo lo relacionado con el tipo de material que tratamos.
Orden.
No debe haber nunca nada fuera de su sitio y un sitio para cada cosa.
Facilitar la buena marcha del almacn.
1.2.5. Inventarios
Definicin.
Consiste en una enumeracin precisa de lo que contiene el almacn, en
calidad y cantidad.
Esta operacin es indispensable para saber que se dispone.
El inventario debe ser permanente, tanto en salidas como en entradas.
El inventario internamente se realiza slo una vez al ao.
Desviaciones reales.
Despistes en la introduccin de datos.
Productos que se daen en el almacn (caducados, rotos, etc).
Daos durante la carga en un nicho que no le corresponde.
El inventario fsico ha de ser igual al inventario administrativo.
Control.
Debe coincidir los datos introducidos con lo que realmente tenemos en el
almacn.
Comprobacin de cantidades, peso (neto).
Control de marcaje la marca debe corresponder al producto.
11
Control del embalaje para preservar la mercanca.
1.3. La Logstica
1.3.1. El Origen
1.3.2. Definicin
12
- Recursos humanos operativos(ej: personal)
- Recursos de utilidad a consumir (ej: agua, electricidad...)
Lo primero que hay que hacer cuando entran productos es identificar el origen
y destino para comprobar que no es un error. Seguidamente se identifica el envo para
descargarlo por la zona adecuada.
Durante la descarga hay que hacer una comprobacin o recepcin externa del
gnero (lo que est daado externamente tiene que ser devuelto, pudiendo
descargarlo o no, segn el acuerdo establecido).
13
Una vez finalizada esta fase se firma la documentacin del transportista
dndole las copias correspondientes. A partir de este momento el transportista puede
abandonar la instalacin.
1.4.2.1. Extraccin.
14
ALMACN ALMACN
ENTRADA SALIDA
Por ltimo e igual como ocurre en la entrada del gnero, toda actividad tiene
que ser introducida en el sistema informtico. Ahora slo nos quedar embalar, pesar,
etiquetar y expedir.
15
- Entregarlos al transportista, habiendo firmado antes la documentacin
correspondiente.
16
1.5.1. Definicin
Los stocks los podemos definir como los artculos en espera de su utilizacin
posterior.
17
2. Especificacin del Problema
MANTENIMIENTO PRODUCTOS
-Alta de producto
-Edicin de producto
-Baja de producto
-Ver ficha de producto
18
CONTROL INVENTARIO
-Entrada almacn
-Salida almacn
-Movimiento interno de producto
LISTADOS
-Listado histrico de movimientos
-Listado del inventario
-Listado de productos
-Listado de ubicaciones
-Impresin de etiquetas de cdigo de barras.
19
3. Arquitectura utilizada
- Concepto de Multicapa
- Capa Negocio: En esta capa lgica se contiene los objetos del dominio del
problema, as como las colecciones de estos objetos. A ella le llegan todos los
mensajes que produce la capa Presentacin. En este nivel se definen todas las
funciones y clculos intermedios que se realizarn con los datos origen antes de
presentarlos al usuario.
- Capa Tuplas-Objeto: Este nivel contiene todas las funciones necesarias para
el paso de la informacin que se extrae e introduce (si ha habido alguna modificacin)
en la Base de Datos.
20
- Capa de Acceso a BD: Contiene toda la informacin referente a las consultas
que deben hacerse sobre el sistema de informacin (la Base de Datos) y transfiere a
los objetos de la capa superior.
21
Fig.3 Comunicacin entre capas
22
Fig.4 Ejemplo de definicin de tabla en MySQL para la clase Producto.
Obtener DatosResultSet
23
Capa Negocio, insertar nueva informacin o borrarla, para cada una de las clases del
proyecto.
- La Capa Negocio tendr una lista dinmica de objetos de cada clase. Esta
lista ser cargada con toda la informacin de la Base de Datos sobre esa clase y se
realizarn los cambios y modificaciones sobre ella, hasta que se decida actualizar la
BD con la nueva informacin. Tambin contiene todas las funciones que pueden hacer
falta a la hora de trabajar con la informacin, por lo que se crean numerosos mtodos,
tanto sobre el estado de los datos del sistema (obtener todos los elementos de una
clase determinada, el nmero total u obtener datos de una instancia en concreto)
como sobre el tratamiento de los eventos que pueden ocurrir (nuevo, borrar, modificar
algn atributo, calcular identificadores,).
24
Fig.5 Ejemplo de interfaz de la capa de Presentacin asociada a la clase Producto
25
4. Planificacin
26
Fig.6 Modelo Cascada Realimentado
Para ver con mayor claridad la planificacin, se puede observar la figura 7, para
poder ver las fechas, la duracin y los componentes que llevan a cabo cada tarea.
Al finalizar cada etapa se ha realizado una reunin tanto con el cliente como
con el director de proyecto, la idea bsica de estas es que proporcionen suficiente
informacin para generar confianza en el cliente y el jefe de proyecto, de que el
27
proyecto avanza notoriamente, que la fecha de culminacin se respetar (o en caso
contrario, cul es la tardanza real) y que el coste del desarrollo est dentro de los
mrgenes previstos.
Anlisis:
Desarrollo de Casos de uso: fase donde se detallan los roles de las personas
que van a participar en el sistema as como las funciones que van a llevar a cabo cada
uno y pasar la informacin que hemos encontrado anteriormente al diagrama (en el
captulo tres se detalla el Diagrama de Casos de Uso).
28
Diseo:
Diseo BD: es preciso saber cuales son los datos necesarios a almacenar y la
relacin de unas tablas con otras para poder empezar a estructurar las diferentes
pantallas.
Diseo Detallado:
Implementacin:
29
obligndonos a redisear todo el anlisis inicial y tener que modificar toda la estructura
del proyecto.
Pruebas:
Testeo: fase en donde hay que testear todo lo anterior para comprobar que el
sistema funciona a la perfeccin, en esta fase se deberan de detectar todos los
posibles Bugs, en el caso de que existiesen. Para un correcto Testeo deberamos de
coger los casos de uso y seguirlos paso a paso, marcando todo lo que esta testeado y
funcionando correctamente, para asegurarnos de que no nos olvidamos de testear
ninguna funcionalidad.
Implantacin y Mantenimiento
Tras esta etapa se realiza una entrega de la aplicacin al director del proyecto:
para que l determine si el proyecto ha llegado a los objetivos marcados de la manera
ms eficiente.
30
dicho diagrama muestra el origen y el final de las diferentes unidades mnimas de
trabajo y los grupos de tareas o las dependencias entre unidades mnimas de trabajo.
Seguidamente en la figura 8 se puede ver con detalle cual es el resultado del
Diagrama de Gantt.
31
Fig. 8 Diagrama de Gantt del Proyecto
32
5. Anlisis detallado
- Casos de Uso
33
De manera que, un caso de uso describe una funcionalidad ms una
interaccin entre un actor y un sistema en forma de secuencia de acciones. La
descripcin se centra en lo que debe hacerse, no en la manera de hacerlo. Se debe de
expresar de forma sencilla y clara.
Otros aspectos importantes referentes a los casos de usos, son las relaciones
entre los propios casos de uso. Estas relaciones son: Incluye (<<include>>)
El primer nivel del diagrama de casos de uso, en este nivel nicamente vamos
a encontrar paquetes para despus ir explicando cada uno de ellos.
34
Seguidamente vamos a explicar cada uno de los paquetes.
Pantalla de Login
Iniciador: Usuario
Actor secundario: -
Precondicin: El servidor Tomcat y el servidor de Base de datos deben estar
arrancados y accesibles.
Poscondicin: -
Flujo de Eventos
Puntos de Extensin
35
Men Principal
Iniciador: Usuario
Actor secundario: -
Precondicin: La aplicacin esta arrancada y el usuario se ha validado
correctamente.
Poscondicin: El sistema detecta las solicitudes del usuario y reacciona
correctamente a estas peticiones.
Flujo de Eventos
Puntos de Extensin
36
1.- Alta Producto
Iniciador: Usuario
Actor secundario: -
Precondicin: La aplicacin esta arrancada y el usuario se ha validado
correctamente.
Poscondicin: El sistema registra las modificaciones.
Flujo de Eventos
Puntos de Extensin
#1.- En la pantalla alta aparecer un botn que nos permita volver a la pantalla
principal sin guardar cambios.
#2.- Los campos Cdigo y Cdigo EAN no podrn ser introducidos manualmente
por el usuario, ya que estos campos los gestiona automticamente el sistema.
37
#3.- Si los datos de los campos obligatorios estn en blanco, o no tienen el formato
correcto, el sistema avisara mediante mensajes emergentes al usuario, para que este
complete o modifique los datos necesarios.
38
2.- Alta Ubicacin
Iniciador: Usuario
Actor secundario: -
Precondicin: La aplicacin esta arrancada y el usuario se ha validado
correctamente.
Poscondicin: El sistema registra las modificaciones.
Flujo de Eventos
Puntos de Extensin
#1.- En la pantalla aparecer un botn que nos permita volver a la pantalla principal sin
guardar cambios.
#2.- Los campos Cdigo y Cdigo EAN no podrn ser introducidos manualmente
por el usuario, ya que estos campos los gestiona automticamente el sistema.
39
#3.- Si los datos de los campos obligatorios estn en blanco, o no tienen el formato
correcto, el sistema avisara mediante mensajes emergentes al usuario, para que este
complete o modifique los datos necesarios.
40
3.- Entrada Producto
Iniciador: Usuario
Actor secundario: -
Precondicin: La aplicacin esta arrancada y el usuario se ha validado
correctamente.
Poscondicin: El sistema registra las modificaciones.
Flujo de Eventos
41
Puntos de Extensin
#1.- En la pantalla aparecer un botn que nos permita volver a la pantalla principal sin
guardar cambios.
#2.- Si los datos de los campos obligatorios estn en blanco, o no tienen el formato
correcto, el sistema avisara mediante mensajes emergentes al usuario, para que este
complete o modifique los datos necesarios.
42
4.- Salida Producto
Iniciador: Usuario
Actor secundario: -
Precondicin: La aplicacin esta arrancada y el usuario se ha validado
correctamente.
Poscondicin: El sistema registra las modificaciones.
Flujo de Eventos
43
Puntos de Extensin
#1.- En la pantalla aparecer un botn que nos permita volver a la pantalla principal sin
guardar cambios.
#2.- Si los datos de los campos obligatorios estn en blanco, o no tienen el formato
correcto, el sistema avisara mediante mensajes emergentes al usuario, para que este
complete o modifique los datos necesarios.
44
5.- Movimiento Productos
Iniciador: Usuario
Actor secundario: -
Precondicin: La aplicacin esta arrancada y el usuario se ha validado
correctamente.
Poscondicin: El sistema registra las modificaciones.
Flujo de Eventos
INTENCION DE USUARIO OBLIGACION DEL SISTEMA
1 El caso de uso se inicia 2 El servidor de la aplicacin
cuando el usuario selecciona la recibe una solicitud y
opcin 5.- Movimiento devuelve al usuario la
Productos o teclea 5 en el pantalla de Movimiento de
Men principal. Producto.
3 El usuario rellena el campo 4 El sistema comprueba que
Ubicacin Origen y presiona dicho Cdigo de ubicacin
Enter. existe en la BBDD y nos
rellena la descripcin.
5 El usuario rellena el campo 6 El sistema comprueba que
COD EAN Producto y dicho Cdigo de producto
presiona Enter. existe en la BBDD y nos
rellena la descripcin.
7 El usuario rellena el campo 8 El sistema comprueba que
Ubicacin Destino y presiona dicho Cdigo de ubicacin
Enter. existe en la BBDD y nos
rellena la descripcin.
9 Por ultimo el usuario rellena la 10 El sistema comprueba que
cantidad y presiona el botn los campos obligatorios
aceptar. estn rellenados y que los
datos tienen el formato
correcto, si todo es correcto
almacena los datos en la
BBDD y devuelve la pantalla
de xito.
11 El usuario presiona el botn 12 El sistema devuelve al
45
aceptar. usuario a la pantalla principal
de la aplicacin.
Puntos de Extensin
#1.- En la pantalla aparecer un botn que nos permita volver a la pantalla principal sin
guardar cambios.
#2.- Si los datos de los campos obligatorios estn en blanco, o no tienen el formato
correcto, el sistema avisara mediante mensajes emergentes al usuario, para que este
complete o modifique los datos necesarios.
46
6.- Listado de Productos
Iniciador: Usuario
Actor secundario: -
Precondicin: La aplicacin esta arrancada y el usuario se ha validado
correctamente.
Poscondicin: El sistema registra las modificaciones.
Flujo de Eventos
Puntos de Extensin
#1.- En la pantalla aparecer un botn que nos permita volver a la pantalla principal sin
guardar cambios.
47
6.1. Bsqueda en Listado de Productos
Iniciador: Usuario
Actor secundario: -
Precondicin: La aplicacin esta arrancada, el usuario se ha validado correctamente
y nos encontramos en la pantalla de Listado de Productos.
Poscondicin: El sistema registra las modificaciones.
Flujo de Eventos
Puntos de Extensin
48
6.2. Ordenacin en Listado de Productos
Iniciador: Usuario
Actor secundario: -
Precondicin: La aplicacin esta arrancada, el usuario se ha validado correctamente
y nos encontramos en la pantalla de Listado de Productos.
Poscondicin: El sistema registra las modificaciones.
Flujo de Eventos
Puntos de Extensin
49
6.3. Abrir Ficha de Producto
Iniciador: Usuario
Actor secundario: -
Precondicin: La aplicacin esta arrancada, el usuario se ha validado correctamente
y nos encontramos en la pantalla de Listado de Productos.
Poscondicin: -
Flujo de Eventos
Puntos de Extensin
#1.- La ficha del producto abierta dispondr de un botn volver, que nos permitir
volver al listado de productos.
#3.- En la ficha del producto debe de aparecer un botn Imprimir Etiqueta, que
sacara por la impresora de etiquetas o en PDF la etiqueta de cdigo de barras
correspondiente a dicho producto.
50
6.4. Imprimir Listado de Producto
Iniciador: Usuario
Actor secundario: -
Precondicin: La aplicacin esta arrancada, el usuario se ha validado correctamente
y nos encontramos en la pantalla de Listado de Productos.
Poscondicin: -
Flujo de Eventos
Puntos de Extensin
51
6.5. Operaciones en Ficha de Producto
Iniciador: Usuario
Actor secundario: -
Precondicin: La aplicacin esta arrancada, el usuario se ha validado correctamente
y nos encontramos en la pantalla de Ficha de Producto.
Poscondicin: El sistema registra las modificaciones.
Flujo de Eventos
Puntos de Extensin
#1.- En la pantalla aparecer un botn que nos permita volver a la pantalla principal sin
guardar cambios.
#2.- Los campos Cdigo y Cdigo EAN no se podrn modificar, ya que estos
campos los gestiona automticamente el sistema.
#3.- Si los datos de los campos obligatorios estn en blanco, o no tienen el formato
correcto, el sistema avisara mediante mensajes emergentes al usuario, para que este
complete o modifique los datos necesarios.
52
#4.- Si durante la insercin en la base de datos ocurre algn problema, la aplicacin
nos mostrara una pantalla de error, para informarnos de que la transaccin no se ha
realizado.
53
6.5.2. Eliminar Producto
Iniciador: Usuario
Actor secundario: -
Precondicin: La aplicacin esta arrancada, el usuario se ha validado correctamente
y nos encontramos en la pantalla de Ficha de Producto.
Poscondicin: El sistema registra las modificaciones.
Flujo de Eventos
Puntos de Extensin
#1.- En la pantalla aparecer un botn que nos permita volver a la pantalla principal sin
guardar cambios.
54
6.5.3. Imprimir Etiqueta Producto
Iniciador: Usuario
Actor secundario: -
Precondicin: La aplicacin esta arrancada, el usuario se ha validado correctamente
y nos encontramos en la pantalla de Ficha de Producto.
Poscondicin: -
Flujo de Eventos
Puntos de Extensin
55
7.- Listado de Ubicaciones
Iniciador: Usuario
Actor secundario: -
Precondicin: La aplicacin esta arrancada y el usuario se ha validado
correctamente.
Poscondicin: El sistema registra las modificaciones.
Flujo de Eventos
Puntos de Extensin
#1.- En la pantalla aparecer un botn que nos permita volver a la pantalla principal sin
guardar cambios.
56
7.1. Bsqueda en Listado de Ubicaciones
Iniciador: Usuario
Actor secundario: -
Precondicin: La aplicacin esta arrancada, el usuario se ha validado correctamente
y nos encontramos en la pantalla de Listado de Ubicaciones.
Poscondicin: El sistema registra las modificaciones.
Flujo de Eventos
Puntos de Extensin
57
7.2. Ordenacin en Listado de Ubicaciones
Iniciador: Usuario
Actor secundario: -
Precondicin: La aplicacin esta arrancada, el usuario se ha validado correctamente
y nos encontramos en la pantalla de Listado de Ubicaciones.
Poscondicin: El sistema registra las modificaciones.
Flujo de Eventos
Puntos de Extensin
58
7.3. Abrir Ficha de Ubicacin
Iniciador: Usuario
Actor secundario: -
Precondicin: La aplicacin esta arrancada, el usuario se ha validado correctamente
y nos encontramos en la pantalla de Listado de Ubicaciones.
Poscondicin: -
Flujo de Eventos
Puntos de Extensin
#1.- La ficha de la ubicacin abierta dispondr de un botn volver, que nos permitir
volver al listado de productos.
59
7.4. Imprimir Listado de Ubicacin
Iniciador: Usuario
Actor secundario: -
Precondicin: La aplicacin esta arrancada, el usuario se ha validado correctamente
y nos encontramos en la pantalla de Listado de Ubicaciones.
Poscondicin: -
Flujo de Eventos
Puntos de Extensin
60
7.5. Operaciones en Ficha de Ubicacin
Iniciador: Usuario
Actor secundario: -
Precondicin: La aplicacin esta arrancada, el usuario se ha validado correctamente
y nos encontramos en la pantalla de Ficha de Ubicacin.
Poscondicin: El sistema registra las modificaciones.
Flujo de Eventos
Puntos de Extensin
#1.- En la pantalla aparecer un botn que nos permita volver a la pantalla principal sin
guardar cambios.
#2.- Los campos Cdigo y Cdigo EAN no se podrn modificar, ya que estos
campos los gestiona automticamente el sistema.
#3.- Si los datos de los campos obligatorios estn en blanco, o no tienen el formato
correcto, el sistema avisara mediante mensajes emergentes al usuario, para que este
complete o modifique los datos necesarios.
61
#4.- Si durante la insercin en la base de datos ocurre algn problema, la aplicacin
nos mostrara una pantalla de error, para informarnos de que la transaccin no se ha
realizado.
62
7.5.2. Eliminar Ubicacin
Iniciador: Usuario
Actor secundario: -
Precondicin: La aplicacin esta arrancada, el usuario se ha validado correctamente
y nos encontramos en la pantalla de Ficha de Ubicacin.
Poscondicin: El sistema registra las modificaciones.
Flujo de Eventos
Puntos de Extensin
#1.- En la pantalla aparecer un botn que nos permita volver a la pantalla principal sin
guardar cambios.
63
7.5.3. Imprimir Etiqueta Ubicacin
Iniciador: Usuario
Actor secundario: -
Precondicin: La aplicacin esta arrancada, el usuario se ha validado correctamente
y nos encontramos en la pantalla de Ficha de Ubicacin.
Poscondicin: -
Flujo de Eventos
Puntos de Extensin
64
8.- Listado de Movimientos
Iniciador: Usuario
Actor secundario: -
Precondicin: La aplicacin esta arrancada y el usuario se ha validado
correctamente.
Poscondicin: El sistema registra las modificaciones.
Flujo de Eventos
Puntos de Extensin
#1.- En la pantalla aparecer un botn que nos permita volver a la pantalla principal sin
guardar cambios.
65
8.1. Bsqueda en Listado de Movimientos
Iniciador: Usuario
Actor secundario: -
Precondicin: La aplicacin esta arrancada, el usuario se ha validado correctamente
y nos encontramos en la pantalla de Listado de Movimientos.
Poscondicin: El sistema registra las modificaciones.
Flujo de Eventos
Puntos de Extensin
66
8.2. Abrir Ficha de Producto
Iniciador: Usuario
Actor secundario: -
Precondicin: La aplicacin esta arrancada, el usuario se ha validado correctamente
y nos encontramos en la pantalla de Listado de Movimientos.
Poscondicin: -
Flujo de Eventos
Puntos de Extensin
#1.- La ficha del producto abierta dispondr de un botn volver, que nos permitir
volver al listado de movimientos.
#3.- En la ficha del producto debe de aparecer un botn Imprimir Etiqueta, que
sacara por la impresora de etiquetas o en PDF la etiqueta de cdigo de barras
correspondiente a dicho producto.
67
8.3. Imprimir Listado de Movimientos
Iniciador: Usuario
Actor secundario: -
Precondicin: La aplicacin esta arrancada, el usuario se ha validado correctamente
y nos encontramos en la pantalla de Listado de Movimientos.
Poscondicin: -
Flujo de Eventos
Puntos de Extensin
68
9.- Listado de Inventario
Iniciador: Usuario
Actor secundario: -
Precondicin: La aplicacin esta arrancada y el usuario se ha validado
correctamente.
Poscondicin: El sistema registra las modificaciones.
Flujo de Eventos
Puntos de Extensin
#1.- En la pantalla aparecer un botn que nos permita volver a la pantalla principal.
69
9.1. Bsqueda en Listado de Inventario
Iniciador: Usuario
Actor secundario: -
Precondicin: La aplicacin esta arrancada, el usuario se ha validado correctamente
y nos encontramos en la pantalla de Listado de Inventario.
Poscondicin: El sistema registra las modificaciones.
Flujo de Eventos
Puntos de Extensin
70
9.2. Abrir Ficha de Producto
Iniciador: Usuario
Actor secundario: -
Precondicin: La aplicacin esta arrancada, el usuario se ha validado
correctamente y nos encontramos en la pantalla de Listado de Inventario.
Poscondicin: -
Flujo de Eventos
Puntos de Extensin
#1.- La ficha del producto abierta dispondr de un botn volver, que nos permitir
volver al listado de inventario.
#3.- En la ficha del producto debe de aparecer un botn Imprimir Etiqueta, que
sacara por la impresora de etiquetas o en PDF la etiqueta de cdigo de barras
correspondiente a dicho producto.
71
9.3. Imprimir Listado de Inventario
Iniciador: Usuario
Actor secundario: -
Precondicin: La aplicacin esta arrancada, el usuario se ha validado correctamente
y nos encontramos en la pantalla de Listado de Inventario.
Poscondicin: -
Flujo de Eventos
Puntos de Extensin
72
- Diagrama de clases
Los elementos de un diagrama de clases son las clases, las relaciones y las
interfaces. Las clases son las que describen un conjunto de objetos con propiedades y
comportamientos comunes.
Las relaciones son los enlaces entre los distintos elementos de los diagramas.
A varios tipos de relaciones, por lo que nos vamos a centrar en explicar aquellas que
nosotros hemos utilizado en nuestro diagrama. Estas son:
73
Composicin: representacin de una relacin de composicin entre un
elemento y sus componentes (rombo relleno).
74
- Modelo Relacional
En este modelo todos los datos son almacenados en relaciones, y como cada
relacin es un conjunto de datos, el orden en el que estos se almacenen no tiene
mayor relevancia.
El lenguaje ms comn (el que nosotros hemos utilizado) para construir las
consultas a bases de datos relacionales es SQL (Structured Query Language), un
estndar implementado por los principales motores o sistemas de gestin de bases de
datos relacionales.
75
Fig.13 Notacin Modelo Relacional
Como vemos en la imagen anterior, cada caja hace referencia a una tabla. El
nombre que aparece en la parte superior de la tabla es el nombre de la tabla en
cuestin. La primera fila que aparece, donde pone PK (PRIMARY KEY), expresa cual
es la clave primaria dentro de la tabla. Seguidamente, en la siguiente fila podemos ver
una serie de nombres, los cuales hacen referencia a los atributos de la tabla. Pero en
aquellos atributos a los que aparezcan al lado FK (FOREIGN KEY) quiere decir cul o
cules son las claves ajenas de la tabla. Para finalizar, la flecha significa
con que tabla se relaciona dicha clave ajena, en este ejemplo seria la Tabla Paciente
se relaciona con Usuario.
Normalmente se pueden identificar las tablas del modelo relacional a travs del
diagrama de clases que hemos obtenido. En este caso es casi similar, ya que tenemos
las mismas 7 tablas que tenemos en el diagrama de clases.
76
Fig.14 Modelo Relacional
77
6. Implementacin
Entorno
Eclipse es un potente entorno de desarrollo integrado Java (IDE, por sus siglas
en ingls), es multiplataforma, (disponible para Windows, Linux, Solaris, y Mac OS X)
que agiliza el desarrollo de las aplicaciones en lenguaje Java.
78
un servidor embebido (en nuestro caso un Tomcat), para la realizacin de dichas
pruebas.
Editor de Cdigo: al igual que cualquier otro IDE, incluye un editor de cdigo
que soporta resaltado de sintaxis y el uso de cdigo de IntelliSense, no slo en
variables, funciones y mtodos, sino tambin como lenguaje que construye bucles y
preguntas. Cosa que resulta muy til, ya que te ayuda a programar de una forma ms
rpida y eficaz, sin tener que estar buscando por las clases los nombre de las
propiedades o de los mtodos que quieras usar. Tambin ha sido til a la hora de
crear las propiedades, ya que nicamente colocando prop y tabular, te crea la
estructura para realizar una propiedad. De igual manera pasa con la creacin de
bucles, como ya hemos comentado anteriormente. Adems apoya el establecimiento
de marcadores en el cdigo para facilitar una navegacin ms rpida.
Debugger: es una herramienta muy util para poder encontrar los problemas
en un determinado punto del codigo de nuestra aplicacin. Colocando un punto de
interrupcin en la zona de cdigo donde se produce el error, o creemos que se puede
producir, se va ejecutando paso por paso para ver qu valores van tomando las
variables y dems propiedades, y as comprobar si es lo esperado, y si no lo es,
detectar con ms certeza donde nos hemos podido equivocar, para despus poder
reparar el error. Estos breakpoints pueden ser condicionales, es decir, que
coloquemos una condicin para cuando esta se cumpla, entonces se produzca dicha
interrupcin. Adems, se puede ir recorriendo en cdigo de varias formas, haciendo
una ejecucin paso a paso por instrucciones o paso a paso por procedimientos. La
primera hace referencia a que pasar por todas las lneas de cdigo por las cuales
deba pasar, y la segunda, hace el recorrido ms rpido sin introducirse en los mtodos
por los que vaya pasando.
79
Diseo: en nuestra aplicacin hemos utilizado JSP (HTML con Java y
JavaScript). Ademas de usar estilos y CSS para adecuar la interfaz grfica de
usuario.
80
Tambin admite mtodos y tipos genricos, que proporcionan mayor
rendimiento y seguridad de tipos, e iteradores, que permiten a los implementadores de
clases de coleccin definir comportamientos de iteracin personalizados que el cdigo
de cliente puede utilizar fcilmente.
Los pasos para crear y desplegar un informe en una aplicacin Java son los
siguientes. El primer paso es crear la plantilla de informe, un archivo XML con
extensin jrxml (XML JasperReports). Esta plantilla se puede crear a mano o utilizando
una herramienta como iReport. El jrxml contiene toda la informacin de diseo y otras
cosas como la posibilidad de consulta que deben ser utilizados para adquirir los datos
81
y la definicin de parmetros de entrada. Jrxml El archivo est compilado en un
formato binario que producen un archivo Jasper. Jasper el archivo puede ser cargado
en una aplicacin Java utilizando el JasperRepors API, y se utiliza para generar el
informe con una fuente de datos (es decir, una conexin JDBC) y si es necesario los
parmetros de entrada (que puede ser utilizada por ejemplo para filtrar los registros).
El resultado puede ser exportado en un formato final (como PDF) o ver con el
JasperReports construido en espectador. Todas estas operaciones se pueden realizar
directamente en iReport como parte del proceso de elaboracin de informe.
Poco a poco los elementos de los que careca MySQL estn siendo
incorporados tanto por desarrollos internos, como por desarrolladores de software
libre. Entre las caractersticas disponibles en las ltimas versiones se puede destacar:
82
Procedimientos almacenados
Disparadores (triggers)
Cursores
Vistas actualizables
Soporte a VARCHAR
INFORMATION_SCHEMA
Modo Strict
Soporte X/Open XA de transacciones distribuidas; transaccin en dos fases
como parte de esto, utilizando el motor InnoDB de Oracle
Transacciones con los motores de almacenamiento InnoDB, BDB Y Cluster;
puntos de recuperacin (savepoints) con InnoDB
Soporte para SSL
Query caching
Sub-SELECTs (o SELECTs anidados)
Rplica con un maestro por esclavo, varios esclavos por maestro, sin soporte
automtico para mltiples maestros por esclavo.
Embedded database library
Soporte completo para Unicode
Conforme a las reglas ACID usando los motores InnoDB, BDB y Cluster
Shared-nothing clustering through MySQL Cluster Existen varias APIs que
permiten, a aplicaciones escritas en diversos lenguajes de programacin, acceder a
las bases de datos MySQL, incluyendo C, C++, C#, Pascal, Delphi (va dbExpress),
Eiffel, Smalltalk, Java (con una implementacin nativa del driver de Java), Lisp, Perl,
PHP, Python, Ruby, Gambas, REALbasic (Mac), (x)Harbour (Eagle1), FreeBASIC, y
Tcl; cada uno de estos utiliza una API especfica. Tambin existe un interfaz ODBC,
llamado MyODBC que permite a cualquier lenguaje de programacin que soporte
ODBC comunicarse con las bases de datos MySQL. Tambin se puede acceder desde
el sistema SAP, lenguaje ABAP.
83
conectadas por relaciones definidas que hacen posible combinar datos de diferentes
tablas sobre pedido.
84
Apache Software Foundation. Tomcat implementa las especificaciones de los servlets
y de JavaServer Pages (JSP) de Sun Microsystems.
Tomcat puede funcionar como servidor web por s mismo. En sus inicios existi
la percepcin de que el uso de Tomcat de forma autnoma era slo recomendable
para entornos de desarrollo y entornos con requisitos mnimos de velocidad y gestin
de transacciones. Hoy en da ya no existe esa percepcin y Tomcat es usado como
servidor web autnomo en entornos con alto nivel de trfico y alta disponibilidad.
Dado que Tomcat fue escrito en Java, funciona en cualquier sistema operativo
que disponga de la mquina virtual Java.
Estructura de directorios:
85
STRUTS (Tecnologa de Implementacin J2EE + JSP) es una herramienta
de soporte para el desarrollo de aplicaciones Web bajo el patrn MVC bajo la
plataforma Java EE (Java Enterprise Edition). Struts se desarrollaba como parte del
proyecto Jakarta de la Apache Software Foundation, pero actualmente es un proyecto
independiente conocido como Apache Struts.
Las aplicaciones Web poseen una estructura de archivos definida para poder
ejecutarse en un contenedor de Servlets, como el Tomcat de Apache, esta estructura
por lo regular no se modifica y solamente se le agregan algunas libreras para poder
correr una aplicacin utilizando Struts.
86
Fig.16 Libreras
Componentes de Struts
MVC es parte fundamental de Struts, para explicar como encajan las partes de
este patrn, se explicar un ejemplo de la Alta de Producto.
Elementos de la Vista
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title><bean:message key="altaProducto.TITULO"/></title>
</head>
87
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr class="etiquetaTexto4">
<td width="60">
<bean:message key="altaProducto.CODIGO"/>
</td>
<td>
<input type="textfield" name="value(CODIGO)" id="CODIGO" disabled/>
</td>
</tr>
</form>
Para el manejo de formas, Struts provee una clase llamada ActionForm que se
debe extender para darle funcionalidad. Dentro de la subclase, por cada campo dentro
de la forma, se debe declarar una variable instancia con el mismo nombre que se
asign al atributo name en el cdigo HTML, para cada variable se deben escribir
mtodos get y set como se muestra en el siguiente ejemplo:
package es.form;
import org.apache.struts.action.ActionForm;
/**
* @author informatica4
*
*/
public class ProductoForm extends ActionForm{
88
La lnea anterior pide un atributo llamado nombre dentro del request y lo
despliega en la pgina.
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>ServletReporte</servlet-name>
<display-name>ServletReporte</display-name>
<description></description>
<servlet-class>es.postigo.action.ServletReporte</servlet-class>
</servlet>
<servlet>
<servlet-name>Conexion</servlet-name>
<display-name>Conexion</display-name>
<description></description>
<servlet-class>es.postigo.utility.Conexion</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ServletReporte</servlet-name>
<url-pattern>/ServletReporte</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Conexion</servlet-name>
<url-pattern>/Conexion</url-pattern>
</servlet-mapping>
<session-config>
89
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
<action-mappings>
<action path="/productoUbicacion"
type="es.postigo.action.ProductoUbicacionAction"
name="registroForm"
scope="session"
validate="true"
input="/index.jsp">
<forward name="ok" path="/WEB-INF/jsp/inventario.jsp"/>
<forward name="SUCCESS" path="/WEB-INF/jsp/inventario.jsp"/>
<forward name="cancel" path="/WEB-INF/jsp/cancel.jsp"/>
</action>
<action path="/listadoProductos"
type="es.postigo.action.ProductoUbicacionAction"
name="registroForm"
scope="session"
validate="true"
input="/index.jsp">
<forward name="ok" path="/WEB-INF/jsp/listadoProductos.jsp"/>
<forward name="volver" path="/WEB-INF/jsp/inventario.jsp"/>
90
<forward name="SUCCESS" path="/WEB-INF/jsp/listadoProductos.jsp"/>
<forward name="ERROR" path="/WEB-INF/jsp/error.jsp"/>
<forward name="inicio" path="/index.jsp"/>
</action>
</action-mappings>
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property
property="pathnames"
value="/org/apache/struts/validator/validator-rules.xml, /WEB-
INF/validation.xml" />
</plug-in>
</struts-config>
La etiqueta form-beans sirve para declarar las clases que representan formas
HTML, en el atributo name se escribe un nombre lgico con el que se le har una
referencia futura y en type se especifica el nombre completo de la clase.
package es.action;
public class InventarioAction extends GenericoAction{
91
String lStrResult = "ok";
/**Comprobar sesin.*/
if(request.getSession().getAttribute("registerUser") == null){
return mapping.findForward("inicio");
}
// Extraemos los datos del formulario
String login = (String) registerForm.get("login");
String pass = (String) registerForm.get("pass");
package es.dao.impl;
String lStrSQL = " SELECT MAX(" + pStrIdCampo + ") FROM " + pStrTabla;
if(pStrWhere.length()>0){
lStrSQL += " WHERE "+ pStrWhere;
}
//return (getLong(lStrSQL) + 1);
PreparedStatement stmt = null;
ResultSet rs = null;
long max = 0;
try {
stmt = con.prepareStatement(lStrSQL);
rs = stmt.executeQuery();
while (rs.next()) {
max = Long.parseLong(rs.getString("MAX(CODIGO)"))+1;
}
} catch (SQLException e) {
e.printStackTrace();
throw new ProductoUbicacionDaoException( "SQLException: " +
e.getMessage(), e );
}
return max;
}
92
int iDigit = 0;
String EAN = pStrCodigo;
EAN = "000000000001";
/**
* Clculo del dgito de control EAN
* @param lStrCodigo
* @return checksum
*/
public int generaChecksumEAN(String lStrCodigo){
int lIntPares = 0;
int lIntImpares = 0;
int lIntSuma = 0;
int lIntResultado = 0;
//lStrCodigo = reverse(lStrCodigo);
return lIntResultado;
}
93
Correr la Aplicacin
Para correr la aplicacin se deben compilar las clases y copiar los paquetes
generados al directorio classes dentro de WEB-INF, por otra parte se deben copiar
tambin las pginas o JSPs encargadas de la vista a la carpeta raz, una vez obtenida
la estructura, se procede a copiar la carpeta de la aplicacin al directorio de nuestro
contenedor de Servlets. La aplicacin funciona de la siguiente manera:
94
Herramientas
95
7. Manual de Usuario
7.1. Introduccin
96
Como posibles propuestas de ampliacin para cubrir mejor las necesidades de
los operarios del almacn, y que la aplicacin les resulte de mayor utilidad en su da a
da, se me ocurren los siguientes puntos a desarrollar:
- La impresin de informes de los listados en PDF
- La exportacin a EXCEL de los listados
- Gestin automtica de las ubicaciones del almacn
- Actualizar el aspecto de nuestra aplicacin mediante CSS, imgenes,
97
Fig.19 Pantalla de Login
http://192.168.0.205:8080/GestionAlmacen
98
7.2.3. Validarse en la aplicacin
99
7.3. Men principal
100
Fig.23 Pantalla de Alta de Producto
Esta pantalla nos permite crear productos que hasta el momento no existan en
nuestra base de datos. Para crear un nuevo producto tenemos que tener en cuenta un
par de conceptos:
101
El campo UNIDADES es un desplegable que nos permite seleccionar la
unidad de medida deseada (Por defecto saldr seleccionada la opcin UD):
UD Unidades
ML Metros lineales
M2 Metros cuadrados
KG Kilogramos
RO Rollo
102
Fig.25 Pantalla de Error
Para crear una nueva ubicacin, solo tenemos que pulsar sobre esta opcin en
el men principal, o seleccionarla mediante el 2.
103
Fig.27 Pantalla Alta Ubicacin
Esta pantalla nos permite crear nuevas ubicaciones teniendo en cuenta un par
de conceptos:
- El cdigo de la ubicacin lo genera el programa
- El cdigo EAN de la ubicacin tambin es generado mediante el
programa
104
Si se ha producido algn problema, nos aparecer la pantalla de error, y
tendremos que repetir la introduccin de los datos para poder llevar a cabo la accin.
105
7.3.3. Entrada producto
Para dar de entrada un producto, solo tenemos que pulsar sobre esta opcin
en el men principal, o seleccionarla mediante el 3.
106
Si utilizamos el terminal con lector de cdigo de barras, podemos pulsar el
gatillo (botn azul ubicado en la parte inferior de dicho terminal) y mediante el haz de
luz que saca por la parte frontal, leer el cdigo de barras de la etiqueta
correspondiente, tanto a la ubicacin como al producto.
Una vez rellenados los campos pulsaremos el botn Aceptar que nos
mostrara una pantalla de xito para que sepamos que el producto se ha ubicado
correctamente.
107
En el caso de no querer llevar a cabo la entrada del producto, tambin
podemos pulsar sobre el botn Volver, que nos devolver al men principal.
Para la salida de un producto, solo tenemos que pulsar sobre esta opcin en el
men principal, o seleccionarla mediante el 4.
108
Fig.37 Pantalla Salida de Producto con datos
Una vez rellenados los campos pulsaremos el botn Aceptar que nos
mostrara una pantalla de xito para que sepamos que se ha generado correctamente
la salida del producto de nuestro almacn.
109
Si ha ocurrido algn problema, nos aparecer la pantalla de error, y tendremos
que volver a introducir los datos para poder llevar a cabo la accin.
110
7.3.5. Movimiento de productos
111
Fig.42 Pantalla de Movimiento de productos
Una vez rellenados los campos pulsaremos el botn Aceptar que nos
mostrara una pantalla de xito para que sepamos que se ha generado correctamente
el movimiento del producto de la ubicacin origen a la ubicacin destino.
112
Si ha ocurrido algn problema, nos aparecer la pantalla de error, y tendremos
que volver a introducir los datos para poder llevar a cabo la accin.
113
7.3.6. Listado de productos
Para ver el listado de productos, solo tenemos que pulsar sobre esta opcin en
el men principal, o seleccionarla mediante el 6.
Al cargar el listado nos aparecern los primeros diez productos ordenados por
cdigo, ya que las pginas del listado van de diez en diez. En la parte inferior del
listado podremos ver en todo momento en que pagina nos encontramos y los links a
las paginas siguiente, anterior primera y ultima (en caso de que las haya).
114
Pulsando sobre el link de siguiente podremos cargar los siguientes diez
productos del listado, y pulsando sobre el link anterior se cargaran los diez productos
previos.
115
Fig.49 Fila seleccionada Listado de Productos
116
Y por ultimo, podemos volver al men principal pulsando el botn Volver.
117
Fig.53 Ficha de Producto
A la derecha del botn Volver veremos el botn Guardar, que nos permite
guardar en la base de datos las modificaciones realizadas en la ficha.
A la derecha del botn Guardar veremos el botn Eliminar, que nos permite
borrar el producto de la base de datos, siempre y cuando no tenga registros asociados
en la tabla de inventario.
118
Y por ultimo tenemos el botn Imprimir etiqueta, que nos imprime
automticamente la etiqueta con el cdigo de barras del artculo, para su posterior
identificacin mediante el terminal.
119
7.3.7. Listado de ubicaciones
Para ver el listado de ubicaciones, solo tenemos que pulsar sobre esta opcin
en el men principal, o seleccionarla mediante el 7.
120
Pulsando sobre el link de siguiente podremos cargar las siguientes diez
ubicaciones del listado, y pulsando sobre el link anterior se cargaran las diez
ubicaciones previas.
121
Fig.62 Listado de Ubicaciones
122
7.3.7.1. Ficha de ubicacin
123
Para volver al listado disponemos en la parte inferior de la pantalla de un botn
Volver.
A la derecha del botn Volver veremos el botn Guardar, que nos permite
guardar en la base de datos las modificaciones realizadas en la ficha.
A la derecha del botn Guardar veremos el botn Eliminar, que nos permite
borrar el producto de la base de datos, siempre y cuando no tenga registros asociados
en la tabla de inventario.
124
7.3.8. Listado de movimientos
Para ver el listado de movimientos, solo tenemos que pulsar sobre esta opcin
en el men principal, o seleccionarla mediante el 8.
En la parte inferior del listado podremos ver en todo momento en que pagina
nos encontramos y los links a las paginas siguiente, anterior, primera y ultima (en caso
de que las haya).
125
En la parte superior derecha de la pantalla podremos ver un campo de texto y
un botn Buscar, si introducimos en este campo la ubicacin origen, la ubicacin
destino o el cdigo del producto, nos filtrara el listado, mostrndonos un nuevo listado
con las coincidencias.
126
7.3.9. Listado Inventario
Para ver el listado de inventario, solo tenemos que pulsar sobre esta opcin en
el men principal, o seleccionarla mediante el 9.
127
En la parte inferior del listado podremos ver en todo momento en que pagina
nos encontramos y los links a las paginas siguiente, anterior, primera y ultima (en caso
de que las haya).
128
7.3.10. Cerrar Sesin
129
Fig.80 Pantalla de Login con datos
Una vez nos hayamos vuelto a validar ya podremos llevar a cabo las acciones
deseadas.
130
Fig.81 Funcionalidad Buscar
131
Ejemplo de bsqueda por cdigo:
132
7.3.12. Funcionalidad Orden en los listados
Los diferentes listados que nos proporciona el programa vienen ordenados por
defecto, pero al usuario puede interesarle cambiar los parmetros de ordenacin, y
para ello se ha implementado la funcionalidad de Orden, que se compone de dos
desplegables, uno para seleccionar el campo por el que queremos ordenar, y otro para
decirle si el orden ser ascendente o descendente:
133
Despus seleccionamos el orden:
Una vez seleccionados los criterios de ordenacin, solo nos quedara pulsar el
botn Ordenar y tendramos la ordenacin del listado adaptada a nuestras
necesidades.
134
8. Bibliografa
- The Apache Software Foundation. Pagina Oficial Apache Tomcat [Acceso: 21-
09-2011]. Disponible en: http://tomcat.apache.org/
135
- Foro Chuidang. Foro de programacin en Castellano. [Acceso: 21-09-2011].
Disponible en: http://foro.chuidiang.com/
136