Anda di halaman 1dari 177

TRABAJO FIN DE GRADO

ESCUELA UNIVERSITARIA POLITCNICA


Departamento de Ciencias Politcnicas
Grado en Ingeniera Informtica

GESTMARKET
Autor:
Jos Mara Blaya Prez
Director:
D. Miguel ngel Guilln Navarro

Murcia, Junio de 2016

TRABAJO FIN DE GRADO

ESCUELA UNIVERSITARIA POLITECNICA


Departamento de Ciencias Politcnicas
Grado en Ingeniera Informtica

GESTMARKET
Autor:
Jos Mara Blaya Prez
Director:
D. Miguel ngel Guilln Navarro

Murcia, Junio de 2016

D. Miguel ngel Guilln Navarro profesor de la UCAM.

CERTIFICA: que el Trabajo Fin de Grado titulado GestMarket que


presenta D. Jos Mara Blaya Prez, para optar al ttulo oficial de Grado en
Ingeniera informtica, ha sido realizado bajo su direccin.

A su juicio rene las condiciones necesarias para ser presentado en la


Universidad Catlica San Antonio de Murcia y ser juzgado por el tribunal
correspondiente.

Murcia, a 1 de junio del 2016

Agradecimientos
Este trabajo no habra sido posible sin todos los conocimientos adquiridos a
lo largo de la carrera, aportndome en cada asignatura las nociones necesarias
para llevar a cabo el proyecto, gracias a cada uno de los profesores de todas las
asignaturas del grado. Agradecer tambin a la universidad todas las facilidades y
flexibilidad que han hecho compatible la realizacin del proyecto con mi trabajo.

Gracias a mi tutor Miguel ngel Guilln por todas las sugerencias y


orientaciones que han conseguido guiarme durante estos tres aos de proyecto.

Gracias a mi familia por ser en todo momento el pilar fundamental de mi


vida, por animarme en cada paso, por celebrar cada triunfo conmigo y apoyarme
en cada fracaso.

A mis amigos, por hacer que los momentos malos no lo sean tanto, por
llenar todos mis das de risas. En especial quiero nombrar a Dani y Pablo, ya que
gracias a ellos este grado ha sido mucho ms fcil.

Pero sobre todo quiero darle las gracias a Alicia, sin su apoyo este trabajo
fin de grado no hubiera sido posible, ya que me ha hecho ver la luz en los peores
momentos y me ha dado las fuerzas que necesarias para finalizarlo.

TABLA DE CONTENIDO
1

Introduccin .................................................................................................................. 31
1.1

Motivacin ............................................................................................................. 31

1.2

Definicin .............................................................................................................. 32

1.3

Objetivos propuestos.............................................................................................. 33

Estudio del mercado ...................................................................................................... 35


2.1

Conceptos relevantes del dominio de aplicacin ................................................... 35

2.2

Relacin con proyectos con la misma funcionalidad............................................. 36

2.2.1

CS-Almacenes ............................................................................................................ 36

2.2.2

GestMag .................................................................................................................... 37

2.2.3

PHC CS TPV ................................................................................................................ 38

2.3

Estudio del mercado ............................................................................................... 40

2.3.1

Alcance del proyecto ................................................................................................. 40

2.3.2

Estudio de la situacin actual .................................................................................... 40

2.3.3

Estudio y valoracin de las alternativas de solucin ................................................. 41

2.3.4

Seleccin de la solucin............................................................................................. 42

Metodologas usadas ..................................................................................................... 43


3.1

Introduccin ........................................................................................................... 43

3.2

Modelo espiral ....................................................................................................... 43

3.2.1

Caractersticas del modelo ........................................................................................ 45

3.3

Modelo RUP .......................................................................................................... 46

3.4

Ventajas e inconvenientes de ambos modelos ....................................................... 49

3.5

Modelo elegido ...................................................................................................... 49

Tecnologas y herramientas utilizadas en el proyecto ................................................... 51


4.1

Spring ..................................................................................................................... 51

4.1.1 Motivos por los que elegir Spring .................................................................................... 52


4.1.2. Arquitectura MVC............................................................................................................ 53

4.2

JPA ......................................................................................................................... 56

4.3

Maven .................................................................................................................... 60

4.4

Jquery y Ajax ......................................................................................................... 62

4.5

JSP ......................................................................................................................... 63

4.6

JSTL ....................................................................................................................... 64

4.7

Apache tiles ............................................................................................................ 67

4.8

CSS ........................................................................................................................ 69

4.9

Apache Tomcat ...................................................................................................... 71

4.10

Oracle Database Express Edition ....................................................................... 72

4.11
5

Estimacin de recursos y planificacin ......................................................................... 73


5.1

JFreeCharts ......................................................................................................... 72
Estimaciones utilizadas .......................................................................................... 73

5.1.1

Mtrica orientada al tamao. ................................................................................... 73

5.1.2

Mtrica orientada al proceso .................................................................................... 74

5.1.3

Mtrica orientada a puntos de funcin .................................................................... 75

5.1.4

Conclusiones a la estimacin .................................................................................... 81

5.2

Planificacin temporal del proyecto ...................................................................... 82

5.3

Valoracin de la dedicacin y el coste econmico ................................................ 85

Desarrollo del contenido del proyecto .......................................................................... 89


6.1

Plan de proyecto ..................................................................................................... 89

6.1.1

6.2

Calendario de proyecto ............................................................................................. 90

Modelado de negocio ............................................................................................. 93

6.2.1

Modelo de empresa .................................................................................................. 94

6.2.2

Modelo de dominio ................................................................................................... 94

6.3

Requisitos............................................................................................................... 96

6.3.1

Casos de uso .............................................................................................................. 96

6.2.3.1 Casos de uso: Hacer login ............................................................................ 98


6.2.3.2 Casos de uso: Realizar venta ........................................................................ 99
6.2.3.3 Casos de uso: Gestionar productos ............................................................. 101
6.2.3.4 Casos de uso: Gestionar tipos de productos ............................................... 104
6.2.3.5 Casos de uso: Gestionar stock .................................................................... 105
6.2.3.6 Casos de uso: Gestionar estadsticas .......................................................... 107
6.2.3.7 Casos de uso: Gestionar pedidos ................................................................ 109
6.2.3.8 Casos de uso: Gestionar usuarios ............................................................... 111
6.4

6.4.1

Diagrama de clases .................................................................................................. 113

6.4.2

Modelo relacional de datos..................................................................................... 114

6.4.3

Diseo de arquitectura del sistema ........................................................................ 119

6.4.4

Diagrama de actividad............................................................................................. 121

6.4.5

Diagrama de secuencia ........................................................................................... 123

Despliegue y pruebas .................................................................................................. 131


7.1

Anlisis y diseo .................................................................................................. 113

Especificacin de los casos de pruebas ................................................................ 132

Conclusiones y vas futuras ......................................................................................... 141


8.1.

Conclusiones ........................................................................................................ 141

8.1.

Vas futuras .......................................................................................................... 143

Bibliografa.................................................................................................................. 147

10 Anexos......................................................................................................................... 149
10.1

Requisitos funcionales...................................................................................... 149

10.2

Requisitos no funcionales................................................................................. 158

10.2.1

Interfaz y usabilidad ................................................................................................ 159

10.2.2 Interfaz y usabilidad ..................................................................................................... 159

10.3

Manual de usuario ............................................................................................ 160

10.3.1

Login ........................................................................................................................ 160

10.3.2 Realizar venta ............................................................................................................... 162


10.3.3 Gestionar productos..................................................................................................... 165

10.3.3.1 Crear producto .......................................................................................... 165


10.3.3.2 Editar producto ......................................................................................... 167
10.3.3.2 Eliminar producto ..................................................................................... 167
10.3.4 Gestionar pedidos ........................................................................................................ 168

10.3.4.1 Generar pedido ......................................................................................... 168


10.3.4.2 Importar pedido ........................................................................................ 170
10.3.5 Gestionar Almacn ....................................................................................................... 170
10.3.5 Stock/Ventas ................................................................................................................ 172

10.5.5.1 Ventas anuales .......................................................................................... 173


10.5.5.2 Ventas mensuales ..................................................................................... 175
10.3.5 Gestionar usuarios ....................................................................................................... 176

NDICE DE TABLAS
Tabla 1. Comparativa aplicaciones ................................................................................. 41
Tabla 2. Mtrica orientada al tamao. Lneas de cdigo ............................................ 74
Tabla 3. Ajustes de complejidad ..................................................................................... 77
Tabla 4. Puntos de funcin............................................................................................... 78
Tabla 5. Puntos sin ajustar ............................................................................................... 79
Tabla 6. Factor de complejidad total............................................................................... 80
Tabla 7. Duracin fases RUP .......................................................................................... 82
Tabla 8. Presupuesto aplicacin ..................................................................................... 85
Tabla 9. Presupuesto equipamiento ............................................................................... 86
Tabla 10. Presupuesto total ............................................................................................. 87
Tabla 11. Flujos de trabajo RUP ..................................................................................... 90
Tabla 12. Implementacin fase de inicio ........................................................................ 91
Tabla 13. Implementacin fase de elaboracin ............................................................ 92
Tabla 14. Implementacin fase de construccin (Iteracin 1) .................................... 93
Tabla 15. Implementacin fase de construccin (Iteracin 2) .................................... 93
Tabla 16. Caso de uso hacer login ................................................................................. 98
Tabla 17. Caso de uso filtrar tipo de producto .............................................................. 99
Tabla 18. Caso de uso realizar venta ........................................................................... 100
Tabla 19. Caso de uso generar ticket........................................................................... 100
Tabla 20. Caso de uso crear producto ......................................................................... 101
Tabla 21. Caso de uso eliminar producto .................................................................... 102
Tabla 22. Caso de uso editar producto ........................................................................ 102
Tabla 23. Caso de uso buscar producto ...................................................................... 103
Tabla 24. Caso de uso crear tipo de producto ............................................................ 104
Tabla 25. Caso de uso consultar stock ........................................................................ 105
Tabla 26. Caso de uso eliminar caducados ................................................................ 106
Tabla 27. Caso de uso consultar grfico de prodcutos en stock ............................. 107
Tabla 28. Caso de uso consultar grfico de ventas anuales .................................... 108
Tabla 29. Caso de uso consultar grfico de ventas mensuales............................... 109
Tabla 30. Caso de uso generar pedido ........................................................................ 110
Tabla 31. Caso de uso importar pedido ....................................................................... 110
Tabla 32. Caso de uso crear usuario ........................................................................... 111
Tabla 33. Caso de uso eliminar usuario....................................................................... 112
Tabla 34. Caso de uso consultar usuarios .................................................................. 112
Tabla 35. Caso de prueba 1........................................................................................... 132
Tabla 36. Caso de prueba 2........................................................................................... 133
Tabla 37. Caso de prueba 3........................................................................................... 134
Tabla 38. Caso de prueba 4........................................................................................... 135
Tabla 39. Caso de prueba 5........................................................................................... 136
Tabla 40. Caso de prueba 6........................................................................................... 137
Tabla 41. Caso de prueba 7........................................................................................... 138
Tabla 42. Caso de prueba 8........................................................................................... 139
Tabla 43. Caso de prueba 9........................................................................................... 140
Tabla 44. Evolutivo implementacin IVA ..................................................................... 144
Tabla 45. Evolutivo gestin de proveedores ............................................................... 145
Tabla 46. Requisito funcional login ............................................................................... 149
Tabla 47. Requisito funcional crear producto.............................................................. 150
Tabla 48. Requisito funcional crear tipo de producto................................................. 150

Tabla 49. Requisito funcional generar pedido............................................................. 151


Tabla 50. Requisito funcional generar pedido............................................................. 151
Tabla 51. Requisito funcional generar grafico productos en stock .......................... 152
Tabla 52. Requisito funcional generar grfico ventas anuales................................. 152
Tabla 53. Requisito funcional generar grfico ventas mensuales ........................... 153
Tabla 54. Requisito funcional ver productos ............................................................... 153
Tabla 55. Requisito funcional editar producto ............................................................. 154
Tabla 56. Requisito funcional borrar producto ............................................................ 154
Tabla 57. Requisito funcional realizar venta ............................................................... 155
Tabla 58. Requisito funcional generar ticket ............................................................... 155
Tabla 59. Requisito funcional eliminar productos caducados .................................. 156
Tabla 60. Requisito funcional mostrar usuarios .......................................................... 156
Tabla 61. Requisito funcional crear usuarios .............................................................. 157
Tabla 62. Requisito funcional eliminar usuarios ......................................................... 157
Tabla 63. Requisito no funcional. Interfaz intuitiva ..................................................... 159
Tabla 64 .Requisito no funcional. Fcil de usar .......................................................... 159
Tabla 65. Requisito no funcional. Fcil acceso ......................................................... 159

NDICE DE ILUSTRACIONES
Ilustracin 1. Logotipo CS - Almacenes ......................................................................... 36
Ilustracin 2. CS - Almacenes ......................................................................................... 37
Ilustracin 3. Logotipo GestMag ...................................................................................... 37
Ilustracin 4. GestMag ...................................................................................................... 38
Ilustracin 5. Logotipo PHC CS TPV .............................................................................. 38
Ilustracin 6. PHC CS TPV .............................................................................................. 39
Ilustracin 7. Ciclo modelo espiral .................................................................................. 45
Ilustracin 8. Ciclo modelo RUP ...................................................................................... 47
Ilustracin 9. Fases modelo RUP .................................................................................... 48
Ilustracin 10. Logotipo Spring ........................................................................................ 51
Ilustracin 11. Arquitectura Dispatcher Servlet ............................................................. 53
Ilustracin 12. Ejemplo RequestMapping ...................................................................... 54
Ilustracin 13. Arquitectura GestMarket ......................................................................... 55
Ilustracin 14. Esquema persistencia ............................................................................. 56
Ilustracin 15. Arquitectura JPA ...................................................................................... 57
Ilustracin 16. Ejemplo entidad GestMarket.................................................................. 58
Ilustracin 17. Logotipo maven ........................................................................................ 60
Ilustracin 18. Ejemplo librera GestMarket................................................................... 61
Ilustracin 19. Ejemplo plugin GestMarket .................................................................... 62
Ilustracin 20. Logotipo JQuery ....................................................................................... 62
Ilustracin 21. Logotipo JSP ............................................................................................ 64
Ilustracin 22. Logotipo JSTL .......................................................................................... 64
Ilustracin 23. Librera jstl................................................................................................. 66
Ilustracin 24. Ejemplo jstl GestMarket .......................................................................... 66
Ilustracin 25. Librera apache tiles ................................................................................ 67
Ilustracin 26. Inyeccin apache tiles ............................................................................. 68
Ilustracin 27. Ejemplo apache tiles GestMarket ................................................................. 68
Ilustracin 28. Logotipo CSS ........................................................................................... 69
Ilustracin 29. Importacin CSS ...................................................................................... 70
Ilustracin 30. Ejemplo CSS GestMarket....................................................................... 70
Ilustracin 31. Logotipo Apache Tomcat ........................................................................ 71
Ilustracin 32. Logotipo Oracle ........................................................................................ 72
Ilustracin 33. Logotipo JFreeCharts .............................................................................. 72
Ilustracin 34. Porcentaje fases RUO ............................................................................ 82
Ilustracin 35. Estimacin por semanas ........................................................................ 83
Ilustracin 36. Diagrama de Gantt .................................................................................. 84
Ilustracin 37. Modelo de empresa ................................................................................. 94
Ilustracin 38. Modelo de dominio .................................................................................. 95
Ilustracin 39. Caso de uso general ............................................................................... 97
Ilustracin 40. Caso de uso hacer login ......................................................................... 98
Ilustracin 41. Caso de uso realizar venta..................................................................... 99
Ilustracin 42. Caso de uso gestionar productos ....................................................... 101
Ilustracin 43. Caso de uso gestionar tipos de productos ........................................ 104
Ilustracin 44. Caso de uso gestionar stock ................................................................ 105
Ilustracin 45. Caso de uso gestionar estadsticas .................................................... 107
Ilustracin 46. Caso de uso gestionar pedidos ........................................................... 109
Ilustracin 47. Caso de uso gestionar usuarios .......................................................... 111
Ilustracin 48. Diagrama de clases ............................................................................... 113

Ilustracin 49. Modelo relacional de datos .................................................................. 114


Ilustracin 50. Tabla TIPO .............................................................................................. 115
Ilustracin 51. Tabla PRODUCTO ................................................................................ 116
Ilustracin 52. Tabla ALMACEN .................................................................................... 116
Ilustracin 53. Tabla VENTAS ....................................................................................... 117
Ilustracin 54. Tabla USUARIOS .................................................................................. 118
Ilustracin 55. Arquitectura del sistema ....................................................................... 119
Ilustracin 56. Diagrama de actividad .......................................................................... 122
Ilustracin 57. Diagrama secuencia hacer login ......................................................... 123
Ilustracin 58. Diagrama secuencia crear producto ................................................... 124
Ilustracin 59. Diagrama secuencia crear tipo ............................................................ 124
Ilustracin 60. Diagrama secuencia generar pedido .................................................. 125
Ilustracin 61. Diagrama secuencia importar pedido ................................................. 125
Ilustracin 62. Diagrama secuencia grfica stock ...................................................... 126
Ilustracin 63. Diagrama secuencia grfica ventas.................................................... 126
Ilustracin 64. Diagrama secuencia ver productos .................................................... 127
Ilustracin 65. Diagrama secuencia borrar producto ................................................. 127
Ilustracin 66. Diagrama secuencia editar producto .................................................. 128
Ilustracin 67. Diagrama secuencia realizar venta..................................................... 128
Ilustracin 68. Diagrama secuencia generar ticket .................................................... 129
Ilustracin 69. Diagrama secuencia crear usuario ..................................................... 129
Ilustracin 70. Diagrama borrar usuarios ..................................................................... 130
Ilustracin 71. Diagrama eliminar caducados ............................................................. 130
Ilustracin 72. Captura acceso ...................................................................................... 160
Ilustracin 73. Captura login .......................................................................................... 161
Ilustracin 74. Captura login administrador ................................................................. 161
Ilustracin 75. Captura login empleado ........................................................................ 161
Ilustracin 76. Captura cerrar sesin ............................................................................ 162
Ilustracin 77. Captura caja ........................................................................................... 162
Ilustracin 78. Captura compra ..................................................................................... 163
Ilustracin 79. Captura filtro tipo .................................................................................... 163
Ilustracin 80. Captura finalizar compra....................................................................... 164
Ilustracin 81. Captura compra finalizada ................................................................... 164
Ilustracin 82. Captura ticket ......................................................................................... 164
Ilustracin 83. Captura gestionar productos ................................................................ 165
Ilustracin 84. Captura crear tipo .................................................................................. 166
Ilustracin 85. Captura crear producto ......................................................................... 166
Ilustracin 86. Captura producto creado ...................................................................... 167
Ilustracin 87. Captura editar producto ........................................................................ 167
Ilustracin 88. Captura producto eliminado ................................................................. 168
Ilustracin 89. Captura gestionar pedidos ................................................................... 168
Ilustracin 90. Captura pedido generado ..................................................................... 169
Ilustracin 91. Ejemplo pedido....................................................................................... 169
Ilustracin 92. Captura pedido importado .................................................................... 170
Ilustracin 93. Captura almacn .................................................................................... 171
Ilustracin 94. Captura productos caducados ............................................................. 171
Ilustracin 95. Captura filtrar almacn .......................................................................... 172
Ilustracin 96. Captura grfico stock ............................................................................ 172
Ilustracin 97. Captura grfico ventas anuales ........................................................... 173
Ilustracin 98. Captura grfico ventas por tipo ........................................................... 174

