Sistema telemático para la gestión de proyectos de la empresa Virtual Smart Business
Texto completo
(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 2.
(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 1.9. MARCO CONCEPTUAL.................................................................... 16. 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. 3.. 2.1. SISTEMAS DE INFORMACIÓN UTILIZADOS ACTUALMENTE ............. 24. 2.2. REDES Y SERVIDORES ......................................................................... 25. 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. 3.
(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. 6.. 5.1. SEGURIDAD DE LA BASE DE DATOS ................................................... 88. 5.2. ACCESO A LAS APLICACIONES ........................................................... 90. 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. 4.
(5) 7.. CONCLUSIONES .......................................................................................... 99. 8.. REFERENCIAS BIBLIOGRÁFICAS ............................................................. 101. 5.
(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 6.
(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 7.
(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. 8.
(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. 9.
(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.. 10.
(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 11.
(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). 12.
(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 datos 3. 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 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) 3. 13.
(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 7. Dan Hermes, Xamarin Mobile Application Development (2015) Jeff Sutherland, Scrum: The Art of Doing Twice the Work in Half the Time (2014). 14.
(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. 15.
(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.. 16.
(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 Número de producto Microprocesador. ASUS N550. JHK2250K 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 WLAN 802.11b/g/n inalámbrica 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 Número de producto Microprocesador Memoria Disco duro Tarjeta de red. ASUS RS720 RS720-E9-RS12-E Intel Xeon con plataforma escalable 8 GB (Soporte de 24 DIMM) 2 TB HDD Dos puertos de 1Gb Velocidades 10/100/1000 Mb/s 17.
(18) S.O.. Windows Server 2012 o Superior. Servidor de Internet Information Services 8 o Superior aplicaciones 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 SmartPhone producto 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. 18.
(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 Material de oficina $ 50.000,00 Cartuchos o tonner de $ 126.000,00 impresión Total. Cantidad 5 1. Costo total al finalizar el desarrollo $ 250.000,00 $ 126.000,00. $ 376.000,00 Tabla 4 Gastos de oficina. Recurso. Sueldo hora. Estudiante Tutor Interno Usuarios finales Total. $ 20.000,00 $ 30.000,00 $ 30.000,00. Cantidad horas 200 40 40. de Sueldo total $ 4´000.000,00 $ 1’200.000,00 $ 1’200.000,00 $ 6’400.000,00. Tabla 5 Gastos de recurso humano. Descripción ASUS RS720. Valor unitario $ 2’000.000,00 $ 400.000,00 $ 15.000,00. Cantidad. Valor total. 2. $ 4’000.000,00. Valor unitario 10 $ 400.000,00. Cantidad. Valor total. 2. $ 800.000,00. SmartPhone 1 Accesorios de conexión 3 Total Tabla 6 Gastos de Hardware Descripción Licencia Enterprise Total. Windows. $ 400.000,00 $ 45.000,00 $ 4’445.000,00. $ 800.000,00 Tabla 7 Gastos de Software. 19.
(20) Descripción Material de oficina Recurso humano Hardware Software Total. Valor $ 376.000 $ 6’400.000,00 $ 4’445.000,00 $ 800.000,00 $ 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. 20.
(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). 21.
(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). 22.
(23) 1.11 CRONOGRAMA DE ACTIVIDADES. Ilustración 1 Cronograma de actividades. 23.
(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. 24.
(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.. 25.
(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.. 26.
(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. 27.
(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. 28.
(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.. 29.
(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. 30.
(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.. 31.
(32) Ilustración 5 Data Centers de Amazon Web Services11. Ilustración 6 Data Centers de Microsoft Azure 12. 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 12. Jake, Marketing. Cloud Comparison Guide (2018) Jake, Marketing. Cloud Comparison Guide (2018). 32.
(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. 33.
(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.. 34.
(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.. 35.
(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. 36.
(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. 37.
(38) Ilustración 9 Diagrama de procesos módulos generales. 38.
(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 requerimiento. del 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 Crear usuarios que tengan el acceso al portal, requerimiento adicionalmente asociarlos a un perfil previamente creado que tenga la información de los permisos dentro del sistema.. 39.
(40) Como probar. Justificación. ● Crear un usuario asignarlo a cada uno de los perfiles creados y verificar los módulos a los cuales tiene acceso.. 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 requerimiento. del 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 requerimiento. del 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. 40.
(41) Nombre de la historia HU5 - Crear perfiles Descripción requerimiento. del 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 requerimiento. del 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. 41.
(42) Nombre de la historia HU7 - Eliminar perfiles Descripción requerimiento. del 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 requerimiento. del 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. 42.
Figure
Documento similar
Para la consulta de la HCE se utilizó una arquitectura cliente servidor, en la cual se empleó un servidor de aplicaciones JBOSS que contiene los sistemas de registro de las atenciones
5.1 Misión El Diseño, la producción, la implementación y la evaluación de procesos y productos comunicativos para el desarrollo y la proyección del Sistema de Educación Virtual UNAB
Definición de la solución El proyecto a tratar será la justificación económica de la implementación de una solución tecnológica para automatizar los procesos administrativos del
Dicha actividad no cuenta con un sistema que facilite el cálculo ágil de la estimación de tiempo y esfuerzo requeridos para el desarrollo de un proyecto de software, y que a
Un ejemplo de estas herramientas será un gestor de documentos compartidos y almacenamiento en la nube como Office 365 o Google G suite Por otro lado, gracias a la adopción de
Para el modelado de la aplicación se utilizó el lenguaje UML, y se realizaron diagramas tales como los diagramas de casos de uso, de componentes, el diagrama de E/R, entre
Resumen: La implementación de un sistema presencial y virtual para la Incubación y Aceleración Empresarial ofrece a los nuevos emprendedores un apoyo y
Previamente a la implementación de la solución se realizó una capacitación a los miembros del Círculo de Calidad en los costos de facturación de energía eléctrica de