Business">
Pressman, R. (2012)
Pressman, R. (2012)
Pressman, R. (2012)
L enfoque de ingeniería del software descrito en este libro se dirige hacia un solo obje-
tivo: producir software de alta calidad. Pero a muchos lectores les inquietará la pregunta:
es la calidad del software?»
Philip Crosby en su famoso libro sobre calidad, expone esta situación:
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. 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) tec-
nologí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
calada; ( 5 ) el control de la documentación del software y de los cambios realizados; (6) un pro-
cedimiento 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 cosas correc-
tas en el momento justo y de la forma correcta».
software debe
do de este modo la
N. del T.: En español, GCS.Se conservan las siglas SQA en inglés por estar muy extendido su uso para jerga infor-
mática. A veces se suelen traducir estas siglas también por de la Calidad del
131
DEL SOFTWARE. UN ENFOQUE PRACTICO
Se dice que dos copos de nieve no son iguales. Cierta- se aplica esto al software? puede
mente cuando se observa caer la nieve, es difícil ima- una organización de desarrollo de software necesitar
ginar que son totalmente diferentes, por no mencionar controlar la variación? De un proyecto a otro, quere-
que cada copo posee una estructura única. Para obser- mos reducir la diferencia entre los recursos necesa-
var las diferencias entre los copos de nieve, debemos rios planificados para terminar un proyecto y los
examinar los especímenes muy de cerca, y quizá con recursos reales utilizados, entre los que se incluyen
un cristal de aumento. En efecto, cuanto más cerca los personal, equipo y tiempo. En general, nos gustaría
observemos, más diferencias podremos detectar. asegurarnos de que nuestro programa de pruebas abar-
Este fenómeno, variación entre muestras, se aplica ca un porcentaje conocido del software de una entre-
a todos los productos del hombre así como a la creación ga a otra. No sólo queremos reducir el número de
natural. Por ejemplo, si dos tarjetas de circuito «idénti- defectos que se extraen para ese campo, sino también
cas» se examinan muy de cerca, podremos observar que nos gustaría asegurarnos de que los errores ocultos
las líneas de cobre sobre las tarjetas difieren ligeramente también se reducen de una entrego a otra. (Es proba-
en la geometría, colocación y grosor. Además, la loca- ble que nuestros clientes se molesten si la tercera
lización y el diámetro de los orificios de las tarjetas tam- entrega de un producto tiene diez veces más defectos
bién varían. 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
El control de variación es el centro del control de característica o atributo de algo». Como un atri-
calidad. Un fabricante quiere reducir la variación entre buto de un elemento, la calidad se refiere a las caracte-
los productos que se fabrican, incluso cuando se reali- rísticas mensurables que se pueden comparar
za algo relativamente sencillo como la duplicación de con estándares conocidos como longitud, color, propie-
disquetes. Seguramente, esto puede no ser un problema dades eléctricas, maleabilidad, Sin embargo, el
duplicaciónde disquetes es una operación de software en su gran extensión, como entidad intelectual,
cación trivial y podemos garantizar que se crean dupli- es más difícil de caracterizar que los objetos físicos.
cados exactos de software-. No obstante, sí existen las medidas de característi-
Necesitamos asegurar que las pistas se cas de un programa. Entre estas propiedades se inclu-
sitúen dentro de una tolerancia específica para que la yen complejidad ciclomática, cohesión, número de
gran mayoría de las disqueteras puedan leer los puntos de función, líneas de código y muchas otras estu-
Además, necesitamos asegurar que el flujo mag- diadas en los Capítulos 19y 24. Cuando se examina un
nético para distinguir un cero de un uno sea suficiente elemento según sus características mensurables, se pue-
para que los detecten las cabezas de den encontrar dos tipos de calidad: calidad del diseño
Las máquinas de duplicación de discos aceptan o recha- y calidad de concordancia.
zan la tolerancia. Por consiguiente, incluso un proceso
«simple», como la duplicación, puede encontrarse con
problemas debidos a la variación entre muestras.
Controlar variación es clave de un producto de alta La calidad de diseño se refiere a las características
calidad. En el contexto del software, nos esforzamos que especifican los ingenieros de software para un ele-
en controlar variación en el proceso que aplicamos, mento. El grado de materiales, tolerancias y las especi-
recursosque consumimos y los atributos de calidad ficaciones del rendimiento contribuyen a la calidad del
del producto final. diseño. Cuando se utilizan materiales de alto grado y se
132
DE CALIDAD DEL SOFTWARE
especificantolerancias más estrictas y niveles más altos cificaciones mensurables en las que se puedan com-
de rendimiento, la calidad de diseño de un producto parar los resultados de cada proceso. El bucle de
aumenta, si el producto se fabrica de acuerdo con las limentación es esencial para reducir los defectos
especificaciones. producidos.
La calidad de concordancia es el grado de cumpli-
miento de las especificaciones de diseño durante su rea- 8.1.3. Garantía de calidad
lización. Una vez más, cuanto mayor sea el grado de
cumplimento,más alto será el nivel de calidad de con- La garantia de calidad consiste en la auditoría y las fun-
cordancia. ciones de información de la gestión. El objetivo de la
En el desarrollo del software, la calidad de diseño garantía de calidad es proporcionar la gestión para infor-
comprende los requisitos, especificaciones y el diseño mar de los datos necesarios sobre la calidad del pro-
del sistema. La calidad de concordancia es un aspecto ducto, por lo que se va adquiriendo una visión más
centrado principalmente en la implementación. Si la profunda y segura de que la calidad del producto está
implementación sigue el diseño, y el sistema resultan- cumpliendo sus objetivos. Por supuesto, si los datos pro-
te cumple los objetivos de requisitos y de rendimiento, porcionados mediante la garantía de calidad identifican
la calidad de concordancia es alta. problemas, es responsabilidad de la gestión afrontar los
Pero, la calidad del diseño y la calidad de problemas y aplicar los recursos necesarios para resol-
concordancia los Únicos aspectos que deben consi- ver aspectos de calidad.
derar los ingenieros de software? Robert Glass
establece para ello una relacion más
Referencia
satisfacción del usuario = producto
dad+ entrega dentro de presu- Se puede una gran variedad de recursos de
puesto y del tiempo establecidos calidad del en
es el control de calidad
del software?
los componentes
del coste de calidad?
Las actividades de control de calidad pueden ser Entre los costes de evaluación se incluyen activida-
manuales, completamente automáticas o una combi- des para tener una visión más profunda de-la condición
nación de herramientas automáticas e interacción del producto primera vez a través cada proce-
humana. Un concepto clave del control de calidad es so. A continuación se incluyen algunos ejemplos de cos-
que se hayan definido todos los productos y las espe- tes de evaluación:
133
DEL S O FT W A R E . U N E N F O Q U E P R A C T IC O
Hoy en día los responsables expertos de compañías de La tendencia de la calidad comenzó en los años cuarenta
todo el mundo industrializado reconocen que la alta cali- con el influyente trabajo de W. Edwards Deming
dad del producto se traduce en ahorro de coste y en una y se hizo la primera verificación en Japón.
mejora general. Sin embargo, esto no era siempre el caso. Mediante las ideas de Deming como piedra angular, los
134
DE CA LIDAD DEL S O F TW A RE
japoneses han desarrollado un enfoque sistemático para Mientras que los dos primeros pasos se centran en
la eliminación de las causas raíz de defectos en produc- el proceso, el paso siguiente llamado kansei (traducido
tos. A lo largo de los años setenta y ochenta, su trabajo como cinco sentidos») se centra en el usuario del
emigró al mundo occidental y a veces se llama «gestión producto (en este caso, software). En esencia, exami-
de calidad Aunque la terminología difiere nando la forma en que el usuario aplica el producto,
según los diferentes países y autores, normalmente se kunsei conduce a la mejora en el producto mismo, y
encuentrauna progresión básica de cuatro pasos que cons- potencialmente al proceso que lo creó.
tituye el fundamentode cualquier programa de GTC. Finalmente, un paso llamado miryokuteki hinshitsu
amplía la preocupación de la gestión más allá del pro-
ducto inmediato. Este es un paso orientado a la gestión
que busca la oportunidad en áreas relacionadas que se
CLAVE
pueden identificar observando la utilización del pro-
Se puede aplicar GTC al software de computadora. ducto en el mercado. En el mundo del software,
enfoque GTC se centra en mejora continua
kuteki hinshitsu se podría ver como un intento de
del
detectar productos nuevos y beneficiosos, o aplicacio-
El primer paso se llama kuizen y se refiere a un sis- nes que sean una extensión de un sistema ya existente
tema de mejora continua del proceso. El objetivo de basado en computadora.
zen es desarrollar un proceso (en este caso, proceso del
software) que sea visible, repetible y mensurable.
El segundo paso, invocado sólo una vez que se ha
kuizen, se llama aturimae hinshitsu. Este paso
examina lo intangible que afecta al proceso y trabaja Se puede encontrar una gran variedad de recursos
para optimizar su impacto en el proceso. Por ejemplo, continua del proceso y GTC en
el proceso de software se puede ver afectado por la alta deming.eng.clemsom.edu/
rotación de personal que ya en sí mismo se ve afectado
por reorganizaciones dentro de una compañía. Puede Para la mayoría de las compañías, kuizen debería
ser que una estructura organizativa estable haga mucho ser de preocupación inmediata. Hasta que se haya logra-
para mejorar la calidad del software. do un proceso de software avanzado (Capítulo 2), no
llevaría a la gestión a sugerir cambios en la forma en hay muchos argumentos para seguir con los pasos
que ocurre la reorganización. siguientes.
el desarrollador de software más agobiado ware. Para los propósitos de este libro, la anterior defini-
acuerdo con que el software de alta calidad es una ción sirve para hacer hincapié en tres puntos importantes:
meta importante. Pero, definimosla calidad? Un Los requisitos del software son la base de las medi-
dijo una vez: «Cualquier programa hace algo das de la calidad. La falta de concordancia con los
lo que puede pasar es que no sea lo que nosotros requisitos es una falta de calidad.
queremos que haga». 2. Los estándares especificados definen un conjunto de
se define criterios de desarrollo que guían la forma en que se
del software))? aplica la ingeniería del software. Si no se siguen esos
criterios, casi siempre habrá falta de calidad.
En los libros se han propuesto muchas definiciones 3. Existe un conjunto de requisitos implícitos que a
,&calidad del software. Por lo que a nosotros respecta, menudo no se mencionan (por ejemplo: el deseo por
calidad software se define como: facilitar el uso y un buen mantenimiento). Si el soft-
Concordancia con los requisitos funcionales y de rendi- ware se ajusta a sus requisitos explícitos pero falla
miento establecidos,con los estándaresde desa- en alcanzar los requisitos implícitos, la calidad del
rrollo explícitamente documentados, y con las características software queda en entredicho.
implícitas que se espera de todo software desarrollado
Problemas de fondo
No hay duda de que la anterior definición puede ser La historia de la garantía de calidad en el desarrollo de
o ampliada.De hecho, no tendría fin una dis- software es paralela a la historia de la calidad en la crea-
cusión sobre una definición formal de calidad del soft- ción de hardware. Durante los primeros años de la
Consulte para un estudio más completo del GTC y su
en un contexto de software,y para un estudio sobre el uso
en el mundo del software.
135
DEL SOFTWARE. UN ENFO QUE PRACTICO
mática (los años cincuenta y sesenta), la calidad era res- des de SQA que se enfrentan con la planificación de garan-
ponsabilidad únicamente del programador. Durante los tía de calidad, supervisión, mantenimiento de registros,
años setenta se introdujeron estándares de garantía de análisis e informes. Éstas son las actividades que realizan
calidad para el software en los contratos militares para (o facilitan) un grupo independiente de SQA:
desarrollo de software y se han extendido rápidamente Establecimiento de un plan de SQA para un proyec-
a los desarrollos de software en el mundo comercial to. El plan se desarrolla durante la planificación del pro-
Ampliando la definición presentada anterior- yecto y es revisado por todas las partes interesadas. Las
mente, la garantía de calidad del software (SQA) es un actividades de garantía de calidad realizadas por el equi-
de acciones planificado y sistemático» po de ingeniería del software y el grupo SQA son gober-
que se requiere para asegurar la calidad del software. El nadas por el plan. El plan identifica:
ámbito de la responsabilidad de la garantía de calidad se
evaluaciones a realizar,
puede caracterizarmejor parafraseandoun popular anun-
cio de coches: «La calidad es la 1 tarea.» La implica- auditorías y revisiones a realizar,
ción para el software es que muchos de los que estándares que se pueden aplicar al proyecto,
constituyen una organización tienen responsabilidad de procedimientos para información y seguimiento de
garantía de calidad del software -ingenierosde soft- errores,
ware, jefes de proyectos, clientes, vendedores, y aque-
documentos producidos por el grupo SQA,
llas personas que trabajan dentro de un grupo de SQA-.
realimentación de información proporcionada al
equipo de proyecto del software.
es el papel
Referencia de un grupo de
Se puede encontrar un profundo y amplios
recursospara gestión de calidad en
www.management.gov
Participación en el desarrollo de la descripción del
proceso de software del proyecto. El equipo de ingenie-
ría del software selecciona un proceso para el trabajo
El grupo de SQA sirve como representación del clien- que se va a realizar. El grupo de SQA revisa la descrip-
te en casa. Es decir, la gente que lleva a cabo'la SQA ción del proceso para ajustarse a la política de la empre-
debe mirar el software desde el punto de vista del clien- sa, los estándares internos del software, los estándares
te. de forma adecuada el software los facto- impuestos externamente (por ejemplo: ya
res de calidad apuntados en el Capítulo 19? ha otras partes del plan de proyecto del software.
realizado el desarrollo del software de acuerdocon están- Revisión de las actividades de ingeniería del soft-
preestablecidos? desempeñado apropiada- ware para su ajuste al proceso de software
mente sus papeles las disciplinas técnicas como parte definido. El grupo de documenta y sigue
de la actividad de SQA? El grupo de SQA intenta res- la pista de las desviaciones desde el proceso y verifica
ponder a estas y otras preguntas para asegurar que se que se han hecho las correcciones.
mantiene la calidad del software. Auditoría de los productos de software designados
para verificar el ajuste con los definidos como parte del
Actividades de SQA proceso del software. El grupo de SQA revisa los pro-
ductos seleccionados; identifica, documenta y sigue la
La garantía de calidad del software comprende una gran
pista de las desviaciones; verifica que se han hecho las
variedad de tareas, asociadas con dos constitutivos dife-
correcciones, e informa periódicamente de los resulta-
rentes ingenieros de software que realizan traba-
dos de su trabajo al gestor del proyecto.
jo técnico y un grupo de SQAque tiene la responsabilidad
Asegurar que las desviaciones del trabajo y los pro-
de la Planificación de garantía de calidad, supervisión,
ductos del software se documentan y se manejan de
mantenimiento de registros, análisis e informes-.
acuerdo con un procedimiento establecido. Las des-
Los ingenieros de software afrontan la calidad (y rea-
viaciones se pueden encontrar en el plan del proyecto,
lizan garantía de calidad) aplicando métodos técnicos
en la descripción del proceso, en los estándares aplica-
sólidos y medidas, realizando revisiones técnicas for-
bles o en los productos técnicos.
males y llevando a cabo pruebas de software bien pla-
Registrar lo que no se ajuste a los requisitos e infor-
nificadas. Solamente las revisiones son tratadas en este mar a sus superiores. Los elementos que no se ajustan
capítulo. Los temas de tecnología se estudian en las Par-
a los requisitos están bajo seguimiento hasta que se
tes Tercera a Quinta de este libro.
resuelven.
Las reglas del grupo de SQA tratan de ayudar al equi-
po de ingeniería del software en la consecución de un pro- Además de estas actividades, el grupo de SQA coor-
ducto final de alta calidad. El Instituto de Ingeniería del dina el control y la gestión de cambios (Capítulo 9) y ayu-
Software recomienda un conjunto de activida- da a recopilar y a analizar las métricas del software.
136
DE CALIDAD DEL SOFTWARE
revisiones del software son un «filtro» para el pro- defecto como una del producto». La defini-
ceso de ingeniería del software. Esto es, las revisiones ción de en el contexto del hardware se puede
Se aplican en varios momentos del desarrollo del soft- encontrar en IEEE Standard 610. 12-1990:
ware y sirven para detectar errores y defectos que (a) Un defecto en un dispositivo de o componen-
así ser eliminados. Las revisiones del software sirven te: por ejemplo, un corto circuito o un cable roto.
para «purificar» las actividades de ingeniería del soft- (b) Un paso incorrecto, proceso o definición de datos en
ware que suceden como resultado del análisis, el diseño un programa de computadora. Nota: Esta definición
la codificación. Freedman y Weinberg argu- se usa principalmente por la disciplina de tolerancia
mentan de la siguiente forma la necesidad de revisiones: de fallos. En su uso los términos «error» y
«fallo» se utilizan para expresar este significado. Con-
El trabajo técnico necesita ser revisado por la misma razón sulte también: fallo sensible al dato; fallo sensible al
que los lápices necesitan gomas: errar es humano. La segunda programa; fallos equivalentes; enmascaramiento de
razón por la que necesitamos revisiones técnicas es que, aun- fallos; fallo intermitente.
que la gente es buena descubriendo algunos de sus propios
res,algunasclases de errores se le pasan por alto más fácilmente
Dentro del contexto del proceso del software, los tér-
al que los origina que a otras personas. El proceso de revisión minos defecto y fallo son sinónimos. Ambos implican
es, por tanto, la respuesta a la plegaria de Robert Bums: un problema de calidad que es descubierto después de
gran regalo sería poder vemos comonos ven los demás! entregar el software a los usuarios finales (o a otra acti-
Una revisión revisión-es una forma de apro-
vidad del proceso del software). En los primeros capí-
vechar la diversidad de un grupo de personas para: tulos, se utilizó término error para representar un
problema de calidad que es descubierto por los inge-
1. señalar la necesidad de mejoras en el producto de una
sola persona o un equipo; nieros del software (u otros) antes de entregar el soft-
2. confirmarlas partes de un producto en las que no es nece- ware al usuario final (o a otra actividad del proceso del
saria o no es deseable una mejora; y software).
3. conseguir un trabajo técnico de una calidad más unifor-
me, o al menos más que la que puede ser con-
seguida sin revisiones, con el fin de hacer más manejable
el trabajo técnico. Pasode desarrollo
Defectos Detección
Errores
Al que filtros de las tienden o de pasos
retardar el de las actividadesde ingeniería del
Muy pocos y el flujo es Muchos y el
flujo se reducirá o un goteo. Utilice métricos poro
qué revisiones son efectivas y cuáles no.
los que no efectivos fuero del flujo. FIGURA 8.2. Modelo de amplificación de defectos.
el proceso del software. Sin embargo, se ha demostra- corrige el 50 por de los errores que le llegan, sin intro-
do que las revisiones técnicas formales son efectivas en ducir ningún error nuevo (una suposición muy optimis-
un 75 por 100 a la hora de detectar errores ta). Antes de que comience la prueba, se han amplificado
Con la detección y la eliminación de un gran porcenta- diez errores del diseño preliminar a 94 errores. Al termi-
je de errores, el proceso de revisión reduce nar quedan 12 errores latentes. La Figura 8.4 considera
cialmente el coste de los pasos siguientes en las fases las mismas condiciones, pero llevando a cabo revisiones
de desarrollo y de mantenimiento. del diseño y de la codificación dentro de cada paso del
Para ilustrar el impacto sobre el coste de la detec- desarrollo. En este caso los 10 errores del diseño preli-
ción anticipada de errores, consideremos una serie de minar se amplifican a 24 antes del comienzo de la prue-
costes relativos que se basan en datos de coste realmente ba. Sólo quedan 3 erroreslatentes. Recordandolos costes
recogidos en grandes proyectos de software relativos asociados con el descubrimientoy la corrección
Supongamos que un error descubierto durante el dise- de errores, se puede establecer el coste total (con y sin
ño cuesta corregirlo 1 ,O unidad monetaria. De acuerdo revisiones para nuestro ejemplo hipotético). El número
con este coste, el mismo error descubierto justo antes de errores encontrado durante cada paso mostrado en las
de que comienza la prueba costará 6,5 unidades; duran- figuras 8.3 y 8.4 se multiplica por el coste de eliminar un
te la prueba 15 unidades; y después de la entrega, entre error (1.5 unidades de coste del diseño, 6.5 unidades de
60 y unidades. coste antes de las pruebas, 15 unidades de coste durante
las pruebas, y 67 unidades de coste después de la entre-
ga. Utilizando estos datos, se puede ver que el coste total
8.4.2. Amplificacióny eliminación de defectos para el desarrollo y el mantenimiento cuando se realizan
Se puede usar un modelo de amplificación de defectos revisiones es de 783 unidades. Cuando no hay revisio-
para ilustrar la generación y detección de erro- nes, el coste total es de 2.177 unidades tres veces
res durante los pasos de diseño preliminar, diseño deta- más
llado y codificación del proceso de ingeniería del
software. En la Figura 8.2 se ilustra esquemáticamente
el modelo. Cada cuadro representa un paso en el desa-
rrollo del software. Durante cada paso se pueden gene-
rar errores que se pasan inadvertidos. La revisión puede
fallar en descubrir nuevos errores y errores de pasos
anteriores, produciendo un mayor número de errores
que pasan inadvertidos. En algunos casos, los errores
que pasan inadvertidos desde pasos anteriores se ampli-
fican (factor de amplificación, x) con el trabajo actual.
Las subdivisiones de los cuadros representan cada una Para llevar a cabo revisiones, el equipo de desarrollo
de estas características y el porcentaje de eficiencia para debe dedicar tiempo y esfuerzo, y la organización de
la detección de errores, una función de la profundidad desarrollo debe gastar dinero. Sin embargo, los resulta-
de la revisión. dos del ejemplo anterior no dejan duda de que hemos
La Figura 8.3 un ejemplohipotético de la ampli- encontrado el síndrome de ahora o pague, des-
ficación de defectos en un proceso de desarrollo de soft- pués, mucho Las revisiones técnicas formales (para
ware en el que no se llevan a cabo revisiones. Como el diseño y otras actividades técnicas) producen un bene-
muestra la figura, se asume que cada paso descubre y ficio en coste demostrable. Deben llevarse a cabo.
Una revisión técnica formal (RTF) es una actividad de desarrollado de forma uniforme y (5) hacer que los
garantía de calidad del software llevada a cabo por los proyectos sean más manejables. Además, la RTF sir-
ingenieros del software (y otros). Los objetivos de la ve como campo de entrenamiento, permitiendo que los
RTF son: (1) descubrir errores en la función, la lógi- ingenieros más jóvenes puedan observar los diferen-
ca o la implementación de cualquier representación tes enfoques de análisis, diseño e implementación del
del software; (2) verificar que el software bajo revi- software. La RTF también sirve para promover la segu-
sión alcanza sus requisitos; ( 3 ) garantizar que el soft- ridad y la continuidad, ya que varias personas se fami-
ware ha sido representado de acuerdo con ciertos liarizarán con partes del software que, de otro modo,
estándares predefinidos; (4)conseguir un software no hubieran visto nunca.
Aunque estos datos son de hace más de 20 años, pueden ser apli-
cados en un contexto moderno.
138
8 DE C A LI D A D DEL S O F T W A R E
C VE
la RTF se centra en una porción relativamente pequeña
de un producto de
Errores latentes
8.4. Amplificación de defectos, llevando a cabo La reunión de revisión es llevada a cabo por el jefe
revisiones. de revisión, los revisores y el productor. Uno de los revi-
sores toma el papel de registrador, o sea, de persona que
registra (de forma escrita) todos los sucesos importan-
tes que se produzcan durante la revisión. La RTF
8.5.1. La reunión de revisión comienza con una explicación de la agenda y una bre-
Independientemente del formato que se elija para la ve introducción a cargo del productor. Entonces el pro-
RTF, cualquierreunión de revisión debe acogerse a las ductor procede con el «recorrido de del
siguientes restricciones: producto, explicando el material, mientras que los revi-
deben convocarse para la revisión (normalmente) sores exponen sus pegas basándose en su preparación
entre tres y cinco personas; previa. Cuando se descubren problemas o errores váli-
se debe preparar por adelantado, pero sin que requiera dos, el registrador los va anotando.
más de dos horas de trabajo a cada persona; y
la duración de la reunión de revisión debe ser menor
de dos horas.
-%-
Puede descargarse el NASA SATC
Cuando realizamos
de
son nuestros
objetivos?
139
DEL SOFTWARE. UN ENFOQUE PRÁCTICO
Al final de la revisión, todos los participantes en la 1 Revisar el producto, no al productor. Una RTF
RTF deben decidir si (1) aceptan el producto sin poste- lucra gente y egos. Conducida adecuadamente, la
riores modificaciones; (2) rechazan el producto debido RTF debe llevar a todos los participantes a un senti-
a los serios errores encontrados (una vez corregidos, ha miento agradable de estar cumpliendo su deber. Si
de hacerse otra revisión) o (3 )aceptan el producto pro- se lleva a cabo incorrectamente, la RTF puede tomar
visionalmente (se han encontrado errores menores que el aura de inquisición. Se deben señalar los errores
deben ser corregidos, pero sin necesidad de otra poste- educadamente; el tono de la reunión debe ser dis-
rior revisión). Una vez tomada la decisión, todos los tendido y constructivo; no debe intentarse dificultar
participantes terminan firmando, indicando así que han o batallar. El jefe de revisión debe moderar la reu-
participado en la revisión y que están de acuerdo con nión para garantizar que se mantiene un tono y una
las conclusiones del equipo de revisión. actitud adecuados y debe inmediatamente cortar cual-
quier revisión que haya escapado al control.
8.5.2. Registro e informe de la revisión
Durante la RTF,uno de los revisores (el registrador)
procede a registrar todas las pegas que vayan surgien-
do. Al final de la reunión de revisión, resume todas las bruscamente los forma de ser
pegas y genera una lista de sucesos de revisión. Ade- educada es hacer una pregunto que permita al productor
más, prepara un informe sumario de la revisión técnica descubrir su propia errar.
formal. El informe sumario de revisión responde a tres
preguntas: 2. Fijar una agenda y mantenerla. Un mal de las reu-
niones de todo tipo es la deriva. La RTF debe seguir
fue revisado? un plan de trabajo concreto. El jefe de revisión es el
2. lo revisó? que carga con la responsabilidad de mantener el plan
3. se descubrió y cuáles son las conclusiones? de la reunión y no debe tener miedo de cortar a la
El informe sumario de revisión es una página sim- gente cuando se empiece a divagar.
ple (con posibles suplementos). Se adjunta al registro 3. Limitar el debate y las impugnaciones. Cuando un
histórico del proyecto y puede ser enviada al jefe del revisor ponga de manifiesto una pega, podrá no haber
proyecto y a otras partes interesadas. unanimidad sobre su impacto. En lugar de perder el
tiempo debatiendo la cuestión, debe registrarse el
hecho y dejar que la cuestión se lleve a cabo en otro
momento.
4. Enunciar áreas de problemas, pero no intentar resol-
ver cualquier problema que se ponga de manifiesto.
Una revisión no es una sesión de resolución de pro-
blemas. A menudo, la resolución de los problemas
Informe lista de Sucesos de Revisión Técnica
puede ser encargada al productor por sí solo o con
La lista de sucesos de revisión sirve para dos pro- la ayuda de otra persona. La resolución de los pro-
pósitos: (1) identificar áreas problemáticas dentro del blemas debe ser pospuesta para después de la reu-
producto y (2) servir como lista de comprobación de nión de revisión.
puntos de acción que guíe al productor para hacer las
correcciones. Normalmente se adjunta una lista de con-
clusiones al informe sumario.
Es importante establecer un procedimiento de segui- más bonitas
miento que asegure que los puntos de la lista de suce- puede sinceramente
sos son corregidos adecuadamente. A menos que se haga a sí mismo.
así, es posible que las pegas surgidas «caigan en saco
Un enfoque consiste en asignar la responsabili-
dad del seguimiento al revisor jefe 5. Tomar notas escritas. A veces es buena idea que el
registrador tome las notas en una pizarra, de forma
8.5.3. Directrices para la revisión que las declaraciones o la asignación de prioridades
Se deben establecer de antemano directrices para con- pueda ser comprobada por el resto de los revisores,
ducir las revisiones técnicas formales, distribuyéndolas a medida que se va registrando la información.
después entre los revisores, para ser consensuadas y, 6 . Limitar el número de participantes e insistir en lapre-
finalmente, seguidas. A menudo, una revisión paración anticipada. Dos personas son mejores que
trolada puede ser peor que no hacer ningún tipo de revi- una, pero catorce no son necesariamente mejores que
sión. A continuación se muestra un conjunto mínimo de cuatro. Se ha de mantener el número de participantes
directrices para las revisiones técnicas formales: en el mínimo necesario. Además. todos los miembros
140
8 D E C A LI D A D DEL S O F T W A R E
del equipo de revisión deben prepararse por anticipado. 9. Llevar a cabo un buen entrenamiento de todos los
El jefe de revisión debe solicitar comentarios (que revisores. Por razones de efectividad, todos los par-
muestren que cada revisor ha revisado el material). ticipantes en la revisión deben recibir algún entre-
7. Desarrollar una lista de comprobación para cada namiento formal. El entrenamiento se debe basar en
producto que haya de ser revisado, Una lista de com- los aspectos relacionados con el proceso, así como
probaciones ayuda al jefe de revisión a estructurar las consideraciones de psicología humana que ata-
la reunión de RTF y ayuda a cada revisor a centrarse ñen a la revisión. Freedman y Weinberg
en los asuntos importantes. Se deben desarrollar lis- estiman en un mes la curva de aprendizaje para cada
tas de comprobaciones para los documentos de aná- veinte personas que vayan a participar de forma efec-
lisis, de diseño, de codificación e incluso de prueba. tiva en las revisiones.
10.Repasar las revisiones anteriores. Las sesiones de
información pueden ser beneficiosas para descubrir
problemas en el propio proceso de revisión. El pri-
mer producto que se haya revisado puede estable-
cer las propias directivas de revisión.
Como existen muchas variables (por ejemplo, núme-
listas de comprobación de ro de participantes, tipo de productos de trabajo, tiem-
8. Disponer recursos y una agenda para las RTF. Para po y duración, enfoque de revisión específico) que tienen
que las revisiones sean efectivas, se deben planificar impacto en una revisión satisfactoria, una organización
como una tarea del proceso de ingeniería del soft- de software debería determinar qué método funciona
ware. Además se debe trazar un plan de actuación mejor en un contexto local. y sus colegas
para las modificaciones inevitables que aparecen proporcionan una guía excelente para este tipo
como resultado de una RTF. de experimentos.
Interfaz hombre-máquina ambigua o inconsistente En cada etapa del proceso de ingeniería del softwa-
(IHM). re se calcula un índice de fase, :
Varios (VAR).
= +
El indice de errores (IE) se obtiene mediante el cálcu-
lo del defecto acumulativo de cada asignando más
Referencia peso a los errores encontrados más tarde en el proceso de
l a Asociación China de Calidad del Software presenta ingeniería del software, que a los que se encuentranen las
uno de los sitios más completos para calidad en primeras etapas:
www.cosq.org
IE = (i x IF,) PS
Para aplicar la SQA estadística se construye la Tabla = (IF, + + + ... PS
8.1. La tabla indica que EIE, MCC y ERD son las cau-
sas vitales que contabilizan el 53 por 100 de todos los
errores. Sin embargo, debe observarse que si sólo se Total Grave Moderado Leve
consideraran errores serios, se seleccionarían las siguien-
tes causas vitales: EIE, ERD, TLP y Una vez deter- Error No. % No. No. No.
minadas las causas vitales, la organización de desarrollo
de software puede comenzar la acción correctiva. Por IEE 205 22% 34 27% 68 18% 103 24%
ejemplo, para corregir la MCC, el equipo de desarrollo
del software podría implementar técnicas que facilita- MCC 156 17% 12 9% 68 18% 76 17%
ran la especificación de la aplicación (Capítulo 11)para
mejorar la calidad de la especificación y la comunica- DDE 48 5% 1 1% 24 6% 23 5%
ción con el cliente. Para mejorar el ERD, el equipo de
desarrollo del software podría adquirir herramientas IEP 25 3% O 15 4% 10 2%
CASE para la modelización de datos y realizar revisio-
nes del diseño de datos más rigurosas. ERD 130 14% 26 20% 68 18% 36 8%
Es importante destacar que la acción correctiva se
IMI 58 6% 9 7% 18 5% 31 7%
centra principalmente en las causas vitales. Cuando éstas
son corregidas, nuevas candidatas saltan al principio de ELD 45 5% 14 11% 12 3% 19 4%
la lista.
Se han mostrado las técnicas de garantía de calidad PIE 95 10% 12 9% 35 9% 48 11%
del software estadísticas para proporcionar una mejora
sustancial en la calidad En algunos casos, las 36 4% 2 2% 20 5% 14 3%
organizaciones de software han conseguido una reduc-
ción anual del 50 por 100 de los errores después de la TLP 60 6% 15 12% 19 5% 26 6%
aplicación de estas técnicas.
Junto con la recopilación de información sobre defec- IHM 28 3% 3 2% 17 4% 8 2%
tos, los equipos de desarrollo del software pueden cal-
cular un indice de errores (IE) para cada etapa principal VAR 56 6% O 15 4% 41 9%
del proceso de ingeniería del software Des-
pués del análisis, el diseño, la codificación, la prueba y Totales 942 100% 128 100% 379 100% 435 100%
la entrega, se recopilan los siguientes datos:
TABLA 8.1. Recolección de datos para la SQA estadística
= número total de defectos descubiertos durante la eta-
pa i-ésima del proceso de ingeniería del software;
= número de defectos graves; Se puede utilizar el índice de errores junto con la
=número de defectos moderados; información recogida en la Tabla 8.1, para desarrollar
= número de defectos leves;
una indicación global de la mejora en la calidad del soft-
ware.
PS =tamaño del producto (LDC, sentencias de diseño, La aplicación de la SQA estadística y el principio de
páginas de documentación) en la etapa i-ésima. Pareto se pueden resumir en una sola frase: j Utilizar el
,W,,, , = factores de peso de errores graves, mode- tiempo para centrarse en cosas que realmente intere-
rados, y leves, en donde los valores recomendados san, pero primero asegurarse que se entiende qué es lo
son = 10, = 3, = 1. Los factores de peso que realmente interesa!
de cada fase deberían agrandarse a medida que el Un estudio exhaustivo de la SQA estadística se sale
desarrollo evoluciona. Esto favorece a la organi- del alcance de este libro. Los lectores interesados debe-
zación que encuentra los errores al principio. rían consultar y
142
G A R A N TIA DE C A L I D A D DEL S O F TW A R E
144
G A R A N TIA DE C A LID A D DEL S O F T W A R E
Si William Shakespeare hubiera escrito sobre las con- Para llevar a cabo la entrada adecuada del menú para cada apli-
diciones del ingeniero de software moderno, podría per- cación, un «localizador» (una persona que habla en el idioma
local y con la terminología de ese lugar) traduce los menús de
fectamente haber escrito: es humano, encontrar acuerda con el idioma en uso. El problema es asegurar que (1)
el error rápida y correctamente es divino.» En los años cada entrada de menú (pueden existir cientos de ellas) se
sesenta, un ingeniero industrial japonés, Shigeo cue a los estándares apropiados y que no existan conflictos,
go que trabajaba en Toyota, desarrolló una téc- independientemente del lenguaje que se está utilizando.
nica de garantía de calidad que conducía a la prevención El uso del poka-yoke para la prueba de diversos
a la temprana corrección de errores en el proceso de menús de aplicación desarrollados en diferentes len-
fabricación. Denominado poku-yoke (prueba de guajes, tal y como se ha descrito anteriormente, se dis-
‘res),el concepto de Shingo hacía uso de dispositivos cute en un artículo de Harry Robinson
poku-yoke -mecanismosque conducen (1) a la pre- Nosotros primero decidimos dividir el problema de prue-
vención de un problema de calidad potencial antes de bas de menús en partes que puedan ser resueltas más fácil-
que éste ocurra, o (2) a la rápida detección de proble- mente. Nuestro avance para la resolución del problema
mas de calidad si se han introducido ya-. Nosotros fue el comprender que existían dos aspectos separados para los
encontramos dispositivos poka-yoke en nuestra vida catálogos de mensaje. Había por una parte el aspecto de con-
cotidiana (incluso si nosotros no tenemos conciencia de tenidos: las traducciones de texto muy simples tales como
biar meramente por la palabra Puesto que
este concepto). Por ejemplo, el interruptor de arranque el equipo que realizaba las comprobaciones no hablaba de for-
de un coche no trabaja si está metida una marcha en la ma fluida el lenguaje en el que se pretendía trabajar, teníamos
transmisión automática (un dispositivo de prevención); que dejar estos aspectos a traductores expertos del lenguaje.
un pitido de aviso del coche sonará si los cinturones de El segundo aspecto de los catálogos del mensaje era
seguridadno están bien sujetos (un dispositivo de detec- la estructura, las reglas sintácticas que debía obedecer
ción defallos). un catálogo de objetivos adecuadamente construido. A
Un dispositivo de poku-yoke presenta un conjunto diferencia del contenido, en este caso sí que era posible
de características comunes: para el equipo de comprobación el verificar los aspec-
Es simple y barato -si un dispositivo es demasiado tos estructurales de los catálogos.
complicado y caro, no será efectivo en cuanto a Como un ejemplo de lo que significa estructura, con-
costo-; sideremos las etiquetas y los mnemónicos de un menú
Es parte del proceso - e s t o es, el dispositivo de aplicación. Un menú está constituido por etiquetas
yoke está integrado en una actividad de ingeniería-; y sus mnemónicos (abreviaturas)asociados. Cada menú,
Está localizado cerca de la tarea del proceso donde independientemente de su contenido o su localización,
están ocurriendo los errores -por consiguiente pro- debe obedecer las siguientes reglas listadas en la Guía
porciona una realimentación rápida en cuanto a la de Estilo Motif
corrección de errores se refiere-. Cada nemotécnico debe estar contenido en su eti-
queta asociada;
Cada nemotécnico debe ser único dentro del menú;
Cada nemotécnico debe ser un carácter Único;
Referencia Cada nemotécnico debe estar en ASCII.
Se puede obtener una colección completa de recursos
de en Estas reglas son invariantes a través de las localiza-
ciones, y pueden ser utilizadas para verificar que un menú
está correctamente construidoen la localización objetivo.
Existen varias posibilidades para realizar la prueba
de errores de los mnemónicos del menú:
Aunque el poka-yoke fue originariamente desarro- Dispositivo de prevención. Nosotros podemos escri-
liado para su uso en «control de calidad cero» bir un programa para generar los mnemónicos
para el hardware fabricado, puede ser adaptado para su ticamente, dada una lista de etiquetas en cada menú.
Úso en ingeniería del software. Para ilustrar esto, con- Este enfoque evitaría errores, pero el problema es que
sideremos el problema siguiente escoger un mnemónico adecuado es difícil, y el esfuer-
Una compañía de productos de software vende el software zo requerido para escribir el programa no estaría justi-
de aplicaciónen el mercado internacional. Los menús ficado con el beneficio obtenido.
gablesy todos los códigos asociados proporcionados con cada
aplicacióndeben reflejar el lenguaje que se emplea en el lugar
Dispositivo de prevención. Podríamos escribir un
donde se usa. Por ejemplo, el elemento del del lenguaje programa que prevendría al localizador de elegir unos
inglés tiene el mnemónico «C»asociadocon ello. mnemónicos que no satisfagan el criterio. Este enfoque
Cuando la aplicación se vende en un país de habla francesa, el también errores, pero el beneficio obtenido sería
mismo elemento del menú es con el mnemónico mínimo: los mnemónicos incorrectos son lo
145
DEL SOFTWARE. UN ENFOQUE
mente fáciles de detectar y corregir después de que apa- estructurales de los menús . Un pequeño
rezcan. yoke leería la tabla, recuperaría los mnemónicos y eti-
Dispositivo de detección. Nosotros podríamos pro- quetas a partir del catálogo de mensajes, y compararía
porcionar un programa para verificar que las etiquetas posteriormente las cadenas recuperadas con el criterio
del menú escogidas y los mnemónicos satisfacen los establecido descrito anteriormente.
criterios anteriores. Nuestros localizadores podrían eje- Los poka-yoke eran pequeños (aproximada-
cutar los programas sobre los catálogos de mensaje tra- mente líneas), fáciles de escribir (algunos de los escri-
ducidos antes de enviarnos a nosotros dichos catálogos. tos estaban en cuanto al tiempo por debajo de una hora)
Este enfoque proporcionaría una realimentación rápida y fáciles de ejecutar. Nosotros ejecutábamos nuestros
sobre los errores y será, probablemente, un paso a dar sobre aplicacionesen la ubicación
en el futuro. en inglés por defecto y en 11ubicaciones extranjeras. Cada
Dispositivo de detección. Nosotros podríamos escri- ubicación contenía 100 menús para un total de 1.200
bir un programa que verificase las etiquetas y menús. Los encontraron 311erro-
del menú, y ejecutara el programa sobre catálogos de res en menús y mnemónicos. Pocos de los problemas que
mensajes después de que nos los hayan devuelto los nosotros descubrimos eran como muy llamativos,pero en
lizadores. Este enfoque es el camino que actualmente total habrían supuesto una gran preocupación en la prue-
estamos tomando. No es tan eficiente como alguno de los ba y ejecución de nuestras aplicacioneslocalizadas.
iétodos anteriormente mencionados y puede requerir El ejemplo descrito antes representa un dispositivo
que se establezca una comunicación fluida hacia delan- poka-yoke que ha sido integrado en la actividad de prue-
te y hacia atrás con los localizadores, pero los errores bas de ingeniería del software. La técnica poka-yoke
detectados son incluso fáciles de corregir en este punto. puede aplicarse a los niveles de diseño, codificación y
Varios textos pequeños de poka-yoke se utilizaron pruebas y proporciona un filtro efectivo de garantía de
como dispositivos poka-yoke para validar los aspectos calidad.
Esta sección contiene varios objetivos, siendo el prin- 9004-2. Quality Management and Quality
cipal describir el cada vez más importante estándar inter- tem Elements 2-. Este documento propor-
nacional 9001. El estándar, que ha sido adoptado ciona las directrices para el servicio de facilidades
por más de 130 países para su uso, se está convirtiendo del software como soporte de usuarios.
en el medio principal con el que los clientes pueden juz- Los requisitos se agrupan bajo 20 títulos:
gar la competencia de un desarrollador de software. Uno
de los problemas con el estándar ISO 9001 está en que Responsabilidad de la gestión.
no es específico de la industria: está expresado en tér- Inspección, medición y equipo de pruebas.
minos generales, y puede ser interpretado por los Sistema de calidad.
rrolladores de diversos productos como cojinetes de Inspección y estado de pruebas.
bolas (rodamientos), secadores de pelo, automóviles, Revisión de contrato.
equipamientos deportivos y televisiones, así como por Acción correctiva.
desarrolladores de software. Se han realizado muchos Control de diseño.
documentos que relacionan el estándar con la industria Control de producto no aceptado.
del software, pero no entran en una gran cantidad de Control de documento.
detalles. El objetivo de esta sección es describir lo que Tratamiento, almacenamiento, empaquetamiento y
significa el ISO 9001 en términos de elementos de cali- entrega.
dad y técnicas de desarrollo. Compras.
Para la industria del software los estándares rele- Producto proporcionado al comprador.
vantes son: Registros de calidad.
9001. Quality Systems-Modelfor Quality Identificación y posibilidad de seguimiento del producto,
Auditorías internas de calidad.
rance in Design, Development, Production,
Formación
llation and Servicing. Este es un estándar que
Control del proceso
describe el sistema de,calidad utilizado para mante-
ner el desarrollo de un producto que implique diseño. Servicios.
9000-3. Guidelinesfor Application 9001 Inspección y estado de prueba.
Técnicas estadísticas.
to the Development, and Maintainance of
Este es un documento específico que Merece la pena ver un pequeño extracto de la ISO
interpreta el ISO 9001 para el desarrollador de soft- 9001. Este le dará al lector una idea del nivel con el que
ware. la ISO 9001 trata la garantía de calidad y el proceso de
146
G A R A N TIA DE CA LID A D DEL S O F T W A R E
desarrollo. El extracto elegido proviene de la sección ción del párrafo pretendido obviamente por los
1.11: procesos estándar de ingeniería donde equipos tales
4.11. equipo de Inspección, medición y pruebas. como indicadores de calibración y potenciómetros son
habituales-.
El suministradordebe controlar, calibrar y mantenerla ins-
pección, medir y probar el equipo, ya sea el dueño el suminis- Una interpretación del párrafo anterior es que el dis-
trador, prestado o proporcionado por el comprador, para tribuidor debe asegurar que cualquiera de las herramien-
demostrarla conformidaddel producto con los requisitosespe- tas de software utilizadas para las pruebas tiene, por lo
cificados. El equipo debe utilizarse de un modo que asegure menos, la misma calidad que el software a desarrollar, y
que se conoce la incertidumbre de la medición y que es con- que cualquierprueba del equipo produce valores de medi-
sistente con la capacidad de medición requerida.
ción, por ejemplo, los monitores del rendimiento, tienen
Lo primero a destacar es su generalidad; se puede una precisión aceptable cuando se compara con la preci-
aplicar al desarrollador de cualquier producto. Lo sión especificada para el rendimiento en la especificación
segundo a considerar es la dificultad en la interpreta- de los requisitos.
plan de SQA proporciona un mapa para documentos de usuario (por ejemplo: archivos de
la garantía de calidad del software.El plan, desa- ayuda).
rrollado por un grupo de SQA, sirve como plantilla para Además, esta sección define conjunto mínimo de
actividades de SQA instituidas para cada proyecto de productos de trabajo que se pueden aceptar para lograr
software. alta calidad.
Los estándares, prácticas y convenciones muestran
todos los que se aplican durante el
proceso de software (por ejemplo: estándares de docu-
mentos, estándares de codificación y directrices de revi-
sión). Además, se listan todos los proyectos, procesos y
El Plan GCS (en algunos casos) métricas de producto que se van a reco-
ger como parte del de ingeniería del software.
El IEEE ha recomendado un estándar para La sección Revisiones y Auditorías del plan identi-
fica las revisiones y auditorías que se van a llevar a cabo
los planes de SQA. Las secciones iniciales describen el
propósito y el alcance del documento e indican por el equipo de ingeniería del software, el grupo de
actividades del proceso del software cubiertas por SQA y el cliente. Proporciona una visión general del
la garantía de calidad. Se listan todos los documentos enfoque de cada revisión y auditoría.
señalados en el plan de SQA y se destacan todos los La sección Prueba hace referencia al Plan y Procedi-
estándares aplicables. La sección de Gestión del plan miento de Pruebas del (Capítulo 18). También
describe la situación de la SQA dentro de la estructura define requisitos de mantenimiento de registros de prue-
organizativa; las tareas y las actividades de SQA y su bas. La Información sobre problemas y acción
emplazamientoa lo largo del proceso del software; así va define procedimientos para informar, hacer segui-
como los papeles y responsabilidades organizativas rela- miento y resolver errores y defectos, e identifica las res-
tivas a la calidad del producto. ponsabilidades organizativas para estas actividades.
La sección de Documentación describe (por referen- El resto del plan de SQA identifica las herramientas
cia) cada uno de los productos de trabajo producidos como y métodos que soportan actividades y tareas de SQA;
del proceso de software. Entre estos se incluyen: hace referencia a los procedimientos de gestión de con-
figuración del software para controlar el cambio; defi-
documentos del proyecto (por ejemplo: plan del pro- ne un enfoque de gestión de contratos; establece métodos
yecto), para reunir, y mantener todos los registros;
modelos (por ejemplo: jerarquías de clases), identifica la formación que se requiere para cumplir las
documentos técnicos (por ejemplo: especificaciones, necesidades del plan y define métodos para identificar,
planes de prueba), evaluar, supervisar y controlar riesgos.
DEL SOFTWARE. UN ENFOQUE P R A C TI C O
La garantía de calidad del software es una «actividad mostrado extremadamente efectiva en el descubrimiento
de protección» que se aplica a cada paso del proceso de errores.
del software. La SQA comprende procedimientos para Para llevar a cabo adecuadamente una garantía de
la aplicación efectiva de métodos y herramientas, revi- calidad del software, se deben recopilar, evaluar y dis-
siones técnicas formales, técnicas y estrategias de prue- tribuir todos los datos relacionados con el proceso de
ba, dispositivos poku-yoke, procedimientos de control ingeniería del software. La SQA estadística ayuda a
de cambios, procedimientos de garantía de ajuste a los mejorar la calidad del producto y la del proceso de soft-
estándares y mecanismos de medida e información. ware. Los modelos de fiabilidad del software amplían
La SQA es complicada por la compleja naturaleza de las medidas, permitiendo extrapolar los datos recogidos
la calidad del software -un atributo de los programas sobre los defectos, a predicciones de tasas de fallo y de
de computadora que se define como «concordancia con fiabilidad.
los requisitos definidos explícita e implícitamente»-. Resumiendo,recordemos las palabras de Dunn y
Cuando se considera de forma más general, la calidad del man garantía de calidad del software es
software engloba muchos factores de proceso y de pro- la guía de los preceptos de gestión y de las disciplinas
ducto diferentes con sus métricas asociadas. de diseño de la garantía de calidad para el espacio tec-
Las revisiones del software son una de las activida- nológico y la aplicación de la ingeniería del software.))
des más importantes de la SQA. Las revisiones sirven La capacidad para garantizar la calidad es la medida de
como filtros durante todas las actividades de ingeniería madurez de la disciplina de ingeniería. Cuando se sigue
del software, eliminando defectos mientras que no son de forma adecuada esa guía anteriormente menciona-
relativamente costosos de encontrar y corregir. La revi- da, lo que se obtiene es la madurez de la ingeniería del
sión técnica formal es una revisión específica que se ha software.
148
G A R A N TIA DE C A L ID A D DEL S O F TW A R E
8.1. Al principiodel capítulo se señaló que «el control de varia- 8.10.Algunas personas piensan que una RTF debe evaluar el
está en el centro del control de calidad». Como todos los estilo de programación al igual que la corrección. una bue-
que se crean son diferentes unos de otros, na idea? qué?
son las variaciones que se buscan y cómo se controlan? 8.1 Revise la Tabla 8.1 y seleccione las cuatro causas vita-
8.2. posible evaluar la calidad del software si el clien- les de errores serios y moderados. Sugiera acciones correc-
te. no se pone de acuerdo sobre lo que se supone que ha de toras basándose en la información presentada en otros
hacer? capítulos.
8.3. La calidad y la fiabilidad son conceptos relacionados, 8.12. Una organización utiliza un proceso de ingeniería del
pero son fundamentalmente diferentes en varias formas. Dis- software de cinco pasos en el cual los errores se encuentran
cútalas. de acuerdo a la siguiente distribución de porcentajes:
8.4. un programa ser correcto y aún así no ser fiable?
Expliquepor qué. Paso Porcentaje de errores encontrados
un programa ser correcto aun así no exhibir una 1 20
buena calidad? Explique por qué. 2 15
8.6. qué a menudo existen fricciones entre un grupo de 3 15 %
ingeniería del software y un grupo independiente de garantía
de calidad del software? esto provechoso? 4 40
8.7. Si se le da la responsabilidad de mejorar la calidad del 5 10
software en su organización. es lo primero que haría?
sería lo siguiente? Mediante la información de la Tabla 8.1 y la distribución de
porcentajes anterior, calcule el índice de defectos global para
8.8. Además de los errores, otras características claras dicha organización. Suponga que PS = 100.000.
del software que impliquen calidad? son y cómo se
pueden medir directamente? 8.13. Investigue en los libros sobre fiabilidad del software y
escriba un artículo que explique un modelo de fiabilidad del
8.9. Una revisión técnica formal sólo es efectiva si todo el
software. Asegúrese de incluir un ejemplo.
mundo se la prepara por adelantado. descubriría que
de los participantes no se la ha preparado? haría si 8.14.El concepto de TMEF del software sigue abierto a deba-
fuera el jefe de revisión? te. pensar en algunas razones para ello?
149
DEL SOFTWARE. UN ENFOQUE
8.15. Considere dos sistemas de seguridad crítica que estén 8.17. Sugiera unos cuantos dispositivos poka-yoke que
controlados por una computadora. al menos tres peligros dan ser usados para detectar prevenir errores que son
para cada uno de ellos que se puedan relacionar directamen- encontrados habitualmente antes de «enviar» un mensaje
te con los fallos del software. por e-mail.
8.16. Utilizando recursos web y de impresión, desarrolle un 8.18. Adquiera una copia de ISO 9001 e ISO 9000-3. Prepa-
tutorial de 20 minutos sobrepoka-yoke y expóngaselo a su cla- re una presentación que trate tres requisitos ISO 9001 y cómo
se. se aplican en el contexto del software.
Los libros de Moriguchi Excellence: A Total Qua- Sanders, Software Quality: A Framework for
lity Guide, Productivity Press, Horch Sofiware Developrnent, Addison-Wesley, 1994.
(Practica1Guide Software Quality Management, Artech Sumner, Software Quality Assurance,
Publishing, 1996) son unas excelentes presentaciones a nivel 1993.
de gestión sobre los beneficios de los programas formales de Wallmuller, E., Software Quality Assurance: A Practical
garantía de calidad para el software de computadora. Los Approach, Prentice-Hall, 1995.
libros de Deming y Crosby aunque no
se centran en el software, ambos libros son de lectura obli- Weinberg, G. M., Quality Software Managenzent, 4
gada para los gestores senior con responsabilidades en el desa- Dorset House, 1992, 1993, 1994 y 1996.
rrollo de software. Gluckman y Roome (Every day Heroes Wilson, Software Rx: Secrets Engineering Qua-
the Quulity Movement, Dorset House, 1993) humaniza los Sofiware, Prentice-Hall, 1997.
aspectos de calidad contando la historia de los participantes Una antología editada por Wheeler, Bryczynsky y Mee-
en el proceso de calidad. Kan and Models Soft- son Inspection: lndustry Best Practice, IEEE Com-
ware Quality Engineering, Addison-Wesley, 1995) presenta puter Society Press, 1996) presenta información útil sobre
una visión cuantitativade la calidad del software. Manns esta importante actividad de GCS. Friedman y Voas (Software
ware Quality Assurance, Macmillan, 1996) es una excelente Assessment, Wiley, 1995) estudian los soportes y métodos
introducción a la garantía de calidad del software. prácticos para asegurar la fiabilidad y la seguridad de pro-
Tingley (Compering 9000, Malcom Baldridge, and gramas de computadora.
the CMMfor Software, Prentice-Hall, 1996) proporciona Musa (Software Reliability Engineering: More
una guía útil para las organizacionesque se esfuerzan en mejo- Software, Faster Development and Testing,
rar sus procesos de gestión de calidad. Oskarsson ISO 1998) ha escrito una guía práctica para aplicar a las técnicas
9000 Approach to Building Quality Software, Prentice-Hall, de fiabilidad del software. Han sido editadas antologías de
1995) estudia cómo se aplica el ISO al software. artículos importantes sobre la fiabilidad del software por Kapur
Durante los últimos años se han escrito docenas de libros y otros (Contrihutions to Hardware and Software
sobre aspectos de garantía de calidad. La lista siguiente es World Scientific Publishing Co., Gritzails
una pequeña muestra de fuentes útiles: (Reliability,Quality and of Systems,
Clapp, et al., Quality Control,Error Analy- Kluwer Academic Publishing, y Lyu (Handbook
and Testing, Noyes Data Park Software Reliahility Engineering, 1996).Sto-
Dunn, H., y Ullman, Computer Softwa- rey (Safety-Critica1 Computer Systems, Addison-Wesley,
re, 1994. 1996) y continúan siendo los estudios más
Fenton, N., Whitty y Y. Iizuka, Quality Assu- completos sobre la seguridad del software publicados hasta
rance and Measurement: Worldwide Industrial Applications, la fecha.
Chapman Hall, 1994. Además de la técnicapoka-yoke para el software
Ferdinand,A. E., Systems, Software, and Quality Enginee- de prueba de errores es estudiada por Shingo (The Pro-
ring,Van Nostrand Reinhold, 1993. duction Management Improving Product Quality by
Preventing Defects, Productivity Press, 1989) y por Shimbun
Ginac, Oriented Software Quality Assu- Improving Product Quulity Preventing Defects,
rance, Prentice-Hall, 1998. Productivity Press, 1989).
Ince, ISO 9001 and Software Quality Assurance, En Intemet están disponibles una gran variedad de fuen-
1994. tes de información sobre la garantía de calidad del software,
Ince, An lntroduction to Software Quality Assurance fiabilidad del software y otros temas relacionados. Se puede
1994. encontrar una lista actualizada con referencias a sitios (pági-
Jarvis, A., y Crandall, to Quality: nas) web que son relevantes para la calidad del software en
Guide and Toolkit, Prentice-Hall, 1997. http://www.pressman5.com.
150