Otro
Métricas de legibilidad del software: una revisión sistemática de literatura
Autor
Echavarría Flórez, Ingrid Sofía
Institución
Resumen
The quality of the software is an important aspect, mainly due to its relation to the future costs associated with the maintenance of the product. In order to quantify the quality, software quality metrics are used, which are a set of measures used to estimate the quality of a software project. Taking into account that the quality of the software must evaluate several aspects, and that it must be measured in the same way for all, standards have been created that provide a guide to the process to be carried out. As of 2019, the standard that is the family of ISO/IEC 25000 standards, whose objective is to create a common framework to assess the quality of a software product considering 8 characteristics: functional adequacy, performance, compatibility, usability, reliability, security, maintainability, and portability. The maintainability feature has a high impact on the total costs of software projects, consuming between 40% and 80% of the total cost of the life cycle of a software product. Additionally, within the Maintenance work, developers spend approximately 70% of the time trying to understand the source code, so being able to measure the readability of a code snippet could help estimate the effort required for a maintenance activity. The readability of software is defined as the degree of ease with which a person can read and understand a piece of source code, written by another person.
Despite the efforts and research in the area of readability of the software, there is still no definitive model to assess the level of readability of a fragment of source code in real time. Therefore, it is essential to continue research in the area, but for this, it is necessary to know the studies that exist to date on the legibility of software, identifying the characteristics and metrics proposed to measure it, the models that allow automatic evaluation, the applications they have in the area of software and the challenges that future researchers must face.
This final master's work presents a synthesis and analysis of software readability metrics. For this, a systematic review of the literature of works related to the readability of the source code was carried out, presenting a compilation of the main characteristics and the methods used for its measurement. The result of this work aims to serve as a basis for other researchers to propose new readability metrics, and subsequently, to develop strategies that are integrated into integrated development environments (IDEs) to measure and alert on the readability of the source code in time developmental. La calidad del software es un aspecto importante, principalmente por su relación con los costos futuros asociados al mantenimiento del producto. Para poder cuantificar la calidad, se utilizan las métricas de calidad de software, las cuales son un conjunto de medidas utilizadas para estimar la calidad de un proyecto de software. Teniendo en cuenta que la calidad del software debe evaluar varios aspectos, y que debe ser medida de la misma forma para todos, se han creado normas que brindan una guía del proceso a realizar. Al año 2019, la norma que se encuentra en vigencia es la familia de normas ISO/IEC 25000, cuyo objetivo es crear un marco de trabajo común para evaluar la calidad de un producto de software teniendo en cuenta 8 características: adecuación funcional, rendimiento, compatibilidad, usabilidad, fiabilidad, seguridad, mantenibilidad y portabilidad. La característica de mantenibilidad, tiene un alto impacto sobre los costos totales de los proyectos de software, consumiendo entre 40% y 80% del costo total del ciclo de vida de un producto de software. Adicionalmente, dentro de la labor de mantenimiento, los desarrolladores gastan aproximadamente 70% del tiempo tratando de comprender el código fuente, por lo que poder medir la legibilidad de un fragmento de código, podría ayudar a estimar el esfuerzo requerido para una actividad de mantenimiento. La legibilidad (readability en inglés) del software, es definida como el grado de facilidad con la que una persona puede leer y comprender un fragmento de código fuente, escrito por otra persona.
A pesar de los esfuerzos e investigaciones en el área de legibilidad del software, aún no se tiene un modelo definitivo que permita evaluar el nivel de legibilidad de un fragmento de código fuente en tiempo real. Por ello, es indispensable dar continuidad a las investigaciones en el área, pero para ello, es necesario conocer los estudios que existen hasta la fecha sobre la legibilidad del software, identificando las características y métricas propuestas para medirla, los modelos que permiten la evaluación automática, las aplicaciones que tienen en el área del software y los retos que deben afrontar los futuros investigadores.
Este trabajo final de maestría presenta una síntesis y análisis de las métricas de legibilidad de software. Para esto, se realizó una revisión sistemática de la literatura de trabajos relacionados con la legibilidad del código fuente, presentando una recopilación de las características principales y los métodos utilizados para su medición. El resultado de este trabajo pretende servir como base para que otros investigadores puedan proponer nuevas métricas de legibilidad, y posteriormente, puedan desarrollar estrategias que sean integradas a los entornos integrados de desarrollo (IDEs) para medir y alertar sobre la legibilidad del código fuente en tiempo de desarrollo.