Este documento presenta un proyecto de desarrollo de una aplicación web para realizar consultas en bases de conocimiento médicas utilizando AJAX y DWR. El proyecto se desarrolló siguiendo SCRUM, incluyó análisis, diseño, implementación, pruebas y documentación. Se creó una versión inicial y otra posterior utilizando DWR que mejoró el rendimiento. El equipo estuvo formado por 8 desarrolladores.
MAYO 1 PROYECTO día de la madre el amor más grande
Presentacion med line ed bennett con ajax y dwr
1. MedLine-Ed
Bennett
con AJAX y DWR
Equipo Alef 2013
Master diseño y desarrollo de aplicaciones web
Itinerario Java
UNED
2. ÍNDICE
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Requisitos previos
Relación con proyectos anteriores
Estudio previo, planificación y presupuesto.
Análisis
Diseño
SCRUM: Reparto de tareas
Implementación. Archivos principales.
Control de errores
Pruebas
Versión con DWR
Manual de usuario
Archivos y configuración
13. Componentes del equipo
3. 1. Requisitos previos
El proyecto se desarrollará utilizando el IDE Eclipse. Se
utilizará la plataforma de programación Java EE y se
creará utilizando como base un Dynamic Web Project.
Para su funcionamiento es necesario tener instalado un
servidor Tomcat y un gestor de base de datos MySQL.
La base teórica se extrae del libro “Ajax en J2EE” de
Antonio J. Martín Sierra, con la ayuda de diferentes
foros como “javahispano”,“stackoverflow” o
“adictosaltrabajo” y en general con diferente
informacíon de proyectos similares publicados en la
Web.
volver a INDICE
4. 2. Relación con proyectos anteriores
Este nuevo proyecto, es un proyecto de consulta de
las bases de conocimiento MedLinePlus y la Lista Ed
Bennett utilizando la técnica AJAX para acceder a sus
datos a través de un web service creado utilizando la
arquitectura RESTful.
El procedimiento de consulta se desarrolló en el
proyecto MedLineBennett y el web service fue
desarrollado en el proyecto MedLineBennettWS.
Se ha necesitado la creación de un nuevo servicio web
dentro de MedLineBennettWS y alguna pequeña
modificación en las consultas realizadas a través de
MedLineBennett.
volver a INDICE
5. 3. Estudio previo,planificación y
presupuesto.
Se realiza un estudio previo de la especificación del
proyecto y se define el objetivo final en contacto con
el Product Owner.
Tras el estudio previo y una vez definidos los
objetivos se crea un diagrama con la planificación
general del proyecto.
Se presenta un presupuesto inicial resumido para
obtener una primera valoración, después de las
discusiones con el Product Owner se llega a un
acuerdo y se presenta el presupuesto final.
volver a INDICE
6. 4. Análisis
Partiendo del estudio previo se especifican las
funcionalidades que debe realizar el proyecto.
Estas funcionalidades se transforman en una
especificación de requisitos.
Los requisitos se reparten en tres áreas
principales de desarrollo:
1. crear un cliente REST sobre XHTML
2. añadir un servicio más al servicio REST
3. crear funcionalidad AJAX sobre el cliente
volver a INDICE
7. 5. Diseño
Se crea un mockup, basado en el cliente RESTful
del proyecto MedLineBennettWS, para el diseño
visual de la página principal del proyecto.
Dado que solo existe un tipo de usuario y una
página, se omite el diseño navegacional y se
realiza un caso de uso típico.
Este caso de uso típico se relaciona
directamente con la implementación en el
diseño funcional.
volver a INDICE
8. 6. SCRUM: Reparto de tareas
Para la realización del proyecto se utiliza la
metodología de desarrollo SCRUM.
Adaptando esta metodología a un equipo
virtual, y utilizando TRAC como herramienta de
gestión del desarrollo de software, se crean
tickets que contienen las tareas a realizar. Estos
tickets se reparten entre los miembros del
equipo.
Se establecen timelines que marcan el final de
cada sprint.
volver a INDICE
9. 7. Implementación. Archivos
principales.
7.1 index.jsp
Es la página principal y única que contiene el
formulario de consulta y la tabla donde se
muestran los resultados.
Se utiliza css para mejorar el diseño y la
interacción con JavaScript.
Hace uso de funciones JavaScript para
mejorar su diseño e implementar la
funcionalidad de los diferentes componentes
que la conforman.
volver a INDICE
10. 7. Implementación. Archivos
principales.
7.2 medben.js
Almacena las diferentes funciones JavaScript
necesarias para la funcionalidad del proyecto.
En todas las funciones hay una breve
descripción
de
la
funcionalidad
que
implementan.
Se puede hacer un seguimiento del proceso
de ejecución en el diagrama de flujo de
datos, en el que se detalla la función que
corresponde a cada proceso de la búsqueda.
volver a INDICE
11. 8. Control de errores
En el lado del usuario se muestra un mensaje en
pantalla si se ha producido algún error durante la
consulta.
Se introduce un campo de texto bajo la tabla principal
que informa al usuario del número de resultados o si
su consulta no ha devuelto ninguno.
En el lado del servidor, se crea un archivo application.
log que se encuentra en la carpeta de despliegue del
servidor en el que se vuelca información sobre la
actividad de la aplicación así como los posibles errores
que hayan ocurrido.
volver a INDICE
12. 9. Pruebas
9.1 Pruebas de unidad
Se realizan pruebas de unidad para
comprobar que las funciones principales
cumplen con la funcionalidad requerida.
Se realizan en primer lugar utilizando solo
JavaScript y posteriormente se mejoran las
pruebas utilizando la librería QUnit para
JavaScript.
Se crean dos páginas para realizar las
pruebas:qTests.html y unitTests.html
volver a INDICE
13. 9. Pruebas
9.2 Pruebas de integración
Se realizan pruebas de integración para
comprobar la funcionalidad completa del
programa.
No se realizan pruebas exhaustivas ya que el
servicio web se supone testado en versiones
anteriores.
Se podría considerar una versión Beta, con
posibles fallos pero estable.
Se han realizado dos videos con las pruebas:
video1, video2
volver a INDICE
14. 10. Versión con DWR (1)
A mitad de proyecto el Product Owner solicita una
nueva versión implementada utilizando la librería
DWR.
Se crea un nuevo proyecto con la configuración y
archivos necesarios para implementar un proyecto
DWR.
En el lado servidor se crea una nueva clase
Dwrwsrest.java que implementa los métodos de
gestión con el web service y que, gracias a DWR, se
puede utilizar desde el lado cliente.
También se utliliza la clase Search.java, creada
utilizando Jaxb, que parsea directamente la
respuesta.
volver a INDICE
15. 10. Versión con DWR (2)
En el lado cliente se modifican las funciones
JavaScript, sustituyendo todas aquellas funciones
que tienen su equivalente en la librería utils.js de
DWR, esto mejora significativamente la legibilidad
y reduce el código.
Finalmente se realiza el mismo test de integralidad
del proyecto original, comprobando su correcto
funcionamiento.
Según se acordó con el Product Owner no se crea
documentación propia de este proyecto, se
entiende que es una posible versión del proyecto
original.
volver a INDICE
16. 11. Manual de usuario.
Ya que la aplicación no presenta una gran
complejidad de uso para el usuario y dado
que realmente lo que se realiza es una
adaptación del cliente del anterior proyecto,
se ha confeccionado un manual de usuario en
video, mostrando el funcionamiento de la
aplicación.
Para el funcionamiento de la aplicación es
necesario tener instalado un servidor como
Tomcat y MySQL.
volver a INDICE
17. 12. Archivos y configuración
● MedBenAjax
● MedBenAjaxDWR
● Por defecto el puerto utilizado por el servidor es el 8080, se
puede modificar en el método localizaPalabra() del archivo
medben.js en MedBenAjax y en el método busquedaRest() de
la clase Dwrwsrest en MedBenAjaxDWR.
● Para poder probar la funcionalidad en Bennett es necesario
tener creada la base de datos medlinebennett con datos
cargados en la tabla bennett. Este archivo (.sql) genera la
base de datos y carga datos directamente los datos en la
tabla bennett.
● El usuario, la password y el puerto MySQL se encuentran en
el archivo context.xml de MedBenAjax
volver a INDICE
18. 10. Componentes del equipo Alef
Alberto Delso
David Martín
Diego Fernández
Francisco García
Gonzalo García
Juan Sánchez
Reyes Badillo
Rubén Rodríguez
volver a INDICE