Introducción a la calidad del software

Una parte importante en el desarrollo del software además de la funcionabilidad del producto, es su optimización, mantenimiento y evolución. Es por ello que gran parte de las tecnologías a nuestras disposición se centran en ello.

Por una parte, partimos de que como pasa en todo producto, siempre existe mejora. El mundo del software no es diferente, un programador va creando sus códigos de forma incremental y aunque se da mucha importancia a la fase de diseño del mismo, siempre durante la elaboración del mismo pueden quedar líneas que no estén bien estructuradas.

Algo que siempre pasa durante el desarrollo, es que en el proceso de codificación nos damos cuenta, de que nos falta un método, o ese atributo con el que no contamos. Teniendo que embeberlo en el código de forma no planificada.

Es por ello que una vez terminado, y siendo ya funcional nos encontramos con que podemos dar una estructura mas clara. Aunque ese proceso se podría hacer manualmente, en algunos casos puede ser una tarea muy tediosa. Imaginemos que queremos cambiar el nombre de un método al cual hemos llamado desde muchos otros archivos, el ir cambiando esas llamadas puede ser además de una tarea que nos quite mucho tiempo, puede ser causa de errores.

Los creadores de IDE´s eso lo saben, y ponen a nuestra disposición un conjunto de utilidades para ayudarnos en esa tarea. Mediante la refactorización podemos realizar cambios fácilmente y optimizar nuestro código para facilitar su entendimiento por otros programadores, es decir nos ayuda a realizar un código mas “limpio”.

Otro Punto importante es que todo código debe estar bien comentado, según el convenido que mires, podemos encontrar que la norma es que el 60% de nuestro código sean comentarios donde describimos las funcionabilidades de los métodos, atributos etc.

Como hemos dicho, un programa es un proceso incremental, su creación pasa por diferentes fases, desde su composición hasta su mejora y evolución a lo largo del tiempo. Por lo que es importante tener un “foto fija” de los diferentes estados por los que han pasado nuestro código.

Con el control de versiones podemos recuperar cualquier estado de nuestro código, para compararlo con lo nuevo, o simplemente para recuperar partes del mismo que habíamos descartado.