Trabajo Final Sol
Trabajo Final Sol
Trabajo Final Sol
MEMORIA DE RESIDENCIA
PRESENTA:
MARISOL CIRILO MEJIA
ASESOR:
M.C.E. JOSÉ DAVID LÓPEZ RODRÍGUEZ
23 Noviembre de 2017.
UNIVERSIDAD MEXIQUENSE DEL BICENTENARIO
UNIDAD DE ESTUDIOS SUPERIORES
TEMOAYA
MEMORIA DE RESIDENCIA
PRESENTA:
MARISOL CIRILO MEJIA
ASESOR:
M.C.E. JOSÉ DAVID LÓPEZ RODRÍGUEZ
23 Noviembre de 2017.
I
DEDICATORIAS
A Dios por haberme permitido lograr este proyecto en mi vida, al mismo tiempo fortalecer mi
espíritu para ser cada día más fuerte y aferrarme.
A mi papá Fidel Cirilo Anastacio por estar a mi lado incondicionalmente siempre con algún consejo
en tiempos difíciles, también por brindarme todo lo que estuvo en sus manos y siempre recordarme
ser mejor persona cada día.
A mi mamá W. Antonia Mejia Becerril por enseñarme que en la vida hay que ser perseverantes para
obtener lo que se quiere, le agradezco la compañía aquellas noches cuando tenía que terminar alguna
tarea desde el preescolar hasta ahora.
A mis hermanos Ruben Cirilo Mejia, David Cirilo Mejia por compartirme experiencias de vida y
provocarme aquellas risas incontrolables que me hacían olvidar el estrés y la preocupación.
A mis profesores por motivarme cada día y compartirme su valioso conocimiento para formarme
como una profesional en el área de Informática.
VI
ÍNDICE GENERAL
ÍNDICE DE TABLAS
ÍNDICE DE FIGURAS
RESUMEN
INTRODUCCIÓN
CPM Medios es una agencia de publicidad que cuenta con 5 áreas, en la que se trabajo fue en el
área de sistemas, quien se encarga de llevar el control de proyectos, así como las actividades que
cada uno de ellos ejecutan.
El presente trabajo muestra dos capítulos dentro de los cuales se encuentra la información acerca
del análisis y desarrollo de la aplicación móvil.
En el primer capítulo se realiza el análisis de terminologías importantes como lo son aplicaciones
móviles, Servicio Web anudado a lo anterior se describe la metodología que se implementó.
En este orden, en el segundo capítulo se fundamenta la descripción detallada de las actividades en
las fases exploración, inicialización, producción, estabilización y pruebas y/o corrección;
realizados con base a la metodología llamada Mobile-D.
JUSTIFICACIÓN
Actualmente la agencia CPM Medios cuenta con un control de proyectos a través de un aplicación
Web que no incluye el módulo de actividades, en consecuencia, se genera un reporte impreso de
dicho proyecto y ahí mismo se escriben las actividades a realizar, sin embargo, no es un control
formal de las actividades de los proyectos; por lo anterior, se genera gasto de hojas incluso falta
de espacio para actualizaciones que se le agregan a un proyecto por lo tanto, se tiene la necesidad
de implementar una aplicación móvil para agilizar esta administración.
Permitirá al usuario (asistente) poder asistir a la reunión con su dispositivo móvil (tableta o
celular), sin necesidad de hojas extras y/o posponer reuniones, en la reunión puede consultar y
actualizar información de un proyecto en tiempo real, es decir, sin necesidad de agendar otra
reunión.
Los usuarios se beneficiarán porque la aplicación móvil permitirá su uso desde cualquier lugar
siempre y cuando el dispositivo cuente con conexión a internet sin proxy; también un ahorro en
tiempo y gasto en hojas.
la integración de Xamarin en el IDE de Visual Studio 2015 resulta una nueva tecnología
innovadora para el desarrollo de aplicaciones móviles, que permitirá la automatización de las
actividades de una empresa, utilizando un solo código para sistema operativo móvil iOS y Android.
También con la utilización de WCF permitirá separar la lógica de la aplicación de la interfaz de
usuario, reduciendo la carga de código de la misma. Además de la integración de la metodología
Mobile-D que permitirá ejecutar un adecuado plan de desarrollo.
17
OBJETIVO GENERAL
Desarrollar una aplicación móvil iOS y Android mediante la implementación de una serie de
actividades con base en la metodología Mobile-D para administrar proyectos por la dirección de
proyectos de la agencia de publicidad CPM Medios.
Objetivos específicos
MARCO CONTEXTUAL
DATOS DE LA EMPRESA
Los usuarios de la aplicación Web actualmente utilizan sus navegadores que tienen disponibles en
sus laptops y hojas extras para hacer anotaciones de actividades por proyecto, cuando desean hacer
uso de la aplicación Web en lugares como el automóvil, es complicado, porque se tiene que sujetar
y/o apoyar la laptop para utilizarla cuando el automóvil está en movimiento o en una reunión
corporativa no se puede actualizar al momento, debido a que al ingreso de las mismas son con
dispositivos móviles (tabletas o celulares) por falta de espacio.
Previo a una reunión el usuario (asistente) imprime un reporte de forma física de los proyectos, si
en la reunión se necesita información específica de algún proyecto misma que no está contenida
en reporte, la reunión fracasa y el asistente tiene que agendar otra reunión para dar continuidad a
la previa, lo que genera pérdida de tiempo.
En una reunión de trabajo las actualizaciones de un proyecto y sus actividades se escriben en hojas,
lo que genera doble trabajo porque el módulo actividades no está automatizado en la aplicación
Web, además el usuario tiene que rescatar en el menor tiempo posible las actualizaciones y/o
anotaciones de un proyecto, esto puede provocar confusión en la información registrada.
Si los usuarios lo desean utilizar desde sus dispositivos móviles la aplicación no es adaptativo,
todo esto provoca una mala experiencia de usuario.
ALCANCES
Desarrollar las operaciones CRUD (Create, Read, Update, Delete) en los módulos
proyectos y actividades.
Desarrollar los métodos para las operaciones que se llevaran a cabo en el servicio WCF.
Se tendrá acceso a la base de datos para agregar y modificar la estructura de la misma.
El desarrollo de esta aplicación móvil permitirá el acceso a usuarios con dispositivos de
sistema Android y iOS.
LIMITACIONES
En la actualidad las personas están más familiarizadas con las aplicaciones móviles debido al
desarrollo de las tecnologías.
1.1.1. Definición de una aplicación móvil
“Una aplicación móvil consiste en un Software que funciona en un dispositivo móvil (teléfonos y
tabletas) y ejecuta ciertas tareas para el usuario” (Mobile Marketing Association, 2011).
1.1.2. Tipos de aplicaciones móviles
Existen aplicaciones móviles de diversos tipos que se caracterizan por sus usos y por sus
funcionalidades. A continuación se describe la clasificación según el entorno donde se ejecutan y
con base a su funcionalidad por (Mobile Marketing Association), al último por su desarrollo según
(Cuello & Vittone)
1.1.2.1. Según el entorno en el que se ejecutan
Según (Mobile Marketing Association) por su entorno en el que se ejecutan menciona lo siguiente:
Funcionamiento de la app en sistemas operativos móviles nativos como Apple™ iOS, Google
Android, Windows Mobile®, Blackberry OS™, Samsung Bada o Symbian, entre otros. Estos
entornos llegan habitualmente preinstalados en los terminales.
Ventajas:
Pueden ser instaladas en distintos sistemas operativos
Desventajas:
Menor rendimiento y menor aprovechamiento de las capacidades técnicas en
determinadas situaciones.
Otras plataformas como Java/J2ME, BREW, Flash Lite o Silverlight (menos utilizadas en la
actualidad).
23
También (Mobile Marketing Association, 2011) menciona que también se clasifican con base a su
funcionalidad y se describe a continuación:
Juegos: Cartas o de casino (ejemplo: solitario, blackjack, ruleta, póker), puzle o estrategia
(ejemplo Tetris, Sudoku, Ajedrez, Juegos de Mesa), acción o aventura (ejemplo: Doom,
piratas del caribe, juegos de rol), deportes (ejemplo: futbol, tenis, baloncesto, carreras, boxeo,
aky) y deportes de ocio.
Según (Cuello & Vittone) consideran que la clasificación de las aplicaciones de acuerdo con su
desarrollo es:
Aplicaciones nativas
Son aquellas que han sido desarrolladas con el Software que ofrece cada sistema operativo a
los programadores, llamando genéricamente Software Development Kit o SDK. Así, Android,
iOS y Windows® Phone.
Características:
Se diseñan y programan específicamente para cada plataforma en el lenguaje utilizado
por el SDK.
A nivel de diseño, esta clase de aplicaciones tiene una interfaz basada en las guías de
cada sistema operativo.
Aplicaciones Web
También llamadas Webapps en este caso no se emplea un SDK, lo cual permite programar de
forma independiente al sistema operativo al que cual se usará la aplicación.
Características:
Pueden ser fácilmente utilizadas en diferentes plataformas sin mayores inconvenientes
y sin necesidad de desarrollar un código diferente para cada caso particular.
Estas no necesitan instalarse, porque se visualizan usando un navegador del teléfono
como un sitio normal. Por esta misma razón, no se distribuyen en una tienda de
aplicaciones, sino que se comercializan y promocionan de forma independiente.
25
Aplicaciones hibridas
Es una combinación de las dos anteriores.
Características:
Su desarrollo se parece a la de una aplicación Web usando HTML, CSS y JavaScript.
Cuando la app está terminada, se compila o empaqueta de forma que el resultado final
es como si se tratara de una aplicación nativa.
Permite que con un mismo código obtener diferentes aplicaciones, por ejemplo, para
Android y iOS, y distribuirlas en cada una de sus tiendas.
A diferencia de las aplicaciones Web, estas permiten acceder, usando librerías, a las
capacidades del teléfono, tal como haría una app nativa.
Su diseño visual no se identifica en gran medida con el del sistema operativo. Sin embargo,
hay formas de usar controles y botones nativos de cada plataforma para apegarse más a la
estética propia del sistema
Existen distintos Softwares para desarrollo de aplicaciones, dado que el uso de dispositivos
móviles ha incrementado al igual que el uso del internet hay disponibles desde Software que
funciona solo como plantilla para diseño de una app hasta los disponibles para aquellos que se
dedican al desarrollo desde código. En la que se mencionan 5 tipos de Software para análisis y el
que se utilizará para el desarrollo de la aplicación.
26
¿Qué es Xamarin? Es una plataforma de desarrollo que permite codificar, entre plataformas iOS,
Android y Windows® Phone aplicaciones móviles en C# (Hermes, 2015).
Puede compartir la mayor parte del código entre los proyectos de plataforma (Windows®, iOS
y Android).
Incluye cualquier lógica de negocios, la integración en la nube, el acceso a bases de datos o
cualquier otro código que tenga como destino .NET Framework.
El código se puede compartir mediante un proyecto compartido que se genera en Visual
Studio.
El único código que no se puede compartir es el código que tiene como destino una plataforma
específica.
Al crear el proyecto en el Software carga la interfaz del usuario en este caso es (Windows®,
iOS y Android) por lo que no se necesita cargar código en cada uno de ellos toda vez que se
trata de un código compartido para las tres plataformas.
1.3.1.1. Android
En este caso se utilizan los componentes específicos para la plataforma Android. Librerías de clase
y aplicaciones Android con elementos exclusivos para plataforma Android como se ve en la Figura
4 a partir de la creación como se muestra vista en la Figura 3.
1.3.1.2. iOS
En este caso se crean los componentes específicos para la plataforma iOS como se ve en la Figura
6 y el inicio de la creación de la aplicación se observa en la Figura 5.
1.3.1.3. Cross-platform
Permite crear interfaces de usuario para diferentes plataformas como pueden ser Android, iOS y
Windows Phone, con la capacidad de compartir código, sin embargo, existe la posibilidad de
personalizar en cada plataforma. El inicio de creación de la aplicación en Visual Studio se ve como
en la Figura 7.
Xamarin.Forms que integra Visual Studio permite la instalación de la aplicación en un móvil o
emularla con sus propiedades según el tipo de plataforma. Native Portable (que es código se hará
por cada plataforma) o Blank Xaml App Portable (Se controla el comportamiento desde un solo
código) como se observa en la Figura 8.
29
1.4. Emuladores
1.4.1. Concepto
Este emulador utiliza las capacidades de Hyper-V del equipo de desarrollo, su objetivo es para
depuración de una aplicación Android.
Visual Studio crea varios perfiles preconfigurados con objeto de mostrar en un menú desplegable
los dispositivos disponibles para la depuración de la aplicación como se ve en la Figura 10.
Para aviso de que se está depurando la aplicación, se muestra un mensaje en la parte inferior
izquierda como se ve en la Figura 11.
En el emulador se inicia la interfaz virtual del dispositivo con las funciones normales, así mismo
se monta la aplicación desarrollada como se muestra en la Figura 12.
La aplicación desarrollada en Visual Studio se depura en el emulador Android para ver las
funcionalidades de esta, en este caso solo fue un botón con título “Hello world, Click Me”.
Numeración Nombre
1 Cerrar emulador
2 Minimizar emulador
3 Apagar
4 Un solo punto de entrada
5 Multi-touch
6 Girar a la izquierda
7 Girar a la derecha
8 Ajustar a la pantalla
9 Zoom
10 Herramientas adicionales
Tabla 2. Elementos nombrados del emulador para aplicaciones
móviles
Fuente: Elaboración propia
La Tabla 2 describe los elementos del menú de la Figura 13, en la siguiente lista resume la función
de cada botón en la barra de herramientas vertical del emulador:
Cerrar: Cierra la aplicación del emulador. Este botón no se utiliza a menudo en
funcionamiento normalmente, el emulador se deja después de la primera puesta en marcha
(para evitar el retardo de arranque emulador) y se cierra sólo cuando ya no es necesaria.
33
Un solo punto de entrada del ratón: Devuelve el dispositivo a la entrada de un solo punto.
Ajustar a la pantalla: Amplía el tamaño de la pantalla del emulador para que quepa en la
pantalla del escritorio.
Zoom: Ver la pantalla del emulador en un 33%, 50%, 66%, 100%, o por algún porcentaje
personalizado.
Ubicación (Location): Presenta un mapa que se puede utilizar para seleccionar y simular
una ubicación GPS. En este mapa, los puntos del mapa se pueden crear para simular el
movimiento entre las localidades.
Cámara (Camera): Imita tomar una foto a través de una imagen animada fija, una imagen
desde un archivo o desde una cámara Web conectada en el ordenador anfitrión. Es posible
seleccionar entre las cámaras delanteras o traseras.
Tarjeta SD (Card SD): El emulador puede hacer una carpeta en el ordenador anfitrión
disponible para el dispositivo como una tarjeta SD. Cuando la aplicación lee y escribe
archivos en la tarjeta SD simulada, se puede acceder directamente desde el escritorio sin
necesidad de utilizar el comando.
Una base de datos es un conjunto de tablas llamadas entidades que almacenan datos con menor
redundancia posible.
Datos:
Conjunto de información que pueden ser registrados de algún modo, y que cuentan con un
significado implícito.
Reflejan situaciones del mundo real y cambios en esas situaciones.
36
Relacionados:
Debe existir homogeneidad en la colección de datos que conforma una Base de datos (BD).
Los datos se recopilan y registran con una finalidad.
Los datos deben ser relevantes con respecto a esa finalidad.
Un diccionario de datos es una obra de consulta con información acerca de los datos (es decir,
metadatos), compilada por los analistas de sistemas para guiarse en el análisis y diseño. Como un
documento, el diccionario de datos recopila y coordina términos de datos específicos, y confirma
lo que cada término significa para las diferentes personas en la organización (E. Kendall & E.
Kendall, 2005).
Devolver un valor de estado a un programa que realiza una llamada para indicar si la
operación se ha realizado correctamente o se han producido errores, y el motivo de estos
(Microsoft®, 2017).
37
Durante el desarrollo de la aplicación se utiliza el sistema de manejo de bases de datos del modelo
relacional (Microsoft® SQL Server).
“ADO.NET Entity Framework es un marco de trabajo para la plataforma .NET que permite
superponer varias capas de abstracción sobre un almacén relacional con el fin de hacer posible una
programación más conceptual” (Zorrilla Castro, de la Torre Llorente, Hernandez Saa, & Peláez
Aller, 2011).
También los autores (Zorrilla Castro, de la Torre Llorente, Hernandez Saa, & Peláez Aller)
fundamentan que los componentes son dos que se describen a continuación:
Según Microsoft® (2017) las aplicaciones de Entity Framework ofrecen las siguientes ventajas:
Zorrilla Castro, de la Torre Llorente, Hernandez Saa, & Peláez Aller (2011), mencionan que el
Modelo de Entidades, normalmente conocido como EDM (Entity Data Model). Este diseñador
permite definir los conjuntos de entidades y relaciones entre las mismas de los modelos
conceptuales, así como especificar de qué manera estos tipos se mapearán a la estructura de la
fuente de almacenamiento relacional subyacente.
1.7.1. SOAP
Simple Object Access Protocol (SOAP), creado en 1998, se sirve de mensajes XML para el
intercambio de mensajes. Puede operar sobre cualquier protocolo de transporte, aunque lo más
común es que lo haga sobre HTTP o HTTPS. Es el protocolo más común en servicios Web de
carácter privado una característica es que puede ser transmitido a través de HTTP, TCP/IP, SMTP
o cualquier otro.
40
Los servicios Web (SOAP) utilizan un protocolo Internet para asegurar la comunicación con sus
aplicaciones cliente. A menudo, se trata del protocolo HTTP, de ahí la denominación servicios
Web (Guérin, 2013).
1.7.2. REST
Representational State Transfer (REST). Concepto surgido en el año 2000, hace uso del protocolo
HTTP para el envío de mensajes, incluso puede utilizar lenguajes como XML o JSON.
Se característica porque pueden utilizarse en el protocolo HTTP y las cuatro operaciones CRUD
Create, Read, Update y Delete (CRUD) en español crear, leer, actualizar y eliminar que pueden
realizarse sobre una fuente de datos.
1.7.3. SOA
Simple Object Access (SOA), se basa en organizar una aplicación en unidades funcionales que
pueden ser gestionadas por distintos proveedores e incluso compañías de modo que puedan ser
accedidas de un modo homogéneo (Guérin, 2013).
WCF es un motor de ejecución al mismo tiempo un conjunto de APIs para la creación de sistemas
que envíen mensajes entre servicios y clientes. Se utilizan la misma infraestructura y API tanto
para crear aplicaciones que se comuniquen entre sí en el mismo sistema, como para aplicaciones
en equipos separados en distintas compañías que se comuniquen a través de Internet (Microsoft®,
2016).
41
WCF separa operaciones y datos, es decir un Servicio Web WCF establece un contrato a través de
una interfaz que una clase implementará. Los elementos de un Servicio Web WCF según Ceballos
Villach, Gañán Jiménez, Conesa Caralt y Rius Gavidia (2010) son:
Contratos
Los contratos se utilizan para definir los diferentes elementos que forman parte de un servicio:
Contrato de servicio - ServiceContract: Se utiliza para definir las distintas operaciones que
proporciona un servicio, así como otros detalles del servicio, es decir, que expone una
operación que el Servicio Web es capaz de ejecutar que es una interfaz.
El atributo DataContract puede aplicarse a clases o estructuras. Por otro lado, DataMember
se puede aplicar a métodos, campos y eventos no estáticos. En otras palabras, se
implementan los datos que el Servicio Web va a manejar así mismo el dato que manejará
el contrato de servicio.
El Service implementa IService y obliga a declarar los métodos que aparecen en la interface como
se ve en la Figura 15.
42
simplemente cambiar la configuración del Servicio Web WCF, tener una sesión confiable
en él. Esto hace que WCF sea realmente robusto y potente (Patel, 2017).
Todo tipo de Software (incluido Java, PHP, C++…) es capaz de consumir un Servicio Web SOAP
(Guérin, 2013). A continuación, se muestra como generar y consumir un Servicio Web:
a) Al proyecto se agrega una referencia de tipo servicio haciendo lo que se ve en la Figura 16.
b) Introducir la URL del servicio y clic en aceptar para que este sea agregado, nombrar el
servicio como se observa en la Figura 17.
44
El 43 por ciento de las pymes menciona que el uso de las apps incrementa su número de clientes,
31 por ciento considera que con ello aumentaría sus ventas y 23 por ciento asevera que estas
herramientas mejoran la productividad de la empresa (CONACYT, 2015).
45
El objetivo principal de este método es conseguir ciclos de desarrollo rápidos en equipos pequeños
de trabajo. Fue creado en un proyecto finlandés en 2005, pero sigue estando vigente. Basado en
metodologías conocidas pero aplicadas de forma estricta como: extreme programming, Crystal
Methodologies y Rational Unified Process.
Se encuentra integrada por 5 fases: exploración, inicialización, fase de producto, fase de
estabilización y la fase de pruebas. Cada una tiene un día de planificación y otro de entrega. Como
es muestra en la Figura 18.
FASES
ESTABLECIMIENTO DÍA DE
DÍA DE PRUEBA DOCUMENTACIÓN DÍA DE TRABAJO
DE PROYECTOS LANZAMIENTO
DÍA DE DÍA DE
LANZAMIENTO LANZAMIENTO
Se centra en la planificación y a los conceptos básicos del proyecto. Se realizan los alcances de
proyecto con su establecimiento con las funcionalidades donde se va a llegar.
a) Propósito:
Establecer las bases para una implementación bien controlada de Software, la arquitectura del
producto, el proceso de desarrollo finalmente la selección del medio ambiente.
Se necesitan diferentes grupos y puntos de vista de las partes interesadas en el producto para
ofrecer una mejor experiencia.
b) Objetivos:
Establecer los grupos de actores necesarios en la planificación y el seguimiento del
proyecto.
Definir los alcances y limitaciones del proyecto
Planificar el proyecto respecto al entorno, el personal y los problemas del proceso
Descripción de la base del proceso que incluye la línea de base, las actividades de
seguimiento de calidad, documentación, puntos de integración del Hardware.
Plan de medición y plan de formación.
También llamada fase de iniciación donde se configura el proyecto y se preparan todos los recursos
necesarios, en ella se le dedica un día de planificación y el resto al trabajo con su publicación.
a) Propósito:
Se realiza la preparación y verificación de todas las cuestiones fundamentales del desarrollo a fin
de que los integrantes tengan conocimiento de los requisitos que seleccione el cliente.
b) Objetivos:
Obtener la comprensión global del producto para el equipo de desarrollo del proyecto,
sobre los requisitos iniciales y la línea de la arquitectura.
Preparar los requisitos físicos, técnicos y humanos, así como la comunicación con el
cliente, los planes del proyecto y todas las cuestiones fundamentales de desarrollo a fin de
que todo esté en plena disposición para la implementación.
a) Propósito:
Es la de implementar la funcionalidad requerida en el producto mediante la aplicación del ciclo de
desarrollo iterativo e incremental.
b) Objetivos:
Implementar la funcionalidad del producto priorizando los requerimientos del cliente.
Centrarse en la funcionalidad básica fundamental para permitir múltiples ciclos de mejora.
49
Esta fase utiliza los mismos roles que las anteriores y la comunicación con el cliente se debe
enfatizar con retroalimentación rápida durante la ejecución de la misma.
50
a) Propósito:
Asegurar la calidad de la implementación del proyecto.
b) Objetivos:
Finalizar la implementación del producto
Mejorar y garantizar la calidad del producto
Finalizar la documentación del proyecto
c) Entradas de la fase:
Funcionalidad implementada del producto
Los artefactos de desarrollo relacionado
d) Salidas de la fase:
Funcionalidad implementada de todo el proyecto de todo el Software
La documentación del producto finalizado
e) Funciones o roles:
Equipo de proyecto
Jefe del proyecto
Arquitectos del proyecto
Grupo de apoyo
Grupo del cliente
51
Grupo directivo
Se continua con el testeo hasta tener una versión estable del producto según lo establecido por el
cliente, en caso de ser necesario se reparan errores. Una vez culminadas todas las fases es necesario
contar con una aplicación publicable o entregable al cliente.
a) Propósito:
Verificar que el sistema implementa la funcionalidad definida del cliente, proporcionar
retroalimentación al equipo de desarrollo de los defectos y errores encontrados en el Software.
b) Objetivos:
Probar el sistema basado en la documentación producida en el proyecto.
Proporcionar información de defectos encontrados
Planificar la solución a los defectos encontrados
Fijar los errores hallados
Producir un sistema libre de errores como sea posible
c) Entradas a la fase:
Funcionalidad implementada
Documentación de aceptación de pruebas
Funcionalidad del usuario definida completamente
Descripción de la interfaz de usuario que se utilizar para crear casos de pruebas
d) Salidas de la fase:
Un sistema testeado y corregido (versión final)
Documentación de errores encontrados
Informe de pruebas del sistema descripción del proceso de pruebas, también los errores y
defectos encontrados en el Software.
52
e) Roles:
Equipo de proyecto
Grupo de soporte
Cliente
Grupo directivo
Grupo de pruebas de sistemas (Valtion Teknillinen Tutkimuskeskus, 2006)
53
El objetivo de esta fase es la de identificar todos los requisitos de la aplicación, así mismo la
selección del Software para el desarrollo.
Cliente: CPM Medios.
Grupo de trabajo:
Residente
Asesor externo
Asesor interno
b) Empresas
c) Principales
3) Proyectos
4) Actividades
2.1.2.2. Funciones
En la Tabla 3 se visualiza cada una de las actividades que pueden realizar los usuarios en los
módulos de la aplicación.
Módulo Funciones
Catálogos Se podrá consultar a actores, empresas y principales
Usuario Características
Manejo de catálogos
SuperAdministrador Registro de proyectos y actividades
Presentación
Monitorear
Base de datos
Manejo de catálogos
Administrador Registro de proyectos y actividades
Presentación
Monitorear
Tabla 4. Descripción de las actividades de los usuarios
Fuente: Elaboración propia.
2.1.2.3. Restricciones
2.1.3. Requerimientos
2.1.3.1. Requerimientos de interfaces externas
Interfaces de usuario
IU-1: La aplicación debe contener estilos en los botones, texto, entre otros elementos como
opciones de menú.
IU-2: Las interfaces serán sencillas con operaciones que permitan almacenar, modificar, consultar
y eliminar.
Interfaces de Hardware
IH-1: Los usuarios requerirán equipo, como: un dispositivo móvil con sistema operativo Android
o iOS.
IH-2: La aplicación debe interactuar a través de las interfaces adecuadas con la base de datos.
Interfaces de Software
IC-1: Para el uso de la aplicación móvil se debe contar con internet como medio de comunicación
entre la aplicación móvil y el Servicio Web (WCF).
IC-2: La relación con un gestor de base de datos.
RII-1: Toda la información relacionada con actor, empresa y principal solo será de consulta
57
Relación Regla
Un actor Deberá tener asociado un tipo de actor.
Deberá tener asociado un usuario.
Un proyecto Deberá tener asociado una empresa.
Deberá tener asociado un principal.
Deberá tener asociado un usuario.
Un proyecto actor Deberá tener asociado un proyecto.
Deberá tener asociado un actor.
Deberá tener asociado un tipo de actor.
Un usuario Deberá tener asociado un usuario rol.
Deberá tener asociado un usuario proyecto.
Deberá tener asociado un usuario contacto.
Una actividad Deberá tener asociado proyecto.
Un proyecto empresa Deberá tener asociado un proyecto.
Deberá tener asociada a una empresa.
Un principal Deberá tener asociado a un tipo principal.
Deberá tener asociado una dependencia.
Un usuario roles Deberá tener asociado a un rol.
Deberá tener asociado a un usuario.
Un usuario proyecto Deberá tener asociado un usuario.
Deberá tener asociado un proyecto.
Tabla 5. Reglas de relación de datos
Fuente: Elaboración propia
58
2.2. Inicialización
Para cumplir con esta fase se hizo la elección del Software de desarrollo, asi como los recursos
físicos, técnicos y las herramientas para realizar las pruebas (dipositivo móvil: tablet lenovo,
smartphone samsung y htc); también se realizarón diseños de interfaces de la aplicación, para así
pasar a la realización de diagramas, casos de uso de la lógica de comportamiento de la aplicación
móvil.
2.2.1. Software de desarrollo
Para el funcionamiento de la aplicación, está consumirá un Servicio Web WCF, por lo que es
necesario que la aplicación utilice internet Wi-fi o de datos móviles.
Software: Se considera Visual Studio 2015, con la integración de Xamarin 4 que habilita la
sección de desarrollo cross-platform.
En la Figura 19 se observan las aplicaciones disponibles que pueden utilizarse para desarrollar
aplicaciones móviles.
Servicio Web: Tanto para la aplicación como el servicio se desarrollarán en Visual Studio.
Figura 20. Captura de pantalla de la vista de la creación del Web Service WCF
Fuente: Elaboración propia, con base en el IDE de Visual Studio 2015
La Tabla 7 especifica los recursos físicos y técnicos necesarios para el desarrollo de la aplicación
móvil.
Unidad de disco duro de 5400 rpm Xamarin 4 para Visual Studio 2015
(revolución por minuto)
La Tabla 8 explica los recursos físicos y técnicos necesarios para alojar un servidor de base de
datos.
61
2.2.3. Arquitectura
En la Figura 21 se muestra que la aplicación está instalada en el dispositivo móvil o cliente, el cual
consumirá el Web Service WCF que contiene la lógica de las operaciones Create, Read, Update y
Delete (CRUD) que significa crear, leer, actualizar y eliminar de los módulos proyectos y
actividad.
El Web Service WCF funciona como intermediario entre la aplicación y la base de datos lo que
permitirá una mayor seguridad de información, en atención a que la conexión a la base de datos se
realiza por autenticación de usuario.
El comportamiento inicia de la siguiente forma: cliente envía una petición y es respondida por
parte del servicio como se ve en la Figura 21.
En él se especifican las opciones a las que tiene acceso el usuario y la secuencia según sus
elecciones como se ve en la Figura 22 el menú comprende el módulo proyecto y módulo actividad
con las operaciones registrar, eliminar, actualizar y consultar. Según Rumbaugh y Jacobson (2000)
un diagrama de actividad es aquel que contiene bifurcaciones, así como divisiones de control. Los
hilos concurrentes representan actividades que se pueden realizar por los diversos objetos o
personas en una organización; los estados de actividad se representan con los extremos
redondeados que contienen una descripción de actividad y sus transiciones con flechas.
63
Son una unidad coherente de funcionalidad, expresada como transacción entre los actores y el
sistema como menciona Rumbaugh y Jacobson (2000), es decir, muestran la funcionalidad del
sistema de acuerdo a los permisos que perciben los usuarios llamados actores, en la Figura 23 se
observa que los dos usuarios tienen permiso para agregar, modificar el eliminar proyectos o
actividades.
Los casos de uso se describen a partir del comportamiento de un actor, así como el del sistema
como se muestra en las siguientes descripciones paso a paso, también las precondiciones,
poscondiciones, los cursos alternos y requerimientos especiales.
65
2.2.6.1. Caso de uso iniciar sesión
La Tabla 9 muestra la descripción de los actores, propósito, resumen, tipo precondiciones así como
las poscondiciones, una vez que se explican estas a continuación en la Tabla 10 se visualiza el
comportamiento del usuario y la aplicación para poder iniciar sesión.
1.- Este caso de uso solicita abrir la aplicación. 2.- Revisa que el dispositivo móvil tenga conexión
a internet si la respuesta es sí continua al paso 3, si
la respuesta es no se cierra la aplicación para
activar Wi-fi o datos móviles.
3.- El usuario solicita ingresar a la aplicación 4.-La aplicación muestra una interfaz donde solicita
ingresar: usuario y contraseña.
5.-El usuario ingresa su usuario y contraseña 6.-La aplicación envía la solicitud al Web Service
WCF llevando consigo los datos de usuario y la
contraseña.
7.-El servicio realiza su validación con los datos
recibidos, si los datos son correctos responde la
solicitud con un “true”.
8.- La aplicación habilita las opciones a las que
tiene acceso el usuario (Menú).
Cursos Alternos:
Inciso 4: Si la aplicación no puede comunicarse con el servicio la aplicación no funcionará.
Inciso 5: Si los datos son incorrectos el servicio mandará un mensaje de alerta y la aplicación solicitará
ingresar los datos de nuevo para iniciar sesión.
Requerimientos especiales
El dispositivo debe de contar con acceso a internet
Tabla 10. Comportamiento de usuario-aplicación en iniciar sesión
Fuente: Elaboración propia
66
2.2.6.2. Caso de uso registrar proyecto
1.- Este caso de uso comienza cuando el 2.-La aplicación muestra una interfaz donde solicita
usuario solicita registrar un nuevo proyecto ingresar: nombre del proyecto, la rentabilidad y las
observaciones así como seleccionar prioridad,
categoría, responsable, partner, empresa, periodo,
avance, principal y fecha.
3.-El usuario ingresa y selecciona los datos 4.-La aplicación envía la solicitud de registrar nuevo
solicitados proyecto al Web Service WCF llevando consigo todos
los datos.
5.-El servicio realiza su validación con los datos
recibidos, si los datos son correctos responde a la
aplicación la solicitud con un “true” y devolviendo la
clave del proyecto agregado.
6.- La aplicación muestra un mensaje de “Proyecto
guardado”.
7.-El usuario selecciona “OK” 8.-La aplicación se devuelve al menú de la aplicación
con el proyecto seleccionado.
Cursos Alternos:
Inciso 4: Si la aplicación no puede comunicarse con el servicio la aplicación no funcionará
Inciso 5: Si los datos son incorrectos el servicio mandará un mensaje de alerta y en la interfaz un mensaje
“Proyecto no guardado”.
Requerimientos especiales
El dispositivo debe de contar con acceso a internet
Tabla 12. Comportamiento usuario-aplicación en registrar proyecto
Fuente: Elaboración propia
67
2.2.6.3. Caso de uso editar proyecto
En la Tabla 13 se muestra la descripción de los elementos del caso de uso para editar proyecto, así
como la descripción del comportamiento entre actor y aplicación móvil en la Tabla 14.
1.- Este caso de uso comienza cuando el usuario 2.-La aplicación envía la solicitud al Web Service
solicita editar un proyecto, seleccionando el WCF llevando también id del proyecto.
proyecto
3.-El usuario ingresa y selecciona los datos 4.-El Web Service WCF recibe la petición la ejecuta
solicitados y la devuelve a la aplicación enviando toda la
información del proyecto.
5.-La aplicación muestra la información del
proyecto en la interfaz editar proyecto.
6.- El usuario edita la información y selecciona 7.- La aplicación recupera los datos del proyecto y
guardar los envía al Web Service para actualizar.
8.-El Web Service WCF recibe la petición y lo
ejecuta, si los datos son correctos devuelve un
mensaje igual a verdadero que quiere decir
proyecto actualizado.
9.-La aplicación recibe el resultado y envía un
mensaje a la interfaz de “Proyecto actualizado”.
10.-El usuario selecciona “OK” 11.-Muestra la interfaz de menú.
Cursos Alternos:
Inciso 2: Si la aplicación no puede comunicarse con el servicio la aplicación no funcionará.
Inciso 8: Si los datos son incorrectos el servicio mandará un mensaje de alerta y en la interfaz el mensaje de
“Proyecto no actualizado”.
Requerimientos especiales
El dispositivo debe de contar con acceso a internet.
Tabla 14. Comportamiento usuario-aplicación en editar proyecto
Fuente: Elaboración propia
68
2.2.6.4. Caso de uso eliminar proyecto
La Tabla 15 muestra la descripción funcional para una eliminación de un proyecto existente; por
otro lado se presenta el comportamiento funcional tanto de los actores como de la aplicación móvil
en la Tabla 16.
1.- Este caso de uso comienza cuando el 2.-La aplicación solicita seleccionar proyecto.
usuario solicita registrar una actividad.
3.-El usuario selecciona proyecto. 4.-La aplicación recupera el identificador del
proyecto y solicita nombre de la actividad, fecha de
inicio, fecha de término, comentario y seleccionar
estado: Pendiente o Terminado.
5.-El usuario agrega nombre de la actividad, 6.-La aplicación envía la solicitud registrar
fecha de inicio, fecha de término, comentario y actividad al Web Service WCF con los datos
seleccionar estado: Pendiente o Terminado. recibidos del usuario, si los datos son correctos
responde a la aplicación la solicitud con un “true”.
7.- La aplicación muestra un mensaje de “Actividad
guardada”.
8.-El usuario selecciona “OK” 9.-La aplicación se devuelve al menú de la
aplicación.
Cursos Alternos:
Inciso 4: Si la aplicación no puede comunicarse con el servicio, la aplicación no funcionará.
Inciso 5: Si los datos son incorrectos, el servicio mandará una alerta y en la interfaz un mensaje con la
descripción del error.
Requerimientos especiales
El dispositivo debe de contar con acceso a internet.
Tabla 18. Comportamiento usuario-aplicación en registrar actividad
Fuente: Elaboración propia
70
2.2.6.6. Caso de uso editar actividad
El propósito de este caso implica editar una actividad por lo que se muestran más detalles de los
elementos en la Tabla 19 y en la Tabla 20 se visualiza qué acciones realizan los actores y qué
acciones realiza la aplicación móvil.
1.- Este caso de uso comienza cuando el 2.-La aplicación solicita seleccionar proyecto.
usuario solicita editar una actividad
3.-El usuario selecciona proyecto 4.-La aplicación recupera el id del proyecto y
solicita sus actividades al Web Service WCF.
5.-El Web Service WCF ejecuta la petición y
devuelve la consulta de las actividades y responde
a la aplicación la solicitud con un “true”.
6.- La aplicación recibe la información y la carga
en la interfaz.
7.-El usuario selecciona la actividad 8.- La aplicación recupera la información que le
envié el Web Service WCF. La aplicación envía a la
interfaz editar actividad con la información de la
actividad.
9.-El usuario edita la información necesaria y 10.- La aplicación envía la información al Web
guarda Service WCF y devuelve el resultado.
11.- La aplicación envía un mensaje de “Actividad
actualizada”.
12.-El usuario selecciona “OK” 13.-La aplicación se devuelve al menú.
Cursos Alternos:
Inciso 4: Si la aplicación no puede comunicarse con el servicio, la aplicación no funcionará.
Inciso 5: Si los datos son incorrectos, el servicio mandará una alerta y en la interfaz mensaje con la
descripción del error.
Requerimientos especiales
El dispositivo debe de contar con acceso a internet.
Tabla 20. Comportamiento usuario-aplicación en editar actividad
Fuente: Elaboración propia
71
2.2.6.7. Caso de uso eliminar actividad
El propósito de este caso consiste en eliminar una actividad como se observa en la Tabla 21 donde
se especifican las precondiciones y poscondiciones. La Tabla 22 representa el comportamiento
paso a paso de los actores y la aplicación móvil para realizar la eliminación de una actividad.
1.- Este caso de uso comienza cuando el 2.-La aplicación recupera el id de la actividad y
usuario selecciona una actividad para eliminar. envía la solicitud al Web Service WCF en eliminar
actividad.
4.-El Web Service WCF recibe la solicitud y
devuelve el resultado si es “true”, se hizo la
eliminación.
5.-La aplicación recibe el resultado, envía un
mensaje en la interfaz con un mensaje “Actividad
eliminada”.
6.-El usuario selecciona “OK”. 7.- La aplicación se devuelve al menú.
Cursos Alternos:
Inciso 2: Si la aplicación no puede comunicarse con el servicio, la aplicación no funcionará.
Inciso 4: Si los datos son incorrectos, el servicio mandará una alerta y en la interfaz un mensaje con las
descripción del error.
Requerimientos especiales
El dispositivo debe de contar con acceso a internet.
Tabla 22. Comportamiento usuario-aplicación en eliminar actividad
Fuente: Elaboración propia
2.3. Producción
2.3.1. Diccionario de datos
En la
Entidad Atributos Llaves Tipo de Null Descripción Dominio
Datos
Actor Identificador * bigint NN Número asignado al Actor {0-9}
al momento de ser
registrado
Nombre nvarchar(70) -- Nombre del Actor. {A-Z|a-z|.}
Iniciales nvarchar(10) -- Iniciales del Actor. {A-Z|a-z|}
Prioridad int NN Número de partner que es {1-5}
asignada en relación a un
proyecto.
IdTipoActor ** bigint NN Tipo de Actor que puede {0-9}
ser responsable o partner.
Origen nvarchar(50) -- El origen de un actor {A-Z|a-z|}
puede ser interno, externo,
externo2 y externo3.
IdUsuario ** bigint -- Clave asignado a un {0-9}
Usuario en relación a un
Actor
Tabla 24 se muestra la descripción detallada de los atributos de la entidad Actor, esta tiene una
relación con la entidad TipoActor.
Los atributos de la entidad Principal son la clave de principal, descripción, clave del tipo de
principal y la clave de dependencia como se ve en la Tabla 27.
Entidad Atributos Llaves Tipo de Null Descripción Dominio
Datos
Principal Identificador * Bigint NN Número asignado a {0-9}
Principal al momento de
ser registrado.
Descripción varchar(100) NN Nombre de Principal. {A-Z|a-z|}
IdTipoPrincipal ** Bigint NN Clave de Tipoprincipal que {0-9}
es asignada en relación al
tipo de principal.
IdDependencia ** Bigint -- Número asignado del {0-9}
catálogo Tipo de Principal
referente a Dependencia.
Tabla 27. Diccionario de datos de la entidad Principal
Fuente: Elaboración propia
La Tabla 29 muestra los atributos de la entidad o tabla roles, estos roles se asignan a los usuarios.
La tabla Usuario tiene contiene atributos que son la clave de usuario, nombre, contraseña y correo
como se ve en la Tabla 32.
Tablas:
a) Actividades
b) Proyectos
Procedimientos almacenados
a) Insertar proyecto g) Eliminar proyecto
b) Insertar proyectoactor h) Baja de un proyecto
c) Insertar proyectoempresa i) Insertar actividad
d) Actualizar proyecto j) Actualizar actividad
e) Actualizar proyectoactor k) Eliminar actividad
f) Actualizar proyectoempresa
Un diagrama de clases describe los tipos de objetos que hay en el sistema y las diversas clases de
relaciones estáticas que existen entre ellos según Fowler & Scott (1999).
78
En la Figura 24 se aprecia el modelo de clases que se rescata de la base de datos en SQL Server,
se muestra en Visual Studio y para actualizar solo basta con seleccionar la opción update
(actualizar) en el modelo.
2.3.4. Diagrama de Entidad-Relación
Un diagrama de Entidad-Relacion, también llamado diagrama E-R se utiliza para representar las
entidades que contiene una base de datos.
“Los diagramas de entidad-relación ayudan al analista de sistemas a comprender las
entidades y relaciones que conforman el sistema organizacional. Los diagrmas E-R pueden
describir relaciones uno a uno, uno a muchos, muchos a uno y muchos a muchos” (E.
Kendall & E. Kendall, 2005).
La Figura 26 muestra el diseño de interfaz para iniciar sesión de la aplicación lo cual se describe
en la Tabla 35.
La Figura 27 muestra el diseño de la interfaz de menú de la aplicación, así como sus componentes
que la integran mismos que se describen en la Tabla 36.
82
En la Figura 29 se aprecian cada uno de los elementos que serán necesarios para realizar una
modificación a un proyecto, la descripción se aprecia en la Tabla 38.
85
La Figura 31 muestra los elementos necesarios para guardar una actividad que le pertenece a un
proyecto, una descripción de ello se ve en la Tabla 39.
En la Figura 31 se aprecian los elementos que pueden ser editados para actualizar una actividad de
un proyecto, estos se describen en la Tabla 40.
88
Una vez creada la aplicación de tipo WCF Service Aplication o en español aplicación de servicio
WCF la estructura de la aplicación en Visual Studio ver Figura 32.
Numeración Nombre
1 Nombre del proyecto
2 La clase del modelos de datos
3 Administrador de la aplicación
Web
4 Clase que funciona como cliente
(opcional)
5 Librerías del servicio WCF
1. Modelo de datos: Según (Piñeiro Gómez) es un conjunto de símbolos, conceptos y reglas que
permiten representar los datos que se van a almacenar en la base de datos.
2. Aplicación Web: Es aquella que es subida a la nube mediante un servidor IIS para que el
usuario final pueda hacer peticiones conforme a las funcionalidades que se le brinden en la
aplicación móvil.
3. Aplicación de cliente: Aquí se crea un cliente para comprobar que el Servicio Web esté
funcionando correctamente.
4. Servicio Web WCF: Está compuesto por el Service1.cs y el IService1.cs
a) Service1.cs: Aquí se alojan loa métodos declarados en la interface.
b) IService.cs: Aquí se define un grupo de funciones relacionadas que una
clase puede implementar.
En la Figura 34 se observa el uso de ADO.NET Entity Data Model para uso de contexto datos que
contiene la base de datos en SQL Server.
Figura 34. Captura de pantalla de la vista agregar ADO.NET Entity Data Model
Fuente: Elaboración propia, con base en el IDE de Visual Studio 2015
En la Figura 35 se observa que Code Fist from Database es la herramienta que permite obtener
el modelo desde la base de datos existente, crear la conexión y que se incluyan todos los objetos
Figura 35. Captura de pantalla de vista agregar módelo (Code First from database)
Fuente: Elaboración propia, con base en el IDE de Visual Studio 2015
En la Figura 36 se observan, las entidades, así como las vistas y los procedimientos almacenados
mismos que van a ser utilizados; todo ello contenido en un archivo con extensión .edmx
La Tabla 42 muestra una descripción del comportamiento de los métodos que se crearon y
utilizaron en el servicio Web WCF.
Nombre Descripción
1) Diagrama de flujo de iniciar sesión Este proceso del servicio inicia y solicita dos datos que es usuario
y contraseña, una vez que se ingresen, el servicio valida que los
datos sean correctos, si son correctos el servicio responde con un
“true”(verdadera) que se interpreta como correcto y finaliza el
proceso, si son incorrectos responde con un “false” (se interpreta
como error) que se muestra en la Figura 39.
2)Diagrama de flujo obtener En este proceso se declara una variable de tipo lista la cual es la
proyectos responsable de almacenar temporalmente una lista de proyectos
activos, para lograr esto se declara una variable de tipo contexto
para poder realizar el mapeo de objetos de la entidad (Proyecto),
si la entidad no cuenta con objetos entonces se regresa la lista de
proyectos vacía, en caso contrario se valida que los objetos
95
cuenten con el atributo activo, si es así se agregan a la lista de
proyectos, si no regresa a la entidad para verificar si hay otro
objeto activo, este proceso termina cuando no existe ningún otro
objeto para recorrer en la entidad, finalmente se devuelve una
lista de proyectos con que comparten el atributo (Activo); se
observa en la Figura 40.
3)Diagrama de flujo obtener actores En este proceso se declara una variable de tipo lista la cual es la
responsable de almacenar temporalmente una lista de actores,
para lograr esto se declara una variable de tipo contexto para
poder realizar el mapeo de objetos de la entidad (Actores), si la
entidad no cuenta con objetos entonces se regresa la lista de
proyectos vacía, en caso contrario se agregan a la lista de actores,
este proceso termina cuando no existe ningún otro objeto para
recorrer en la entidad, finalmente se devuelve una lista de actores
como se muestra en la Figura 41.
4)Diagrama de flujo obtener empresas En este proceso se declara una variable de tipo lista la cual es la
responsable de almacenar temporalmente una lista de empresas,
para lograr esto se declara una variable de tipo contexto para
poder realizar el mapeo de objetos de la entidad (Empresas), si la
entidad no cuenta con objetos entonces se regresa la lista de
empresas vacía, en caso contrario se agregan a la lista de
empresas, este proceso termina cuando no existe ningún otro
objeto para recorrer en la entidad, finalmente se devuelve una
lista de empresas como se ve en la Figura 42.
5) Diagrama de flujo obtener En este proceso se declara una variable de tipo lista la cual es la
principales responsable de almacenar temporalmente una lista de principales,
para lograr esto se declara una variable de tipo contexto para
poder realizar el mapeo de objetos de la entidad (Principales), si
la entidad no cuenta con objetos entonces se regresa la lista de
principales vacía, en caso contrario se agregan a la lista de
principales, este proceso termina cuando no existe ningún otro
96
objeto para recorrer en la entidad, finalmente se devuelve una
lista de principales. Este proceso se observa en la Figura 43.
6)Diagrama de flujo guardar proyecto El presente proceso inicia con la declaración de 4 variables de
tipo lista la primera encargada de presentar las lista de
principales con el proceso obtener principales, la segunda
encargada de presentar la lista de actores con el proceso obtener
actores, la tercera encargada de presentar la lista de empresas con
el proceso obtener empresas, una vez así tiene por objeto guardar
un proyecto; solicita los siguientes datos(Categoría, prioridad,
principal, avance, fecha compromiso, nombre del proyecto,
principal, observaciones, rentabilidad, usuario, actores,
empresas), después de haber ingresado los datos antes
mencionados valida los datos, si los datos son incorrectos regresa
a iniciar, si los datos son correctos sigue con la recuperación de
los actores seleccionados de la lista, también las empresas
seleccionadas de la lista finalmente guarda el proyecto y
devuelve un “true”(guardado). Este se visualiza en la Figura 44.
7)Diagrama de flujo actualizar El proceso inicia con la solicitud de la clave del proyecto a
proyecto actualizar, si el proyecto no existe retorna un “false” (error), si
existe obtiene los siguientes datos del proyecto (Categoría,
prioridad, principal, avance, fecha compromiso, nombre del
proyecto, principal, observaciones, rentabilidad, usuario, actores,
empresas), estos con los datos guardados con anterioridad para
ser actualizados, una vez modificando los campos valida los
datos, si los datos son incorrectos regresa un “false” (error), si los
datos son correctos sigue con la recuperación de los actores
seleccionados de la lista, de esta misma forma recupera una lista
de empresas finalmente guarda el proyecto y devuelve un
“true”(actualizado). Dicho proceso se halla en la Figura 45.
8)Diagrama de flujo baja de proyecto Este proceso inicia con la solicitud de la clave del proyecto a dar
de baja, si el proyecto no existe regresa un “false” (error), si el
97
proyecto existe cambia su atributo activo a no activo
posteriormente devuelve un “true” (proyecto dado de baja).Se
puede observar en la Figura 46.
9)Diagrama de flujo guardar actividad El presente proceso inicia con la solicitud los siguientes datos
(clave del proyecto, nombre de la actividad, fecha de inicio, fecha
de término, comentario, estado), después de haber ingresado los
datos antes mencionados valida los datos, si los datos son
incorrectos devuelve un “false” (error) y regresa a iniciar, si los
datos son correctos agrega la actividad al proyecto por ultimo
devuelve un “true” (guardado). Mismo que se visualiza en la
Figura 47.
10)Diagrama de flujo actualizar El proceso inicia con la solicitud de la clave del proyecto, si el
actividad proyecto no existe retorna un “false” (error), si existe muestra la
lista de las actividades que le pertenecen después selecciona la
actividad y obtiene los datos(clave del proyecto, clave de la
actividad, nombre de la actividad, fecha de inicio, fecha de
término, comentario, estado) guardados anteriormente, una vez
modificando los campos valida los datos, si los datos son
incorrectos regresa un “false” (error), si los datos son correctos
finalmente actualiza la actividad del proyecto y devuelve un
“true”(actualizado). Se observa en la Figura 48.
Consumir el Web Service WCF desde la aplicación en desarrollo, se logró agregando una referencia
de servicio a la aplicación en desarrollo como se muestra en la Figura 50.
En la Figura 51 se visualiza la ventana para agregar URL de la referencia de servicio para después
cargar los elementos que permitirán la conexión al servicio Web como se ve en Figura 52.
Al realizar una modificación en la base de datos, creando procedimientos almacenados, es
necesario actualizar el modelo en el servicio.
Para hacer las pruebas al Web Service WCF se ingresa la URL del servicio en WCF Test Client.
Una vez que se ingresa la URL, el Test Client WCF (Cliente de prueba del Servicio Web WCF)
manda una petición al servidor en el que solicita todos los métodos que contiene como se visualiza
en la Figura 53, después para ver el comportamiento de los métodos agregados al Servicio Web
WCF es necesario seleccionarlo como se observa en la Figura 54.
Figura 54. Captura de pantalla de la vista del WCF Test Client obteniendo los métodos
Fuente: Elaboración propia, con base en el IDE de Visual Studio 2015
112
2.4.6. Casos de prueba
El cliente de prueba WCF recibe en su interfaz todos los parámetros que el Servicio Web WCF
solicita para realizar esta prueba como se observa la Figura 55.
En las tablas (Tabla 43,
Tabla 44,Tabla 45,Tabla 46,Tabla 47,Tabla 48) se visualiza el comportamiento de caso de prueba
según su título.
Figura 55. Captura de pantalla del cliente de prueba WCF para registrar un proyecto
Fuente: Elaboración propia, con base en el IDE de Visual Studio 2015
Una vez que se agregan los parámetros se realiza la operación, y el servidor responde con un “true”
cuando la operación se realizó correctamente y “false” cuando no se realiza la operación como se
observa en la Figura 56.
113
Figura 56. Captura de pantalla de respuesta a la solicitud del cliente registrar proyecto
Fuente: Elaboración propia, con base en el IDE de Visual Studio 2015
En la Figura 58 se muestran los datos que solicita el servicio Web para actualizar un proyecto; una
vez que fueron ingresados opcionalmente por el cliente manda un mensaje de respuesta como se
aprecia en la Figura 59.
115
Figura 58. Captura de pantalla de los parámetros que solicita el Servicio Web WCF para actualizar proyecto
Fuente: Elaboración propia, con base en el IDE de Visual Studio 2015
Figura 61. Captura de pantalla del cliente de prueba WCF para dar de baja un proyecto
Fuente: Elaboración propia, con base en el IDE de Visual Studio 2015
Figura 62. Captura de pantalla para invocar método y confirmar baja de proyecto
Fuente: Elaboración propia con base en el IDE de Visual Studio 2015
Figura 63. Captura de pantalla de la respuesta al cliente de prueba WCF a la solicitud a baja de proyecto
Fuente: Elaboración propia, con base en el IDE de Visual Studio 2015
Figura 64. Captura de pantalla de los parámetros agregados para registrar actividad a un proyecto
Fuente: Elaboración propia, con base en el IDE de Visual Studio 2015
120
Figura 65. Captura de pantalla de respuesta del Servicio Web WCF para registrar actividad
Fuente: Elaboración propia, con base en el IDE de Visual Studio 2015
Para actualizar una actividad primero se obtiene la información de un proyecto para ver las
actividades que le pertenecen como se ve en la Figura 67.
Figura 67. Captura de pantalla de la consulta de un proyecto por el cliente de prueba WCF
Fuente: Elaboración propia, con base en el IDE de Visual Studio 2015
122
En la Figura 68 se observa que el cliente confirma la solicitud para actualizar la actividad y
posteriormente el servicio Web envía la respuesta a la petición del cliente como se ve en la Figura
69.
Figura 68. Captura de pantalla para confirmar llamada de método actualizar actividad
Fuente: Elaboración propia, con base en el IDE de Visual Studio 2015
Figura 69. Captura de pantalla de la respuesta mostrada en la interfaz de cliente de prueba WCF
Fuente: Elaboración propia, con base en el IDE de Visual Studio 2015
123
Se refiere a la técnica para recoger información bi-direccional por ejemplo, en las columnas se
representan los casos de pruebas y en las filas los distintos requisitos
ACOTACIÓN
R Requerimiento
T1 Prueba registrar proyecto
T2 Prueba actualizar proyecto
T3 Prueba eliminar proyecto
T4 Prueba registrar actividad
T5 Prueba actualizar actividad
T6 Prueba eliminar actividad
T7 Prueba cancelar operación
La Tabla 50 representa los requerimientos que han sido comprobados cada uno con una prueba o
también llamado “test”.
T1 T2 T3 T4 T5 T6 T7
R-Conexión a internet
R-Iniciar sesión
R-Registrar proyecto
R-Actualizar proyecto
R-Eliminar proyecto
R-Registrar actividad
R-Actualizar actividad
R-Eliminar actividad
Tabla 50. Matriz de pruebas de ejecución
Fuente: Elaboración propia
126
2.4.9. Velocidad de ejecución de la aplicación
En función a velocidad del internet la aplicación se ejecutará en mayor tiempo si la velocidad es
menos de 1 Mbps o menor tiempo si rebasa los 5 Mbps como se observa en la Tabla 51.
En la Figura 72 se observa una prueba realizada con “speedtest” en la que se presenta la velocidad
en Mbps (Mega bits por segundo) y la velocidad de carga en Mbps.
RESULTADOS
128
La correcta implementación de procedimientos almacenados y el uso de Entity Framework permite
que el Servicio Web WCF rescate los datos sin tener la necesidad de escribir en código la conexión
a la base de datos cada vez que se requiera hacer una operación, lo que proporciona seguridad.
El Servicio Web WCF utiliza el modelo de la base de datos proporcionado por Entity Framework,
en cada método creado se solicitan los procedimientos almacenados que le corresponden; al
respecto, solicitando solo la información de cada dato, esta confirma que los datos solicitados no
se encuentren vacíos, si es así se envía un mensaje de error a la aplicación y si no la petición de la
aplicación se cumplirá. Para ver el comportamiento del Servicio Web WCF está al alcance el cliente
de prueba WCF, que podrá hacer una conexión al Servicio Web WCF con solo ingresar la URL del
Servicio Web.
Con la automatización de los procesos el usuario puede ingresar a la aplicación móvil de forma
remota aun si el usuario está viajando o en una reunión corporativa, sin tener que utilizar hojas
adicionales, teniendo en cuenta que todo es realizado y guardado gracias a la aplicación móvil
creada.
Los procesos automatizados en la aplicación pueden verse en la Tabla 52 y la secuencia como se
muestra en la Figura 73.
Automatizados
Procesos SI NO
Registrar un proyecto
Actualizar un proyecto
Baja de un proyecto
Registrar actividad a un proyecto
Actualizar actividad de un proyecto
Eliminar actividad de un proyecto
Tabla 52. Resumen de procesos automatizados
Fuente: Elaboración propia
129
En la Figura 73 el usuario puede iniciar sesión, así mismo cerrar la aplicación, ingresar al menú de
inicio y manipular los módulos proyecto o actividades que le permiten agregar, actualizar,
consultar o eliminar información.
Es importante destacar el uso del IDE de Visual Studio 2015 en conjunto con Xamarin permitieron
la correcta automatización de las actividades que se llevan a cabo en la agencia CPM Medios. La
programación de pequeños ciclos de desarrollo rápidos que sugiere la metodología Mobile-D
permitió la validación o corrección por parte del usuario final de la aplicación móvil, además de
generar un mayor número de pruebas, permitiendo así lograr funcionalidad planeada por semanas
y poder avanzar en nuevas implementaciones.
130
CONCLUSIONES
Las pruebas realizadas en la última fase del desarrollo, permiten el envío de mensajes que dan
como resultado el estado de la operación, que puede ser exitoso o incorrecto.
La implementación del Web Service WCF, reduce la carga de código en la aplicación móvil y
brinda seguridad a la base de datos por autenticación; desde la aplicación, funciona como
intermediario entre la base de datos y la aplicación, es decir, quien se encarga de responder a las
peticiones de la aplicación móvil es el servidor.
Para mejorar la experiencia de usuario es recomendable hacer una consulta mediante filtros por
responsable y partner de un proyecto, lo que reducirá en tiempo la carga de los proyectos activos,
también consumirá menos datos para localizar un proyecto o para hacer la operación requerida por
el usuario ya sea registrar, modificar, eliminar o consultar actividades.
Detalle de
proyecto
ASP.NET: IDE de desarrollo de Microsoft®, modelo de desarrollo Web unificado que incluye
elementos necesarios para crear aplicaciones Web (Ceballos Sierra, 2013).
CSS (Cascading Style Sheet): Hojas de estilo en cascada, su finalidad es definir cómo se han de
mostrar los elementos HTML y con qué estilo se han de presentar (Egea García, 2007).
HTTP: Protocolo de Transferencia de Hipertexto, lenguaje que utilizan los servidores y los clientes
Web para comunicarse entre ellos, soportando la recuperación y presentación de texto, gráficos,
animaciones y la reproducción de sonido (Desongles Corrales Juan, Balongo Montiel , & Ochoa
Guerra (2002).
iOS: Sistema operático móvil creado por Apple para dispositivos móviles (Bellido Quintero,
2013).
.NET Framework: Es un entorno de ejecución runtime que administra aplicaciones cuyo destino
es .NET Framework. Incorpora Common Language Runtime, que proporciona la administración
de la memoria y otros servicios del sistema, y una biblioteca de clases completa, que permite a los
programadores aprovechar el código estable y fiable de todas las áreas principales del desarrollo
de aplicaciones (Microsoft®, 2017).
SDK: Kid de desarrollo de Software de .NET Framework que cuenta con las herramientas para
escribir, construir, probar e implementar aplicaciones (Ramírez , 2005).
134
Tablet: Es un dispositivo electrónico que tiene un tamaño intermedio entre el ordenador y el móvil;
un ordenador con el que se puede interactuar a través de una pantalla táctil, sin necesidad de usar
un teclado físico y un ratón (Andrés Cabrerizo, 2015).
Web Service: Son componentes que se ejecutan en el servidor y muestran una interfaz a través de
la cual otras aplicaciones acceden a los servicios ofrecidos (Ceballos Sierra, 2013).
Ceballos Sierra, F. J. (2012). Visual Basic™: Interfaces gráficas y aplicaciones para Internet con WPF, WCF
y Silverlight . España: RA-MA.
Ceballos Sierra, F. J. (2013). Enciclopedia de Microsoft® Visual Basic™: Interfaces gráficas y aplicaciones
para Internet con Windows Forms y ASP.NET 3.ª edición. España: RA-MA.
Ceballos Villach, J., Gañán Jiménez, D., Conesa Caralt, J., & Rius Gavidia, À. (2010). Introducción a .NET.
Barcelona: EDITORIAL UOC.
Cobo Yera, A. (2007). Diseño y programación de base de datos. España: Vision Libros.
CONACYT. (26 de Noviembre de 2015). Agencia Informativa del Consejo Nacional de Ciencia y
Tecnología. Obtenido de Agencia Informativa del Consejo Nacional de Ciencia y Tecnología:
http://conacytprensa.mx/index.php/centros-conacyt/3943-uso-de-apps-en-mexico-
oportunidad-para-pymes-estudio-nota
Cuello, J., & Vittone, J. (2013). Diseñando apps para móviles. Argentina: Sin Ed.
Desongles Corrales Juan, Balongo Montiel , M., & Ochoa Guerra, O. (2002). Informática para las
opciones a la comunidad autónoma de las Illes Balears . España: MAD.
E. Kendall, K., & E. Kendall, J. (2005). Análisis y diseño de sistemas. México: PEARSON EDUCACIÓN.
Egea García, C. (2007). Diseño web para todos I accesibilidad al contenido en la web. Barcelona: Icaria.
Fowler, M., & Scott, K. (1999). UML gota a gota. México: Addison Wesley Logman.
Guérin, B. A. (11 de Diciembre de 2013). Diseño y desarrollo de aplicaciones Web. Barcelona: Ediciones
ENI.
López Rodríguez, J. (16 de Agosto de 2016). Organigrama. (M. Cirilo Mejia, Entrevistador)
M. Kaplan, S. (2014). Essential English/Spanish and Spanish/English legal dictionary. Alphen aan den Rijn:
Wolters Kluwer Law & Business.
Microsoft®. (23 de agosto de 2017). Microsotf® Developer Network. Obtenido de Microsotf® Developer
Network: https://msdn.microsoft.com/es-mx/library/dn762121.aspx
Mobile Marketing Association. (2011). Libro blanco de apps. España: Sin Ed. Obtenido de
http://www.mmaspain.com/wp-content/uploads/2015/09/Libro-Blanco-Apps.pdf
Patel, C. (2017). Developing-Service Applications Using the Windows Comunication Fundation (WCF)
Framework. USA: IGI Global.
Piñeiro Gómez, J. (2013). Bases de datos relacionales y modelos de datos . España: Paraninfo.
Ramírez , J. F. (2005). Aprenda Practicando Visual Basic 2005 usando Visual Studio 2005. México:
PEARSON EDUCACIÓN.
Ramos Salavert, I., & Lozano Pérez , M. D. (2000). Ingeniería del software y bases de datos, tendencias
actuales. España: Ediciones de la Universidad de Castilla-La Mancha.
Rumbaugh, J., & Jacobson, I. (2000). El lenguaje unificado de modelado. Madrid: PEARSON EDUCACION.
Valtion Teknillinen Tutkimuskeskus. (2006). Agile software technologies research programme. Obtenido
de Agile software technologies research programme: http://agile.vtt.fi/projects.html
Zorrilla Castro, U., de la Torre Llorente, C., Hernandez Saa, Y., & Peláez Aller, P. (2011). ADO.NET Entity
Framework 4.1-Aplicaciones y servicios centrados en datos. krasis PRESS.