Anda di halaman 1dari 20

TFC J2EE

Aplicacin Web para la gestin de


facturacin de
una empresa de cerrajera
Sara Gutirrez Melero
ITIG
Junio de 2012
Consultor: Jose Juan Rodriguez

ndice
1. Introduccin
Objetivos
lani!icacin
2. "n#lisis
Re$uisitos !uncionales
Re$uisitos no !uncionales
"ctores
%. &ise'o
(scenario
)*C
"r$uitectura en ca+as de la a+licacin
)odelo Relacional
,. I-+le-entacin
ruebas
Con!iguracin e instalacin
.. Conclusiones

1. Introduccin - Objetivos
Crear una aplicacin para una empresa de cerrajera que permita
gestionar facturas, presupuestos, clientes y usuarios del sistema.
Acceder a travs de una red como Internet y desde cualquier
navegador web.
ermitir el acceso a los usuarios,
previamente autentificados, a la
creacin y actuali!acin de datos de la
empresa.
ermitir a uno o m"s administradores
introducir, modificar o des#abilitar usuarios
del sistema, as como actuali!ar los datos
relativos a la misma empresa.

1. Introduccin - Planificacin
AC $ % $&'()'$*
+ocumento de lanificacin del royecto
AC * % $,'(&'$*
+ocumento de An"lisis funcional y
+ise-o tcnico del royecto
AC ) % (&'(.'$*
+ocumento de +esarrollo e implantacin
del royecto
AC & % $,'(.'$*
/emoria 0inal del royecto
resentacin 1irtual
roducto final

2. n!lisis " #e$uisitos funcionales
2a aplicacin est" compuesta por & subsistemas principales3
Subsistema de conein
4s el encargado de gestionar los accesos a la aplicacin as como las sesiones de
usuario.
5n requisito imprescindible para acceder a la aplicacin es autentificar6se previa6
mente con un nombre de usuario y contrase-a.
47iste la opcin, para los usuarios, de cambiar sus contrase-as antes de iniciar sesin.

2. n!lisis " #e$uisitos funcionales
Subsistema de gestin de empresa
8ste se centra en los administradores de sta que son los usuarios potenciales de la
aplicacin.
/ediante una interfa! amigable se podr" consultar y modificar los datos de empresa.
47istir" tambin una relacin de usuarios con la cual se podr"n crear, buscar 9por :I0;,
consultar, modificar, activar e inactivar. <i un usuario se inactiva perder" todos los
permisos de la aplicacin.

2. n!lisis " #e$uisitos funcionales
Subsistema de gestin de obras
ermite la gestin de las obras de los clientes los cuales #an contratado los servicios de
la empresa.
/ediante una interfa! amigable se puede crear, consultar, modificar, activar e inactivar
cualquier obra.

2. n!lisis " #e$uisitos funcionales
Subsistema de gestin de clientes
4s el subsistema principal de la aplicacin. /ediante una interfa! amigable se podr"
crear, consultar, buscar 9por :I0;, modificar, activar e inactivar clientes. Al mismo
tiempo se permitir" visuali!ar las facturas o presupuestos asociados al cliente.
4stos tambin se podr"n crear, consultar, modificar, cambiar estado y generar en +0.
+e cada presupuesto se podr" generar autom"ticamente una factura relativa a los
trabajos reali!ados a un cliente, la cual ir" asociada a este presupuesto.

2. n!lisis - ctores
4n cualquier caso para acceder a la aplicacin se necesita una
autenticacin previa.
4n la aplicacin intervienen dos tipos de actores3
Administradores
=ienen permiso absoluto sobre cualquier funcin de la
aplicacin.
Empleados
=ienen acceso a la gestin de clientes y obras de la
aplicacin.

2. n!lisis " #e$uisitos no funcionales
Calidad
ara el correcto funcionamiento de la aplicacin es necesario que sta se mueva en unos
m"rgenes de calidad adecuados, tales como integridad y seguridad, fle7ibilidad y
portabilidad e interoperabilidad.
Carga
2ograr unos par"metros de carga ra!onables. odr"n conectarse un mnimo de dos
usuarios a la ve! y se define un tiempo m"7imo de $( segundos desde que se #ace una
peticin #asta que se recibe una p"gina de respuesta.
Coste
>eali!ar una implementacin con tecnologas de software libre para lograr un bajo coste
de la aplicacin.
!e"uerimientos tecnolgicos
+ebe ser accesible desde cualquier sistema operativo y navegador web con resolucin
igual o superior a ,((7.(( p7eles.
#nterfaces
antallas intuitivas y sencillas de usar. Informacin clara y ordenada. 4n resumen,
las interfaces ser"n amigables y simples.

%. &ise'o - (scenario
Ja$a SE %e$elopment &it 'J%&(
<oftware que requieren las m"quinas donde se desarrolle o se compile cdigo en ?ava.
4n l se incluyen libreras b"sicas de ?ava y la m"quina virtual.
Apac)e Tomcat
4ncargado de tratar las peticiones del cliente y generar respuestas en
consecuencia. <ervidor libre, de cdigo abierto e implementado en ?ava, lo que permite
que pueda funcionar en cualquier sistema operativo que disponga de m"quina virtual ?ava.
*ostgreS+, - pgAdmin###
ara la creacin y administracin de la base de datos, se utili!a la #erramienta
propia del ostgre<@2, como es pgAdminIII. ostgre<@2 ofrece una integridad de
datos m"s fuerte que /y<@2.
Eclipse
lataforma con mdulos base preparados para desarrollar en ?ava y otros e7tra
encaminados a aplicaciones Aeb. <u uso es muy recomendable y adem"s es una
#erramienta libre lo que no a-ade coste alguno al proyecto.

%. &ise'o - M)*
5na interesante forma de trabajar es adaptar la aplicacin a un patrn que se
adapte a nuestras necesidades. 4l patrn modelo6vista6controlador empleado en
el proyecto es una buena manera de modular la aplicacin, separando los datos
de la aplicacin, de la interfa! del usuario y de la lgica de negocio.
.odelo/ <e encarga de manipular
los datos del programa de forma
co#erente y ofrecindolos al programa
a medida que los va requiriendo. :o
debe tener conocimiento ninguna ni del
controlador ni de la vista.
0ista/ >epresentacin visual de los
datos. Capa mediante el usuario interac6
tuar" con la aplicacin.
Controlador/ roporciona significado a las rdenes del usuario y crea la relacin entre
modelo y vista. <e encarga de decidir cuando se debe modificar la base de datos y cuando
se deben obtener datos de ella para que los disponga la vista. Adem"s se encarga de la
lgica de redireccionamiento de pantallas.

%. &ise'o " r$uitectura en ca+as de
la a+licacin
Capa $ista Capa controlador Capa modelo
JS*
Tiles
CSS
Ja$aScript
j+uer-
Struts 2
Spring
1ibernate
4l desarrollo de la aplicacin Best+ifran se #a llevado a cabo siguiendo el patrn
/odelo61ista6Controlador 9/1C; definido anteriormente.
4n cada una de las capas se #a #ec#o uso de una o varias tecnologas de ?*44 tal
y como se puede observar en la siguiente imagen3

%. &ise'o " r$uitectura en ca+as de
la a+licacin
CA*A .2%E,2
Spring
<pring cuenta con su propio marco de trabajo as como mCltiples usos m"s para
aplicaciones Aeb /1C, pero no es esa la parte que #emos necesitado para este
proyecto, sino que nos #emos centrado en la parte de <pring que permite la inyeccin
de dependencias. /uc#os desarrolladores de <truts * consideran este servicio de
gestin de recursos como parte esencial de una aplicacin Aeb bien construida.
1ibernate
:os permite convertir objetos en registros o viceversa sin necesidad de implementar
complejas estructuras.
ara reali!ar este proceso de mapeo se #a #ec#o uso de anotaciones directamente
en las clases ?ava, aunque tambin e7iste otra manera configurando unos arc#ivos que
estable!can la relacin donde cada fic#ero simular" una tabla de la base de datos.
Dibernate tambin se encarga de llevar a cabo el patrn +AE, que contiene un seguido
de clases +AE que ser"n las encargadas de reali!ar los accesos a base de datos.

%. &ise'o " r$uitectura en ca+as de
la a+licacin
CA*A 0#STA
Ja$a Ser$er *ages 'JS*(
or defecto, el marco de trabajo utili!a un tipo de resultados que funciona con p"ginas
?< para mostrar las p"ginas de respuesta.
4l lenguaje D=/2 es el encargado de tratar los temas m"s visuales de la p"gina junto
con una AI de etiquetas 9taglibs; que facilita <truts * y que potencian la funcionalidad
para crear de forma din"mica p"ginas Aeb robustas.
Tiles
Derramienta que nos permite definir plantillas que se adaptan a nuestras necesidades
para la distribucin de contenido. Cada plantilla tendr" diversas secciones y cada
seccin tendr" asignada una jsp.
Cascading St-le S)eets 'CSS(
<e #ace uso de C<< e7ternas que permiten separar la estructura de una p"gina web de
su presentacin. 8stas a su ve! est"n validadas por A)C.
Ja$aScript 3 j+uer-
A-ade peque-as funcionalidades a nivel de cliente 9e7plorador;.
?ava<cript incrementa la funcionalidad a las etiquetas de <truts * y aporta eficiencia
?query, en nuestro caso, facilita la forma de validar un formulario sin tener la necesidad
de recargar el documento, por lo que la aplicacin consume menos recursos.

%. &ise'o " r$uitectura en ca+as de
la a+licacin
CA*A C24T!2,A%2!
Apac)e Struts 2
4l cora!n de <truts * es un filtro, conocido como el <trutsrepareAnd47ecute0ilter.
4ste es el punto de entrada del 0rameworF. A partir de l se lan!a la ejecucin de todas
las peticiones que lo involucran.
<truts * procesa las peticiones usando tres elementos principales3
#nterceptores
>eali!an tareas antes y despus de la ejecucin de un Action y tambin pueden
evitar que un Action se ejecute.
Acciones
Clases encargadas de reali!ar la lgica de negocio para servir una peticin.
4l Cnico requisito para que una clase sea considerada un Action es que debe tener
un mtodo que no reciba argumentos que regrese ya sea un String o un objeto de
tipo Result. Aunque, tambin pueden implementar la interface Gcom.opensymphony.
xwork2.ActionH o e7tender una clase base que proporciona <truts *,
Gcom.opensymphony.xwork2.ActionSupportH 9lo cual nos #ace m"s sencilla su
creacin y manejo;.
!esultados
I, despus que un Action #a sido procesado se debe enviar la respuesta de regreso
al usuario, esto se reali!a usando results.

%. &ise'o " Modelo #elacional

,. I-+le-entacin
Algunas de las clases implementadas
,ogin
4ncargada de gestionar los accesos al sistema y los inicios de sesin del usuario.
*ass5ord
4ncargada de gestionar los cambios de contrase-as.
,ogout
4ncargada de gestionar las salidas de la aplicacin as como los cierres de sesin del
usuario.
6suarios7 Clientes7 Facturas7 *resupuestos
4ncargadas de gestionar los listados, las consultas y los cambios de estado. ara las
facturas y presupuestos tambin se encargan de gestionar las modificaciones en los
datos.
Crear6suario7 CrearCliente7 CrearFactura7 Crear*resupuesto
4ncargadas de gestionar las creaciones de nuevos objetos.
8uardar6suario7 8uardarCliente
4ncargadas de gestionar las modificaciones en los datos.

,. I-+le-entacin
*!6E9AS
<e #an reali!ado pruebas de dise-o, navegabilidad, comprobacin de enlaces rotos y
accesibilidad.
1alidacin C<< a travs del validador A)C con la versin ).
Inserciones de prueba contra la Jase de +atos.
C24F#86!AC#:4 E #4STA,AC#:4
*aso ;/ Importar a nuestro I+4 el arc#ivo gestdifran.war.
*aso 2/ /odificar el arc#ivo Gjdbc.properties del .war con el KusernameK y KpasswordK
correspondiente.
*aso </ Crear la J+ GgestdifranH en ostgre<@2 ejecutando el script G+/2Lgestdifran.sqlH
que se encuentra comprimido en el arc#ivo sgutierre!melLproducto.!ip.
*aso =/ 4jecutar las instrucciones de insercin para la J+ ejecutando esta ve! el script
G++2Lgestdifran.sqlH para reali!ar una prueba inicial de la aplicacin.
*aso >/ Acceder a la aplicacin con el nombre de usuario GsarajoeH y la contrase-a
G123456H si deseamos tener privilegios de Administrador o con el nombre de usuario
GmanuH y la contrase-a GholamanuH si simplemente queremos permisos de 4mpleado.


