I
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA
Facultad de Ingenierías y Arquitectura
Carrera de Ingeniería en Tecnologías de la Información
Erick Sánchez
Abril - Agosto 2024
Trabajo final
II
Índice de contenido
Índice de contenido ............................................................................................................................... II
Tarjetas CRC (Clases candidatas).....................................................................................................3
1.1.1 Clase 1: <<Usuario >> ................................................................................ 3
1.1.2 Clase 2: << Método de pago>> .................................................................. 3
1.1.3 Clase N: << Transacción>> ........................................................................ 3
Diagrama de clases ................................................................................................................................4
1.1.4 EXPLICACIÓN DEL DIAGRAMA: Explicación del Diagrama .................... 4
1.1.5 Relaciones................................................................................................... 5
Diagrama de componentes .................................................................................................................6
Diagrama de depliegue ........................................................................................................................7
1.1.6 Relaciones................................................................................................... 8
Arquitectura candidata ..................................................................................................................... 10
1.1.7 Explicación de la Arquitectura Candidata ............................................... 10
[Link] 1. Plataforma de Desarrollo .................................................................................................................... 10
[Link] 2. Seguridad de Datos................................................................................................................................ 10
[Link] 3. Escalabilidad............................................................................................................................................ 10
[Link] 4. Compatibilidad con Dispositivos Móviles ...................................................................................... 10
[Link] 5. Integración con Servicios de Terceros ............................................................................................ 10
[Link] 6. Tiempo de Respuesta ........................................................................................................................... 11
[Link] 7. Monitoreo y Registro de Errores ...................................................................................................... 11
1.1.8 Conclusión ................................................................................................ 11
Referencias ............................................................................................................................................. 11
Evidencia ................................................................................................................................................. 12
Tarjetas CRC (Clases candidatas)
Ubicar todas las clases identificadas en formato CRC
1.1.1 Clase 1: <<Usuario >>
Usuario
RegistrarUsuario Métodos de Pago
AutenticarUsuario Notificaciones
GestionarMetodosPago
1.1.2 Clase 2: << Método de pago>>
Método de pago
Procesar Pagos Usuario
Manejar Autorizaciones Transacción
Captura Fondos y Cancelaciones
1.1.3 Clase N: << Transacción>>
Transacción
RegistrarTransacciones Notificaciones
EnviarNotificaciones Métodos de Pago
GestionarErrores
Diagrama de clases
1.1.4 EXPLICACIÓN DEL DIAGRAMA: Explicación del Diagrama
El diagrama de clases diseñado para el sistema de procesamiento de pagos digitales de
"TechCommerce" incluye las siguientes clases y sus relaciones:
1. Usuario
o Atributos:
nombre: El nombre del usuario.
correoElectronico: El correo electrónico del usuario, utilizado para el
registro y autenticación.
contrasena: La contraseña del usuario, almacenada de forma segura.
o Métodos:
registrarUsuario(): Permite a un nuevo usuario registrarse en el
sistema.
autenticarUsuario(): Permite a un usuario autenticarse en el sistema
utilizando su correo electrónico y contraseña.
gestionarMetodosPago(): Permite a un usuario agregar, eliminar y
actualizar sus métodos de pago.
2. MetodoDePago
o Atributos:
tipo: Tipo de método de pago, como "Tarjeta de Crédito" o "Cuenta
Bancaria".
detalles: Detalles del método de pago, como el número de tarjeta.
o Métodos:
procesarPago(): Procesa un pago utilizando el método de pago.
manejarAutorizaciones(): Maneja la autorización de pagos.
capturaFondosYCancellaciones(): Gestiona la captura de fondos y la
cancelación de transacciones.
3. Transaccion
o Atributos:
monto: El monto de la transacción.
fecha: La fecha de la transacción.
estado: El estado de la transacción, como "Pendiente", "Completada" o
"Cancelada".
o Métodos:
registrarTransaccion(): Registra una nueva transacción en el sistema.
enviarNotificaciones(): Envía notificaciones relacionadas con la
transacción.
`gestionarErrores(): Maneja errores que puedan ocurrir durante el
procesamiento de la transacción.
4. Notificacion
o Atributos:
destinatario: El destinatario de la notificación.
mensaje: El mensaje de la notificación.
o Métodos:
enviarEmail(): Envía un correo electrónico al destinatario.
actualizarEstado(): Actualiza el estado de la notificación.
1.1.5 Relaciones
Usuario tiene una relación uno a muchos con MetodoDePago, indicando que un
usuario puede tener múltiples métodos de pago.
Usuario tiene una relación uno a muchos con Transaccion, indicando que un usuario
puede realizar múltiples transacciones.
Transaccion tiene una relación uno a muchos con Notificacion, lo que significa que
una transacción puede generar múltiples notificaciones.
MetodoDePago tiene una relación uno a muchos con Transaccion, indicando que un
método de pago puede ser utilizado en múltiples transacciones.
Diagrama de componentes
1. EXPLICACIÓN DEL DIAGRAMA: Aplicación Móvil:
o Cliente que permite a los usuarios interactuar con el sistema de procesamiento de pagos. Los usuarios pueden
registrarse, iniciar sesión, y gestionar métodos de pago.
2. API de Procesamiento de Pagos:
o Backend que maneja todas las solicitudes de la aplicación móvil y coordina las operaciones con otros componentes del
sistema.
3. Servicio de Autentificación:
o Maneja el registro y la autenticación de los usuarios, asegurando que solo usuarios autorizados puedan acceder al
sistema.
4. Gestor de Métodos de Pago:
o Gestiona la adición, eliminación y actualización de los métodos de pago de los usuarios.
5. Gestor de Transacciones:
o Maneja el procesamiento de pagos, incluyendo autorización, captura de fondos y cancelación de transacciones.
6. Sistema de Notificaciones:
o Envía notificaciones a los usuarios sobre el estado de sus transacciones, utilizando el Servicio de Correo.
7. Base de Datos:
o Almacena la información de los usuarios, métodos de pago, y transacciones.
8. Servicios de Pago Externos:
o Plataformas externas (como Stripe y PayPal) que facilitan el procesamiento de pagos. El Gestor de Transacciones se
comunica con estos servicios para completar las transacciones.
9. Servicio de Correo:
o Envío de correos electrónicos a los usuarios, manejado por el Sistema de Notificaciones.
Este diagrama de componentes muestra cómo los diferentes módulos del sistema de procesamiento de pagos digitales de
"TechCommerce" interactúan entre sí y con servicios externos para proporcionar una experiencia de usuario fluida y segura.
Diagrama de despliegue
1. EXPLICACIÓN DEL DIAGRAMA: Usuarios
o Representa a los usuarios que interactúan con la aplicación móvil.
2. Cliente
o Aplicación Móvil: Cliente que permite a los usuarios interactuar con el sistema de procesamiento de pagos,
permitiéndoles registrarse, iniciar sesión y gestionar métodos de pago.
3. Servidor de Aplicaciones
o API de Procesamiento de Pagos: Backend que maneja todas las solicitudes de la aplicación móvil y coordina las
operaciones con otros componentes del sistema.
o Servicio de Autenticación: Maneja el registro y autenticación de los usuarios.
o Gestor de Métodos de Pago: Gestiona la adición, eliminación y actualización de los métodos de pago de los
usuarios.
o Gestor de Transacciones: Maneja el procesamiento de pagos, incluyendo autorización, captura de fondos y
cancelación de transacciones.
o Sistema de Notificaciones: Envía notificaciones a los usuarios sobre el estado de sus transacciones.
4. Base de Datos
o Representa la base de datos donde se almacena la información de los usuarios, métodos de pago y transacciones.
5. Servicios Externos
o Stripe y PayPal: Plataformas externas que facilitan el procesamiento de pagos. El Gestor de Transacciones se
comunica con estos servicios para completar las transacciones.
6. Correo
o Servicio de Correo: Envío de correos electrónicos a los usuarios, manejado por el Sistema de Notificaciones.
1.1.6 Relaciones
El Usuario se comunica con la Aplicación Móvil.
La Aplicación Móvil se comunica con la API de Procesamiento de Pagos utilizando HTTPS.
La API de Procesamiento de Pagos se comunica con sus componentes internos (Servicio de Autenticación, Gestor de
Métodos de Pago, Gestor de Transacciones y Sistema de Notificaciones) utilizando HTTP.
La API de Procesamiento de Pagos y sus componentes internos acceden a la Base de Datos utilizando JDBC.
El Gestor de Transacciones se comunica con los Servicios Externos (Stripe y PayPal) utilizando HTTPS para el
procesamiento de pagos.
El Sistema de Notificaciones se comunica con el Servicio de Correo utilizando SMTP para el envío de correos
electrónicos.
Arquitectura candidata
1.1.7 Explicación de la Arquitectura Candidata
[Link] 1. Plataforma de Desarrollo
Backend: [Link] es utilizado para desarrollar la API de Procesamiento de Pagos y
otros servicios en el Servidor de Aplicaciones.
Frontend: [Link] es utilizado para desarrollar la aplicación móvil.
[Link] 2. Seguridad de Datos
Cifrado de Datos en Reposo y en Tránsito: HTTPS se utiliza para asegurar la
comunicación entre la Aplicación Móvil y el Servidor Nginx, así como entre el Gestor de
Transacciones y los servicios externos como Stripe y PayPal.
Autenticación: El Servicio de Autenticación maneja la autenticación de usuarios
utilizando técnicas seguras de almacenamiento de contraseñas (como hashing).
[Link] 3. Escalabilidad
Componentes Separados: Cada componente, como el API de Procesamiento de Pagos,
Servicio de Autenticación, Gestor de Métodos de Pago, y otros, están diseñados como
servicios independientes, lo que permite escalar cada uno por separado según la
demanda.
Nginx: Actúa como un servidor web y un balanceador de carga para manejar las
solicitudes entrantes y distribuirlas entre los servidores de aplicaciones.
[Link] 4. Compatibilidad con Dispositivos Móviles
Aplicación Móvil: Desarrollada utilizando React Native, lo que asegura compatibilidad
con dispositivos iOS y Android.
[Link] 5. Integración con Servicios de Terceros
Stripe y PayPal: El Gestor de Transacciones se comunica con estos servicios de
procesamiento de pagos externos para manejar transacciones de tarjetas de crédito y
otras formas de pago.
[Link] 6. Tiempo de Respuesta
Optimización: La arquitectura está diseñada para minimizar la latencia con servicios
distribuidos y bases de datos optimizadas para consultas rápidas.
Servidor Nginx: Utilizado para servir contenido estático rápidamente y manejar
solicitudes HTTP de manera eficiente.
[Link] 7. Monitoreo y Registro de Errores
Herramientas de Monitoreo: Herramientas como Splunk o Elasticsearch pueden ser
integradas para monitorear el sistema, registrar errores y realizar análisis proactivos.
Notificaciones: El Sistema de Notificaciones envía alertas sobre el estado de las
transacciones y posibles errores a los usuarios y al sistema de comercio electrónico.
1.1.8 Conclusión
Esta arquitectura candidata aprovecha las tecnologías modernas y se alinea con los requerimientos
no funcionales para ofrecer un sistema de procesamiento de pagos digitales seguro, eficiente y
escalable. Cada componente está diseñado para manejar diferentes aspectos del procesamiento de
pagos, garantizando una experiencia de usuario fluida y segura.
Referencias
Diagrama de clases - [Link]. (2016, 4 diciembre). [Link].
[Link]
Equipo editorial de IONOS. (2020, 23 septiembre). Diagrama de componentes: modelado eficiente
de sistemas con módulos de software. IONOS Digital Guide. [Link]
us/digitalguide/paginas-web/desarrollo-web/diagrama-de-componentes/
Fonseca, L. (2024, 5 enero). 10 ejemplos de diagramas de casos de uso (y cómo crearlos).
Venngage Blog. [Link]
Introducing EDrawMax 10. (s. f.). Edrawsoft. [Link]
[Link]
Evidencia
Por cada actividad debe capturar la pantalla completa de su escritorio, especialmente
donde se evidencie la fecha y hora de la captura para efectos de validación.