• No se han encontrado resultados

respectivas relaciones.

4.3.2.1 WS SAC

4.3.2.1.1 UBICACIÓN DEL SERVICIO:

http://localhost:8080/webServicesTrackingSAC/SelectTrackingSAC?wsdl 4.3.2.1.2 Método:

84 4.3.2.1.3 Descripción:

Permite obtener datos de envío y rastreo del sistema SAC

Tabla 13 Estructura del WS SAC

Parámetros de Entrada Salida

1. numeroEnvio 2. nombreDestinatario 3. operación 1. TrackingSAC 1. codigoServicio 2. nombreServicio 3. nombreRemitente 4. direccionRemitente 5. nombreCiudadOrigen 6. codigoCiudadOrigen 7. nombreProvinciaOrigen 8. codigoProvinciaOrigen 9. nombrePaisOrigen 10. codigoPaisOrigen 11. nombreDestinatario 12. direccionDestinatario 13. nombreCiudadDestino 14. codigoCiudadDestino 15. nombreProvinciaDestino 16. codigoProvinciaDestino 17. nombrePaisDestino 18. codigoPaisDestino 19. fechaEnvio 20. numeroEnvio 21. numeroEnvioAlterno 22. fechaCiclo 23. telefono 24. codigoSucursal 25. nombreSucursal 26. numeroDespacho 27. aerolineaCodigo 28. aerolineaNombre 29. peso 30. EventosSAC 1. numeroGestion 2. fechaGestion 3. codigoUsuario 4. observacion 5. codigoOficina 6. nombreUsuario 7. nombreGestion

85 Adicionalmente se expone la descripción de los parámetros de entrada y respuesta que gestiona el Web Service de SAC.

Tabla 14 Descripción de parámetros de entrada - WS SAC Nombre del

Elemento

Tipo de Dato

Descripción Mandatorio

numeroEnvio Text Número de envío Es mandatorio si el valor del campo “operación” es

igual a

“PORNUMERO” nombreDestinatario Text Nombre del

destinatario. Se puede utilizar el carácter comodín % para especificar entre cero o más caracteres cualquiera. Es mandatorio si el valor del campo “operación” es

igual a

“PORDESTINATA RIO”

Operación Text Especifica si se buscará por número de envío o por destinatario. Puede tener dos valores:

PORNUMERO y PORBENEFICIARI O

SI

Tabla 15 Descripción de parámetros de respuesta - WS SAC

Nombre del Elemento Tipo de Dato

Descripción Mandatorio

codigoServicio String Código del Servicio SI nombreServicio String Nombre del Servicio SI nombreRemitente String Nombre del Remitente SI direccionRemitente String Dirección del Remitente SI nombreCiudadOrigen String Nombre de la Ciudad de

Origen

SI codigoCiudadOrigen String Código de la Ciudad de

Origen

SI nombreProvinciaOrigen String Nombre de la Provincia de

Origen

SI codigoProvinciaOrigen String Código de la Provincia de

Origen

SI nombrePaisOrigen String Nombre del País de Origen SI codigoPaisOrigen String Código del País de Origen SI

86

4.3.2.2 WS IPS

4.3.2.2.1 UBICACIÓN DEL SERVICIO:

http://localhost:8080/webServicesTrackingIPS/SelectTrackingIPS?wsdl 4.3.2.2.2 Método:

El método para la extracción de información es getTrackingIPS. nombreDestinatario String Nombre del Destinatario SI direccionDestinatario String Dirección del Destinatario SI nombreCiudadDestino String Nombre de la Ciudad de

Destino

SI codigoCiudadDestino String Código de la Ciudad de

Destino

SI nombreProvinciaDestino String Nombre de la Provincia de

Destino

SI codigoProvinciaDestino String Código de la Provincia de

Destino

SI nombrePaisDestino String Nombre del País de Destino SI codigoPaisDestino String Código del País de Destino SI

fechaEnvio String Fecha de envío SI

numeroEnvio String Número de Guía SI numeroEnvioAlterno String Número de Guía Alterno SI

fechaCiclo String SI

Teléfono String Campo de número de teléfono

