producir software de alta calidad. Pero a muchos lectores les inquietará la pregunta:
¿Qué es la calidad del software?
El problema de la gestión de la calidad no es lo que la gente no sabe sobre ella. El problema es lo quecreen que saben a este respecto, la calidad tiene mucho en común con el sexo. Todo el mundo lo quiere. (Bajo ciertas condiciones, por supuesto.) Todo el mundo cree que lo conoce. (Incluso aunque no quiera explicarlo.)
Todo el mundo piensa que su ejecución sólo es cuestión de seguir las inclinaciones naturales. (Después de todo, nos las arreglamos de alguna forma.) Y, por supuesto, la mayoría de la gente piensa que los problemas en estas áreas están producidos por otra gente. (Como si sólo ellos se tomaran el tiempo para hacer las cosas bien.)
Algunos desarrolladores de software continúan creyendo que la calidad del software es algo
en lo que empiezan a preocuparse una vez que se ha generado el código. ¡Nada más lejos de la
realidad! La garantía de calidad del software (SQA, Software Quality Assurance GCS, Gestión
de calidad del software) es una actividad de protección que se aplica a lo largo de
todo el proceso del software.
En este capítulo nos centraremos en los aspectos de gestión y en las actividades específicas
del proceso que permitan a una organización de software asegurar que hace «las cosas correctas
en el momento justo y de la forma correcta». Philip Crosby, en su famoso libro sobre calidad, expone esta situación:
¿Cómo se aplica esto al software? ¿Cómo puede una organización de desarrollo de software necesitar controlar la variación? De un proyecto a otro, queremos reducir la diferencia entre los recursos necesarios planificados para terminar un proyecto y los recursos reales utilizados, entre los que se incluyen personal, equipo y tiempo. En general, nos gustaría asegurarnos de que nuestro programa de pruebas abarca un porcentaje conocido del software de una entrega a otra. No sólo queremos reducir el número de defectos que se extraen para ese campo, sino también nos gustaría asegurarnos de que los errores ocultos también se reducen de una entrego a otra. (Es probable
que nuestros clientes se molesten si la tercera entrega de un producto tiene diez veces más defectos
que la anterior.) Nos gustaría reducir las diferencias en velocidad y precisión de nuestras respuestas de soporte a los problemas de los clientes. La lista se podría ampliar más y más.
El American Heritage Dictionary, define la calidad como «una característica o atributo de algo». Como un atributo de un elemento, la calidad se refiere a las características mensurables -cosas que se pueden comparar con estándares conocidos como longitud, color, propiedades eléctricas, maleabilidad, etc.-. Sin embargo, el software en su gran extensión, como entidad intelectual, es más difícil de caracterizar que los objetos físicos. No obstante, sí existen las medidas de características
de un programa. Entre estas propiedades se incluyen complejidad ciclomática, cohesión, número de
puntos de función, líneas de código y muchas otras estudiadas en los Capítulos 19 y 24. Cuando se examina un elemento según sus características mensurables, se pueden encontrar dos tipos de calidad: calidad del diseño y calidad de concordancia.
La calidad de diseño se refiere a las características que especifican los ingenieros de software para un elemento. El grado de materiales, tolerancias y las especificaciones del rendimiento contribuyen a la calidad del diseño.
Algunos desarrolladores de software continúan creyendo que la calidad del software es algo
en lo que empiezan a preocuparse una vez que se ha generado el código. ¡Nada más lejos de la
realidad! La garantía de calidad del software (SQA, Software Quality Assurance GCS, Gestión
de calidad del software) es una actividad de protección que se aplica a lo largo de
todo el proceso del software.
La SQA engloba: un enfoque de gestión de calidad; tecnología de ingeniería del software efectiva (métodos y herramientas); revisiones técnicas formales que se aplican durante el proceso del software; una estrategia de prueba multiescalada; el control de la documentación del software y de los cambios realizados; un procedimiento que asegure un ajuste a los estándares de desarrollo del software (cuando sea posible), y mecanismos de medición y de generación de informes.
En este capítulo nos centraremos en los aspectos de gestión y en las actividades específicas
del proceso que permitan a una organización de software asegurar que hace «las cosas correctas
en el momento justo y de la forma correcta». Philip Crosby, en su famoso libro sobre calidad, expone esta situación:
Conceptos de calidad
Se dice que dos copos de nieve no son iguales. Ciertamente cuando se observa caer la nieve, es difícil imaginar que son totalmente diferentes, por no mencionar que cada copo posee una estructura única. Para observar las diferencias entre los copos de nieve, debemos examinar los especímenes muy de cerca, y quizá con un cristal de aumento. En efecto, cuanto más cerca los observemos, más diferencias podremos detectar.
Este fenómeno, variación entre muestras, se aplica a todos los productos del hombre así como a la creación natural. Por ejemplo, si dos tarjetas de circuito «idénticas» se examinan muy de cerca, podremos observar que las líneas de cobre sobre las tarjetas difieren ligeramente en la geometría, colocación y grosor. Además, la localización y el diámetro de los orificios de las tarjetas también varían.
El control de variación es el centro del control de calidad. Un fabricante quiere reducir la variación entre los productos que se fabrican, incluso cuando se realiza algo relativamente sencillo como la duplicación de disquetes. Seguramente, esto puede no ser un problema -la duplicación de disquetes es una operación de fabricación trivial y podemos garantizar que se crean duplicados exactos de software.
¿Cómo se aplica esto al software? ¿Cómo puede una organización de desarrollo de software necesitar controlar la variación? De un proyecto a otro, queremos reducir la diferencia entre los recursos necesarios planificados para terminar un proyecto y los recursos reales utilizados, entre los que se incluyen personal, equipo y tiempo. En general, nos gustaría asegurarnos de que nuestro programa de pruebas abarca un porcentaje conocido del software de una entrega a otra. No sólo queremos reducir el número de defectos que se extraen para ese campo, sino también nos gustaría asegurarnos de que los errores ocultos también se reducen de una entrego a otra. (Es probable
que nuestros clientes se molesten si la tercera entrega de un producto tiene diez veces más defectos
que la anterior.) Nos gustaría reducir las diferencias en velocidad y precisión de nuestras respuestas de soporte a los problemas de los clientes. La lista se podría ampliar más y más.
Calidad
El American Heritage Dictionary, define la calidad como «una característica o atributo de algo». Como un atributo de un elemento, la calidad se refiere a las características mensurables -cosas que se pueden comparar con estándares conocidos como longitud, color, propiedades eléctricas, maleabilidad, etc.-. Sin embargo, el software en su gran extensión, como entidad intelectual, es más difícil de caracterizar que los objetos físicos. No obstante, sí existen las medidas de características
de un programa. Entre estas propiedades se incluyen complejidad ciclomática, cohesión, número de
puntos de función, líneas de código y muchas otras estudiadas en los Capítulos 19 y 24. Cuando se examina un elemento según sus características mensurables, se pueden encontrar dos tipos de calidad: calidad del diseño y calidad de concordancia.
La calidad de diseño se refiere a las características que especifican los ingenieros de software para un elemento. El grado de materiales, tolerancias y las especificaciones del rendimiento contribuyen a la calidad del diseño.
No hay comentarios:
Publicar un comentario