Entorno para la gestión del Buró Universitario Sindical (EGBUS)
80
0
0
Texto completo
(2) El que suscribe _Luis Yoel Ortega Pérez________________, hago constar que el trabajo titulado Entorno para la gestión del Buró Universitario Sindical (EGBUS) fue realizado en la Universidad Central “Marta Abreu” de Las Villas como parte de la culminación de los estudios de la especialidad de __Ingeniería Informática_____, autorizando a que el mismo sea utilizado por la institución, para los fines que estime conveniente, tanto de forma parcial como total y que además no podrá ser presentado en eventos ni publicado sin la autorización de la Universidad.. ______________________ Firma del Autor Los abajo firmantes, certificamos que el presente trabajo ha sido realizado según acuerdos de la dirección de nuestro centro y el mismo cumple con los requisitos que debe tener un trabajo de esta envergadura referido a la temática señalada.. ____________________________ Firma del Tutor. ____________________________ Firma del Jefe del Laboratorio.
(3) Dedicatoria Dedico esta tesis a mi familia, por su apoyo incondicional durante toda mi vida. A mis padres, hermano, sobrina quienes me apoyaron en todo momento. A Mirian, Wilfredo, Lilia, Marlen que en todo momento han sabido ayudar y motivar a concluir esta tesis. Para ellos es la dedicatoria de esta tesis, pues sin ellos no hubiese sido posible mi formación profesional..
(4) Agradecimientos A mi padre, por apoyarme día a día para que lograra graduarme y estar presente en todo momento. A mi madre, por todos sus consejos y apoyarme constantemente. A mi hermano, por su ayuda para lograr la realización de esta tesis. A mi sobrina, que a pesar de que, por momentos lo que hacía era interrumpir, siempre ha ayudado. A mi primo Wilfredo y tía Mirian porque a pesar de estar lejos de mí, me apoyaron en todo momento. A mis abuelos, que, aunque ya algunos no estén presentes siempre fueron de mucha ayuda gracias a su experiencia y consejos. A mis tías, en especial Marlen y Lilia. A mis tutores Andrés E. Tellería Rodríguez y José M. González Rodríguez, por su apoyo incondicional y por todo el tiempo que me dedicaron. A los miembros de la dirección del Buró Universitario Sindical, especialmente a José M. González Rodríguez por toda la ayuda prestada. A mis compañeros de clases, porque siempre me ayudaron cuando los necesité. A Jennifer, Juan Daniel, Haniyessi, Maura, Javier, Liosbel, Alejandro en fin a todos mis compañeros de aula, por la paciencia y el tiempo que dedicaron para ayudarme siempre que los necesité. A Adrián Collazo Linares, por su ayuda en la vinculación del sistema con el listado de directorios activos (LDAP)..
(5) Resumen Con el desarrollo de las Tecnologías de la información y la comunicación (TIC), la información de los procesos empresariales ha ido en aumento. Por otra parte, las aplicaciones web son recursos tecnológicos populares de uso frecuente. La sociedad cubana no ha quedado excluida de todo ello y ha ido creciendo a la par del desarrollo de las nuevas tecnologías, involucrando así, los niveles sociales e institucionales del país. La presente investigación se hace eco de lo anterior al tomar como campo de acción el Buró Universitario Sindical (BUS) perteneciente a la Universidad Central “Marta Abreu” de Las Villas (UCLV) con el objetivo de implantar el sistema informático “Entorno para la gestión del Buró Universitario Sindical (EGBUS)” capaz de mantener informada a la comunidad universitaria de la labor del BUS. Así como el desarrollo de un módulo que permita la gestión de las finanzas del Aporte a la Patria y la cotización correspondiente a cada Sección Sindical..
(6) Abstract With the development of Information and Communication Technologies (ICT), information on business processes has been increasing. On the other hand, web applications are popular technological resources frequently used. Cuban society has not been excluded from all of this and has grown along with the development of new technologies, thus involving the social and institutional levels of the country. This research echoes the above when taking as a field of action the Union University Bureau (BUS) belonging to the Central University "Marta Abreu" of Las Villas (UCLV) with the aim of implementing the computer system "Environment for the management of the University Union Bureau (EGBUS) "capable of keeping the university community informed of the work of the BUS. As well as the development of a module that allows the management of the finances of the Contribution to the Homeland and the quotation corresponding to each Trade Union Section..
(7) Índice Introducción ...................................................................................................................... 1 Capítulo 1. MARCO TEÓRICO CONCEPTUAL SOBRE LAS TECNOLOGÍAS Y METODOLOGÍAS UTILIZADAS .................................................................................. 5 1.1. Objeto de estudio ............................................................................................... 5. 1.1.1. Flujo actual de procesos ............................................................................. 5. 1.1.2. Actividades a informatizar ......................................................................... 6. 1.2. Sistemas informatizados existentes vinculados al campo de acción .............. 6. 1.3 Tendencias y tecnologías actuales .......................................................................... 6 1.3.1 Metodología de desarrollo utilizada .................................................................... 6 1.3.2. Software Libre ............................................................................................ 8. 1.3.3. Sistema Gestor de Base de Datos ............................................................... 9. 1.3.3.1. Funciones de un Sistema Gestor de Base de Datos ................................ 9. 1.3.3.2. Características de un Sistema Gestor de Base de Datos ....................... 10. 1.3.3.3. Sistemas Gestores de Bases de Datos ................................................... 11. 1.3.4. HTML ....................................................................................................... 14. 1.3.5. CCS........................................................................................................... 15. 1.3.6. JavaScript ................................................................................................. 16. 1.3.7. AJAX ........................................................................................................ 16. 1.3.8. Material Design ........................................................................................ 17. 1.3.9. Librerías Bootstrap, JQuery...................................................................... 18. 1.3.9.1. Bootstrap ............................................................................................... 18. 1.3.9.2. JQuery ................................................................................................... 19. 1.3.10. PHP ........................................................................................................... 19. 1.3.10.1. Framework PHP .................................................................................... 20. 1.3.8.1.1. Laravel .................................................................................................. 21. 1.3.8.1.2. Symfony ................................................................................................ 21. 1.3.8.1.3. CodeIgniter ........................................................................................... 23. 1.3.8.1.4. CakePHP ............................................................................................... 23. 1.3.8.1.5. Yii ......................................................................................................... 24. 1.4. Consideraciones finales ................................................................................ 26. Capítulo 2. 2.1. MODELO DEL NEGOCIO Y REQUISITOS ......................................... 27. Modelo del negocio ......................................................................................... 27. 2.1.1. Reglas del Negocio a considerar .................................................................. 27. 2.1.2. Actores del Negocio ..................................................................................... 27. 2.1.3. Trabajadores del Negocio............................................................................. 28. 2.1.4. Diagrama de Casos de Uso del Negocio ...................................................... 29.
(8) 2.1.5. Descripción de los Casos de Uso del Negocio ............................................. 29. 2.1.6. Actores del Sistema a automatizar ............................................................... 30. 2.1.7. Requisitos del Sistema ................................................................................. 31. 2.1.7.1. Requisitos funcionales .............................................................................. 31. 2.1.7.2. Requisitos no funcionales ......................................................................... 34. 2.1.8. Diagrama de Casos de Uso del Sistema ....................................................... 36. 2.1.9. Descripción de los Casos de Uso del Sistema .............................................. 36. 2.1.10. Diagrama de paquetes y su relación ............................................................. 39. 2.2. Consideraciones finales ................................................................................... 40. Capítulo 3.. DESCRIPCIÓN DE LA PROPUESTA DE SOLUCIÓN ........................ 41. 3.1. Arquitectura del sistema .................................................................................. 41. 3.2. Diagrama de secuencias (Casos de Uso significativos) ................................... 42. 3.3. Diagrama de clases del diseño (Casos de Uso significativos) ......................... 43. 3.4. Tratamiento de errores ..................................................................................... 44. 3.5. Diseño de la Base de Datos.............................................................................. 44. 3.5.1. Modelo conceptual de datos ......................................................................... 45. 3.5.2. Modelo físico de datos ................................................................................. 46. 3.6. Modelo de componentes .................................................................................. 46. 3.7. Diagrama de despliegue ................................................................................... 47. 3.8. Conclusiones Parciales .................................................................................... 48. Capítulo 4. 4.1. PRUEBA Y ANÁLISIS DE FACTIBILIADAD ..................................... 50. Estimación basada en Casos de Uso ................................................................ 50. 4.1.1. Cálculo de puntos de Casos de Uso sin ajustar ............................................ 50. 4.1.2. Factor de peso de los actores sin ajustar (UAW) ......................................... 50. 4.1.2.1 4.1.3. Factor de peso en los casos de uso sin ajustar (UUCW) .......................... 51 Cálculo de puntos de Casos de Uso ajustados ............................................. 52. 4.1.3.1. Factor de complejidad técnica (TCF) ....................................................... 52. 4.1.3.2. Factor de ambiente (EF) ........................................................................... 54. 4.1.4. Esfuerzo horas-hombre (E) .......................................................................... 55. 4.1.5. Estimación del esfuerzo del proyecto........................................................... 55. 4.1.6. Cálculo del esfuerzo total ............................................................................. 56. 4.1.7. Cálculo del tiempo de desarrollo .................................................................. 56. 4.1.8. Cálculo del costo .......................................................................................... 56. 4.2. Casos de prueba ............................................................................................... 57. 4.2.1. Pruebas de Caja Negra ................................................................................. 57. 4.2.2. Pruebas de Caja Negra en Casos de Uso significativos del sistema ............ 57. 4.2.2.1. Descripción general .................................................................................. 57.
(9) 4.2.2.2. Condiciones de ejecución ......................................................................... 58. 4.2.2.3. Secciones a probar en el Caso de Uso “Gestionar Trabajador” ............... 58. 4.2.2.4 Secciones a probar en el Caso de Uso “Elaborar modelo Mi Aporte a la Patria Sección Sindical Independiente” ...................................................................... 58 4.3. Conclusiones Parciales .................................................................................... 59. CONCLUSIONES .......................................................................................................... 60 RECOMENDACIONES ................................................................................................ 61 BIBLIOGRAFÍA ............................................................................................................ 62.
(10) Lista de Figuras Figura 2.1 Diagrama de Casos de Uso del Negocio ................................................... 29 Figura 2.2 Diagrama de Casos de Uso del Sistema .................................................... 36 Figura 2.3 Diagrama de Paquetes ............................................................................... 40 Figura 3.1 Modelo Vista Controlador (en aplicaciones web) ................................... 42 Figura 3.2 Diagrama de secuencia Caso de Uso "Elaborar modelo Mi aporte a la Patria Sección Sindical Independiente" ..................................................................... 43 Figura 3.3 Diagrama de secuencia Caso de Uso “Gestionar trabajador” ............... 43 Figura 3.4 Diagrama de clases del diseño Casos de Uso significativos .................... 44 Figura 3.5 Error mostrado al intentar insertar más de un Buró Sindical .............. 44 Figura 3.6 Modelo conceptual de datos ...................................................................... 45 Figura 3.7 Modelo físico de datos ................................................................................ 46 Figura 3.8 Modelo de componentes............................................................................. 47 Figura 3.9 Diagrama de despliegue ............................................................................. 48.
(11) Lista de Tablas Tabla 1.3.1 Principales productos en RUP ................................................................... 8 Tabla 2.1.2 Descripción de los Actores del Negocio .................................................. 28 Tabla 2.1.3 Descripción de los Trabajadores del Negocio ........................................ 29 Tabla 2.1.5 Descripción de los Casos de Uso del Negocio ......................................... 30 Tabla 2.1.6 Descripción de los Actores del Sistema ................................................... 31 Tabla 2.1.9.1 Caso de Uso del Sistema elaborar modelo Mi Aporte a la Patria ..... 38 Tabla 2.1.9.2 Caso de Uso del Sistema insertar trabajador...................................... 39 Tabla 4.1 Factor de peso de Actores sin Ajustar ....................................................... 51 Tabla 4.1.2.1 Factor de peso de los Casos de Uso ...................................................... 52 Tabla 4.1.3.1 Factores de complejidad técnica .......................................................... 53 Tabla 4.1.3.2 Factores de ambiente ............................................................................. 54 Tabla 4.1.5.1 Distribución del esfuerzo ...................................................................... 55 Tabla 4.1.5.2 Distribución del esfuerzo en el proyecto .............................................. 56.
(12) Introducción Las Tecnologías de la información y la comunicación (TIC) han alcanzado gran desarrollo, desde hace varios años nuestro país ha comenzado el proceso de informatización de la sociedad. Dicho proceso comenzó, a fines de 1962 en el entonces Ministerio de Industria, donde su Titular Ernesto Che Guevara, creó un grupo que se encargaría de investigar sobre los adelantos de la computación en el mundo, surgiendo a partir de ahí, el Centro de Investigaciones Digitales (CIDID), donde posteriormente se crearon las famosas computadoras ensambladas en Cuba CID 201-A y la CID 300 utilizada en los centros de cálculo y en las Universidades. (Arencibia 2007) Este proceso ha continuado en aumento: las universidades, la agricultura y el Banco Nacional de Cuba muestran un crecimiento sostenible a partir de la utilización de Internet en función del desarrollo social. También, se ha realizado la apertura de la plataforma de servicios C.U.B.A, la cual incluye el buscador Web cubano, y la expansión de la Enciclopedia colaborativa EcuRed, fundamentada en la necesidad de crear y difundir el conocimiento, con todos y para todos. En el sector de la salud se realizan pruebas piloto del proyecto de Historia Clínica Digital con la informatización de ese sistema en 25 hospitales durante el año 2016 y se dan los primeros pasos en la informatización de las farmacias. En este proceso las tecnologías web juegan un rol fundamental. (ACN 2016) En la Universidad Central “Marta Abreu” de Las Villas (UCLV), geográficamente ubicada en la provincia de Villa Clara, municipio Santa Clara se evidencian pruebas fehacientes de la informatización de la sociedad, al contar con la automatización de varios de los procesos que aquí se desarrollan, haciendo uso de la intranet universitaria. La cual constituye una vía mediante la que se mantiene informada diariamente a la comunidad universitaria, contando varias de las áreas de la institución con un espacio en ella. En la UCLV se encuentra enclavado el Buró Universitario Sindical (BUS), dentro de su objeto social se encuentra el manejo de las finanzas del Aporte a la Patria y la cotización de cada una de las Secciones Sindicales. A pesar de los resultados alentadores que exhibe la institución en a cuanto a informatización, el BUS no cuenta con espacio propio dentro de la intranet universitaria. En el departamento se llevan registros en formato físico, siendo propenso a la pérdida o deterioro. Anualmente son elaborados el modelo: “REGISTRO DE COMPROMETIDOS 1.
(13) Y PLAN MI APORTE A LA PATRIA” y “REGISTRO DE CONTROL DE LA SINDICALIZACIÓN Y LA COTIZACIÓN” en los que, como su nombre lo indica se registran datos relacionados con el Aporte a la Patria y la cotización de cada Sección Sindical.. Actualmente no cuenta con un sistema informático que permita la. automatización de dicho proceso. Teniendo en cuenta lo antes descrito surge la problemática siguiente: No existe en el Buró Universitario Sindical (BUS) un sistema que permita la elaboración de las finanzas del Aporte a la Patria y la cotización. Además de mantener informada a la comunidad universitario de su labor. La elaboración de las finanzas se realiza anualmente de forma manual, provocando gran cantidad de errores a la hora de la confección, así como la dedicación de un alto periodo de tiempo por parte de los compañeros que allí laboran. A partir de la problemática existente se define como problema de investigación: El Buró Universitario Sindical (BUS), perteneciente a la Universidad Central “Marta Abreu” de Las Villas (UCLV) carece de un sistema informático que permita gestionar el proceso de gestión financiera. Además, no cuenta con un canal para mantener informada a la comunidad universitaria de su labor. Como objetivo general se define: Desarrollar un sistema informático que constituya un canal informativo para los trabajadores en la Universidad Central “Marta Abreu” de Las Villas (UCLV), además de facilitar el proceso de elaboración de las finanzas del Aporte a la Patria y la cotización desarrollados en el Buró Universitario Sindical (BUS). A partir del objetivo general descrito anteriormente, se definen los siguientes objetivos específicos, los cuales se enumeran a continuación: 1. Desarrollar la base de datos requerida para el control de las finanzas y garantizar la seguridad del sitio web. 2. Desarrollar un sistema informático para la automatización del proceso objeto de estudio utilizando tecnologías de software libre. 3. Desarrollar un módulo del sistema que permita la gestión financiera. 2.
(14) 4. Realizar pruebas de software. A partir del análisis del problema de investigación identificado se plantean las siguientes hipótesis: H1: Con la implementación de un sistema informático en el BUS se facilita la gestión de la información y permite lograr calidad, rapidez y confiabilidad en el proceso. H2: El módulo desarrollado, permite mayor control de las finanzas, lo que contribuye a reducir posibles errores en la información y aumentar la fiabilidad. Preguntas de Investigación: ¿Se alcanza, con la informatización del proceso mayor rapidez y fiabilidad? ¿Qué tecnologías seleccionar para desarrollar el software? ¿Satisfacen las tecnologías de software libre los requerimientos del sistema? ¿Qué tecnologías son utilizadas en la UCLV para la elaboración de los sistemas informáticos que se encuentran disponibles en su red? Justificación de la Investigación: Para los miembros de BUS de la UCLV resulta de vital importancia mantener a los trabajadores informados, así como la gestión económica financiera correspondientes a cada Sección Sindical. Dicha gestión se realiza utilizando registros en formato físico, lo que está expuesto a sufrir deterioro o pérdida. Además, se trabaja con la información en diversos modelos, por esto se necesita que se implemente este sitio web. Estructura del documento: En el Capítulo I se realiza el análisis del objeto social del BUS y el estudio de las tecnologías y metodologías computacionales a utilizar en el desarrollo del sistema. En el Capítulo II se realiza una detallada descripción del modelo de negocio y los requisitos del sistema. Se identifican reglas de negocio, los requisitos funcionales y no funcionales, así como la selección de los Casos de Uso del Negocio (CUN) más significativos. En el Capítulo III se realiza lo modelación e implementación de la base de datos capaz de dar soporte al sistema implementado. En el Capítulo IV se realizan pruebas de software y la estimación del producto. 3.
(15) Capítulo 1. MARCO TEÓRICO CONCEPTUAL SOBRE LAS TECNOLOGÍAS Y METODOLOGÍAS UTILIZADAS.
(16) Capítulo 1. Capítulo 1.. MARCO TEÓRICO CONCEPTUAL SOBRE LAS. TECNOLOGÍAS Y METODOLOGÍAS UTILIZADAS En el presente capítulo se abordan aspectos generales sobre el Buró Universitario Sindical (BUS), así como el estudio de las tecnologías y metodologías computacionales a utilizar en el desarrollo del sistema.. 1.1. Objeto de estudio. En 1933, surgió el primer Sindicato Nacional de Trabajadores de la Enseñanza, al cual se integraron además de los maestros los alumnos de los años terminales de las Escuelas Normales. Este fue quizás el primer intento integrador del movimiento magisterial. Los años siguientes se caracterizaron por la existencia de múltiples organizaciones hasta 1945 en que se crea el Comité de Unificación del Magisterio con el propósito de reunir a todos los maestros en una sola organización según sus intereses de clase, dando lugar al Colegio de Maestros de Cuba, pero sin lograr en realidad consolidar la unidad. Misión Representar a los trabajadores y movilizarlos alrededor de las tareas vinculadas al impulso de los Programas de la Revolución, generando espacios de reflexión, debate, creación y aporte, así como de permanente formación y reforzamiento de valores, en una membresía con posición de vanguardia en la lucha por preservar nuestras conquistas y garantizar la continuidad histórica del Socialismo. Visión Ser un Sindicato de Vanguardia en el movimiento obrero cubano, cumplidor destacado de las tareas fundamentales, reconocido y admirado en el sector y la sociedad en general, así como con un profundo arraigo en nuestra membresía.. 1.1.1 Flujo actual de procesos Uno de los procesos fundamentales desarrollados en el BUS es el control de las finanzas correspondientes a la cotización y el Aporte a la Patria. Los datos de los trabajadores son entregados a la dirección del BUS por parte de la Dirección de Recursos Humanos de la UCLV. Luego el Secretario General del BUS envía a cada uno de los secretarios de las 5.
(17) Capítulo 1 Secciones Sindicales Independientes y Burós Intermedios los datos de sus trabajadores, comprobándose por parte de estos últimos, elaborando el modelo de la cotización y el Aporte a la Patria de cada Sección Sindical (de forma manual, calculando en base a su salario el monto a aportar mensualmente por concepto de cotización).. 1.1.2 Actividades a informatizar Teniendo en cuenta los procesos antes descritos se decidió informatizar los procesos: Realizar modelo: “REGISTRO DE CONTROL DE LA SINDICALIZACIÓN Y LA COTIZACIÓN”. Realizar el modelo: “REGISTRO DE COMPROMETIDOS Y PLAN MI APORTE A LA PATRIA” Cálculo de la cotización mensual de cada trabajador. Gestión financiera del BUS. Además, es necesario la realización de un canal informativo para divulgar las actividades desarrolladas por el BUS a nivel universitario.. 1.2. Sistemas informatizados existentes vinculados al campo de acción. La UCLV cuenta con la intranet universitaria, mediante la que se mantiene informada constantemente a la comunidad universitaria. En esta, varias de las áreas de la institución cuentan con un espacio para la publicación de sus actividades. Sin embargo, no existe ninguna aplicación que apoye específicamente el proceso de gestión financiera del BUS e informe a la comunidad de los procesos aquí desarrollados.. 1.3 Tendencias y tecnologías actuales A partir del análisis del objeto de estudio, en la siguiente sección se realiza el análisis de las tendencias y tecnologías actuales a utilizar.. 1.3.1 Metodología de desarrollo utilizada Para la elaboración de la presente investigación se utilizó la metodología: Proceso Racional Unificado (RUP), ya que junto con el Lenguaje Unificado de Modelado (UML), constituye la metodología estándar más utilizada para el análisis, diseño, implementación. 6.
(18) Capítulo 1 y documentación de sistemas orientados a objetos. Dicha metodología emplea para el modelado el lenguaje UML. Como principales características de RUP se pueden destacar (Jacobson 2000): 1. Dirigido por casos de uso: La razón de ser de un sistema software es servir a usuarios ya sean humanos u otros sistemas; un caso de uso es una facilidad que el software debe proveer a sus usuarios. Estos constituyen la guía fundamental establecida para las actividades a realizar durante todo el proceso de desarrollo incluyendo el diseño, la implementación y las pruebas del sistema. Los casos de uso representan los requisitos funcionales del sistema. 2. Centrado en arquitectura: La arquitectura involucra los elementos más significativos del sistema y está influenciada entre otros por plataformas de software, sistemas operativos, manejadores de bases de datos, protocolos, consideraciones de desarrollo como sistemas heredados y requerimientos no funcionales. 3. Iterativo e Incremental: Para hacer más manejable un proyecto se recomienda dividirlo en ciclos. Para cada ciclo se establecen fases de referencia, cada una de las cuales debe ser considerada como un mini proyecto cuyo núcleo fundamental está constituido por una o más iteraciones de las actividades principales básicas de cualquier proceso de desarrollo. RUP para la elaboración del software propone cuatro fases por las que debe de transitar: inicio, elaboración, construcción y transición. A continuación, se describen los procesos a realizar en cada una de ella (Martínez & Martínez 2014): 1. Inicio: En la fase de inicio es realizada una descripción del producto final a partir del análisis de negocio para el producto. En esta fase se debe obtener: un modelo de casos de uso que contenga los casos de uso más críticos, se identifican los riesgos, se planifica la fase de elaboración y se realiza una estimación del proyecto. 2. Elaboración: El propósito de la fase de elaboración es analizar el dominio del problema, establecer los cimientos de la arquitectura, desarrollar el plan del proyecto y eliminar los mayores riesgos. En esta fase se construye un prototipo de la arquitectura, que debe evolucionar en iteraciones sucesivas hasta convertirse en el sistema final. Este prototipo debe contener los casos de uso críticos identificados en la fase de inicio.. 7.
(19) Capítulo 1 3. Construcción: Durante esta fase todas los componentes, características y requisitos, que no lo hayan sido hecho, han de ser implementados, integrados y testeados, obteniéndose una versión del producto que se pueda poner en manos de los usuarios (una versión beta). 4. Transición: La finalidad de la fase de transición es poner el producto en manos de los usuarios finales, para lo que típicamente se requerirá desarrollar nuevas versiones actualizadas del producto, completar la documentación, entrenar al usuario en el manejo del producto, y en general tareas relacionadas con el ajuste, configuración, instalación y usabilidad del producto. En la Tabla 1.3.1 es mostrado un resumen con los productos a ser elaborados en cada fase del desarrollo del proyecto (Martínez & Martínez 2014):. Tabla 1.3.1 Principales productos en RUP. 1.3.2 Software Libre El término software libre refiere el conjunto de software que, por elección manifiesta de su autor, puede ser copiado, estudiado, modificado, utilizado libremente con cualquier fin y redistribuido con o sin cambios o mejoras. A veces se malinterpreta el término de «software libre» —para empezar, no tiene ninguna relación con el precio. Lo que interesa es la libertad. He aquí la definición de software libre. Un programa es software libre para el usuario siempre que, como usuario particular, tenga (Stallman 2004): 1. La libertad de ejecutar el programa sea cual sea el propósito.. 8.
(20) Capítulo 1 2. La libertad para modificar el programa para ajustarlo a sus necesidades. (Para que se trate de una libertad efectiva en la práctica, el usuario deberá tener acceso al código fuente, dado que sin él la tarea de incorporar cambios en un programa es extremadamente difícil.) 3. La libertad de redistribuir copias, ya sea de forma gratuita, ya sea a cambio del pago de un precio. 4. La libertad de distribuir versiones modificadas del programa, de tal forma que la comunidad pueda aprovechar las mejoras introducidas. A partir de la visita realizada al Departamento de Informatización de la UCLV y la consulta de las políticas en cuanto al desarrollo de software en dicha institución, las libertades que ofrece el software libre y el proceso de migración hacia tecnologías libres para alcanzar la soberanía tecnológica desarrollado en nuestro país, se decidió utilizar tecnologías de software libre.. 1.3.3 Sistema Gestor de Base de Datos Un Sistema Gestor de Bases de Datos (SGBD), también conocidos como Sistema Manejador de Bases de Datos (DBMS), es un conjunto de programas que manejan todo acceso a la base de datos (BD), con el objetivo de servir de interfaz entre ésta, el usuario y las aplicaciones utilizadas. (Data 2015) Gracias a este sistema de software específico el usuario puede gestionar la base de datos (almacenar, modificar y acceder a la información contenida en ésta) mediante el uso de distintas herramientas para su análisis, con las que puede realizar consultas y generar informes. Además de gestionar los datos y mantener su consistencia, su utilización supone numerosas ventajas a la hora de construir y definir la base de datos a diferentes niveles de abstracción para distintas aplicaciones, pues facilita los procesos y también su mantenimiento.. 1.3.3.1. Funciones de un Sistema Gestor de Base de Datos. Los SGBD posibilitan el cumplimiento de una serie de funciones definidas a continuación (Data 2015):. 9.
(21) Capítulo 1 1. Definición de los datos: El SGBD ha de poder definir todos los objetos de la base de datos partiendo de definiciones en versión fuente para convertirlas en la versión objeto. 2. Manipulación de los datos: El SGBD responde a las solicitudes del usuario para realizar operaciones de supresión, actualización, extracción, entre otras gestiones. El manejo de los datos ha de realizarse de forma rápida, según las peticiones realizadas por los usuarios, y permitir la modificación del esquema de la base de datos gracias a su independencia. 3. Seguridad e integridad de los datos: Además de registrar el uso de las bases de datos, ante cualquier petición, también aplicará las medidas de seguridad e integridad de los datos previamente definidas. Un SGBD debe garantizar su seguridad frente a ataques o simplemente impedir su acceso a usuarios no autorizados por cualquier razón. 4. Recuperación y restauración de los datos: La recuperación y restauración de los datos ante un posible fallo es otra de las principales funciones de un SGBD. Su aplicación se realizará a través de un plan de recuperación y restauración de los datos que sirva de respaldo.. 1.3.3.2. Características de un Sistema Gestor de Base de Datos. Las características de un Sistema Gestor de Base de Datos (SGBD) son (Data 2015): Abstracción de la información. Los SGBD ahorran a los usuarios detalles acerca del almacenamiento físico de los datos. Da lo mismo si una base de datos ocupa uno o cientos de archivos, este hecho se hace transparente al usuario. Así, se definen varios niveles de abstracción. Independencia. La independencia de los datos consiste en la capacidad de modificar el esquema (físico o lógico) de una base de datos sin tener que realizar cambios en las aplicaciones que se sirven de ella. Redundancia mínima. Evitar la aparición de información repetida o redundante. Consistencia. Los datos repetidos se actualicen de forma simultánea. Seguridad. Garantizar la seguridad de la información ante el ataque de usuarios malintencionados. Integridad. Proteger los datos ante fallos de hardware, datos introducidos por usuarios descuidados, o cualquier otra circunstancia capaz de corromper la información almacenada.. 10.
(22) Capítulo 1 Respaldo y recuperación. Los SGBD deben proporcionar una forma eficiente de realizar copias de respaldo de la información almacenada en ellos, y de restaurar a partir de estas copias los datos que se hayan podido perder. Control de la concurrencia. En la mayoría de entornos, lo más habitual es que sean muchas las personas que acceden a una base de datos, bien para recuperar información, bien para almacenarla. Y es también frecuente que dichos accesos se realicen de forma simultánea. Así pues, un SGBD debe controlar este acceso concurrente a la información, que podría derivar en inconsistencias.. 1.3.3.3. Sistemas Gestores de Bases de Datos. Existen varios Sistemas Gestores de Bases de Datos libres, los más comunes son: PostgreSQL MySQL SQLITE Filebird ApacheDerby MySQL MySQL es un sistema de gestión de bases de datos relacional desarrollado bajo licencia dual GPL utilizado en plataformas (Linux/Windows-Apache-MySQL-PHP/Perl/Python), y por herramientas de seguimiento de errores. Su popularidad como aplicación web está muy ligada a PHP. Está desarrollado en su mayor parte en ANSI C y C++ (MySQL 2016). MySQL es una base de datos rápida en la lectura cuando utiliza el motor no transaccional, pero puede provocar problemas de integridad en entornos de alta concurrencia en la modificación. Dentro de sus características se pueden destacar (MySQL 2016): Amplio subconjunto del lenguaje SQL. Algunas extensiones son incluidas igualmente. Transacciones y claves foráneas. Disponibilidad en gran cantidad de plataformas y sistemas. 11.
(23) Capítulo 1 Posibilidad de selección de mecanismos de almacenamiento que ofrecen diferentes velocidades de operación, soporte físico, capacidad, distribución geográfica, transacciones. Conectividad segura. Replicación. Búsqueda e indexación de campos de texto. SQLITE SQLite es un Sistema de Gestión de Bases de Datos relacional, apareció en mayo del año 2000. Permite almacenar información en dispositivos empotrados de una forma sencilla, eficaz, potente, rápida y en equipos con pocas capacidades de hardware, como puede ser un teléfono celular. SQLite implementa el estándar SQL92 y también agrega extensiones que facilitan su uso en cualquier ambiente de desarrollo. Esto permite que SQLite soporte desde las consultas más básicas hasta las más complejas del lenguaje SQL, y lo más importante es que se puede usar tanto en dispositivos móviles como en sistemas de escritorio, sin necesidad de realizar procesos complejos de importación y exportación de datos, ya que existe compatibilidad al 100% entre las diversas plataformas disponibles, haciendo que la portabilidad entre dispositivos y plataformas sea transparente. SQLite está construida en C, lo cual facilita la migración a diversas plataformas de sistemas operativos y de dispositivos (Filein Rómmel 2016) . Principales características de SQLite (Sqlite 2016): . La base de datos completa se encuentra en un solo archivo.. . Puede funcionar enteramente en memoria, lo que la hace muy rápida.. . Tiene un footprint menor a 230KB.. . Es totalmente auto contenida (sin dependencias externas).. . Cuenta con librerías de acceso para muchos lenguajes de programación.. . Soporta texto en formato UTF-8 y UTF-16, así como datos numéricos de 64 bits.. . Soporta funciones SQL definidas por el usuario (UDF).. . El código fuente es de dominio público y se encuentra muy bien documentado.. Las plataformas principales dónde SQLite se encuentra funcionando son:. 12.
(24) Capítulo 1 . Windows 95, 98, ME, 2000, XP y Vista,7,8,8.1,10, Windows CE & Pocket PC. . Mac OSX. . Linux. . OpenEmbedded. . PalmOS. . Symbian. PostgreSQL PostgreSQL es un potente SGBD relacional libre liberado bajo licencia Berkeley Software Distribution (BSD). Tiene más de 15 años de activo desarrollo y arquitectura probada que se ha ganado una muy buena reputación por su confiabilidad e integridad de datos. Funciona en todos los sistemas operativos importantes, incluyendo Linux, UNIX (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64), y Windows. Entre los gestores de bases de datos libres existentes hoy en día, PostgreSQL juega un papel muy importante, presentando numerosas cualidades (Ginest 2012): Está desarrollado en C, con herramientas como Yacc y Lex. Alta concurrencia. Mediante un sistema denominado MVCC (Acceso concurrente multiversión). PostgreSQL permite que mientras un proceso escribe en una tabla, otros accedan a la misma tabla sin necesidad de bloqueos. Cada usuario obtiene una visión consistente de lo último a lo que se le hizo commit 1. Esta estrategia es superior al uso de bloqueos por tabla o por filas común en otras bases, eliminando la necesidad del uso de bloqueos explícitos. La API de acceso al SGBD se encuentra disponible en C, C++, Java, Perl, PHP, Python y TCL, entre otros. Cuenta con un rico conjunto de tipos de datos, permitiendo además su extensión mediante tipos y operadores definidos y programados por el usuario. Su administración se basa en usuarios y privilegios. Sus opciones de conectividad abarcan TCP/IP, sockets Unix y sockets NT, además de soportar completamente ODBC. ____________________________ 1 Commit: se refiere a la idea de consignar un conjunto de cambios "tentativos, o no permanentes". 13.
(25) Capítulo 1 Los mensajes de error pueden estar en español y hacer ordenaciones correctas con palabras acentuadas o con la letra ‘ñ’. Es altamente confiable en cuanto a estabilidad se refiere. Puede extenderse con librerías externas para soportar encriptación, búsquedas por similitud fonética. Control de concurrencia multi-versión, lo que mejora sensiblemente las operaciones de bloqueo y transacciones en sistemas multi-usuario. Soporte para vistas, claves foráneas, integridad referencial, disparadores, procedimientos almacenados, subconsultas y casi todos los tipos y operadores soportados en SQL92 y SQL99. Implementación de algunas extensiones de orientación a objetos. En PostgreSQL es posible definir un nuevo tipo de tabla a partir de otra previamente definida. Se decidió utilizar PostgreSQL puesto que fue objeto de estudio de las asignaturas Base de Datos I y Base de Datos II, presentando resultados satisfactorios en la realización de sistemas que presenten alta concurrencia.. 1.3.4 HTML HTML, de las siglas en inglés Hyper Text Markup Language, es el lenguaje más utilizado para la elaboración de páginas web. Este lenguaje se utiliza para mostrar texto, acompañado de otros elementos como imágenes o tablas, a través de internet. Para poder visualizar estas páginas e interactuar con ellas el usuario necesita utilizar un “navegador web”, programa informático que interpreta el lenguaje HTML y lo visualiza en la interfaz del dispositivo. (Huguet, 2012) En octubre de 2005 fue publicado HTML5, desarrollado con la intención de simplificar, especificar y organizar el código. Para lograr este propósito, nuevas etiquetas y atributos fueron agregados y HTML fue completamente integrado a CSS y JavaScript. Estas incorporaciones y mejoras de versiones previas están relacionadas no solo con nuevos elementos sino también con cómo usar los ya existentes. Entre las principales características de HTML5 se pueden destacar la incorporación de (Gauchat 2012): Elemento canvas para dibujar. 14.
(26) Capítulo 1 Elementos de video y audio. Almacenamiento de datos “offline”. Elementos asociados con el contenido: article, footer, header, nav, section. Nuevos controles en las formas: calendar, date, time, email, url, search. Mayor compatibilidad con los navegadores de los dispositivos móviles. Mejoras en los formularios. Nuevos tipos de datos (email, number, url, datetime) y facilidades para validar el contenido sin la necesidad de utilizar JavaScript. Capacidad de integración con CCS3. Para el desarrollo de dicha aplicación se decidió utilizar HTML5, ya que reduce la necesidad de utilizar plugins de terceros, cuenta con mejor manejo de errores, es independiente del dispositivo de visualización, el proceso de desarrollo es transparente para el público, destacándose su capacidad en cuanto a la escalabilidad y flexibilidad.. 1.3.5 CCS CSS es un lenguaje que trabaja junto con HTML para proveer estilos visuales a los elementos del documento, como tamaño, color, fondo, bordes. El World Wide Web Consortium (W3C) es el encargado de formular la especificación de las hojas de estilo que servirán de estándar para los agentes de usuario o navegadores. CSS3 es la nueva versión de CSS que viene con múltiples mejoras y nuevas características. A diferencia de la HTML5, CSS no elimina ni modifica la especificación de las antiguas versiones, de modo que todo lo ya existente sigue siendo es perfectamente válido en esta nueva versión. CSS3 trae mejoras en aquellos aspectos que CSS2 no cubría o que le faltaba utilidad, proporcionando así un mayor control al desarrollador sobre la presentación. De este modo, características que antes no podían ser implementadas directamente, ya que debíamos acudir a lenguajes externos como JavaScript, ahora definiendo una única característica con la que es posible obtener los mismos resultados. Evidentemente CSS3 no ampara todas las presentaciones de elementos que uno pueda imaginar, pero si abarca buena parte de estas. (Huguet 2012) En la investigación es utilizado CSS3 por las características antes descritas.. 15.
(27) Capítulo 1. 1.3.6 JavaScript JavaScript es un lenguaje de programación interpretado, orientado a objetos, basado en prototipos, imperativo, débilmente tipado y dinámico. En otras palabras, los programas escritos con JavaScript se pueden probar directamente en cualquier navegador sin necesidad de procesos intermedios (Pérez 2008) . A pesar de su nombre, JavaScript no guarda ninguna relación directa con el lenguaje de programación Java. Se utiliza fundamentalmente para la creación de páginas web dinámicas.. 1.3.7 AJAX Ajax es el acrónimo de Asynchronous JavaScript And XML (JavaScript y XML Asíncrono). Esta técnica nos permite realizar peticiones asíncronas HTTP (POST o GET) a partes de nuestra aplicación, sin necesidad de recargar la página. El uso de AJAX facilita la creación de aplicaciones interactivas en la Web que se ejecutan en el navegador de los usuarios y mantienen comunicación asíncrona con el servidor. De esta forma, es posible realizar cambios sobre una página sin necesidad de recargarla, aumentando la interactividad, velocidad y usabilidad de la misma (Fernández et al. 2011). Ajax es una combinación de cuatro tecnologías ya existentes (Duckett 2015): . HTML y CSS para el diseño que acompaña a la información.. . Document Object Model (DOM) accedido con un lenguaje de scripting por parte del usuario, utilizando como lenguaje de programación JavaScript, para mostrar e interactuar dinámicamente con la información presentada.. ___________________________ 2 AJAX: Acrónimo de Asynchronous JavaScript And XML (JavaScript asíncrono y XML), es una técnica de desarrollo web para crear aplicaciones interactivas.. 16.
(28) Capítulo 1 . El objeto XMLHttpRequest para intercambiar datos de forma asíncrona con el servidor web. PHP es un lenguaje de programación de uso general de script del lado del servidor originalmente diseñado para el desarrollo web de contenido dinámico también utilizado en el método Ajax.. . XML es el formato usado generalmente para la transferencia de datos solicitados al servidor.. AJAX, es muy útil a la hora de realizar grandes cargas de datos o informes ya que permite mantener informado al usuario durante el tiempo que se realicen los mismos. Ajax no constituye una tecnología en sí, sino que es un término que engloba a un grupo de éstas que trabajan conjuntamente.. 1.3.8 Material Design Material Design es una nueva filosofía enfocada, inicialmente, para el diseño Android; sin embargo, su implementación en el mundo del desarrollo ha sido tal, que muy pronto comenzó a extenderse a toda la web. Es así como la encontramos, actualmente, no solo en aplicaciones Android, sino en páginas web y demás plataformas de software. Matías Duarte, diseñador de interfaces informáticas de usuario y actual vicepresidente de diseño de Google, es el creador de este concepto de diseño que revolucionó el aspecto visual y experiencial de los programas desarrollados en la actualidad. Desde su presentación en la conferencia Google I/O 2014, el concepto de Material Design adquirió gran importancia en el mundo de los diseñadores digitales, quienes comenzaron a implementar sus características visuales en los proyectos que a diario realizaban. Sus principales características se describen a continuación (University 2015) : . En Material Design, la interacción de los objetos en el espacio es transmitida a través de los principios de la luz, la superficie y el movimiento.. . Se trata del espacio en 3D, en el cual los objetos tienen tres dimensiones: la anchura, la altura y el grosor.. . Es influenciado por los elementos clave de diseño de impresión, es decir, fuentes, colores, imágenes, grids, escalas y espacio, los cuales crean una estructura. 17.
(29) Capítulo 1 jerárquica y significativa que da protagonismo a la inmersión del usuario en la experiencia digital. . Los objetos en el entorno de Material Design tienen las relaciones padre-hijo que determinan su interacción. Cada objeto puede estar subordinado a un solo objeto principal o padre y puede tener cualquier número de hijos. Los objetos tienen todas las propiedades de su “padre”, por ejemplo, posición, rotación y elevación.. 1.3.9 Librerías Bootstrap, JQuery En la actualidad existen un gran número de librerías que facilitan el desarrollo de aplicaciones web, en la presente investigación se utilizan: Bootstrap y JQuery, ya que son de los más utilizados en el mercado gracias a la robustez, calidad y eficiencia brindada a las aplicaciones en que se emplean.. 1.3.9.1. Bootstrap. Bootstrap, es un framework originalmente creado por Twitter, que permite crear interfaces web con CSS y JavaScript, cuya particularidad es la de adaptar la interfaz del sitio web al tamaño del dispositivo en que se visualice. Es decir, el sitio web se adapta automáticamente al tamaño de una PC, un Tablet u otro dispositivo. Esta técnica de diseño y desarrollo se conoce como Responsive Design o Diseño Adaptativo. Se basa en la simplicidad de sus interfaces, lo cual es una tendencia del mercado, en las que tiende a diseño plano, botones grandes. Principales características (Cochran 2012) : Cuenta con un mantenimiento y actualización realizados por Twitter. Ofrece un paquete de elementos web personalizables. Utiliza componentes vitales para los desarrolladores: como HTML5, CSS3, JQuery entre otros. Sus plantillas son de sencilla adaptación responsive: se desarrolló con la idea de facilitar el proceso de adaptación web a todo tipo de dispositivos. Incluye Grid system: útil para maquetar por columnas. Se integra con librerías JavaScript. Usa Less: un lenguaje de las hojas de estilo CSS preparado para enriquecer los estilos de la web. 18.
(30) Capítulo 1 Es una herramienta de uso ágil y sencillo: facilita el diseño de interfaces y además incluye por defecto una plantilla bastante optimizada. Contiene tutoriales: cuenta con amplia documentación. Cada vez ofrece más plugins: cada vez incluye más características gracias a la aparición de nuevos plugins de terceros.. 1.3.9.2. JQuery. JQuery es una biblioteca del lenguaje JavaScript que permite a los diseñadores web agregar funcionalidades extras a sus sitios web. JQuery es de código abierto y distribuido libre bajo la licencia MIT. Es un producto que sirve como base para la programación avanzada de aplicaciones, aportando una serie de funciones o códigos para realizar tareas habituales con independencia del navegador utilizado. Ofrece una infraestructura con la que se logra mayor facilidad para la creación de aplicaciones complejas del lado del cliente (puede actualizar información en la página web en tiempo real sin actualizar la página). Resulta de gran importancia en la creación de aplicaciones que contengan: animaciones, aplicaciones que realizan uso de Ajax, etc. (Duckett 2015). 1.3.10 PHP PHP (“Pre Hypertext -processor”) es un lenguaje "open source" interpretado de alto nivel embebido en páginas HTML y ejecutado en el servidor. Fue uno de los primeros lenguajes de programación del lado del servidor que se podían incorporar directamente en el documento HTML en lugar de llamar a un archivo externo que procese los datos. Puede ser usado en la mayoría de los servidores web, sistemas operativos y plataformas sin costo alguno. PHP se considera uno de los lenguajes más flexibles, potentes y de alto rendimiento conocidos lo que lo ha convertido en uno de los lenguajes de programación más utilizados a nivel mundial. Entre sus principales características se destacan (Mark Safronov 2014): Potente y robusto lenguaje de programación embebido en documentos HTML. Conexión con la mayoría de sistemas gestores de bases de datos como: PostgreSQL, Informix, MySQL, SQlite con la ayuda de extensiones que permiten una conexión con estos SGBD. Soporte a múltiples protocolos de comunicación en Internet (HTTP, IMAP, FTP). 19.
(31) Capítulo 1 Es libre, por lo que se presenta como una alternativa de fácil acceso para todos. Código fuente del intérprete abierto por lo cual se pueden hacer mejoras o sugerencias en su desarrollo. Lenguaje multiplataforma, existen versiones del intérprete PHP para plataformas como Windows, UNIX, Linux, MacOS. Eficiente ya que consume muy pocos recursos del servidor, por esa razón que en equipos sencillos es posible desarrollar aplicaciones complejas. Alta velocidad de desarrollo: PHP permite realizar rápidamente sitios web dinámicos. Proporciona gran cantidad de extensiones con muy buena documentación lo cual ahorra mucho tiempo al desarrollador. Permite aplicar técnicas de Programación Orientada a Objetos (POO). Es considerado un lenguaje fácil de aprender, ya que en su desarrollo se simplificaron distintas especificaciones, como es el caso de la definición de las variables primitivas. Capacidad de expandir su potencial utilizando módulos. Permite al programador la escritura de código ordenado, estructurado y manejable. Gracias a su flexibilidad ha tenido una gran acogida como lenguaje base para las aplicaciones web de manejo de contenido. El código fuente escrito en PHP es invisible al navegador web y al cliente, pues se ejecuta en el servidor y se envía el resultado al cliente en formato HTML. Teniendo en cuenta las características expuestas anteriormente y el estudio del lenguaje por varios años, se decidió la utilización del mismo.. 1.3.10.1 Framework PHP PHP es uno de los lenguajes de programación más populares de la actualidad. La utilización de framework 3 permite el desarrollo de proyectos con mayor rapidez, facilitan la escalabilidad y el mantenimiento del código; sin embargo, es necesario preguntarse cuáles son los de framework que realmente sirven para trabajar mejor, alcanzar código de alta calidad y construir aplicaciones web potentes. Por esta razón, se _________________________ 3 Framework: marco de trabajo que define un conjunto estandarizado de conceptos, prácticas y criterios para enfocar un tipo de problemática particular que sirve como referencia, para enfrentar y resolver nuevos problemas de índole similar. 20.
(32) Capítulo 1 realiza un pequeño análisis sobre cuáles son los mejores framework para PHP. Después de analizar los beneficios de cada framework fue descubierto que estos son los más prometedores para conseguir un desarrollo ágil y potente: Laravel Symfony Yii CodeIgniter CakePHP. 1.3.8.1.1 Laravel Laravel es un marco de código abierto PHP web gratuito, creado por Taylor Otwell en 2011 y destinado para el desarrollo de aplicaciones web siguiendo el Modelo Vista Controlador (MVC). Gran parte de Laravel está formado por dependencias, especialmente de Symfony (Laravel 2016). Laravel maneja una sintaxis expresiva, elegante, con el objetivo de eliminar la molestia del desarrollo web facilitando las tareas comunes, como la autenticación, enrutamiento, sesiones y caché. Proporciona, potentes herramientas accesibles necesarias para construir grandes aplicaciones robustas, con un contenedor de controles de inversión, sistema de migración expresiva, y el apoyo de las pruebas unitarias estrechamente integrada. Algunas de las características de Laravel son (Laravel 2016): Diferentes formas de acceso a bases de datos relacionados aún que no exista un enrutamiento. Utilidades que ayudan en la implementación de las aplicaciones y al mantenimiento de las mismas. Facilidad de autenticación, proporcionando una interfaz sencilla y fácil de usar.. 1.3.8.1.2 Symfony Symfony es un framework PHP de tipo full-stack construido con varios componentes independientes creados por el proyecto «Symfony». 21.
(33) Capítulo 1. Symfony está desarrollado completamente en PHP 5.3. Ha sido probado en numerosos proyectos reales y se utiliza en sitios web de comercio electrónico de primer nivel. Symfony es compatible con la mayoría de los SGBD, como MySQL, PostgreSQL, Oracle y Microsoft SQL Server. Se puede ejecutar tanto en plataformas Unix, Linux como en plataformas Windows (Sierra et al. 2013). Principales características (Symfony 2016): Su código, y el de todos los componentes y librerías que incluye, se publican bajo la licencia MIT de software libre. La documentación del proyecto también es libre e incluye varios libros y decenas de tutoriales específicos. Aunque en su desarrollo participan cientos de programadores de todo el mundo, las decisiones técnicas importantes siempre las toma Fabien Potencier, líder del proyecto. Esto evita el peligro de que surjan forks absurdos y la comunidad se fragmente. Los componentes de Symfony son tan útiles y están tan probados, que proyectos tan gigantescos como Drupal 8 están construidos con ellos. En todo el mundo se celebran varias conferencias dedicadas exclusivamente a Symfony. Para evitar el uso de contraseñas en archivos de configuración, Symfony permite establecer los parámetros de configuración de las aplicaciones a través de variables de entorno del propio servidor. La herramienta Capifony (basada en el proyecto Capistrano y creada por miembros de la comunidad Symfony) simplifica el deploy de las aplicaciones Symfony, incluso en múltiples servidores y bases de datos. Independencia del SGBD. Su capa de abstracción y el uso de ORM (Doctrine 2, Propel), permiten cambiar con facilidad de SGBD en cualquier fase del proyecto. Una potente línea de comandos que facilitan generación de código, lo cual contribuye a ahorrar tiempo de trabajo. Trae integrada varias de las herramientas más populares del mercado.. 22.
(34) Capítulo 1. 1.3.8.1.3 CodeIgniter CodeIgniter es un framework para aplicaciones web de código abierto para crear sitios web dinámicos con PHP. «Su objetivo es permitir que los desarrolladores puedan realizar proyectos mucho más rápido que creando toda la estructura desde cero, brindando un conjunto de bibliotecas para tareas comunes, así como una interfaz simple y una estructura lógica para acceder esas bibliotecas.» (CodeIgniter 2014) CodeIgniter se basa en el patrón de desarrollo MVC. A menudo se destaca por su velocidad en comparación con otros framework PHP. CodeIgniter contiene una serie de librerías que sirven para el desarrollo de aplicaciones web y además propone una manera de desarrollarlas que se debe seguir para obtener provecho de la aplicación. Esto es, marca una manera específica de codificar las páginas web y clasificar sus diferentes scripts, que sirve para que el código esté organizado y sea más fácil de crear y mantener. Incluye las siguientes características (Sierra et al. 2013): Sistema basado en Modelo Vista Controlador. Peso ligero. Clases de base de datos con todas las funciones con soporte para varias plataformas. Ajax. (JavaScript Asíncrono y XML (AJAX) no es una tecnología por sí misma, es un término que describe un nuevo modo de utilizar conjuntamente varias tecnologías existentes. Esto incluye: HTML o XHTML, CSS, Java Script, DOM, XML, XSLT, y el objeto XMLHttpRequest). Seguridad y Filtrado XSS. Gestión de la sesión Librerías de clases para: enviar correos mediante protocolos (Sendmail, SMTP, Mail), Incorporación de plugins, clases y extensiones. URL amigables y a motores de búsqueda.. 1.3.8.1.4 CakePHP CakePHP es un marco de desarrollo (framework) rápido para PHP, libre, de código abierto. Se trata de una estructura que sirve de base a los programadores para que éstos 23.
(35) Capítulo 1 puedan crear aplicaciones web. El principal objetivo es que el usuario pueda trabajar de forma estructurada y rápida, sin pérdida de flexibilidad. Principales características (Foundation 2016): Comunidad activa y amistosa. Licencia flexible. Compatible con PHP4 y PHP5. CRUD integrado para la interacción con la base de datos. Soporte de aplicación. Generación de código. Arquitectura Modelo Vista Controlador (MVC). Despachador de peticiones [dispatcher], con URLs y rutas personalizadas y limpias. Validación integrada. Plantillas rápidas y flexibles (sintaxis de PHP, con ayudantes[helpers]). Ayudantes para AJAX, JavaScript, formularios HTML. Componentes de Email, Cookie, Seguridad, Sesión y Manejo de solicitudes. Listas de control de acceso flexibles. Limpieza de datos. Caché flexible. Funciona en cualquier subdirectorio del sitio web, con poca o ninguna configuración de Apache.. 1.3.8.1.5 Yii Yii es un framework orientado a objetos, software libre bajo licencia BSD, de alto rendimiento basado en componentes, PHP y framework para aplicaciones web, utiliza el Modelo Vista Controlador (MVC). Es un framework genérico de programación web, lo que significa que se puede utilizar para desarrollar todo tipo de aplicaciones web en PHP. Debido a su arquitectura basada en componentes y a su sofisticada compatibilidad de caché, es especialmente apropiado para el desarrollo de aplicaciones de gran envergadura, como portales, foros, proyectos de comercio electrónico, servicios web compatibles con la arquitectura REST (Mark Safronov 2014). A continuación, se hace alusión a las principales características de Yii (Keck 2014): 24.
(36) Capítulo 1 Patrón de diseño Modelo Vista Controlador (MVC). Database Access Objects (DAO), query builder, Active Record y migración de base de datos. Integración con JQuery, Bootstrap, AngularJS. Base en la Programación Orientada a Objetos (POO). Entradas de Formulario y validación. Widgets de Ajax, como autocompletado de campos de texto y demás. Soporte de Autenticación incorporado. Además soporta autorización vía role-basedaccess control (RBAC) jerárquico. Personalización de aspectos y temas. Documentación y soporte bien documentado. Generación compleja automática de WSDL, especificaciones y administración de peticiones Web service. Internacionalización y localización (I18N and L10N). Soporta traducciones, formato de fecha y hora, formato de números, y localización de la vista. Esquema de caching por capas. Soporta el cache de datos, cache de páginas, cache por fragmentos y contenido dinámico. El medio de almacenamiento del cache puede ser cambiado. Manejo de errores y logging. Los errores son manejados y personalizados, y los log de mensajes pueden ser categorizados, filtrados y movidos a diferentes destinos. Las medidas de seguridad incluyen la prevención cross-site scripting (XSS), prevención cross-site request forgery (CSRF), prevención de la manipulación de cookies, etc. Herramientas para pruebas unitarias y funcionales basados en PHPUnit y Selenium. Generación automática de código para el esqueleto de la aplicación, CRUD, Modelo, Controlador, etc. Generación de código por componentes de Yii y la herramienta por línea de comandos cumple con los estándares de XHTML. Cuidadosamente diseñado para trabajar bien con código de terceros. Por ejemplo, es posible usar el código de PHP, Zend Framework, Symfony en una aplicación Yii. Manejo de urls amigables.. 25.
(37) Capítulo 1 Teniendo en cuenta las características antes descritas de cada uno de los framework se decide utilizar: Yii 2.0.12 (versión de Yii liberada en junio de 2017) puesto que presenta integración con otros framework. Además de proveer características como: constructores de consultas y la clase Active Record para las bases de datos relacionales y no SQL, compatibilidad con la arquitectura REST para desarrollar API, compatibilidad de caché en varios niveles. Es posible personalizar o reemplazar prácticamente cualquier pieza de código de base, como se puede también aprovechar su sólida arquitectura de extensiones para utilizar o desarrollar extensiones distribuibles. Las buenas prácticas y características más relevantes de otros proyectos son incorporados regularmente a la base del framework y se exponen a través de interfaces simples y elegantes, además de contar con una activa comunidad de desarrollo en crecimiento paulatino.. 1.4. Consideraciones finales. En este capítulo se realizó un análisis de los procesos desarrollados en el Buró Universitario Sindical. Además de un profundo estudio del estado del arte de las metodologías computacionales y tecnologías a emplear para dar solución a la problemática antes descrita, decidiéndose utilizar: HTML5, CSS3, JavaScript (como tecnologías del lado del cliente), JQuery y Bootstrap (framework o librería del lado del cliente), RUP (metodología de desarrollo de software), UML (lenguaje de modelado), PHP (lenguaje de programación), Yii 2.0.12 (framework. de desarrollo PHP),. PostgreSQL (como SGBD relacional).. 26.
(38) Capítulo 2. MODELO DEL NEGOCIO Y REQUISITOS.
(39) Capítulo 2. Capítulo 2. MODELO DEL NEGOCIO Y REQUISITOS En el presente capítulo se realiza un estudio del negocio para la comprensión de las actividades que se desean informatizar, haciendo alusión a los requisitos funcionales y no funcionales del sistema a desarrollar. Además de presentar los principales diagramas que describe Proceso Racional Unificado (RUP) para el proceso de elaboración de software.. 2.1 Modelo del negocio Un modelo de caso de uso del negocio describe los procesos de una empresa en términos de casos de uso del negocio y actores del mismo que se corresponden con los procesos del negocio y los clientes, respectivamente. El modelo de casos de uso del negocio presenta un sistema, desde la perspectiva de su uso, y esquematiza como proporciona valor a sus usuarios (Jacobson 2000).. 2.1.1 Reglas del Negocio a considerar RN1: Un trabajador puede estar asociado a una única Sección Sindical. RN2: El aporte de cada Sección Sindical no puede sobrepasar el aporte total del Buró Universitario Sindical. RN3: El aporte mensual no puede ser mayor que el aporte anual. RN4: El monto a entregar por concepto de cotización tiene que ser tratado de manera diferente para los trabajadores: estatales, jubilados y no estatales sindicalizados.. 2.1.2 Actores del Negocio Un actor del negocio es cualquier individuo, grupo, organización o máquina que interactúa con el negocio. Los actores del negocio suelen estar relacionados con los trabajadores del negocio y los actores del negocio que vayan a interactuar con el mismo. En la Tabla 2.1.2 se muestra la descripción de estos. Actores del Negocio. Descripción. Secretario Buró Universitario Sindical. Es la persona que recibe el listado de trabajadores por parte de la Dirección de Recursos Humanos, y orienta a los 27.
(40) Capítulo 2 Secretarios de las Secciones Sindicales Independientes y los Burós Intermedios, la confección de los potenciales para el año en curso. Secretario Buró Intermedio. Es la persona que recibe de manos de la dirección del BUS la orientación de la confección trasmitiéndola. de a. los los. potenciales, secretarios. de. Secciones Sindicales subordinadas. Tabla 2.1.2 Descripción de los Actores del Negocio. 2.1.3 Trabajadores del Negocio Un trabajador del negocio es una abstracción de un humano o de un sistema de software que representa un rol dentro del desarrollo de una realización de un caso de uso del negocio. Esta abstracción permite identificar mejoras potenciales en los procesos de negocio y ayuda a considerar los efectos que tendrá la automatización de dichos procesos en la organización. Los trabajadores del negocio se encuentran inmersos en la realización de las acciones o actividades dentro de los procesos o casos de uso del negocio, están asociados a la pregunta “¿quién hace?” algo dentro de ese proceso (Pressman 2010). En la Tabla 2.1.3 son descritos los mismos.. Trabajadores del Negocio. Descripción. Secretario Sección Sindical. Es el trabajador que se encarga de manipular toda la información referente a los trabajadores de su Sección Sindical (adscripta a un Buró Intermedio Sindical) para la confección del potencial.. Secretario Independiente. Sección. Sindical Es el trabajador que se encarga de manipular toda la información referente a los trabajadores de su Sección Sindical 28.
(41) Capítulo 2 (adscripta directamente al BUS) para la confección del potencial. Activista de Finanzas. Es el trabajador que se encarga de llevar en control de entrega de las finanzas.. Tabla 2.2.3 Descripción de los Trabajadores del Negocio. 2.1.4 Diagrama de Casos de Uso del Negocio Un caso de uso es una descripción de los pasos o las actividades que deberán realizarse para llevar a cabo algún proceso. Los personajes o entidades que participarán en un caso de uso se denominan actores (Pressman 2010) . En este apartado muestran los trabajadores del negocio y las entidades del negocio, así como las asociaciones entre los mismos. En la Figura 2.1 se muestran los mismos.. Figura 2.1 Diagrama de Casos de Uso del Negocio. 2.1.5 Descripción de los Casos de Uso del Negocio A continuación, se realiza una breve descripción de los Casos de Uso del negocio mostrados en la Tabla 2.1.5. Caso de Uso del Negocio. Descripción. Gestionar Compromiso de Mi Aporte a El Secretario de la Sección Sindical inicia la Patria. el proceso cuando se tiene que realizar el 29.
Figure
+7
Documento similar