Daniel Alexander Vera Paredes a; Luis Cristobal Córdova Martínez b; Ricauter Moises López Bermúdez c; Silvia Rosa Pacheco Mendoza d
Análisis de la metodología RUP en el desarrollo de software académico mediante la herramienta DJANGO
Analysis of the RUP methodology in the development of academic software using the DJANGO tool
Revista Científica Mundo de la Investigación y el Conocimiento. Vol. 3 núm.2, abril, ISSN: 2588-073X, 2019, pp. 664-679
Editorial Saberes del Conocimiento
Recibido: 15/01/2019 Aceptado: 18/02/2019 Publicado: 30/04/2019 Correspondencia: director@recimundo.com
Master Universitario en Ingeniería de Software y Sistemas Informáticos; Magister en Administración y Dirección de Empresas; Licenciado en Sistemas de Información.
Magister en Gerencia de Tecnologías de la Información; Magister en Administración y dirección de Empresas; Especialista en Tecnologías de la Información mención en Comercio y Negocio Electrónico; Licenciado en Sistemas de Información.
Master Universitario en Ingeniería de Software y Sistemas Informáticos; Magister en Administración y dirección de Empresas; Licenciado en Sistemas de Información.
Doctora en Educación; Magister en Educación Superior; Especialista en Gestión de Procesos Educativos; Diploma Superior en Currículo por Competencias; Licenciada en Ciencias de la Educación Especialización en Informática.
El trabajo consiste en realizar un caso de estudio de la plataforma del Sistema Académico (SGA), de la Universidad Estatal de Milagro, con el módulo de Titulación, para la verificación y utilización de una metodología basada en RUP para mejorar el desarrollo de software académico mediante la herramienta Django, que nos proporcionara un conjunto de opciones para que el aplicativo cumpla con todos los requerimientos y satisfacción del usuario.
The work consists of carrying out a case study of the Academic System (SGA) platform of the State University of Milagro, with the Titling module, for the verification and use of a RUP-based methodology to improve the development of academic software through the Django tool, which will provide us with a set of options so that the application meets all the requirements and user satisfaction.
Las metodologías tradicionales como lo es Rational Unified Process de sus siglas en inglés (RUP), han demostrado tener gran eficiencia en la aplicación de técnicas de gestión y prácticas para el desarrollo de software no escalable. Indicando que pocos son los desarrollos de sistemas que se encuentran con este tipo de procesos en áreas dedicadas a lo académico.
Por tal razón surgen las metodologías de desarrollo de software tradicionales que dependiendo de la naturaleza del contexto se aplicar una metodología que se ajuste a los requerimientos del cliente, facilitando su desarrollo y su aplicación al medio para el que fue creado.
Se pretende incentivar el uso de la metodología como RUP, ya que esta permite mejorar el nivel de interacción entre el equipo desarrollador y el usuario, además de establecer una documentación bien estructurada y detallada para futuras referencias del sistema, con el propósito de lograr un eficiente manejo de la tecnología y de los medios de desarrollo.
Con la implementación de una metodología basada en RUP, al final se obtiene como resultado un trabajo eficiente, que satisfaga tanto la empresa desarrolladora de software, así como al usuario final, que es el interesado en un sistema culminado y que cumpla todos sus requerimientos de manera eficaz y oportuna.
Hoy en día existen numerosas propuestas metodológicas que inciden en distintas dimensiones del proceso de desarrollo de un software.
Un ejemplo de ellas son las propuestas tradicionales centradas específicamente en el control del proceso. Éstas han demostrado ser efectivas y necesarias en un gran número de proyectos, sobre todo aquellos proyectos de gran tamaño (respecto a tiempo y recursos). Sin embargo la experiencia ha demostrado que las metodologías tradicionales no ofrecen una buena solución para proyectos donde el entorno es volátil y donde los requisitos no se conocen con exactitud, porque no están pensadas para trabajar con incertidumbre. [1]. Las metodologías de desarrollo de software son una parte muy esencial en la elaboración de un software ya que el éxito o el fracaso del mismo depende de elegir adecuadamente la metodología a implementarse [2].
La naturaleza del software. - RUP es una metodología que tiene como objetivo ordenar y estructurar el desarrollo de software, en la cual se tienen un conjunto de actividades necesarias para transformar los requisitos del usuario en un sistema. RUP es un proceso basado en los modelos en Cascada y por Componentes, el cual presenta las siguientes características: Es dirigido por los casos de uso, es centrado en la arquitectura, iterativo e incremental, lo cual es fundamental para el proceso de desarrollo de software. [3].
Procesos del Software. – RUP es una metodología que posee un poco de controversia, ya que cuenta con características esenciales de los procesos de desarrollo ágil como es el crecimiento iterativo o que se encuentra centrado en la arquitectura, pero a la vez tiende a caer en la rigidez de los métodos convencionales. [4]
El proceso del RUP se ejecuta en tres perspectivas: “La perspectiva dinámica, la cual contiene las fases del modelo sobre el tiempo; la estática que muestra las actividades del proceso y la práctica, que muestra las buenas prácticas durante el proceso del RUP”. [5]
En procesos la ingeniería del software es un conjunto de pasos adaptables es decir que no tiene un estándar establecido, el creador elige los pasos o procedimientos que más se adapten a su trabajo, la estructura de los procesos incluye cinco actividades que son: Herramientas, Compromiso con la calidad, Métodos, Proceso.
Metodologías Tradicionales. - “El desarrollo de software se lo realizaba de manera artesanal, es decir solo se lo hacía por hacer sin reglas ni parámetros de calidad” [6] poco a poco las necesidades de obtener calidad empezaron a usar las metodologías de desarrollo, aunque estas pertenecían a otras áreas fundamentalmente se hicieron adaptaciones de estas para los sistemas y se denoto una mejoría en las etapas de desarrollo en el campo del software.
Las metodologías tradicionales son aquellas con mayor interés en la planificación y control del proyecto, estas imponen una disciplina sobre el proceso de creación para asegurar que el producto final sea más eficiente, por eso que antes de ejecutar el proceso de creación se debe tener todo detallado y luego seguir con los ciclos de desarrollo, a través de una definición de roles, actividades y herramientas para el modelado y la documentación pertinente. [7].
Origen de Django. - “Django nace como un proyecto para publicación de noticias de Lawrence Journal World (Revista de publicación de noticias).” [8] Es así que Adrian y Simon desarrollaron por necesidad un framework de desarrollo Web que les permitió ahorrar tiempo, fue la única forma que pudieron crear aplicaciones fáciles de mantener en tan poco tiempo.
Ventajas De Django. - “Aparte de las ventajas que tiene por ser framework, Django promueve el desarrollo rápido, se construyen aplicaciones en cuestión de días y con el conocimiento suficiente esos días se pueden reducir a horas.” [9]
Objetivo General
Proponer un método aplicable para el desarrollo de software basado en la metodología
RUP
Objetivo Especifico
Determinar la aplicabilidad de la metodología RUP para el desarrollo de software académico.
Analizar los tipos de metodologías que utilizan para el desarrollo de software académico.
Evaluar la funcionalidad del sistema académico desarrollado en la UNEMI, basado en la metodología RUP.
La metodología para realizar el trabajo dentro de la gestión del presente proyecto está basado en el análisis de las empresas desarrolladoras de software académico, la temática a tratar es nueva, debido a que no se había tenido la oportunidad de profundizar sobre el tema por parte del desarrollador del proyecto.
Desarrollo específico de la contribución
Las metodologías de desarrollo de software “son enfoques estructurados para el mismo, con el propósito de facilitar la producción de software de alta calidad de una forma costeable” [10], los métodos de desarrollo iniciales fueron los Métodos como “Análisis Estructurado y Diseño Estructurado de Software (JDS) desarrollados en los años 70, estos métodos buscaban identificar los componentes funcionales de los sistemas” [11].
Para mejorar el desarrollo y calidad del software se aconseja que se use las metodologías acordes al nivel del proyecto a ejecutar, una de las más recomendadas es la …metodología RUP que se suele usar para aquellos proyectos que poseen factores que tienden a cambiar durante su creación y que su magnitud es mayor a los desarrollados comúnmente, por razones de adecuación en relación a manejo de actividades a largo de la ejecución del proyecto y de su adaptabilidad es que ha sido una de las más usadas en el ámbito de desarrollo de software. [12]
Identificación de Requisitos. - Metodología Rational Unified Process (RUP) El Proceso Unificado de Rational es un proceso de ingeniería del software. Proporciona un acercamiento disciplinado a la asignación de tareas y responsabilidades en una organización de desarrollo. Su propósito es asegurar la producción de software de alta calidad que se ajuste a las necesidades de sus usuarios finales con unos costos y calendario predecibles. [13]. “Esta metodología representa una recopilación de todas las mejores prácticas de ingeniería de software que han resultado ser exitosas en el modelamiento de sistemas” [14], reduciendo la complejidad de los procesos y el diseño de los mismos. “Esta metodología en esencial ayuda a la mejora de la productividad del equipo desarrollador” [15]; ya que permite que cada miembro apartándose de sus tareas asignadas especificas tenga un acceso total a la misma base de datos aplicando conocimientos propios.
Fases
Tenemos 5 fases para obtener un desarrollo óptimo del software y estas son:
Fase de inicio: Esta fase “se genera para la comprensión de todos los requerimientos y además poder determinar el alcance que tendrá el sistema, puesto que aquí se determinaran todos los requisitos que se tienen sobre lo que se desea desarrollar.” [16]
Fase de elaboración: Los casos de uso seleccionados para desarrollarse en esta fase permiten definir la arquitectura del sistema, se realiza la especificación de los casos de uso seleccionados y el primer análisis del dominio del problema, se diseña la solución preliminar del problema y comienza la ejecución del plan de manejo de riesgos, según las prioridades definidas en él. [17]
Fase de construcción: El propósito de esta fase es completar la funcionalidad del sistema, para ello se deben clarificar los requerimientos pendientes, administrar el cambio de los artefactos construidos, ejecutar el plan de administración de recursos y mejoras en el proceso de desarrollo para el proyecto. [17]
Fase de transición: “En esta fase se asegura que el software esté disponible para la puesta en marcha hacia los usuarios finales” [17],
Propuesta
La metodología que se propone a continuación tiene un enfoque de aplicación en el campo académico cuyo objetivo es mejorar el desarrollo de los sistemas, mantenimiento y soporte para los usuarios que lo utilicen.
La Metodología de Desarrollo de Software Académico – MEDESA –reúne varios elementos del marco de trabajo de RUP, tales como los conceptos de modelos incrementales y evolutivos. MEDESA reúne los principios de desarrollo de Software detallados a continuación:
El primer principio se refiere al nivel académico que se deben integrar con los requisitos no funcionales, además pueden existir otros tipos relacionados con las comunicaciones ya que pertenecen a la plataforma tecnología o de gestión de proyectos.
El segundo principio se refiere a la didáctica, los servicios y operaciones que interactúan entre sí para poder agrupar y generar requisitos funcionales, los mismos que son relacionados con lo que el usuario dese que la aplicación realice.
El tercer principio detalla que lo más importante en el desarrollo es la funcionalidad de lo que se desea impartir, cada actividad debe tener una fuente de respaldo en la metodología que se esté usando, ya que con esto se garantiza que haya simplicidad y fácil navegación de la documentación y del sistema en sí.
El cuarto principio es el diseño para poder generar una evolución del sistema a futuro, ya que cada módulo, que es un subsistema que contiene entradas salidas y almacenamiento que representara todas las partes temáticas o metodológicas del objeto de aprendizaje.
El quinto principio nos detalla el prototipo que forma parte de la comunicación que se tuvo con el usuario y todas las funcionalidades que se le desean agregar, ya que todo esto debe ser consultado previamente con el usuario.
El sexto principio se lo asigna a la usabilidad que debe garantizarse para el fácil manejo y aprendizaje de todos los usuarios que vayan a interactuar con el software.
El séptimo principio se refiere al cargo del usuario como parte principal de todas las pruebas que se deben realizar ya que estas validaran los requisitos y las funcionalidades del prototipo.
El octavo principio detalla la calidad del sistema ya que al poner a prueba a esta aplicación con un grupo de usuarios y todos estos demuestran un manejo adecuado y un control óptimo se garantizará que el sistema sea eficaz y óptimo.
El noveno principio detalla las pruebas de aprendizaje que se harán cuando todo el sistema esté totalmente integrado para poder mantener todos los requerimientos del usuario.
Fases y Actividades. - MEDESA – se compone de una estructura la cual en el interior de cada fase se agregaron tareas a la metodología RUP.
EVALUACIÓN
Caso de Estudio
Para realizar el estudio y aplicación de la metodología MEDESA basado en RUP que se propone para el desarrollo de software académico específicamente para la universidad Estatal de Milagro (UNEMI), con el propósito de llevar un registro de los estudiantes que se están desarrollando en el campo laboral como profesionales capases llevar adelante nuevos desafíos con el fin de dar mejoras y apoyo en el desarrollo de la matriz productiva del país, con la finalidad de cooperar con el desarrollo económico y social.
Resultados
Figura 1: Se indica los resultados obtenidos luego de realizar la encuesta, donde se determina que el 80% de los encuestados afirma que la metodología se adapta a los requerimientos solicitados por los usuarios, mientras que un 20% asegura que se adapta medianamente. El nivel de satisfacción al que se quiere llegar es al 100%.
Figura 1. Satisfacción de Metodología
Figura 2: Se muestran los resultados obtenidos luego de realizar la encuesta, donde se podemos determinar que el 85% de los estudiantes encuestados afirma que el módulo cumple con todos los requisitos esperados, mientras que el 80% de los docentes determinaron que se deberían hacer pequeños cambios en la interfaz, y el 90% del personal administrativo afirmo que cumple con los requerimientos requeridos. El nivel de satisfacción al que se quiere llegar es al 100%.
Figura 2. Satisfacción de Usuarios
Conclusión
En el presente trabajo se aplica prácticas de metodologías tradicionales que se utilizan para equipos de desarrollo de software pero con un enfoque académico de soporte a los usuarios.
La aplicación de esta metodología se enfoca en ser un referente a la hora de utilizarlas en entornos poco cambiantes, por lo que se aplica en este caso de estudio.
La necesidad de implementar esta metodología se basa en la observación de ciertos módulos del SGA, que se desarrollaron y que están en mantenimiento; por lo tanto, al no tener métodos de trabajo bien definidos, no se logra un producto de calidad como lo requiere el usuario final.
En el caso de estudio realizado se evidencio con éxito la aplicabilidad de la metodología MEDESA; donde se puede mencionar que se redujo en tiempo el desarrollo del sistema de Titulación ya que permite conseguir de una manera rápida y confiable el desarrollo del mismo y lograr satisfacer al usuario final.
Líneas de trabajo futuro
En la evaluación realizada posterior a la aplicación de esta metodología se demuestra que con este tipo requerimientos y buenas prácticas, se puede desarrollar con éxito en otros tipos de modelos de negocio similares a lo indicado en este trabajo.
Una línea de trabajo futuro sería poder aplicarlo en otras áreas diferentes, que no tuvieran que ver con el desarrollo software académico al que hace referencia el caso de estudio.
[1] Delgado Expósito, Erly. "Metodologías de desarrollo de software. ¿Cuál es el camino?. "Revista de Arquitectura e Ingeniería (2008)
[2]Figueroa, Roberth G., Camilo J. Solís, and Armando A. Cabrera. "Metodologías tradicionales vs. Metodologías ágiles." Universidad Técnica Particular de Loja, Escuela de Ciencias en Computación (2008)
[3] Méndez Nava, Elvia Margarita, and GARRIDO RAMÓN. "Modelo de evaluación de metodologías para el desarrollo de software." Caracas, Venezuela (2006).
[4] Pérez, Oiver Andrés. "Cuatro enfoques metodológicos para el desarrollo de Software RUP– MSF–XP-SCRUM." Revista Inventum 10 (2011)
[5] Torres, Fernando. "Integración del PMBOK al RUP para proyectos de Desarrollo de Software." Octava Conferencia Iberoamericana en Sistemas, Cibernética e Informática: CISCI (2009)
[6] González, Agustín J., and Orientados a Objeto. "Ingeniería de Software: Metodologías." (2007)
[7] Cadavid, Andrés Navarro, Juan Daniel Fernández Martínez, and Jonathan Morales Vélez. "Revisión de metodologías ágiles para el desarrollo de software." Prospectiva 11.2 (2013)
[8] Canós, José H., and Mª Carmen Penadés Patricio Letelier. "Metodologías ágiles en el desarrollo de software." (2012).
[9] Cumba Armijos, Paúl David, and Byron Augusto Barreno Pilco. Análisis de PYTHON con Django frente a Ruby on Rails para desarrollo ágil de aplicaciones web. Caso práctico: DECH. BS thesis. 2013.
[10] Django Tutorial. “Que es Django”. Recuperado de: https://tutorial.djangogirls.org/es/django/#
[11] Condori Ayala, José Luis. "Phython-DjangoFramework de desarrollo web para perfeccionistasBasado en el Modelo MTV." Revista de Información, Tecnología y Sociedad (2012)
[12] Carmona, Llerena, and José Manuel. "Apertura de datos en proyectos Django." (2014).
[13] Téllez José. “Planificación de un Software Web y Aplicación Móvil para la Fundación Acción Familiar Alzheimer Colombia.” Trabajo Fin de Master Unir (2016)
[14] Gacitúa Bustos, Ricardo A.; "Métodos de desarrollo de software: El desafío pendiente de la estandarización. Software Development Methodologies: A Duel Pending for Standardization". Theoria (2003)
[15] Fuentes Yesika.; “Healthy Pets, Sistema de Gestión de Información para uso veterinario”. Trabajo Fin de Master Unir (2016)
[16] Martínez, Alejandro, and Raúl Martínez. "Guía a rational unified process." Escuela Politécnica Superior de Albacete–Universidad de Castilla la Mancha (2014).
[17] Balda, José Manuel Medina, and María Gertrudis López López. LOCOME: metodología de construcción de objetos de aprendizaje. Editorial Universitaria (Cuba), 2008.
[18] Tinoco Gómez, Oscar; Rosales López, Pedro Pablo; Salas Bacalla, Julio; "Criterios de selección de metodologías de desarrollo de software". Industrial Data (2010)
[19] Delgado, Andrea. "Desarrollo de Software con enfoque en el Negocio." Recurso disponible en: http://alarcos. inf-cr. uclm. es/pnis/articulos/pnis-07-delgado-dsen. pdf. Visitado el día 27 (2007).
[20] Martínez, Alejandro, and Raúl Martínez. "Guía a rational unified process." Escuela Politécnica Superior de Albacete–Universidad de Castilla la Mancha (2014).