SI codigoSucursal String Código de la Sucursal SI nombreSucursal String Nombre de la Sucursal SI numeroDespacho String Número del Despacho SI aerolineaCodigo String Código de la aerolínea SI aerolineaNombre String Nombre de la aerolínea SI Peso String Muestra el peso del paquete SI EventosSAC String Presenta los diferentes tipos

de estado que puede tener un envío.

SI

numeroGestion String Campo de número de gestión realizada

SI fechaGestion String Campo de fecha de gestión

realizada

SI codigoUsuario String Código del Usuario SI Observación String Campo de Observación SI codigoOficina String Código de la Oficina Postal SI nombreUsuario String Nombre del Usuario SI nombreGestion String Campo de nombre de gestión

realizada

87 4.3.2.2.3 Descripción:

Permite obtener datos de envío y rastreo del sistema IPS

Tabla 16 Estructura del WS IPS

Parámetros de Entrada Salida

1. numeroEnvio 2. nombreDestinatario 3. operacion 1. TrackingIPS 1. codigoServicio 2. nombreServicio 3. nombreRemitente 4. direccionRemitente 5. nombreCiudadOrigen 6. codigoCiudadOrigen 7. nombreProvinciaOrigen 8. codigoProvinciaOrigen 9. nombrePaisOrigen 10. codigoPaisOrigen 11. nombreDestinatario 12. direccionDestinatario 13. nombreCiudadDestino 14. codigoCiudadDestino 15. nombreProvinciaDestino 16. codigoProvinciaDestino 17. nombrePaisDestino 18. codigoPaisDestino 19. fechaEnvio 20. numeroEnvio 21. codigoSucursal 22. nombreSucursal 23. numeroDespacho 24. aerolineaCodigo 25. aerolineaNombre 26. peso 27. EventosIPS 1. fechaEvento 2. fechaCaptura 3. nombreEvento 4. codigoEvento 5. nombreOficina 6. codigoOficina

De la misma manera se expone la descripción de los parámetros de entrada y respuesta que gestiona el Web Service de IPS.

88

Tabla 17 Descripción de parámetros de entrada - WS IPS

Nombre del

Elemento

Tipo de Dato

Descripción Mandatorio

NumeroEnvio Text Número de envío Es mandatorio si

el valor del

campo

“operación” es

igual a

“PORNUMERO”

nombreDestinatario Text Nombre destinatario.

Se puede utilizar el carácter comodín % para especificar entre

cero o más caracteres cualquiera. Es mandatorio si el valor del campo “operación” es igual a “PORDESTINAT ARIO”

Operación Text Especifica si se

buscará por número

de envío o

destinatario. Puede

tener dos valores:

PORNUMERO y

PORBENEFICIARIO SI

Tabla 18 Descripción de parámetros de respuesta - WS IPS Nombre del /Elemento Tipo de

Dato

Descripción Mandatorio CodigoServicio string Código del Servicio SI

nombreServicio string Nombre del Servicio SI nombreRemitente string Nombre del

Remitente

SI direccionRemitente string Dirección del

Remitente

SI nombreCiudadOrigen string Nombre de la

Ciudad de Origen

SI codigoCiudadOrigen string Código de la Ciudad

de Origen

SI nombreProvinciaOrigen string Nombre de la

Provincia de Origen SI codigoProvinciaOrigen string Código de la

Provincia de Origen SI nombrePaisOrigen string Nombre del País de

Origen

SI codigoPaisOrigen string Código del País de

Origen

SI nombreDestinatario string Nombre del

Destinatario

SI direccionDestinatario string Dirección del SI

89 Destinatario

nombreCiudadDestino string Nombre de la Ciudad de Destino

SI codigoCiudadDestino string Código de la Ciudad

de Destino

SI nombreProvinciaDestino string Nombre de la

Provincia de Destino SI codigoProvinciaDestino string Código de la

Provincia de Destino SI nombrePaisDestino string Nombre del País de

Destino

SI codigoPaisDestino string Código del País de

Destino

SI FechaEnvio string Fecha de envío SI NumeroEnvio string Número de Guía SI numeroEnvioAlterno string Número de Guía

Alterno

SI

FechaCiclo string SI

Teléfono string Campo de número de teléfono

SI codigoSucursal string Código de la

Sucursal

SI nombreSucursal string Nombre de la

Sucursal

SI numeroDespacho string Número del

