martes, 19 de octubre de 2010

Garantia de la calidad de software

EL enfoque de ingeniería del software descrito en este libro se dirige hacia un solo objetivo:
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 que
creen 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 (Capítulo 2) que se aplica a lo largo de
todo el proceso del software. La SQA engloba: (1) un enfoque de gestión de calidad; (2) tecnología
de ingeniería del software efectiva (métodos y herramientas); (3) revisiones técnicas
formales que se aplican durante el proceso del software; (4) una estrategia de prueba multiescalada;
(5) el control de la documentación del software y de los cambios realizados; (6) un procedimiento
que asegure un ajuste a los estándares de desarrollo del software (cuando sea posible),
y (7) 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 [CR079], 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 fabncación
trivial y podemos garantizar que se crean duplicados
exactos de software-.
¿Podemos?. Necesitamos asegurar que las pistas se
sitúen dentro de una tolerancia específica para que la
gran mayoría de las disqueteras puedan leer los disquetes.
Además, necesitamos asegurar que el flujo magnético
para distinguir un cero de un uno sea suficiente
para que los detecten las cabezas de lectura/escritura.
Las máquinas de duplicación de discos aceptan o rechazan
la tolerancia. Por consiguiente, incluso un proceso
«simple», como la duplicación, puede encontrarse con
problemas debidos a la variación entre muestras.
Controlar la variación es la clave de un producto de alta
calidad. En el contexto del software, nos esforzamos
en controlar la variación en el proceso que aplicamos,
recursos que consumimos y los atributos de calidad
del producto final.

¿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.
8.1.1. 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. Cuando se utilizan materiales de alto grado y se

No hay comentarios:

Publicar un comentario