Está en la página 1de 10

UGTI

Soluciones de Negocio
Aplicativos de evaluación - Arquitectura

Aplicativos de evaluación - Arquitectura


UGTI Versión 1.0
Soluciones de Negocio

Pagina 1
asdasd
UGTI
Soluciones de Negocio
Aplicativos de evaluación - Arquitectura

CÓDIGO FECHA DE VIGENCIA VERSIÓN PÁGINAS


UTPL-UGTI-AEVA-001 27/06/2022 1.0 10

Aplicativos de evaluación

RUBRO CARGO FIRMA FECHA


APROBADO [dd-mm-yyyy]
POR:
ELABORADO Roberto Carlos Tallón Alonso 27/06/2022
POR:
REVISADO [dd-mm-yyyy]
POR:
AUTORIZADO [dd-mm-yyyy]
POR:

Pagina 2
asdasd
UGTI
Soluciones de Negocio
Aplicativos de evaluación - Arquitectura

Control de Cambios y Versiones

Fecha Versión Comentarios Autor Estado

28/06/2022 1.0 Emisión inicial Roberto Carlos Tallón Alonso Emisión

Pagina 3
asdasd
UGTI
Soluciones de Negocio
Aplicativos de evaluación - Arquitectura

Tabla de contenidos

CONTROL DE CAMBIOS Y VERSIONES ........................................................................................... 3


1. INTRODUCCIÓN ............................................................................................................................. 5
2. OBJETIVOS Y RESTRICCIONES ARQUITECTÓNICAS ........................................................ 5
3. FUNCIONALIDADES PRINCIPALES .......................................................................................... 8
4. TAMAÑO DE LOS APLICATIVOS ............................................................................................. 10
5. DIAGRAMA DE ARQUITECTURA ............................................................................................ 10

Pagina 4
asdasd
UGTI
Soluciones de Negocio
Aplicativos de evaluación - Arquitectura

1. Introducción
El presente documento contiene el diseño de los aplicativos de evaluación, partiendo de los
requisitos definidos en la fase de análisis de requerimientos y tomando en cuenta estrictamente las
necesidades de información del sistema desarrollado.

En este documento se describen las metodologías y tecnologías con las que los aplicativos han sido
construidos.

Se presentan los patrones de diseño que se utilizarán y los estándares de programación.

2. Objetivos y restricciones arquitectónicas


Esta sección describe los requerimientos y objetivos del software que tienen algún impacto
significante en la arquitectura.

2.1 Arquitectura de los aplicativos


Los aplicativos de evaluación se desarrollaron siguiendo los principios de arquitectura recomendados
para el desarrollo de aplicaciones móviles y de escritorio por el cual cada aplicación debe tener al
menos dos capas:
• La capa de la IU que muestra los datos de la aplicación en la pantalla.
• La capa de datos que contiene la lógica empresarial de la aplicación y expone sus datos.
Se ha agregado una capa adicional llamada capa de dominio para simplificar y volver a utilizar las
interacciones entre la IU y las capas de datos.

Capa de la IU
La función de la capa de la IU (capa de presentación) consiste en mostrar los datos de la aplicación
en la pantalla. Cuando los datos cambian, ya sea debido a la interacción del usuario (como cuando
presiona un botón) o una entrada externa (como una respuesta de red), la IU se actualiza para reflejar
los cambios.

La capa de la IU consta de los siguientes dos elementos:


• Elementos de la IU que renderizan los datos en la pantalla
• Contenedores de estados que contienen datos, los exponen a la IU y controlan la lógica

Capa de datos
La capa de datos contiene la lógica empresarial. Esta lógica es lo que le da valor a la aplicación.
Además, está compuesta por reglas que determinan cómo la aplicación crea, almacena y cambia
datos.

Pagina 5
asdasd
UGTI
Soluciones de Negocio
Aplicativos de evaluación - Arquitectura