Ilustracin 99. Captura grfico ventas por producto .................................................. 175


Ilustracin 100. Captura grfica ventas mensuales ................................................... 176
Ilustracin 101. Captura gestionar usuarios ................................................................ 176
Ilustracin 102. Captura crear usuario ......................................................................... 177

RESUMEN
Este trabajo fin de grado va a ser dedicado a la creacin de una aplicacin
para la gestin de una tienda, con ella se podr conseguir un control del producto
y un conocimiento sobre las ventas realizadas para contribuir al crecimiento del
negocio.

Actualmente la empresa no tiene nada informatizado, ya que hasta ahora


por el tamao del negocio con una contabilidad en papel les era suficiente. Dado
al crecimiento de este se crea la necesidad de mejorar el control del producto y
agilizarlo todo lo posible.

Lo que se pretende es crear una aplicacin sencilla para una empresa en


crecimiento con una arquitectura de fcil ampliacin para cubrir sus necesidades
en la actualidad sin perder la visin de futuro.

La empresa nos solicita a travs de entrevistas un software para


implementar en su tienda, con la cual gestionar sus productos (gestin de pedidos,
gestin de almacn, etc.) aadiendo a su vez un sistema de estadsticas para
poder predecir el stock de cada temporada y as prevenir la caducidad del
producto en el almacn adems de abastecer la demanda.

La aplicacin desarrollada es validada por el cliente e implementada en la


empresa.

ABSTRACT
The aim of this project is to develop a shop management application, which
will contribute to improve the business organisation, control and efficiency, as well
as the profits by means of online sales.

So far, the firm, due to its small size, was using very primitive management
tools, and even the accounting was being done manually.

Due to its recent growth, the firm needed a solution to improve the product
control and to manage, more efficiently, all the challenges that a larger business
could face.

For all the previously commented reasons, the purpose of this project is to
create a simple management application with a very scalable architecture to adapt,
efficiently, to the future needs that a business in expansion could have.

In particular, the customer requested a software application for the store and
sales orders management, in addition to a statistic system to predict the stock
needs.

The application has been developed and validated in the customer offices.

1 INTRODUCCIN
1.1

Motivacin
Las nuevas tecnologas de la informacin estn implantadas en la

sociedad de forma plena y cada vez se depende ms de ellas. En el siglo XX,


despus de un gran avance en la electrnica, da lugar la revolucin de las
comunicaciones y la del tratamiento de la informacin, donde cada vez se
valora ms la gestin de esta.

La adecuada gestin de la informacin tiene ms valor en entornos


competitivos, como es el caso del mundo empresarial. El tratamiento de la
informacin ayuda a mejorar muchos puntos que cada vez tienen ms en
cuenta los empresarios:

Mejora los procedimientos internos de trabajo.


Incremento y mejora de las relaciones con clientes y proveedores.
Facilidad para expandirse.
Mayor control.
La empresa sin papel.
Incremento del rendimiento.
Etc.
Por todo esto, cuando una pequea o mediana empresa comienza a crecer
suele estar dispuesta a realizar una inversin razonable en tecnologa para
adaptarse al mercado actual, de esta manera poder ser ms competitiva y afrontar
mejor el crecimiento.

La motivacin de este proyecto nace en la creacin de un software que


supla las necesidades de cualquier empresario, ofrecindole la solucin perfecta a
la gestin de su pequea o mediana empresa.

Se quiere crear una aplicacin que pueda ser fcilmente configurable para
cualquier tipo de producto adems de ser personalizable con solo una pequea
31

inversin de dinero, de esta manera tener una gran salida en el mercado actual. El
empresario necesita tener toda la informacin centralizada y tratndose de una
aplicacin web se podr conectar desde cualquier dispositivo, ya que hoy en da
todo el mundo dispone de internet en su bolsillo.

1.2

Definicin
En este proyecto se ha creado una aplicacin web llamada GestMarket

destinada a la gestin del producto de una pequea/mediana empresa.

La aplicacin ha sido desarrollada en Java buscando una programacin


orientada a objetos sobre el framework de Spring para favorecer a su expansin
en un futuro y a la reutilizacin del cdigo implementado en futuras aplicaciones
que se puedan desarrollar.

Se trata de una aplicacin web que podr ser instalada en un servidor para
poder acceder desde cualquier mquina con un simple navegador, de esta manera
estar todo centralizado y se podrn tener tantos puntos de acceso como se
necesiten.

Desde GestMarket se podr gestionar cualquier tipo de producto que


ofrezca el negocio, ofreciendo acciones como:

Gestin de productos.
Gestin de stock.
Gestin de venta.
Gestin de pedidos.
Gestin de usuarios.
Adems se ofrece un sistema de estadsticas donde se pueden consultar
una serie de grficas basadas en las ventas realizadas. Este apartado se basa en
dos tipos de grficas, donde se puede ver los datos de diferentes aos y sacar
32

conclusiones para gestionar de una manera ms eficiente la carga de productos


en almacn.

Todo est implementado con un sistema de seguridad, basado en que el


usuario pueda hacer login para poder detectar los diferentes permisos de este y
disponer del acceso a solo ciertas partes de la aplicacin.

1.3

Objetivos propuestos
Antes de comenzar se marcan dos objetivos principales que abarcan varios

objetivos secundarios, todos estos debern de haber sido cumplidos una vez
finalizado el proyecto por completo. Los cuales son:
Estudio e implementacin de diferentes tecnologas usadas en la
actualidad:
Aplicar una programacin orientada a objetos para favorecer su
crecimiento.
Desarrollar un software con una arquitectura de fcil ampliacin.
Implementar un sistema de acceso a base de datos sin perder las
ventajas de la programacin orientada a objetos.

Creacin de una aplicacin web que pueda ser implementada en una


empresa y ser usada a diario:
Coger experiencia sobre posible riesgos que puedan surgir en
futuros proyectos.
Crear un sistema de seguridad basado en usuarios y roles.
Implementar un gestor de estadsticas configurable.

33

34

2 ESTUDIO DEL MERCADO


Toda aplicacin nace de una necesidad, en este punto se va a
estudiar las necesidades del mercado para ver si la aplicacin tendra un hueco
dentro de l antes de su desarrollo.

2.1

Conceptos relevantes del dominio de aplicacin


Este proyecto nace de la necesidad de una pequea empresa en su

crecimiento, dichas necesidades no surgen hasta que la empresa genera una


cantidad razonable de ventas, a partir de ese momento se crean unos
requisitos necesarios para la evolucin de la misma:

Una aplicacin web que se pueda gestionar desde varios dispositivos


con propsitos de crecimiento en el futuro, tanto de abrir ms comercios
como de implantar consultas en dispositivos mviles.

Una forma fcil e intuitiva de vender productos, para agilizar los pedidos
de los usuarios.

Una gestin de usuarios para la contratacin de personal, los cuales


solo tendrn acceso al apartado de ventas.

Una gestin de stock debido al incremento de tamao del almacn, de


esta manera se podrn tener todos los productos referenciados y
controlados.

La facilidad de generar pedidos de una forma automtica basndose en


el espacio disponible del almacn o en la demanda segn la poca del
ao.
La importacin automtica de productos en la aplicacin para poder
gestionarlos en el momento de su entrada.
35

Visualizacin de estadsticas sobre las ventas realizadas por meses


para poder predecir las unidades necesarias en almacn de cada
producto y afrontar su demanda adems de evitar su caducidad.

2.2

Relacin con proyectos con la misma funcionalidad


La informatizacin del pequeo y mediano comercio est ya muy

considerada por los desarrolladores con programas genricos que le permiten


al cliente cubrir gran parte de las necesidades. A continuacin se describen
algunos.

2.2.1 CS-Almacenes

Se trata de una aplicacin para la gestin de stock que permite controlar


los almacenes de manera muy sencilla para el usuario.

Ilustracin 1. Logotipo CS - Almacenes

La aplicacin se basa en el registro de las entradas y las salidas en


almacn permitiendo conocer a tiempo real la cantidad disponible. Con CSAlmacenes se puede controlar los productos de uno o varios almacenes, ya
que no tiene lmite de almacenes registrados. Realizacin de ajustes manuales
si se producen inventarios fsicos y conteos, as como realizar traspasos entre
almacenes.

Se trata de una aplicacin sencilla para usuarios que no necesiten tratar


trazabilidades ni parmetros complejos, simplemente tener un control en todo
momento sobre los productos que dispone en sus almacenes de forma intuitiva
y fcil.
36

Ilustracin 2. CS - Almacenes

2.2.2 GestMag

GestMag SGA es un software de gestin de almacenes de ltima


generacin. Usa las tcnicas ms actuales en desarrollo de aplicaciones y
contiene muchas de las funciones tpicas de este tipo de software para gestin de
stock.

Ilustracin 3. Logotipo GestMag

Algunas de las caractersticas que se puede encontrar en GestMag se


numeran a continuacin:
Definicin de almacenes, estanteras, muelles de carga, zonas de
entrada-expedicin, zonas difanas, ...
Gestin de movimientos de Entrada y Salida.
Conocimiento en tiempo real del estado del stock.
Histrico de movimientos y existencias.
37

Herramientas de anlisis y grficos.


Diseador de informes incorporado.

Ilustracin 4. GestMag

2.2.3 PHC CS TPV

PHC CS TPV es un software destinado a tiendas, franquicias, cadenas, etc.


Permitiendo realizar la gestin de venta sobre los productos ofrecidos, sean estos
del tipo que sea, mejorando la experiencia de compra de los clientes.

Ilustracin 5. Logotipo PHC CS TPV

Se trata de un monitor tctil enfocado a la facturacin, dando la opcin de


realizar el pago en diferentes modalidades y generando un ticket que podr ser

38

imprimido fcilmente. Entre las opciones de la pantalla principal se pueden


encontrar tareas como:
Personalizar la pantalla y los artculos.
Imprimir diferentes tipos de documentos.
Seleccionar diferentes tipos de pago.
Crear descuentos.
Reimprimir tickets.
Dispone de un apartado de configuracin desde el cual se podr
personalizar la aplicacin y realizar tareas como:
Consultar historiales de la caja.
Control del stock y movimientos.
Configurar tablas de precios y descuentos.
Crear fichas de clientes.
Consultar estadsticas sobre los clientes.

Ilustracin 6. PHC CS TPV

39

2.3

Estudio del mercado


En este apartado se va a estudiar los requisitos funcionales que

demanda actualmente el cliente en su negocio para poder disearle una


aplicacin a medida. Cuanto mejor sea el estudio realizado ms eficaz ser el
trabajo.

2.3.1 Alcance del proyecto


La finalidad de este proyecto es un software enfocado a las pequeas y
medianas empresas, las cuales tendrn la oportunidad de controlar el producto
de su negocio de una forma sencilla, de esta manera, favorecer a su
crecimiento y estar preparado para ello.

Se trata de una aplicacin web, ofreciendo la instalacin del software en


un sitio comn de la empresa para el fcil acceso desde cualquier parte, de
esta forma no habr lmites geogrficos, ya que solo se tiene que acceder a la
aplicacin va internet y disponer de toda la funcionalidad.

El proyecto est enfocado a la gestin del producto, no a un producto


especfico, por lo que es fcilmente adaptable a cualquier negocio, pudiendo
definir cada uno de los productos que se vendan de forma dinmica. Del cliente
nos interesa el modelo de negocio, no el producto que ofrece.

2.3.2 Estudio de la situacin actual


Viendo el comercio antes de la implantacin de GestMarket se puede
encontrar una tienda donde la gestin de las ventas y del producto se
desarrolla de forma manual, siendo esta forma muy lenta y poco fiable. Se
numeran algunas de las acciones que se podran mejorar con la aplicacin:

No se tiene un control exhaustivo de la cantidad del producto disponible.

40

El producto no est identificado de ninguna forma, sufriendo un


desconocimiento sobre su origen.
El sistema de ventas se hace de forma manual tomando anotaciones en
papel. Lo que implica tambin la escasa eficiencia para atender a los
compradores y la falta de profesionalidad que se trasmite.
Los pedidos se hacen de forma manual, teniendo que hacer inventario
cada vez que se realicen.
Los pedidos se realizan siempre sin un conocimiento real de necesidad.

2.3.3 Estudio y valoracin de las alternativas de solucin

Tras comparar las necesidades del cliente con algunos de los software que
hay en el mercado y viendo que ninguno de ellos las cubre en su totalidad, se cree
que la mejor solucin ser el desarrollo de un software a medida.

Anteriormente se describen algunas de las aplicaciones de gestin de stock


que se encuentran en el mercado, a continuacin se comparan con la aplicacin
que se va a desarrollar:

Aplicacin

Gestin

Gestin

de

de

de

stock

productos

pedidos

SI

SI

NO

NO

NO

SI

GestMag

SI

SI

SI

SI

NO

NO

PHC CS

SI

SI

SI

NO

SI

NO

GestMarket

SI

SI

SI

SI

SI

SI

CS-

Grficas Gestin

WEB

Fcil e
intuitiva

Almacenes

Tabla 1. Comparativa aplicaciones

41

2.3.4 Seleccin de la solucin

Como se puede ver en la tabla anterior, ninguno del otro software se adapta
completamente a las necesidades del cliente, ya que por un lado se tiene una
aplicacin demasiado bsica y por otro dos aplicaciones complejas y poco
prcticas e intuitivas.

GestMarket es la aplicacin que se ajustar exactamente al cliente, ya que


ser creado segn sus necesidades. Necesidades que sern estudiadas
minuciosamente por un analista para cubrir cada una de ellas a la perfeccin.

Adems de cubrir las necesidades actuales es la mejor opcin con vista a


futuro, ya que se tratar de un software implementado con una arquitectura de
fcil ampliacin, por lo que podr seguir adaptndose con una pequea inversin
de dinero sin tener que cambiar de aplicacin.

42

3 METODOLOGAS USADAS
En este punto se va a estudiar alguna de las metodologas usadas en la
actualidad para escoger y aplicar la que ms se adapte a las necesidades.

3.1

Introduccin
El desarrollo de una aplicacin informtica es de alta complejidad, es difcil

que una aplicacin por simple que sea se desarrolle sin ningn tipo de fallo. Hay
una serie de factores que dificultan realizar una verificacin minuciosa de toda la
casustica que se pueda dar en la ejecucin.

Un desarrollo de software por norma general es bastante abstracto, esto


implica que a la hora de definir el producto y todos los requisitos haya puntos que
no se tienen en cuenta. Hay que aadirle que no se tiene una experiencia anterior
y no se puede hacer una prevencin de riesgos real. Se parte de que es la primera
aplicacin que se desarrolla y los cambios en los requisitos durante el proceso
sern inevitables por muy precisa que sea la metodologa implementada, pero
dependiendo de esta se pueden reducir.

Segn las estadsticas, cuando un proyecto de software no funciona (28%


estadsticamente) no suele ser por problemas tcnicos, suele ser por la falta de
una metodologa bien implementada. Cada vez ms se perfeccionan las
metodologas implementadas en los proyectos software y se incentivan a los
profesionales a usarlas para tener un mayor porcentaje de xito.

3.2

Modelo espiral
La metodologa en espiral en el desarrollo del software es un modelo meta

del ciclo de vida donde el esfuerzo es iterativo, nada ms culminar un desarrollo


comienza el siguiente. En cada ciclo se establecen cuatro etapas claramente
diferenciadas:
43

Determinar objetivos: En esta etapa se definen los objetivos especficos


para posteriormente identificar las limitaciones conocidas, adems se
disea una planificacin detallada de gestin y se localizan riesgos.

Anlisis del riesgo: Se trata de la segunda etapa, se efecta un anlisis


detallado para cada uno de los riesgos identificados del proyecto,
definiendo el proceso a seguir para reducirlos lo mximo posible planteando
tambin opciones alternativas.

Desarrollar y probar: En el tercer paso, tras analizar los riesgos, se elige


un paradigma para el desarrollo del sistema software y se le desarrolla.

Planificar: En la ltima etapa del modelo se revisa y se toma la decisin de


continuar con el ciclo siguiente de la espiral, en caso de que se contine, se
desarrollan los planes para la siguiente fase del proyecto.

En cada iteracin se crea una versin de la aplicacin, cada vez ms


completa hasta que quede totalmente funcional.

Como se ha comentado anteriormente la gran diferencia entre el modelo en


espiral y el resto de modelos como por ejemplo el modelo en cascada o el
incremental es la evaluacin de los riesgos. El riesgo embarca todo aquello que
pueda salir mal durante el desarrollo del software, por culpa de estos puede haber
una gran demora de tiempo incluso que el proyecto fracase, de ah la gran
importancia de tener estos lo mejor controlados posible.

Un modelo espiral comienza determinando los objetivos tanto funcionales


como de rendimiento, despus, se clasifican varias opciones posibles para
alcanzar los objetivos identificando los riesgos que se pueden encontrar en su
realizacin, una vez teniendo esto en cuenta se desarrollan las actividades
resolviendo estos riesgos. Una vez terminada la iteracin se puede volver a repetir
el proceso con nuevos alcances.
44

Ilustracin 7. Ciclo modelo espiral [15]

3.2.1 Caractersticas del modelo

Este modelo est considerado como un modelo evolutivo, ya que combina


