1. Introducción
La Ley Orgánica de Educación Superior, LOES, en su Registro Oficial Suplemento 298 de 12-oct.-2010 última modificación: 02-ago.-2018 indica en su Art. 4.- “Derecho a la Educación Superior. - El derecho a la educación superior consiste en el ejercicio efectivo de la igualdad de oportunidades, en función de los méritos respectivos, a fin de acceder a una formación académica y profesional con producción de conocimiento pertinente y de excelencia. Las ciudadanas y los ciudadanos en forma individual y colectiva, las comunidades, pueblos y nacionalidades tienen el derecho y la responsabilidad de participar en el proceso educativo superior, a través de los mecanismos establecidos en la Constitución y esta Ley” 1.
Es por eso que los ciudadanos necesitan diversas opciones para acceder a la educación superior, por lo que, las IES necesitan implementar herramientas tecnológicas que faciliten a los ciudadanos acceder a este derecho o a su vez estar informados de las ofertas académicas que estas ofrecen.
Por otra parte, los autores Guillén y Moldes indican, que la web (HTTP) es un servicio muy reclamado por todo tipo de organizaciones para publicar información, esto influye en el crecimiento del número de servidores web en Internet los cuales están configurados con tecnología Open Source2. Las configuraciones de lenguajes de programación de código libre, así como protocolos de comunicación entre otros realizados en su mayoría en sistemas Linux son los responsables de un buen tráfico de Internet. Esta tendencia ha ido creciendo gradualmente desde que apareció la web (protocolo HTTP), hoy el tráfico HTTP predomina respecto del resto de los protocolos, es por eso que en la actualidad existe una gran cantidad de sitios web desarrollados con tecnología Open Source compatibles con la configuración de los servidores.
De igual forma, los autores Prieto et al. indican que, los procesos educativos presenciales pueden ser apoyados con la utilización de recursos tecnológicos de información y comunicación; su uso durante (para explicar y/o ejemplificar), antes (para aprestamiento) o después (para ampliar y/o reforzar) de la actividad en clase, puede potenciar, a su vez, las tareas relacionadas con la enseñanza y el aprendizaje 3. Sin embargo, la adquisición de recursos tecnológicos para fortaleces los procesos educativos son muy costosos y se los puede remplazar por aplicaciones Libres es decir Open Source, que existen en el mercado y son de libre acceso para los estudiantes o en tal caso se pude desarrollar aplicaciones de código abierto para este fin, evitando así gastos de adquisición.
Este proyecto consiste en identificar la influencia que tiene el código abierto en sistemas orientados a automatizar los procesos académicos de las instituciones de educación superior, como caso práctico se propone el desarrollo del sistema de matriculación y notas del Instituto Superior Tecnológico “San Gabriel” ya que al no dispone de una herramienta informática para el control de matrículas y notas, ocasiona la duplicidad, equivocación y perdida de información por las personas encargadas del manejo de estos procesos, por lo tanto, no es posible realizar una consulta instantánea, verídica y segura de la información solicitada. El objetivo de este estudio fue la implementación de una herramienta web que maneje el control de matrículas, notas, docentes y estudiantes, así ayudar a obtener una información segura, confiable y actualizada de cada estudiante, desarrollado en un entorno libre, es decir utilizando código libre, el sistema será puesto en marcha en toda la institución con alrededor de 600 usuarios del sistema entre docentes, administrativos y estudiantes.
2. Materiales y métodos
En primera instancia se menciona que para la investigación correspondiente se utilizó la investigación cualitativa en el cual se realizó la recolección de datos a través del recurso de entrevista personal al encargado del área de tics, en este caso el director del departamento de TICS del Instituto Superior Tecnológico San Gabriel, mismo que manifestó detalladamente las herramientas tecnológicas que utilizaban en cuanto a los servicios web, lo cuales eran Open Source al igual que la mayoría de sus sistemas informáticos que estaban desarrollados bajo la misma tecnología, por lo tanto también menciona que ellos fomentan el uso de tecnologías Open Source en el aprendizaje de sus estudiantes en la carrera de desarrollo de software.
Del mismo modo en el correspondiente estudio se usó la metodología de investigación bibliográfica para el análisis respectivo del marco metodológico contemplados como apoyo basado en el objeto de estudio, utilizándose fuentes acreditadas, tales como (Scielo, Google book, Latindex) estas referencias bibliográficas son utilizadas desde el año 2015 por su importancia y contenido actualizado, a pesar de esto se circunscribieron también referencias históricas por su gran aporte al estudio.
Al mismo tiempo en el desarrollo del aplicativo se decidió utilizar el método Agil Scrum para el desarrollo del estudio debido a la respuesta inmediata a los constantes cambios, que se presentaban al tratar de interpretar las necesidades y requerimientos que tenía el instituto Superior Tecnológico “San Gabriel”, en sus procesos de matriculación y asignación de notas, por otra parte, facilitó, el proceso de las pruebas en el desarrollo del sistema, trabajo en equipo y cooperación directa con los clientes. Además, como un enfoque interactivo e incremental, garantiza que las versiones útiles y prácticas del producto estén siempre disponible, ya que siendo parte fundamental de una. Disponible las 24/7.
El desarrollo de software ha ido evolucionando desde las primeras prácticas de desarrollo inicial hasta la conceptualización de modelos de proceso, modelos de ciclo de vida de software, propuestas de modelos de ingeniería de software actuales 4. Es por eso que los autores Garcés y Egas (2013) indican en su publicación: “Las metodologías tradicionales han intentado abordar la mayor cantidad de situaciones de contexto del proyecto, exigiendo un esfuerzo considerable para ser adaptadas, sobre todo en proyectos pequeños y con requisitos muy cambiantes” 4. Para ello surge un tipo de metodología adaptable que brinda facilidades en el desarrollo de software a este tipo de metodología se los conoce como las metodologías agiles, las cuales brindan soluciones casi personalizadas para una amplia gama de proyectos con estas características. Una de las características más notables de la metodología ágil es su facilidad de aprendizaje y aplicación, lo que reduce los costos de implementación para los equipos de desarrollo. Por lo tanto, la metodología Scrum se destaca entre los métodos ágiles como un método que promueve la producción de software de alta calidad, principalmente al respaldar proyectos con requisitos que cambian rápidamente y brindar orientación para actividades de desarrollo analizables, incluidas actividades estructurales como: requisitos, análisis, diseño, desarrollo y entrega; por lo tanto, ha demostrado ser eficaz para proyectos con plazos de entrega muy ajustados, requisitos cambiantes y negocios críticos4.
instiguen de educación superior se requería que esté disponible las 24/7.
2.1. Arquitectura de Software
Una arquitectura es un método que se utiliza como base para diseñar varias características de una aplicación 5. Las arquitecturas describen patrones y técnicas de diseño y desarrollo de sistemas, proporciona planos y mejores prácticas recomendadas para desarrollar aplicaciones bien estructuradas. El patrón de arquitectura modelo-Vista-controlador separa las responsabilidades de las diferentes capas de aplicación, así también ofrece dos motores de vistas aspx y razor, los cuales obtienen su diseño mediante el uso del lenguaje de marcas HTML, dando un amplio margen de versatilidad a la hora de personalizar la capa del lado del cliente(vistas). Con este patrón, las solicitudes del usuario se enrutan a un controlador que se encarga de trabajar con el modelo para Realizar las acciones del usuario o recuperar los resultados de consultas. El controlador elige la vista para mostrar al usuario y proporciona cualquier dato de modelo que sea necesario. Gracias a su cualidad de separar las responsabilidades resulta más sencilla su implementación durante el desarrollo, la facilidad de utilizar tantos modelos sean necesarios permite un código más sencillo de leer y comprender facilitando con ello su corrección, es por eso que resulta muy cómoda la reutilización de plantillas para las vistas ya que ahorran una considerable cantidad de tiempo sin mencionar su facilidad para acoplarse con frameworks de estilos como Bootstrap y SweetAlert que proporcionan un aspecto más agradable para con el usuario. Con esta delineación de responsabilidades es más sencillo escalar la aplicación, porque resulta más fácil codificar, depurar y probar algo (modelo, vista controlador) que tenga un solo trabajo. Es más difícil actualizar, probar y depurar código que tenga dependencias repartidas entre dos o más de estas tres áreas 6. Por todo lo expuesto el sistema informático que se menciona se encuentra desarrollado con la estructura inicial basada en MVC, Modelo-Vista-Controlador y el patrón front controller que define un único punto de acceso a las peticiones HTTPS, con un número indefinido de capas lógicas, permitiendo desarrollar, mejorar, gestionar y desplegar de forma independiente a cada una de las capas que conforman el diseño web.
2.2. Sistema de control de versiones
Una de las herramientas más utilizadas por los profesionales de las TIC es un sistema de control de versiones de software. El control de versiones, también conocido como control de código fuente”, es el proceso de seguimiento y gestión de cambios en el código de software. Los sistemas de control de versiones son herramientas de software que ayudan a los equipos de software a administrar los cambios en el código fuente a lo largo del ciclo de vida del software. A medida que evoluciona el desarrollo de software, los sistemas de control de versiones ayudan a los equipos de software a trabajar de forma más rápida e inteligente. Son especialmente útiles para los equipos de DevOps, ayudándolos a reducir el tiempo de desarrollo y aumentar las posibilidades de una implementación exitosa. 7.
Según Ordóñez et al.8. GitHub es un sistema de control de versiones distribuido utilizado para guardar diferentes versiones de uno o conjunto de archivos para que cualquier versión sea recuperable. También facilita el registro y comparación de diferentes versiones de un archivo. Para facilitar a los desarrolladores de proyectos la creación de versiones o la documentación inversa de su código, se debe migar todo el código fuente a un servidor público de GitHub, que puede combinarse con algunos módulos específicos los cuales pueden seguir alojados en servidores privados. Por otra parte, GitHub ya proporciona representación HTML para archivos Léame basados en Markdown. Por lo tanto, debe guardar un archivo README llamado README.md en la carpeta del repositorio. Al abrir esta carpeta con el navegador de la biblioteca de GitHub, el archivo aparecerá en la parte inferior de la página. Desde que nos mudamos a GitHub, a menudo usamos este enfoque para brindar documentación concisa de las versiones a los desarrolladores 9.
Es por eso, que para controlar completamente el código fuente del sistema informático desarrollado de forma distribuida, se utiliza el repositorio público de GitHub, el cual facilitó el desarrollo del sistema y la identificación de versiones estables con sus modernas herramientas de control de versiones, así permitió volver a una versión estable si algo cambiaba o no funcionaba correctamente, no desde cero, sino desde un punto de partida estable.
2.3. Framework Laravel
Teniendo en cuenta que en el desarrollo web de buscar más eficiencia, confiabilidad, mantenibilidad y escalabilidad, se necesita de la ayuda de un framework que sea una parte esencial del conjunto de herramientas de desarrollo de aplicaciones web que utilizan el lenguaje PHP. Varios framework de PHP han demostrado ser grandes complementos del desarrollo de software con código a prueba de fallas y extensible, lo que da como resultado aplicaciones web más sólidas y seguras. Sin embargo, elegir entre estos framework hoy en día puede ser complejo y requiere una buena comprensión de ellos para elegir el que mejor apoye el desarrollo del proyecto 10.
Soto et al. (2019) afirman que Laravel es uno de los frameworks que utiliza el lenguaje de programación PHP, de código abierto y popular en el mundo de la programación debido a la simplicidad de la sintaxis en su código y la capacidad de desarrollar proyectos de manera rápida y eficiente 11, al mismo tiempo Laravel es uno de los frameworks más utilizados, con amplia documentación disponible y una comunidad muy activa la hacen una de las mejores opciones para el desarrollo de aplicaciones web modernas 12.
Por lo expuesto se utilizó el framework Laravel para agilizar el desarrollo del sistema de control de matrículas y notas del Instituto Superior Universitario San Gabriel, y mejorar su rendimiento en la ejecución de sentencias aplicadas al servidor web, también se utilizó el framework Bootstrap, para obtener una interfaz de usuario llamativa y adaptable a cualquier dispositivo.
2.4. Base de Datos MySql
Un SGBD es un conjunto de programas, lenguajes y procedimientos que le permiten almacenar, acceder y recuperar datos en una base de datos, brindando a los usuarios las herramientas para describir y manipular esos datos de una manera eficiente y práctica. Un DBMS actúa como intermediario entre la base de datos y el usuario, ya que actúa como una interfaz entre estas dos entidades. El objetivo principal del sistema gestor de base de datos es garantizar la eficiencia y la seguridad al recuperar o almacenar información en la base de datos. A medida que aumenta el volumen de datos y la cantidad de usuarios, el soporte de SGBD se vuelve importante. Actualmente existen muchos SGBD, los más utilizados son PostgreSQL, MySQL, MongoDB, Oracle, SQLite 13.
El sistema de gestión de bases de datos que se utilizó fue MySQL indispensable para el control de matrículas y notas, el cual permitió almacenar la información de docentes, materias, alumnos, notas entre otros validando los datos y evitando rendimiento en su redundancia de lo mismo en el sistema. Además, Pilicita Garrido et al., mencionan que MySQL es el sistema de administración de bases de datos relacionales más utilizado en la actualidad al estar basada en código abierto que es fácil de usar, rápido y confiable para almacenar y recuperar datos para sitios web y aplicaciones 14.
3. Resultados y discusión
En su publicación los autores, González et al. indican que la combinación de varias tecnologías favorece al desarrollo de sistemas académicos, obteniendo un mejor rendimiento en el procesamiento de la información 18. Por lo tanto, para implementar servidores de web para diferentes tecnologías aumenta el costo de inversión, sin embargo, se los puede remplazar por infraestructuras Open Source que no requiere de inversiones económicas altas para su implementación.
Además, el desarrollo de sitios informáticos y en especial los vinculados al procesamiento de información académica en las instituciones de educación superior deben contener el mejor rendimiento en su ejecución, por lo que se desarrolló en un único lenguaje de programación como base, el cual facilita su viabilidad y desarrollo, en este caso se utilizó el lenguaje de programación PHP en el Framework Laravel, que aparte de ser Open Source y gracias su sencillez en sus líneas de código lo convierte en un potente framework que no requiere de otros lenguajes de programación adicionales para optimizar su rendimiento y garantizar una interfaz amigable a los usuarios finales.
También los autores Avilés et al. afirman que el mejor framework para automatizar procesos es Laravel, 19 gracias a sus mejoras de compilación, métodos de rendimiento y la facilidad de mostrar graficas en donde se evidencia el potencial rendimiento del sistema, así también como fallas en el mismo. Al mismo tiempo que fomentan la utilización del código abierto para el desarrollo de sitios informáticos, por que aparte de garantizar rapidez en su procesamiento, reduce potencialmente los costos de implementación en otras tecnologías.
Por esto, a continuación, se muestra los resultados de la aplicación desarrollada con código abierto para el proceso de matrículas y notas de la Institución de Educación Superior “San Gabriel”.
3.1. Interfaz de aplicación
El sistema consta de tres interfaces, una para estudiantes, otra para profesores y la última y más completa para administradores, así limitamos las acciones a los usuarios, aunque tienen un diseño y estructura similar, los controles que posee la interfaz de administración no son visibles para los demás, ya que no son necesarios para ellos. A continuación, se muestra la interfaz de administrador.
Como se muestra en la Figura 2. puede acceder a carreras, estudiantes, maestros, agregar roles y permisos requeridos para el usuario administrador, y puede ver un menú lateral a la izquierda donde se muestra el panel de periodo académico, semestres, notas y más.
Por otro lado, en la interfaz del profesor, puede resaltar secciones para ver el horario y los módulos correspondientes para ingresar calificaciones según las materias asignadas al profesor.
3.2. Velocidad de transacción
Después de probar el sistema por varios usuarios, la velocidad de conmutación del sistema para el tiempo de demora de cada transacción es aceptable de acuerdo con los requisitos de la institución, con la ayuda de Laravel Debugbar, se puedo obtener los siguientes resultados los cuales muestran en las gráficas los porcentajes del optimo rendimiento del sistema.
Finalmente, de acuerdo con los resultados obtenidos en las Figura 4,5, 6, 7, se estima que la aplicación puede funcionar con normalidad y responder correctamente a las solicitudes de los usuarios agregando, actualizando o eliminando datos, por otro lado, se puede garantizar para soportar cerca de 300 usuarios conectados al mismo tiempo sin problemas funcionales.
Además, la estructura y el diseño de la interfaz del estudiante son los mismos, pero los módulos operativos cambian.
3.3. Pruebas (Test-driven development)
La calidad del software se define como el grado en que un producto de software cumple con los requisitos especificados e implícitos cuando se usa en condiciones específicas, es por eso que para garantizar la calidad del software se debe realizar el Test-Driven Development (TDD) que es una técnica de desarrollo de software que se ha estudiado y garantizado cada vez más en los últimos años, e influye en el proceso de desarrollo activo con un enfoque en la calidad del producto, incluyendo pruebas unitarias, pruebas funcionales, etc20. A continuación, se muestra el resultado de las pruebas unitarias y de integración (TDD), las mismas que acreditan el funcionamiento correcto de todo el sistema. Para cada prueba que se ejecuta, la herramienta de línea de comandos imprime un carácter para indicar el progreso.
La aplicación pasa con éxito las 229 pruebas, con 584 afirmaciones en tiempo de 15 segundos y 66. MB de memoria.
4. Conclusiones
El uso de nuevas tecnologías Open Source en el desarrollo de sistemas informáticos está enfocado además del sector académico, a la mayoría de los procesos que pueden ser automatizados en las distintas áreas de la vida cotidiana, su utilización viene dada por su facilidad de implementación y a la vez su costo mínimo además de la factibilidad de uso, es por tal motivo que la mayoría de infraestructura que almacena los sitios web (Hosting) son administrados y configurados por un software libre.
El Instituto Superior Tecnológico “San Gabriel” no solo fomenta la utilización de software a través de sus sitios web o su hosting de almacenamiento web, sino que también a través de la carrera de Desarrollo de software enseña y anima a los estudiantes la utilización de tecnologías Open Source ya sea para el desarrollo de sitios web, administración de servidores o uso personal en sus computadores.
El código abierto, facilita la validación de resultados y garantiza una serie de pruebas de confiablidad que se aplica al código fuente haciendo que su desarrollo sea fácil de realizarlos, del mismo modo se puede complementar con metodologías Ágil Scrum permitiendo una organización y cumplimento de los objetivos establecidos.