La capa de datos está formada por repositorios que pueden contener de cero a muchas fuentes de
datos. Se debe crea una clase de repositorio para cada tipo de datos diferente en la aplicación.
Las clases de repositorio son responsables de las siguientes tareas:
• Exponer datos al resto de la aplicación
• Centralizar los cambios en los datos
• Resolver conflictos entre múltiples fuentes de datos
• Abstraer fuentes de datos del resto de la aplicación
• Contener la lógica empresarial
Cada clase de fuente de datos tiene la responsabilidad de trabajar con una sola fuente de datos, que
puede ser:
• un archivo
• una fuente de red
• una base de datos local.
Las clases de fuente de datos son el puente entre la aplicación y el sistema para las operaciones de
datos.

Capa de dominio
La capa de dominio es una capa opcional que se ubica entre la capa de la IU y la de datos.
La capa de dominio es responsable de encapsular la lógica empresarial compleja o la lógica
empresarial simple que varios ViewModels reutilizan.
Las clases de esta capa se denominan casos de uso o interactores. Cada caso de uso debe tener
responsabilidad sobre una funcionalidad única.

2.2 Plataformas compatibles


Los aplicativos de evaluación son compatibles con:

• todos los dispositivos Android desde la versión 7 hasta la versión 12


• todos los dispositivos que tengan instalados el sistema operativo Windows 7, 8, 10 y 11.

2.3 Seguridad
El proceso de comunicación entre los aplicativos y Siette se realiza a través de servicios web que
requieren autenticación mediante un token de autorización incluido en las cabeceras de la petición.

En el servicio web de Login, además del token de autorización, se envía la siguiente información que
servirá para identificar el dispositivo y la aplicación que está utilizando el usuario:

• Modelo del dispositivo


• Plataforma (Android o Windows)
• Versión del sistema operativo
• Versión del aplicativo
• Dirección MAC del dispositivo

2.4 Tecnologías utilizadas


Para el desarrollo de los aplicativos de evaluación se utilizaron las tecnologías:

• C# para el aplicativo Windows


• Java para el aplicativo Android.

Pagina 6
asdasd
UGTI
Soluciones de Negocio
Aplicativos de evaluación - Arquitectura

Además, los aplicativos tienen integrado el SDK de Zoom.

El aplicativo Windows integra el navegador embebido basado en Chromium CEFSharp Browser.

Zoom SDK
El SDK de Zoom permite integrar la experiencia de Zoom Meetings en la aplicación, lo que permite
que los usuarios inicien y se unan fácilmente a las reuniones de Zoom.
El SDK de Zoom está diseñado para ser:

• Fácil de usar: las bibliotecas y los paquetes importados permiten implementar rápidamente
la plataforma de reuniones Zoom en aplicaciones nuevas y existentes.
• Localizable: compatibilidad con varios idiomas.
• Personalizable: las características de la interfaz de usuario personalizada permiten a los
desarrolladores ampliar y adaptar la interfaz de la reunión para permitir la integración
directa con su aplicación.
CEFSharp Browser
CefSharp es una librería que permite incorporar de manera fácil en una aplicación C# todas las
funcionalidades de un navegador web compatible con los estándares Web actuales.

CefSharp se basa en Chromium Embedded Framework, la versión de código abierto de Google


Chrome.

CefSharp adopta los estándares web modernos y admite elementos de audio/video HTML5,
JavaScript, CSS3 y HTML5. El contenido 3D es compatible a través de WebGL, que utiliza
OpenGL/DirectX para la representación acelerada por hardware.

2.5 Herramientas utilizadas para el desarrollo


