Análisis de defectos de diseño

Lago, Rodrigo - Sánchez, Mario Nicolás - Silvotti, Belén

Supervisor(es): Apa, Cecilia - Casella, Vanessa - Vallespir, Diego

Resumen:

La calidad interna del software se puede ver afectada por las malas prácticas de diseño que pueden generar defectos de diseño. Estos defectos de diseño pueden aumentar el tiempo de desarrollo y mantenimiento del software, generando retrabajo, atrasos en las entregas, entre otros. El conocimiento e identificación de diferentes tipos de defectos de diseño contribuye a mejorar su calidad interna. Para esto, resulta importante apoyarse en herramientas automatizadas con el objetivo de optimizar el esfuerzo en las detecciones. Para mejorar tanto las prácticas de diseño de software como la forma en la que se enseña a diseñar en la carrera Ingeniería en Computación de la Facultad de Ingeniería, en este trabajo se presenta la realización de un estudio exploratorio con el objetivo de conocer y analizar los defectos de diseño documentados como Code Smells y AntiPatterns en los que incurren los estudiantes de pregrado al desarrollar software. Para ello, se determina un conjunto de Code Smells y AntiPatterns vinculados a defectos de diseño, se define una taxonomía de clasificación de los mismos y se selecciona y configura un conjunto de herramientas para su detección, que luego se utiliza sobre el código de un producto de software construido por estudiantes. Los resultados de nuestro trabajo muestran que la mayor cantidad de ocurrencias de Code Smells se observó en las categorías relacionadas a convenciones y tecnología Java, y que los AntiPatterns detectados fueron escasos y los tiempos estimados de refactorización imprecisos. Las principales clases afectadas fueron aquellas con alta complejidad y que concentraban la mayor parte de la lógica de negocio. Algunas debilidades y deficiencias fueron identificadas en la definición y utilización de estándares, así como en las revisiones de código realizadas por los estudiantes. En base a estos resultados, brindamos algunas sugerencias de mejora tanto a nivel del proceso de desarrollo de software como en la utilización de las herramientas automatizadas, para optimizar el tiempo dedicado a la detección y corrección de estos defectos de diseño. Diversos productos generados para el desarrollo de este proyecto pueden ser utilizados a futuro por la industria para mejorar sus procesos de desarrollo de software, así como por la comunidad científica para futuros estudios relacionados a defectos de diseño.


Detalles Bibliográficos
2022
Defectos de diseño
Code Smells
AntiPatterns
Calidad
Español
Universidad de la República
COLIBRI
https://hdl.handle.net/20.500.12008/31526
Acceso abierto
Licencia Creative Commons Atribución - No Comercial - Sin Derivadas (CC - By-NC-ND 4.0)
Resumen:
Sumario:La calidad interna del software se puede ver afectada por las malas prácticas de diseño que pueden generar defectos de diseño. Estos defectos de diseño pueden aumentar el tiempo de desarrollo y mantenimiento del software, generando retrabajo, atrasos en las entregas, entre otros. El conocimiento e identificación de diferentes tipos de defectos de diseño contribuye a mejorar su calidad interna. Para esto, resulta importante apoyarse en herramientas automatizadas con el objetivo de optimizar el esfuerzo en las detecciones. Para mejorar tanto las prácticas de diseño de software como la forma en la que se enseña a diseñar en la carrera Ingeniería en Computación de la Facultad de Ingeniería, en este trabajo se presenta la realización de un estudio exploratorio con el objetivo de conocer y analizar los defectos de diseño documentados como Code Smells y AntiPatterns en los que incurren los estudiantes de pregrado al desarrollar software. Para ello, se determina un conjunto de Code Smells y AntiPatterns vinculados a defectos de diseño, se define una taxonomía de clasificación de los mismos y se selecciona y configura un conjunto de herramientas para su detección, que luego se utiliza sobre el código de un producto de software construido por estudiantes. Los resultados de nuestro trabajo muestran que la mayor cantidad de ocurrencias de Code Smells se observó en las categorías relacionadas a convenciones y tecnología Java, y que los AntiPatterns detectados fueron escasos y los tiempos estimados de refactorización imprecisos. Las principales clases afectadas fueron aquellas con alta complejidad y que concentraban la mayor parte de la lógica de negocio. Algunas debilidades y deficiencias fueron identificadas en la definición y utilización de estándares, así como en las revisiones de código realizadas por los estudiantes. En base a estos resultados, brindamos algunas sugerencias de mejora tanto a nivel del proceso de desarrollo de software como en la utilización de las herramientas automatizadas, para optimizar el tiempo dedicado a la detección y corrección de estos defectos de diseño. Diversos productos generados para el desarrollo de este proyecto pueden ser utilizados a futuro por la industria para mejorar sus procesos de desarrollo de software, así como por la comunidad científica para futuros estudios relacionados a defectos de diseño.