Despacho

SI aerolineaCodigo string Código de la

aerolínea

SI aerolineaNombre string Nombre de la

aerolínea

SI Peso string Muestra el peso del

paquete

SI

EventosSAC Presenta los

diferentes tipos de estado que puede tener un envío.

SI

numeroGestion string Campo de número de gestión realizada

SI FechaGestion string Campo de fecha de

gestión realizada

SI CodigoUsuario string Código del Usuario SI

Observación string Campo de

Observación

SI CodigoOficina string Código de la Oficina

Postal

SI NombreUsuario string Nombre del Usuario SI NombreGestion string Campo de nombre

de gestión realizada SI

90 Con el objetivo de poder reutilizar los Web Service creados, Correos del Ecuador solicitó la extracción de los campos que consideraron necesarios o que en cualquier momento podrían ser útiles.

La Figura 38 App CDE Resultado rastreo, ejemplifica el consumo y filtro de información del envío EE12345679EC, el cual es un envío de prueba en Correos del Ecuador para el Sistema Postal Internacional (IPS).

Figura 38 App CDE Resultado rastreo

91 Para el caso de la Figura 39 de la misma manera consume un Web Service, dado que este servicio se encuentra consumiendo información del sistema de facturación no es posible publicar ningún tipo de información.

Figura 40 App CDE Servicio cotizador

92

Figura 42 App CDE Sub-menú Puntos de atención

Figura 43 App CDE Atención Oficinas

Para hacer uso de Google Maps, es necesario gestionar una licencia la cual debe ser aplicada al proyecto, a continuación se detallan los pasos para gestionar e instalar en nuestro trabajo de titulación.

93

4.3.2.3 Mapas en Android

Describiremos brevemente los pasos a seguir para obtener una nueva API key de Google Maps.

 En nuestro navegador de preferencia se deberá acceder a la siguiente ruta: https://code.google.com/apis/console/?noredirect.

 Crear un nuevo proyecto API.

 Seleccione servicios y dentro del listado deberá activar Google Maps Android API v2, si es la primera vez que accede deberá aceptar los términos y condiciones de uso.

 Una vez aceptados los términos y condiciones, acceda a “API Access” y seleccione “Create new Android key”, ingresar “SHA1 fingerprint” seguido de punto y coma “;” y nombre del package name del proyecto en desarrollo y finalmente seleccionar “Create”.

Nota: Para obtener el “SHA1 fingerprint”, se debe acceder a eclipse y ubicar el proyecto en desarrollo, ir a Windows – Preferences, seleccionar Android – Build y proceda a copiar el SHA1.

Por ejemplo:

45:B5:E4:6F:36:AD:0A:98:94:B4:02:66:2B:12:17:F2:56:26:A0:E0;com.example.CDE

 En “Simple API Access” – “Key for Android apps (with certificates)" se obtendrá el “API_key”

Adicionalmente para hacer uso de mapas se deberá incluir las siguientes líneas el AndroidManifest.xml del proyecto en desarrollo.

<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="aquí tu API_key"/>

<uses-permissionandroid:name="android.permission.INTERNET"/>

<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-featureandroid:glEsVersion="0x00020000"

94 Una vez realizada esta configuración ya se podrá usar mapas en cualquiera de nuestros Activities, adicionalmente como se puede observar en la Figura 44 App CDE Atención Ubicar, se podrá ubicar las agencias a nivel nacional.

Figura 44 App CDE Atención Ubicar

Adicionalmente se añadió en cada una de las ubicaciones la opción de asistencia de navegación, esta acción realizará la llamada al intent de Google Maps instalado en el Smartphone.

95

4.4 TRANSICIÓN

4.4.1 PRUEBAS Y DESPLIEGUE

La aplicación de Correos del Ecuador App CDE, es muy probable que no se encuentre publicada dentro de Google Play, debido a que para registrarse como desarrollador es necesario realizar un pago mediante Google Wallet (Google, 2014), sin embargo Correos del Ecuador publicará su aplicación para descarga desde su sitio web.

Por esta razón los usuarios que descarguen esta aplicación deberán habilitar la instalación de aplicaciones desde fuentes u orígenes desconocidos. Esta opción por defecto viene inhabilitada y generalmente se la encuentra en el menú de “Ajustes – Seguridad”.

