Documento de diseño web
para
PETSYSTEM
Preparado por Jose Herrera
Basado en Zach Masiello, Ethan Mick, Michael Caputo, Shawn Thompson
Organization: FIPS UNMSM
CONTENIDO
Petsystem..............................................................................................................................................................................1
Historial de revisiones......................................................................................................................................................4
1. Introducción.............................................................................................................................................................5
2. Descripción general del sistema...................................................................................................................................5
2.1 Descripción de alto nivel......................................................................................................................................5
2.2 Pila de tecnología...................................................................................................................................................6
3. Enfoque técnico............................................................................................................................................................8
3.1. Herramientas........................................................................................................................................................8
4. Arquitectura del sistema............................................................................................................................................9
4.1 Arquitectura de alto nivel....................................................................................................................................9
4.2 Despliegue...........................................................................................................................................................10
4.3Diseñodel subseño................................................................................................................................................10
4.4 Casos de uso........................................................................................................................................................11
5. Diagramas de clases...................................................................................................................................................11
5.1. Programar diagramas de subsistemas................................................................................................................11
5.2. Flujo de aplicaciones PetSystem.........................................................................................................................11
5.3. Diagramas de subsistemas de autenticación....................................................................................................12
6. Diagramas de secuencia.............................................................................................................................................14
6.1 iCal........................................................................................................................................................................14
6.2 Iniciar sesión........................................................................................................................................................15
6.3 Horario de la recuperación.................................................................................................................................16
Historial de revisiones
nombre fecha Motivo de los cambios Versión
inicial 10/16/14 Primera versión 1.0
Revisión 1 20/07/21 Diagramas de clases 1.1
actualizados
1. INTRODUCCIÓN
El propósito de este documento es el diseño de un sistema web llamado PetSystem para una veterinaria. Esto incluirá
el mapa de procesos, los procesos para entender la organización, Luego los requerimientos, casos de uso, a partir de
allí la visión de la arquitectura de alto nivel, así como el desglose de los subsistemas internos. Se proporcionarán
diagramas de secuencia y clase UML para mostrar cómo se armará el sistema y cómo fluirán los datos a través del
sistema.
También se describen las tecnologías que se utilizaran a lo largo del proyecto.
Finalmente se proporciona un esquema de la interfaz de usuario y una sección que hace uso de una matriz de
trazabilidad de requisitos, lo que facilitará el seguimiento de las características y diseños del sistema hasta los
requisitos.
1.1 MAPA DE PROCESOS EN LA ORGANIZACIÓN
1.2 PROCESOS
1.3 REQUISITOS
1.4 CASOS DE USO
2. DESCRIPCIÓN GENERAL DEL SISTEMA
2.3 DESCRIPCIÓN DE ALTO NIVEL
Proponemos un sistema en el que el usuario (cliente) se conectara desde su ordenador (de sobremesa, portátil,
teléfono móvil) a un servidor web, el servidor web se conectara a una base de datos.
2.2 TECNOLOGIAS
VISTA
Todas las herramientas y tecnologías utilizadas para representar la vista para el lado cliente de PetSystem
Páginas JSP Java Server. Abstracción de alto nivel de servlets java que se pueden almacenar en caché, cambiary
renderizar en tiempo de ejecución.
JQuery Una biblioteca javascript que permite una manipulación más fácil del objeto Document
Modelo, llamadas AJAX más sencillas y animaciones.
Bootstrap Una biblioteca CSS que permite plantillas fáciles de sitios web e incluye capacidad de respuesta
incorporada.
ACCIONES
Todas las herramientas y tecnologías que manejan la comunicación entre el modelo y las capas de vista.
Struts 2 Un framework MVC que permite la creación simple de aplicaciones web de grado empresarial. El elemento
"controlador" en Struts 2 es una acción, una clase lista para usar que se puede utilizar para enviar información a la
vista que se va a representar.
MODELO
Todas las herramientas y tecnologías que se utilizan para almacenar datos necesitaned por PetSystem
para operar.
POJO Plain Old Java Object. PetSystem almacena todos sus datos (información del curso, información del examen,
datos de usuario) como objetos java que pueden ser fácilmente pasados y manipulados por la capa Actions.
SERVICIOS A LAS EMPRESAS / LIBRARIES
Todas las aplicaciones y bibliotecas externas que utiliza PetSystem.
iCal4j Una biblioteca java que transforma objetos java en formato iCal, ypuede crear un archivo iCal. googleapi la
API personalizada de Google que maneja la integración con cualquiera de sus servicios.
PetSystem se basa en esta biblioteca para cargar automáticamente la información de la clase to google calendar de
un estudiante.
SisGateway Web Services La API que PetSystem utiliza para acceder a toda la información del curso relacionada con
una cuenta de alumnos.
Mapa interactivo de RIT La API de RIT que permite mostrar información en Google Maps con una
superposición sobre RIT. PetSystem utiliza esta información para mostrar la ubicación de las clases, así como para
mostrar información sobre varios edificios.
SERVIDOR
Todas las herramientas y tecnologías que están instaladas en los servidores que ejecutan PetSystem
Apache Tomcat El servidor web que se utiliza para ejecutar la aplicación PetSystem.
Linux El sistema operativo del servidor en el que se hospeda PetSystem.
ANT Una biblioteca Java utilizada para facilitar el proceso de compilación y despliegue. Crea archivos war desde
la aplicación struts .
3. ENFOQUE TÉCNICO
3.1. HERRAMIENTAS
Hay una serie de herramientas y tecnologías que este proyecto utilizará para el desarrollo.
● Lado del servidor
一 Entorno Java 1.7.0_40
○ Apache Struts 2.3.15.2
○ Apache ANT
○ Eclipse Kepler 4.3 IDE
○ Repositorio Git (en Github)
● Lado del cliente
一 Jquery 2.0.3
○ Bootstrap 3
Hemos decidido utilizar el marco Struts 2 para nuestro desarrollo por una serie de razones. Struts 2 es la
versión más actualizada (estable) del framework Struts actualmente lanzado por Apache (actualizadoa partir de
092113). Esto significa que los problemas derivados del propio marco deben ser mínimos. Struts es también
una de las tecnologías aprobadas que se le dan al equipo de estudiantes, ya que actualmente ya está
soportado por ITS en el proyecto Team Builder. El proyecto Team Builder ya ha resuelto el problema de la
autenticación Shibbeloth en el framework Struts 2, lo que permitirá al equipo de SIS.io reutilizar el código
acortando la programación esperada y evitando desafíos imprevistos causados por la autenticación Shibbeloth
con nuevas tecnologías.
Struts 2 también proporciona un paradigma ModelViewController a las aplicaciones desarrolladas en él. Esto
permitirá al equipo de SIS.io crear una aplicación limpia,reutilizable y fácilmente extensible dentro de los límites
de la programación.
Apache Ant se utilizará en la creación de . compilaciones de archivos war para desarrollo, pruebasy producción.
Ant es una de las bibliotecas aprobadas por ITS para crear compilaciones java para el despliegue, además de ser
la biblioteca utilizada por la aplicación Team Builder. SIS.io será capaz de utilizar team builders ant scripts
como ejemplos a la hora de construir los nuestros propios, haciendo que el proceso en su conjunto sea más fácil.
El desarrollo de PetSystem se llevará a cabo en cada computadora personal propia de los estudiantes. Eclipse Kepler
4.3 se utilizará como entorno de desarrollo integrado. Eclipse fue elegido porque tiene plugins que permitirán una fácil
integración tanto para el framework Struts como para Apache Ant para ayudar en los procesos de desarrollo e
implementación.
SIS.io usará un repositorio git para store nuestro código. Se almacenará una sucursal maestra en la cuenta
proporcionada por RIT ITS, y cada desarrollador SIS.io mantendrá su propia copia local y sucursales de
características.
Para renderizar e interactuar con el lado del cliente, PetSystem utilizará JQuery y normalizará.css. JQuery permitirá
la manipulación de datos y elementos de la interfaz de usuario de forma fácil y eficiente en el lado del cliente.
Normalize.css se utilizará para asegurarse de que PetSystem tiene coherencia entre navegadores cuando se
representa la interfaz de usuario.
4. ARQUITECTURA DEL SISTEMA
4.1 ARQUITECTURA DE ALTO NIVEL
La aplicación PetSystem interactuará con varios componentes principales. Estos componentes serán el sistema de
autenticación Shibbeloth (utilizado para autenticar y autorizar a un usuario antes de intentar descargar un calendario),
la API de puerta de enlace sis (utilizada para recuperar todos los datos de calendario para un usuario determinado) y la
API de mapa interactivo de RIT (utilizada para generar una URL en la que se puede hacer clic para mostrar un edificio
específico en el campus de RIT). La aplicación también interactuará con la API calendar de Google para permitir a los
estudiantes cargar automáticamente su horario de clases en su calendario de Google.
4.2 DESPLIEGUE
La implementación del proyecto PetSystem seguirá el precedente establecido por el proyecto Team Builder. Los
archivos War se construirán utilizando scripts ANT para que el despliegue en diferentes entornos sea lo más sencillo
posible.
Para implementar wiithout SVN
1. Ejecute el script de compilación ant Esperemos que no tenga problemas con este paso
2. scp el archivo. Será dist/PetSystem.war para <nombre deusuario>@PetSystemdev.rit.edu:~/
3. ssh en <nombre deusuario>@PetSystemdev.rit.edu
Ejecute estos comandos:
4. sudo su webapps
5. cp /home/<nombre de usuario>/PetSystem.war ~/staging/PetSystem.war
6. bin/cluster/chgMgmt/deployPetSystem
Para implementar wiith SVN
1. Ejecutar el script ant build
2. copie el archivo dist/PetSystem.war en nuestro svn en el tronco/dev/release/carpeta
3. Utilice el comando svn ci m "<CHECKIN MESSAGE>"
3. ssh en <nombre deusuario>@PetSystemdev.rit.edu
Ejecute estos commands:
4. sudo su webapps
5. bin/cluster/chgMgmt/getLiberadoPetSystem
6. bin/cluster/chgMgmt/implementarPetSystem
los registros están en: ~/instances/PetSystemCluster/node1818/logs/catalina.out
Éste es el comando usado para ver los registros:
tail f n 100 ~/instances/PetSystemCluster/node1818/logs/catalina.out
5. DIAGRAMAS DE CLASES
5.1. PROGRAMAR DIAGRAMAS DE SUBSISTEMAS
Diagrama de clases para el subsistema de programación principal. Este es el sistema responsable de recuperar
información de clase y mapa y manipular esos datos a algo utilizable por el usuario.
5.2. FLUJO DE APLICACIONES PETSYSTEM
Este diagrama muestra el flujo básico de eventos dentro de la aplicación PetSystem. Tenga en cuenta que un
usuario entrará inicialmente desde el subsistema de autenticación, alcanzando el índice.jsp una vez que se
autentiquen correctamente.
5.3. DIAGRAMAS DE SUBSISTEMAS DE AUTENTICACIÓN
Diagrama de clases inicial del subsistema de autenticación. Esto se basa en el sistema de autenticación puesto
en marcha y utilizado actualmente por el proyecto TeamBuilder.
6. DIAGRAMAS DE SECUENCIA
6.1 ICAL
6.2 INICIAR SESIÓN
6.3 HORARIO DE LA RECUPERACIÓN