Durante el desarrollo del proyecto se han utilizado las siguientes herramientas:
Android Studio
Android Studio es el entorno de desarrollo integrado (IDE) oficial para el desarrollo de apps para
Android. Además del potente editor de códigos y las herramientas para desarrolladores de IntelliJ,
Android Studio ofrece incluso más funciones que aumentan tu productividad cuando desarrollas
apps para Android, como las siguientes:
• Un sistema de compilación flexible basado en Gradle
• Un emulador rápido y cargado de funciones
• Un entorno unificado donde puedes desarrollar para todos los dispositivos Android
• Aplicación de cambios para insertar cambios de código y recursos a la app en ejecución sin
reiniciarla
• Integración con GitHub y plantillas de código para ayudarte a compilar funciones de apps
comunes y también importar código de muestra
• Variedad de marcos de trabajo y herramientas de prueba
• Herramientas de Lint para identificar problemas de rendimiento, usabilidad y compatibilidad
de versiones, entre otros
Visual Studio
Microsoft Visual Studio es un IDE (Entorno integrado de desarrollo) que permite desarrollar
aplicaciones, sitios web, aplicaciones WPF, aplicaciones web, servicios web, apps de Windows Sotre,
etc. para poder ser ejecutadas en todas las plataformas de Microsoft Windows, Windows Mobile,

Pagina 7
asdasd
UGTI
Soluciones de Negocio
Aplicativos de evaluación - Arquitectura

Windows CE, .Net Framework, .NET Compact Framework y Microsoft Silverlight. Permite emplear
múltiples lenguajes de programación.
El IDE de Visual Studio es un panel de inicio creativo que se puede usar para editar, depurar y
compilar código y, después, publicar una aplicación. Aparte del editor y el depurador estándar que
proporcionan la mayoría de IDE, Visual Studio incluye compiladores, herramientas de finalización de
código, diseñadores gráficos y muchas más características para facilitar el proceso de desarrollo de
software.
Git
Git es un software de control de versiones diseñado pensando en la eficiencia, la confiabilidad y
compatibilidad del mantenimiento de versiones de aplicaciones cuando estas tienen un gran número
de archivos de código fuente. Su propósito es llevar registro de los cambios en archivos de
computadora incluyendo coordinar el trabajo que varias personas realizan sobre archivos
compartidos en un repositorio de código.

3. Funcionalidades principales
Esta sección describe las principales funcionalidades y características de los aplicativos de evaluación.

3.1 Sistema Anti-Fraude


Es la funcionalidad encargada de controlar que el usuario pueda acceder a recursos no permitidos
desde el dispositivo durante la realización de la evaluación en el aplicativo.
Las principales características del sistema Anti-Fraude son:
Windows
• Modo pantalla completa: Al iniciar el aplicativo, se visualiza en modo pantalla completa para
evitar que el usuario pueda acceder a la barra de tareas o al menú de inicio de Windows.
También impide que el usuario pueda cerrar, minimizar o modificar el tamaño de la ventana
del aplicativo, mostrándose siempre a pantalla completa.
• Bloqueo de aplicaciones: Al iniciar el aplicativo, se crea un proceso encargado de cerrar
todas las aplicaciones de la lista negra y de comprobar continuamente si se ha vuelto a
ejecutar alguna de las aplicaciones de la lista negra para volver a cerrarla bloqueando su
ejecución en cualquier momento.
• Bloqueo de combinaciones de teclas: El aplicativo bloquea todas las combinaciones de
teclas que permiten al usuario minimizar o cerrar la ventana del aplicativo, cambiar de
aplicación, mostrar el menú de inicio, etc.
• Detección de múltiples pantallas: Al iniciar el aplicativo, se crea un proceso que comprueba
continuamente la detección de múltiples pantallas conectadas al dispositivo. Si detecta
varias pantallas, el aplicativo muestra un mensaje de aviso que impide la realización de la
evaluación y no permite cerrar dicho mensaje hasta que el sistema detecte que únicamente
hay una pantalla conectada al dispositivo.

Android
• Bloqueo de aplicaciones: Al iniciar el aplicativo, se crea un proceso encargado de comprobar
continuamente el aplicativo que se está ejecutando en primer plano. Si detecta que el
aplicativo que se está ejecutando no es el aplicativo de evaluación, el proceso se encarga de
volver a poner en primer plano el aplicativo de evaluación. De esta manera no se puede
ejecutar otro aplicativo durante la ejecución del aplicativo de evaluación.

Pagina 8
asdasd
UGTI
Soluciones de Negocio
Aplicativos de evaluación - Arquitectura