96

4.4.1.1 Pruebas unitarias:

Debemos tener en cuenta que no se realizará pruebas de unidad sobre los componentes de Web Service y Data Set, debido a que son componentes que se programan en la herramienta de desarrollo.

El resultado de estas pruebas se encuentra especificado en el ANEXO 5 “Resultado pruebas unitarias”, debido a que este documento es uno de los entregables a Correos del Ecuador CDE E.P.

Las pruebas unitarias ejecutadas han pasado exitosamente, adicionalmente los resultados han sido devueltos satisfactoriamente de acuerdo a los requerimientos levantados en la Fase de Inicio.

4.4.1.2 Prueba integral

Una vez finalizadas las pruebas unitarias se procede a la ejecución de una prueba total o integral a través de APPTHWACK.

Para iniciar con esta prueba es necesario que nuestra aplicación haya sido compilada correctamente, automáticamente nuestro framework de desarrollo “Eclipse” creará el instalador (apk) en nuestro workspace, en

nuestro caso se localizará dentro de

workspace\ZCorreosEcuador\bin\ZCorreosEcuador.apk, el cual nos permitirá subir a APPTHWACK para realizar las pruebas.

97 Para realizar la prueba deberá registrarse en https://appthwack.com/user/login?_next=/project/index. Una vez registrado se deberá proceder a validar su cuenta e inmediatamente se podrá iniciar con la ejecución de una prueba, para esto se deberá crear un nuevo proyecto como se observa en la siguiente imagen.

Figura 48 Creación de proyecto App CDE - CIC para prueba

Posteriormente en el paso 1, se deberá cargar la aplicación desde la ubicación anteriormente indicada.

El paso 2 determina la cantidad de dispositivos sobre los cuales se ejecutará la prueba; en la figura siguiente se puede observar el mensaje “Your app is compatible with 23 of 25 devices”, sin embargo nosotros ya conocemos que la aplicación se ejecuta en dispositivos con Android 2.3 o superior. Al iniciar la prueba, estos 2 dispositivos incompatibles no serán tomados en cuenta.

98

Figura 49 Configuración general de la prueba

En el caso de la opción 3 es opcional, por lo que podemos omitirla sin alterar nuestro resultado. Debido a que nuestra aplicación puede ser ejecutada en 2 idiomas, se establece estas configuraciones en la opción 4 del proyecto de prueba.

Figura 50 Configuración de idioma y ubicación para pruebas

Finalmente procedemos a ejecutar la prueba presionando en el botón “TEST MY APP”. La ejecución total de la prueba es de aproximadamente 15 minutos sin embargo el consumo del saldo de los minutos de prueba que te ofrece esta herramienta te lo especifica en el paso 2.

99 De esta manera, luego de 15 minutos procedemos a verificar algunos de los datos arrojados por este software.

Dado a que esta prueba es sometida en diferentes dispositivos, se procede con la verificación de las capturas de pantalla cada uno de los dispositivos en la siguiente vínculo, cabe indicar que este resultado es compartido por parte del dueño de la cuenta que ejecuta la prueba https://appthwack.com/public/e59078a3efb0214d61b2e4a96.

Figura 51 Capturas de pantalla ejecución Asus Nexux 7

Figura 52 Capturas de pantalla ejecución HTC Evo 4G

La capacidad de la aplicación para adaptarse en los dispositivos que se realizaron las pruebas es aceptable, adicionalmente la aplicación ha funcionado adecuadamente sin presentar errores tal como lo muestra la siguiente imagen.

100

Figura 53 Resultado general de la prueba aplicada a APP CDE

El valor de 100 establecido en la captura anterior, corresponde a la gestión de 100 pruebas unitarias las mismas que fueron ejecutadas sobre 25 dispositivos y evaluaron 4 tipos de prueba en la aplicación las cuales pasaron sin novedades:

 Instalación

 Ejecución y exploración

 Ejercicio aleatorio

 Desinstalación

Figura 54 Resultado de la prueba aplicada por estado

El listado de los dispositivos sobre los que se ejecutó esta prueba es el detallado a continuación:

Asus Nexus 7

Model: Nexus 7, OS: 4.4.4, CPU: 1.3 GHz ARMv7, Heap size: 384

