Detectando y evitando defectos de diseño de software : un catálogo de antipatterns y un análisis de los code smells en los que incurren estudiantes de grado

Casella, Vanessa

Supervisor(es): Vallespir, Diego

Resumen:

El diseño de software es un proceso creativo y fundamental en la construcción de software de calidad. La creación de un diseño simple y eficiente puede ser una tarea muy compleja y su construcción requiere de ciertas habilidades que al parecer no están desarrolladas en los estudiantes de pregrado. Las malas practicas de diseño de software originan defectos de diseño, que no necesariamente producen errores de compilación o de ejecución pero que afectan negativamente a los factores de calidad del software. Los defectos pueden surgir en diferentes niveles de granularidad, como son los antipatterns y code smells. Desafortunadamente, identificar y corregir estos defectos de diseño puede ser una tarea muy compleja. Este trabajo pretende contribuir al conocimiento existente sobre técnicas y herramientas de detección de antipatterns y code smells, a partir de una revisión secundaria de la literatura. Además, busca conocer los defectos de diseño en los que incurren los estudiantes de pregrado de nuestra Facultad e investigar, mediante estudios experimentales, si estos pueden ser evitados utilizando un conjunto de plantillas de diseño. El resultado de la revisión secundaria es un catalogo de defectos de diseño, donde para cada uno se incluyen técnicas y herramientas utilizadas para detectarlo. Este catalogo puede ser utilizado en otras investigaciones o por profesionales de la industria como gua en el diseño de software. Del análisis de defectos de diseño, se observa que los estudiantes de pregrado incurren en una gran variedad de estos defectos y no mejoran la calidad interna del software cuando utilizan plantillas para representar el diseño. El uso de estas plantillas no evitan ni disminuyen la aparición de ciertos defectos de diseño. Comprender los tipos de defectos de diseño que están presentes en proyectos que desarrollan los estudiantes, sirve como puntapié inicial para generar nuevas hipótesis y diseñar nuevos estudios experimentales. Además, estos resultados pueden servir como insumo en la investigación sobre las practicas de diseño y cómo se enseña a diseñar software.


Detalles Bibliográficos
2020
Antipatterns
Code smells
Mapeo sistemático
Diseño detallado
Calidad de diseño
Español
Universidad de la República
COLIBRI
https://hdl.handle.net/20.500.12008/33468
Acceso abierto
Licencia Creative Commons Atribución - No Comercial - Sin Derivadas (CC - By-NC-ND 4.0)
Resumen:
Sumario:El diseño de software es un proceso creativo y fundamental en la construcción de software de calidad. La creación de un diseño simple y eficiente puede ser una tarea muy compleja y su construcción requiere de ciertas habilidades que al parecer no están desarrolladas en los estudiantes de pregrado. Las malas practicas de diseño de software originan defectos de diseño, que no necesariamente producen errores de compilación o de ejecución pero que afectan negativamente a los factores de calidad del software. Los defectos pueden surgir en diferentes niveles de granularidad, como son los antipatterns y code smells. Desafortunadamente, identificar y corregir estos defectos de diseño puede ser una tarea muy compleja. Este trabajo pretende contribuir al conocimiento existente sobre técnicas y herramientas de detección de antipatterns y code smells, a partir de una revisión secundaria de la literatura. Además, busca conocer los defectos de diseño en los que incurren los estudiantes de pregrado de nuestra Facultad e investigar, mediante estudios experimentales, si estos pueden ser evitados utilizando un conjunto de plantillas de diseño. El resultado de la revisión secundaria es un catalogo de defectos de diseño, donde para cada uno se incluyen técnicas y herramientas utilizadas para detectarlo. Este catalogo puede ser utilizado en otras investigaciones o por profesionales de la industria como gua en el diseño de software. Del análisis de defectos de diseño, se observa que los estudiantes de pregrado incurren en una gran variedad de estos defectos y no mejoran la calidad interna del software cuando utilizan plantillas para representar el diseño. El uso de estas plantillas no evitan ni disminuyen la aparición de ciertos defectos de diseño. Comprender los tipos de defectos de diseño que están presentes en proyectos que desarrollan los estudiantes, sirve como puntapié inicial para generar nuevas hipótesis y diseñar nuevos estudios experimentales. Además, estos resultados pueden servir como insumo en la investigación sobre las practicas de diseño y cómo se enseña a diseñar software.