el modelo clsico con el diseo de prototipos.
Contiene una nueva etapa no contemplada anteriormente que es el
anlisis de riesgos.
Pensado para implementar nuevas funcionalidades en la aplicacin
de forma sencilla.
La ingeniera puede desarrollarse a travs del ciclo de vida clsico o
el de construccin de prototipos.

El modelo en espiral est dividido en varias actividades estructurales,


llamadas regiones de tareas. Hay seis regiones de tareas que son:
Comunicacin con el cliente: esta tarea es necesaria para
establecer comunicacin entre el programador y el cliente.

Planificacin: esta actividad hay que aplicarla para poder definir los
recursos, el tiempo estimado y otras informaciones relacionadas con
el proyecto.

45

Anlisis de riesgos: la tarea principal del modelo en espiral, que es


la evaluacin de los riesgos tcnicos y otras informaciones
relacionadas con el proyecto.
Ingeniera: tarea necesaria ya que se necesita construir una o ms
representaciones de la aplicacin.
Construccin y adaptacin: esta tarea es requerida en el modelo
espiral porque se necesita probar, construir, instalar y proporcionar
soporte.
Evaluacin del cliente: Tarea tambin principal, necesaria para
saber la reaccin del cliente segn la evaluacin de las
representaciones de la aplicacin durante la etapa de ingeniera y la
de implementacin creada durante la etapa de instalacin.

3.3

Modelo RUP
El modelo RUP es otro modelo de desarrollo de software (Proceso

Unificado Racional), en la cual su meta principal es proporcionar un software de


calidad para poder cumplir con todas las necesidades del cliente. Las principales
caractersticas de este modelo son las siguientes:

Dirigido por casos de uso, en los cuales se describirn todas las


acciones que debe realizar la aplicacin. Esta es una forma de enumerar
y tener claras las necesidades del cliente.

Centrado en la arquitectura, para facilitar la construccin, administracin


y evolucin del proyecto.

Evolutivo, facilita la entrega de versiones.

Orientado a objetos.

Permite mediciones, estimaciones, avance, etc.


46

Ilustracin 8. Ciclo modelo RUP

El ciclo de vida de esta metodologa se divide en cuatro fases secuenciales.


Una vez que se termina cada fase hay que hacer una evaluacin si esta ha sido
completada. Las fases son las siguientes:

Inicio: la misin de esta fase es tener claros los objetivos del proyecto,
desarrollando los casos de uso e identificando los riesgos.

Elaboracin: Se elabora un plan de proyecto estudiando los casos de


uso, acotando los riesgos lo mximo posible. Se disea la arquitectura
planificando las actividades y evaluando el riesgo.

Construccin: En esta fase se desarrolla el software en su totalidad


hasta que quede funcional y pueda probarlo el cliente, de esta manera
se podr a prueba el producto para solventar los errores que puedan
surgir antes de la entrega final.

Transicin: Implantacin del software terminado en el cliente y


formacin de los usuarios. Esta fase incluye el soporte de la aplicacin
para errores que puedan surgir.

47

Ilustracin 9. Fases modelo RUP

48

3.4

Ventajas e inconvenientes de ambos modelos

Modelo

Espiral

RUP

Ventajas

Reduce riesgos a lo largo


del proyecto.

Est enfocado a la calidad


del producto final.

Integra desarrollo con


mantenimiento.

Mtodo pesado.

Hay que tenerlo todo


controlado desde el
principio.

En proyectos de poco
tamao, es posible que no
salga rentable por la
dedicacin del equipo.

Se trata de un modelo
evolutivo.

Se crean fcilmente puntos


de control para hacer
entregas por versiones de
la aplicacin.

Sufrir retrasos corre un


riesgo menor, porque se
comprueban los conflictos
presentados de forma
temprana para poder
corregirlos.
Se requiere una
participacin extra por
parte del cliente.

Desventajas -

3.5

No se necesita la definicin
total de los requisitos de la
aplicacin a desarrollar
para comenzar su
funcionalidad.

Genera mucho tiempo en


el desarrollo del sistema.

Se requiere de experiencia
para detectar los riesgos.

Modelo elegido
Tras analizar los dos modelos se decanta finalmente por el modelo RUP por

dos grandes razones, se tienen los requisitos bien marcados desde el principio y
no se tiene experiencia. De tal forma el modelo RUP ser el encargado de
estructurar el proyecto.
49

50

4 TECNOLOGAS Y HERRAMIENTAS UTILIZADAS EN EL PROYECTO


Durante este punto se van a describir las tecnologas que se han usado
para el desarrollo de la aplicacin. Como se pude observar e intentando cumplir
con el objetivo se han implementado un gran nmero de ellas.

4.1

Spring
Viendo la necesidad de usar un framework para crear una aplicacin se

estudi cual era la mejor opcin para ello, ya que se buscaba una herramienta de
trabajo que hiciera el trabajo bastante sencillo.

Ilustracin 10. Logotipo Spring

Spring [2] es una de las herramientas ms usadas para crear grandes


aplicaciones web desarrolladas en Java [1]. El framework se compone de varios
mdulos, todos ellos asociados a Spring Core y ms concretamente al Spring
Container. Se puede personalizar el contenedor de Spring mediante configuracin
xml (web-application-config.xml).

Spring Container es el punto central de Spring, el encargado de crear


objetos llamados bean, configurarlos y conectarlos entre s, adems controla los
ciclos de vida de cada objeto mediante el patrn de Inyeccin de Dependencias.

El patrn de inyeccin de dependencias tiene como finalidad conseguir que


el cdigo est ms desacoplado, de esta manera se puede cambiar partes del
sistema de forma ms fcil. Los componentes declaran sus dependencias, pero no
se encargan de conseguirlas, ah es donde entra el Contenedor de Spring, que en
las aplicaciones de Spring ser el encargado de conseguir e inyectar las
dependencias a los objetos.
51

4.1.1 Motivos por los que elegir Spring


Fcil configuracin: dispone de archivos xml donde se puede configurar la
aplicacin.

Integracin con otros framework: cuando se trabaja en una plataforma se


busca la opcin de aadir otros frameworks que ayuden a generar otro tipo
de objetos o gestionar otro tipo de acciones que la herramienta principal no
implementa. Spring lo pone muy fcil ya que al ser tan usado han hecho
adaptadores para que en pocos pasos se pueda aadir otro framework sin
problemas.

Cdigo estructurado: una buena estructura del cdigo es muy importante


en una aplicacin de un tamao considerable y se agradece en cualquier
aplicacin sea del tamao que sea para su lectura y comprensin. En
Spring se tiene un modelo MVC (modelo-vista-controlador) el cual nos da la
opcin de cumplimentar dicha necesidad.

Uso de anotaciones: ofrece una serie de anotaciones para realizar o


indicar una serie de acciones habituales que permite simplificar de forma
considerable el cdigo.

Fcil creacin de objetos: gracias a la inyeccin de dependencias Spring


se encarga de la creacin y la configuracin de los objetos.

El punto ms relevante de la eleccin por Spring ha sido la fcil integracin


con otros framework, ya que uno de los objetivos principales era el uso de
diferentes tecnologas unidas en un mismo proyecto.

52

4.1.2. Arquitectura MVC


Spring ofrece una arquitectura de tipo modelo-vista-controlador (MVC), este
es el patrn de diseo arquitectural ms recomendado que hay para aplicaciones
programadas en Java. MVC divide los conceptos de diseo por lo que se obtienen
las siguientes ventajas:

Decremento de duplicidad de cdigo.

Centraliza la parte de control.

Hace una aplicacin ms extensible.

Se tiene una arquitectura multicapa, separando la interfaz del usuario de la


lgica de negocio y funcionando perfectamente entre ellas. Para completar este
proyecto se ha aadido una capa de persistencia, que se encargar del acceso a
datos.

Spring MVC funciona en torno a un DispatcherServlet que enva


solicitudes a los controladores.

Ilustracin 11. Arquitectura Dispatcher Servlet

53

El trabajo del DispatcherServlet es coger una URL entrante y encontrar la


combinacin correcta de los controladores y las vistas (JSP), para que esto sea
posible en el controlador se asignan una serie de anotaciones (RequestMapping)
configurables a cada mtodo, para saber qu tipo de peticin espera cada uno de
ellos.

Ilustracin 12. Ejemplo RequestMapping

En el ejemplo anterior se configura el mtodo nuevoProducto, gracias a la


anotacin RequestMapping se puede configurar que este mtodo espera una
solicitud de tipo POST con el valor guardar que ser realizada desde la vista
nuevoProducto.html.

Adems de usar este modelo se ha optado por una arquitectura por capas,
separando en diferentes proyectos el cdigo por funcionalidad, referenciando los
proyectos entre ellos para que acten como un nico proyecto, de esta manera se
tiene una implementacin clara y expansible.

Las capas son las siguientes:

WEB: esta capa se correspondera a la capa de presentacin. Contiene


toda configuracin de Spring y los principales componentes del modelo
MVC que seran los JSP y los controladores. Incluye tambin toda la
tecnologa necesaria en el apartado visual: JavaScript, tiles, imgenes,
CSS

NEGOCIO: contiene la lgica de negocio, independiente de cmo se


visualizan los datos o donde se obtienen. En esta capa se ejecutan las

54

operaciones lgicas necesarias con los datos para que en los controladores
solo se trabaje con el control de ellos.

DOMINIO: en esta capa se puede encontrar todas las entidades utilizadas,


cada entidad se corresponde con una tabla y se usar como objetos en el
sistema de persistencia para ejecutar acciones sobre la base de datos.

PERSISTENCIA: capa de integracin, accede a base de datos y sistemas


externos. Proporciona los datos para que sean manejados con la lgica de
negocio.

PARENT: la funcin de esta capa es unir el resto de ellas, de esta manera


queda un proyecto unificado. En esta capa se puede implementar las
libreras que se van a usar en el resto de capas para no tener que
descargarlas en cada una de ellas.

Ilustracin 13. Arquitectura GestMarket

Las ventajas de la utilizacin de una arquitectura multicapa se agrupan en varios


sentidos:

Mantenibilidad:
o La separacin de capas permite desacoplar tecnologas especficas
en cada capa.
o Se pueden manejar los errores en forma diferenciada, lo que facilita
el diagnstico y soluciones de incidencias.
55

Desarrollo:
o Cada capa conoce sus caractersticas, lo que permite separar
adecuadamente el desarrollo de cada una.
o Se fomenta la reutilizacin, ya que los componentes de una capa
pueden ser utilizados por varios componentes de otra capa.
o Se promueve la modularidad.

4.2

JPA
Se entiende por persistencia a leer y escribir datos desde una aplicacin

hacia un medio de almacenamiento. JPA [3] es la tecnologa usada en la capa de


persistencia para el acceso a base de datos ya que permite realizar una
implementacin de acceso a la base de datos dinmica, sin perder la orientacin a
objetos y compatible con la arquitectura que ofrece Spring MVC. Una vez que se
tiene implementado JPA como sistema de persistencia se puede desarrollar
cualquier tipo de accin sobre la base de datos de una forma fcil y rpida.

Ilustracin 14. Esquema persistencia

Consiste en una abstraccin sobre JDBC para poder realizar una


correlacin entre el sistema orientado a objetos de java con todas las tablas de la
base de datos para poder trabajar cmodamente con ellas en forma de objetos.
Los objetos creados sobre cada una de las tablas se llaman entidades.

56

Una Entity es una implementacin del mapeo entre un objeto Java y su


tabla de base de datos asociada. El mapeo puede realizarse por anotaciones y
tambin por XML (poco usado).

Ilustracin 15. Arquitectura JPA

57

Ilustracin 16. Ejemplo entidad GestMarket

Aqu se tiene un ejemplo sencillo de una de las entidades de la aplicacin,


la cual relaciona cada uno de los campos de la tabla USUARIO. Se identifica que

58

es una entidad con la anotacin @Entity para informar al proveedor de


persistencia. Cada entidad debe de contener:

Un constructor por defecto.


Implementar la interface java.io.Serializable para acceder remotamente.
No ser una clase interna.
No ser una clase final.
El mapeo de la entidad se realiza mediante anotaciones, la configuracin
mediante anotaciones permite tener en un mismo lugar el cdigo java y las
instrucciones de comportamiento. En una entidad se pueden diferenciar las
siguientes anotaciones:

@Table: indica el nombre de la tabla a la que pertenece la entidad.


@Id: esta anotacin va asociada nicamente al campo identificador de la
tabla (Primary Key).

@SequenceGenerator: se le indica al campo que tiene una secuencia


asociada, creada en base de datos, en ella se indica el nombre de dicha
secuencia.

@GeneratedValue:

esto

sirve

para

campos

numricos

que

son

autoincrementales, de tal forma no hay que insertarlos manualmente, sino


que se inserta ltimo nmero de la secuencia guardada.

@Column: anotacin usada para indicar el nombre y las propiedades de


cada una de las columnas asociadas en la tabla.

@OneToMany - @ManyToOne: cuando se tiene una Foreign Key


apuntando a otra tabla se pueden traer los datos asociados de la otra tabla
a ese campo, para ello hay dos tipos de relaciones segn la cardinalidad
(1:N, N:1).

59

4.3

Maven
Maven es una herramienta usada en proyectos Java para su construccin y

gestin. En cualquier proyecto es comnmente usado un gran nmero de libreras,


cada librera tiene una versin, adems de que una librera puede referenciar a su
vez a otras libreras las cuales se desconocen. Maven es la herramienta que nos
facilitar toda esa gestin, ya que contiene un archivo de configuracin donde se
pueden referenciar las libreras que se van a usar de forma sencilla adems de
otras configuraciones, y automticamente se descargar todo lo necesario para
disponer de esa librera en la aplicacin. Contiene un fichero de configuracin
llamado pom.xml donde se pueden referenciar las dependencias usadas en la
aplicacin, referenciar otros proyectos, describir el proyecto a construir, etc.

Ilustracin 17. Logotipo maven

Maven [4] accede a un repositorio en red para descargarse libreras o


plugins, creando un repositorio local que se tiene disponible siempre que sea
necesario sin necesidad de conexin.

A travs de maven se puede ejecutar las siguientes acciones desde su


herramienta de compilacin:

package: Genera el fichero compilado .jar de la aplicacin.


install: Copia el fichero .jar a un directorio del ordenador donde maven
deja todos los .jar para que puedan utilizarse en otros proyectos en el
mismo ordenador.
clean: Limpia todos los .class y .jar generados para volver a compilar
desde cero.

60

El motivo principal para implementar maven como herramienta de


configuracin es la carencia de esta misma, ya que la configuracin es mnima, en
pocos pasos se puede tener un repositorio con todas las libreras que se necesiten
para hacer funcionar la aplicacin.

Como se explicada anteriormente en GestMarket se dispone de un proyecto


para cada capa creada, en cada proyecto se dispone de un archivo pom.xml
para configurar sus propias configuraciones y dependencias, pero uno de los
proyectos (PARENT_GEST) es el encargado de referenciarlos a todos en su
pom, de esta manera todos podrn trabajar de manera conjunta y utilizar las
libreras descargadas desde este proyecto.

Ilustracin 18. Ejemplo librera GestMarket

Aqu se tiene un ejemplo de dependencia insertada en el pom.xml, la cual


descarga las libreras necesarias para implementar Jfreechart, que es el
encargado de generar los grficos usados en las estadsticas de la aplicacin.
Esta librera podr usarla todo el proyecto ya que est insertada en el proyecto
PARENT_GEST.

61

Ilustracin 19. Ejemplo plugin GestMarket

En el ejemplo anterior se puede ver otra cualidad de maven, en la cual se


configura un plugin que nos genera un WAR con toda la aplicacin compilada para
poder desplegar en cualquier servidor.

4.4

Jquery y Ajax
Cuando se necesita cargar cualquier dato desde una vista de la aplicacin

web y mostrarlo por pantalla es necesario volver cargar el jsp, para ello debe de
hacerse a travs de algn botn que acceda a un mtodo del controlador y desde
este tratar los datos enviados, procesarlos y volverlos a mandar al jsp.

Ilustracin 20. Logotipo JQuery

62

En este caso especfico se tiene una opcin de filtrado en diferentes


ventanas de la aplicacin, en la cual se puede filtrar por producto. Para no tener
un nico combo con todos los productos ya que nos resultara poco prctico por su
dimensin y difcil lectura, se aade un combo paralelo con los tipos de productos,
para poder dividir los productos en pequeos grupos. Al seleccionar un tipo de
producto se requiere que en el campo filtrar por producto solo aparezcan los
productos de ese tipo, ya que no tiene sentido que se filtre por un producto con un
tipo diferente al suyo, as que una vez seleccionado el tipo se cargarn
nicamente los productos de ese tipo para poder encontrar el producto de manera
mucho ms sencilla. Al tener la necesidad de cargar datos a partir de otros de
forma dinmica recurro a la tecnologa JQuery [5].

JQuery no es ni ms ni menos que una biblioteca de JavaScript basada en


cdigo libre que a travs de AJAX [6] permite interactuar con el controlador. AJAX
es una tcnica para crear aplicaciones interactivas con desarrollo web. Esta
tecnologa se ejecuta en el navegador, por lo que es ejecutado desde el cliente
manteniendo una comunicacin asncrona con el servidor por debajo sin la
necesidad de tener que volver a cagar la vista ni el comportamiento de la
aplicacin.

4.5

JSP
Java Server Pages (JSP) es una tecnologa basada en Java que simplifica

el desarrollo de pginas web con contenido dinmico. Con JSP [7] se puede
incorporar elementos dinmicos dentro de la pgina utilizando tanto porciones de
cdigo Java incrustadas, como unas cuantas etiquetas. As, las pginas JSP
tienen el aspecto de una pgina tradicional HTML, a la que se le ha introducido
parte de cdigo Java. De esta forma, cuando una pgina es solicitada por un
usuario y procesada por un servidor HTTP, el cdigo HTML se le mostrar
directamente al usuario, mientras que las porciones de cdigo Java sern
ejecutadas en el servidor cuando la solicitud haya sido recibida, para generar el
contenido dinmico de la pgina. Cuando el usuario acceda al cdigo de la pgina
que le llega slo ver HTML, sin poder acceder al cdigo JSP subyacente.
63

Ilustracin 21. Logotipo JSP

Inicialmente la generacin del contenido dinmico se haca de forma