Asus Nexus 7 2

Model: Nexus 7, OS: 4.4.4, CPU: 1.5 GHz ARMv7, Heap size: 512

HTC Desire HD

Model: Desire HD A9191, OS: 2.3.3, CPU: 1.0 GHz ARMv7, Heap size: 32

101 Model: PC36100, OS: 2.3.5, CPU: 1.0 GHz ARMv7, Heap size: 32

HTC One S

Model: HTC VLE_U, OS: 4.0.4, CPU: 1.5. GHz ARMv7, Heap size: 128

HTC One X

Model: HTC One X, OS: 4.0.3, CPU: 1.5 GHz ARMv7, Heap size: 128

Motorola Droid RAZR

Model: DROID RAZR, OS: 4.1.2, CPU: 1.2 GHz ARMv7, Heap size: 128

Motorola Droid RAZR HD

Model: XT926, OS: 4.4.2, CPU: 1.5 GHz ARMv7, Heap size: 256

Motorola Droid X

Model: DROIDX, OS: 2.3.4, CPU: 1.0 GHz ARMv7, Heap size: 32

Samsung Galaxy Ace

Model: GT-S5830L, OS: 2.3.4, CPU: 800 MHz ARMv6, Heap size: 64

Samsung Galaxy Mini

Model: GT-S5570, OS: 2.3.4, CPU: 600 MHz ARMv6, Heap size: 64

Samsung Galaxy Nexus

Model: Galaxy Nexus, OS: 4.3, CPU: 1.2 GHz ARMv7, Heap size: 256

Samsung Galaxy Note

Model: SGH-I717, OS: 2.3.6, CPU: 1.4 GHz ARMv7, Heap size: 128

Samsung Galaxy Note II

Model: GT-N7100, OS: 4.3, CPU: 1.6 GHz ARMv7, Heap size: 256

Samsung Galaxy S II

Model: GT-I9100, OS: 2.3.4, CPU: 1.2 GHz ARMv7, Heap size: 64

Samsung Galaxy S III

Model: GT-I9300, OS: 4.3, CPU: 1.4 GHz ARMv7, Heap size: 256

Samsung Galaxy S II Skyrocket

Model: SGH-I727, OS: 2.3.5, CPU: 1.5 GHz ARMv7, Heap size: 64

Samsung Galaxy S Plus

Model: GT-I9001, OS: 2.3.3, CPU: 1.4 GHz ARMv7, Heap size: 64

Samsung Galaxy Tab 10.1

Model: GT-P7510, OS: 3.2, CPU: 1.0 GHz ARMv7, Heap size: 288

Samsung Galaxy Tab 2 10.1

Model: GT-P5113, OS: 4.2.2, CPU: 1.0 GHz ARMv7, Heap size: 256

Samsung Galaxy Tab 2 7.0

Model: GT-P3113, OS: 4.2.2, CPU: 1.0 GHz ARMv7, Heap size: 256

Samsung Nexus S 4G

102

Samsung Vitality

Model: SCH-R720, OS: 2.3.4, CPU: 800 MHz ARMv6, Heap size: 64

Sony Xperia Arc S

Model: LT18a, OS: 4.0.4, CPU: 1.4 MHz ARMv7, Heap size: 32

Sony Xperia Z

Model: L36i, OS: 4.3, CPU: 1.5 GHz ARMv7, Heap size: 384

Adicionalmente esta herramienta nos permite conocer algunas métricas del rendimiento de nuestra aplicación, en este caso podemos observar que la aplicación no abusa o no exige al dispositivo para su operación teniendo un máximo consumo de CPU de 13,73% y memoria de 82,68. El promedio general del consumo del CPU es de 7,04% y en memoria 36,27 MB, inclusive el trazado entre las diferentes vistas está evaluado 0,00057 segundos.

Figura 55 Rendimiento de App CDE

De acuerdo a estos datos podemos deducir que la aplicación se encuentra estable y lista para su operación.

Finalmente para evidenciar la ejecución de la prueba integral se tomará el dispositivo Sony Xperia Z L36i del cual se obtuvieron las siguientes estadísticas.

103

Figura 56 Prueba integral Sony Xperia Z L36i

