Mejores prcticas de calidad en el desarrollo de software integradas al conocimiento de la ingeniera
Best quality practices in software development integrated with engineering knowledge
Melhores prticas de qualidade em desenvolvimento de software integrado com conhecimento de engenharia
Germania del Roci Veloz-Remache I
g_veloz@espoch.edu.ec
https://orcid.org/0000-0003-2865-8181
Jorge Ariel Menndez-Verdecia II
jorge.menendez@espoch.edu.ec
https://orcid.org/0000-0001-5221-1326
Linda Noralma Aguilar-Moncayo III
laguilar@espoch.edu.ec
https://orcid.org/0000-0001-7644-1804
Correspondencia: g_veloz@espoch.edu.ec
Ciencias Tcnicas y Aplicadas
Artculo de investigacin
*Recibido: 15 de noviembre de 2020 *Aceptado: 21 de diciembre de 2020 * Publicado: 09 de enero de 2021
I. Magister en Interconectividad de Redes, Master Universitario en Ingeniera de Software y Sistemas Informticos, Ingeniero en Sistemas Informticos Escuela Superior Politcnica de Chimborazo, Sede Morona Santiago, Macas, Ecuador.
II. Diploma Superior en Formulacin y Evaluacin de Proyectos de Investigacin, Magister en Gestin de Bases de Datos, Ingeniero Informtico, Ingeniero Informtico, Facultad de Informtica y Electrnica, Escuela Superior Politcnica de Chimborazo, Riobamba, Ecuador.
III. Magister en Gerencia de Redes y Telecomunicaciones, Ingeniera en Electrnica y Computacin, Formacin De Formadores, Escuela Superior Politcnica de Chimborazo, Sede Morona Santiago. Macas, Ecuador.
Resumen
La responsabilidad de la Academia en la formacin de ingenieros de software debe orientarse a fortalecer sus habilidades y destrezas en el proceso de desarrollo de soluciones, tomando en cuenta a la Calidad como un factor importante para obtener productos que satisfagan las expectativas de los usuarios. La investigacin presenta la aplicacin de buenas prcticas de calidad en la construccin de proyectos que automatizan procesos acadmicos universitarios, analizando los errores ms comunes que tienen los equipos de trabajo e identificando las mejoras en el proceso de desarrollo de software al aplicar mejores prcticas de calidad. Se aplic a Scrum como mejor prctica de desarrollo, observacin del manejo de las diferentes fases y revisiones frecuentes a la aplicacin de sugerencias, notando que la habilidad evaluacin constante de la calidad en los grupos de desarrollo madur en cada fase.
Palabras-clave: Calidad de software; mejores prcticas; ingeniera de software.
Abstract
The responsibility of the Academy in the training of software engineers should be aimed at strengthening their skills and abilities in the process of developing solutions, taking into account "Quality" as an important factor to obtain products that meet the expectations of users. The research presents the application of good quality practices in the construction of projects that automate university academic processes, analyzing the most common mistakes that work teams have and identifying the improvements in the software development process by applying best quality practices. Scrum was applied as a best development practice, observation of the management of the different phases and frequent revisions to the application of suggestions, noting that the constant quality assessment skill improved by xxxx%.
Keywords: Software Quality; better practices; software Engineering.
Resumo
A responsabilidade da Academia na formao de engenheiros de software deve estar direccionada para o reforo das suas competncias e competncias no processo de desenvolvimento de solues, tendo em considerao a "Qualidade" como um factor importante para obter produtos que satisfaam as expectativas dos utilizadores. . A pesquisa apresenta a aplicao de boas prticas de qualidade na construo de projetos que automatizam processos acadmicos universitrios, analisando os erros mais comuns das equipes de trabalho e identificando melhorias no processo de desenvolvimento de software por meio da aplicao de melhores prticas de qualidade. Scrum foi aplicado como melhor prtica de desenvolvimento, observao da gesto das diferentes fases e revises frequentes da aplicao de sugestes, observando que a capacidade de avaliar constantemente a qualidade nos grupos de desenvolvimento amadureceu em cada fase.
Palavras-chave: Qualidade de software; melhores prticas; Engenharia de software.
Introduccin
La calidad aplicada al desarrollo de software es una de las exigencias del mercado hoy en da, ya que no solo se requiere de aplicaciones que resuelvan una determinada problemtica, sino que debe ofrecer un plus orientado a la satisfaccin del cliente final. La calidad es un criterio subjetivo que requiere de la determinacin de parmetros medibles para establecer el grado de calidad que tiene un proceso y/o producto, en cada una de sus fases, no solo se debe esperar a la evaluacin del producto final.
En 2012, el Ministerio de Industrias y Productividad de Ecuador prioriz diez sectores industriales, uno de ellos el software ya que para el cumplimiento de la Agenda de Transformacin Productiva se solicit a la Secretara de Educacin Superior, Ciencia, Tecnologa e Innovacin (Senescyt) trazar el camino hacia la economa social del conocimiento y la innovacin colaborativa, responsable y orientada a la satisfaccin de las necesidades de la poblacin (Ecuador & Secretara Nacional de Planificacin y Desarrollo, 2009). Por tanto, la formacin universitaria es responsable de conseguir profesionales competentes y exitosos desde sus actividades acadmicas por ello, dentro del proceso de desarrollo de software se debe incorporar a la calidad en cada una de sus fases, ya que es indispensable saber qu se espera del producto final en cuanto a sus requerimientos funcionales y no funcionales, con lineamientos a la satisfaccin del cliente, es as que la enseanza de la Calidad a los futuros profesionales en rea de Ingeniera de Software debe procurar motivar la creencia de su aplicacin en cada uno de los pasos que conlleva a la solucin de una problemtica.
El presente trabajo recopila una serie de mejores prcticas aplicadas en el desarrollo de soluciones software realizadas en asignaturas de proyectos integradores de la carrera de Sistemas y Software, permitiendo as determinar dentro de la investigacin: errores concurrentes y posibles alternativas dentro de la aplicacin de la Ingeniera de Software en soluciones reales en medio de parmetros de calidad fundamentales.
Metodologa
La calidad de un producto la determina el proceso usado para desarrollarlo. (Humphrey,2011)
El estudio emplea a tres aplicaciones relacionadas a actividades acadmicas universitarias: Programas Analticos (P1), Slabo de Asignatura (P2) y Planificacin Semestral de la asignatura (P3), donde sus equipos de desarrollo estn conformados por dos o tres estudiantes de la carrera de Software cada uno.
Para la construccin de tres soluciones se emple a Scrum como prctica gil de desarrollo ya que las metodologas giles surgen para aplicarse principalmente en proyectos cuya naturaleza sea cambiante. (Vctor Hugo Mercado Ramos & Zapata Julian, 2015), donde la academia la emplea en la formacin (Mina & Gallegos Doris, 2017). As mismo se determina los estndares de calidad empleados en el mercado nacional como CMMI (CMMI Institute. 2017)., ISO 25000 (Oktaba, H. s. f.), ISO
La definicin de las mtricas para evaluacin de la calidad en el desarrollo se fundamenta en los componentes de Scrum como: Product Backlog, sprint backlog y burndown chart, la distribucin de roles product owner, Scrum master y equipo de trabajo ejecutados por las unidades institucionales de la universidad, profesores tutores y estudiantes respectivamente (Ypez Juan David et al., 2015). Tambin son utilizadas los diferentes tipos de sesiones establecidas en Scrum para la revisin de avances de los proyectos planteados con el objetivo de detectar errores, retroalimentar procesos y corregirlos oportunamente.
Se emplean herramientas como Planner de Office 365, correo electrnico, redes sociales como Facebook y WhatsApp con la finalidad de agilizar tareas de planificacin y gestin de los proyectos, as como el planteamiento de mtricas de calidad como estndar para todos los proyectos en construccin. BootStrap
A continuacin, se muestra un resumen de errores frecuentes en los tres proyectos de desarrollo de software en estudio.
Errores detectados
El trmino error es definido como una idea falsa o equivocada, los productos software no pueden estar basados en ideas por lo cual se indicar que un error es un defecto de software que puede causar un fallo y el fallo es una salida no aceptable de una aplicacin basada en los requerimientos funcionales. Por lo tanto, se describe los problemas detectados en funcin de los procesos realizados por los grupos de trabajo en cada una de sus fases.
Requerimentacin
Un error frecuente de los equipos de desarrollo es pensar que el usuario solo suministra los requerimientos en las primeras fases, en la tabla 1, se describe los problemas que se presentan en la fase de requerimentacin, donde se puede notar que emplean procesos informales de adquisicin de requerimientos a travs de entrevistas personales, las mismas que no se encuentran claramente diseadas y no formalizan lo adquirido en los diferentes encuentros con el cliente que son mnimos
Tabla 1: Errores frecuentes en la fase de requerimentacin
Problema Detectado |
P1 |
P2 |
P3 |
Proceso definido para automatizar |
Parcialmente definido |
Parcialmente definido |
Parcialmente definido |
Forma de adquisicin del requerimiento |
Informal Poca planificacin de la entrevista |
Informal Media planificacin de la entrevista |
Informal Poca planificacin de la entrevista |
Interpretacin del requerimiento |
A conveniencia del desarrollador |
A conveniencia del desarrollador |
A conveniencia del desarrollador |
Establecimiento de prioridades |
Basado en la experiencia del desarrollador, no en la necesidad del cliente |
Basado en la experiencia del desarrollador, no en la necesidad del cliente |
Basado en la experiencia del desarrollador, no en la necesidad del cliente |
Visitas al cliente |
Mnima |
Regular |
Mnima |
Al no haber documentado, se supone la resolucin del problema de manera superficial, debiendo nuevamente planificar otras reuniones, lo cual genera planificaciones no reales y prdida de recursos.
Diseo de Base de Datos
Una de las formas para determinar los errores cometidos en el diseo de las bases de datos es la cantidad de rediseos que tiene la misma. Al momento en que se realizan las reuniones de avance de los proyectos para revisin del diseo de la base de datos se encontraron las observaciones identificadas en la tabla 2, donde el error ms comn que poseen los equipos de trabajo es la identificacin de relaciones recursivas y el manejo de identificadores, lo cual se genera en un problema para la escalabilidad de la base de datos a futuro, implicando un rediseo de impacto en un posible mantenimiento o actualizacin.
Tabla 2: Errores frecuentes en el diseo de la base de datos
Problema Detectado |
P1 |
P2 |
P3 |
Relaciones recursivas |
2 de tres identificadas |
Una de dos identificadas |
dos de dos identificadas |
Nivel de empleo de identificadores |
Medio |
Medio |
Medio |
Identificacin de cardinalidad de las relaciones entre las entidades. |
Relaciones de 1-n |
Relaciones de 1-n |
Relaciones de 1-n |
Confusin entre Entidades y Relaciones |
2 errores encontrados |
1 error encontrado |
3 errores encontrados |
Interfaz
Tabla 3: Errores frecuentes en la codificacin
Problema Detectado |
P1 |
P2 |
P3 |
No respetar interfaz definida |
4 |
1 |
5 |
Pruebas
Los integrantes del equipo de desarrollo eran quienes ejecutaban las pruebas de las diferentes funcionalidades con datos ya conocidos, no con datos nuevos que permitan la identificacin de fallas funcionales.
Documentacin
Generar la documentacin es uno de los criterios que los equipos de desarrollo manifiestan un grado alto de resistencia, y se identifica claramente este fenmeno por la falta de actualizacin de los manuales tcnico y de usuario. La documentacin en las prcticas giles puede verse afectada, por el objetivo de aumentar la productividad en el proceso de desarrollo de software, donde la documentacin puede ocasionar demoras en las entregas de funcionalidades.
Al realizar las reuniones de avance de los proyectos P1,P2,P3, se determina que el 95% del tiempo consumido en el desarrollo del software se lo orienta a la programacin, el 4% a la gestin y un 1% a la documentacin, implicando que se deba revisar cdigo fuente, diseos y otros recursos para que la documentacin sea realizada. Este problema conlleva a no poder entregar funcionalidades con su documentacin en el tiempo planificado o afectando al mantenimiento o conocimiento de lo realizado en caso de cambio o integracin de un nuevo miembro al equipo de desarrollo.
Tabla 4: Errores frecuentes en la documentacin
Problema Detectado |
|
P1 |
P2 |
P3 |
Actualizacin de manuales |
|
Mnima |
Mnima |
Mnima |
Detalle de componentes (parmetros, servicios web empleados, libreras o paquetes empleados) |
|
Bajo |
Bajo |
Bajo |
Claridad y Sntesis |
|
Mnima |
Mnima |
Mnima |
Eficiente empleo de Lenguaje tcnico |
|
Medio |
Medio |
Medio |
En la tabla 4, se presenta los problemas ms comunes en la documentacin de los tres proyectos en estudio, determinando que se requiere describir componentes esenciales en las historias de usuario como libreras, clases, bases de datos, servicios web entre otros. El lenguaje empleado requiere ser claro y concreto en base a los conocimientos tcnicos incorporados.
Mejores prcticas aplicadas
Uno de los papeles que posee el profesor de las asignaturas relacionadas a la Ingeniera de Software es permitir que los estudiantes experimenten diferentes escenarios y distingan los beneficios de aplicar buenas prcticas convirtindose estas, en una herramienta que contribuyen a mejorar sus habilidades en la construccin de un producto software, as como tambin a que las fases de desarrollo se las ejecute orientadas a la obtencin de productos de calidad.
En la figura 1 se plantea un modelo de enseanza de la calidad en el proceso de desarrollo de software.
Figura
1:
Modelo de aplicacin de mejores prcticas de calidad en el desarrollo de
software
En la Figura 1, se determina la importancia de que el cliente sea parte del proceso de desarrollo y su participacin sea activa, donde el Scrum master (profesor), ser quien monitorea y evala a travs de las mtricas de calidad planteadas al inicio de cada proyecto, al igual que el equipo de desarrollo (estudiantes) aportan en un nivel operativo inferior al cumplimiento de la calidad en cada fase.
Requerimentacin
Anlisis previo de los objetivos del proyecto. Las actvidades deben estar basadas en un anlisis previo del problema a resolver, tomando en cuenta las prioridades del cliente en la entrevista inicial. Esta entrevista debe estar en co-participacin del Scrum mster (profesor) quien ser mediador entre el cliente y el equipo de desarrollo (estudiantes), permitiendo que los estudiantes actun libremente, pero seguros de una participacin oportuna por parte del profesor, adquiriendo habilidades de planificacin y gestin al mismo tiempo.
Planificacin real basada en los objetivos del proyecto. Se definir una lista de requerimientos y prioridades, las mismas que se trasladen a una planificacin realizada por el equipo de desarrollo en base a los horarios disponibles para dicho proceso. El Scrum master (profesor), deber verificar si la apreciacin de la planificacin en cuanto a utilizacin de recursos es factible o no, sugiriendo ajustes de la planificacin de ser el caso.
Diseo de Bases de Datos
Rediseo de la base de datos. Desde el diseo inicial de la base de datos el equipo de trabajo en conjunto con el Scrum master (profesor), debern esquematizar la informacin manejada a travs de la definicin del proceso a automatizar. Se debe verificar entidades, relaciones, reglas de negocio y roles permitiendo un diseo escalable y mantenible.
Pruebas
El nmero sprint realizados, as como las historias de usuario con aceptacin del cliente deben ser analizadas con la finalidad de crear una lista de funcionalidades ya cumplidas.
Se realizan pruebas entre equipos de desarrollo de los proyectos P1,P2, y P3; facilitando as la determinacin de posibles errores, informando los mismos en las reuniones de avance al Scrum Master, quien designar responsabilidades y planes de accin en conjunto con el equipo de desarrollo.
Documentacin
Establecimiento de estndares de documentacin. Se plantea al inicio del cada proyecto un estndar de documentacin orientada a la elaboracin de informes, codificacin, manejo de bases de datos y comunicacin interna o externa a los equipos de desarrollo.
Actualizacin de Manuales. Cada reunin de avance requera presentar la nueva versin de los manuales tcnico y de usuario, con las actividades ejecutadas y evaluadas ya terminadas. El Scrum master realiza esta verificacin, hasta que el equipo de desarrollo consiga documentar al mismo ritmo que realiza la programacin de los sprint, as como tambin las diferentes pruebas de usuario con su estado y sugerencias.
Gestin
Se dice que el 80% de re-trabajo se debe al 20% de los defectos de un producto software, as como tambin el uso de prcticas para la mejora del equipo y los profesionales puede reducir los defectos en un 75% o ms. Si se encuentra un problema despus de haber entregado el producto es 100 veces ms costoso que detectar y corregirlo en una etapa de diseo o desarrollo (Garzs, 2011).
Gestin frecuente de las expectativas del cliente. La relacim extrecha entre el cliente y los grupos de trabajo, facilitaba conocer sus principales necesidades y proyectarlas en el desarrollo integrando diseo escalar y adaptable a los cambios.
Productividad y Calidad. Los equipos de desarrollo al inicio presentan un grado de incertidumbre debido a la cantidad de requerimentacin presente, as como la probabilidad de cambios en los mismo, por la falta de definicin de los procesos relacionados a sus aplicaciones, pero poco a poco van ganando la destreza de liderazgo, integrndose entre ellos; lo que conduce al trabajo colaborativo creando cdigo que puede ser adaptado de manera eficiente entre los grupos. As tambin se planifica la calidad, se la ejecuta en cada uno de los pasos como: diseo de bases de datos, diseo de interfaz, reutilizacin de clases y cdigo, se la evala por roles desde el equipo de trabajo, scrum master y scrum owner, logrando el filtro y correccin correspondiente oportuna.
Equipo Motivado y Seguro. Cada grupo de desarrollo debe realizar tareas de investigacin y aplicacin de la misma en las diferentes fases de desarrollo de los proyectos en estudio, aspecto que permiti conseguir estudiantes seguros en la aplicacin de conocimientos crear un nuevo nivel de estudiantes que pueden ser soporte del Scrum master en la formacin de nuevos integrantes a los grupos de desarrollo.
Discusin
La Revista chilena de ingeniera, en su artculo Mtodo de aseguramiento de la calidad en una metodologa de desarrollo de software: un enfoque prctico, menciona la importancia del aseguramiento de la calidad en el desarrollo de software utilizando mtodos que permitan recabar, evaluar y divulgare datos sobre el proceso de ingeniera de software ; teniendo similitud en el presente trabajo en la importancia y el uso de una metodologa adecuada que permita mejorar la calidad del producto final y difiere en que se utiliza diferentes mtodos mientras que en el presente artculo se aplic la metodologa SCRUM, luego haber sido elegida luego de una revisin bibliogrfica minuciosa.
El artculo titulado Herramientas y buenas prcticas para el aseguramiento de calidad de software con metodologas giles, realizado por Vctor Hugo Mercado-Ramos1Julin Zapata2Yony Fernando Ceballos se relacionan en el estudio de diferentes metodologas que aseguren la calidad del software, mencionan aspectos como casos pruebas, documentacin (no excesiva) son determinantes para entregar un producto con calidad.
Los autores Alex Espejo Chavarra, Sussy Bayona Or y Carlos Pastor presentan informacin muy interesante en su trabajo titulado: Aseguramiento de la Calidad en el Proceso de Desarrollo de Software utilizando CMMI, TSP y PSP, en el que presentan un caso de estudio de la aplicacin de un modelo para mejorar la calidad del proceso de desarrollo software en una empresa desarrolladora de software que ha sido certificada en CMMI utilizando las metodologas PSP y TSP y el modelo CMMI con lo que se logra reducir el coste de calidad, reducir los defectos, la desviacin de coste y se incrementa la satisfaccin del usuario.
Conclusiones
La formacin de los profesionales en el rea de la Ingeniera de Software requiere la realizacin de proyectos acadmicos de media complejidad, basados en mbitos reales de desarrollo, donde puedan adquirir y mejorar las habilidades y destrezas adquiridas en cada nivel de su formacin universitaria con la experiencia que el mercado laboral necesita.
Al realizar la aplicacin de mejores prcticas de calidad dentro del proceso de desarrollo y conservar los equipos de trabajo madurando cada proyecto en estudio, permiti en los grupos de desarrollo, el compromiso consciente que tiene con la realidad nacional, siendo ellos, los que pueden ser soporte en la formacin de nuevos integrantes hasta llegar a la obtencin de un producto software de calidad, que satisfaga las necesidades de los clientes, pero que adems a ello, los alimente en cuanto a experiencia profesional..
Referencias
1. Carrizo, D & Alfaro,A (2018). Mtodo de aseguramiento de la calidad en una metodologa de desarrollo de software: un enfoque prctico. Recuperado de https://scielo.conicyt.cl/scielo.php?script=sci_arttext&pid=S0718-33052018000100114
2. CMMI Institute. (2017). CMMI Maturity Profile Report. Recuperado a partir de http://partners.cmmiinstitute.com/wp-content/uploads/2017/04/Maturity-Profile-Ending-in-Dec-31-2016.pdf
3. Daz, J. R. (2009). Las metodologas giles como garanta de calidad del software. Revista Espaola de Innovacin, Calidad e Ingeniera del Software, 5(3), 40-43.
4. Ecuador, & Secretara Nacional de Planificacin y Desarrollo. (2009). Plan nacional para el buen vivir, 2009-2013: Construyendo un estado plurinacional e intercultural. Secretara Nacional de Planificacin y Desarrollo, SENPLADES.
5. Espejo, A; Bayona, S; & Pastor (2016). Aseguramiento de la Calidad en el Proceso de Desarrollo de Software utilizando CMMI, TSP y PSP . Recuperado de http://www.scielo.mec.pt/scielo.php?pid=S1646-98952016000400006&script=sci_arttext&tlng=es
6. Garzs, J. (2011). Algunos datos estadsticos de la calidad software - Javier Garzs. Recuperado 1 de julio de 2017, a partir de http://www.javiergarzas.com/2011/03/datos-estadsticos-calidad-software.html
7. Guaycha, W. (2016). Estudio de Calidad para el proceso de desarrollo de software de empresas de Guayaquil. Universidad de Guayaquil, Guayaquil. Recuperado a partir de http://repositorio.ug.edu.ec/bitstream/redug/16189/1/TESIS%20Revision%20II.pdf
8. Mercado-Ramos, V.H., Zapata, J., & Ceballos, Y.F. (2015). Herramientas y buenas prcticas para el aseguramiento de calidad de software con metodologas giles. Rev.investig.desarro.innov, 6(1), 73-83. Recuperado de : https://dialnet.unirioja.es/servlet/articulo?codigo=6763102
9. Mina, E. M., & Gallegos Doris. (2017). La industria del software en Ecuador: Evolucin y situacin actual. Espacios, 38(57), 25.
10. Ministerio de Industrias y Productividad del Ecuador. (2013). El software una industria priorizada en Ecuador. Pas Productivo, 7. Recuperado a partir de http://www.industrias.gob.ec/wp-content/uploads/downloads/2013/08/REVISTA-7.pdf
11. Oktaba, H. (s. f.). SQUARE: Modelo actualizado de las caractersticas de calidad. UNAM. Recuperado a partir de https://sg.com.mx/content/view/990
12. Vctor Hugo Mercado Ramos, & Zapata Julian. (2015). Herramientas y buenas prcticas para el aseguramiento de calidad de software con metodologas gilesDialnet. Revista de Investigacin Desarrollo e Innovacin: RIDI, 6(1), 73-83.
13. Ubeda, R. (2009). Mtodos giles para el desarrollo de software. Univsersidad Politcnica de Catalunya, Espaa. Recuperado a partir de https://core.ac.uk/download/pdf/41798414.pdf
14. Ypez Juan David, Pardo Csar, & Gmez Omar. (2015). Revisin sistemtica acerca de la implementacin de metodologas giles y otros modelos en micro, pequeas y medianas empresas de software | Yepes Gonzlez | Revista TecnolgicaESPOL. RTE Revista Tecnolgica ESPOL, 28(5), 464-479.
2020 por los autores. Este artculo es de acceso abierto y distribuido segn los trminos y condiciones de la licencia Creative Commons Atribucin-NoComercial-CompartirIgual 4.0 Internacional (CC BY-NC-SA 4.0)
(https://creativecommons.org/licenses/by-nc-sa/4.0/).
Enlaces de Referencia
- Por el momento, no existen enlaces de referencia
Polo del Conocimiento
Revista Científico-Académica Multidisciplinaria
ISSN: 2550-682X
Casa Editora del Polo
Manta - Ecuador
Dirección: Ciudadela El Palmar, II Etapa, Manta - Manabí - Ecuador.
Código Postal: 130801
Teléfonos: 056051775/0991871420
Email: polodelconocimientorevista@gmail.com / director@polodelconocimiento.com
URL: https://www.polodelconocimiento.com/