externa a los servidores, si llegaba una solicitud se procesaba y si era necesario
se generaba el contenido dinmico y se volva a enviar al servidor. Finalmente se
opt por tecnologas que insertaran porciones de cdigo directamente dentro de
las pginas de forma que el estilo de la sintaxis fuera ms consistente y sencillo.

Esta tecnologa es la elegida para la vista final del usuario, de esta manera
se puede crear pginas web compuestas de HTML y CSS e incluirle cdigo JAVA
para su programacin, ya que esto es una aplicacin web y no una simple pgina.

4.6

JSTL
JSTL [8] es una serie de libreras que forma parte de J2EE compuesta por

un conjunto de etiquetas y estndares que cubren la mayor parte de funciones


usadas de normalmente dentro de un JSP.

Ilustracin 22. Logotipo JSTL

Las libreras que contiene JSTL son las siguientes:

Core: iteraciones, condicionales, etc.


64

Xml: librera para el uso de XML.


Sql: gestiona el acceso a base de datos.
Fmt: para la internacionalizacin y dar formato a los caracteres como
cifras.

En el uso de JSP surgen algunos problemas, ya que es una tecnologa que


sufre algunas debilidades:

Insertar cdigo java dentro de script queda poco legible y


desordenado.
Si no se tienen conocimientos de Java resulta muy difcil cambiar la
lgica de presentacin.
El cdigo en script no puede ser usado por otros JSP, teniendo que
implementar todo el cdigo en cada una de las pginas.

Todos estos inconvenientes pueden ser solventados por la librera JSTL, ya


que esta nos incluye una serie de fortalezas:

JSTL usa etiquetas XML, por lo que se pueden estructurar de forma


limpia y uniforme, adems de integrarlas con HTML.
Incluye etiquetas para cubrir casi toda la funcionalidad que se puede
aplicar dentro de un JSP.
Las etiquetas JSTL referencian objetos que se encuentra en los
ambientes Request sin necesidad de hacer casteo.

Se puede encontrar alguna desventaja de usar las libreras den JSTL, como
pueden ser:

Usar JSTL puede sobrecargar el servidor, las etiquetas de estas


bibliotecas contienen generan mayor cdigo una vez compilado.
Los script son ms eficientes, por lo que si se busca

una

programacin ms limpia e intuitiva no sera recomendable usarla.

65

Para poder insertar la librera JSTL en la aplicacin se ha aadido la


dependencia correspondiente dentro del pom.xml del proyecto WEB_GEST, que
es donde se encuentran todos los JSP.

Ilustracin 23. Librera jstl

Como se puede ver en la siguiente imagen, el JSP quedar mucho ms


limpio y estructurado que si se hubiera usado etiquetas script, de esta manera se
puede usar una serie de comentarios sobre cada etiqueta para que alguien sin
conocimiento en Java pueda hacer alguna modificacin futura.

Ilustracin 24. Ejemplo jstl GestMarket

66

4.7

Apache tiles
Apache tiles [9] es una librera implementada en el proyecto para poder

crear plantillas de los JSP, de esta manera no tener que repetir cdigo ya que toda
la aplicacin tendr el mismo formato HTML obviando la parte del body, que es la
parte donde se mostrar el contenido de la aplicacin.

Ilustracin 25. Librera apache tiles

En la imagen anterior se puede ver la dependencia insertada en el


pom.xml necesaria para implementar la librera de Apache tiles.

Para configurar la ruta donde se va a implementar las plantillas se debe


insertar el siguiente bean en el archivo de configuracin de Sprint (webapplication-config.xml), donde se indica que las plantillas sern creadas en un
fichero llamado tiles-definitions.xml disponible dentro del directorio tiles:

67

Ilustracin 26. Inyeccin apache tiles

Dentro del XML definido para crear las plantillas se configuran las que se
crean necesarias, en este caso se necesita dos tipos de plantilla, ya que es la
misma para toda la aplicacin pero antes de acceder a ella tiene que hacer login, y
en ese JSP no se quiere mostrar el men.

Ilustracin 27. Ejemplo apache tiles GestMarket

Como se puede observar se tienen dos plantillas diferenciadas por el men


implementado. La plantilla llamada plantilla ser la encargada de tener la
estructura principal de la aplicacin, en la cual se define un JSP por defecto para
cada seccin HTML menos para el body que ser implementado en cada JSP
llamado en el controlador.

68

4.8

CSS
Hoja de estilo en cascada (CSS) [10] es un lenguaje simple que sirve para

describir el estilo de un documento HTML. CSS da la opcin de mostrar mltiples


pginas WEB con el mismo diseo al mismo tiempo, teniendo la capa de estilos
separada de la presentacin, de esta manera un cambio en la hoja de estilo
implicar un cambio en todas las pginas web que implementan esta.

Ilustracin 28. Logotipo CSS

CSS funciona declarando una serie de reglas compuestas por un


identificador y una definicin, la definicin contendr una propiedad con un valor
asociado.

El identificador hace la funcin de enlace entre la pgina y la hoja de estilos,


indicando los elementos que se van a ver afectados por las propiedades de la
definicin.

Como se explica anteriormente la aplicacin est diseada con Apache


Tiles, con el cual se predefine una plantilla para todos los JSP, pues bien, en dicha
plantilla se importan las hojas de estilos para que todas implementen el mismo
diseo y hacerlo todo ms eficiente y sencillo aun.

69

Ilustracin 29. Importacin CSS

En la imagen anterior se puede ver el contenido del JSP principal que


define la estructura de todas las ventanas de la aplicacin y que se declaraban
anteriormente con Apache Tiles. Todos los JSP van a heredar el diseo y la
estructura que se defina aqu, por eso se inyecta la hoja de estilos para que
aplique a toda la aplicacin.

Ilustracin 30. Ejemplo CSS GestMarket

Aqu se tiene un ejemplo de estilos que se implementa en la hoja


gestmarket.css donde se define el formato del importe total de la compra. Este
identificador habr que definirlo en la etiqueta HTML que se quieran que
implemente dichos valores.
70

4.9

Apache Tomcat
Apache Tomcat [11] es un software que se utiliza como servidor web para

poder desplegar la aplicacin ya que funciona como un contenedor de servlets y


JSPs. De esta manera se podr acceder a la aplicacin de manera fcil usando
una URL desde un navegador.

Ilustracin 31. Logotipo Apache Tomcat

Como definicin de servidor web para entender la funcin que desempea


Apache Tomcat se puede decir que se trata de una aplicacin que es procesada
en el lado del servidor, realizando una serie de conexiones en ambas direcciones
con el cliente y generando una respuesta a la solicitud enviada por este. En el
cliente se recibe la respuesta compilada y ejecutada por un navegador web. Como
protocolo de comunicacin se usa HTTP.

La arquitectura de Tomcat incluye los siguientes directorios:


-

Bin: arranque, cierre y otros ejecutables.

Conf: ficheros de configuracin. En este directorio se encuentra el


XML necesario para configurar los datasource.

Logs: logs de las aplicaciones.

Webapps: en este directorio se encuentra la aplicacin.

Work: archivos temporales.

71

4.10 Oracle Database Express Edition


Oracle Database Express Edition [12] es una base de datos gratuita que
proporciona la compaa Oracle, reconocida por ser una de las base de datos ms
fiables y seguras que pueden encontrarse actualmente en el mercado.

Ilustracin 32. Logotipo Oracle

4.11 JFreeCharts
Para construir los grficos que el cliente ha solicitado se va a tener que
implementar una librera especfica para ello.

Ilustracin 33. Logotipo JFreeCharts

JFreeChart [13] es una librera de Java gratuita que implementa diferentes


tipos de grficas configurables. Estas grficas son construidas una vez que se le
facilitan los datos que se quieren mostrar y exportable en una imagen .jpg que se
cargar en el JSP.

72

5 ESTIMACIN DE RECURSOS Y PLANIFICACIN


En este punto se va a estimar el coste del trabajo de fin de grado, lo que
significa que hay que calcular el tiempo que se va a tardar y por lo tanto su coste.
Existen varios mtodos de hacerlo [16] pero se usan tres de ellas.

5.1

Estimaciones utilizadas

o Mtrica orientada al tamao: Lneas de Cdigo (LCD)


o Mtrica orientada al proceso: Modelo constructivo de costes (COCOMO)
o Mtrica orientada a la funcin: Puntos de funcin (PF)

5.1.1 Mtrica orientada al tamao.

Las mtricas del software orientadas al tamao nacen de la estandarizacin


de las medidas de calidad y/o productividad segn el tamao de la aplicacin que
se haya empleado.

Esta mtrica se basa en la estimacin de la aplicacin a travs de la


medicin de sus lneas de cdigo. No se cuentan

los espacios ni las lneas

comentadas, solo lneas de cdigo real. Esta mtrica es bastante utilizada por su
facilidad de aplicacin.

Para poder hacer una estimacin lo ms ajustada posible se va a dividir la


aplicacin en el mayor nmero de apartados posibles, estimndolos por separado.

Esperada: se obtiene el dato a travs de una frmula predefinida.


L/Mes: cantidad de lneas creadas a lo largo de un mes.
Mes: Al dividir la cantidad Esperada entre las lneas por mes (L/Mes) se
obtiene el tiempo estimado.

73

Fichero

Optimista Probable Pesimista Esperada L/Mes Meses

Ventas

700

750

950

775

800

0,97

Pedidos

480

550

700

563

1000

0,56

Estadsticas

350

420

550

430

700

0,61

Productos

500

650

820

653

1000

0,65

Almacn

550

580

650

586

1000

0,58

Tipos

400

420

500

430

1000

0,43

Usuarios

60

120

220

126

700

0,18

Configuracin 240

300

450

315

400

0,7

Diseo

260

280

400

296

400

0,7

Total

3540

4070

5240

4176

5,5

Tabla 2. Mtrica orientada al tamao. Lneas de cdigo

Tras estimar mediante este mtodo se observa que la duracin de la


aplicacin ser de unos cinco meses y medio, pero es muy poco fiable por lo que
no se usar como referencia.

5.1.2 Mtrica orientada al proceso

Una vez que se han calculado las lneas de cdigo que se va a necesitar
para completar la aplicacin, se aplica el modelo COCOMO teniendo en cuenta lo
siguiente:

Lneas de cdigo esperado: 4176 (4.17 KLOC)

Personas para el desarrollo: 1 programador

Entorno estable y relajado.

Tratndose de un proyecto de tamao ms bien reducido se usar el tipo


orgnico. Como submodelo de estimacin se elige el bsico por ser lo ms
recomendable para este tipo de proyectos.

En este modelo se calcula el esfuerzo (MM) y el tiempo que se tarda en


desarrollarlo (TDEV) a partir de las siguientes frmulas.
74

= 2,4(KLOC)1,05
= 2,5(

)0,38

Usando las frmulas descritas anteriormente y aplicndolas al proyecto se


obtienen los siguientes resultados:

= 2,4 (4.17)1.05 = 0,7

= 2,5 (10.75) 0.38 = ,16

5.1.3 Mtrica orientada a puntos de funcin


Este tipo de mtricas se basan en realizar una medicin teniendo en cuenta
el nmero de funciones que se van a realizar en la aplicacin. Los objetivos son
los siguientes:

Medir lo que el cliente solicita y lo que obtiene.

Medir la funcionalidad de la aplicacin.

Facilitar un factor de normalizacin para comparar la aplicacin.

Se debe de completar los siguientes cinco dominios de la informacin en la


tabla que se ve ms adelante:

Entradas de usuario (Entradas): Cualquier entrada que pueda


proporcionar el usuario u otra aplicacin al programa.

Salidas de usuario (Salidas): Salidas que pueda obtener el usuario


gracias a la aplicacin.

Peticiones de usuario (Consultas): Acciones del usuario en la


aplicacin que implique una respuesta por su parte.

75

Archivos lgicos internos (Archivos): Archivos lgicos de datos o de


control que controla la propia aplicacin.

Archivos de interfaz externos (Interfaces): Informacin de control que


entra o sale del programa.

En cada punto se tiene que tener en cuenta el factor de ponderacin


(complejidad), pudiendo ser este de nivel simple, medio o complejo.

Adems se tienen que rellenar los ajustes de complejidad. Los ajustes de


complejidad son unos factores que influyen en la dificultad del sistema, teniendo
que evaluar estos del cero (Poco importante) al cinco (Muy importante).

76

Factores de influencia

Ejemplo

1. Comunicaciones de datos

Hay mucho intercambio de


informacin entre el sistema y la
aplicacin.

2. Procesamiento distribuido

El procesamiento est distribuido en


varias mquinas

3. Rendimiento

La velocidad de datos requerida

4. Configuracin de uso intensivo

Cantidad de uso de la aplicacin

5. Tasas de transaccin rpida

Cantidad de transacciones en la
aplicacin.

6. Entrada de datos en lnea

Cantidad de entradas a la aplicacin


provenientes de papeles o
formularios impresos

7. Amigabilidad en el diseo

Facilidad de uso

8. Actualizacin de datos en lnea

Nmero de transacciones online

9. Procesamiento complejo

Cantidad de procesos lgicos


complejos

10. Reusabilidad

Partes de la aplicacin comunes.

11. Facilidad de la instalacin

Complejidad a la hora de instalar la


aplicacin

12. Facilidad operacional

Dificultad de los procedimientos de


restauracin.

13. Adaptabilidad

Adaptacin en diferentes lugares.

14. Versatilidad

Facilidad para realizar cambios sobre


la aplicacin.
Tabla 3. Ajustes de complejidad

Ahora se va a rellenar la tabla para el clculo de los puntos de funcin, una


vez analizados los requisitos del usuario se obtienen los siguientes registros:

77

Descripcin

Entrada
S

Consultar

Salida
C

Consulta
M

productos
Crear

producto
Borrar

producto
Editar

producto
Crear tipo

X
X

Generar

pedido
Importar

pedido
Comprobar

usuario
Consultar

almacn
Generar

grfica
Aadir

artculo
Eliminar
artculo
Confirmar
venta
Generar

ticket
Tabla 4. Puntos de funcin

78

Una vez que se saben los puntos de funcin se contabilizan en la siguiente


tabla:

Tipo

Dificultad

Peso

Cantidad

Total

Elemento
Entradas

Elemento
Simple

11

33

Mediana

Compleja

Total puntos de funcin de entradas


Salidas

39

Simple

15

Mediana

Compleja

21

Total puntos de funcin de salidas


Consultas

Total

41

Simple

20

Mediana

35

Compleja

Total puntos de funcin de consultas

61

Ficheros

Simple

35

internos

Mediana

10

40

Compleja

15

Total puntos de funcin de ficheros internos


Ficheros

Simple

interfaz

Mediana

Compleja

10

Total puntos de ficheros de interfaz


Total de puntos de funcin sin ajustar (PFSA)

75

5
221

Tabla 5. Puntos sin ajustar

Una vez se tienen los puntos de funcin se rellena la siguiente tabla con los
ajustes de complejidad:

79

Nmero

Factor de Complejidad

Valor

Comunicaciones de datos

Procesamiento distribuido

Rendimiento

Configuracin de uso intensivo

Tasas de transaccin rpida

Entrada de datos en lnea

Amigabilidad en el diseo

Actualizacin de datos en lnea

Procesamiento complejo

10

Reusabilidad

11

Facilidad de la instalacin

12

Facilidad operacional

13

Adaptabilidad

14

Versatilidad

Factor de Complejidad Total (FCT)

27

Tabla 6. Factor de complejidad total

Ya se tienen todos los datos necesarios para realizar la estimacin de la


aplicacin. En primer lugar se calcula el factor de ajuste con la siguiente frmula:

FA=0,65+0,01 Fi( =1.14)]


FA = 0.65 + 0.01 * 27 = 0.92

Una vez que se tiene del factor de ajuste (FA) y de los puntos de funcin sin
ajustar (PFSA), se procede a calcular los puntos de funcin ajustados aplicando la
siguiente frmula:

PF = PFSA * FA = 221 * 0.92 = 203.3 das

80

5.1.4 Conclusiones a la estimacin


Tras realizar una estimacin tres modelos diferentes se llega a las
siguientes conclusiones:

Utilizando la mtrica orientada al tamao da un resultado final de unos


cinco meses y medio. En principio se cree que no se ajustara a la
realidad ya que a esta mtrica le faltan bastantes cosas a tener en
cuenta para poder hacer una estimacin precisa, pero una vez aplicadas
las otras dos mtricas se aprecia que tampoco se aleja tanto de la
realidad, aun as no es una mtrica a tener en cuenta por no tener en
cuenta valores como la experiencia.

La mtrica orienta al proceso o COCOMO da una estimacin de 6.16


meses. Esta estimacin es bastante ms fiable que la anterior ya que
est teniendo en cuenta adems del tamao factores como la
experiencia.

La tercera mtrica utilizada da un valor en su estimacin prcticamente


similar a la anterior, puede variar en alguna semana pero este desvo
puede ir en funcin de algunos factores que no se hayan acotado bien
por lo que al ser un desvo de muy poco tiempo no se le da importancia
y se considere que han estimado un tiempo similar.

Como conclusin final tras aplicar varios tipos de mtricas e intentar


ajustarse bastante a la realidad y poder fijar un presupuesto con el cliente es que
se va a tardar unos seis meses y medio en construir la aplicacin. Hay que tener
en cuenta que esta estimacin slo aplica a la parte de construccin del modelo
RUP.

Para saber qu

estimacin tiene el proyecto en total se aplican los

siguientes porcentajes en cada una de las fases

81

Ilustracin 34. Porcentaje fases RUO

5.2

Planificacin temporal del proyecto


Se va a planificar el proyecto segn los datos obtenidos en los puntos

anteriores basndonos en las dos mtricas que ms se han aproximado.

La asignacin del tiempo a cada tarea ser por nmero de das, por lo que
si se tena un tiempo estimado total de 6.16 meses segn la mtrica de COCOMO,
hacen un total de 184 das en la fase de construccin de la metodologa RUP.
Como se ha visto en el apartado anterior la fase de construccin compone un 65%
de las horas totales del proyecto, aplicando el resto de porcentajes, el total
quedara de la siguiente forma:

Fase

Nro. de Iteraciones

Duracin

Fase de Inicio

2 semanas

Fase de Elaboracin

8 semanas

Fase de Construccin

26 semanas

Fase de Transicin

2 semanas
Tabla 7. Duracin fases RUP

82

Para ver cmo quedara estimado y planificado el proyecto se disea un


diagrama de Gantt con las diferentes tareas y el tiempo asignado a cada una de
ellas.

Ilustracin 35. Estimacin por semanas

83