Adicionalmente se observa un consumo mínimo de ancho de banda, el cual de acuerdo al seguimiento de las capturas generadas se valida que el dispositivo cotizó un envío con destino Afganistán, servicio Certificado Exporta fácil y un peso de 100 gramos (valor predefinido en la prueba), cuyo costo fue de $28,75.

Figura 57 Uso de cotizador

En función de estos resultados, se da como finalizada la prueba integral de la aplicación, de la cual como anteriormente se explicó, se han compartido los resultados de esta prueba, adicionalmente los log’s de la presente simulación se encuentran adjuntos al presente trabajo en un

104 archivo nombrado como results_prueba_integral.zip ubicado en la carpeta de anexos.

En conclusión se determina que la App CDE se encuentra apta para su puesta en marcha, debido a que la misma no ha presentado errores de ejecución en los diferentes dispositivos evaluados, adicionalmente las interfaces no presentan alteración o distorsión durante su operación.

4.4.1.3 Pruebas de aceptación

La presente prueba será realizada a través de la encuesta a un grupo de 20 personas, los mismos que se encuentran distribuidos de la siguiente manera:

 Clientes: 5

 Servicio al Cliente: 7

 Tecnología; 8

4.4.1.3.1 Usabilidad

Para validar la usabilidad de la aplicación se utilizó la encuesta, la misma que se realizó a 20 usuarios, de acuerdo al detalle de preguntas expuesto a continuación:

Tabla 19 Formato de encuesta para usabilidad

EVALUACIÓN DE LA APP CDE – CIC MÓVIL PARA CORREOS DEL ECUADOR CDE E.P.

La finalidad de la presente encuesta es recopilar los criterios del encuestado sobre la usabilidad de la App CDE. Se recomienda absoluta sinceridad por parte del encuestado para que su criterio sea una contribución en la mejora del sistema.

DATOS INFORMATIVOS

Edad: _____ Sexo: _____

Fecha:_________________________

105

1. ¿La navegación de la aplicación le pareció sencilla? Si__ No__

2. ¿La información que usted requería, la encontró con facilidad? Si__ No__

3. ¿Existió algún tipo de error al utilizar la aplicación? Si__ No__

Si es positiva su respuesta especifique el número de errores….………...

4. ¿Le pareció sencilla la utilización de la aplicación? Si__ No__

5. ¿Indique la impresión que le dejo la aplicación? buena__ mala__ regular__

6. ¿Cree usted que la aplicación ha cumplido con sus expectativas? Si__ No__

Los resultados de la encuesta anteriormente detallada se exponen a continuación:

Tabla 20 Resultado encuesta usabilidad - Pregunta 1

Pregunta: ¿La navegación de la aplicación le pareció sencilla? Total de Respuestas 20

Tipo de Respuesta SI NO

Número de Respuestas 19 1

Figura 58 Resultado encuesta usabilidad - Pregunta 1 Tabla 21 Resultado encuesta usabilidad - Pregunta 2

106 Pregunta: ¿La información que usted requería, la encontró con

facilidad? Total de Respuestas 20

Tipo de Respuesta SI NO

Número de Respuestas 20 0

Figura 59 Resultado encuesta usabilidad - Pregunta 2

Tabla 22 Resultado encuesta usabilidad - Pregunta 3

Pregunta: ¿Existió algún tipo de error al utilizar la aplicación? Total de Respuestas 20

Tipo de Respuesta SI NO

Número de Respuestas 1 19

Figura 60 Resultado encuesta usabilidad - Pregunta 3

Tabla 23 Resultado encuesta usabilidad - Pregunta 4

Pregunta: ¿Le pareció sencilla la utilización de la aplicación? Total de Respuestas 20

Tipo de Respuesta SI NO

107

Figura 61 Resultado encuesta usabilidad - Pregunta 4

Tabla 24 Resultado encuesta usabilidad - Pregunta 5

Pregunta: ¿Indique la impresión que le dejo la aplicación?

Total de Respuestas 20

Tipo de Respuesta Buena Mala Regular

Número de Respuestas 17 0 3

Figura 62 Resultado encuesta usabilidad - Pregunta 5

Tabla 25 Resultado encuesta usabilidad - Pregunta 6

Pregunta: ¿Cree usted que la aplicación ha cumplido con sus

Documento similar