.. *onclusiones
2a reali!acin de este =0C #a constituido un gran reto para m. =eniendo en cuenta la
ine7periencia absoluta en la arquitectura ?*44 y el tiempo limitado del que dispona, creo
que el producto final #a sido muy satisfactorio.
=ras investigar y recopilar informacin de las diversas tecnologas que componen ?*44
y comprender que sta ofreca un patrn de dise-o para las aplicaciones Aeb dividido
en tareas, concretamente separando las capas de vista, modelo y controlador, decid
reali!ar la aplicacin con el marco de trabajo <truts * utili!ado para la capa de
controlador, el 0rameworF <pring para la creacin de objetos e inyeccin de dependencias
en la capa modelo junto con Dibernate y la tecnologa ?< para la capa vista por ser simple
y poder utili!ar en ella tanto cdigo D=/2 como las libreras de etiquetas de <truts * 9taglibs;.
De intentado integrar diferentes tecnologas utili!ando de cada una sus puntos fuertes.
or ejemplo, podra #aber utili!ado <truts * en lugar de <pring para la creacin de objetos,
no obstante, <pring es ideal para ello y se integra estupendamente con <truts *.
2a e7periencia obtenida en la reali!acin de este =0C #a sido increble y motivadora #acia
propuestas futuras de proyectos.
4n apenas & meses #e obtenido conocimientos de tecnologas que jam"s #aba utili!ado y
ante todo #e sido capa! de reali!ar un producto final al completo pasando por todas sus
fases.