Ilustracin 36. Diagrama de Gantt

84

En el diagrama de Gantt anterior se puede observar la asignacin de las


semanas correspondientes a cada una de las tareas y de esta manera se aprecia
cmo quedaran en la lnea de tiempo contando con los das laborables de cada
semana.

5.3

Valoracin de la dedicacin y el coste econmico


Una vez que se predice el tiempo que se va a tardar en realizar la

aplicacin se puede calcular el dinero que va a costar, para ello hay que ser
conscientes de una serie de factores:

Equipo de trabajo: una persona.

Experiencia: programador junior.

Horas semanales: 40.

Teniendo en cuenta los puntos anteriores y sabiendo que salario de un


programador junior en el pas ronda los 13.500 brutos anuales segn el BOE se
puede calcular que el coste total de la aplicacin asciende a 9690

Precio da

Das estimados

Precio Total ()

(Laborales)
51

190
Tabla 8. Presupuesto aplicacin

85

9690

Tambin hay que tener en cuenta la infraestructura que va a necesitar el


cliente para poner en ejecucin el software que se va a desarrollar, ya que
anteriormente el cliente no dispona de ningn tipo de software y por lo tanto no
necesitaba invertir en ningn tipo de tecnologa.

Como el cliente de momento solo cuenta con una tienda se va a instalar dos
ordenadores de sobremesa, uno en la oficina del almacn donde el jefe podr
hacer login como administrador y acceder al apartado de stock. Este ordenador va
a desempear el rol de servidor por lo que se invierte ms en l para que no tenga
ningn problema en trabajar con la aplicacin y pueda atender sin un gran
esfuerzo a todas las peticiones que hagan el resto de ordenadores del negocio.

Se necesita otro ordenador en la caja donde el empleado estar registrado


como tal y solo podr tener acceso al gestor de ventas. Desde ah solo se
realizarn los pedidos, ticket, etc. Junto a este ordenador se va a instalar una
impresora para poder realizar la impresin de las facturas generadas.

La aplicacin va a estar instalada en un servidor, de tal manera si el da de


maana el cliente ampla el negocio solo deber de invertir en ms ordenadores
que conecten a este servidor de manera sencilla. Los ordenadores que accedan a
este servidor no necesitan de gran potencia ya que solo necesitan tener instalado
un navegador.

Producto

Precio

Servidor

823

Ordenador

220

Impresora

49

Total

1072
Tabla 9. Presupuesto equipamiento

86

Una vez que se tienen todo el proyecto estimado y se ha calculado el coste


del material necesario para que el cliente pueda ponerlo en ejecucin, la factura
terminada quedara de la siguiente forma:

Elemento

Precio

Aplicacin software

9690

Material informtico

1072

Total

10762

IVA

2260

Total + IVA

13022
Tabla 10. Presupuesto total

87

88

6 DESARROLLO DEL CONTENIDO DEL PROYECTO


En este punto se ve el contenido principal del proyecto y como se ha
desarrollado. En primer lugar se ve la aplicacin de la metodologa RUP.

6.1

Plan de proyecto
El desarrollo se va a implementar basndose en cuatro fases con una o

ms iteraciones a lo largo de cada una de ellas. En cada una de las fases se


realizan las acciones correspondientes estipuladas por el modelo:

Descripcin

Hito

Fase de inicio

En esta fase se definir el alcance del


proyecto con el cliente, se
identificarn los posibles riesgos, se
propondr un modelo de arquitectura
de software de una forma
generalizada y se definirn el resto
de fases con sus correspondientes
iteraciones.

Fase de elaboracin

En esta fase se seleccionarn los


casos de uso que van a definir la
arquitectura del proyecto y sern
desarrollados. Se va a realizar la
especificacin de los casos de uso
seleccionados por el usuario y se
realizan las mejores para el proyecto.

Fase de construccin

En esta fase se terminar el diseo


de los casos de uso y se realizar la
codificacin del proyecto a lo largo de
dos iteraciones. En cada una de las
iteraciones se implementan unos
mdulos de la aplicacin.

Fase de transicin

En esta fase se implementa la


aplicacin en el cliente y se realizarn
los manuales de usuario y la
formacin correspondiente.

89

6.1.1 Calendario de proyecto

Se va a realizar un calendario de las fases implementadas en el modelo


RUP. El proceso incremental e iterativo de RUP se caracteriza por realizar en
paralelo todas las disciplinas de desarrollo durante la vida del proyecto, por lo que
las partes que lo componen son diseadas muy pronto pero van desarrollndose a
lo largo de las fases e iteraciones del proyecto. A continuacin se puede ver una
imagen donde se ilustra donde reside el foco principal de cada fase.

Tabla 11. Flujos de trabajo RUP [14]

A continuacin se va a implementar un calendario de las tres primeras fases


donde se muestran la implementacin de cada parte y su aprobacin final, sin
quitar que ms tarde pueda ser pulido.

90

Fase de inicio
Disciplinas

Comienzo

Aprobacin

Modelado del negocio


Modelo de casos de uso
del negocio y modelo de
objetos del negocio

Semana 02/02/15 08/02/15

Semana 09/02/15 15/02/2015

Requisitos
Glosario, visin, modelo de Semana 02/02/15 caso de uso,
08/02/15
especificaciones de casos
de usos, especificaciones
adicionales

Semana Semana 09/02/15


- 15/02/2015

Anlisis / Diseo
Modelo de Anlisis /
Diseo, modelo de datos

Semana 02/02/15 08/02/15

Siguiente fase

Prototipos de interfaces de
usuario

Semana 09/02/15 15/02/2015

Siguiente fase

Modelo de implementacin

Semana 09/02/15 15/02/2015

Siguiente fase

Semana 09/02/15 15/02/2015

Siguiente fase

Modelo de despliegue

Semana 09/02/15 15/02/2015

Siguiente fase

Gestin de cambios y
configuracin

Durante todo el proyecto

Durante todo el proyecto

Plan de desarrollo del


software en su versin 1.0
y planes de las iteraciones

Semana 02/02/15 08/02/15

Semana 09/02/15 15/02/2015

Ambiente

Durante todo el proyecto

Durante todo el proyecto

Implementacin

Pruebas
Casos de pruebas
funcionales
Despliegue

Gestin del proyecto

Tabla 12. Implementacin fase de inicio

91

Fase de Elaboracin
Disciplinas

Comienzo

Aprobacin

Modelado del negocio


Modelo de casos de uso
del negocio y modelo de
objetos del negocio

Semana 02/02/15 08/02/15

Aprobado

Semana 02/02/15 08/02/15

Aprobado

Semana 02/02/15 08/02/15

Revisar en cada iteracin

Prototipos de interfaces de Semana 09/02/15 usuario


15/02/2015

Revisar en cada iteracin

Modelo de implementacin Semana 09/02/15 15/02/2015

Revisar en cada iteracin

Requisitos
Glosario, visin, modelo
de caso de uso,
especificaciones de casos
de usos, especificaciones
adicionales
Anlisis / Diseo
Modelo de Anlisis /
Diseo, modelo de datos
Implementacin

Pruebas
Casos de pruebas
funcionales

Semana 09/02/15 15/02/2015

Revisar en cada iteracin

Modelo de despliegue

Semana 09/02/15 15/02/2015

Revisar en cada iteracin

Gestin de cambios y
configuracin

Durante todo el proyecto

Durante todo el proyecto

Plan de desarrollo del


software en su versin 1.0
y planes de las iteraciones

Semana 02/02/15 08/02/15

Revisar en cada iteracin

Ambiente

Durante todo el proyecto

Durante todo el proyecto

Despliegue

Gestin del proyecto

Tabla 13. Implementacin fase de elaboracin

92

Fase de Construccin (Iteracin 1)


Disciplinas

Comienzo

Aprobacin

Casos de uso
negociados para la
primera release
Implementacin base de 13/04/15
datos

23/04/15

Preparacin del entorno


de desarrollo

24/04/15

4/06/15

Mdulo de venta

5/06/15

10/07/15

Mdulo de almacn

11/07/15

24/07/15

Mdulo de pedidos

25/07/15

28/08/15

Tabla 14. Implementacin fase de construccin (Iteracin 1)

Fase de Construccin (Iteracin 2)


Disciplinas

Comienzo

Aprobacin

Casos de uso
negociados para la
primera release
Mdulo de estadsticas

29/08/15

25/09/15

Mdulo de usuarios

26/09/15

09/10/15

Tabla 15. Implementacin fase de construccin (Iteracin 2)

6.2

Modelado de negocio
Este punto consiste en saber lo mximo posible sobre la empresa a la que

se le va a desarrollar la aplicacin y que esta cumpla todas sus expectativas.


Esto incluye saber los diferentes roles de la empresa y qu trabajos realizan cada
uno de ellos, el nmero de trabajadores, el producto que trabaja, la forma de
trabajarlo, etc. Se va a dividir este modelado en dos ms caractersticos.

93

6.2.1 Modelo de empresa

El modelo de empresa consta de dos departamentos principales, el


apartado donde se gestionan las ventas y el almacn donde se encuentra el
producto.

Ilustracin 37. Modelo de empresa

En el apartado de gestin de ventas representa al trabajador que se


encuentra en la caja, despachando al cliente y crendole la factura con todo el
producto comprado.

El departamento de almacn se encontrara todo el producto almacenado,


desde el cual se realizan los pedidos segn el stock del que se disponga, ya que
debe de haber siempre un mnimo para garantizar las necesidades del cliente.

6.2.2 Modelo de dominio


En el modelo de dominio bsicamente se va a localizar las entidades que
manejan la empresa y cmo se relaciona entre ellas. Tras realizar un estudio y
tratndose de una pequea empresa se simplifica de la siguiente forma:
94

Ilustracin 38. Modelo de dominio

Producto: Es cada uno de los productos que la empresa ofrece en su


oferta, el conjunto de productos formar su catlogo

Almacn: Aqu se encuentra el stock total de la empresa, el nmero


total de cada uno de los productos que se encuentre en el almacn
disponible para su venta.

Ventas: contiene toda la informacin del producto vendido, con el cual


se puede tener un control de lo que se vende cada da y poder sacar
estadsticas.

Tipos: Es cada tipo de producto que hay en catlogo, una manera de


agrupar un conjunto de productos, ya sea por la marca del producto o
por el tipo.

Usuarios: Los diferentes usuarios con sus respectivos roles y


contraseas que tienen acceso a la aplicacin, cada rol tendr acceso a
diferentes apartados del men.

95

6.3

Requisitos
Los requisitos sirven para listar cada una de las necesidades que tiene el

cliente y poder tener el conocimiento suficiente para realizar una aplicacin que
satisfaga cada una de ellas.

La toma de requisitos se efecta en una reunin con el cliente para que


pueda contarnos la idea de negocio que tiene y lo que realmente necesita para
poder llevarla a cabo. Cuando se termina la toma de requisitos se propone un
modelo de aplicacin que efecte todos ellos. Se adjunta la toma de requisitos en
anexos ya que realmente los requisitos son los casos de uso.

6.3.1 Casos de uso


La toma de requisitos en el modelo RUP se transforma en casos de uso.
Los diagramas de casos de uso se usan para mostrar como un usuario (Actor)
interacta con la aplicacin que se ha desarrollado. Los casos de uso son
utilizados en la captura de requisitos adems de en la documentacin.

A continuacin se ve el caso de uso que representa los dos tipos de


usuarios de la aplicacin interactuando con el software desarrollado. En los
siguientes puntos se entra en detalle por cada caso de uso.

96

Ilustracin 39. Caso de uso general

97

6.2.3.1 Casos de uso: Hacer login

Ilustracin 40. Caso de uso hacer login

Nombre

Hacer login

Autor

Jose M Blaya

Fecha

06/02/2015

Descripcin

Permite identificar al usuario en la aplicacin adems de


filtrar el contenido segn los permisos de este.
Administrador, empleado.

Actores
Precondiciones
Flujo Normal

Flujo
Alternativo
Postcondiciones

Los usuarios debern estar registrados en la base de datos e


insertar su nombre de usuario y contrasea correctamente en
la aplicacin.
1. Se muestra la pantalla de login.
2. El usuario introduce su nombre de usuario y
contrasea.
3. Se pulsa el botn Validar.
4. Se muestra el men de la aplicacin y un mensaje de
bienvenida con el nombre del usuario.
En caso de que el usuario o la contrasea no sean correctos
se mostrar un mensaje de error.
El men mostrar los departamentos a los que el usuario
tiene acceso.
Tabla 16. Caso de uso hacer login

98

6.2.3.2 Casos de uso: Realizar venta

Ilustracin 41. Caso de uso realizar venta

Nombre

Filtrar tipo de producto

Autor

Jose M Blaya

Fecha

06/02/2015

Descripcin

Permite mostrar en pantalla nicamente los productos de un


tipo, para facilitar la venta.
Administrador, empleado.

Actores
Precondiciones
Flujo Normal

Flujo
Alternativo
Postcondiciones

Seleccionar un tipo de producto.


1. Se muestra un desplegable en la ventana de Ventas
donde se podr elegir el tipo de producto.
2. El usuario selecciona un tipo de producto.
3. Se muestran todos los productos de ese tipo.
No aplica.
No aplica.
Tabla 17. Caso de uso filtrar tipo de producto

99

Nombre

Realizar venta.

Autor

Jose M Blaya

Fecha

06/02/2015

Descripcin

Permite vender una seleccin de productos que se tiene en


stock.
Administrador, empleado.

Actores
Precondiciones
Flujo Normal

Flujo
Alternativo
Postcondiciones

Se deben tener creados en base de datos los productos y


tener disponibilidad de estos en stock.
1. Se muestra la pantalla de Ventas.
2. El usuario selecciona los productos que quiere vender.
3. Se muestra una lista con los productos seleccionados
en la parte derecha de la pantalla.
4. Se pulsa el botn Finalizar venta.
5. Nos muestra un mensaje de confirmacin.
6. Se confirma la venta.
7. Se mostrar un mensaje si la venta ha sido realizada.
En caso de no querer realizar la venta seleccionada se podr
cancelar en el botn Cancelar venta o en el botn Volver
en caso de haber pulsado Finalizar venta
Los productos vendidos se restarn al stock.
Tabla 18. Caso de uso realizar venta

Nombre

Generar ticket

Autor

Jose M Blaya

Fecha

06/02/2015

Descripcin

El usuario que realiza la venta podr realizar una impresin


de la factura con la venta realizada.
Administrador, empleado.

Actores
Precondiciones
Flujo Normal

Flujo
Alternativo
Postcondiciones

Se debe de realizar una venta.


1. Una vez realizada la venta, se pulsa en el botn
Generar ticket.
2. Mensaje de generacin de ticket satisfactorio.
No aplica.
Se genera un PDF con la factura en la ruta especificada.
Tabla 19. Caso de uso generar ticket

100

6.2.3.3 Casos de uso: Gestionar productos

Ilustracin 42. Caso de uso gestionar productos

Nombre

Crear producto

Autor

Jose M Blaya

Fecha

06/02/2015

Descripcin

Permite crear un producto nuevo que se aadir al catlogo


de venta. Al crearlo se podr aadir el nombre, el tipo de
producto, el mnimo de unidades que se quiere tener en
stock de este producto y una imagen asociada.
Administrador.

Actores
Precondiciones
Flujo Normal

Flujo
Alternativo

Postcondiciones

Debe de existir al menos un tipo de producto creado para


asociarlo al producto que se va a crear.
1. Se entra en el apartado Crear producto del men.
2. Se rellenan los campos obligatorios.
3. Se pulsa el botn Guardar.
4. Se muestra el mensaje de creacin de producto
satisfactorio.
En caso de no rellenar algn campo obligatorio se mostrar
el mensaje informativo correspondiente. En caso de existir un
producto con el mismo nombre se mostrar el mensaje de
error correspondiente.
Se muestra el producto en el apartado de ventas.
Tabla 20. Caso de uso crear producto

101

Nombre

Eliminar producto

Autor

Jose M Blaya

Fecha

06/02/2015

Descripcin

Permite eliminar un producto existente en la base de datos.

Actores

Administrador.

Precondiciones
Flujo Normal

Debe estar creado el producto que se quiere eliminar.

Flujo
Alternativo
Postcondiciones

1. Se entra en el apartado Buscar producto del men.


2. Se busca el producto que se quiere eliminar.
3. Se pulsa en el icono
del producto.
4. Se muestra el mensaje de eliminacin del producto
satisfactorio.
No aplica.
Se elimina el producto en el apartado de ventas.
Tabla 21. Caso de uso eliminar producto

Nombre

Editar producto

Autor

Jose M Blaya

Fecha

06/02/2015

Descripcin

Permite editar la informacin asociada a un producto.

Actores

Administrador.

Precondiciones
Flujo Normal

Debe estar creado el producto que se queire editar.

Flujo
Alternativo
Postcondiciones

1. Se entra en el apartado Buscar producto del men.


2. Se busca el producto que se quiere eliminar.
3. Se pulsa en el icono
del producto.
4. Se muestran todos los campos con los datos del
producto.
5. Se modifican los campos que se quieren y se pulsa el
botn Guardar.
6. Se muestra el mensaje de actualizacin del producto
satisfactorio.
No aplica.
Se muestra el producto con los nuevos valores insertados.
Tabla 22. Caso de uso editar producto

102

Nombre

Buscar producto

Autor

Jose M Blaya

Fecha

06/02/2015

Descripcin

Permite buscar un producto creado en la base de datos para


poder eliminarlo, ver la informacin asociada o editarla.
Se puede filtrar por tipo de producto para realizar ms fcil la
bsqueda.
El resultado se mostrar de forma paginada, mostrando
nicamente cinco productos por pgina ordenados por orden
alfabtico.

Actores

Administrador.

Precondiciones
Flujo Normal

Debe estar creado el producto a buscar.

Flujo
Alternativo
Postcondiciones

1. Se entra en el apartado Buscar producto del men.


2. Se selecciona el tipo de producto en el desplegable
superior si se quiere filtrar por este.
3. Se mostrarn todos los productos de ese tipo de forma
paginada mostrando hasta cinco productos por pgina
y ordenados alfabticamente.
4. Se puede pasar de pgina hasta encontrar el producto
deseado.
En caso de no existir ningn producto se mostrar el
mensaje informativo correspondiente.
No aplica.
Tabla 23. Caso de uso buscar producto

103

6.2.3.4 Casos de uso: Gestionar tipos de productos

Ilustracin 43. Caso de uso gestionar tipos de productos

