Capítulo 1: Descripción del proyecto
1.6 Aspectos relevantes del desarrollo
Para el desarrollo del sistema de publicidad se utilizó la arquitectura de tres capas, que consta de la capa de presentación, la de lógica de negocio, la de acceso a base de datos. Según Satpute R. et al. (2015) esta arquitectura permite que los sistemas sean escalables, flexibles y reusables, gracias a su separación entre capas se puede realizar cambios sin afectar a las demás capas, esta independencia reduce el consumo de recursos y tiempo, además reduce la complejidad para la implementación del cambio. Se eligió la arquitectura de tres capas porque se planificó que el sistema de promociones en el futuro se expanda y esta arquitectura permite realizar la expansión del sistema de forma más sencilla y rápida, por su modularidad, su capacidad de agregación de capas y su reutilización de código.
En primer lugar, se tiene la capa de presentación que es la que interactúa directamente con el usuario final en el sistema de promociones, esta capa contiene la aplicación del teléfono, con sistema operativo “IOS” y la aplicación del Apple
Watch. Ambos están encargados de la administración de las acciones del usuario en las interfaces tanto en el teléfono como en el reloj inteligente.
En segundo lugar, está la capa de lógica de negocio, en ella se encuentra un único servidor el cual contiene el servicio web “SOAP”, que es el encargado de procesar todas las solicitudes y responderlas. En esta capa también se encuentra el bean de autenticación, este se encarga de verificar que los mensajes enviados al servicio web son confiables.
Por último está la capa de Acceso a la base de datos, esta capa contiene el módulo de acceso a datos, cuya función es administrar los datos que se encuentran en la base de datos, que en el caso del sistema de promociones está basado en el gestor de base de datos PostgreSQL. Esta capa también tiene el módulo hibernate
que es una herramienta de mapeo objeto-relacional para java, como su nombre lo indica, hibernate se encarga de relacionar las tablas de la base de datos con los modelos en java correspondientes.
Figura 2: Diagrama de capas del sistema de promociones. Fuente: Elaboración propia
La fase de extracción de requisitos de este sistema se realizó mediante una encuesta realizada a posibles usuarios de este sistema, de diferentes edades, gustos y lugares de residencia; en dicha encuesta se les preguntó lo que ellos pensaban sobre el sistema que se estaba pensando realizar, además de las características y las funcionalidades que ellos desearían que tuviera este sistema. Posteriormente aquellas funcionalidades más populares entre los encuestados pasaron a ser requerimientos que se plasmaron en el diseño del software.
Se determinaron también requerimientos no funcionales, conociendo el perfil del usuario y las circunstancias en la que se usará este sistema, estos requerimientos también pasaron a ser elementos importantes al realizar el diseño de este sistema.
El diseño del sistema de publicidad está basado en el modelo 4+1 propuesto por Kruchten (1995), este consta de 4 vistas la vista lógica, física, de desarrollo, de procesos y la vista de escenarios adicional. La vista escenarios es adicional porque las 4 vistas deben estar estrechamente relacionadas con esta vista que se encarga de mostrar los intereses de los stakeholders. Gracias a este modelo se pudo realizar diagramas que muestran los múltiples enfoques del sistema.
Tomando los requerimientos obtenidos se desarrolla la vista de escenario a través del diagrama de casos de uso, este diagrama se realizó primero, ya que los demás diagramas están basados en él. En los casos de uso se determina el actor del sistema que tiene que realizar cada tipo de acción en el software, las funciones que debían ser desarrolladas en el sistema y la manera en que cada caso de uso trabajaría en su entorno siguiendo el flujo del sistema.
Para la vista de desarrollo, se utilizó el diagrama de paquetes que se divide en las tres capas definidas por la arquitectura. Para la vista lógica se realizaron siete diagramas, el diagrama de clases del servicio web, el diagrama de clase de la aplicación y cuatro diagramas de secuencia que representan procesos importantes del sistema. Para la vista de procesos, se realizaron cuatro diagramas de actividades, que al igual que los diagramas de secuencia, representan procesos importantes del sistema. Para finalizar, en la vista física, se utilizó un diagrama de despliegue que muestre los dispositivos físicos del sistema y cómo se relacionan entre ellos.
La codificación de este proyecto fue hecha utilizando los fundamentos de la metodología de desarrollo de software llamada programación extrema. Durante toda la fase de desarrollo de este sistema se usó un repositorio de código en línea donde los miembros del equipo subían el avance que tenían durante un determinado lapso de tiempo, aproximadamente se realizaban dos actualizaciones de código al día. Cada actualización de código debía ser correctamente documentada para poder indicar al resto del equipo las características más importantes sobre el avance del proyecto.
En la fase de documentación se crearon manuales de usuario para la aplicación móvil, para esto se explicaron todas las funcionalidades que fueron implementadas en este sistema y la manera en la que el usuario podría utilizar cada una de estas, además se incluyeron imágenes de las interfaces de usuario para que de esta manera sea más fácil el uso de este software.
En el sistema se realizaron pruebas de validación y de verificación. Las pruebas de verificación fueron clasificadas en tres tipos, pruebas de ejecución, rendimiento y seguridad. Para las pruebas de ejecución se probó el sistema en diferentes escenarios y con diferentes datos para poder determinar que este trabaja de manera efectiva en cualquier circunstancia.
Las pruebas de rendimiento fueron realizadas basándose en el uso de recursos de hardware por parte del sistema para diferentes escenarios. Se probaron
tareas de bajo y alto costo de recursos y se determinó si estas medidas estaban dentro de los parámetros permitidos para garantizar un buen rendimiento por parte de la aplicación.
Las pruebas de seguridad verificaron que se realiza una correcta autenticación de los mensajes enviados entre la aplicación móvil y el servicio web, de esta manera se evitará que se produzcan ataques “Man in the middle”. Este proceso se realizó para poder garantizar que los datos de las transacciones de los usuarios están seguros y que otras personas no podrán acceder a su información.
Para poder hacer pruebas de validación de requerimientos del sistema se realizó una encuesta, la cual fue hecha a los usuarios que probaron el sistema y se preguntó si la aplicación cuenta con todas las funcionalidades necesarias para su fin y cuáles serían las nuevas funciones que a ellos les gustaría que fueran implementadas en el futuro para brindar una mejor experiencia.
En la fase de implementación, se utilizó la herramienta Openshift, que es una plataforma que permite utilizar un servidor compartido de forma gratuita, para el sistema de promociones se utilizó el servidor Tomcat versión 7, y el gestor de base de datos PostgreSQL 9.2. Para realizar la implementación se creó el dominio de la aplicación llamado adsws, el link del servicio web es “http://webws- adsws.rhcloud.com/services”, para poner el servicio web ya desarrollado anteriormente en el servidor de Openshift, se manda los archivos del servicio web al repositorio de la aplicación creada en este servidor, en caso de realizar cambios,
se actualiza nuevamente en el repositorio, se paraliza el servicio, se procesan los cambios y una vez que termina el servicio retoma su funcionamiento.