Windows y Android
• Login con contraseña de un solo uso y de corta duración: Para acceder a la evaluación en
Siette, el aplicativo requiere que el usuario introduzca su usuario de UTPL y una contraseña
que el usuario recibirá por parte del evaluador de manera presencial o a través de Zoom.
Dicha contraseña es de un solo uso y de corta duración para evitar que un usuario acceda
desde distintos dispositivos.
• Cierre de la aplicación mediante contraseña: Una vez iniciado el aplicativo, el usuario no
podrá cerrarlo hasta que no introduzca la contraseña de salida que únicamente puede
proporcionarla el evaluador.

3.2 Navegador Web integrado basado en Chromium

El aplicativo Windows lleva integrado el navegador CefSharp basado en Chromium cuyas


características principales son las siguientes:

• Cumple con todos los estándares web modernos y admite elementos de audio/video
HTML5, JavaScript, CSS3 y HTML5.
• Permite tener un control sobre todos los eventos del navegador (errores, eventos del DOM,
URLs cargadas, etc.). Esto permite que el desarrollador pueda mostrar mensajes de error
personalizados, que pueda restringir el acceso a un único dominio, que pueda controlar
cuando un usuario a accedido a la página principal de Siette, etc.
• Permite que Siette se ejecute en un entorno controlado, ya si se ejecutara en el navegador
integrado por defecto, la ejecución depende de las librerías que el sistema operativo del
dispositivo tenga instaladas y puede que no estén actualizadas o que no cumplan con los
estándares web actuales. De esta forma, las librerías del navegador van integradas en el
aplicativo y podemos asegurar que todos los dispositivos ejecutan el mismo navegador y que
Siette se ejecuta correctamente en dicho navegador.

3.3 Integración con el SDK de Zoom

El aplicativo lleva integrado el SDK de Zoom cuyas características principales son las siguientes:
• Single Sign-On de UTPL: EL usuario puede acceder a su cuenta Zoom de UTPL usando sus
credenciales de UTPL.
• Acceso automático a la sala de Zoom creada para la evaluación: Si al usuario se le ha
asignado una sala de Zoom para el evento de evaluación, éste se conectará
automáticamente a dicha sala tras el login.
• Acceso alternativo a la sala de Zoom mediante ID de la sala: El usuario podrá introducir
manualmente el ID de la sala de Zoom a la que quiere conectarse.
• Integra todas las funcionalidades de Zoom: Videoconferencia, Chat, Compartir pantalla, etc.

3.4 Sistema de actualización automática


Los aplicativos cuentan con un sistema de actualización automática que se ejecuta al iniciar el
aplicativo.
El sistema comprueba si existe una nueva versión y, en caso afirmativo, muestra un mensaje al
usuario indicándole que existe una nueva versión del aplicativo y que es necesario actualizar para
poder ejecutarlo.
Si el usuario pulsa el botón de actualizar, el proceso se encarga de descargar e instalar la actualización
automáticamente.

Pagina 9
asdasd
UGTI
Soluciones de Negocio
Aplicativos de evaluación - Arquitectura

En caso de cerrar la ventana de actualización, el aplicativo se cierra y no permite ejecutarse; de esta


manera se obliga a todos los usuarios a tener instalada la última versión del aplicativo para poder
realizar la evaluación.

4. Tamaño de los aplicativos


Esta sección describe el tamaño de los aplicativos de evaluación y como están distribuidos los pesos
de las librerías integradas.

4.1 Aplicativo Windows


El aplicativo Windows tiene un tamaño aproximado de 157MB y la distribución de pesos es la
siguiente:
• CefSharp: 55%
• Zoom SDK: 33%
• Aplicativo de evaluaciones: 12%

4.2 Aplicativo Android


El aplicativo Android tiene un tamaño aproximado de 148MB y la distribución de pesos es la
siguiente:
• Zoom SDK: 98%
• Aplicativo de evaluaciones: 2%

5. Diagrama de arquitectura

Pagina 10
asdasd

También podría gustarte