Nombre

Crear tipo de producto

Autor

Jose M Blaya

Fecha

09/02/2015

Descripcin

Permite crear un tipo de producto para poder agrupar los


productos y que sea ms fcil trabajar con ellos.
Administrador.

Actores
Precondiciones
Flujo Normal

Flujo
Alternativo
Postcondiciones

No aplica.
1. Se accede al apartado Crear producto del men.
2. SE pulsa el botn Nuevo tipo.
3. Se muestra una pantalla con el campo Nombre.
4. Se rellena este con el nombre del tipo de producto.
5. Se pulsa el botn Guardar.
6. Se regresa a la pantalla de creacin del producto.
En caso de no insertar el campo obligatorio Nombre se
muestra el mensaje informativo correspondiente.
El nuevo tipo de producto se agrega al desplegable de los
tipos de producto.
Tabla 24. Caso de uso crear tipo de producto

104

6.2.3.5 Casos de uso: Gestionar stock

Ilustracin 44. Caso de uso gestionar stock

Nombre

Consultar Stock

Autor

Jose M Blaya

Fecha

09/02/2015

Descripcin

Permite consultar las unidades de un producto que se tienen


disponibles en almacn.
Se puede filtrar por tipo de producto para realizar ms fcil la
bsqueda.

Actores

El resultado se mostrar de forma paginada, mostrando


nicamente cinco productos por pgina ordenados por orden
alfabtico.
Administrador.

Precondiciones

Debe de estar creado el tipo de producto en base de datos.


Debe estar creado el producto en base de datos. Debe haber
sido importado a travs de un pedido recibido en almacn.

Flujo Normal

1. Se accede al apartado Almacn del men.


2. Se selecciona el tipo de producto en el desplegable
superior si se quiere filtrar por este.
3. Se mostrarn todas las unidades de todos los
productos de ese tipo de forma paginada.
No aplica.

Flujo
Alternativo
Postcondiciones

No aplica.
Tabla 25. Caso de uso consultar stock

105

Nombre

Eliminar caducados

Autor

Jose M Blaya

Fecha

09/02/2015

Descripcin

Permite eliminar los productos caducados del almacn.


Los productos caducados se mostrarn en rojo al consultar el
Stock.

Actores

Administrador.

Precondiciones

Se debe de haber creado ese tipo de producto, el producto


de ese tipo, haber al menos una unidad de ese producto en
stock y superar la fecha de caducidad.

Flujo Normal

Flujo
Alternativo
Postcondiciones

1. Se accede al apartado Almacn del men.


2. Se pulsa el botn Eliminar caducados.
3. Se muestra un mensaje informativo para que se
retiren dichos productos del almacn.
4. Se eliminan los productos de la base de datos.
No aplica.
No aplica.
Tabla 26. Caso de uso eliminar caducados

106

6.2.3.6 Casos de uso: Gestionar estadsticas

Ilustracin 45. Caso de uso gestionar estadsticas

Nombre

Consultar grfico de productos en Stock

Autor

Jose M Blaya

Fecha

09/02/2015

Descripcin

Permite consultar un grfico donde se muestran las unidades


de cada producto disponibles en stock.
Administrador.

Actores
Precondiciones
Flujo Normal

Tener al menos una unidad de algn producto en Stock.

Flujo
Alternativo
Postcondiciones

No aplica.

1. Se accede al apartado Estadsticas del men.


2. Se muestra el grfico.

No aplica.
Tabla 27. Caso de uso consultar grfico de prodcutos en stock

107

Nombre

Consultar grfico de ventas anuales

Autor

Jose M Blaya

Fecha

09/02/2015

Descripcin

Permite consultar un grfico donde se muestran las ventas


anuales de todos los productos separadas por meses.
Se puede filtrar por ao, tipo de producto y producto.

Actores

Administrador.

Precondiciones
Flujo Normal

No aplica.

Flujo
Alternativo
Postcondiciones

1. Se accede al apartado Estadsticas del men.


2. Se selecciona Ventas anuales en el desplegable de
Grfico.
3. Se pulsa el botn Generar.
4. Se muestra el grfico con el total de unidades
vendidas de todos los productos en el ao actual
separados por meses.
5. Se puede filtrar por ao, tipo de producto y producto.
Una vez insertados los filtros deseados se vuelve a
pulsar el botn Generar.
No aplica.
No aplica.
Tabla 28. Caso de uso consultar grfico de ventas anuales

108

Nombre

Consultar grfico de ventas mensuales

Autor

Jose M Blaya

Fecha

09/02/2015

Descripcin

Permite consultar un grfico donde se muestran las ventas


en un mes determinado de un tipo de producto determinado.

Actores

Administrador.

Precondiciones
Flujo Normal

Se tiene que seleccionar el ao, el mes y el tipo de producto.

Flujo
Alternativo
Postcondiciones

1. Se accede al apartado Estadsticas del men.


2. Se selecciona Ventas mensuales en el desplegable
de Grfico.
3. Se pulsa el botn Generar.
4. Se tiene que insertar el tipo de producto y se puede
filtrar por ao y mes. Una vez insertados los campos
deseados se vuelve a pulsar el botn Generar.
En caso de no seleccionar un tipo de producto se mostrar el
mensaje informativo correspondiente.
No aplica.
Tabla 29. Caso de uso consultar grfico de ventas mensuales

6.2.3.7 Casos de uso: Gestionar pedidos

Ilustracin 46. Caso de uso gestionar pedidos

109

Nombre

Generar pedido

Autor

Jose M Blaya

Fecha

10/02/2015

Descripcin

Permite generar un pedido de forma automtica donde se


especifica el nmero de unidades de cada producto que se
necesitan para reponer el stock.

Actores

Administrador.

Precondiciones

Tener creado al menos un producto en base de datos con el


mnimo de unidades que se quieren en stock.

Flujo Normal

Flujo
Alternativo
Postcondiciones

1. Se accede al apartado Pedidos del men.


2. Se pulsa el botn Generar pedido.
No aplica.
Se genera un PDF con el pedido.
Tabla 30. Caso de uso generar pedido

Nombre

Importar pedido

Autor

Jose M Blaya

Fecha

10/02/2015

Descripcin

Permite importar un pedido recibido en almacn.

Actores

Administrador.

Precondiciones

Tener un fichero en formato CSV con todas las unidades


recibidas.

Flujo Normal

1. Se accede al apartado Pedidos del men.


2. Se pulsa el botn Importar pedido.
3. Se selecciona el fichero que contiene las unidades
recibidas en almacn.
4. Se pulsa el botn Importar.
5. Se muestra el mensaje de importacin satisfactoria.

Flujo
Alternativo

En caso de haber algn error en la importacin se mostrar


el mensaje correspondiente.

Postcondiciones

Se insertan todas las unidades recibidas en base de datos.


Tabla 31. Caso de uso importar pedido

110

6.2.3.8 Casos de uso: Gestionar usuarios

Ilustracin 47. Caso de uso gestionar usuarios

Nombre

Crear usuario

Autor

Jose M Blaya

Fecha

10/02/2015

Descripcin

Permite crear un usuario para poder logearse en la


aplicacin.

Actores

Administrador.

Precondiciones
Flujo Normal

No aplica.

Flujo
Alternativo

En caso de haber algn error en la importacin se mostrar


el mensaje correspondiente.

Postcondiciones

Se inserta el usuario en base de datos y podr ser logeado


con su nombre y contrasea en la aplicacin.

1. Se accede al apartado Gestionar usuarios del men.


2. Se pulsa el botn Crear usuario.
3. Se inserta el nombre de usuario, la contrasea y se le
asocia el tipo de rol.
4. Se pulsa el botn Guardar.
5. Se muestra el mensaje de creacin satisfactoria.

Tabla 32. Caso de uso crear usuario

111

Nombre

Eliminar usuario

Autor

Jose M Blaya

Fecha

10/02/2015

Descripcin

Permite eliminar un usuario existente en la base de datos.

Actores

Administrador.

Precondiciones
Flujo Normal

Debe estar creado el usuario que se quiere eliminar.

Flujo
Alternativo
Postcondiciones

1. Se accede al apartado Gestionar usuarios del men.


2. Se busca el usuario que se quiere eliminar.
3. Se pulsa en el icono
del usuario.
4. Se muestra el mensaje de eliminacin del usuario.
No aplica.
Se elimina el usuario de la base de datos y ya no podr
hacer login.
Tabla 33. Caso de uso eliminar usuario

Nombre

Consultar usuarios

Autor

Jose M Blaya

Fecha

10/02/2015

Descripcin

Permite consultar todos los usuarios creados en base de


datos.

Actores

Administrador.

Precondiciones
Flujo Normal

Tener al menos un usuario en base de datos.

Flujo
Alternativo
Postcondiciones

1. Se accede al apartado Gestionar usuarios del men.


2. Se muestra el listado de usuarios.
No aplica.
No aplica.
Tabla 34. Caso de uso consultar usuarios

112

6.4

Anlisis y diseo
Llegados a este punto se pretende analizar y disear lo siguiente:

Diagrama de clases

Modelo relacional de datos

Diseo de arquitectura

Diagrama de actividad

Diagrama de secuencia

6.4.1 Diagrama de clases

Este diagrama hace ms fcil entender la estructura de la aplicacin, donde


se puede ver los diferentes mdulos relacionados entre ellos. La estructura es
bastante simple ya que se trata de una empresa pequea con una estructura
sencilla que podr ser ampliada segn las necesidades que le vayan surgiendo
con su crecimiento.

Ilustracin 48. Diagrama de clases

113

6.4.2 Modelo relacional de datos

Una vez que se tiene planteado el diagrama de clases donde se describe la


estructura de la empresa se puede realizar el modelo relacional de datos donde se
van a crear las diferentes tablas de la base de datos relacionadas entre s.

Como se ha descrito anteriormente el modelo de datos va a ser bastante


sencillo ya que por el momento el cliente no requiere de ms complejidad, por lo
que se tiene un modelo gil y rpido para poder trabajar con sin ningn problema
de rendimiento.

Este modelo de datos podr ser ampliado sin ningn tipo de problema
conforme vayan creciendo las necesidades del cliente.

Ilustracin 49. Modelo relacional de datos

114

A continuacin se va a describir cada una de las tablas, explicando los


datos que va a almacenar y la relacin que tiene con el resto:

TIPO. Esta tabla recoger los diferentes tipos de productos que


sern necesarios para agrupar los productos en grupos y facilitar la
forma de trabajar con ellos.

Ilustracin 50. Tabla TIPO

PRODUCTO. Esta tabla recoge cada uno de los productos que


ofrece el catlogo de la empresa para su venta. En ella se guardan
los siguientes datos:

o Nombre: nombre del producto.


o Tipo: tipo de producto al que pertenece.
o Imagen: ruta donde se encuentra la imagen que se quiere
asociar.
o Mnimo: Cantidad mnima que se quiere tener de este
producto en Stock.

115

Ilustracin 51. Tabla PRODUCTO

ALMACEN. Esta tabla recoge las unidades de cada uno de los


productos que se tiene en Stock. Estas unidades son las que pueden
ser vendidas. Esta tabla ir relacionada con la tabla PRODUCTO por
id_producto ya que cada unidad pertenece a un producto. En ella se
guardan los siguientes datos:

o Id_producto: el id del producto al que pertenece.


o Precio: el precio al que se vende.
o Fec_cad: la fecha de caducidad del producto.
o Cantidad: la cantidad de contenido que tiene cada unidad.

Ilustracin 52. Tabla ALMACEN

116

VENTAS. Esta tabla recoge las unidades que han sido vendidas del
almacn, de esta manera se puede tener un registro de todos los
productos que pasaron por el almacn y han sido vendidos.
Teniendo este tipo de registros se pueden realizar las estadsticas
que el cliente necesita. Est relacionada con la tabla PRODUCTO ya
que cada unidad pertenece a un producto. De la tabla ALMACEN
solo se guarda el id sin ningn tipo de relacin con ella ya que una
vez vendido se borra de esta tabla, por lo que no se puede asociar.
En ella se guardan los siguientes datos:

o Id_almacen: el id de almacn que tena la unidad vendida.


Este campo se guarda por si alguna vez se necesita tener un
control de los productos que se han vendido, en el lote que
llegaron, etc. ya que una vez vendidos se eliminan de la tabla
ALMACEN pero no tiene relacin con esta tabla.
o Id_producto: el id del producto al que pertenece, este campo
est relacionado con la tabla PRODUCTOS.
o Precio: precio al que se vendi el producto.
o Fec_cad: la fecha de caducidad que tena el producto cuando
se vendi.
o Cantidad: la cantidad de contenido que tiene cada unidad.
o Fec_venta: la fecha en la que se realiz la venta.

Ilustracin 53. Tabla VENTAS

117

USUARIOS. Esta tabla recoge los diferentes usuarios que tienen


acceso a la aplicacin. Cada usuario tendr un rol asignado que le
dar unos ciertos permisos dentro de esta. En principio solo hay dos
tipos de roles ya que al ser un negocio pequeo solo se necesita el
usuario jefe y el usuario empleado. En un futuro si se requiere de
ms tipos de roles se podra negociar un evolutivo en la aplicacin
para poder gestionar los usuarios desde esta. En ella se guardan los
siguientes datos:

o Usuario: nombre de usuario con el que tendr que hacer login


en la aplicacin.
o Pass: contrasea del usuario con la que tendr que hacer
login en la aplicacin.
o Rol: tipo de permisos que tiene el usuario en la aplicacin.
Dependiendo de estos podr acceder a ciertas partes del
men.

Ilustracin 54. Tabla USUARIOS

118

6.4.3 Diseo de arquitectura del sistema


Se va a realizar un esquema con la arquitectura de la aplicacin para
comprender ms fcilmente cmo funciona y poder observar con claridad las
diferentes capas que la componen. Como se ha comentado en puntos anteriores
se trata de una arquitectura MVC (Modelo, Vista, Controlador). A continuacin se
explica cada parte de ella.

Ilustracin 55. Arquitectura del sistema

119

Cliente: representa los diferentes dispositivos que podrn conectarse


al servidor.

Pantalla/Vista: representa cada una de las pantallas que el usuario


ve en la aplicacin, estas atacan directamente al controlador del
sistema cada vez que ejecutan una accin. El controlador devolver
la informacin a la pantalla para ser mostrada.
Controlador: El controlador es la capa del sistema que escucha las
llamadas realizadas por el usuario, las procesa y devuelve la
informacin solicitada. Si la informacin solicitada requiere acceso a
datos este se comunica con los BO que son los encargados de
procesar ese tipo de operaciones.
Business Object (BO): Esta capa gestiona toda la lgica necesaria
para operar con la base de datos. permite separar la lgica de
negocio del resto de las capas. Los objetos de negocio (BO)
organizan el cdigo de negocio en unidades lgicas que facilitan la
mantenibilidad del sistema y su evolucin hacia nuevas tecnologas.
Se montar un BO por cada tabla y un mtodo por cada operacin
que se necesite. En ellos se montarn las querys necesarias a travs
de la lgica implementada por JPA y lanzadas gracias a la tecnologa
de los DAO.
DAO: Los componentes de acceso a datos (DAO) encapsulan la
tecnologa empleada para acceder a la capa de datos, separando
completamente la lgica de negocio de la lgica de acceso a datos.
De esta forma se garantiza la portabilidad del sistema en los
diferentes motores de base de datos (MySql, Sql Server, etc).
Acceden a la base de datos ejecutando las querys estructuradas en
el BO y devolvindonos los datos solicitados. Se implementar un
DAO por cada tabla que se tiene en base de datos.
BBDD: Base de datos encargada de almacenar toda la informacin.

120

6.4.4 Diagrama de actividad


A continuacin se va a disear un diagrama de actividad. Un diagrama de
actividad es una representacin grfica de los flujos de trabajo que sigue la
aplicacin.

El diagrama de actividad est representado por un punto inicial y otro final


que representa el inicio y el final de cada flujo de trabajo. En los recuadros se
representan las actividades ms significativas. Las flechas indican la direccin del
flujo.

121

Ilustracin 56. Diagrama de actividad

122

6.4.5 Diagrama de secuencia

El diagrama de secuencia es usado para representar el flujo que siguen las


diferentes partes de la aplicacin comunicndose entre ellas, desde que el actor
ejecuta la accin hasta que esta termina.

Se van a realizar los diferentes diagramas de secuencia para representar


cada una de las acciones que se pueden ejecutar internamente en la aplicacin,
de esta manera se puede apreciar el flujo entre clases de forma ms clara.

Ilustracin 57. Diagrama secuencia hacer login

123

Ilustracin 58. Diagrama secuencia crear producto

Ilustracin 59. Diagrama secuencia crear tipo

124

Ilustracin 60. Diagrama secuencia generar pedido

Ilustracin 61. Diagrama secuencia importar pedido

125

Ilustracin 62. Diagrama secuencia grfica stock

Ilustracin 63. Diagrama secuencia grfica ventas

126

Ilustracin 64. Diagrama secuencia ver productos

Ilustracin 65. Diagrama secuencia borrar producto

127

Ilustracin 66. Diagrama secuencia editar producto

Ilustracin 67. Diagrama secuencia realizar venta

128

Ilustracin 68. Diagrama secuencia generar ticket

Ilustracin 69. Diagrama secuencia crear usuario

129

Ilustracin 70. Diagrama borrar usuarios

Ilustracin 71. Diagrama eliminar caducados

130

7 DESPLIEGUE Y PRUEBAS
Un plan de pruebas consiste en una serie de pasos a seguir hasta
completar la funcionalidad de la aplicacin con la misin de verificar que no hay
errores y se ejecuta todo correctamente.

En este apartado se va a comprobar que todo funciona tal y como se


espera, para ello se tiene que elaborar el plan de pruebas. En el plan de pruebas
se debe definir toda la casustica que puede darse dentro de la aplicacin y
recoger evidencias con el resultado obtenido.

131

7.1

Especificacin de los casos de pruebas

PI001

Hacer login de usuario registrado.

Rol

Usuario registrado.

Descripcin

Un usuario registrado deber poder acceder al men de la


aplicacin.

Tipo

Prueba integrada.

Precondiciones

El usuario deber estar registrado en base de datos.

Pasos a seguir

Accin

Resultado

1 Abrir la aplicacin.

Ventana de login.

2 Insertar usuario (admin) y


contrasea (admin).
3 Pulsar botn validar.

Se mostrar un mensaje de
bienvenida, con el nombre
del usuario y el men de la
aplicacin.

