Post on 14-Jul-2020
1
SISTEMA TELEMÁTICO PARA LA GESTIÓN DE PROYECTOS DE LA EMPRESA VIRTUAL SMART BUSINESS
JUAN SEBASTIAN MACIAS ARIAS
JHON ESTEBAN JIMÉNEZ GARCÍA
INGENIERIA EN TELEMÁTICA FACULTAD TECNOLÓGICA
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS BOGOTÁ DC
2018
2
SISTEMA TELEMÁTICO PARA LA GESTIÓN DE PROYECTOS DE LA EMPRESA VIRTUAL SMART BUSINESS
JUAN SEBASTIAN MACIAS ARIAS
JHON ESTEBAN JIMÉNEZ GARCÍA
Trabajo de grado presentado como requisito para optar al título de
INGENIERO EN TELEMÁTICA
MIGUEL ANGEL LEGUIZAMÓN PÁEZ
Tutor
INGENIERIA EN TELEMÁTICA FACULTAD TECNOLÓGICA
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS BOGOTÁ DC
2018
3
TABLA DE CONTENIDO
1. ORGANIZACIÓN DEL PROYECTO ............................................................... 10
1.1 TÍTULO .................................................................................................... 10
1.2 TEMA ...................................................................................................... 10
1.3 FORMULACIÓN DEL PROBLEMA .......................................................... 10
1.4 ALCANCES Y LIMITACIONES ................................................................ 10
1.4.1 ALCANCE ......................................................................................... 10
1.4.2 LIMITACIONES ................................................................................. 10
1.5 JUSTIFICACIÓN ...................................................................................... 11
1.6 OBJETIVOS ............................................................................................ 11
1.6.1 OBJETIVO GENERAL ...................................................................... 11
1.6.2 OBJETIVOS ESPECÍFICOS ............................................................. 11
1.7 MARCO REFERENCIAL ......................................................................... 11
1.8 MARCO TEÓRICO .................................................................................. 12
1.8.1 MARCO CONCEPTUAL.................................................................... 16
1.9 FACTIBILIDAD ........................................................................................ 17
1.9.1 FACTIBILIDAD TÉCNICA ................................................................. 17
1.9.2 FACTIBILIDAD ECONÓMICA ........................................................... 18
1.10 METODOLOGÍA ................................................................................... 20
1.11 CRONOGRAMA DE ACTIVIDADES..................................................... 23
2. ANÁLISIS E IDENTIFICACIÓN DE LA INFRAESTRUCTURA ACTUAL DE LA EMPRESA ............................................................................................................ 24
2.1 SISTEMAS DE INFORMACIÓN UTILIZADOS ACTUALMENTE ............. 24
2.2 REDES Y SERVIDORES ......................................................................... 25
3. ANÁLISIS DE SOLUCIÓN IAAS PARA LA EMPRESA .................................. 27
3.1 MARCO TEORICO .................................................................................. 27
3.2 VENTAJAS DE UNA SOLUCIÓN IAAS ................................................... 28
3.3 COMPARACIÓN DE PROVEEDORES DE SERVICIOS CLOUD ............ 28
3.3.1 MICROSOFT AZURE VS. AMAZON WEB SERVICES ..................... 30
3.3.1.1 INGRESOS GENERALES .......................................................... 30
3.3.1.2 SERVICIOS ESENCIALES ......................................................... 30
3.3.1.3 INTEGRACIÓN ........................................................................... 31
4
3.3.1.4 CENTROS DE DATOS ............................................................... 31
3.3.1.5 COSTOS .................................................................................... 32
3.3.2 TIEMPOS DE RESPUESTA IAAS ..................................................... 33
3.4 VENTAJAS PARA LA GESTIÓN DE PROYECTOS DE VIRTUAL SMART BUSINESS ........................................................................................................ 34
4. DESARROLLO DE UNA APLICACIÓN WEB Y UNA MÓVIL CON UNA ARQUITECTURA ADECUADA ............................................................................. 35
4.1 MODELO DE NEGOCIO ......................................................................... 35
4.1.1 MODELO DE PROCESOS ................................................................ 37
4.2 HISTORIAS DE USUARIO ...................................................................... 39
4.3 LEVANTAMIENTO DE HISTORIAS DE USUARIO .................................. 39
4.4 DEFINICIÓN DE ACTORES DEL SISTEMA ............................................ 45
4.5 LISTA PRELIMINAR DE CASOS DE USO .............................................. 46
4.6 DOCUMENTACIÓN DE CASOS DE USO ............................................... 47
4.7 LISTA INICIAL DE CLASES .................................................................... 59
4.8 RESPONSABILIDAD DE CLASES .......................................................... 61
4.9 DIAGRAMA DE CLASES ......................................................................... 73
4.10 DIAGRAMAS DE SECUENCIA ............................................................ 76
4.11 DIAGRAMA DE ACTIVIDADES ............................................................ 78
4.12 DIAGRAMA ENTIDAD RELACIÓN ....................................................... 78
4.13 DIAGRAMA DE DESPLIEGUE ............................................................. 79
4.14 DIAGRAMA DE COMPONENTES ........................................................ 79
4.15 DIAGRAMA DE PAQUETES ................................................................ 80
4.16 ARQUITECTURA DE LA SOLUCIÓN ................................................... 81
4.17 PRUEBAS DE INTEGRACIÓN ............................................................. 83
5. IMPLEMENTACIÓN DE UN SISTEMA DE SEGURIDAD ADECUADO PARA LA SOLUCIÓN ........................................................................................................... 88
5.1 SEGURIDAD DE LA BASE DE DATOS ................................................... 88
5.2 ACCESO A LAS APLICACIONES ........................................................... 90
6. IMPLEMENTACIÓN DE POLÍTICAS DE SEGURIDAD .................................. 91
6.1 ESTRUCTURA JERÁRQUICA DEL ÁREA DE SEGURIDAD DE LA INFORMACIÓN ................................................................................................. 91
6.2 IDENTIFICACION DE AMENAZAS.......................................................... 94
6.3 POLÍTICA DE SEGURIDAD .................................................................... 94
5
7. CONCLUSIONES .......................................................................................... 99
8. REFERENCIAS BIBLIOGRÁFICAS ............................................................. 101
6
LISTA DE TABLAS
Tabla 1 Especificaciones técnicas equipo de desarrollo ...................................................... 17
Tabla 2 Especificaciones técnicas servidor de aplicaciones ................................................ 18
Tabla 3 Especificaciones técnicas dispositivo móvil ........................................................... 18
Tabla 4 Gastos de oficina ..................................................................................................... 19
Tabla 5 Gastos de recurso humano ...................................................................................... 19
Tabla 6 Gastos de Hardware ................................................................................................ 19
Tabla 7 Gastos de Software.................................................................................................. 19
Tabla 8 Gastos totales .......................................................................................................... 20
Tabla 9 Historia de usuario 1 ............................................................................................... 39
Tabla 10 Historia de usuario 2 ............................................................................................. 40
Tabla 11 Historia de usuario 3 ............................................................................................. 40
Tabla 12 Historia de usuario 4 ............................................................................................. 40
Tabla 13 Historia de usuario 5 ............................................................................................. 41
Tabla 14 Historia de usuario 6 ............................................................................................. 41
Tabla 15 Historia de usuario 7 ............................................................................................. 42
Tabla 16 Historia de usuario 8 ............................................................................................. 42
Tabla 17 Historia de usuario 9 ............................................................................................. 43
Tabla 18 Historia de usuario 10 ........................................................................................... 43
Tabla 19 Historia de usuario 10 ........................................................................................... 44
Tabla 20 Historia de usuario 12 ........................................................................................... 44
Tabla 21 Historia de usuario 13 ........................................................................................... 45
Tabla 22 Actores del sistema ............................................................................................... 46
Tabla 23 Caso de uso 1 ........................................................................................................ 48
Tabla 24 Caso de uso 2 ........................................................................................................ 48
Tabla 25 Caso de uso 3 ........................................................................................................ 48
Tabla 26 Caso de uso 4 ........................................................................................................ 49
Tabla 27 Caso de uso 5 ........................................................................................................ 49
Tabla 28 Caso de uso 6 ........................................................................................................ 50
Tabla 29 Caso de uso 7 ........................................................................................................ 50
Tabla 30 Caso de uso 8 ........................................................................................................ 50
Tabla 31 Caso de uso 9 ........................................................................................................ 51
Tabla 32 Caso de uso 10 ...................................................................................................... 51
Tabla 33 Caso de uso 11 ...................................................................................................... 52
Tabla 34 Caso de uso 12 ...................................................................................................... 52
Tabla 35 Caso de uso 13 ...................................................................................................... 53
Tabla 36 Caso de uso 14 ...................................................................................................... 53
Tabla 37 Caso de uso 15 ...................................................................................................... 54
Tabla 38 Caso de uso 16 ...................................................................................................... 54
Tabla 39 Caso de uso 17 ...................................................................................................... 55 Tabla 40 Caso de uso 18 ...................................................................................................... 55
Tabla 41 Caso de uso 19 ...................................................................................................... 56
7
Tabla 42 Caso de uso 20 ...................................................................................................... 56
Tabla 43 Caso de uso 21 ...................................................................................................... 57
Tabla 44 Caso de uso 22 ...................................................................................................... 57
Tabla 45 Caso de uso 23 ...................................................................................................... 58
Tabla 46 Caso de uso 24 ...................................................................................................... 58
Tabla 47 Responsabilidad clase AppTareaUsuario.............................................................. 61
Tabla 48 Responsabilidad clase Asignacion_tarea .............................................................. 61
Tabla 49 Responsabilidad clase Documento........................................................................ 62
Tabla 50 Responsabilidad clase Estado_Tarea .................................................................... 62
Tabla 51 Responsabilidad clase Grupo ................................................................................ 62
Tabla 52 Responsabilidad clase LogError ........................................................................... 62
Tabla 53 Responsabilidad clase LogTransaccion ................................................................ 62
Tabla 54 Responsabilidad clase Modulo.............................................................................. 63
Tabla 55 Responsabilidad clase Movimiento ...................................................................... 63
Tabla 56 Responsabilidad clase Perfil ................................................................................. 63
Tabla 57 Responsabilidad clase Permiso ............................................................................. 63
Tabla 58 Responsabilidad clase PrioridadTarea .................................................................. 63
Tabla 59 Responsabilidad clase Proyecto ............................................................................ 64
Tabla 60 Responsabilidad clase Requerimiento .................................................................. 64
Tabla 61 Responsabilidad clase Tarea ................................................................................. 64
Tabla 62 Responsabilidad clase Tipo_movimiento ............................................................. 64
Tabla 63 Responsabilidad clase Usuario.............................................................................. 64
Tabla 64 Responsabilidad clase EntityModel ...................................................................... 65
Tabla 65 Responsabilidad clase AppTareaUsuarioBLO...................................................... 65
Tabla 66 Responsabilidad clase DocumentoBLO................................................................ 65
Tabla 67 Responsabilidad clase Estado_tareaBLO.............................................................. 66
Tabla 68 Responsabilidad clase GrupoBLO ........................................................................ 66
Tabla 69 Responsabilidad clase ModuloBLO...................................................................... 66
Tabla 70 Responsabilidad clase PerfilBLO ......................................................................... 66
Tabla 71 Responsabilidad clase PermisoPerfilBLO ............................................................ 67
Tabla 72 Responsabilidad clase PrioridadTareaBLO .......................................................... 67
Tabla 73 Responsabilidad clase ProyectoBLO .................................................................... 67
Tabla 74 Responsabilidad clase RequerimientoBLO .......................................................... 67
Tabla 75 Responsabilidad clase TareaBLO ......................................................................... 68
Tabla 76 Responsabilidad clase TipoTareaBLO.................................................................. 68
Tabla 77 Responsabilidad clase UsuarioBLO...................................................................... 68
Tabla 78 Responsabilidad clase Crud .................................................................................. 68
Tabla 79 Responsabilidad clase ICrudObject ...................................................................... 69
Tabla 80 Responsabilidad clase Asignacion_tareasController ............................................ 69
Tabla 81 Responsabilidad clase DocumentosController...................................................... 69
Tabla 82 Responsabilidad clase HomeController ................................................................ 70
Tabla 83 Responsabilidad clase LoginController ................................................................ 70
Tabla 84 Responsabilidad clase ModulosController............................................................ 70
Tabla 85 Responsabilidad clase PerfilesController.............................................................. 71
Tabla 86 Responsabilidad clase ProyectosController .......................................................... 71
8
Tabla 87 Responsabilidad clase RequerimientosController ................................................ 71
Tabla 88 Responsabilidad clase TareasController ............................................................... 72
Tabla 89 Responsabilidad clase UsuariosController............................................................ 72
Tabla 90 Prueba 1................................................................................................................. 83
Tabla 91 Prueba 2................................................................................................................. 85
Tabla 92 Identificación de activos ....................................................................................... 93
Tabla 93 Identificación de amenazas ................................................................................... 94
9
LISTA DE FIGURAS
Ilustración 1 Cronograma de actividades ............................................................................. 23
Ilustración 2 Infraestructura Virtual Smart Business ........................................................... 26
Ilustración 3 Principales razones de las empresas para adoptar servicios Cloud para el año
2017 ...................................................................................................................................... 29
Ilustración 4 Microsoft Azure vs. Amazon Web Services ................................................... 30
Ilustración 5 Data Centers de Amazon Web Services ......................................................... 32
Ilustración 6 Data Centers de Microsoft Azure.................................................................... 32
Ilustración 7 Simulación de carga a Aplicación Web en Azure desde Visual Studio.......... 33
Ilustración 8 Diagrama de procesos Login........................................................................... 37
Ilustración 9 Diagrama de procesos módulos generales ...................................................... 38
Ilustración 10 Diagrama de clases ENTITIES LAYER ....................................................... 73
Ilustración 11 Diagrama de clases DATA ACCESS LAYER ............................................. 73
Ilustración 12 Diagrama de clases BUSINESS LOGIC LAYER ........................................ 74
Ilustración 13 Diagrama de clases WEB API LAYER ........................................................ 74
Ilustración 14 Diagrama de clases WEB API LAYER general ........................................... 75
Ilustración 15 Diagrama de clases WEB USER INTERFACE LAYER ............................. 75
Ilustración 16 Diagrama de secuencia Login ....................................................................... 76
Ilustración 17 Diagrama de secuencia procesos CRUD ...................................................... 77
Ilustración 18 Diagrama de actividades ............................................................................... 78
Ilustración 19 Diagrama Entidad Relación .......................................................................... 78
Ilustración 20 Diagrama de despliegue ................................................................................ 79
Ilustración 21 Diagrama de componentes ............................................................................ 79
Ilustración 22 Diagrama de paquetes ................................................................................... 80
Ilustración 23 Arquitectura de la solución ........................................................................... 82
Ilustración 24 Esquema de seguridad de acceso a las aplicaciones en Azure ...................... 90
Ilustración 24 Estructura jerárquica del área de seguridad .................................................. 91
10
1. ORGANIZACIÓN DEL PROYECTO
1.1 TÍTULO
SISTEMA TELEMÁTICO PARA LA GESTIÓN DE PROYECTOS DE LA EMPRESA VIRTUAL SMART BUSINESS
1.2 TEMA
Se propone desarrollar un sistema que facilite la gestión de los proyectos de la empresa Virtual Smart Business.
1.3 FORMULACIÓN DEL PROBLEMA
¿Cómo lograr gestionar los proyectos de la empresa Virtual Smart Business midiendo el rendimiento, la efectividad y el cumplimiento de objetivos con el fin de mejorar el rumbo de los proyectos futuros de la compañía?
1.4 ALCANCES Y LIMITACIONES
1.4.1 ALCANCE
El proyecto en su desarrollo tiene como alcance sistematizar el proceso de gestión de proyectos de la empresa Virtual Smart Business, de tal forma que se ajuste a las necesidades de la compañía y cumpla con agilizar y mejorar el proceso de gestión de los proyectos. Puntualmente el proyecto se encargará de desarrollar una solución telemática que permita administrar los proyectos, las tareas, los requerimientos, el personal y los clientes de la compañía, con el fin de realizar toda la gestión del core del negocio, poniendo a disposición de los altos mandos de la empresa un conjunto de informes y estadísticas determinantes en la toma de decisiones, tales como el desempeño general de la empresa o incluso efectividad individual de cada colaborador.
1.4.2 LIMITACIONES
Para la fase de levantamiento de requerimientos es necesaria la presencia de personal de la empresa, ya que de acuerdo a la metodología implementada (Scrum) las historias de usuario son descritas y probadas por el usuario final (empresa) e interpretadas por el equipo de desarrollo, y en ocasiones los colaboradores de la empresa no pueden asistir por sus tareas laborales.
11
1.5 JUSTIFICACIÓN
Actualmente el grupo de investigación manipula la información de forma manual; digitada por un usuario en cada uno de los puntos, rellenando un mismo campo varias veces para un mismo formulario, lo que hace que le recolección de la información sea un proceso tedioso. Con la implantación del proyecto se pretende reducir el tiempo de recolección de los datos y su futura implementación en procesos de estudio de las mismas obras.
1.6 OBJETIVOS
1.6.1 OBJETIVO GENERAL
Analizar, desarrollar e implementar un sistema telemático en ambiente web y móvil para la gestión de proyectos de la empresa Virtual Smart Business mediante la metodología SCRUM.
1.6.2 OBJETIVOS ESPECÍFICOS
• Analizar e identificar la infraestructura actual de la empresa, con el fin de validar que la solución propuesta no tenga inconvenientes de acceso para los usuarios.
• Validar si una solución en la nube IaaS es necesaria para la cantidad de usuarios finales que se logren identificar.
• Desarrollar una arquitectura adecuada, agrupando apropiadamente actores lógicos, persistentes y de presentación, generando un sistema web y móvil correcto.
• Implementar un sistema de seguridad adecuado para un sistema de gestión de proyectos empresarial.
• Implementar políticas de seguridad que garanticen la confidencialidad e integridad de la información.
1.7 MARCO REFERENCIAL
La importancia de automatizar procesos es parte del proceso de globalización, y lo indica el auge de empresas a nivel mundial que adoptan medidas de análisis y recolección de datos para facilitar el proceso de toma de decisiones en cualquier área de la industria, por lo tanto es de gran importancia que la empresa Virtual Smart
12
Business tenga una herramienta que logre impulsarlo en el mercado, brindando datos de la eficacia del proceso de gestión de proyectos y ayudando en la creación de estrategias para el crecimiento de la compañía.
1.8 MARCO TEÓRICO
Los sistemas informáticos actuales son cada vez más flexibles y adaptables en dependencia de las necesidades de los clientes, por lo general están compuestos por varios módulos independientes que realizan determinadas funciones y todos ellos unidos por una estructura organizativa llamada módulo de administración que permitirá que el sistema funcione de forma ordenada, segura y consistente. La seguridad de la aplicación es uno de los requerimientos más importantes que deben ser cumplidos. Está basada en las restricciones más comúnmente usadas en cualquier sistema que la implemente, con el uso de los conceptos de autenticación y autorización, basados en requerir una cuenta de usuario válida y activa, además de un conjunto de roles que le permitirán al usuario realizar solo aquellas operaciones que se le han asignado por los administradores del sistema. Todo este chequeo es realizado, al iniciar la aplicación y luego comprueba la autorización a las distintas funcionalidades del sistema. De esta forma el usuario solo podrá hacer lo que se le asigne y permitirá aumentar la fiabilidad del sistema. Al ser la seguridad un requisito muy importante para este, en las primeras fases de análisis y diseño del proyecto se deben definir una serie de restricciones para el acceso a la base de datos y para el registro de las operaciones de los usuarios que interactúan con ella. El usuario solo va a tener los roles que le son asignados y solo va a poder interactuar con los procedimientos almacenados que tengan permiso a ejecutar sus roles, brindado así un nivel muy alto de seguridad y el control de las operaciones a realizar.1 A diferencia de otros sistemas existentes en el mercado, el sistema contará con una aplicación mobile, la cual permitirá, en tiempo real, monitorear la visita realizada por el área de soporte y mantenimiento, registrar el tiempo empleado en cada visita. También podrán reportar cualquier incidente que se presente en dichas visitas, prestando todo el apoyo técnico que requiera, por parte de la central de soporte, para cumplir con la tarea u objetivo al cual fue designado. Patrones de arquitectura: ofrecen soluciones a problemas de arquitectura de software en ingeniería de software. Dan una descripción de los elementos y el tipo de relación que tienen junto con un conjunto de restricciones sobre cómo pueden ser usados. Un patrón arquitectónico expresa un esquema de organización estructural esencial para un sistema de software, que consta de subsistemas, sus
1 Gary McGraw, Software Security: Building Security in (2006)
13
responsabilidades e interrelaciones. En comparación con los patrones de diseño, los patrones arquitectónicos tienen un nivel de abstracción mayor.2 Aunque un patrón arquitectónico comunica una imagen de un sistema, no es una arquitectura como tal. Un patrón arquitectónico es más un concepto que captura elementos esenciales de una arquitectura de software. Programación por capas: La programación por capas se refiere a un estilo de programación que tiene como objetivo separar la lógica de diseño de la lógica de negocios. Una de las ventajas que se puede destacar sobre este estilo es que el desarrollo del software se puede llevar a cabo en varios tipos de niveles, así, cuando suceda algún cambio solo se trabaja sobre el nivel requerido. La programación por capas es una técnica de la ingeniería del software propia de la programación a objetos, que se divide en 3 capas: la capa de presentación o frontera, la capa de lógica de negocio y por último la capa de datos. Entity Framework: Entity Framework es un conjunto de tecnologías de ADO.NET que permiten el desarrollo de aplicaciones de software orientadas a datos3. Entity Framework permite a los desarrolladores trabajar con datos en forma de objetos y propiedades específicos del dominio, como clientes y direcciones de cliente, sin tener que preocuparse por las tablas y columnas de la base de datos subyacente donde se almacenan estos datos. Con Entity Framework, los desarrolladores pueden trabajar en un nivel mayor de abstracción cuando tratan con datos, y pueden crear y mantener aplicaciones orientadas a datos con menos código que en las aplicaciones tradicionales.4 Microsoft.Net: Es el conjunto de nuevas tecnologías en las que Microsoft ha estado trabajando durante los últimos años con el objetivo de obtener una plataforma sencilla y potente para distribuir el software en forma de servicios que puedan ser suministrados remotamente y que puedan comunicarse y combinarse unos con otros de manera totalmente independiente de la plataforma, lenguaje de programación y modelo de componentes con los que hayan sido desarrollados.5 JavaScript: Es un lenguaje de programación utilizado para crear pequeños programas encargados de realizar acciones dentro del ámbito de una página web. Se trata de un lenguaje de programación del lado del cliente, porque es el navegador el que soporta la carga de procesamiento. Gracias a su compatibilidad con la mayoría de los navegadores modernos.
2 Stanley Portny, Project Management for dummies (2001), Wiley 3 Julia Lerman, Programming Entity Framework (2009) 4 Adam Freeman, Pro ASP.NET MVC 5 (Expert's Voice in ASP.Net) (2010) 5 Jon Skeet, C# in Depht (2013)
14
Android: Android es un sistema operativo inicialmente pensado para teléfonos móviles, al igual que iOS, Symbian y Blackberry OS. Lo que lo hace diferente es que está basado en Linux, un núcleo de sistema operativo libre, gratuito y multiplataforma. Xamarin: Xamarin es una plataforma de desarrollo de aplicaciones móviles para crear aplicaciones nativas de iOS, Android y Windows desde una base de código C # /. NET común, logrando un 75% a casi un 100% de reutilización de código entre plataformas. Las aplicaciones escritas con Xamarin y C # tienen acceso completo a las API de la plataforma subyacente y la capacidad de crear interfaces de usuario nativas y compilar paquetes específicos de la plataforma para que haya poco impacto en el rendimiento del tiempo de ejecución.6 Metodología SCRUM: Scrum es un proceso en el que se aplican de manera regular un conjunto de buenas prácticas para trabajar colaborativamente, en equipo, y obtener el mejor resultado posible de un proyecto. Estas prácticas se apoyan unas a otras y su selección tiene origen en un estudio de la manera de trabajar de equipos altamente productivos.7 En Scrum se realizan entregas parciales y regulares del producto final, priorizadas por el beneficio que aportan al receptor del proyecto. Por ello, Scrum está especialmente indicado para proyectos en entornos complejos, donde se necesita obtener resultados pronto, donde los requisitos son cambiantes o poco definidos, donde la innovación, la competitividad, la flexibilidad y la productividad son fundamentales. Scrum también se utiliza para resolver situaciones en que no se está entregando al cliente lo que necesita, cuando las entregas se alargan demasiado, los costes se disparan o la calidad no es aceptable, cuando se necesita capacidad de reacción ante la competencia, cuando la moral de los equipos es baja y la rotación alta, cuando es necesario identificar y solucionar ineficiencias sistemáticamente o cuando se quiere trabajar utilizando un proceso especializado en el desarrollo de producto. En Scrum un proyecto se ejecuta en bloques temporales cortos y fijos (iteraciones que normalmente son de 2 semanas, aunque en algunos equipos son de 3 y hasta 4 semanas, límite máximo de feedback y reflexión). Cada iteración tiene que proporcionar un resultado completo, un incremento de producto final que sea susceptible de ser entregado con el mínimo esfuerzo al cliente cuando lo solicite. El proceso parte de la lista de objetivos/requisitos priorizada del producto, que actúa como plan del proyecto. En esta lista el cliente prioriza los objetivos balanceando el
6 Dan Hermes, Xamarin Mobile Application Development (2015) 7 Jeff Sutherland, Scrum: The Art of Doing Twice the Work in Half the Time (2014)
15
valor que le aportan respecto a su coste y quedan repartidos en iteraciones y entregas.8 Las actividades que se llevan a cabo en Scrum son las siguientes:
● Planificación de la iteración
El primer día de la iteración se realiza la reunión de planificación de la iteración. Tiene dos partes: Selección de requisitos (4 horas máximo). El cliente presenta al equipo la lista de requisitos priorizada del producto o proyecto. El equipo pregunta al cliente las dudas que surgen y selecciona los requisitos más prioritarios que se compromete a completar en la iteración, de manera que puedan ser entregados si el cliente lo solicita. Planificación de la iteración (4 horas máximo). El equipo elabora la lista de tareas de la iteración necesarias para desarrollar los requisitos a que se ha comprometido. La estimación de esfuerzo se hace de manera conjunta y los miembros del equipo se autoasignan las tareas.
● Ejecución de la iteración
Cada día el equipo realiza una reunión de sincronización (15 minutos máximo). Cada miembro del equipo inspecciona el trabajo que el resto está realizando (dependencias entre tareas, progreso hacia el objetivo de la iteración, obstáculos que pueden impedir este objetivo) para poder hacer las adaptaciones necesarias que permitan cumplir con el compromiso adquirido. En la reunión cada miembro del equipo responde a tres preguntas:
• ¿Qué he hecho desde la última reunión de sincronización?
• ¿Qué voy a hacer a partir de este momento?
• ¿Qué impedimentos tengo o voy a tener? Durante la iteración el Facilitador (Scrum Master) se encarga de:
• Que el equipo pueda cumplir con su compromiso y de que no se merme su productividad.
• Elimina los obstáculos que el equipo no puede resolver por sí mismo.
• Protege al equipo de interrupciones externas que puedan afectar su compromiso o su productividad.
Durante la iteración, los clientes junto con el equipo refinan la lista de requisitos (para prepararlos para las siguientes iteraciones) y, si es necesario, cambian o replanifican los objetivos del proyecto para maximizar la utilidad de lo que se desarrolla y el retorno de inversión.
8 Ken Schwaber, Agile Project Management with Scrum
16
● Inspección y adaptación
El último día de la iteración se realiza la reunión de revisión de la iteración. Tiene dos partes: Demostración (4 horas máximo). El equipo presenta al cliente los requisitos completados en la iteración, en forma de incremento de producto preparado para ser entregado con el mínimo esfuerzo. En función de los resultados mostrados y de los cambios que haya habido en el contexto del proyecto, el cliente realiza las adaptaciones necesarias de manera objetiva, ya desde la primera iteración, replanificando el proyecto. Retrospectiva (4 horas máximo). El equipo analiza cómo ha sido su manera de trabajar y cuáles son los problemas que podrían impedirle progresar adecuadamente, mejorando de manera continua su productividad. El Facilitador se encargará de ir eliminando los obstáculos identificados.
1.8.1 MARCO CONCEPTUAL
A continuación, se especificará el marco de conceptos que generan ambigüedad en el enfoque del objetivo a desarrollar respecto a la solución a desarrollar. Gestión: Asumir, monitorear y llevar a cabo todas las tareas que requiera un proceso. Proyecto: Idea por realizar para la cual se establece un modo determinado y un conjunto de medios para realizarla. Monitoreo: Proceso mediante el cual se reúne, observa y estudia una cantidad de información sobre un hecho. Accesibilidad: Hacer posible la interacción del aplicativo y la información en cualquier momento. Componente: Una pieza del proyecto que puede ser modificada o reformada, sin alterar en gran medida el funcionamiento final del proyecto u/o aplicativo. Telemática: Implementación de servicios de envío y recepción de datos en los sistemas informáticos. Historias de usuario: Representación de un requisito escrito en lenguaje común de usuario.
17
1.9 FACTIBILIDAD
1.9.1 FACTIBILIDAD TÉCNICA
Se hizo una revisión del software y hardware disponible por el grupo de investigación, que determinó los componentes técnicos que se poseen para el desarrollo del proyecto; y se adquirió información de los requerimientos técnicos que no se cumplen para la puesta en marcha del mismo. De acuerdo a las tecnologías necesarias para el desarrollo del presente proyecto, existen requerimientos técnicos de software y hardware que se delimitaran a continuación: Hardware: Respecto al hardware necesario los dispositivos para los que se desarrollará el aplicativo serán:
● 2 equipos para los desarrolladores con las siguientes especificaciones:
Nombre del producto
ASUS N550
Número de producto JHK2250K
Microprocesador Intel Core i7-4700HQ de cuarta generación a 2,40 GHz, hasta 3,40 GHz con tecnología
Turbo Boost
Memoria SDRAM DDR3L de 8 GB (2 DIMM)
Disco duro Unidad de 1 TB (7200 RPM)
Tarjeta de red LAN Gigabit Ethernet 10/100/1000 (conector RJ-45)
Conectividad inalámbrica
WLAN 802.11b/g/n Bluetooth
Tabla 1 Especificaciones técnicas equipo de desarrollo
• Servidor donde se desplegará la aplicación web, la API REST y la Base de datos con las siguientes especificaciones:
Nombre del producto
ASUS RS720
Número de producto RS720-E9-RS12-E
Microprocesador Intel Xeon con plataforma escalable
Memoria 8 GB (Soporte de 24 DIMM)
Disco duro 2 TB HDD
Tarjeta de red Dos puertos de 1Gb Velocidades 10/100/1000 Mb/s
18
S.O. Windows Server 2012 o Superior
Servidor de aplicaciones
Internet Information Services 8 o Superior
Tabla 2 Especificaciones técnicas servidor de aplicaciones
• Smartphone para la implementación y pruebas de la aplicación móvil con las siguientes especificaciones:
Nombre del producto
SmartPhone
Microprocesador QuadCore 2 GHz
Memoria 2 GB
Disco duro 16 GB
S.O. Android 4 o iOS
Tabla 3 Especificaciones técnicas dispositivo móvil
El smartphone tiene las características necesarias para el desempeño óptimo de la aplicación, adicionalmente los equipos deben contar con un plan de datos para la transferencia de información en cada uno de los puntos de recolección de la misma. Software: En lo referente a software se utilizarán aplicaciones de desarrollo de código abierto; lo cual no frenará el avance del proyecto, minimizando el costo de inversión en adquisición del software. Entre el software libre a utilizar se encuentra:
• Visual Studio Community Edition
• SQL Server Express 2014
Software licenciado:
• Windows 10 Enterprise
• Windows 7 Ultimate Service Pack 1 1.9.2 FACTIBILIDAD ECONÓMICA
El estudio económico realizado al proyecto sobre su costo financiero al momento de su puesta en marcha y los beneficios obtenidos por este arrojó los siguientes datos:
• Análisis de costo-beneficio: Durante esta fase se encontró que gran parte del Hardware y Software requerido ya estaba a disposición de los desarrolladores, gracias a que la empresa Virtual Smart
19
Business se dedica al desarrollo de soluciones a la medida y a través de su trayectoria ha adquirido Software Licenciado y Hardware de excelentes especificaciones que favorecen la realización del presente proyecto, impulsando su viabilidad con una inversión bastante cómoda para la empresa. Los siguientes son los gastos que requiere el proyecto:
Descripción Costo aproximado
Cantidad Costo total al finalizar el desarrollo
Material de oficina $ 50.000,00 5 $ 250.000,00
Cartuchos o tonner de impresión
$ 126.000,00 1 $ 126.000,00
Total $ 376.000,00
Tabla 4 Gastos de oficina
Recurso Sueldo hora Cantidad de horas
Sueldo total
Estudiante $ 20.000,00 200 $ 4´000.000,00
Tutor Interno $ 30.000,00 40 $ 1’200.000,00
Usuarios finales $ 30.000,00 40 $ 1’200.000,00
Total $ 6’400.000,00
Tabla 5 Gastos de recurso humano
Descripción Valor unitario
Cantidad Valor total
ASUS RS720 $ 2’000.000,00
2 $ 4’000.000,00
SmartPhone $ 400.000,00 1 $ 400.000,00
Accesorios de conexión $ 15.000,00 3 $ 45.000,00
Total $ 4’445.000,00
Tabla 6 Gastos de Hardware
Descripción Valor unitario
Cantidad Valor total
Licencia Windows 10 Enterprise
$ 400.000,00 2 $ 800.000,00
Total $ 800.000,00
Tabla 7 Gastos de Software
20
Descripción Valor
Material de oficina $ 376.000
Recurso humano $ 6’400.000,00
Hardware $ 4’445.000,00
Software $ 800.000,00
Total $ 12’021.000,00
Tabla 8 Gastos totales
1.10 METODOLOGÍA
SCRUM
Scrum es un marco de trabajo de procesos que ha sido usado para gestionar el desarrollo de productos complejos desde principios de los años 90. Scrum no es un proceso o una técnica para construir productos; en lugar de eso, es un marco de trabajo dentro del cual se pueden emplear varias técnicas y procesos. Scrum muestra la eficacia relativa de las prácticas de gestión de producto y las prácticas de desarrollo. El marco de trabajo Scrum consiste en los Equipos Scrum, roles, eventos, artefactos y reglas asociadas. Cada componente dentro del marco de trabajo sirve a un propósito específico y es esencial para el éxito de Scrum y para su uso.Las reglas de Scrum relacionan los eventos, roles y artefactos, gobernando las relaciones e interacciones entre ellos. Scrum se basa en la teoría de control de procesos empírica o empirismo. El empirismo asegura que el conocimiento procede de la experiencia y de tomar decisiones basándose en lo que se conoce. Scrum emplea un enfoque iterativo e incremental para optimizar la predictibilidad y el control del riesgo. El Equipo Scrum consiste en un Dueño de Producto (Product Owner), el Equipo de Desarrollo (Development Team) y un Scrum Master. Los Equipos Scrum son autoorganizados y multifuncionales. Los equipos autoorganizados eligen la mejor forma de llevar a cabo su trabajo y no son dirigidos por personas externas al equipo. Los equipos multifuncionales tienen todas las competencias necesarias para llevar a cabo el trabajo sin depender de otras personas que no son parte del equipo. El modelo de equipo en Scrum está diseñado para optimizar la flexibilidad, la creatividad y la productividad. Los Equipos Scrum entregan productos de forma iterativa e incremental, maximizando las oportunidades de obtener retroalimentación. Las entregas incrementales de producto “Terminado” aseguran que siempre estará disponible una versión potencialmente útil y funcional del producto.
21
En Scrum existen eventos predefinidos con el fin de crear regularidad y minimizar la necesidad de reuniones no definidas en Scrum. Todos los eventos son bloques de tiempo (time-boxes), de tal modo que todos tienen una duración máxima. Una vez que comienza un Sprint, su duración es fija y no puede acortarse o alargarse. Los demás eventos pueden terminar siempre que se alcance el objetivo del evento, asegurando que se emplee una cantidad apropiada de tiempo sin permitir desperdicio en el proceso. Además del propio Sprint, que es un contenedor del resto de eventos, cada uno de los eventos de Scrum constituye una oportunidad formal para la inspección y adaptación de algún aspecto. Estos eventos están diseñados específicamente para habilitar las vitales transparencia e inspección. La falta de alguno de estos eventos da como resultado una reducción de la transparencia y constituye una oportunidad perdida para inspeccionar y adaptarse.9 EL SPRINT El corazón de Scrum es el Sprint, es un bloque de tiempo (time-box) de un mes o menos durante el cual se crea un incremento de producto “Terminado”, utilizable y potencialmente desplegable. Es más conveniente si la duración de los Sprints es consistente a lo largo del esfuerzo de desarrollo. Cada nuevo Sprint comienza inmediatamente después de la finalización del Sprint previo. Los Sprints contienen y consisten de la Reunión de Planificación del Sprint (Sprint Planning Meeting), los Scrums Diarios (Daily Scrums), el trabajo de desarrollo, la Revisión del Sprint (Sprint Review), y la Retrospectiva del Sprint (Sprint Retrospective). EL PLANNING El trabajo a realizar durante el Sprint se planifica en la Reunión de Planificación de Sprint. Este plan se crea mediante el trabajo colaborativo del Equipo Scrum completo. La Reunión de Planificación de Sprint tiene un máximo de duración de ocho horas para un Sprint de un mes. Para Sprints más cortos, el evento es usualmente más corto. El Scrum Master se asegura de que el evento se lleve a cabo y que los asistentes entiendan su propósito. El Scrum Master enseña al Equipo Scrum a mantenerse dentro del bloque de tiempo.
9 Christopher A. Sims, The Elements of Scrum (2011)
22
ARTEFACTOS SCRUM Los artefactos de Scrum representan trabajo o valor en diversas formas que son útiles para proporcionar transparencia y oportunidades para la inspección y adaptación. Los artefactos definidos por Scrum están diseñados específicamente para maximizar la transparencia de la información clave, que es necesaria para asegurar que todos tengan el mismo entendimiento del artefacto.10 PRODUCT BACKLOG La Lista de Producto es una lista ordenada de todo lo que podría ser necesario en el producto, y es la única fuente de requisitos para cualquier cambio a realizarse en el producto. El Dueño de Producto (Product Owner) es el responsable de la Lista de Producto, incluyendo su contenido, disponibilidad y ordenación. Una Lista de Producto nunca está completa. El desarrollo más temprano de la misma solo refleja los requisitos conocidos y mejor entendidos al principio. La Lista de Producto evoluciona a medida de que el producto y el entorno en el que se usará también lo hacen. La Lista de Producto es dinámica; cambia constantemente para identificar lo que el producto necesita para ser adecuado, competitivo y útil. Mientras el producto exista, su Lista de Producto también existe. La Lista de Producto enumera todas las características, funcionalidades, requisitos, mejoras y correcciones que constituyen cambios a ser hechos sobre el producto para entregas futuras. Los elementos de la Lista de Producto tienen como atributos la descripción, la ordenación, la estimación y el valor. SPRINT BACKLOG La Lista de Pendientes del Sprint es el conjunto de elementos de la Lista de Producto seleccionados para el Sprint, más un plan para entregar el Incremento de producto y conseguir el Objetivo del Sprint. La Lista de Pendientes del Sprint es una predicción hecha por el Equipo de Desarrollo acerca de qué funcionalidad formará parte del próximo Incremento y del trabajo necesario para entregar esa funcionalidad en un Incremento “Terminado”. La Lista de Pendientes del Sprint hace visible todo el trabajo que el Equipo de Desarrollo identifica como necesario para alcanzar el Objetivo del Sprint.
10 Mark C Layton, Scrum For Dummies (2015)
23
1.11 CRONOGRAMA DE ACTIVIDADES
Ilustración 1 Cronograma de actividades
24
2. ANÁLISIS E IDENTIFICACIÓN DE LA INFRAESTRUCTURA ACTUAL DE LA EMPRESA
La empresa Virtual Smart Business es una compañía que se dedica la creación de soluciones tecnológicas a la medida, como kioscos interactivos, kioscos transaccionales, aplicaciones web a la medida, aplicaciones móviles a la medida, y soporte técnico de software y hardware, posee alrededor de 50 empleados entre vendedores, personal administrativo, desarrolladores, gerentes de proyecto y técnicos de sistemas. La unidad de soporte, es la encargada de realizar visitas en sitio para realizar mantenimiento preventivo y/o correctivo del hardware, de acuerdo a un contrato de soporte ofrecido por la compañía. Durante estas visitas, se maneja un formato en papel para poder identificar la hora de llegada y de salida del empleado que realiza la visita técnica y lograr determinar las horas laborales empleadas, sin embargo, en múltiples ocasiones los empleados no llenan este formato perdiendo la información de la hora de trabajo empleada en el soporte prestado. Otra de las áreas de gran importancia para la compañía es el área de desarrollo, la cual se encarga de analizar, diseñar e implementar todas las soluciones de software que el área comercial venda. Para esta área, el control del tiempo laborado también es manejado mediante el registro de entrada y salida con la tarjeta de proximidad y el cumplimiento de tareas se verifica en una reunión semanal pero no se lleva un registro físico que ayude a medir la productividad de cada desarrollador. Al iniciar cada proyecto se realiza el análisis de los requerimientos y se establecen las tareas que posteriormente son divididas en los desarrolladores que sean necesarios, dependiendo de tiempo disponible de desarrollo, complejidad, etc. Semanalmente se realiza una reunión en la que los desarrolladores indican verbalmente los problemas presentados en el desarrollo de cada tarea asignada, o en caso que no se tengan, realizan la entrega del desarrollo con los ajustes correspondientes. En muchas ocasiones la empresa ha presentado inconvenientes en los que el personal asignado a algún proyecto no fue el suficiente y se generaron demoras y por lo tanto molestias para el cliente final. Si se tuviera un sistema capaz de medir el rendimiento y la efectividad de los empleados de la empresa Virtual Smart Business, se lograría gestionar los proyectos futuros con mayor asertividad disminuyendo el margen de error e imprevistos que se puedan generar en el ciclo de vida de un proyecto.
2.1 SISTEMAS DE INFORMACIÓN UTILIZADOS ACTUALMENTE
SIIGO: El Sistema Integrado de Información Gerencial Operativo es un software genérico administrativo que permite llevar un registro detallado de las operaciones de la empresa y en general de todos los aspectos relacionados con la administración de negocios y actualmente la empresa Virtual Smart Business lo utiliza principalmente para la elaboración de documentos referentes a: Cartera, Cuentas
25
por Pagar, Inventarios, Costos de Producción, Activos Fijos, Pedidos, Compras, Presupuesto, Contabilidad, Nómina y Ventas, por lo tanto no requiere personal experto para el funcionamiento. Azure Data Storage: Actualmente la empresa Virtual Smart Business posee el servicio IaaS Azure Data Storage de Microsoft utilizado para la administración de copias de seguridad de todos los equipos de la empresa, tarea que realiza el área de soporte técnico de la compañía. La empresa Virtual Smart Business no posee más Software que utilice en sus labores aparte de las herramientas comunes de Microsoft Office.
2.2 REDES Y SERVIDORES
La empresa Virtual Smart Business posee una red LAN Híbrida Tradicional con acceso a internet por red cableada e inalámbrica. Como cortafuegos posee un Firewall Fortinet Fg-60d-bdl Fortigate-60d Hardware Plus, desde el cual se puede restringir o permitir el acceso a los diferentes tipos de páginas web y adicionalmente, sirve como medio de integración con los clientes que requieren de conexión VPN. En cuanto a los servidores que posee la empresa, se encontró que poseen un servicio IaaS de Microsoft Azure para implementar el software a la medida del cliente, y poseen varias instancias que sirven para independizar el funcionamiento de un software a otro. Allí mismo implementan las bases de datos correspondientes para el funcionamiento de los productos que comercializan. La empresa Virtual Smart Business no posee servidores físicos que provean servicios al personal interno de la compañía.
26
Ilustración 2 Infraestructura Virtual Smart Business
En la empresa Virtual Smart Business laboran 34 personas, y 32 poseen puntos de red para realizar sus tareas diarias, todos tienen acceso a internet, pero algunas páginas web son restringidas por el Firewall configurado por el área de soporte.
27
3. ANÁLISIS DE SOLUCIÓN IAAS PARA LA EMPRESA
3.1 MARCO TEORICO
El modelo de Infraestructura como Servicio (IaaS) es uno de los tres conceptos fundamentales del cloud computing, junto con el de Plataforma como Servicio (PaaS) y el de Software como Servicio (SaaS). Al igual que todos los servicios cloud, IaaS proporciona acceso a recursos informáticos situados en un entorno virtualizado a través de internet. En el caso de IaaS, los recursos informáticos ofrecidos consisten en hardware virtualizado o infraestructura de procesamiento. La definición de IaaS abarca el espacio en servidores virtuales, conexiones de red, ancho de banda, direcciones IP, balanceadores de carga, corta fuegos y redes On Premise. Físicamente, el conjunto de recursos de hardware disponibles es un gran conjunto de servidores y redes, generalmente distribuidos entre numerosos Data Centers, de cuyo mantenimiento se encarga el proveedor del servicio cloud. El cliente, por su parte, obtiene acceso a los componentes virtualizados para construir con ellos su propia plataforma. El modelo IaaS coincide con las otras dos modalidades de hosting cloud en que puede ser utilizado por los clientes empresariales para crear soluciones informáticas económicas y fáciles de ampliar, en las cuales toda la complejidad y el costo asociados a la administración del hardware se realiza por el proveedor del servicio cloud. Si la escala o el volumen de actividad del negocio del cliente se amplía, o si la empresa tiene previsto crecer, puede recurrir al recurso cloud en el momento y de la manera en que lo necesite, en lugar de tener que adquirir, instalar e integrar hardware por su cuenta. Estos son varios ejemplos de aplicaciones concretas del modelo IaaS para una empresa:
• Infraestructura corporativa: Las redes internas de la empresa, como las clouds privadas y las redes locales virtuales, que utilizan recursos de red y de servidores agrupados, donde la empresa puede almacenar sus datos y ejecutar las aplicaciones que necesite para su funcionamiento diario. Las empresas en crecimiento pueden ampliar su infraestructura a medida que aumente su volumen de actividad, mientras que las clouds privadas permiten proteger el almacenamiento y transferencia de los datos delicados que algunas empresas necesitan manejar.
• Hosting cloud; Alojamiento de aplicaciones Web en servidores virtuales que funcionan sobre recursos comunes en servidores del proveedor del servicio en la nube. Una aplicación web alojada en una plataforma cloud, por ejemplo, puede beneficiarse de la redundancia que aporta la gigantesca escala de la
28
red de servidores físicos y su escalabilidad en función de la demanda para afrontar cualquier solicitud que las aplicaciones web requieran.
• Virtual Data Centers (VDC); Una red virtualizada de servidores interconectados que puede utilizarse para ofrecer funcionalidades avanzadas alojadas, para implementar la infraestructura informática de la empresa, o para integrar todas esas operaciones dentro de una implementación cloud pública o privada.
3.2 VENTAJAS DE UNA SOLUCIÓN IAAS
• Escalabilidad; los recursos están disponibles de la manera y en el momento en que el cliente los necesita, por lo que desaparecen los tiempos de espera a la hora de ampliar la capacidad, y no se desaprovecha la capacidad que no se esté utilizando.
• El hardware físico sobre el que funciona el servicio IaaS es configurado y mantenido por el proveedor del servicio, lo que evita tener que dedicar tiempo y dinero a realizar esa instalación en el lado del cliente.
• El servicio está accesible a demanda, y el cliente sólo paga por los recursos que realmente utiliza.
• Independencia de la localización: Por lo general, se puede acceder al servicio desde cualquier lugar, siempre y cuando se disponga de una conexión a internet y el protocolo de seguridad que el servicio requiera.
• Los servicios disponibles a través de una infraestructura cloud pública, o en clouds privadas alojadas externamente en las instalaciones del proveedor del servicio cloud, se benefician de la seguridad física de que disfrutan los servidores alojados dentro de un centro de datos.
• Si falla un servidor el servicio global no se verá afectado, gracias a la gran cantidad restante de recursos de hardware y configuraciones redundantes. En muchos servicios, incluso la caída de un centro de datos entero no afecta en absoluto al funcionamiento del servicio IaaS.
3.3 COMPARACIÓN DE PROVEEDORES DE SERVICIOS CLOUD
Cada vez más empresas adoptan nuevas estrategias para la adopción de herramientas de transformación digital como es la computación en la nube, sin
29
embargo, a la hora de seleccionar dentro de un entorno de nube privada se tienen dos opciones: Microsoft Azure y Amazon Web Services. Hoy día, se tiene la fortuna que existan estos dos grandes proveedores de servicios cloud, puesto que cada uno tiene características atractivas para todo tipo de necesidades del mercado. Inicialmente se debe tener en cuenta la adopción de la nube en entornos corporativos durante el último año:
Ilustración 3 Principales razones de las empresas para adoptar servicios Cloud para el año 2017
En la gráfica anterior se pueden apreciar las principales razones por las que las empresas adoptaron servicios cloud durante el año 2017, en donde la flexibilidad tuvo mayor importancia y los bajos costos operacionales, la escalabilidad y la disposición 24/7 reunieron un conjunto de razones sólidas para que los servicios en la nube tuvieran gran aceptación dentro del mercado internacional. Adicionalmente, la constante transformación digital y la competitividad de las empresas, obliga a que ninguna se quede atrás.
30
3.3.1 MICROSOFT AZURE VS. AMAZON WEB SERVICES
3.3.1.1 INGRESOS GENERALES
Cuando se observan los ingresos generales de los dos proveedores de la nube, Amazon es un líder de la industria. AWS tiene más de 4 veces los ingresos de Azure y comenzó en el "juego en la nube" unos años antes. Sin embargo, como muestra el siguiente gráfico, Microsoft está cerrando muy rápidamente la brecha con respecto a las cargas de trabajo de las aplicaciones, específicamente en lo que corresponde a IaaS.
Ilustración 4 Microsoft Azure vs. Amazon Web Services
3.3.1.2 SERVICIOS ESENCIALES
Los componentes principales de Microsoft Azure y las ofertas de nube publica de AWS son:
• Autoservicio y aprovisionamiento instantáneo
• Escalado automático
• Seguridad
• Conformidad
• Gestión de identidad
31
Con un desglose más popular de:
• Procesamiento
• Almacenamiento
• Redes Sin embargo, en cuanto al servicio de IaaS, Microsoft posee un gran terreno del mercado, puesto que brinda la capacidad de diseñar servicios que se benefician de la nube híbrida. El análisis de las distintas características que AWS y Azure tienen y que continúan construyendo, se trata en gran medida de quién responde mejor a las demandas del mercado. Estos proveedores están trabajando incansablemente para cubrir todas las áreas nuevas de las interacciones de la computación en la nube, ya sea a través de la IA o el aprendizaje automático, ambos están tratando activamente de llegar a nuevos mercados. Desde una perspectiva del desarrollo de aplicaciones, tanto Azure como AWS están equipados para atender las demandas de alta presión de los desarrolladores. Por ejemplo, Azure tiene características como Service Fabric & Container Services que son excelentes para crear, implementar y escalar aplicaciones. Esto ha llevado a Microsoft a convertirse en un gran jugador del mercado con respecto a IaaS, además, AWS no tiene tantas opciones en el lado del alojamiento de la aplicación, pero ha logrado gran parte de su liderazgo en el mercado a través de la facilidad de migrar grandes cantidades de datos a la nube para empresas de todos los tamaños.
3.3.1.3 INTEGRACIÓN Como parte de la construcción de un conjunto de herramientas moderno, los desarrolladores buscan una integración perfecta de la solución, eliminando la necesidad de una gran reconfiguración. AWS ha mostrado buena disposición para adoptar los ecosistemas actuales e integrarse con la mayoría de los proveedores, incluso Microsoft. Al hacerlo, han creado un diferenciador beneficioso de la competencia, mientras construyen una red de socios reconocidos.
3.3.1.4 CENTROS DE DATOS La cantidad de centros de datos no incluye factores importantes como calidad y seguridad. Sin embargo, para las empresas que requieren acceso global a los datos, es útil estar más cerca de sus datos, especialmente en regiones sin centros de datos.
32
Ilustración 5 Data Centers de Amazon Web Services11
Ilustración 6 Data Centers de Microsoft Azure12
3.3.1.5 COSTOS
Estos dos líderes podrían intentar retener el mercado con grandes costos, pero ha sucedido lo contrario. Se han visto obligados a bajar sus precios y seguir utilizando su escala para lograr bajos costos, esto ha sido enormemente beneficioso tanto para los clientes como para la adopción de la computación en la nube.
11 Jake, Marketing. Cloud Comparison Guide (2018) 12 Jake, Marketing. Cloud Comparison Guide (2018)
33
3.3.2 TIEMPOS DE RESPUESTA IAAS
Para saber el rendimiento de una aplicación se debe medir el tiempo que tarda una respuesta, esto permite tener una media real de como el sitio web funciona. Por lo tanto, se necesita simular cierta carga, varios usuarios, con varios patrones de uso de la aplicación, y no solo hacer una sola petición, sino una navegación completa del usuario comprobando cookies, parámetros de la url, inicios de sesión, ect. Gracias a Visual Studio se puede automatizar este proceso y se logró realizar una prueba de carga a una aplicación sencilla alojada en una instancia Web de Microsoft Azure y después de realizar la configuración correspondiente se hicieron las pruebas que arrojaron los siguientes resultados:
Ilustración 7 Simulación de carga a Aplicación Web en Azure desde Visual Studio
34
Se puede ver que, de acuerdo a las peticiones realizadas Azure realiza todo el balanceo de cargas gracias a sus prestaciones de alto nivel que el modelo IaaS brinda, en donde el tiempo de respuesta se mantiene estable y los controladores de procesamiento muestran un patrón de alta disponibilidad para una aplicación web alojada en la nube.
3.4 VENTAJAS PARA LA GESTIÓN DE PROYECTOS DE VIRTUAL SMART BUSINESS
Implementar un sistema telemático para la gestión de proyectos de la empresa Virtual Smart Business en una instancia Azure tiene las siguientes ventajas:
• El crecimiento del gestor de proyectos es directamente proporcional al crecimiento de la empresa, lo cual requiere un futuro escalamiento de la herramienta telemática evitando largos tiempos de espera con la realización de la configuración optima de redes y servidores de acuerdo a la demanda que se tenga en un futuro.
• Existen varios tipos de servicios cognitivos de Azure que pueden ser de ayuda para el sistema de gestión de proyectos de la empresa, puesto que, por ejemplo, se pueden implementar en un futuro mejoras con reconocimiento facial o de voz desde la aplicación móvil, de tal forma que se pueda realizar con facilidad un seguimiento personalizado de cumplimiento de objetivos.
• La seguridad suministrada por los servicios de Azure es de gran confiabilidad para la compañía, ya que el conjunto de Data Centers a nivel mundial respalda la disponibilidad de las aplicaciones en cualquier momento. Adicionalmente, la administración de la seguridad de redes y recursos es directamente manejada por Microsoft lo cual impide que, por ejemplo, el sistema de gestión de proyectos sea atacado por DDoS.
35
4. DESARROLLO DE UNA APLICACIÓN WEB Y UNA MÓVIL CON UNA ARQUITECTURA ADECUADA
4.1 MODELO DE NEGOCIO
Durante el análisis del sistema telemático para la gestión de proyectos de la empresa Virtual Smart Business, se determinaron las siguientes reglas de negocio:
• Existen 3 perfiles dentro del sistema, los cuales serán asignados a cada uno de los usuarios que interactúen con la aplicación:
o Administrador: Tiene acceso y puede manipular toda la información contenida en la aplicación, además de permitir o restringir el acceso a módulos de un perfil determinado.
o Colaborador: Tiene acceso a los módulos que el administrador indique de acuerdo a las labores de cada uno de los empleados de la compañía.
o Invitado: Tiene acceso a informes y estadísticas que el administrador considere.
● Un proyecto puede estar conformado por uno o varios requerimientos.
● Un proyecto debe tener un Project Manager (Empleado de la compañía).
● Un proyecto debe estar asociado a un cliente de la empresa.
● Un requerimiento puede estar asociada a una o varias tareas.
● Una tarea se asocia a un ejecutor (Empleado de la compañía).
● Una tarea puede escalarse a varios ejecutores durante su línea de tiempo.
● Una tarea puede tener documentos adjuntos asociados.
● La finalización de todas las tareas de un proyecto indica la culminación del
mismo.
● Una tarea puede tener varios estados (Asignada, En proceso, Finalizada,
Pausada, Cancelada).
● Cada empleado de la compañía debe tener usuario y contraseña para
ingresar al sistema.
36
● Cada empleado puede pertenecer a un grupo, con el fin de filtrar información
por un grupo determinado de empleados.
● Cada empleado debe estar asociado a un perfil.
● Cada perfil debe tener unos permisos definidos para cada uno de los
módulos.
● Los permisos son Consulta, Creación, Actualización y Eliminación.
● La aplicación móvil debe mostrar la siguiente información:
o Pantalla inicial, en la cual el usuario debe ingresar sus credenciales,
para poder tener acceso al sistema.
o Una vez el usuario ingresa al sistema, la aplicación listará todas las
tareas asignadas y pendientes del usuario.
o Cada usuario podrá administrar cada una de sus tareas (Registrar
comentarios, transferir tareas, cerrar tareas, adjuntar archivos), de
esta manera se podrá calcular el tiempo invertido en cada asignación.
o Cada asignación de tarea que se le realice a un usuario, será
notificada por la aplicación, también se le enviará un correo electrónico
informándole al usuario.
o La aplicación realizará recordatorios al usuario de las tareas que estén
pendientes y están próximas a cumplirse su tiempo de finalización,
según los tiempos establecidos en los acuerdos de nivel de servicio
(ANS)
o La aplicación cuenta con un módulo de de monitoreo de trayectos, la
cual permitirá dejar un registro de las visitas realizadas por los
colaboradores que brindan soporte en cliente y el recorrido realizado,
capturando las coordenadas en tiempo real del colaborador. Estos
registros se visualizarán en un mapa.
o La aplicación cuenta con un módulo de contactos, donde se despliega
una agenda de todos los colaboradores de la compañía, de esta
manera permite a los colaboradores tener acceso a un contacto
directo con otro colaborador, en caso de requerirlo. Este módulo
37
permitirá realizar llamadas y enviar correos electrónicos a cualquier
colaborador de la compañía.
4.1.1 MODELO DE PROCESOS
Ilustración 8 Diagrama de procesos Login
38
Ilustración 9 Diagrama de procesos módulos generales
39
4.2 HISTORIAS DE USUARIO
Una historia de usuario es una representación de un requisito escrito en una o dos frases utilizando el lenguaje común del usuario.
4.3 LEVANTAMIENTO DE HISTORIAS DE USUARIO
Para el presente proyecto se identificaron los siguientes requerimientos, teniendo en cuenta las especificaciones y necesidades que se identificaron en las fases preliminares.
Nombre de la historia HU1 - Login para acceso a Aplicación Web
Descripción del requerimiento
El acceso a la aplicación debe estar controlado por el uso de login para usuarios registrados, los cuales tienen diferentes tipos de acceso y privilegios frente a las operaciones que se realizan mediante la aplicación.
Como probar ● Ingresar con un usuario registrado en la base de datos y verificar que ingrese al sistema
● Ingresar con un usuario no registrado en la base de datos y verificar el mensaje de error.
Justificación Implementar un sistema de seguridad orientado a la autenticación de usuarios.
Tabla 9 Historia de usuario 1
Nombre de la historia HU2 - Crear usuarios
Descripción del requerimiento
Crear usuarios que tengan el acceso al portal, adicionalmente asociarlos a un perfil previamente creado que tenga la información de los permisos dentro del sistema.
40
Como probar ● Crear un usuario asignarlo a cada uno de los perfiles creados y verificar los módulos a los cuales tiene acceso.
Justificación Implementar un sistema de seguridad orientado a la autenticación de usuarios.
Tabla 10 Historia de usuario 2
Nombre de la historia HU3 - Editar usuarios
Descripción del requerimiento
Editar usuarios que tengan el acceso al portal, modificando su información personal o asignando un nuevo perfil
Como probar ● Editar un usuario creado en el portal y verificar la modificación.
● Cambiar el perfil de un usuario y verificar los módulos que queda con acceso.
Justificación Tener posibilidad de editar información de contactos.
Tabla 11 Historia de usuario 3
Nombre de la historia HU4 - Eliminar usuario
Descripción del requerimiento
Eliminar usuarios que tengan el acceso al portal, denegando el acceso a la aplicación.
Como probar ● Eliminar usuario y verificar que no pueda acceder a la aplicación.
● Ingresar usuario y contraseña del usuario eliminado y verificar que no permita el acceso.
Justificación Mantener la seguridad en la aplicación cuando se termine el contrato de los empleados
Tabla 12 Historia de usuario 4
41
Nombre de la historia HU5 - Crear perfiles
Descripción del requerimiento
Crear perfiles que tengan acceso al portal estos deben contar con privilegios especiales de acuerdo al rol
Como probar ● Crear un perfil y verificar los módulos a los cuales tiene acceso
Justificación Implementar un sistema de perfilamiento que permita la seguridad y la buena administración
Tabla 13 Historia de usuario 5
Nombre de la historia HU6 - Editar perfiles
Descripción del requerimiento
Editar los perfiles de usuarios que tengan el acceso al portal de acuerdo a los privilegios
Como probar ● Seleccionar un usuario que se encuentre creado en el portal.
● Cambiar el perfil del usuario seleccionado y verificar los módulos que queda con acceso.
Justificación Tener posibilidad de editar el perfil de un usuario del sistema
Tabla 14 Historia de usuario 6
42
Nombre de la historia HU7 - Eliminar perfiles
Descripción del requerimiento
Eliminar el perfil de usuarios que tengan el acceso al portal, denegando el acceso a la aplicación, a ciertos privilegios o acciones
Como probar ● Eliminar un perfil y verificar que los usuarios asignados a ese perfil no tengan acceso acceso a los privilegios
Justificación Brindar la posibilidad de modificaciones de perfil sin importar usuarios asignados
Tabla 15 Historia de usuario 7
Nombre de la historia HU8 - Crear módulos
Descripción del requerimiento
Crear módulos que se puedan redireccionar dentro del portal
Como probar ● Crear un módulo y verificar la visualización y el redireccionamiento
Justificación Implementar un sistema dinámico de creación de módulos donde el cliente pueda tener un ambiente personalizado de acuerdo a sus necesidades actuales
Tabla 16 Historia de usuario 8
43
Nombre de la historia HU9 - Editar módulos
Descripción del requerimiento
Editar los módulos creados permitiendo que estén siempre actualizados de acuerdo a los requerimientos
Como probar ● Seleccionar un módulo que se encuentre creado en el portal.
● Cambiar la información del nombre, descripción o url
● Verificar que la interfaz de usuario aplique los cambios
Justificación Tener posibilidad de editar los módulos creados en el sistema
Tabla 17 Historia de usuario 9
Nombre de la historia HU10 - Eliminar módulos
Descripción del requerimiento
Eliminar los módulos creados en el sistema
Como probar ● Eliminar un módulo y verificar que tanto en la interfaz de usuario como en el admin no se visualice
Justificación Brindar la posibilidad de eliminar módulos para tener una interfaz de usuario organizada y un admin libre de módulos que no se usen
Tabla 18 Historia de usuario 10
44
Nombre de la historia HU11 - Crear proyectos
Descripción del requerimiento
Crear proyectos para su gestión y control
Como probar ● Crear un proyecto y verificar que se pueda gestionar
Justificación Brindar la correcta creación de proyectos ya que son el objetivo del negocio
Tabla 19 Historia de usuario 10
Nombre de la historia HU12 - Editar proyectos
Descripción del requerimiento
Editar los proyectos creados permitiendo que estén siempre actualizados de acuerdo a los requerimientos o cambios por parte del cliente
Como probar ● Seleccionar un proyecto que se encuentre creado en el portal.
● Cambiar la información del nombre, descripción o url
● Verificar que la interfaz aplique los cambios
Justificación Brindar la posibilidad de editar los proyectos creados en el sistema, para que estos estén siempre actualizados ya sea por requerimientos nuevos o cambios del cliente
Tabla 20 Historia de usuario 12
45
Nombre de la historia HU13 - Eliminar proyectos
Descripción del requerimiento
Eliminar los proyectos creados en el sistema
Como probar ● Eliminar un proyecto y verificar que no se visualice
Justificación Brindar la posibilidad de eliminar proyectos para tener una interfaz organizada y actualizada
Tabla 21 Historia de usuario 13
4.4 DEFINICIÓN DE ACTORES DEL SISTEMA
ACTORES/USUARIOS DESCRIPCIÓN
Administrador de aplicación ● Tiene acceso a todos los módulos de la aplicación.
● Puede crear, modificar o eliminar usuarios.
● Tiene acceso a todos los reportes que entregue el sistema.
● Tiene todos los permisos en todos los módulos
Director de Proyecto ● Puede crear, editar o eliminar requerimientos
● Puede estar asignado a uno o varios proyectos, de los cuales puede verificar su progreso.
● Tiene permisos de consulta dentro del módulo de tareas, y puede verificar una a una su cumplimiento y los principales eventos en su línea de tiempo.
Coordinador del proyecto ● Tiene todos los permisos en los módulos de requerimientos y tareas.
46
● Tiene la principal tarea de asignar las tareas a cada uno de los usuarios del sistema.
● Realiza todo el seguimiento de la tarea y facilita el camino para que el usuario asignado no tenga inconvenientes para realizar su tarea asignada.
Usuario colaborador ● Dentro de Virtual Smart Business es el personal técnico, el equipo de desarrollo y el equipo comercial.
● Posee tareas asignadas por el coordinador de proyectos.
● Establece el avance o cumplimiento de una tarea.
Consultor / Interventoria ● Posee permisos de consulta de acuerdo a la configuración que el administrador establezca.
Tabla 22 Actores del sistema
4.5 LISTA PRELIMINAR DE CASOS DE USO
● Iniciar Sesión
● Cerrar Sesión
● Actualizar Información Personal
● Cambio Contraseña
● Crear usuarios
● Modificar usuarios
● Eliminar usuarios
● Consultar usuarios
● Crear perfil
● Modificar perfil
● Eliminar perfil
47
● Crear permisos de perfil
● Crear proyecto
● Modificar proyecto
● Eliminar proyecto
● Crear requerimiento
● Modificar requerimiento
● Eliminar requerimiento
● Crear tarea de requerimiento
● Modificar tarea
● Eliminar tarea
● Asignar tarea
● Adjuntar documento a tarea
● Reasignar tarea
● Crear grupo de usuarios
● Generar reportes
● Visualizar estadísticas
● Realizar seguimiento de ubicación
● Reportar avance de tarea
4.6 DOCUMENTACIÓN DE CASOS DE USO
Caso de uso CU1 - Iniciar sesión
Propósito Identificar el usuario que está accediendo al sistema
Descripción Realizar la validación indicada cuando un usuario ingrese con sus credenciales al sistema.
48
Tipo Esencial
Tabla 23 Caso de uso 1
Caso de uso CU2 - Cerrar sesión
Propósito Cerrar la sesión de un usuario cuando termine la interacción con el sistema
Descripción Finalizar todos los procesos que el usuario tenga en una sesión para evitar que personas ajenas a la empresa manipulen información esencial.
Tipo Esencial
Tabla 24 Caso de uso 2
Caso de uso CU3 - Actualizar información personal
Propósito Actualizar los datos del usuario para mantener sincronizado la aplicación.
Descripción Disponer un módulo para la actualización de datos del usuario de tal forma que pueda modificar cualquier dato de su información personal
Tipo Implementación concreta
Tabla 25 Caso de uso 3
49
Caso de uso CU4 - Crear usuarios
Propósito Abastecer la base de datos del sistema para el correcto funcionamiento de la solución
Descripción Disponer un formulario de creación de usuarios, realizando las validaciones correspondientes para finalmente almacenar la información en la base de datos.
Tipo Esencial
Tabla 26 Caso de uso 4
Caso de uso CU5 - Editar usuarios
Propósito Abastecer la base de datos del sistema para el correcto funcionamiento de la solución
Descripción Disponer un formulario de modificación de usuarios, realizando las validaciones correspondientes para finalmente almacenar la información en la base de datos.
Tipo Esencial
Tabla 27 Caso de uso 5
Caso de uso CU6 - Eliminar usuarios
Propósito Mantener la integridad del sistema, eliminando usuarios que dejan de trabajar para la empresa.
50
Descripción Cambiar el estado de un usuario de Activo a Eliminado para restringir el acceso de personal no autorizado a la aplicación.
Tipo Esencial
Tabla 28 Caso de uso 6
Caso de uso CU7 - Crear perfiles
Propósito Abastecer la base de datos del sistema para el correcto funcionamiento de la solución
Descripción Disponer un formulario de creación de perfiles, realizando las validaciones correspondientes para finalmente almacenar la información en la base de datos.
Tipo Esencial
Tabla 29 Caso de uso 7
Caso de uso CU8 - Editar perfiles
Propósito Abastecer la base de datos del sistema para el correcto funcionamiento de la solución
Descripción Disponer un formulario de modificación de perfiles, realizando las validaciones correspondientes para finalmente almacenar la información en la base de datos.
Tipo Esencial
Tabla 30 Caso de uso 8
51
Caso de uso CU9 - Eliminar perfiles
Propósito Mantener la integridad del sistema, eliminando perfiles que no son relevantes para la compañía.
Descripción Cambiar el estado de un perfil de Activo a Eliminado para evitar redundancia de perfilamiento.
Tipo Esencial
Tabla 31 Caso de uso 9
Caso de uso CU10 - Crear módulos
Propósito Abastecer la base de datos del sistema para el correcto funcionamiento de la solución
Descripción Disponer un formulario de creación de módulos, realizando las validaciones correspondientes para finalmente almacenar la información en la base de datos.
Tipo Esencial
Tabla 32 Caso de uso 10
52
Caso de uso CU11 - Editar módulos
Propósito Abastecer la base de datos del sistema para el correcto funcionamiento de la solución
Descripción Disponer un formulario de modificación de módulos, realizando las validaciones correspondientes para finalmente almacenar la información en la base de datos.
Tipo Esencial
Tabla 33 Caso de uso 11
Caso de uso CU12 - Eliminar módulos
Propósito Mantener la integridad del sistema, eliminando módulos que dejan de ser relevantes para la empresa.
Descripción Cambiar el estado de un módulo de Activo a Eliminado para evitar la redundancia de funcionalidades.
Tipo Esencial
Tabla 34 Caso de uso 12
53
Caso de uso CU13 - Crear proyectos
Propósito Abastecer la base de datos del sistema para el correcto funcionamiento de la solución
Descripción Disponer un formulario de creación de proyectos, realizando las validaciones correspondientes para finalmente almacenar la información en la base de datos.
Tipo Esencial
Tabla 35 Caso de uso 13
Caso de uso CU14 - Editar proyectos
Propósito Abastecer la base de datos del sistema para el correcto funcionamiento de la solución
Descripción Disponer un formulario de modificación de proyectos, realizando las validaciones correspondientes para finalmente almacenar la información en la base de datos.
Tipo Esencial
Tabla 36 Caso de uso 14
54
Caso de uso CU15 - Eliminar proyectos
Propósito Mantener la integridad del sistema, eliminando los proyectos que dejan de tener relevancia para la empresa.
Descripción Cambiar el estado de un proyecto de Activo a Eliminado para evitar inconsistencias con otros proyectos similares.
Tipo Esencial
Tabla 37 Caso de uso 15
Caso de uso CU16 - Crear requerimientos
Propósito Abastecer la base de datos del sistema para el correcto funcionamiento de la solución
Descripción Disponer un formulario de creación de requerimientos, realizando las validaciones correspondientes para finalmente almacenar la información en la base de datos.
Tipo Esencial
Tabla 38 Caso de uso 16
55
Caso de uso CU17 - Editar requerimientos
Propósito Abastecer la base de datos del sistema para el correcto funcionamiento de la solución
Descripción Disponer un formulario de modificación de requerimientos, realizando las validaciones correspondientes para finalmente almacenar la información en la base de datos.
Tipo Esencial
Tabla 39 Caso de uso 17
Caso de uso CU18 - Eliminar requerimientos
Propósito Mantener la integridad del sistema, eliminando requerimientos que no son relevantes para la empresa.
Descripción Cambiar el estado de un requerimiento de Activo a Eliminado para evitar inconsistencias con requerimientos similares.
Tipo Esencial
Tabla 40 Caso de uso 18
56
Caso de uso CU19 - Crear tareas
Propósito Abastecer la base de datos del sistema para el correcto funcionamiento de la solución
Descripción Disponer un formulario de creación de tareas, realizando las validaciones correspondientes para finalmente almacenar la información en la base de datos.
Tipo Esencial
Tabla 41 Caso de uso 19
Caso de uso CU20 - Editar tareas
Propósito Abastecer la base de datos del sistema para el correcto funcionamiento de la solución
Descripción Disponer un formulario de modificación de tareas, realizando las validaciones correspondientes para finalmente almacenar la información en la base de datos.
Tipo Esencial
Tabla 42 Caso de uso 20
57
Caso de uso CU21 - Eliminar tareas
Propósito Mantener la integridad del sistema, eliminando tareas que no son relevantes para la empresa.
Descripción Cambiar el estado de una tarea de Activa a Eliminada para evitar inconsistencias con tareas similares
Tipo Esencial
Tabla 43 Caso de uso 21
Caso de uso CU22 - Asignar tarea
Propósito Asignar una tarea a un usuario para que sea realizada o escalada en caso que no corresponda a las labores de la persona asignada
Descripción Disponer un módulo de asignamiento de tareas para que los coordinadores de proyectos puedan asignar tareas a usuarios que de acuerdo a sus labores puedan realizar la tarea asignada.
Tipo Esencial
Tabla 44 Caso de uso 22
58
Caso de uso CU23 - Generar reportes
Propósito Brindar una serie de indicadores para ayudar con la toma de decisiones de la compañía.
Descripción Disponer un informes y reportes con información fundamental para la compañía como:
- Progreso de proyectos actuales - Reporte de proyectos finalizados - Rendimiento por empleado - Rendimiento por Project Manager - Rendimiento por Coordinador de proyectos - Análisis de tareas similares
Tipo Esencial
Tabla 45 Caso de uso 23
Caso de uso CU25 - Realizar seguimiento de ubicación
Propósito Verificar el cumplimiento de tareas por fuera de la compañía.
Descripción Monitorear mediante aplicación web el cumplimiento de tareas que se realicen por fuera de la compañía, de tal forma que se pueda generar un reporte por tiempo invertido de acuerdo a la ubicación capturada.
Tipo Esencial
Tabla 46 Caso de uso 24
59
4.7 LISTA INICIAL DE CLASES
ENTITIES LAYER:
• AppTareaUsuario.cs
• Asignacion_tarea.cs
• Documento.cs
• Estado_Tarea.cs
• Grupo.cs
• LogError.cs
• LogTransaccion.cs
• Modulo.cs
• Movimiento.cs
• Perfil.cs
• Permiso.cs
• PermisoPerfil.cs
• PrioridadTarea.cs
• Proyecto.cs
• Requerimiento.cs
• Tarea.cs
• TareaUsuario.cs
• Tipo_movimiento.cs
• Tipo_tarea.cs
• Usuario.cs
DATA ACCESS LAYER:
• EntityModel.cs
• GetAsignacion_Tarea_Result.cs
• GetDocumento_Result.cs
• GetEstadoTareas_Result.cs
• GetModulos_Result.cs
• GetObjUsuario_Result.cs
• GetPermisosPerfil_Result.cs
• GetProyectos_Result.cs
• GetRequerimientos_Result.cs
• GetTareaPorUsuario_Result.cs
• GetTareas_Result.cs
• GetTareasXUsuario_Result.cs
• GetTipoTareas_Result.cs
• GetUsuario_Result.cs
• GetUsuarioCombo_Result.cs
• ViewGrupos.cs
• ViewModulos.cs
60
• ViewPerfiles.cs
• ViewTareaXUsuario.cs
• ViewUsuarios.cs BUSINESS LOGIC LAYER:
• AppTareaUsuarioBLO.cs
• Asignacion_tareaBLO.cs
• DocumentoBLO.cs
• Estado_tareaBLO.cs
• GrupoBLO.cs
• ModuloBLO.cs
• PerfilBLO.cs
• PermisoPerfilBLO.cs
• PrioridadTareaBLO.cs
• ProyectoBLO.cs
• RequerimientoBLO.cs
• TareaBLO.cs
• TareaUsuarioBLO.cs
• TipoTareaBLO.cs
• UsuarioBLO.cs
• Crud.cs
• ICrudObject.cs WEB USER INTERFACE LAYER:
• Asignacion_tareasController.cs
• DocumentosController.cs
• HomeController.cs
• LoginController.cs
• ModulosController.cs
• PerfilesController.cs
• ProyectosController.cs
• RequerimientosController.cs
• TareasController.cs
• UsuariosController.cs WEB API LAYER:
• AsignacionTareaController.cs
• DocumentoController.cs
• EstadoTareaController.cs
• HomeController.cs
• ModuloController.cs
• PerfilController.cs
61
• PrioridadTareaController.cs
• ProyectoController.cs
• RequerimientoController.cs
• TareaController.cs
• TipoTareaController.cs
• UsuarioController.cs
• ValuesController.cs MOBILE USER INTERFACE LAYER:
• ContactosModel.cs
• DetalleContactoModel.cs
• DetalleTareaModel.cs
• DocumentoModel.cs
• MainViewModel.cs
• MapaModel.cs
• MenuModel.cs
• MisTareasModel.cs
• RegistrarComentarioModel.cs
• TransferirTareaModel.cs
4.8 RESPONSABILIDAD DE CLASES
ENTITIES LAYER
Nombre Clase: AppTareaUsuario.cs
Responsabilidad Colaborador
● Contiene las propiedades de las
tareas de los Usuarios.
● Tarea.cs
● Usuario.cs
Tabla 47 Responsabilidad clase AppTareaUsuario
Nombre Clase:Asignacion_tarea.cs
Responsabilidad Colaborador
● Contiene las propiedades de las
asignaciones de tareas.
● Tarea.cs
Tabla 48 Responsabilidad clase Asignacion_tarea
62
Nombre Clase: Documento.cs
Responsabilidad Colaborador
● Contiene las propiedades de los
documentos que se van a
adjuntar.
Tabla 49 Responsabilidad clase Documento
Nombre Clase: Estado_Tarea.cs
Responsabilidad Colaborador
● Contiene las propiedades de los
estados de las tareas
Tabla 50 Responsabilidad clase Estado_Tarea
Nombre Clase: Grupo.cs
Responsabilidad Colaborador
● Contiene las propiedades de los
grupos
Tabla 51 Responsabilidad clase Grupo
Nombre Clase: LogError.cs
Responsabilidad Colaborador
● Contiene las propiedades de los
Log de errores
Tabla 52 Responsabilidad clase LogError
Nombre Clase: LogTransaccion.cs
Responsabilidad Colaborador
● Contiene las propiedades de los
Log de transacciones
Tabla 53 Responsabilidad clase LogTransaccion
63
Nombre Clase: Modulo.cs
Responsabilidad Colaborador
● Contiene las propiedades de los
módulos de la aplicación
Tabla 54 Responsabilidad clase Modulo
Nombre Clase: Movimiento.cs
Responsabilidad Colaborador
● Contiene las propiedades de los
movimientos de la aplicación
Tabla 55 Responsabilidad clase Movimiento
Nombre Clase: Perfil.cs
Responsabilidad Colaborador
● Contiene las propiedades de los
perfiles de la aplicación
Tabla 56 Responsabilidad clase Perfil
Nombre Clase: Permiso.cs
Responsabilidad Colaborador
● Contiene las propiedades de los
permisos de los perfiles dentro
de los módulos
● Perfil.cs
● Modulo.cs
Tabla 57 Responsabilidad clase Permiso
Nombre Clase: PrioridadTarea.cs
Responsabilidad Colaborador
● Contiene las propiedades de las
prioridades de las tareas
● Tarea.cs
Tabla 58 Responsabilidad clase PrioridadTarea
64
Nombre Clase: Proyecto.cs
Responsabilidad Colaborador
● Contiene las propiedades de los
proyectos
Tabla 59 Responsabilidad clase Proyecto
Nombre Clase: Requerimiento.cs
Responsabilidad Colaborador
● Contiene las propiedades de los
requerimientos
Tabla 60 Responsabilidad clase Requerimiento
Nombre Clase: Tarea.cs
Responsabilidad Colaborador
● Contiene las propiedades de las
tareas
Tabla 61 Responsabilidad clase Tarea
Nombre Clase: Tipo_movimiento.cs
Responsabilidad Colaborador
● Contiene las propiedades de los
tipos de movimientos
Tabla 62 Responsabilidad clase Tipo_movimiento
Nombre Clase: Usuario.cs
Responsabilidad Colaborador
● Contiene las propiedades de los
usuarios
● Perfil.cs
● Grupo.cs
Tabla 63 Responsabilidad clase Usuario
65
DATA ACCESS LAYER
Nombre Clase: EntityModel.cs
Responsabilidad Colaborador
● Contiene la lógica de
transaccionabilidad general con
la base de datos.
● Clase creada por Entity
Framework
● EntityFramework.dll
Tabla 64 Responsabilidad clase EntityModel
Las demás clases de la capa de acceso a datos son el mapeo de objetos que el framework realiza, como son clases creadas automáticamente no se agregan al presente documento. BUSINESS LOGIC LAYER
Nombre Clase: AppTareaUsuarioBLO.cs
Responsabilidad Colaborador
● Contiene los métodos de
inserción, modificación,
eliminación y consulta de las
tareas de un usuario
● DAL.GetAsignacion_Tarea_Re
sult.cs
● Entities.Asignacion_tareas.cs
Tabla 65 Responsabilidad clase AppTareaUsuarioBLO
Nombre Clase: DocumentoBLO.cs
Responsabilidad Colaborador
● Contiene los métodos de
inserción, modificación,
eliminación y consulta de los
documentos de una tarea
● DAL.GetDocumento_Result.cs
● Entities.Documento.cs
Tabla 66 Responsabilidad clase DocumentoBLO
66
Nombre Clase: Estado_tareaBLO.cs
Responsabilidad Colaborador
● Contiene los métodos de
inserción, modificación,
eliminación y consulta de los
estados de una tarea
● DAL.GetEstadoTareas_Result.
cs
● Entities.Estado_Tarea.cs
Tabla 67 Responsabilidad clase Estado_tareaBLO
Nombre Clase: GrupoBLO.cs
Responsabilidad Colaborador
● Contiene los métodos de
inserción, modificación,
eliminación y consulta de los
grupos
● DAL.Grupo.cs
● Entities.Grupo.cs
Tabla 68 Responsabilidad clase GrupoBLO
Nombre Clase: ModuloBLO.cs
Responsabilidad Colaborador
● Contiene los métodos de
inserción, modificación,
eliminación y consulta de los
módulos del sistema
● DAL.GetModulos_Result.cs
● Entities.Modulo.cs
Tabla 69 Responsabilidad clase ModuloBLO
Nombre Clase: PerfilBLO.cs
Responsabilidad Colaborador
● Contiene los métodos de
inserción, modificación,
eliminación y consulta de los
perfiles
● DAL.ViewPerfiles.cs
● Entities.Perfil.cs
Tabla 70 Responsabilidad clase PerfilBLO
67
Nombre Clase: PermisoPerfilBLO.cs
Responsabilidad Colaborador
● Contiene los métodos de
inserción, modificación,
eliminación y consulta de los
permisos del perfil
● DAL.ViewPerfiles.cs
● Entities.Permisos_Perfil.cs
Tabla 71 Responsabilidad clase PermisoPerfilBLO
Nombre Clase: PrioridadTareaBLO.cs
Responsabilidad Colaborador
● Contiene los métodos de
inserción, modificación,
eliminación y consulta de las
propiedades de una tarea
● DAL.ViewTarea.cs
● Entities.Prioridad_tarea.cs
Tabla 72 Responsabilidad clase PrioridadTareaBLO
Nombre Clase: ProyectoBLO.cs
Responsabilidad Colaborador
● Contiene los métodos de
inserción, modificación,
eliminación y consulta de los
proyectos
● DAL.GetProyectos_Result.cs
● Entities.Proyecto.cs
Tabla 73 Responsabilidad clase ProyectoBLO
Nombre Clase: RequerimientoBLO.cs
Responsabilidad Colaborador
● Contiene los métodos de
inserción, modificación,
eliminación y consulta de los
requerimientos de los proyectos
● DAL.GetRequerimientos_Resul
t.cs
● Entities.Requerimiento.cs
● Entities.Proyecto.cs
Tabla 74 Responsabilidad clase RequerimientoBLO
68
Nombre Clase: TareaBLO.cs
Responsabilidad Colaborador
● Contiene los métodos de
inserción, modificación,
eliminación y consulta de las
tareas de un requerimiento
● DAL.GetTareas_Result.cs
● Entities.Tarea.cs
● Entities.Requerimiento.cs
Tabla 75 Responsabilidad clase TareaBLO
Nombre Clase: TipoTareaBLO.cs
Responsabilidad Colaborador
● Contiene los métodos de
inserción, modificación,
eliminación y consulta de los
tipos de tareas
● DAL.GetTipoTareas_Result.cs
● Entities.TipoTarea.cs
Tabla 76 Responsabilidad clase TipoTareaBLO
Nombre Clase: UsuarioBLO.cs
Responsabilidad Colaborador
● Contiene los métodos de
inserción, modificación,
eliminación y consulta de los
Usuarios del sistema
● DAL.ViewUsuarios.cs
● Entities.Usuario.cs
Tabla 77 Responsabilidad clase UsuarioBLO
Nombre Clase: Crud.cs
Responsabilidad Colaborador
● Es la clase para implementar la
inyección de dependencias.
● ICrudObject.cs
Tabla 78 Responsabilidad clase Crud
69
Nombre Clase: ICrudObject.cs
Responsabilidad Colaborador
● Interfaz que contiene la
estructura de métodos que
debe tener una clase
perteneciente a la capa de
lógica de negocio
Tabla 79 Responsabilidad clase ICrudObject
WEB API LAYER
Nombre Clase:Asignacion_tareasController.cs
Responsabilidad Colaborador
● Controlador de la vista para
asignación de tareas.
● Contiene los métodos
necesarios para la interacción
con la capa de lógica de
negocio
● BLL.Crud.cs
● BLL.Asignacion_tareasBLO.cs
● Entities.Asignacion_tarea.cs
Tabla 80 Responsabilidad clase Asignacion_tareasController
Nombre Clase: DocumentosController.cs
Responsabilidad Colaborador
● Controlador de la vista para los
documentos.
● Contiene los métodos
necesarios para la interacción
con la capa de lógica de
negocio
● BLL.Crud.cs
● BLL.DocumentoBLO.cs
● Entities.Documento.cs
Tabla 81 Responsabilidad clase DocumentosController
70
Nombre Clase:HomeController.cs
Responsabilidad Colaborador
● Controlador de la vista principal ● BLL.UsuarioBLO.cs
● Entities.Usuario.cs
● Entities.Perfil.cs
Tabla 82 Responsabilidad clase HomeController
Nombre Clase: LoginController.cs
Responsabilidad Colaborador
● Controlador de la vista de
logueo.
● Autentica el usuario que esta
ingresando
● De acuerdo al perfil ingresado
se crea el menú
correspondiente.
● BLL.Crud.cs
● BLL.UsuarioBLO.cs
● Entities.Usuario.cs
● Entities.Perfil.cs
Tabla 83 Responsabilidad clase LoginController
Nombre Clase: ModulosController.cs
Responsabilidad Colaborador
● Controlador de la vista para los
módulos de la aplicación
● Contiene los métodos
necesarios para la interacción
con la capa de lógica de
negocio
● BLL.Crud.cs
● BLL.ModulosBLO.cs
● Entities.Modulos.cs
Tabla 84 Responsabilidad clase ModulosController
71
Nombre Clase: PerfilesController.cs
Responsabilidad Colaborador
● Controlador de la vista para los
perfiles de la aplicación.
● Contiene los métodos
necesarios para la interacción
con la capa de lógica de
negocio
● BLL.Crud.cs
● BLL.PerfiBLO.cs
● Entities.Perfil.cs
Tabla 85 Responsabilidad clase PerfilesController
Nombre Clase:ProyectosController.cs
Responsabilidad Colaborador
● Controlador de la vista para los
proyectos de la aplicación.
● Contiene los métodos
necesarios para la interacción
con la capa de lógica de
negocio
● BLL.Crud.cs
● BLL.ProyectoBLO.cs
● Entities.Proyecto.cs
Tabla 86 Responsabilidad clase ProyectosController
Nombre Clase:RequerimientosController.cs
Responsabilidad Colaborador
● Controlador de la vista para los
Requerimientos de un proyecto
determinado.
● Contiene los métodos
necesarios para la interacción
con la capa de lógica de
negocio
● BLL.Crud.cs
● BLL.RequerimientoBLO.cs
● Entities.Requerimiento.cs
● Entities.Proyecto.cs
Tabla 87 Responsabilidad clase RequerimientosController
72
Nombre Clase:TareasController.cs
Responsabilidad Colaborador
● Controlador de la vista para las
tareas de un requerimiento
seleccionado
● Contiene los métodos
necesarios para la interacción
con la capa de lógica de
negocio
● BLL.Crud.cs
● BLL.TareaBLO.cs
● Entities.Tarea.cs
● Entities.Requerimiento.cs
Tabla 88 Responsabilidad clase TareasController
Nombre Clase:UsuariosController.cs
Responsabilidad Colaborador
● Controlador de la vista para las
tareas de un requerimiento
seleccionado
● Contiene los métodos
necesarios para la interacción
con la capa de lógica de
negocio
● BLL.Crud.cs
● BLL.TareaBLO.cs
● Entities.Tarea.cs
● Entities.Requerimiento.cs
Tabla 89 Responsabilidad clase UsuariosController
WEB USER INTERFACE LAYER Las clases de esta capa consumen la API anteriormente mencionada para realizar las transacciones de cada una de las siguientes vistas:
• Asignación de tareas
• Documentos
• Home
• Login
• Módulos
• Perfiles
• Proyectos
• Requerimientos
73
• Tareas
• Usuarios
4.9 DIAGRAMA DE CLASES
ENTITIES LAYER
Ilustración 10 Diagrama de clases ENTITIES LAYER
DATA ACCESS LAYER
Ilustración 11 Diagrama de clases DATA ACCESS LAYER
74
BUSINESS LOGIC LAYER
Ilustración 12 Diagrama de clases BUSINESS LOGIC LAYER
WEB API LAYER
Ilustración 13 Diagrama de clases WEB API LAYER
75
Ilustración 14 Diagrama de clases WEB API LAYER general
WEB USER INTERFACE LAYER
Ilustración 15 Diagrama de clases WEB USER INTERFACE LAYER
76
4.10 DIAGRAMAS DE SECUENCIA
Ilustración 16 Diagrama de secuencia Login
77
Ilustración 17 Diagrama de secuencia procesos CRUD
78
4.11 DIAGRAMA DE ACTIVIDADES
Ilustración 18 Diagrama de actividades
4.12 DIAGRAMA ENTIDAD RELACIÓN
Ilustración 19 Diagrama Entidad Relación
Asignacion_tareas (dbo)
id_asignacion
id_usuario
id_tarea
Documento (dbo)
id_documento
nombre_documento
descripcion_documento
id_asignacion
url_documento
fecha_Adjunto
Estado_Tarea (dbo)
id_EstadoTarea
nombre_Estado
Grupo (dbo)
id_grupo
nombre_grupo
LogError (dbo)
idLog
Modulo
Tipo
Fecha
Error
idUsuario
LogTransacciones (dbo)
idLog
Modulo
Tipo
Fecha
Descripcion
idUsuario
NuevaData
ANteriorData
Modulo (dbo)
id_modulo
nombre_modulo
url_modulo
id_modulo_padre
estado
Movimiento (dbo)
id_movimiento
id_asignacion
id_tipo_movimiento
fecha_movimiento
descripcion_movimiento
Perfil (dbo)
id_perfil
nombre_perfil
estado
Permiso (dbo)
id_perfil
id_modulo
id_tipo_permiso
valor_permiso
Proyecto (dbo)
id_proyecto
nombre_proyecto
descripcion_proyecto
estado
id_usuario_crea
Requerimiento (dbo)
id_requerimiento
nombre_requerimiento
descripcion_requerimiento
id_proyecto
Tarea (dbo)
id_tarea
nombre_tarea
descripcion_tarea
id_tarea_padre
id_requerimiento
id_TipoTarea
codigo_tarea
id_EstadoTarea
fecha_Creacion_tarea
fecha_Cierre_tarea
hora_Ejecucion_Tarea
prioridad_tarea
idUsuarioCreacion
Tipo_movimiento (dbo)
id_tipo_movimiento
nombre_tipo_movimiento
Tipo_permiso (dbo)
id_tipo_permiso
nombre_tipo_permiso
Tipo_Tarea (dbo)
id_TipoTarea
nombre_TipoTarea
Indicador_TipoTarea
descripcion_TipoTarea
Usuario (dbo)
id_usuario
identificacion_usuario
contrasena_usuario
nombre_usuario
apellido_usuario
cargo
fecha_nacimiento
fecha_creacion
id_usuario_creacion
id_perfil
id_grupo
estado
Correo
79
4.13 DIAGRAMA DE DESPLIEGUE
Ilustración 20 Diagrama de despliegue
4.14 DIAGRAMA DE COMPONENTES
Ilustración 21 Diagrama de componentes
80
4.15 DIAGRAMA DE PAQUETES
Ilustración 22 Diagrama de paquetes
81
4.16 ARQUITECTURA DE LA SOLUCIÓN
Se utilizó un servidor Azure previamente adquirido por la empresa Virtual Smart Business para realizar la implementación de la solución, y gracias a su modelo IaaS de Cloud Computing se logra un ambiente adecuado para implementar servicios de integración como es el Web API Rest (consumido por la Web APP y por la Mobile APP), y brinda a la empresa la posibilidad de integrarse con otro tipo de aplicaciones sin necesidad de alteraciones en el Core del sistema de gestión de proyectos.
La base de datos también fue creada en una instancia de SQL dentro de los servicios de Azure, lo que beneficia a la compañía en el sentido de tener el control independiente de los costos de almacenamiento y adicionalmente la posibilidad de configurar la redundancia de la base de datos de acuerdo a la necesidad que se tenga en determinado momento.
Adicionalmente, gracias al servicio de Infrastructure as a Service de Azure se tienen las siguientes ventajas:
• Asegurar una excelente disponibilidad (99,95%) de la solución por su flexibilidad, brindando la posibilidad de distribuir los recursos de acuerdo a la concurrencia de las aplicaciones.
• Tiene una excelente relación costo-beneficio ya que Microsoft cobra de acuerdo al uso de las instancias de Cloud Computing.
• La seguridad ofrecida por la instancia de IaaS es de alto nivel, ya que, dependiendo de la necesidad de Virtual Smart Business se puede configurar todo tipo de Firewalls, Redes privadas, Accesos encriptados y Almacenamiento protegido.
82
Ilustración 23 Arquitectura de la solución
83
4.17 PRUEBAS DE INTEGRACIÓN
Tabla 90 Prueba 1
Prueba Módulo Gestión Usuarios – Prueba integración (13 de Junio de 2018)
Realizada
por:
Martha Sandoval Estado
Hora Inicio: 10:20 am Proceso OK
Hora Fin: 10:40 am Terminada SI
Concepto Revisar el funcionamiento de las operaciones relacionados con el
Módulo de Gestión de Usuarios
ACCIÓN ELEMENTO
A PRUEBA
Resultado esperado Tipo de
Usuario
Estado
Ingreso al
Sistema
Formulario
“Inicio
Sesión”
El usuario ingresa número de
identificación y contraseña
registrados en la base de
datos, si es correcto la
aplicación permitirá el
acceso.
Todos OK
Consulta de
Usuarios
Formulario
“Usuarios” e
“Información
Usuario”
Visualizar listado de usuarios
registrados en la base de
datos, junto con su
información personal: Id,
Nombre y Apellidos,
Teléfono, Email, Tipo de
Usuario y No. Contrato. No
permite eliminar usuarios o
modificar su información
personal.
Administra
dor
OK
84
Consulta de
Usuarios por
Id
Formulario
“Usuarios” e
“Información
Usuario”
Visualizar listado de usuarios
registrados en la base de
datos filtrados por el número
de identificación, junto con
su información personal: Id,
Nombre y Apellidos,
Teléfono, Email, Tipo de
Usuario y No. Contrato. No
permite eliminar usuarios o
modificar su información
personal.
Administra
dor
OK
Editar Perfil Formulario
“Editar Perfil”
Visualizar la información
personal del usuario en
sesión y permitir modificar la
información correspondiente
a email y teléfono.
Todos OK
Cambio
Contraseña
Formulario
“Cambio
Contraseña”
Permitir al usuario en sesión
cambiar su contraseña de
acceso luego de validar la
contraseña actual
Todos OK
Errores 1. Al visualizar la información de un usuario en el campo de de identificación
no se visualiza la información correspondiente.
2. Al consultar usuarios por Id, seleccionar un usuario para ver su
información y solicitar “Regresar“, el campo de texto para realizar el filtro
por número de identificación y la lista de usuarios dejan la información
pegada.
Correcciones 1. Se modificó la consulta a la base de datos para que se visualizara la
información de los usuarios completa.
2. Se implementó función para limpiar el campo de texto de número de
identificación y actualizar la lista de usuarios, al momento de seleccionar
85
un usuario para ver su información personal completa.
Tabla 91 Prueba 2
Prueba Módulo Gestión de Proyectos – Prueba integración (14 de Junio de
2013)
Realizada
por:
Martha Sandoval Estado
Hora Inicio: 8:00 am Proceso OK
Hora Fin: 8:20 am Terminada SI
Concepto Revisar el funcionamiento de las operaciones relacionados con el
Módulo de Gestión de Proyectos
ACCION ELEMENTO
A PRUEBA
Resultado esperado Perfil Esta
do
Consulta
de
Proyectos
Formulario
“Proyectos”
e
“Información
Proyecto”
Visualizar listado de proyectos
registrados en la base de datos,
junto con la información básica del
mismo: Nombre del proyecto, Fecha
de Inicio (aaaa-mm-dd), descripción
del proyecto.
Adminis
trador
OK
Consulta
de
Proyectos
por
Nombre
Formulario
“Proyectos”
e
“Información
Proyecto”
Visualizar listado de proyectos
registrados en la base de datos
filtrados nombre del proyecto, junto
con la información básica del
mismo:Nombre del proyecto, Fecha
de Inicio (aaaa-mm-dd), descripción
del proyecto.
Adminis
trador
OK
86
Consulta
de
requerimie
ntos
Formulario
“Requerimie
ntos”
Visualizar un listado con todos los
requerimientos del sistema donde se
visualizará la información básica del
mismo: Nombre del requerimiento,
descripción del requerimiento, fecha
de creación del requerimiento,
Nombre del proyecto.
Adminis
trador
OK
Consulta
de tareas
Formulario
“Tareas”
Desde el módulo de requerimientos
consultar las tareas asociadas con
los campos de: Nombre de tarea,
Descripción de la tarea, Prioridad de
la tarea, Estado de la tarea, Usuario
asignado, Fecha de asignación,
Fecha de finalización.
Adminis
trador
OK
Asignar
tareas
Formulario
“Asignar
tareas”
Desde el módulo de asignación de
tareas, se visualizan los
requerimientos activos del proyecto
en curso y las tareas pendientes por
asignar se asocian a usuarios
técnicos.
Coordin
ador de
proyect
os
OK
Completar
tarea
Formulario
“Tareas”
En el módulo de tareas se visualizan
las tareas asignadas y se selecciona
la tarea a la que se desea cambiar el
estado “En curso” a “Finalizada”
Usuario
técnico
OK
Errores 1. Al momento de visualizar los requerimientos se encontraban cruzados dos
campos.
2. Cuando se seleccionaba un requerimiento no consultaba las tareas
asociadas.
3. Al asignar una tarea no se mostraba en el “Dashboard” del usuario.
87
Correccion
es
1. Se corrige la visualización de los requerimientos.
2. Se verifica el Store Procedure de la consulta de tareas según requerimiento
y se encuentra una inconsistencia en la data.
88
5. IMPLEMENTACIÓN DE UN SISTEMA DE SEGURIDAD ADECUADO PARA LA SOLUCIÓN
La seguridad es un tema fundamental dentro de cualquier tipo de solución tecnológica, puesto que actualmente la información es el activo más preciado de cualquier compañía, lo cual genera que los sistemas estén en un constante ataque de innumerables tipos de amenazas. Los incidentes que causan más daño son por Ransomware, el cual secuestra la información a cambio de una recompensa. Este tipo de ataques siempre llega a través de usuarios finales, es decir por medio de dispositivos personales y al momento que los usuarios se conectan a las nubes públicas. Enlaces falsos, redirecciones y trojanos son otros tipos de software malicioso que pueden llegar a la información más importante de la empresa. Gracias a Microsoft Azure se puede minimizar la vulnerabilidad de una empresa, ya que su paquete de servicios IaaS contiene las siguientes prestaciones de seguridad:
• Detección de intrusiones
• Prevención frente a ataques por denegación de servicio distribuido (DDoS).
• Pruebas de penetración
• Análisis de comportamiento
• Detección de anomalías
• Cifrado de datos en transito Adicionalmente Microsoft cuenta con el servicio de Azure Backup and Recovery Service que está diseñado para respaldar y recuperar los datos almacenados en los servidores, y además realiza:
• Respaldo automático.
• Escalabilidad sin límite.
• Diferentes tipos de almacenamiento.
• Transferencia ilimitada.
• Encriptación de datos.
• Aplicación de respaldos consistentes.
• Retención a largo plazo.
5.1 SEGURIDAD DE LA BASE DE DATOS
La seguridad es un aspecto importante a la hora de administrar bases de datos, y Azure SQL Database admite la seguridad de conexión con las reglas de firewall y el cifrado de conexión.
89
Es compatible con la autenticación mediante nombre de usuario y contraseña y con la autenticación mediante Directorio Activo, adicionalmente la autorización usa el control de acceso basado en roles. Por otro lado, Azure SQL Database realiza el cifrado y descifrado de la base de datos en tiempo real, copias de seguridad asociadas y archivos de registro de transacciones en reposo sin necesidad de efectuar cambios en la aplicación. Microsoft proporciona otros métodos para cifrar los datos de la empresa:
• El Cifrado de nivel de celda está disponible para cifrar columnas concretas, o incluso celdas de datos, con distintas claves de cifrado.
• Posee propiedades de configuración si se necesita un módulo de seguridad de hardware o de administración central de la jerarquía de claves de cifrado.
• Asimismo, hace que el cifrado resulte transparente para las aplicaciones. Con esta propiedad permite cifrar información confidencial dentro de las aplicaciones sin tener que revelar las claves de cifrado.
Azure protege la información en todos los estados:
• Para los datos en movimiento mediante la Seguridad de la capa de transporte (TLS).
• Para los datos en reposo mediante el Cifrado de datos transparente.
• Para los datos en uso mediante Always Encrypted. Gracias a esta infraestructura se evita el problema habitual de todas las aplicaciones cliente/servidor de la necesidad de privacidad cuando los datos se desplazan a través de redes públicas y privadas. Si los datos que se transfieren a través de una red no están cifrados y existe la posibilidad de que usuarios no autorizados se hagan con ellos y los roben.
90
5.2 ACCESO A LAS APLICACIONES
Azure SQL Server utiliza enmascaramiento de datos dinámicos lo cual ayuda a impedir el acceso no autorizado a datos confidenciales permitiendo escoger la cantidad de los datos confidenciales que se revelarán con un impacto mínimo en el nivel de aplicación. Es una característica de seguridad basada en directivas que oculta los datos confidenciales en el conjunto de resultados de una consulta sobre los campos designados de la base de datos, aunque que los datos de la base de datos no cambian.
Ilustración 24 Esquema de seguridad de acceso a las aplicaciones en Azure13
13 Jake, Marketing. Cloud Comparison Guide (2018)
91
6. IMPLEMENTACIÓN DE POLÍTICAS DE SEGURIDAD
Este capítulo tiene como propósito detallar la propuesta de una estructura jerárquica encargada del área de seguridad de la información, la identificación de activos y amenazas con su correspondiente valoración. La computación en la nube o información de DataCloud es un término general para denominar cualquier cosa que tenga que ver con la provisión de servicios de hospedaje a través de Internet. Estos servicios se dividen en tres grandes categorías: Infraestructura como servicio (IaaS), plataforma como servicio (PaaS) y software como servicio (SaaS). Al igual que muchas tecnologías genera riesgos identificables que pueden afectar el correcto funcionamiento de una organización. Además, este servicio de PaaS en Cloud es una de las diversas tecnologías las cuales generan riesgos identificables que pueden afectar el correcto funcionamiento y disponibilidad dentro de la organización Para el uso adecuado del sistema telemático de gestión de proyectos de la empresa Virtual Smart Business, se deben implementar políticas de seguridad, minimizando riesgos e identificando las amenazas que ayuden a conservar la integridad de la información obtenida mediante las aplicaciones Web y Móvil.
6.1 ESTRUCTURA JERÁRQUICA DEL ÁREA DE SEGURIDAD DE LA INFORMACIÓN
A continuación, se presenta el organigrama que describe la estructura jerárquica de la empresa Virtual Smart Business seguido de las definiciones de cada Rol de la empresa.
Ilustración 25 Estructura jerárquica del área de seguridad
92
IDENTIFICACIÓN DE ROLES Y ÁREAS
• Director de Seguridad: Es el responsable de mantener el área de seguridad informática, debe estar al tanto de todos los temas de seguridad que se traten en la oficina.
o Área de Seguridad: Grupo de trabajo de la compañía que se encarga de la gestión de la seguridad de la empresa.
o Infraestructura de Seguridad: Segmento de la empresa que se
encarga de la estructura de seguridad de la organización por medio de la asignación de permisos y la definición de políticas de seguridad de la información.
▪ Administración Usuarios: Se dedica a la modificación de
usuarios, passwords dentro de los sistemas operativos y aplicaciones de la empresa.
▪ Estándares, Políticas y Procedimientos: Se encarga de la
definición y verificación de cumplimiento de los estándares de seguridad de la empresa.
o Evaluación de Aplicaciones: Área encargada de realizar los test de
seguridad de la empresa.
▪ Ethical Hacking (Identificación de vulnerabilidades): Se encarga de realizar la identificación de vulnerabilidades a por medio de herramientas de hacking, teniendo en cuenta que no se deben afectar las redes Reales.
▪ Vulnerability Scanning (Identificación de vulnerabilidades): Se
encarga de realizar el análisis automático de vulnerabilidades a nivel de código, se apoyan en herramientas como Veracode, Fortify, entre otros.
▪ Administración de Incidentes (Eliminación de vulnerabilidades):
Se encarga de la resolución de incidentes de seguridad provenientes del Ethical Hacking o el escaneo de código en el que se realiza una modificación de código o una mejor configuración del ambiente.
93
IDENTIFICACIÓN DE ACTIVOS
En el siguiente cuadro se lista los activos actuales encontrados para el análisis de
seguridad de información de la empresa Virtual Smart Business.
Activo Tipo Descripción
Software de
monitoreo y acceso
remoto
Aplicaciones Software de monitoreo y acceso remoto en
los equipos corporativos de los
administradores.
PaaS Servicio de
TI
Recursos informáticos del entorno
virtualizado
Copia de respaldo Información Backup de la información proveniente de
servidores
Información de
producción
Información información proveniente del área de
producción
Protocolo NTP Servicio de
TI
Protocolo de Fecha de Red de los
servidores
Lista de chequeo Información listas de chequeo de las configuraciones
de seguridad de cada sistema
Equipos Hardware Equipos de los usuarios que acceden al
PaaS
Tabla 92 Identificación de activos
94
6.2 IDENTIFICACION DE AMENAZAS
De acuerdo al análisis realizado sobre la organización se pueden reconocer las siguientes amenazas:
Amenaza Tipo de Amenaza Consecuencia
A1 Software Acceso no autorizado a los equipos de la
organización posibilitando la pérdida de
información confidencial.
A2 Humano Mayores tiempos de respuesta frente a la
materialización de incidentes de seguridad.
A3 Humano Pérdida de información sensible y/o
confidencial de la organización.
A4 Humano Información bajo control de personal no
autorizado
A5 Red Registro de tiempos desfasados
A6 Hardware Dispositivos vulnerables ante cualquier
ataque informático generando pérdida de
confidencialidad, integridad y/o
disponibilidad de la información
A7 Software Pueden afectar el funcionamiento adecuado
de los sistemas y con ellos incurrir en
pérdidas económicas.
Tabla 93 Identificación de amenazas
6.3 POLÍTICA DE SEGURIDAD
El objetivo de esta política es asegurar que la provisión del servicio cloud está en concordancia con el negocio, requerimientos de seguridad, leyes relevantes y regulaciones.
95
DOCUMENTO DE POLÍTICAS DE SEGURIDAD CLOUD COMPUTING Cada documento de política de seguridad de computación en nube de la entidad debe ser aprobado por la alta dirección y publicado y comunicado a todos los empleados y partes externas relevantes como parte de la política de seguridad de la información de la organización o como una política independiente. La política debe establecer las metas y objetivos que rigen el servicio de cloud computing. LIDERAZGO DEL PROGRAMA DE SEGURIDAD La dirección superior responsable de la política de seguridad de la computación en nube debe identificarse por nombre, título, teléfono comercial, dirección comercial y fecha de designación. Los cambios a la alta dirección deben ser documentados dentro de los treinta (30) días calendario de la fecha efectiva del cambio REVISIÓN DE LA POLÍTICA DE SEGURIDAD La política de seguridad debe ser revisada a intervalos planificados o si ocurren cambios significativos para asegurar su idoneidad, adecuación y efectividad continuas. Por ejemplo: Cambios arquitectónicos, cambios de modelos de servicio, actualizaciones de servicios. VIRTUALIZACIÓN En la computación en nube, la mayoría de los controles de separación lógica no son físicos (es decir, servidores separados). En su lugar, la separación se aplica a través de sistemas lógicos y controles de aplicaciones diseñados para ayudar a asegurar la segmentación e integridad de datos en toda la plataforma. Un mecanismo común para proporcionar esta separación de datos y servicios es "virtualización". PAUTAS GENERALES DE LA INFORMACIÓN Las intenciones del área de seguridad informática al publicar las políticas que se describen en este documento no son imponer restricciones que sean contrarias a la cultura establecida de la disponibilidad, la confianza y la integridad de la empresa. Virtual Smart Business se compromete a proteger a los empleados, a los socios y a la compañía de acciones ilegales o dañinas por individuos, ya sea con conocimiento o no. Los sistemas propiedad de la empresa Virtual Smart Business relacionados con Internet / Intranet / Extranet, se encuentran incluidos, pero no limitados a equipos informáticos, software, sistemas operativos, medios de almacenamiento, cuentas de red que proporcionan correo electrónico, navegación WWW y FTP. Estos sistemas deben ser utilizados con fines comerciales para servir a los intereses de la empresa y de los clientes en el curso de operaciones normales.
96
La seguridad efectiva es un esfuerzo de equipo que implica la participación y el apoyo de todos los empleados y afiliados de la empresa que tratan con sistemas de información y/o información. Es responsabilidad de cada usuario del sistema conocer estas pautas, y conducir sus actividades en consecuencia. Esta política se aplica al uso de información, dispositivos electrónicos y de computación y recursos de red para realizar negocios de la empresa o interactuar con redes y sistemas empresariales internos, ya sean propiedad o arrendados por la empresa Virtual Smart Business, el empleado o un tercero. Todos los empleados, contratistas, consultores, trabajadores temporales y otros empleados y sus subsidiarias son responsables de ejercer un buen juicio sobre el uso apropiado de información, dispositivos electrónicos y recursos de red de acuerdo con las políticas y estándares de la empresa, las leyes y regulaciones locales. De forma general se establece lo siguiente:
• La información de propiedad registrada en dispositivos electrónicos e
informáticos sea propiedad o arrendada por la empresa, el empleado o un
tercero, sigue siendo propiedad exclusiva de Virtual Smart Business. Debe
asegurarse, a través de medios legales o técnicos, que la información
sensible esté protegida de acuerdo con la Norma de Protección de Datos.
• El empleado/ Cliente / socio tiene la responsabilidad de reportar de inmediato
el robo, pérdida o divulgación no autorizada de información de propiedad de
la Compañía.
• El empleado/ Cliente / socio puede acceder, usar o compartir información de
propiedad de la Compañía sólo en la medida en que esté autorizado y sea
necesario para cumplir con las tareas asignadas.
• Los empleados son responsables de ejercer un buen juicio sobre la
razonabilidad del uso personal. Los departamentos individuales son
responsables de la creación de directrices sobre el uso personal de los
sistemas de Internet / Intranet / Extranet.
• En ausencia de tales políticas, los empleados deben guiarse por las políticas
departamentales sobre el uso personal, y si hay alguna incertidumbre, los
empleados deben consultar a su supervisor o gerente.
• Para fines de seguridad y mantenimiento de la red, las personas autorizadas
dentro de la empresa pueden supervisar el equipo, los sistemas y el tráfico
de la red en cualquier momento, de acuerdo con la política de auditoría del
área de aseguramiento de redes.
• Virtual Smart Business se reserva el derecho de auditar las redes y sistemas
periódicamente para asegurar el cumplimiento de esta política.
• Las contraseñas a nivel del sistema y del usuario deben cumplir con la
Política de contraseñas. Está prohibido el acceso a otra persona, ya sea
deliberadamente o por falta de seguridad en su acceso.
• Todos los dispositivos de computación deben estar protegidos con un
protector de pantalla protegido por contraseña con la función de activación
97
automática establecida en 10 minutos o menos. Debe bloquear la pantalla o
cerrar la sesión cuando el dispositivo esté desatendido.
• Los envíos de empleados de una dirección de correo electrónico de la
empresa a los grupos de noticias deben contener un descargo de
responsabilidad que indique que las opiniones expresadas son estrictamente
propias y no necesariamente las de la empresa, a menos que se publiquen
en el curso de los deberes comerciales.
• Los empleados deben tener extrema precaución al abrir los archivos adjuntos
de correo electrónico recibidos de remitentes desconocidos, que pueden
contener malware.
Las siguientes actividades están, en general, prohibidas. Los empleados pueden estar exentos de estas restricciones durante el curso de sus responsabilidades laborales legítimas (por ejemplo, el personal de administración de sistemas puede tener la necesidad de deshabilitar el acceso a la red de un host si ese anfitrión está interrumpiendo los servicios de producción). Bajo ninguna circunstancia un empleado está autorizado a participar en actividades que sean ilegales bajo las leyes locales, estatales, federales o internacionales mientras se utilizan recursos de la empresa Virtual Smart Business. Las listas que figuran a continuación no son en modo alguno exhaustivas, sino que tratan de proporcionar un marco para las actividades que entran en la categoría de uso inaceptable. Las siguientes actividades están estrictamente prohibidas, sin excepciones:
1. Violaciones a los derechos de cualquier persona o compañía protegidos por
derechos de autor, secretos comerciales, patentes u otros derechos de
propiedad intelectual, o leyes o reglamentos similares, incluyendo, pero no
limitado a, la instalación o distribución de productos piratas u otros productos
de software que No están debidamente licenciadas para su uso por la
empresa.
2. Está prohibido acceder a datos, a un servidor o a una cuenta para cualquier
fin que no sea la realización de negocios de empresa, incluso si tiene acceso
autorizado.
3. La exportación de software, información técnica, software o tecnología de
cifrado, en violación de las leyes internacionales o regionales de control de
exportaciones, es ilegal. La gerencia apropiada debe ser consultada antes
de la exportación de cualquier material que está en cuestión.
4. Introducción de programas maliciosos en la red o el servidor (por ejemplo,
virus, gusanos, caballos de Troya, bombas de correo electrónico, etc.).
5. Revelar su contraseña de cuenta a otros o permitir el uso de su cuenta por
otros. Esto incluye la familia y otros miembros del hogar cuando el trabajo se
hace en casa.
98
6. Hacer declaraciones sobre la garantía, expresa o implícita, a menos que sea
una parte de las tareas normales del trabajo.
7. Proporcionar información sobre listas de empleados de la compañía a partes
fuera de la empresa.
El equipo del área de seguridad de la información verificará el cumplimiento de esta política a través de diversos métodos, incluidos, entre otros, informes de herramientas empresariales, auditorías internas y externas y comentarios al propietario de la política. Cualquier excepción a la política debe ser aprobada por el equipo seguridad de la información de antemano.
99
7. CONCLUSIONES
• Existen muchos lenguajes de desarrollo, con los que se pueden realizar aplicaciones móviles, donde cada lenguaje tiene características diferentes que los destacan. Xamarin, cuenta con una gran ventaja el momento de trabajar aplicaciones móviles multiplataforma, ya que es posible desarrollar en las tres principales plataformas del mercado (iOS, Windows Phone y Android), empleando el mismo lenguaje de programación C#, compartiendo hasta un 90% del código. Esto, implica un ahorro considerable en tiempo y recursos.
• Xamarin proporciona una interfaz de usuario nativa, proporcionando acceso a todo el hardware del móvil. Con Xamarin se desarrollan aplicaciones 100% nativas, tal y como si se hubieran codificado en Objetive-C, Swift o Java. En definitiva, Xamarin asegura una muy buena experiencia de usuario, vital en cualquier app.
• Implementar patrones de diseño en una arquitectura hace que la aplicación no sea fuertemente acoplada, lo cual ayuda a la creación de diferentes módulos, sin realizar grandes esfuerzos al momento de realizar el desarrollo.
• Resulta muy flexible el poder exponer los recursos del sistema con un API REST, de manera de brindar datos a distintas aplicaciones, formateados en distintas maneras. REST ayuda a cumplir con los requerimientos de integración que son críticos para construir sistemas en donde los datos tienen que poder combinarse fácilmente y extenderse. Desde este punto de vista, los servicios REST se convierten en algo mucho más grande.
• El alto grado de flexibilidad, el costo de operación dinámico y el pago por volumen de uso son los principales puntos positivos de la utilización de un servicio en la nube IaaS.
• Las vulnerabilidades en Cloud se presentan tanto en los proveedores como en los usuarios. A nivel de proveedores es común encontrar complicaciones por el hardware, software, arquitectura de red, políticas de servicio y de seguridad, mientras que, por parte de los usuarios existe una confianza excesiva en el proveedor y omiten su responsabilidad frente a los riesgos inherentes de su operación.
• La seguridad en cloud debe ser compartida por el proveedor del servicio y el cliente o suscriptor.
• Los actos humanos afectan la seguridad del sistema, siendo vulnerable, debido a accesos no autorizados a información sensible en algunos entornos,
100
a las brechas de seguridad y la desactualización de la infraestructura como servicio, ocasionando el riesgo de sufrir ataques y/o pérdida de información, de manera que los recursos no se encuentren disponibles en el momento que el cliente los necesite.
101
8. REFERENCIAS BIBLIOGRÁFICAS
MCGRAW, Gary. Software Security: Building Security in. Addison-Wesley Software Security Series. 2006. 408p. ISBN-10: 0321356705 PORTNY, Stanley. Project Management for dummies. Wiley Brand. 2001. 426p. LERMAN, Julia. Programming Entity Framework. O'Reilly 2009. 335p. ISBN-10: 0596807260 FREEMAN, Adam. Pro ASP.NET MVC 5 (Expert's Voice in ASP.Net). Apress. 2010. 460p. ISBN-10: 148423149X SKEET, Jon. C# in Depht. Manning Publications Company. 2018. 400p. ISBN-10: 161729134X HERMES, Dan. Xamarin Mobile Application Development. Apress. 2015. 390p. ISBN-10: 1484202155 SUTHERLAND, Jeff. Scrum: The Art of Doing Twice the Work in Half the Time. Crown Business New York. 2014. 250p. SIMS, Christopher A. The Elements of Scrum. Dymaxicon. 2011. 182p. SAVILL, JOHN. Mastering Microsoft Azure Infrastructure Services. 2015. 384p. ISBN: 978-1-119-00327-4 FREATO, ROBERTO. Microsoft Azure Security. 2015. 148p. SHINDER, TOM. Microsoft Azure Security Infrastructure. 2016. 226p. ISBN-10: 150930357X Microsoft, Nube segura y bien administrada, [Disponible en Internet]: <URL: https://azure.microsoft.com/es-es/services/virtual-machines/secure-well-managed-iaas/> Proyectos Agiles.org, ¿Qué es Scrum? [Internet]:<URL:https://proyectosagiles.org/que-es-scrum/> Xamarin, Developer Guide, [Internet]: <URL:https://developer.xamarin.com/getting-started/> Microsoft, Información general sobre ASP.Net MVC, [Disponible en Internet]: <URL:https://msdn.microsoft.com/es-es/library/dd381412(v=vs.108).aspx>
102
Management Plaza, Los 11 pasos para implementar la metodología Scrum, [Disponible en Internet]: <URL:http://managementplaza.es/blog/los-11-pasos-para-implementar-metodologia-scrum/> Microsoft, Principios Xamarin.Forms, [Disponible en Internet]: <URL:https://docs.microsoft.com/es-es/xamarin/xamarin-forms/app-fundamentals/> El baúl del programador, Buenas practicas para el diseño de un API Restful, [Disponible en Internet]: <URL:https://elbauldelprogramador.com/buenas-practicas-para-el-diseno-de-una-api-restful-pragmatica/> Microsoft, Azure frente a AWS. [Disponible en internet]: <URL: https://azure.microsoft.com/es-es/overview/azure-vs-aws/> OnLine Tech, AWS vs Azure: Key differences. [Disponible en internet]: <URL: http://www.onlinetech.com/resources/references/aws-vs-azure-key-differences>