4.3 Proof of Concept
4.3.2 Visualization from Running PRADS in Eth1
Figura 7. D.U.C. Específico: Empleado Autor: Manuel Damián Robalino Camino
50 Descripción del Caso de Uso
Tabla 29. Descripción D.C.U. Empleados
Nombre: D.C.U. Específico: Gestionar Empleados
Actor: Administrador
Descripción: Describe el proceso de gestión de Empleados.
Flujo Principal: Eventos ACTOR Eventos SISTEMA
1. Comprobar los datos del Empleado que se ingresará en el sistema.
2. Ingresar los datos del Empleado a ingresar o editar.
2. Verifica que la cédula ingresada sea correcta y única, así como el correo y el nombre de Cuenta.
3. Realiza registro de datos del Empleado
3. Muestra pantalla de Registro si los datos fueron correctamente registrados 4. Almacenar los datos
registrados.
4. El Sistema Confirma el Almacenamiento Datos. 5. Solicitar la vista de los
empleados Ingresados
5. Desplegar en pantalla la lista de los empleados existentes en el sistema Precondición: El Administrador deberá iniciar sesión (loguearse) en el
sistema previo al proceso.
Postcondición: El Administrador habrá generado, editado o revisado un Empleado.
Presunción: La base de datos de usuarios está disponible. Autor: Manuel Damián Robalino Camino
51 D.C.U. Específicos: Facturación
Figura 8. D.C.U. Específico: Facturas Autor: Manuel Damián Robalino Camino Descripción del Caso de Uso
Tabla 30. D.C.U. Específicos: Facturación
Nombre: D.C.U. Específico: Gestionar Facturas Actor: Secretario/Usuario
Descripción: Describe el proceso de gestión de Facturas.
Flujo Principal: Eventos ACTOR Eventos SISTEMA
1. Comprobar los datos del usuario y que importes o descuentos se aplicaran.
1. El sistema recolecta y almacena los datos de importes y descuentos, los medidores, registros y tarifas de la base de datos.
2. Buscar y seleccionar el medidor.
2. El sistema filtrara los registros de consumo únicamente del medidor seleccionado
3. Seleccionar el registro de consumo a facturar.
3. El sistema mostrara la ventana de facturación y las opciones de importes y descuentos, así como los métodos de pago.
52
3. Realiza registro de datos de la Factura.
3. El sistema almacena los datos de la factura y sus detalles en la base de datos, además bloquea la edición de estos y habilita el ingreso del número de la factura y su forma de pago.
4. Realiza el cobro e impresión de la factura para entregarla al usuario.
4. El sistema Confirma el pago de la factura y redirige a la ventana de impresión de la misma para el usuario. 5. Solicitar la vista de la factura
registrada del consumo.
5. Desplegar en pantalla la factura correspondiente al registro del consumo.
Precondición: El Empleado cuenta con permisos para realizar el control total o parcial de acciones en la Factura.
El Empleado deberá iniciar sesión (loguearse) en el sistema previo al proceso.
Postcondición: El usuario habrá generado, editado, revisado o impreso el registro de una Factura.
Presunción: La base de datos de registros, importes y descuentos, medidores y usuarios está disponible.
53 Diagrama de Clases
Figura 9. Diagrama de Clases
54 Diagrama Conceptual
Figura 10. Diagrama Conceptual Autor: Robalino Camino Manuel Damián
55 Diagrama Lógico
Figura 11. Diagrama Lógico
56 Diagrama Físico
Figura 12. Diagrama Físico
57 Modelo Navegacional
Figura 13. Modelo de Navegación Autor: Robalino Camino Manuel Damián
58 Modelo de Presentación
Diseño de la Interfaz
Figura 14. Modelo de Interfaz
Autor: Robalino Camino Manuel Damián
Figura 15. Modelo de Control de Medidores (ingreso) Autor: Robalino Camino Manuel Damián
59 Figura 16. Modelo de Tabla
Autor: Robalino Camino Manuel Damián
Figura 17. Modelo de Ingreso de Lecturas Autor: Robalino Camino Manuel Damián
60 Figura 18. Modelo de Factura
Autor: Robalino Camino Manuel Damián
Figura 19. Modelo de Vista Tarifas Autor: Robalino Camino Manuel Damián 3.2.3.- Pruebas
Una vez que se haya concluido el desarrollo del software, es necesario corroborar que este cumpla con los requisitos mencionados y que sobre todo,
61
satisfaga las necesidades de los usuarios para los que fue desarrollado, para ello se utiliza una serie de pruebas de caja blanca y caja negra.
Caja Blanca
Las pruebas de caja Blanca son esenciales para comprobar el funcionamiento y comportamiento del sistema a la hora de manejar registros, por ende, esta prueba se la aplicará directamente al ingreso de datos desde la capa intermedia o lógica de negocios y se evaluará el código Fuente.
Proceso de Consumo
El proceso de consumo almacena los datos numéricos correspondientes a los registros de consumo que asociados a los medidores.
Código
Figura 20. Código de agregar Registro Autor: Robalino Camino Manuel Damián
Proceso de Ingreso de Usuarios
En el ingreso o registro de usuarios se controla y gestiona la cantidad de usuarios en el sistema, así como sus deudas y otro tipo de datos.
62
Este proceso está dividido en subprocesos que se encargan de comprobar si los valores ingresados son correctos.
Código de verificación de ingreso de datos correctos
Figura 21. Código de Verificación de Datos Autor: Robalino Camino Manuel Damián
Código de Validación e ingreso de los Datos
Figura 22. Validación de Datos
63 Proceso de Ingreso de Empleados
En el registro o ingreso de empleados se controlan los roles de cada uno, quien lo ingreso, los datos básicos para identificar y diferenciar cada empleado dentro del sistema por lo que el bloque de código encargado se divide en varios subprocesos los cuales validaran la información ingresada a fin de evitar inconsistencias a la hora de llevar a cabo las tareas a las cuales están asignadas. El primer subproceso que se efectúa la comprobación de datos necesarios y la asignación de los datos al objeto con el que se procesara el ingreso.
Figura 23. Validación y Asignación de Datos para El Empleado Autor: Robalino Camino Manuel Damián
Validación de dato único
Después de comprobar que los datos son correctos se comprobará que los datos ingresados sean únicos, para así evitar que un empleado quede registrado dos veces en el sistema, garantizando así la integridad de los datos que se van a incluir en el sistema.
64
Figura 24. Validación de Dato único en Empleados Autor: Robalino Camino Manuel Damián
Encriptado e Ingreso de Datos en el sistema
A continuación de la validación de datos se procede a encriptar la contraseña para así asegurarse de que aunque accedan a los datos, no se pueda acceder a la contraseña, resguardando el acceso seguro al sistema para después guardar estos datos en el sistema.
Figura 25. Encriptación de contraseña e ingreso de Empleado Autor: Robalino Camino Manuel Damián
65
Proceso de autenticación de Empleado
Para asegurarse de que las cuentas que ingresan al sistema corran el riesgo de ser vulneradas debido al hecho de olvidar cerrar sesión, se utiliza la validación por Token con tiempo de Uso, el mismo que permite anular la manipulación de datos cuando este caduca, para así salvaguardar la integridad de los datos. Para ello se divide este proceso en varios Subprocesos, los mismos que se encargan de encriptar, desencriptar y permitir el acceso a la información.
Encriptar la Información
Para el correcto acceso a los datos, se encripta solo el usuario quien está accediendo a ellos, para decidir si se lo bloqueará o concederá.
Figura 26. Encriptado de Token
Autor: Robalino Camino Manuel Damián
66
Cuando se trata de acceder a una sección de los datos, es necesario comprobar que El Empleado cuente con los permisos necesarios, así que se desencripta el Token recibido y se comprueba el acceso.
Figura 27. Desencriptado de Token Autor: Robalino Camino Manuel Damián Permiso de Token
Posteriormente, se asigna la autenticación al sistema de enrutamiento para validar el acceso a la información, para ello se asigna la variable md_auth haciendo referencia al proceso de Autenticación.
67 Figura 28. Asignación de Autenticación Autor: Robalino Camino Manuel Damián
Resultados de las Pruebas de Caja Blanca
En base a los datos de pruebas recolectados tras la realización de las mismas, se concluye que el sistema está seguro en dichos procesos, pero cabe recalcar nuevamente que, estas pruebas no contienen la infinidad de posibilidades y acciones que se pueden producir en un entorno real, por ende, aún pueden existir vulnerabilidades haciendo que se corrijan a medida que se van presentando.
Tabla 31. Resultados de las Pruebas Funciones Estado de Sesión Validación de Ingreso Tiempo de Respuesta Código de Estado Ingreso de Consumo Token Valido Datos Válidos 75ms 201 Token Valido Datos Inválidos 41ms 401
68 Token Invalido Datos Válidos 16ms 403 Ingreso de Usuarios Token Valido Datos Válidos 73ms 201 Token Valido Datos Inválidos 35ms 401 Token Invalido Datos Válidos 14ms 403 Ingreso de Empleado Token Valido Datos Válidos 89ms 201 Token Valido Datos Inválidos 63ms 401 Token Invalido Datos Válidos 18ms 403 Autorización Sin Token Sesión Iniciada 43ms 200
Sin Token Sin Sesión Iniciada
35ms 404
Autor: Robalino Camino Manuel Damián Caja Negra
Las pruebas de caja Negra se realizan para comprobar el correcto funcionamiento del sistema y por ende se las aplica a las zonas principales del Sistema de información Web, es decir, al proceso de interacción usuario y sistema.
69 Proceso de Consumo
Análisis de Variables:
Tabla 32. Análisis de Variables: Consumo (continúa Anexo A) Nombre de
Entrada
Tipo de Entrada N. de Clases válidas N. de Clases inválidas Clave de medidor Cadena de caracteres Numéricos 1: valores cuyo largo sea entre 6
y 10, y que corresponda a un
medidor existente
2: valor por debajo y por encima del rango o clave sin medidor
Fecha de consumo Datos de tipo Fecha 1: valores mayores a la última fecha en caso de existir 2: valores repetidos o anteriores Lectura de consumo
Valores Numéricos 1: valores mayores o iguales a 1 y mayores al anterior en caso de existir 2: Valor negativo o inferior a la lectura anterior en caso de existir
Autor: Robalino Camino Manuel Damián Resultados:
Tabla 33. Resultado de Análisis: Consumo (Anexo A) Nombre de
Entrada
Casos de Entrada Acciones del Sistema Resultado Clave de
medidor
16700151 (válido) Muestra mensaje de medidor encontrado y la opción de ingreso de Fecha Satisfactorio 123456789012 (inválido)
Muestra alerta por ingreso Incorrecto
Satisfactorio 123 (inválido) Muestra alerta por Ingreso
Incorrecto
Satisfactorio Fecha de
consumo
Enero 2019 (válido. sin previos)
Muestra mensaje de fecha correcta y la opción de ingreso de lecturas Satisfactorio Enero 2019 (valido. previo diciembre 2018)
Muestra alerta por ingreso Incorrecto
70 Enero 2019
(inválido. previo febrero 2019)
Muestra alerta por Ingreso Incorrecto
Satisfactorio
Lectura de consumo
0 (inválido) Muestra alerta de Consumo negativo
Satisfactorio 1 (válido, sin
previos)
Muestra mensaje de lectura correcta y botón
ingresar
Satisfactorio
-1 (inválido) Muestra alerta de Consumo negativo
Satisfactorio 12 (válido con
previos)
Muestra mensaje de lectura correcta y botón
ingresar Satisfactorio 12 (inválido con previos) Mensaje de lectura incorrecta Satisfactorio Autor: Robalino Camino Manuel Damián
Proceso de Ingreso de Usuarios Análisis de Variables:
Tabla 34. Análisis de Variables: Usuarios (Continúa Anexo B) Nombre de
Entrada
Tipo de Entrada N. de Clases válidas N. de Clases inválidas Nombre y Apellido Cadena de Caracteres Alfabéticos 1: Valores con una longitud entre 3 y 24
2: Valor por debajo y por encima del rango o Números Cédula Cadena de Caracteres Numéricos 1: Valores con una longitud entre 10 y 13 caracteres 2: Valores repetidos o fuera de rango Dirección Cadena de Caracteres Alfanuméricos 1: Valores con una longitud entre 3 y 48
2: Valores por debajo y por encima del rango
71
Ejecución de Pruebas al Ingreso de usuarios con los datos:
Caso 1. Nombre y apellido: Nikely Erreyes, Cedula: 2100731005, Dirección: Avenida 1.
Figura 29. Prueba de Usuario
Autor: Robalino Camino Manuel Damián
72
Figura 30. Ingreso Incorrecto: Nombre con Números Autor: Robalino Camino Manuel Damián
Figura 31. Ingreso Incorrecto: Cédula Corta Autor: Robalino Camino Manuel Damián
Figura 32. Ingreso Incorrecto: Cédula Repetida Autor: Robalino Camino Manuel Damián
Figura 33. Ingreso Incorrecto: Dirección Corta Autor: Robalino Camino Manuel Damián
73
Resultados de las Pruebas de Caja Negra Tabla 35. Resultado de Análisis: Consumo (Anexo B)
Nombre de Entrada
Casos de Entrada Acciones del Sistema
Resultado Nombre y
Apellido
Nombre: Nikely Apellido: Erreyes (válido)
No muestra mensajes de error ni advertencias Satisfactorio Nombre: User123 Apellido: Test123 (inválido)
Muestra alerta por ingreso de datos numéricos Satisfactorio Nombre: As Apellido: Jorlasdows wesqwsdqrfguha (inválido)
Muestra alerta por Ingreso Incorrecto,
nombre corto y apellido largo
Satisfactorio
Cédula 2100731005 (válido) Muestra mensaje de cédula ingresada correcta
Satisfactorio
1600483946 (invalido bajo el límite)
Muestra alerta por ingreso Incorrecto,
cédula inválida
Satisfactorio
1600783946 (inválido repetido)
Muestra alerta por Ingreso Incorrecto, cédula repetida
Satisfactorio
Dirección Avenida 1 (válido) Muestra mensaje de lectura correcta
y botón ingresar
Satisfactorio
As (inválido) Muestra alerta de dirección Corta
Satisfactorio Avenida 15, calle de las
nacionalidades unidas barrio Obrero (inválido)
Muestra alerta de dirección demasiado Larga
Satisfactorio
Autor: Robalino Camino Manuel Damián Análisis de Resultados
En base a los resultados obtenidos bajo los criterios presentados se demuestra que los procesos están correctamente implementados, funcionales y cuentan con buenos tiempos de respuesta, cabe mencionar que estas pruebas no abarcan toda la gama de posibilidades existentes en cuanto a combinaciones de ingreso, por eso se ha seleccionado los casos en los que se pueda ingresar la
74
máxima cantidad de datos inválidos para así comprobar la reacción del sistema en caso de error.
CONCLUSIONES
El acceso a los registros y procesos en el departamento contribuyo como una parte importante durante la realización del proyecto.
El uso de Base de datos no relacionales permitió crear aplicaciones escalables y que puedan cambiar libremente y de forma sencilla su estructura para adaptarse a los requerimientos del usuario.
El uso de tokens o llaves digitales permite asegurar la información que se está manejando en el sistema.
75 RECOMENDACIONES
Se debe poner atención a los procesos internos, porque garantizan la transparencia de la información.
Asegurar la escalabilidad de los sistemas para garantizar que estos se acoplen de acuerdo a las necesidades que vayan surgiendo dentro del departamento de Agua Potable.
Se debe cambiar de forma periódica las claves de acceso o contraseñas del Empleado para mejorar la seguridad a la hora de iniciar sesión.
BIBLIOGRAFÍA
Agencia de Regulación y Control del Agua. (20 de Diciembre de 2017). DIR- ARCA-RG-006-2017. El Directorio de la Agencia de Regulación y Control del Agua. Quito, Pichincha, Ecuador.
Areitio, J. (2008). Seguridad de la información. Redes, informática y sistemas de información. Burgos: Editorial Paraninfo.
Arias, Á., & Durango, A. (2016). Ingeniería y Arquitectura del Software 2da Edición. Vigo - Galicia: IT Campus Academy.
Britch, D., & Dunn, C. (08 de Mayo de 2017). Microsoft® - Xamarin©. Obtenido de Xamarin© - The Model-View-ViewModel Pattern: https://docs.microsoft.com/en-us/xamarin/xamarin-forms/enterprise- application-patterns/mvvm
Caldas, M. E., Reyes, A., & Heras, J. (2017). Gestión Administrativa (Empresa e iniciativa emprendedora). Madrid: Editex.
Castro, C. L., & Delgado, A. (6 de Enero de 2014). Visor de imágenes médicas digitales web. Obtenido de SCIELO: http://scielo.sld.cu/scielo.php?script=sci_arttext&pid=S1684-
18592014000100007
Chautard, A., Agius, A., & Eagle, A. (14 de Septiembre de 2016). Angular. Obtenido de Angular: https://angular.io/docs
Cordova, R. (2012). Proceso Administrativo. México: Red Tercer Milenio S.C. De los Ángeles Gil Estallo, M. ( 2004 ). Los sistemas de información en la
sociedad del conocimiento. Madrid: ESIC Editoria.
De Pablos Heredero, C. (2004). Informática y comunicaciones en la empresa.
Dias, J. (2016). Sistema de Informacion para Películas con AngularJS. Malaga: Universidad de Malaga.
Elizalde, L. (2018). Automatización contable como Herramienta Tecnológica para simplificar Procesos de Contabilidad en organizaciones. eumed.
Eslava Muñoz, V. J. (2016). El nuevo PHP. España: Bubok. Evan, H. (2016). Express in Action. Shelter Island: Manning.
Gray, J., & Reuter, A. (6 de Agosto de 2000). Transaccion Processing - Concepts And Techniques. San Francisco: Morgan Kaufmann Publishers Inc.
Obtenido de
https://web.archive.org/web/20000929041348/http://research.microsoft.c om/~gray/WICS_99_TP/01_WhirlwindTour.ppt
Harmon, P. (2007). Business Process Change. Ámsterdam: Elsevier.
Holmes, S. (2016). Getting MEAN with Mongo, Express, Angular, and Node.
Nueva York: Manning.
Jeston, J., & Neils, J. (2014). Business Process Management. Londres: Routledge.
Kendall, K. E. ( 2005 ). Análisis y diseño de sistemas. Madrid: Pearson Educación.
Luna, A. (2015). Proceso Administrativo. Guadalajara: Grupo Editorial Patria. Nieves, C., Ucán, J. P., & Menéndez, V. H. (2014). UWE en Sistema de
Recomendación de Objetos de Aprendizaje. Aplicando Ingeniería Web: Un Método en Caso de Estudio. Revista Latinoamericana de Ingenieria de Software, 137-143.
Oramas, J. (2015). La inteligencia de Negocios, un concepto Informático. Bogotá: U N O.
Pressman, R. (2016). Ingeniería del software: Un enfoque Práctico. San Francisco: McGraw Hill.
Ramírez, J. L. (2015). Sistemas de informacion gerencial e innovacion para el desarrollo de las organizaciones. Télématique: Revista Electrónica de Estudios Telemáticos, 201 -213.
Ramos, D. (2016). Desarrollo de Software. Plaza América, Vigo, España: IT Campus Academy.
Ramos, D., Noriega, R., Laínez, J. R., & Durango, A. (2017). Curso de Ingeniería del Software. Pontevedra: IT Campus Academy.
República del Ecuador. (2017). Todo una Vida. Plan Nacional del Buen vivir. Quito, Pichincha, Ecuador.
República del Ecuador. (1 de Agosto de 2018). Constitución de la República del Ecuador. Art.12. Quito, Pichincha, Ecuador: Republica del Ecuador. Rodríguez , Y., Castellanos, A., & Ramírez , Z. (2016). Gestion documental, de
informacion, del conocimiento e inteligencia organizacional. Revista cubana de información en ciencias de la salud , 19.
Rogers, M., Snell, J., William, K., & Borins, M. (13 de Diciembre de 2018).
NodeJS®. Obtenido de NodeJS® - Acerca de Nosotros: nodejs.org/es/about
Ryan, K., Ittycheria, D., & Schireson, M. (16 de Octubre de 2018). MongoDB. Obtenido de MongoDB Inc: https://www.mongodb.com/what-is-mongodb Van Der Henst, C. (17 de Octubre de 2011). Web 2.0 Summit Is a Wrap. Obtenido
de Oreilly Conferences:
https://conferences.oreilly.com/web2summit/web2011
Velazques, B., Ponce, V., & Coello, M. (2016). La Gestión Administrativa y Financiera, una perspectiva desde los Supermercados del Cantón Quevedo. Revista Empresarial, ICE-FEE-UCSG, 5.
ANEXOS
Diccionario de Datos Tabla 36. User (Usuario)
Nombre de Campo Tipo Tamaño Nulo Descripción _id String 24 No Clave Primaria
cedula String 13 No Cédula
nombre String 24 No Nombres
apellido String 24 No Apellidos
cuenta String 24 Si ID de Ingreso
contrase String 24 Si Contraseña
direccion String 48 No Dirección
image String 48 Si Imagen
role_user String 24 No Rol de usuario
telefono String 10 Si Teléfono
fecha_nacimiento String 10 Si Fecha de
Nacimiento
sexo String 24 Si Sexo o Género
activa Booleano - No Estado de Cuenta updated_at String 24 No Fecha de Edición updated_by String 24 No Usuario que Editó created_at String 24 No Fecha de Creación created_by String 24 No Usuario que Creó Fuente: Robalino Camino Manuel Damián
Tabla 37. Rate (Tarifa)
Nombre de Campo Tipo Tamaño Nulo Descripción _id String 24 No Clave Primaria tarifa String 24 No Nombre de la Tarifa
base Number 10 No Costo Base
percent_cost Booleano - No Selector de
porcentaje de R.M.U.V. updated_at String 24 No Fecha de Edición
updated_by String 24 No Usuario que Editó created_at String 24 No Fecha de Creación created_by String 24 No Usuario que Creó Fuente: Robalino Camino Manuel Damián
Tabla 38. Limits (limites)
Nombre de Campo Tipo Tamaño Nulo Descripción _id String 24 No Clave Primaria limit_from Number 12 No Limite Inicial
limit_to Number 12 No Limite Final
cost Number 10 No Costo por m³
excedidos
percent_cost Booleano - No Selector de
porcentaje de R.M.U.V. updated_at String 24 No Fecha de Edición updated_by String 24 No Usuario que Editó created_at String 24 No Fecha de Creación created_by String 24 No Usuario que Creó
rate_id String 24 no Clave foránea de la tarifa
Fuente: Robalino Camino Manuel Damián Tabla 39. Meter (medidor)
Nombre de Campo Tipo Tamaño Nulo Descripción _id String 24 No Clave Primaria direccion String 24 No Nombre de la Tarifa
clave Number 10 No Costo Base
image String 24 Si Imagen del croquis
user String 24 No Clave foránea de
usuario rate String 24 No Clave foránea de la
tarifa updated_at String 24 No Fecha de Edición updated_by String 24 No Usuario que Editó
created_at String 24 No Fecha de Creación created_by String 24 No Usuario que Creó Fuente: Robalino Camino Manuel Damián
Tabla 40. Register (registro)
Nombre de Campo Tipo Tamaño Nulo Descripción _id String 24 No Clave Primaria lectura Number 24 No Lectura registrada
consumo Number 10 No Consumo realizado
year Number 4 No Año de Registro
month Number 2 No Mes de Registro
subtotal Number 24 No Costo del Consumo del Registro
excessConsumo Number 24 Si Exceso de m³
Consumidos
excessCosto Number 24 Si Costo del Exceso
Consumido
excessM3 Number 24 Si Costo por m³
base Number 24 No Costo de la Base
heredado de la Tarifa cancelado Booleano - No Estado del pago de la