Toma de
evidencias

Resultado

OK
Tabla 35. Caso de prueba 1

132

PI002

Hacer login de usuario no registrado

Rol

Usuario no registrado.

Descripcin

Un usuario no registrado no podr tener acceso a la


aplicacin.

Tipo

Prueba integrada.

Precondiciones

No aplica.

Pasos a seguir

Accin

Resultado

1 Abrir la aplicacin.

Ventana de login.

2 Insertar usuario y
contrasea.
3 Pulsar botn validar.

Se mostrar un mensaje de
informativo avisando de que
el usuario no est registrado,
sin tener acceso al men.

Toma de
evidencias

Resultado

OK
Tabla 36. Caso de prueba 2

133

PI003

Realizar venta con factura

Rol

Usuario registrado.

Descripcin

Se realiza una compra de varios productos generando la


factura de compra al finalizar.

Tipo

Prueba integrada.

Precondiciones

Deben de haber productos en stock.

Pasos a seguir

Accin
1 Seleccionar productos.

Resultado
Se aaden a la cesta de la
compra.
Mensaje confirmar venta.

2 Pulsar el botn finalizar


venta.
3 Pulsar el botn confirmar. Mensaje venta finalizada.
4 Pulsar el botn generar
Mensaje ticket generado.
ticket.
Toma de
evidencias

Resultado

OK
Tabla 37. Caso de prueba 3

134

PI004

Filtros

Rol

Usuario registrado.

Descripcin

Se prueba que funcionan correctamente los filtros de tipo


de producto.

Tipo

Prueba integrada.

Precondiciones

Deben de haber productos y tipo de productos creados en


base de datos.
Accin
Resultado
1 Acceder al apartado de
Pantalla de ventas.
tienda.

Pasos a seguir

2 Seleccionar un tipo de
producto en el filtro superior.

Se visualizan nicamente los


productos de ese tipo.

Toma de
evidencias

Resultado

OK
Tabla 38. Caso de prueba 4

135

PI005

Paginacin

Rol

Usuario con permisos.

Descripcin

Al listar los productos se debe obtener un resultado de


forma paginada.

Tipo

Prueba integrada.

Precondiciones

Deben de haber diez o ms productos creados en base de


datos.
Accin
Resultado
1 Acceder al apartado de
Sale un listado de cinco
gestin de productos.
productos en la pgina
actual ordenados por orden
alfabtico y el panel de
navegacin en la parte
inferior.
2 Avanzar de pgina.
Se muestran los siguientes
cinco resultados.

Pasos a seguir

3 Volver a la primera pgina.

Se muestran los primeros


cinco productos.

Toma de
evidencias

Resultado

OK
Tabla 39. Caso de prueba 5

136

PI006

Grfica de ventas anuales filtrada

Rol

Usuario con permisos.

Descripcin

Mostrar una grfica de ventas anuales con todos los


campos filtrados.

Tipo

Prueba integrada.

Precondiciones

Debe de haber registro de productos vendidos en base de


datos.
Accin
Resultado
1 Acceder al apartado de
Se muestra la grfica de
Stock/Ventas.
Stock actual.

Pasos a seguir

2 Seleccionar en el
desplegable Grfico: Ventas
anuales y pulsars el botn
Generar.
3 Rellenar todos los filtros de
la parte inferior de la pantalla
y pulsar el botn Generar.

Se muestra la grfica con los


productos vendidos en el
ao actual.
Se actualiza el grfico
mostrando los datos
filtrados.

Toma de
evidencias

Resultado

OK
Tabla 40. Caso de prueba 6

137

PI007

Grfica de ventas mensuales filtrada

Rol

Usuario con permisos.

Descripcin

Mostrar una grfica de ventas mensuales con todos los


campos filtrados.

Tipo

Prueba integrada.

Precondiciones

No aplica.

Pasos a seguir

Accin
1 Acceder al apartado de
Stock/Ventas.

Resultado
Se muestra la grfica de
Stock actual.

2 Seleccionar en el
desplegable Grfico: Ventas
mensuales y pulsar el botn
Generar.
3 Rellenar todos los filtros de
la parte inferior de la pantalla
y pulsar el botn Generar.

Mensaje informando que se


debe de seleccionar un tipo
de producto.
Se muestra el grfico con los
datos filtrados.

Toma de
evidencias

Resultado

OK
Tabla 41. Caso de prueba 7

138

PI008

Generar pedido

Rol

Usuario con permisos.

Descripcin

Generar un pedido con las unidades necesarias para


rellenar el stock.

Tipo

Prueba integrada.

Precondiciones

No aplica.

Pasos a seguir

Accin
1 Acceder al apartado de
gestionar pedidos.

Resultado
Se muestran las opciones de
gestin de pedidos.

2 Pulsar el icono de
Generar pedido.

Mensaje de generacin
correcta.

3 Abrir la carpeta pedidos


en la ruta del servidor.

Se ha generado el pedido
correctamente.

Toma de
evidencias

Resultado

OK
Tabla 42. Caso de prueba 8

139

PI009

Importar pedido

Rol

Usuario con permisos.

Descripcin

Importar un pedido de productos a la base de datos.

Tipo

Prueba integrada.

Precondiciones

No aplica.

Pasos a seguir

Accin
1 Acceder al apartado de
gestionar pedidos.

Resultado
Se muestran las opciones de
gestin de pedidos.

2 Pulsar el icono de
Importar pedido.

Explorador de Windows.

3 Seleccionar un pedido en
formato csv y pulsar el
botn importar.

Mensaje de importacin
correcta.

Toma de
evidencias

Resultado

OK
Tabla 43. Caso de prueba 9

140

8 CONCLUSIONES Y VAS FUTURAS


Tras finalizar la aplicacin se vern las conclusiones obtenidas sobre este
proyecto en concreto y sobre la gestin de un proyecto en general. Tambin se
enumeran las vas futuras que seran convenientes para mejorar este proyecto y
como experiencia para otros.

8.1. Conclusiones
Son muchas las conclusiones obtenidas tras acabar tu primer proyecto,
sobre todo porque al principio no sabes por dnde empezar, pero al final se tiene
una aplicacin totalmente operativa que cumple con los requisitos del cliente.

Sobre este proyecto se puede decir que se ha construido una aplicacin


que cumple todos los requisitos esperados y que ayudar al cliente a gestionar la
venta de sus productos, proporcionndole una interfaz sencilla desde la cual podr
realizar ventas, imprimir facturas, ver el stock disponible, realizar pedidos
automticamente, predecir las ventas de los prximos meses, etc. Que esto se
haya llevado a cabo hasta el final y se tenga una aplicacin propia que realice toda
esta serie de gestiones indica que se ha realizado un buen trabajo.

La gestin de un proyecto al completo es bastante compleja ya que se


deben tener demasiadas cosas en cuenta, desde la captura exhaustiva de los
requisitos para saber exactamente lo que quiere el cliente y no tener problemas a
la hora de la entrega hasta la metodologa usada para ser lo ms eficientes
posibles. La mayor carencia que se ha tenido es la falta de experiencia, ya que al
no tener de esta no se sabe que es lo mejor ni que es lo que realmente se
necesita para empezar un proyecto de esta envergadura, lo que te hace retroceder
demasiadas veces y duplicar el trabajo, por lo que no se es todo lo eficiente que te
gustara. La conclusin sobre cmo gestionar un proyecto es que se debe tener
muy claro lo que se quiere construir y cmo se va a construir antes de empezar.
En tus primeros proyectos es muy difcil tener algo claro por lo que podemos decir
que la experiencia es lo que realmente te hace ser eficiente.

141

La conclusin personal es que este proyecto ha sido muy costoso por el


tamao y sobre todo por la falta de experiencia, eso hace que veas el final mucho
ms lejos de lo esperado. Me enorgullece mucho ver que he podido acabar algo
tan complejo como puede ser este proyecto y haber implementado una aplicacin
que rene tantos requisitos y que puede ser usada a diario en una empresa.

Ahora que he terminado, que entiendo mucho ms sobre el desarrollo del


software y tras ver los problemas que he tenido creo que podra haber mejorado
muchos aspectos de la aplicacin para que parezca ms profesional, como puede
ser la base de datos que es un tanto escasa, pero creo que esta aplicacin tiene
muchos fuertes como las diferentes tecnologas usadas, tecnologas que se usan
en la actualidad empresarial y que se complementan haciendo una aplicacin web
muy completa, con un arquitectura muy bien definida y modulable para su fcil
comprensin y ampliacin.

Creo que la verdadera dificultad est en la implementacin de una


tecnologa nueva, no en hacer que algo que ya se ha implementado sea complejo,
ya que por ejemplo, una vez que tienes una base de datos implementada no es
difcil crear muchas tablas, lo difcil es implementarla y que funcione en tu
aplicacin con la primera tabla, lo dems ya es repetir el proceso. Por eso pienso
que esta aplicacin es de alta complejidad aunque a simple vista no lo parezca,
porque no tiene una seccin de gran tamao ni de gran complejidad, pero la
variedad tecnolgica implementada y su ejecucin en comn es mucho ms
costoso. Cada tecnologa tiene que ser estudiada e implementada por separado
sin que esta tenga ninguna repercusin negativa en la aplicacin y que funcione a
la perfeccin en su conjunto. Lo realmente costoso y difcil de un nuevo desarrollo
el arranque, ampliarlo solo es cuestin de tiempo.

Como conclusin final pienso que se ha terminado un proyecto complejo


que ha servido para asentar las bases aprendidas a lo largo de la carrera y sobre
todo para aprender muchas nuevas. Me alegra haber terminado y poder sentirme
capacitado para afrontar un reto como este en el mundo laboral.

142

8.1. Vas futuras


La aplicacin cumple todos los requisitos solicitados por el cliente para un
futuro cercano ya que se trata de un pequeo comercio que est creciendo y las
necesidades principales en este momento son las recogidas, pero por lo que se ha
observado en el desarrollo del proyecto hay una serie de requisitos que seran
convenientes implementarlos para mejorar la aplicacin, de esta manera el cliente
podr cubrir una serie de necesidades que se le darn a largo plazo.

Estos puntos de mejora sern presupuestados por separado y ofrecidos


como evolutivos de la aplicacin al cliente por si quiere implementarlos en un
futuro. Los evolutivos seran los siguientes:

143

EV-001

Implementacin del IVA

Descripcin

Actualmente los precios insertados en base de datos


son con el I.V.A. incluido, por lo que la factura es
imprimida con el precio total de la compra realizada,
sin tener el detalle del porcentaje de I.V.A. pagado.

Solucin propuesta

Se crear una tabla con el valor del I.V.A. y


esta guardar el valor del porcentaje que
ser aadido a los productos vendidos, por
lo que el producto habr que aadirlo con el
precio real de venta, sin contar con el
impuesto adicional.

Se crear una pantalla adicional desde la


cual se podr modificar el valor del I.V.A.

Partes afectadas

Factura.

Regularizacin del precio de los productos


actuales.

Pantallas nuevas

Vista I.V.A.

Tablas nuevas

IVA

Estimacin

Descripcin

Horas

provisional

Persistencia

Vista

Modificacin factura

Pruebas

unitarias

e 6

integradas
Despliegue

Total

21 horas

Tabla 44. Evolutivo implementacin IVA

144

EV-002

Gestin de proveedores

Descripcin

Actualmente se gestionan los pedidos de forma


genrica, sin llevar un control de quin es el proveedor
que nos ha proporcionado la mercanca. Teniendo los
distribuidores asociados al producto se puede tener
mayor control de este.

Solucin propuesta

Se crear una nueva seccin de gestin de


proveedores, donde se podrn consultar,
insertar, modificar y eliminar.

Los

productos

insertados

en

almacn

contendrn la referencia del proveedor que


los ha distribuido.
Partes afectadas

Gestin de almacn.

Importar pedidos.

Pantallas nuevas

Gestin de proveedores.

Tablas nuevas

Proveedores

Estimacin

Descripcin

Horas

provisional

Persistencia

Vista

Modificacin almacn

Pruebas

unitarias

e 8

integradas
Despliegue

Total

33 horas

Tabla 45. Evolutivo gestin de proveedores

145

146

9 BIBLIOGRAFA
[1]

Jos A. Maas. (2015). Java Vademcum. 2016, de E.T.S.I. de

Telecomunicacin Sitio web: http://www.dit.upm.es/~pepe/libros/vademecum.pdf

Rogers Cadenhead. (2014). Java 8 (Programacin). Espaa: ANAYA.

[2] Pivotal Software. (2016). reference documentation. 2016, de Pivotal


Software inc. Sitio web: https://spring.io/docs/reference

Craig Walls. (2015). Spring. Espaa: Anaya Multimedia/Manning.

[3] Tutorials Point. (2016). Aprender JPA. 2016, de Tutorials Point Sitio web:
http://www.tutorialspoint.com/es/jpa/index.htm

Cecilio Alvarez Caules. (2014). Arquitectura Java JPA Domain Driven


Design. Espaa: Cecilio Alvarez Caules.

[4] Apache. (2016). Maven Getting Started Guide. 2016, de The Apache
Software Foundation Sitio web: https://maven.apache.org/guides/getting-started/

[5]

DesarrolloWeb.com.

(2016).

Manual

de

jQuery.

2016,

de

DesarrolloWeb.com Sitio web: http://www.desarrolloweb.com/manuales/manualjquery.html

[6] Juan Mariano Fuentes. (2009). Las entraas de AJAX. 2016, de Juan
Mariano Fuentes Sitio web: http://www.uco.es/~lr1maalm/manualdeajax.pdf

[7]

DesarrolloWeb.com.

(2016).

Manual

de

JSP.

2016,

de

DesarrolloWeb.com Sitio web: http://www.desarrolloweb.com/manuales/73

[8] Ciberaula. (2014). Introduccin a JSTL. 2016, de Ciberaula Sitio web:


http://java.ciberaula.com/articulo/introduccion_jstl

147

[9] Apache. (2014). Apache Tiles tutorial. 2016, de The Apache Software
Foundation Sitio web: https://tiles.apache.org/framework/tutorial/

[10] LibrosWeb.es. (2016). Introduccin a CSS. 2016, de LibrosWeb.es Sitio


web: https://librosweb.es/libro/css/

[11] Programacin en Castellano. (2016). Tomcat - Introduccin. 2016, de


Programacin

en

Castellano

Sitio

web:

http://programacion.net/articulo/tomcat__introduccion_134

[12] Antoln Muoz Chaparro. (2011). Mi coleccin Mi historial Libros en


Google Play Oracle 11g SQL : curso prctico de formacin. Espaa: RC Libros.

[13] JFreeChart. (2015). JFreeChart. 2016, de JFreeChart Sitio web:


http://www.jfree.org/jfreechart/

[14] GrupNADD. (2012). Metodologa RUP y Ciclo de Vida. 2016, de


GrupNADD Sitio web: http://rupmetodologia.blogspot.com.es/

[15] Grupo Espiral Php. (2009). modelo espiral. 2016, de Grupo Espiral Php
Sitio web: http://modeloespiral.blogspot.com.es/

[16] Serafn Caridad Simn. (2016). METRICAS Y MODELOS DE


ESTIMACION DEL SOFTWARE . 2016, de Serafn Caridad Simn Sitio web:
http://www.scaridad.com/sites/default/files/asignatura/descargas/tema_2__metricas_y_modelos_de_estimacion_del_software.pdf

148

10 ANEXOS
10.1 Requisitos funcionales
Un requisito funcional define cada una de las tareas que la aplicacin hace
para el cliente. En cada requisito se va a describir la entrada al sistema y la salida
correspondiente que se espera por parte de la aplicacin.

A continuacin se va a describir cada uno de los requisitos claramente


diferenciados por puntos, para tenerlos bien controlados.

RF1

Hacer login

Descripcin

Permite controlar el acceso a la aplicacin, pudiendo


diferenciar diferentes roles para mostrar distintos apartados en
ella.

Entradas

Usuario y contrasea

Salidas

Bienvenida a la aplicacin con el men correspondiente.

Precondiciones

Se tiene que tener creado un usuario y una contrasea, estos


datos los proporcionar el administrador de la aplicacin que
previamente los habr creado en la base de datos.

Postcondiciones

Cada rol tendr acceso a una parte del men. Se podr cerrar
sesin en cualquier momento desde el men.

Prioridad

Alta

Rol

Usuarios registrados
Tabla 46. Requisito funcional login

149

RF2

Crear producto

Descripcin

Permite crear un nuevo producto en base de datos para ofertar


en la tienda.

Entradas

Nombre del producto, Tipo de producto, Mnimo de productos


en stock, imagen del producto.

Salidas

Mensaje de creacin correcta.

Precondiciones

Tener debidamente cumplimentados los campos obligatorios.

Postcondiciones

Al crearlo se aadir automticamente al apartado de gestin


de ventas para poder marcarlo como vendido y crear facturas
incluyndolo.

Prioridad

Alta

Rol

Usuarios con permisos


Tabla 47. Requisito funcional crear producto

RF3

Crear tipo de producto

Descripcin

Permite crear un nuevo tipo de producto en base de datos para


poder clasificar los productos en diferentes grupos.

Entradas

Nombre del tipo de producto.

Salidas

Se vuelve a la ventana de creacin del producto.

Precondiciones

Tener debidamente cumplimentados los campos obligatorios.

Postcondiciones

Al crearlo se aadir automticamente al listado de tipos para


poder elegirlo al crear un nuevo producto y asocirselo a este.

Prioridad

Alta

Rol

Usuarios con permisos


Tabla 48. Requisito funcional crear tipo de producto

150

RF4

Generar pedido

Descripcin

Se genera un PDF con un listado de productos y sus


respectivas cantidades para rellenar el stock mnimo que debe
de haber en el almacn.

Entradas

No aplica.

Salidas

PDF con el listado de productos y las cantidades necesarias.

Precondiciones

Tener dados de alta los productos y sus cantidades mnimas.

Postcondiciones

No aplica.

Prioridad

Alta

Rol

Usuarios con permisos


Tabla 49. Requisito funcional generar pedido

RF5

Importar pedido

Descripcin

Inserta todo el producto recibido en la base de datos.

Entradas

Listado del pedido recibido.

Salidas

Mensaje de insercin correcta.

Precondiciones

Tener un listado para importar desde la aplicacin con el


formato requerido.

Postcondiciones

Deben insertarse los registros en la base de datos.

Prioridad

Alta

Rol

Usuarios con permisos


Tabla 50. Requisito funcional generar pedido

151

RF6

Generar grfico productos en stock

Descripcin

Se muestra un grfico con el porcentaje de cada uno de los


productos que ocupa el total de stock representado en
porciones.

Entradas

No aplica.

Salidas

Generacin de un grfico circular divido por cada uno de los


productos que se tienen en stock. Cada producto se
representar con un color y en la leyenda mostrar el total de
unidades disponibles.

Precondiciones

Tener dados de alta los productos en la base de datos.

Postcondiciones

No aplica.

Prioridad

Alta

Rol

Usuarios con permisos


Tabla 51. Requisito funcional generar grafico productos en stock

RF7

Generar grfico ventas anuales

Descripcin

Se muestra un grfico de barras con la cantidad de productos


vendidos en cada mes del ao.

Entradas

Se puede filtrar por ao, tipo de producto y producto.

Salidas

Generacin de un grfico de barras donde se puedan


visualizar todos los meses del ao elegido y la cantidad de
unidades vendidas en dicho mes.

Precondiciones

Tener los datos de las ventas realizadas en la tabla Ventas.


Insertar el ao a mostrar.

Postcondiciones

No aplica.

Prioridad

Alta

Rol

Usuarios con permisos


Tabla 52. Requisito funcional generar grfico ventas anuales

152

RF8

Generar grfico ventas mensuales

Descripcin

Se muestra un grfico con el porcentaje de cada uno de los


productos que se han vendido en el mes elegido.

Entradas

Se puede filtrar por ao, tipo de producto y mes.

Salidas

Generacin de un grfico circular divido por cada uno de los


productos que se vendieron a lo largo del mes elegido
representado en porciones. Cada producto se representar
con un color y en la leyenda mostrar el total de unidades
vendidas.

Precondiciones

Tener los datos de las ventas realizadas en la tabla Ventas.


Insertar el ao a mostrar.

Postcondiciones

No aplica.

Prioridad

Alta

Rol

Usuarios con permisos


Tabla 53. Requisito funcional generar grfico ventas mensuales

RF9

Ver productos

Descripcin

Listado con los diferentes productos creados en el catlogo de


ventas de la tienda

Entradas

No aplica.

Salidas

Tabla de productos creados previamente para ofertar en el


catlogo de venta. Se muestra tambin el mnimo de stock
configurado para realizar los pedidos, el tipo de producto y los
botones para editar o eliminar el producto.

Precondiciones

Tener productos creados en base de datos.

Postcondiciones

El resultado se obtiene paginado con un total de cinco


productos por pgina.

Prioridad

Alta

Rol

Usuarios con permisos


Tabla 54. Requisito funcional ver productos

153

RF10

Editar producto

Descripcin

Al producto se puede modificar el nombre, el tipo, el mnimo en


stock y la imagen asociada.

Entradas

Tener debidamente rellenados los campos obligatorios con los


nuevos datos del producto.

Salidas

Mensaje de edicin correcta.

Precondiciones

Tener productos creados en base de datos.

Postcondiciones

El producto se actualiza con los nuevos datos.

Prioridad

Alta

Rol

Usuarios con permisos


Tabla 55. Requisito funcional editar producto

RF11

Borrar producto

Descripcin

Los productos podrn ser eliminados en caso de que ya no


forme parte del catlogo de la tienda.

Entradas

No aplica.

Salidas

Mensaje de edicin correcta.

Precondiciones

Tener productos creados en base de datos.

Postcondiciones

El producto se elimina de la base de datos.

Prioridad

Alta

Rol

Usuarios con permisos


Tabla 56. Requisito funcional borrar producto

154

RF12

Realizar venta

Descripcin

Al seleccionar los productos que el cliente desea comprar se


aadirn a un carro de la compra, los productos podrn ser
aadidos mientras quede stock. En caso de no quedar stock se
notificar al vendedor. Se mostrar una nica fila por cada
producto vendido incrementado las unidades de este. Cuando
la compra haya sido completada se puede finalizar restando
los productos al stock.

Entradas

Seleccionar los productos que se quieren vender tantas veces


como unidades quiera.

Salidas

Mensaje de confirmacin para finalizar la venta y posibilidad


de generacin del ticket.

Precondiciones

Tener productos creados en base de datos.

Postcondiciones

Mensaje de compra finalizada. Se elimina el producto del stock


y se aade a la tabla Ventas.

Prioridad

Alta

Rol

Usuarios registrados.
Tabla 57. Requisito funcional realizar venta

RF13

Generar ticket

Descripcin

Al finalizar la compra se tiene la opcin de imprimir la factura


de la compra realizada.

Entradas

Realizar una compra y finalizarla.

Salidas

Factura con el detalle de la compra realizada. Mensaje de


generacin del ticket.

Precondiciones

No aplica.

Postcondiciones

Se genera un fichero .pdf con el detalle de la compra.

Prioridad

Alta

Rol

Usuarios registrados.
Tabla 58. Requisito funcional generar ticket

155

RF14

Eliminar productos caducados

Descripcin

Los productos caducados podrn ser eliminados de la tabla de


almacn de forma masiva.

Entradas

Productos con fecha de caducidad cumplida.

Salidas

Mensaje de confirmacin de productos caducados eliminados.

Precondiciones

Los productos tienen que estar caducados.

Postcondiciones

Los productos son eliminados de la base de datos.

Prioridad

Media

Rol

Usuarios con permisos.


Tabla 59. Requisito funcional eliminar productos caducados

RF15

Mostrar usuarios

Descripcin

Listado con los usuarios creados en la aplicacin y el rol que


tiene asignado cada uno.

Entradas

No aplica.

Salidas

Se muestra una tabla con los usuarios creados en base de


datos, el rol que tienen asociado y la opcin de eliminarlo.

Precondiciones

Tiene que haber al menos un usuario creado en base de datos.

Postcondiciones

No aplica.

Prioridad

Baja.

Rol

Usuarios con permisos.


Tabla 60. Requisito funcional mostrar usuarios

156

RF16

Crear usuarios

Descripcin

Se podrn crear usuarios desde la aplicacin. Al crearlo se le


tendr que asociar un rol y una contrasea para acceder.

Entradas

Nombre de usuario, contrasea y rol.

Salidas

Se crea el usuario en base de datos.

Precondiciones

No aplica.

Postcondiciones

El usuario creado se podr hacer login en la aplicacin.

Prioridad

Alta.

Rol

Usuarios con permisos.


Tabla 61. Requisito funcional crear usuarios

RF17

Eliminar usuarios

Descripcin

Los usuarios registrados podrn ser eliminados.

Entradas

No aplica.

Salidas

Mensaje de confirmacin del usuario eliminado.

Precondiciones

El usuario debe de estar creado en base de datos.

Postcondiciones

El usuario ser eliminado de base de datos.

Prioridad

Media

Rol

Usuarios con permisos.


Tabla 62. Requisito funcional eliminar usuarios

157

10.2 Requisitos no funcionales


En este apartado se agregan los requisitos no funcionales segn el
estndar IEE830. Los requisitos no funcionales describen las caractersticas del
funcionamiento de la aplicacin sin meterse en las funciones que debe de realizar,
ya que estas son los requisitos funcionales descritos en el punto anterior.

Los requisitos no funcionales pueden darse en muchas caractersticas de la


aplicacin, como por ejemplo las siguientes:

Rendimiento
Disponibilidad
Accesibilidad
Usabilidad
Estabilidad
Portabilidad
Costo
Operatividad
Interoperabilidad
Escalabilidad
Concurrencia
Interfaz
Seguridad
Etc.
Este tipo de requisitos tambin son llamados atributos de calidad y aunque
el cliente no suela incidir en ellos ya que se centrar ms en el funcionamiento
requerido, sern importante tenerlos en cuenta para su satisfaccin final. Se pone
el foco en los ms importantes para el cliente como la usabilidad, accesibilidad y la
escalabilidad.

158

10.2.1 Interfaz y usabilidad

RNF - 01

Interfaz intuitiva

Descripcin

Tanto el men como lo los datos mostrados deben de ser


simples y fcil de entender. Se hace hincapi en que la
interfaz de la aplicacin sea bastante amigable.

Prioridad

Media
Tabla 63. Requisito no funcional. Interfaz intuitiva

RNF - 02

Fcil de usar

Descripcin

La aplicacin debe de estar construida de forma que la


navegacin por ella sea fcil e intuitiva, de manera que
alguien con poca experiencia sepa utilizarla sin ningn tipo
de formacin previa.

Prioridad

Alta
Tabla 64 .Requisito no funcional. Fcil de usar

10.2.2 Interfaz y usabilidad

RNF - 03

Fcil acceso

Descripcin

La aplicacin deber de estar centralizada en un servidor


para poder acceder a ella fcilmente desde cualquier
equipo de la red interna, con visin de ampliar el negocio
en un futuro.

Prioridad

Alta
Tabla 65. Requisito no funcional. Fcil acceso

159

10.3 Manual de usuario


Para acceder a la aplicacin GestMarket se debe de insertar la siguiente
URL en un navegador web:

http://(IP DE LA EMPRESA)/WEB_GEST/login.html

Una vez cargada la aplicacin se ver la siguiente pantalla, desde la


cual se podr acceder al contenido si se est previamente registrado.

Ilustracin 72. Captura acceso

10.3.1 Login
Si se accede a la aplicacin se podr ver en primer lugar una pantalla
desde la cual se puede hacer login, para ello se deber estar previamente
registrado. Se tiene que insertar el nombre de usuario y la correspondiente
contrasea en las casillas habilitadas para ello, una vez hecho esto hay que
pulsar el botn Validar.

160

Ilustracin 73. Captura login

Depende del ROL que tenga asociado el usuario podr visualizar


ciertas partes del men. Los tipos de roles son:

Administrador: puede acceder a todo el contenido de la


aplicacin.

Ilustracin 74. Captura login administrador

Empleado: solo tiene acceso a la gestin de venta.

Ilustracin 75. Captura login empleado

161

Para cerrar sesin se pulsar en el apartado del men Cerrar sesin.


De esta manera habr que hacer login de nuevo para acceder a la aplicacin.

Ilustracin 76. Captura cerrar sesin

10.3.2 Realizar venta


Para poder realizar la venta de un producto habr que acceder al
apartado Tienda del men que estar disponible para ambos roles, en el cual
se pueden visualizar los productos disponibles en el catlogo de venta.

Ilustracin 77. Captura caja

Al seleccionar cualquiera de los productos se aadir a la cesta de


compra del usuario. En la cesta de usuario se puede visualizar los productos
seleccionados para su venta con el precio total de todas las unidades de cada

162

producto adems del precio total de la compra. Un producto aadido a la cesta


de compra podr ser eliminado por unidades pinchando el icono

Ilustracin 78. Captura compra

Los productos podrn ser filtrados segn su tipo a travs del


desplegable Filtrar por tipo para facilitar su bsqueda, al seleccionar un tipo
automticamente se mostrarn nicamente los productos de este tipo.

Ilustracin 79. Captura filtro tipo

Una vez terminada la venta se podr finalizar en el botn Finalizar


Venta para acceder a una ventana de confirmacin. En caso de querer
eliminar la venta se pulsar el botn Cancelar venta o Volver en la pantalla
de confirmacin.

163

Ilustracin 80. Captura finalizar compra

Si se confirma se realizar la venta, teniendo la opcin de generar un


ticket en caso de que el cliente lo solicite.

Ilustracin 81. Captura compra finalizada

Ilustracin 82. Captura ticket

164

10.3.3 Gestionar productos


Desde el apartado del men Gestionar productos se puede
aadir/editar/eliminar un producto.

Al acceder a este apartado se ve un listado con los productos creados


de forma paginada, pudiendo visualizar un total de cinco productos por pgina.
Para una bsqueda ms fcil se puede filtrar por tipo de producto desde el
desplegable disponible en la parte superior de la pantalla.

Ilustracin 83. Captura gestionar productos

10.3.3.1 Crear producto


Para crear un nuevo producto hay que pulsar en el botn Crear
Producto. Una vez que se accede a la pantalla de creacin del producto se
deben rellenar los campos con los siguientes datos:

Nombre: nombre del producto

Tipo: tipo de producto

Mnimo: cantidad mnima que se quiere tener en stock de ese


producto.

Imagen: imagen que se visualiza en el apartado de Tienda para


seleccionar el producto.

165

En caso de querer aadir un nuevo tipo al desplegable se podr realizar


desde el botn Nuevo Tipo disponible en la parte inferior de la pantalla. Para
aadir este solo habr que rellenar el campo Nombre y pulsar el botn Guardar.

Ilustracin 84. Captura crear tipo

Automticamente se aadir a los desplegables de Tipo de producto,


pudiendo ser seleccionado al crear el producto.

Ilustracin 85. Captura crear producto

Una vez que se han rellenado los campos se pulsar el botn Guardar
para insertar el producto.

166

Ilustracin 86. Captura producto creado

10.3.3.2 Editar producto


Para editar un producto creado se pulsar el icono

disponible en la

columna Opciones del listado de productos. Una vez pulsado el botn se accede
a la ventana de detalle, donde se puede visualizar los datos actuales asociados al
producto, pudiendo editar cualquiera de estos campos y guardar los cambios
desde el botn Guardar.

Ilustracin 87. Captura editar producto

10.3.3.2 Eliminar producto


Para eliminar un producto se pulsar el icono
Opciones del listado de productos.

167

disponible en la columna

Ilustracin 88. Captura producto eliminado

10.3.4 Gestionar pedidos


Desde la seccin del men Gestionar Pedidos se pueden generar los
pedidos de forma automtica al igual que importar los datos de un pedido
recibido.

Ilustracin 89. Captura gestionar pedidos

10.3.4.1 Generar pedido


Pulsando en el icono asociado a Generar pedido se crear un PDF
con el listado de productos a pedir y sus correspondientes unidades para
completar el almacn con el mnimo programado.

168

Ilustracin 90. Captura pedido generado

Ilustracin 91. Ejemplo pedido

169

10.3.4.2 Importar pedido


Pulsando en el icono asociado a Importar pedido se podr seleccionar
un pedido recibido en formato .csv y automticamente todos los productos
recibidos sern cargados en almacn para poder ser vendidos.

Ilustracin 92. Captura pedido importado

10.3.5 Gestionar Almacn


Al acceder al apartado Almacn del men se listan todas las unidades
de los productos disponibles para su venta. Los datos que se pueden apreciar
de cada producto son los siguientes:

Cdigo: identificador nico de la unidad.

Producto: producto al que pertenece.

Tipo: tipo de producto al que pertenece.

Precio: precio de la unidad/caja.

Fecha de caducidad: fecha en la que caduca la unidad. Esta


fecha sale de color rojo en caso de estar caducada.

170

Ilustracin 93. Captura almacn

Los productos caducados debern ser retirados del almacn ya que no


puede realizarse su venta, una vez realizada la retirada se pueden eliminar de
la aplicacin a travs del botn Eliminar caducados.

Ilustracin 94. Captura productos caducados

Para facilitar la bsqueda se filtrar por tipo de producto en el desplegable


que se encuentra en la parte superior, una vez seleccionado un tipo de producto
se habilita un nuevo desplegable con los tipos de productos de ese tipo, por si se
quiere especificar ms aun la bsqueda.

171

Ilustracin 95. Captura filtrar almacn

10.3.5 Stock/Ventas
Al acceder al apartado de Stock/Ventas se puede observar en
primera instancia una grfica la cual muestra la cantidad de unidades
disponibles de cada producto en stock.

Ilustracin 96. Captura grfico stock

En la parte superior de la ventana se puede observar un desplegable con


dos opciones de grficas, se tienen las siguientes opciones:
172

Ventas anuales: configura un grfico de barras con las ventas realizadas a


lo largo de un ao.

Ventas mensuales: configura un grfico circular con las ventas realizadas


a lo largo de un mes.

Para acceder a cualquiera de los dos tipos se pulsa el botn Generar una
vez que se haya seleccionado el grfico.

10.5.5.1 Ventas anuales


Si se accede a este tipo de grfica en primera instancia se pueden observar
todas las unidades vendidas de todos los productos de cada mes.

Ilustracin 97. Captura grfico ventas anuales

Se puede configurar una grfica personalizada adaptada a cualquier dato


que se quiera conocer. Para ello se tiene la posibilidad de filtrar por los siguientes
parmetros:

173

Ao: ao de ventas (ao vigente por defecto)

Tipo: tipo de producto vendido.

Producto: producto vendido.

A partir de estos tres parmetros se puede generar una grfica totalmente


personalizada dependiendo del dato que se quiera obtener. A travs del parmetro
Tipo se puede filtrar por tipo de producto, con lo que se reflejara la venta
mensual de ese tipo de producto a lo largo del ao elegido.

Ilustracin 98. Captura grfico ventas por tipo

En caso de querer un dato ms preciso se puede seleccionar el producto


vendido, por lo que se obtienen las unidades vendidas de ese producto en
concreto en cada mes a lo largo del ao seleccionado.

174

Ilustracin 99. Captura grfico ventas por producto

10.5.5.2 Ventas mensuales


Este tipo de grfica muestra las unidades vendidas en el mes elegido de los
diferentes productos de un tipo de producto. Para configurar este tipo de grfica se
dispone de los siguientes parmetros:

Ao: ao del mes de la venta.

Mes: mes de la venta.

Tipo: tipo de producto del que se quiere visualizar la venta.

Por lo que si se quiere consultar las unidades que fueron vendidas en junio
de cada producto del tipo de producto Fruta, quedar de la siguiente forma:

175

Ilustracin 100. Captura grfica ventas mensuales

10.3.5 Gestionar usuarios


Desde este apartado del men se pueden gestionar los usuarios que tienen
acceso a la aplicacin. Desde aqu se pueden crear y eliminar usuarios.

Ilustracin 101. Captura gestionar usuarios

Para crear un usuario se har pulsando el botn Crear usuario, una vez se
accede a la ventana de alta se insertan los siguientes datos:

176

Usuario: nombre del usuario.

Contrasea: contrasea del usuario.

Rol: tipo de permisos para acceder a la aplicacin.

Ilustracin 102. Captura crear usuario

Tras insertar los datos y pulsar el botn de Guardar el usuario podr hacer
login en la aplicacin y tener acceso a ella, teniendo en cuenta que solo podr
acceder a ciertos apartados del men segn el tipo de rol que tenga asignado.
Para eliminar el usuario se pulsar el icono

177

de la columna Opciones.

Anda mungkin juga menyukai