The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

Ingeniería del Software - 5ta Edición - Roger S. Pressman

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by Marvin's Underground Latino USA, 2018-09-02 15:06:47

Ingeniería del Software - 5ta Edición - Roger S. Pressman

Ingeniería del Software - 5ta Edición - Roger S. Pressman

hwttwp:w//l.iberlesroialu-ucniiovnerasritiaor.ina.ebtlogspot.com
.

www.elsolucionario.net

www.elsolucionario.net
.

www.elsolucionario.net

www.elsolucionario.net
.

www.elsolucionario.net

www.elsolucionario.net
.

www.elsolucionario.net

www.elsolucionario.net
.

www.elsolucionario.net

httpw://wlibwre.reials-uonluivceirosintaarriaio.b.lnoegst pot.com
.

www.elsolucionario.net

www.elsolucionario.net
.

www.elsolucionario.net

www.elsolucionario.net
.

www.elsolucionario.net

www.elsolucionario.net
.

www.elsolucionario.net

www.elsolucionario.net
.

www.elsolucionario.net

hwttwp:w//l.iberlesroialu-ucniiovnerasritiaor.ina.ebtlogspot.com
.

www.elsolucionario.net

www.elsolucionario.net
.

www.elsolucionario.net

www.elsolucionario.net
.

www.elsolucionario.net

www.elsolucionario.net
.

www.elsolucionario.net

www.elsolucionario.net
.

www.elsolucionario.net

httpw://wlibwre.reials-uonluivceirosintaarriaio.b.lnoegst pot.com
.

www.elsolucionario.net

www.elsolucionario.net
.

www.elsolucionario.net

www.elsolucionario.net
.

www.elsolucionario.net

www.elsolucionario.net
.

www.elsolucionario.net

www.elsolucionario.net
.

CAPÍTULO

E L enfoque de ingeniería del software descrito en este libro se dirige hacia un solo obje- www.elsolucionario.net
tivo: producir software de alta calidad. Pero a muchos lectores les inquietará la pregunta:
«¿Qué es la calidad del software?»
Philip Crosby [CR079], 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. ¡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) 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 multies-
calada; ( 5 )el control de la documentación del software y de los cambios realizados; (6) un pro-
cedimientoque asegure un ajuste a los estándares de desarrollodel 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 correc-
tas en el momento justo y de la forma correcta».

definir una estrategia de SQA para el

plan de garantíade calidad del soft-

software debe identi

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 la jerga infor-
mática. A veces se suelen traducir estas siglas también por ([Aseguramientode la Calidad del Software)).

131

htwtpw://wlib.reelrsiao-uluncivieornsaitariroia..nbelotgspot.com

INGENIERfA DEL SOFTWARE. UN ENFOQUE PRACTICO .

Se dice que dos copos de nieve no son iguales. Cierta- ¿Cómo se aplica esto al software? ¿Cómo puede www.elsolucionario.net
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-
ca un porcentaje conocido del software de una entre-
Este fenómeno, variación entre muestras, se aplica ga a otra. No sólo queremos reducir el número de
a todos los productos del hombre así como a la creación defectos que se extraen para ese campo, sino también
natural. Por ejemplo, si dos tarjetas de circuito «idénti- nos gustaría asegurarnos de que los errores ocultos
cas» se examinan muy de cerca, podremos observar que también se reducen de una entrego a otra. (Es proba-
las líneas de cobre sobre las tarjetas difieren ligeramente ble que nuestros clientes se molesten si la tercera
en la geometría, colocación y grosor. Además, la loca- entrega de un producto tiene diez veces más defectos
lización y el diámetro de los orificios de las tarjetas tam- que la anterior.) Nos gustaría reducir las diferencias
bién varían. 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 control de variación es el centro del control de 8.1.1. Calidad
calidad. Un fabricante quiere reducir la variación entre
los productos que se fabrican, incluso cuando se reali- El American Heritage Dictionary,define la calidad como
za algo relativamente sencillo como la duplicación de «una característica o atributo de algo». Como un atri-
disquetes. Seguramente, esto puede no ser un problema buto de un elemento, la calidad se refiere a las caracte-
-la duplicaciónde disquetes es una operación de fabn- rísticas mensurables - c o s a s que se pueden comparar
cación trivial y podemos garantizar que se crean dupli- con estándares conocidos como longitud, color, propie-
cados exactos de software-. dades eléctricas, maleabilidad, etc.-. Sin embargo, el
software en su gran extensión, como entidad intelectual,
¿Podemos?. Necesitamos asegurar que las pistas se es más difícil de caracterizar que los objetos físicos.
sitúen dentro de una tolerancia específica para que la
gran mayoría de las disqueteras puedan leer los dis- No obstante, sí existen las medidas de característi-
quetes.Además, necesitamos asegurar que el flujo mag- cas de un programa. Entre estas propiedades se inclu-
nético para distinguir un cero de un uno sea suficiente yen complejidad ciclomática, cohesión, número de
para que los detecten las cabezas de lectura/escritura. puntos de función, líneas de código y muchas otras estu-
Las máquinas de duplicación de discos aceptan o recha- diadas en los Capítulos 19y 24. Cuando se examina un
zan la tolerancia. Por consiguiente, incluso un proceso elemento según sus características mensurables, se pue-
«simple», como la duplicación, puede encontrarse con den encontrar dos tipos de calidad: calidad del diseño
problemas debidos a la variación entre muestras. y calidad de concordancia.

Controlar la variación es la 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 la variación en el proceso que aplicamos, mento. El grado de materiales, tolerancias y las especi-
ficaciones del rendimiento contribuyen a la calidad del
recursos que consumimosy los atributos de calidad diseño. Cuando se utilizan materiales de alto grado y se

del productofinal.

' Esta sección, escrita por Michael Ctovcky, se ha adaptado de <(Fun-

damentals of ICO 9000)).un libro de trabajo desarrollado para Essen-
tia1 Software Engineering, un video curriculum desarrollado por R.S.
Pressman&Asociados, Inc. Reimpresión autorizada.

132

www.elsolucionario.net CAPfTULO 8 GARANTfA DE CALIDAD DEL SOFTWARE
.

especificantolerancias más estrictas y niveles más altos cificaciones mensurables en las que se puedan com- www.elsolucionario.net
de rendimiento, la calidad de diseño de un producto parar los resultados de cada proceso. El bucle de rea-
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- 8.1.3. Garantía de calidad
miento de las especificacionesde diseño durante su rea-
lización. Una vez más, cuanto mayor sea el grado de La garantia de calidad consiste en la auditoría y las fun-
cumplimento,más alto será el nivel de calidad de con- ciones de información de la gestión. El objetivo de la
cordancia. garantía de calidad es proporcionar la gestión para infor-
mar de los datos necesarios sobre la calidad del pro-
En el desarrollo del software, la calidad de diseño ducto, por lo que se va adquiriendo una visión más
comprende los requisitos, especificaciones y el diseño profunda y segura de que la calidad del producto está
del sistema. La calidad de concordancia es un aspecto cumpliendo sus objetivos. Por supuesto, si los datos pro-
centrado principalmente en la implementación. Si la porcionados mediante la garantía de calidad identifican
implementación sigue el diseño, y el sistema resultan- problemas, es responsabilidad de la gestión afrontar los
te cumple los objetivos de requisitos y de rendimiento, problemas y aplicar los recursos necesarios para resol-
la calidad de concordancia es alta. ver aspectos de calidad.

Pero, ¿son la calidad del diseño y la calidad de 3Referencia Web
concordancia los Únicos aspectos que deben consi-
derar los ingenieros de software? Robert Glass Se puede encaniror una gran variedad de recursos de
[GLA98] establece para ello una relacion más «intui- calidad del software en
tiva»: www.qualit ytree.com/links/links.htm

satisfacción del usuario =productosatisfactonc+buena cali- 8.1.4. Coste de calidad
dad+ entrega dentro de presu-
puesto y del tiempo establecidos El coste de calidad incluye todos los costes acarreados
en la búsqueda de la calidad o en las actividades rela-
En la última línea, Glass añrmaque la calidad es impor- cionadas en la obtención de la calidad. Se realizan estu-
tante,pero si el usuario no queda satisfecho, ninguna otra dios sobre el coste de calidad para proporcionar una línea
cosarealmenteimporta. DeMarco [DEM99] refuerza este base del coste actual de calidad, para identificaroportu-
punto de vista cuando afirma: «La calidad del producto nidades de reducir este coste, y para proporcionar una
es una función de cuánto cambia el mundo para mejor.» base normalizada de comparación. La base de normali-
zación siempre tiene un precio. Una vez que se han nor-
Esta visión de la calidad establece que si el producto de malizado los costes de calidad sobre un precio base,
tenemos los datos necesarios para evaluar el lugar en
software proporciona un beneficio sustanciala los usua- donde hay oportunidades de mejorar nuestros procesos.
nos finales, pueden estar dispuestos para tolerar proble- Es más, podemos evaluar cómo afectan los cambios en
mas ocasionales del rendimientoo de fiabilidad. términos de dinero.

8.1.2. Control de calidad Los costes de calidad se pueden dividir en costes
asociados con la prevención, la evaluación y los fallos.
El control de cambios puede equipararse al control de Entre los costes de prevención se incluyen:
calidad. Pero, ¿cómo se logra el control de calidad? El
control de calidad es una serie de inspecciones, revi- planificación de la calidad,
siones y pruebas utilizados a lo largo del proceso del
software para asegurar que cada producto cumple con revisiones técnicas formales,
los requisitos que le han sido asignados. El control de
calidad incluye un bucle de realimentación (feedback) equipo de pruebas,
del proceso que creó el producto. La combinación de
medición y realimentación permite afinar el proceso formación. ,
cuando los productos de trabajo creados fallan al cum-
plir sus especificaciones.Este enfoque ve el control de
calidad como parte del proceso de fabricación.

¿Qué es el control de calidad ¿Cuáles son
los componentes
del software?
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 «la primera vez a través de» 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

INGENIERfA DEL SOFTWARE. U N ENFOQUE PRACTICO www.elsolucionario.net
.

inspección en el proceso y entre procesos, Se han dedicado 7.053 horas inspeccionando 200.000 1í-
calibrado y mantenimiento del equipo, neas de código con el resultado de 3.1 12 errores potenciales
pruebas. descubiertos. Dando por sentado un coste de programador de
40 dólares por hora, el coste de eliminar 3.112 defectos ha sido
No tengo miedo de incurrir en costes significativos de 282.120 dólares, o aproximadamente unos 9I dólares por
de prevención. Esté segura de que su inversión defecto.
le proporcionaráun beneficio excelente.
Compare estos números con el coste de eliminación de
Los costes de fallos son los costes que desapare- defectos una vez que el producto se ha enviado al cliente.
cerían si no surgieran defectos antes del envío de un Suponga que no ha habido inspecciones, pero que los progra-
producto a los clientes. Estos costes se pueden sub- madores han sido muy cuidadosos y solamente se ha escapa-
dividir en costes de fallos internos y costes de fallos do un defecto por 1.000 líneas de código [significativamente
externos. Los internos se producen cuando se detec- mejor que la media en industrial] en el producto enviado. Eso
ta un error en el producto antes de su envío. Entre significm'a que se tendrían que corregir todavía 200 defectos
estos se incluyen: en la casa del cliente o después de la entrega. A un coste esti-
mado de 25.000 dólarespor reparaciónde campo, el coste sena
retrabajo (revisión), de 5 millones de dólares, o aproximadamente 18 veces más
reparación, caro que el coste total del esfuerzo de prevención de defectos.
análisis de las modalidades de fallos.
r'Ooo 40-1O00 www.elsolucionario.net
Los costes defallos externos son los que se asocian
a los defectos encontrados una vez enviado el produc- veces
to al cliente. A continuación se incluyen algunos ejem-
plos de costes de fallos externos: 15-40 30-70
veces veces
resolución de quejas,
devolución y sustitución de productos, Requisitos Diseño Código Prueba Prueba En fase de
soporte de línea de ayuda, de de explotación
trabajo de garantía.
Como es de esperar, los costes relativos para encon- desarrollo sistema
trar y reparar un defecto aumentan dramáticamente a FIGURA 8.1. Coste relativo de corregir un error.
medida que se cambia de prevención a detección y des-
de el fallo interno al externo. La Figura 8.1, basada en Es verdad que IBM produce software utilizado por
datos recopilados por Boehm [BOESl],ilustra este fenó- cientos de miles de clientes y que sus costes por repa-
meno. ración en casa del cliente o después de la entrega pue-
den ser más altos que los de organizaciones de software
las pruebas son necesarias, pero también que construyen sistemas personalizados. Esto, de nin-
es una forma castoso de enconirar errores. Gaste guna manera, niega los resultados señalados anterior-
el tiempo en encontrar errores o1comienzo del proceso mente. Aunque la organización media de software tiene
costes de reparación después de la entrega que son el
y podrá reducir significativomentelos costes de pruebas 25 por 100de los de IBM (¡la mayoría no tienen ni idea
de cuales son sus costes!), se están imponiendo ahorros
y depuración. en el coste asociados con actividades de garantía y con-
trol de calidad.
Kaplan y sus colegas [KAP95] refuerzan las esta-
dísticas de costes anterioresinformandocon datos anec-
dóticos basados en un trabajo realizado en las
instalaciones de desarrollo de IBM en Rochester:

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 [DEM86], 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

www.elsolucionario.net CAPfTULO 8 GARANTfA DE CALIDAD DEL SOFTWARE
.

japoneses han desarrollado un enfoque sistemático para Mientras que los dos primeros pasos se centran en www.elsolucionario.net
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 «los 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-
totaide calidad (GTC)x2A. unque 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 cualquierprograma de GTC.
Finalmente, un paso llamado miryokuteki hinshitsu
a$% 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
CLAVE que busca la oportunidad en áreas relacionadas que se
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, miwo-
El enfoque GTC se centra en la mejora continua kuteki hinshitsu se podría ver como un intento de
detectar productos nuevos y beneficiosos, o aplicacio-
del proteso. nes que sean una extensión de un sistema ya existente
basado en computadora.
El primer paso se llama kuizen y se refiere a un sis-
tema de mejora continua del proceso. El objetivo de kui- Se puede encontrar una gran variedad de recursos
zen es desarrollar un proceso (en este caso, proceso del
software) que sea visible, repetible y mensurable. paro la mejora continua del proceso y GTC en
deming.eng.clemsom.edu/
El segundo paso, invocado sólo una vez que se ha
alcanzadokuizen,se llama aturimae hinshitsu. Este paso Para la mayoría de las compañías, kuizen debería
examina lo intangible que afecta al proceso y trabaja ser de preocupación inmediata. Hasta que se haya logra-
para optimizar su impacto en el proceso. Por ejemplo, do un proceso de software avanzado (Capítulo 2), no
el proceso de software se puede ver afectado por la alta hay muchos argumentos para seguir con los pasos
rotación de personal que ya en sí mismo se ve afectado siguientes.
por reorganizaciones dentro de una compañía. Puede
serque una estructuraorganizativa estable haga mucho
para mejorar la calidad del software. Aturimue hinshit-
su llevaría a la gestión a sugerir cambios en la forma en
que ocurre la reorganización.

Hasta el desarrollador de software más agobiado esta- ware. Para los propósitos de este libro, la anterior defini-
d d e acuerdo con que el software de alta calidad es una ción sirvepara hacer hincapié en tres puntos importantes:
meta importante. Pero, ¿cómo definimosla calidad? Un
hhmista dijo una vez: «Cualquier programa hace algo 1. Los requisitos del software son la base de las medi-
bien, lo que puede pasar es que no sea lo que nosotros das de la calidad. La falta de concordancia con los
queremos que haga». requisitos es una falta de calidad.

¿Cómo se define ((didad 2. Los estándares especificados definen un conjunto de
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
,&calidad del software. Por lo que a nosotros respecta, 3. Existe un conjunto de requisitos implícitos que a
menudo no se mencionan (por ejemplo: el deseo por
Ib calidad del software se define como: facilitar el uso y un buen mantenimiento). Si el soft-
ware se ajusta a sus requisitos explícitos pero falla
Concordancia con los requisitos funcionales y de rendi- en alcanzar los requisitos implícitos, la calidad del
mientoexpiícitamenteestablecidos,con los estándaresde desa- software queda en entredicho.
rrollo explícitamente documentados, y con las características
implícitas que se espera de todo software desarrollado profe- 8.3.1. Problemas de fondo
sionalmente.
La historia de la garantía de calidad en el desarrollo de
No hay duda de que la anterior definición puede ser software es paralela a la historia de la calidad en la crea-
moáificadao ampliada.De hecho, no tendría fin una dis- ción de hardware. Durante los primeros años de la infor-
cusión sobre una definición formal de calidad del soft-

Consulte [ART92] para un estudio más completo del GTC y su uso

en un contexto de software,y [KAP95] para un estudio sobre el uso

decriterio dalbndge Award. en el mundo del software.

135

www.elsolucionario.net

INGENIERfA DEL SOFTWARE. UN ENFOQUE PRACTICO .

mática (los años cincuenta y sesenta), la calidad era res- des de SQAque se enfrentancon la planificación de garan- www.elsolucionario.net
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 actividadesque 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
a los desarrollos de software en el mundo comercial Establecimiento de unplan de SQA para un proyec-
[IEE94]. Ampliando la definición presentada anterior- to. El plan se desarrolla durante la planificación del pro-
mente, la garantía de calidad del software (SQA) es un yecto y es revisado por todas las partes interesadas.Las
«patrón de acciones planificadoy sistemático»[SCH97] actividades de garantía de calidad realizadas por el equi-
que se requiere para asegurar la calidad del software. El po de ingeniería del softwarey el grupo SQAson gober-
ámbito de la responsabilidad de la garantía de calidad se nadas por el plan. El plan identifica:
puede caracterizarmejor parafraseandoun popular anun-
evaluaciones a realizar,
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
constituyen una organización tienen responsabilidad de estándares que se pueden aplicar al proyecto,
garantía de calidad del software -ingenierosde soft-
ware, jefes de proyectos, clientes, vendedores, y aque- procedimientos para información y seguimiento de
llas personas que trabajan dentro de un grupo de SQA-. errores,

3Referencia Web documentos producidos por el grupo SQA,

Se puede encontrar un tutorial profundo y amplios realimentación de información proporcionada al
recursos para la gestión de calidad en equipo de proyecto del software.
www.management.gov
¿Cuál es el papel
El grupo de SQAsirve como representación del clien-
te en casa. Es decir, la gente que lleva a cabo'la SQA de un grupo de SU?
debe mirar el software desde el punto de vista del clien-
te. ¿Satisface de forma adecuada el software los facto- Participación en el desarrollo de la descripción del
res de calidad apuntados en el Capítulo 19? ¿Se ha proceso de software del proyecto. El equipo de ingenie-
realizado el desarrollodel softwarede acuerdocon están- ría del software selecciona un proceso para el trabajo
dares preestablecidos? ¿Han desempeñado apropiada- que se va a realizar. El grupo de SQA revisa la descrip-
mente sus papeles las disciplinas técnicas como parte ción del proceso para ajustarse a la política de la empre-
de la actividad de SQA? El grupo de SQA intenta res- sa, los estándares internos del software, los estándares
ponder a estas y otras preguntas para asegurar que se impuestos externamente (por ejemplo: 1SO 9001), y a
mantiene la calidad del software. otras partes del plan de proyecto del software.

8.3.2. Actividades de SQA Revisión de las actividades de ingeniería del soft-
ware para verificar su ajuste al proceso de software
La garantía de calidad del softwarecomprende una gran definido. El grupo de SQAidentifica,documentay sigue
variedad de tareas, asociadas con dos constitutivosdife- la pista de las desviaciones desde el proceso y verifica
rentes -los ingenieros de software que realizan traba- que se han hecho las correcciones.
jo técnico y un grupo de SQAque tiene la responsabilidad
de la Planificación de garantía de calidad, supervisión, Auditoría de los productos de software designados
mantenimiento de registros, análisis e informes-. para verificar el ajuste con los definidos comoparte del
proceso del software. El grupo de SQA revisa los pro-
Los ingenieros de software afrontan la calidad (y rea- ductos seleccionados; identifica, documenta y sigue la
lizan garantía de calidad) aplicando métodos técnicos pista de las desviaciones; verifica que se han hecho las
sólidos y medidas, realizando revisiones técnicas for- correcciones, e informa periódicamente de los resulta-
males y llevando a cabo pruebas de software bien pla- dos de su trabajo al gestor del proyecto.
nificadas. Solamente las revisiones son tratadas en este
capítulo. Los temas de tecnología se estudianen las Par- Asegurar que las desviaciones del trabajo y los pro-
tes Tercera a Quinta de este libro. ductos del software se documentan y se manejan de
acuerdo con un procedimiento establecido. Las des-
Las reglas del grupo de SQA tratan de ayudar al equi- viaciones se pueden encontrar en el plan del proyecto,
po de ingeniería del software en la consecución de un pro- en la descripción del proceso, en los estándares aplica-
ducto final de alta calidad. El Instituto de Ingeniería del bles o en los productos técnicos.
Software [PAU93] recomienda un conjunto de activida-
Registrar lo que no se ajuste a los requisitos e infor-
mar a sus superiores. Los elementos que no se ajustan
a los requisitos están bajo seguimiento hasta que se
resuelven.

Además de estas actividades, el grupo de SQA coor-
dina el control y la gestiónde cambios (Capítulo 9) y ayu-
da a recopilar y a analizar las métricas del software.

136

hwttpw:/w/li.berelsrioal-ucnivoenrsairtaiori.an.beltogspot.com
. CAPfTULO 8 GARANTfA DE CALIDAD DEL SOFTWARE

Las revisiones del software son un «filtro» para el pro- defecto como una «anomalía del producto». La defini- www.elsolucionario.net
ceso de ingeniería del software. Esto es, las revisiones ción de «fallo» en el contexto del hardware se puede
encontrar en IEEE Standard 610. 12-1990:
Se aplican en varios momentos del desarrollo del soft-
ware y sirven para detectar errores y defectos que pue- (a) Un defecto en un dispositivo de hardware o componen-
ilanasí 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
se usa principalmente por la disciplina de tolerancia
p la codificación. Freedman y Weinberg [FRE90] argu- de fallos. En su uso normal, los términos «error» y
«fallo» se utilizan para expresar este significado. Con-
mentan de la siguiente forma la necesidad de revisiones: sulte también: fallo sensible al dato; fallo sensible al
programa; fallos equivalentes; enmascaramiento de
El trabajo técnico necesita ser revisado por la misma razón fallos; fallo intermitente.
que los lápices necesitan gomas: errar es humano. La segunda
razón por la que necesitamos revisiones técnicas es que, aun- Dentro del contexto del proceso del software, los tér-
que la gente es buena descubriendo algunos de sus propios erre minos defecto y fallo son sinónimos. Ambos implican
res,algunasclases de errores se le pasan por alto más fácilmente un problema de calidad que es descubierto después de
al que los origina que a otras personas. El proceso de revisión entregar el software a los usuarios finales (o a otra acti-
es, por tanto, la respuesta a la plegaria de Robert Bums: vidad del proceso del software). En los primeros capí-
tulos, se utilizó el término error para representar un
¡Qué gran regalo seríapoder vemos como nos ven los demás! problema de calidad que es descubierto por los inge-
nieros del software (u otros) antes de entregar el soft-
Una revisión 4 u a l q u i e r revisión-es una forma de apro- ware al usuario final (o a otra actividad del proceso del
vechar la diversidad de un grupo de personas para: software).

1. señalar la necesidad de mejoras en el producto de una Paso de desarrollo
sola persona o un equipo;

2. confirmarlas partes de un productoen las que no es nece-
saria o no es deseable una mejora; y

3. conseguir un trabajo técnico de una calidad más unifor-
me, o al menos más predecible,que la que puede ser con-
seguida sin revisiones,con el fin de hacer más manejable
el trabajo técnico.

Defectos Detección

Al iguol que los filtros de oguo, las RTF's tienden o Errores
retardar el «flujo)) de las actividadesde ingeniería del de pasos
sohore. Muy pocos y el flujo es ((sucio)).Muchos y el anrer,ores
flujo se reducirá o un goteo. Utilice métricosporo
determinor qué revisiones son efectivas y cuáles no. FIGURA 8.2. Modelo de amplificación de defectos.
Soque los que no seon efectivos fuero del flujo.

Existen muchos tipos diferentes de revisiones que se El objetivo primario de las revisiones técnicas for-
pueden llevar adelante como parte de la ingeniería del males es encontrar errores durante el proceso, de forma
software. Cada una tiene su lugar. Una reunión infor- que se conviertan en defectos después de la entrega del
mal alrededor de la máquina de café es una forma de software. El beneficio obvio de estas revisiones técni-
revisión, si se discuten problemas técnicos. Una pre- cas formales es el descubrimiento de errores al princi-
sentación formal de un diseño de software a una audien- pio para que no se propaguen al paso siguiente del
cia de clientes, ejecutivos y personal técnico es una proceso del software.
forma de revisión. Sin embargo, en este libro nos cen-
traremos en la revisión técnicaformal (RTF)-a veces si&
denominada inspecció-. Una revisión técnica formal
esel filtro más efectivo desde el punto de vista de garan- CLAVE
tia de calidad. Llevada a cabo por ingenieros del soft-
ware (y otros), la RTF es para ellos un medio efectivo El objetivoprincipal de una RTF es encontrar errores
para mejorar la calidad del software. antes de pasar a otra actividad de ingeniería
del software o de entregar al cliente.
8.4.1. Impacto de los defectos del software sobre
el coste Una serie de estudios (TRW, Nippon Electric y Mitre
Corp., entre otros) indican que las actividades del dise-
El IEEE Standard Dictionary of Electrical and Elec- ño introducen entre el 50 al 65 por ciento de todos los
tronics Terms (IEEE Standard 100-1992) define un errores (y en último lugar, todos los defectos) durante

137

www.elsolucionario.net

INGENIERfA DEL SOFTWARE. UN ENFOQUE PRÁCTICO .

el proceso del software. Sin embargo, se ha demostra- corrigeel 50 por 100de los errores que le llegan, sin intro- www.elsolucionario.net
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 [JON86]. 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 substan- 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
desarrollo. En este caso los 10 errores del diseño preli-
Para ilustrar el impacto sobre el coste de la detec- minar se amplifican a 24 antes del comienzo de la prue-
ción anticipada de errores, consideremos una serie de ba. Sólo quedan 3 erroreslatentes. Recordandolos costes
costes relativos que se basan en datos de coste realmente relativos asociados con el descubrimientoy la corrección
recogidos en grandes proyectos de software [IBMS113. de errores, se puede establecer el coste total (con y sin
Supongamos que un error descubierto durante el dise- revisiones para nuestro ejemplo hipotético). El número
ño cuesta corregirlo 1,O unidad monetaria. De acuerdo de errores encontrado durante cada paso mostrado en las
con este coste, el mismo error descubierto justo antes figuras 8.3 y 8.4 se multiplica por el coste de eliminarun
de que comienza la prueba costará 6,5 unidades; duran- error (1.5 unidades de coste del diseño, 6.5 unidades de
te la prueba 15unidades; y después de la entrega, entre coste antes de las pruebas, 15 unidades de coste durante
60 y 100unidades. las pruebas, y 67 unidades de coste después de la entre-
ga. Utilizandoestos datos, se puede ver que el coste total
8.4.2. Amplificacióny eliminación de defectos para el desarrollo y el mantenimientocuando se realizan
revisiones es de 783 unidades. Cuando no hay revisio-
Se puede usar un modelo de amplificación de defectos nes, el coste total es de 2.177 unidades - c a s i tres veces
[IBMSl] para ilustrar la generación y detección de erro- más car-.
res durante los pasos de diseño preliminar, diseño deta-
llado y codificación del proceso de ingeniería del Para llevar a cabo revisiones, el equipo de desarrollo
software. En la Figura 8.2 se ilustra esquemáticamente debe dedicar tiempo y esfuerzo, y la organización de
el modelo. Cada cuadro representa un paso en el desa- desarrollo debe gastar dinero. Sin embargo, los resulta-
rrollo del software. Durante cada paso se pueden gene- dos del ejemplo anterior no dejan duda de que hemos
rar errores que se pasan inadvertidos. La revisión puede encontrado el síndrome de «pague ahora o pague, des-
fallar en descubrir nuevos errores y errores de pasos pués, mucho más». Las revisiones técnicas formales (para
anteriores, produciendo un mayor número de errores el diseño y otras actividadestécnicas) producen un bene-
que pasan inadvertidos. En algunos casos, los errores ficio en coste demostrable. Deben llevarse a cabo.
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
de estas característicasy el porcentaje de eficienciapara
la detección de errores, una función de la profundidad
de la revisión.

La Figura 8.3 dustra un ejemplohipotético de la ampli-
ficación de defectos en un proceso de desarrollo de soft-
ware en el que no se llevan a cabo revisiones. Como
muestra la figura, se asume que cada paso descubre y

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
ingenieros del software (y otros). Los objetivos de la proyectos sean más manejables. Además, la RTF sir-

RTF son: (1) descubrir errores en la función, la lógi- ve como campo de entrenamiento, permitiendo que los
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-
sión alcanza sus requisitos; ( 3 ) garantizar que el soft- software. La RTF también sirve para promover la segu-
ware ha sido representado de acuerdo con ciertos
estándares predefinidos; (4)conseguir un software ridad y la continuidad, ya que varias personas se fami-
liarizarán con partes del software que, de otro modo,
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

www.elsolucionario.net
.

CAPfTULO 8 GARANTfA DE CALIDAD DEL SOFTWARE

La RTF es realmente una clase de revisión que inclu- Con las anteriores limitaciones, debe resultar obvio
ye recorridos, inspecciones, revisiones cíclicas y otro que cada RTF se centra en una parte específica (y
pequeño grupo de evaluaciones técnicas del software. pequeña) del software total. Por ejemplo, en lugar de
Cada RTF se lleva a cabo mediante una reunión y sólo intentar revisar un diseño completo, se hacen ins-
tendrá éxito si es bien planificada, controlada y atendi- pecciones para cada módulo (componente) o peque-
da. En las siguientes secciones se presentan directrices ño grupo de módulos. Al limitar el centro de atención
similares a las de las inspecciones [FRE90,GIL931como de la RTF, la probabilidad de descubrir errores es
representativaspara las revisiones técnicas formales. mayor.

Diseño preliminar Diseño detallado Codificación1 El centro de atención de la RTF es un producto de
Prueba de unidad trabajo (por ejemplo, una porción de una especifica-
Y ción de requisitos, un diseño detallado del módulo,
un listado del código fuente de un módulo). El indi-
oi'rueba de integración Para la integrakci?on viduo que ha desarrollado el producto -el produc-
Prueba de validación tor-informa al jefe del proyecto de que el producto
Prueba del sistema está terminado y que se requiere una revisión. El jefe
del proyecto contacta con un jefe de revisión, que eva-
L lúa la disponibilidad del producto, genera copias del www.elsolucionario.net
material del producto y las distribuye a dos o tres revi-
Errores latentes sores para que se preparen por adelantado. Cada revi-
sor estará entre una y dos horas revisando el producto,
FIGURA 8.3. Amplificación de defectos, sin revisiones. tomando notas y también familiarizándose con el tra-
bajo. De forma concurrente, también el jefe de revi-
iiseño detallado sión revisa el producto y establece una agenda para
la reunión de revisión que, normalmente, queda con-
Codiftrarionl vocada para el día siguiente.

24 C VE
9
Para la integracion la RTF se centra en una porción relativamente pequeña
Prueba de v
de un producto de trabaio.
Prueba del sistema
La reunión de revisión es llevada a cabo por el jefe
L de revisión, los revisores y el productor. Uno de los revi-
Errores latentes sores toma el papel de registrador, o sea, de persona que
registra (de forma escrita) todos los sucesos importan-
flGURA 8.4. Amplificación de defectos, llevando a cabo tes que se produzcan durante la revisión. La RTF
revisiones. comienza con una explicación de la agenda y una bre-
ve introducción a cargo del productor. Entonces el pro-
8.5.1. La reunión de revisión ductor procede con el «recorrido de inspección>>del
producto, explicando el material, mientras que los revi-
Independientemente del formato que se elija para la sores exponen sus pegas basándose en su preparación
RTF, cualquier reunión de revisión debe acogerse a las previa. Cuando se descubren problemas o errores váli-
siguientes restricciones: dos, el registrador los va anotando.
a deben convocarse para la revisión (normalmente)
-%' -Referencia Web/
entre tres y cinco personas;
Puede descargarse el NASA SATC
* se debe preparar por adelantado, pero sin que requiera Formo/Inspection Guideboock de
satc.gsfc.nasa.gov/fi/fipage.html
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.

Cuando realizamos RTf's,
¿cuáles son nuestros
objetivos?

139

www.elsolucionario.net

INGENIERfA 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 invo- www.elsolucionario.net

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
de hacerse otra revisión) o ( 3 )aceptan el producto pro- miento agradable de estar cumpliendo su deber. Si
visionalmente (se han encontrado errores menores que
deben ser corregidos, pero sin necesidad de otra poste- se lleva a cabo incorrectamente, la RTF puede tomar
rior revisión). Una vez tomada la decisión, todos los
participantes terminan firmando, indicando así que han el aura de inquisición. Se deben señalar los errores
participado en la revisión y que están de acuerdo con educadamente; el tono de la reunión debe ser dis-
las conclusiones del equipo de revisión. tendido y constructivo; no debe intentarse dificultar
o batallar. El jefe de revisión debe moderar la reu-
8.5.2. Registro e informe de la revisión nión para garantizar que se mantiene un tono y una
Durante la RTF,uno de los revisores (el registrador) actitud adecuados y debe inmediatamente cortar cual-
procede a registrar todas las pegas que vayan surgien- quier revisión que haya escapado al control.
do. Al final de la reunión de revisión, resume todas las
pegas y genera una lista de sucesos de revisión. Ade- No senale bruscamentelos errares. Una forma de ser
más, prepara un informe sumario de la revisión técnica educada es hacer una pregunto que permita al productor
formal. El informe sumario de revisión responde a tres descubrir su propia errar.
preguntas:
2. Fijar una agenda y mantenerla. Un mal de las reu-
1. ¿Qué fue revisado?
2. ¿Quién lo revisó? niones de todo tipo es la deriva. La RTF debe seguir
3. ¿Qué se descubrió y cuáles son las conclusiones?
un plan de trabajo concreto. El jefe de revisión es el
El informe sumario de revisión es una página sim- que carga con la responsabilidad de mantener el plan
ple (con posibles suplementos). Se adjunta al registro de la reunión y no debe tener miedo de cortar a la
histórico del proyecto y puede ser enviada al jefe del gente cuando se empiece a divagar.
proyecto y a otras partes interesadas. 3. Limitar el debate y las impugnaciones. Cuando un
revisor ponga de manifiesto una pega, podrá no haber
Informe Sumaria1y lista de Sucesos de Revisión Técnica unanimidad sobre su impacto. En lugar de perder el
tiempo debatiendo la cuestión, debe registrarse el
La lista de sucesos de revisión sirve para dos pro- hecho y dejar que la cuestión se lleve a cabo en otro
pósitos: (1) identificar áreas problemáticas dentro del momento.
producto y (2) servir como lista de comprobación de 4. Enunciar áreas de problemas, pero no intentar resol-
puntos de acción que guíe al productor para hacer las ver cualquier problema que se ponga de manifiesto.
correcciones. Normalmente se adjunta una lista de con- Una revisión no es una sesión de resolución de pro-
clusiones al informe sumario. blemas. A menudo, la resolución de los problemas
puede ser encargada al productor por sí solo o con
Es importante establecer un procedimiento de segui- la ayuda de otra persona. La resolución de los pro-
miento que asegure que los puntos de la lista de suce- blemas debe ser pospuesta para después de la reu-
sos son corregidos adecuadamente.A menos que se haga nión de revisión.
así, es posible que las pegas surgidas «caigan en saco
roto». Un enfoque consiste en asignar la responsabili- más bonitas
dad del seguimiento al revisor jefe
puede sinceramente
8.5.3. Directrices para la revisión
Se deben establecer de antemano directrices para con- ase a sí mismo.
ducir las revisiones técnicas formales, distribuyéndolas
después entre los revisores, para ser consensuadas y, 5. Tomar notas escritas. A veces es buena idea que el
finalmente, seguidas. A menudo, una revisión incon- registrador tome las notas en una pizarra, de forma
trolada puede ser peor que no hacer ningún tipo de revi- que las declaraciones o la asignación de prioridades
sión. A continuación se muestra un conjunto mínimo de pueda ser comprobada por el resto de los revisores,
directrices para las revisiones técnicas formales: a medida que se va registrando la información.

6. Limitar el númerodeparticipantes e insistiren lapre-
paración anticipada. Dos personas son mejores que
una, pero catorce no son necesariamente mejores que
cuatro. Se ha de mantener el número de participantes
en el mínimo necesario. Además. todos los miembros

140

www.elsolucionario.net CAPfTULO 8 GARANTfA DE CALIDAD DEL SOFTWARE
.

del equipo de revisión deben prepararse por anticipado. 9. Llevar a cabo un buen entrenamiento de todos los www.elsolucionario.net
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 [FRE90]
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.

listas de comprobación de RTF 10.Repasar las revisiones anteriores. Las sesiones de
información pueden ser beneficiosas para descubrir
8. Disponer recursos y una agenda para las RTF. Para problemas en el propio proceso de revisión. El pri-
que las revisiones sean efectivas, se deben planificar mer producto que se haya revisado puede estable-
como una tarea del proceso de ingeniería del soft- cer las propias directivas de revisión.
ware. Además se debe trazar un plan de actuación
para las modificaciones inevitables que aparecen Como existen muchas variables (por ejemplo, núme-
como resultado de una RTF. ro de participantes, tipo de productos de trabajo, tiem-
po y duración, enfoque de revisión específico) que tienen
impacto en una revisión satisfactoria, una organización
de software debería determinar qué método funciona
mejor en un contexto local. Porter y sus colegas
[POR951proporcionan una guía excelente para este tipo
de experimentos.

La garantía de calidad estadística refleja una ten- Para ilustrar el proceso, supongamos que una orga-
dencia, creciente en toda la industria, a establecer la nización de desarrollo de software recoge información
calidad más cuantitativamente. Para el software, la sobre defectos durante un período de un año. Algunos
garantía de calidad estadística implica los siguientes de los defectos se descubren mientras se desarrolla el
pasos: software. Otros se encuentran después de que el soft-
ware se haya distribuido al usuario final.Aunque se des-
1. Se agrupa y se clasifica la información sobre los cubren cientos de errores diferentes, todos se pueden
defectos del software. encontrar en una (o más) de las siguientes causas:

2. Se intenta encontrar la causa subyacente de cada Especificación incompleta o errónea (EIE).
defecto (por ejemplo, no concordancia con la espe-
cificación, error de diseño, incumplimiento de los Mala interpretación de la comunicación del cliente
estándares, pobre comunicación con el cliente). (MCC).

¿Qué pasos se requieren Desviación deliberada de la especificación (DDE).
para desarrollar una SQA
estadística? Incumplimiento de los estándares de programación
(IEP).
3. Mediante el principio de Pareto (el 80 por 100de los Error en la representación de los datos (ERD).
defectos se pueden encontrar en el 20 por 100 de
todas las posibles causas), se aísla el 20 por 100(los Interfaz de módulo inconsistente (IMI).
«POCOS vitales»).
Error en la lógica de diseño (ELD).
4. Una vez que se han identificado los defectos vitales,
Prueba incompleta o errónea (PIE).
se actúa para corregir los problemas que han produ- Documentación imprecisa o incompleta (DII).
cido los defectos.
Error en la traducción del diseño al lenguaje de pro-
Este concepto relativamente sencillo representa un gramación (TLP).
paso importantehacia la creaciónde un proceso de inge-
niería del software adaptativoen el cual se realizan cam-
bios para mejorar aquellos elementos del proceso que
introducen errores.

141

hwttwp:w//l.iberlesroialu-ucniiovenrasritiaor.ian.ebtlogspot.com
.

INGENlERiA DEL SOFTWARE. UN ENFOQUE PRACTICO

Interfaz hombre-máquina ambigua o inconsistente En cada etapa del proceso de ingeniería del softwa-
(IHM).
Varios (VAR). re se calcula un índice de fase, ZFi:

lFi = W, (S,/Ei)+W, (MiiEi)+ W, (Ti/Ei)

3Referencia Web El indice de errores (IE) se obtiene mediante el cálcu- www.elsolucionario.net
lo del defecto acumulativo de cada IFi, asignando más
l a Asociación China de Calidad del Software presenta peso a los errores encontradosmás tarde en el proceso de
ingeniería del software, que a los que se encuentranen las
uno de los sitios web más completos para la calidad en primeras etapas:

www.cosq.org IE = (i x IF,) / PS

Para aplicar la SQA estadística se construye la Tabla = (IF, + 2IF, + 3IF, + ... iIFi)/ 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 Total Grave Moderado Leve
errores. Sin embargo, debe observarse que si sólo se
consideraran errores serios,se seleccionarían las siguien- Error No. % No. % No. % No. %
tes causas vitales: EIE, ERD, TLP y ELD. Una vez deter-
minadas las causas vitales, la organización de desarrollo IEE 205 22% 34 27% 68 18% 103 24%
de software puede comenzar la acción correctiva. Por
ejemplo, para corregir la MCC, el equipo de desarrollo MCC 156 17% 12 9% 68 18% 76 17%
del software podría implementar técnicas que facilita-
ran la especificación de la aplicación (Capítulo 11)para DDE 48 5% 1 1% 24 6% 23 5%
mejorar la calidad de la especificación y la comunica-
ción con el cliente. Para mejorar el ERD, el equipo de IEP 25 3% O 0% 15 4% 10 2%
desarrollo del software podría adquirir herramientas
CASE para la modelización de datos y realizar revisio- ERD 130 14% 26 20% 68 18% 36 8%
nes del diseño de datos más rigurosas.
IMI 58 6% 9 7% 18 5% 31 7%
Es importante destacar que la acción correctiva se
centra principalmente en las causas vitales. Cuando éstas ELD 45 5% 14 11% 12 3% 19 4%
son corregidas, nuevas candidatas saltan al principio de
la lista. PIE 95 10% 12 9% 35 9% 48 11%

Se han mostrado las técnicas de garantía de calidad DI1 36 4% 2 2% 20 5% 14 3%
del software estadísticas para proporcionar una mejora
sustancial en la calidad [ART97]. En algunos casos, las TLP 60 6% 15 12% 19 5% 26 6%
organizaciones de software han conseguido una reduc-
ción anual del 50 por 100 de los errores después de la IHM 28 3% 3 2% 17 4% 8 2%
aplicación de estas técnicas.
VAR 56 6% O 0% 15 4% 41 9%
Junto con la recopilación de información sobre defec-
tos, los equipos de desarrollo del software pueden cal- Totales 942 100% 128 100% 379 100% 435 100%
cular un indice de errores (IE) para cada etapa principal
del proceso de ingeniería del software [IEE94]. Des- TABLA 8.1. Recolección de datos para la SQA estadística
pués del análisis, el diseño, la codificación, la prueba y
la entrega, se recopilan los siguientes datos: Se puede utilizar el índice de errores junto con la
información recogida en la Tabla 8.1, para desarrollar
Ei= número total de defectos descubiertosdurante la eta- una indicaciónglobal de la mejora en la calidad del soft-
ware.
pa i-ésima del proceso de ingeniería del software;
La aplicación de la SQA estadística y el principio de
Si= número de defectos graves; Pareto se pueden resumir en una sola frase: j Utilizar el
tiempo para centrarse en cosas que realmente intere-
M i=número de defectos moderados; san,pero primero asegurarse que se entiende qué es lo
que realmente interesa!
T j= número de defectos leves;
Un estudio exhaustivo de la SQA estadística se sale
PS =tamaño del producto (LDC, sentencias de diseño, del alcance de este libro. Los lectores interesados debe-
páginas de documentación) en la etapa i-ésima. rían consultar [SCH98], [KAP95] y [KAN95].

W , ,W,,,,W, = factores de peso de errores graves, mode-
rados, y leves, en donde los valores recomendados
son W , = 10, W,,,= 3, W, = 1. Los factores de peso

de cada fase deberían agrandarse a medida que el

desarrollo evoluciona. Esto favorece a la organi-
zación que encuentra los errores al principio.

142

www.elsolucionario.net
.

CAPfTULO 8 GARANTIA DE CALIDAD DEL SOFTWARE

No hay duda de que la fiabilidad de un programa de % www.elsolucionario.net
computadora es un elemento importante de su calidad CLAVE
general. Si un programa falla frecuente y repetidamen-
Be en su funcionamiento, no importa si el resto de los Los problemas de la fiabilidad del software se deben casi
factores de calidad son aceptables. siempre a errores en el diseño o en la implementación.

3Referencia Web Todavía se debate sobre la relación entre los con-
ceptos clave de la fiabilidad del hardware y su aplica-
ElCentro de Análisis de Fiabilidad proporciona mucha bilidad al software (por ejemplo, [LIT89], [R0090]).
información útil sobre la fiabilidad, mantenibilidad, Aunque aún falta por establecer un nexo irrefutable,
merece la pena considerar unos cuantos conceptos que
soporte y calidad en rac.iitri.org conciernen a ambos elementos de los sistemas.

La fiabilidad del software, a diferencia de otros Considerando un sistema basado en computadora,
tbttores de calidad, puede ser medida o estimada una sencilla medida de la fiabilidad es el tiempo medio
hediante datos históricos o de desarrollo. Lafiabili- entre fallos (TMEF),donde;
&ud del software se define en términos estadísticos
bmo «laprobabilidad de operación libre de fallos de TMEF = TMDF + TMDR
4m programa de computadora en un entorno determi-
hado y durante un tiempo específico» [MUS87]. Por Las siglas TMDF y TMDR corresponden a tiempo
qemplo, un programa X puede tener una fiabilidad medio de fallo y tiempo medio de reparación, respecti-
estimada de 0,96 durante un intervalo de proceso de vamente.
who horas. En otras palabras, si se fuera a ejecutar el
QrogramaX 100 veces, necesitando ocho horas de ¿Por qué es TMEF
&mpo de proceso (tiempo de ejecución), lo probable una métrica más útil
yque funcione correctamente (sin fallos) 96 de cada que errores/LDC?
400veces.
r - Siempreque se habla de fiabilidad del software, sur- Muchos investigadores argumentan que el TMDF
ge la pregunta fundamental:¿Qué se entiende por el tér- es, con mucho, una medida más Útil que los defec-
mino fallo? En el contexto de cualquier discusión sobre tos/KLDC o defectos/PF. Sencillamente, el usuario
calidad y fiabilidad del software, el fallo es cualquier final se enfrenta a los fallos, no al número total de erro-
falta de concordancia con los requisitos del software. res. Como cada error de un programa no tiene la mis-
Incluso en esta definición existen grados. Los fallos pue- ma tasa de fallo, la cuenta total de errores no es una
den ser simplemente desconcertantes o ser catastrófi- buena indicación de la fiabilidad de un sistema. Por
I!' Puede que un fallo sea corregido en segundos ejemplo, consideremos un programa que ha estado fun-
cionando durante 14 meses. Muchos de los errores del
entras que otro lleve semanas o incluso meses. Para programa pueden pasar desapercibidos durante déca-
más las cosas, la corrección de un fallo pue- das antes de que se detecten. El TMEF de esos erro-
res puede ser de 50 e incluso de 100 años. Otros
llevar a la introducción de otros errores que, final- errores, aunque no se hayan descubierto aún, pueden
mente, lleven a más fallos. tener una tasa de fallo de 18 ó 24 meses. Incluso aun-
que se eliminen todos los errores de la primera cate-
4 goría (los que tienen un gran TMEF), el impacto sobre
la fiabilidad del software será muy escaso.
i7.1. Medidas de fiabilidad y de disponibilidad
Además de una medida de la fiabilidad debemos
hs primeros trabajos sobre fiabilidad intentaron extra- obtener una medida de la disponibilidad. La disponihi-
lidad del s o f i a r e es la probabilidad de que un progra-
#lar las matemáticas de la teoría de fiabilidad del hard- ma funcione de acuerdo con los requisitos en un
q u e (por ejemplo: [ALV64]) a la predicción de la momento dado, y se define como:
fiabilidad del software. La mayoría de los modelos de
fbbilidad relativos al hardware van más orientados a Disponibilidad = [TMDF/(TMDF + TMDR)] x 100 %

iD8 fallos debidos al desajuste que a los fallos debidos La medida de fiabilidad TMEF es igualmente sen-
sible al TMDF que al TMDR. La medida de disponi-
fectos de diseño. En el hardware, son más proba- bilidad es algo más sensible al TMDR, una medida
es los fallos debidos al desgaste físico (por ejemplo: indirecta de la facilidad de mantenimiento del soft-
ware.
de la temperatura, de la corrosión y los gol-
os fallos relativos al diseño. Desgraciadamente,

Fel softwarelo que ocurre es lo contrario. De hecho,
os los fallos del software, se producen por proble-

w de diseño o de implementación; el desajuste (con-

sulte el Capítulo 1) no entra en este panorama.

143

www.elsolucionario.net

INGENiERfA DEL SOFTWARE. U N ENFOQUE PRÁCTiCO .

8.7.2. Seguridad del software 3Referencia Web www.elsolucionario.net
Leveson [LEV86] discute el impacto del software en
sistemas críticos de seguridad, diciendo: Se pueden encontrar documentos sobre la seguridad
del software (y un glosario detallado) que merecen
Antes de que se usara softwareen sistemascríticosde segu- la peno en www.rsttorp.tom/hotlist/topics-
ridad, normalmente éstos se controlaban mediante dispositi- safety.html
vos electrónicos y mecánicos convencionales (no progra-
mables). Las técnicas de seguridad de sistemas se diseñaban vedad y su probabilidad de ocurrencia4. Para que sea
para hacer frente a fallos aleatorios en esos dispositivos [no efectivo, se tiene que analizar el software en el contex-
programables]. Los errores humanos de diseño no se consi- to del sistema completo. Por ejemplo, puede que un sutil
deraban porque se suponía que todos los defectos producidos error en la entrada del usuario (las personas son com-
por los errores humanos se podían evitar o eliminar comple- ponentes del sistema) se magnifique por un fallo del
tamente antes de su distribución y funcionamiento. software que producen los datos de control que actúan
de forma inadecuada sobre un dispositivo mecánico. Si
Cuando se utiliza el software como parte del siste- se dan un conjunto de condiciones externas del entor-
ma de control, la complejidad puede aumentar en un no (y sólo si se dan), la situación inadecuada del dis-
orden de magnitud o más. Los defectos sutiles de dise- positivo mecánico producirá un fallo desastroso. Se
ño, producidos por un error humano -algo que se pue- pueden usar técnicas de análisis, como el análisis del
de descubrir y eliminar en el control convencional árbol de fallos [VES81], la lógica de tiempo real
basado en el hardware-llegan a ser mucho más difí- [JAN861o los modelos de redes de Petri [LEV87],para
ciles de descubrir cuando se utiliza el software. predecir la cadena de sucesos que pueden producir los
riesgos y la probabilidad de que se dé cada uno de los
La seguridad del software es una actividad de garan- sucesos que componen la cadena.
tía de calidad del software que se centra en la identifi-
cación y evaluación de los riesgos potenciales que Una vez que se han identificado y analizado los nes-
pueden producir un impacto negativo en el software y gos, se pueden especificar los requisitos relacionados
hacer que falle el sistema completo. Si se pueden iden- con la seguridad para el software. Esto es, la especifi-
tificar pronto los riesgos en el proceso de ingeniería del cación puede contener una lista de eventos no desea-
software podrán especificarse las características del dise- bles y las respuestas del sistema a estos eventos. El papel
ño del software que permitan eliminar o controlar los del software en la gestión de eventos no deseados es
riesgos potenciales. entonces apropiado.

Como parte de la seguridad del software, se puede ¿Cuál es la diferencia
dirigir un proceso de análisis y modelado. Inicialmente, entre fiabilidaddel software
se identifican los riesgos y se clasifican por su impor- y seguridad del software?
tancia y su grado de riesgo. Por ejemplo, algunos de
los riesgos asociados con el control basado en com- Aunque la fiabilidad y la seguridad del softwareestán
putadora del sistema de conducción de un automóvil bastante relacionadas, es importante entender la sutil
podrían ser: diferencia que existe entre ellas. La fiabilidad del soft-
ware utiliza el análisis estadístico para determinar la
Produce una aceleración incontrolada que no se probabilidad de que pueda ocurrir un fallo del softwa-
puede detener. re. Sin embargo, la ocurrencia de un fallo no lleva nece-
No responde a la presión del pedal del freno (dete- sariamente a un riesgo o a un accidente. La seguridad
niéndose). del software examina los modos según los cuales los
No responde cuando se activa el contacto. fallos producen condiciones que pueden llevar a acci-
Pierde o gana velocidad lentamente. dentes. Es decir, los fallos no se consideran en vacío,
sino que se evalúan en el contexto de un completosis-
Cuando se han identificado estos riesgos del siste- tema basado en computadora.
ma, se utilizan técnicas de análisis para asignar su gra-
Un estudio completo sobre seguridad del softwarey
análisis del riesgo va más allá del ámbitode este libro. Para
aquelloslectoresque estén más interesados,deberíancon-
sultar el libro de Leveson [LEV95] sobre este tema.

Este método es anólogo al método de análisis de riesgos descrito
para la gestión del proyecto de software en el capítulo 6 . La princl-
pal diferencia es el énfasis en aspectos de tecnología frente a tema
relacionados con el proyecto.

144

www.elsolucionario.net
. C A P ~ T U L O8 GARANTIA DE CALIDAD DEL S O F T W A R E

Si William Shakespeare hubiera escrito sobre las con- Para llevar a cabo la entrada adecuadadel menú para cada apli- www.elsolucionario.net
diciones del ingeniero de software moderno, podría per- cación, un «localizador» (una persona que habla en el idioma
fectamente haber escrito: «Errar es humano, encontrar local y con la terminología de ese lugar) traduce los menús de
el error rápida y correctamente es divino.» En los años acuerda con el idioma en uso. El problema es asegurar que (1)
sesenta, un ingeniero industrial japonés, Shigeo Shin- cada entrada de menú (pueden existir cientos de ellas) se ade-
go [SHI86], que trabajaba en Toyota, desarrolló una téc- cue a los estándares apropiados y que no existan conflictos,
nica de garantía de calidad que conducía a la prevención independientementedel lenguaje que se está utilizando.
y/o a la temprana corrección de errores en el proceso de
fabricación. Denominado poku-yoke (prueba de erro- El uso del poka-yoke para la prueba de diversos
‘res),el concepto de Shingo hacía uso de dispositivos menús de aplicación desarrollados en diferentes len-
poku-yoke -mecanismosque conducen (1) a la pre- guajes, tal y como se ha descrito anteriormente, se dis-
vención de un problema de calidad potencial antes de cute en un artículo de Harry Robinson [ROB97]:
que éste ocurra, o (2) a la rápida detección de proble-
mas de calidad si se han introducido ya-. Nosotros Nosotros primero decidimos dividir el problema de prue-
encontramos dispositivos poka-yoke en nuestra vida bas de menús en partes que puedan ser resueltas más fácil-
cotidiana (incluso si nosotros no tenemos conciencia de mente. Nuestro primer avance para la resolución del problema
este concepto). Por ejemplo, el interruptor de arranque fue el comprenderque existían dos aspectosseparadospara los
de un coche no trabaja si está metida una marcha en la catálogos de mensaje. Había por una parte el aspecto de con-
transmisión automática (un dispositivo de prevención); tenidos: las traducciones de texto muy simplestales como c m -
un pitido de aviso del coche sonará si los cinturones de biar meramente «Glose» por la palabra «Fermer». Puesto que
seguridadno están bien sujetos (un dispositivo de detec- el equipo que realizaba las comprobacionesno hablaba de for-
ción defallos). ma fluida el lenguaje en el que se pretendía trabajar, teníamos
que dejar estos aspectos a traductores expertos del lenguaje.
Un dispositivo de poku-yoke presenta un conjunto
de características comunes: El segundo aspecto de los catálogos del mensaje era
la estructura, las reglas sintácticas que debía obedecer
Es simple y barato -si un dispositivo es demasiado un catálogo de objetivos adecuadamente construido. A
complicado y caro, no será efectivo en cuanto a diferencia del contenido, en este caso sí que era posible
costo-; para el equipo de comprobación el verificar los aspec-
tos estructurales de los catálogos.
Es parte del proceso - e s t o es, el dispositivo poku-
yoke está integrado en una actividad de ingeniería-; Como un ejemplo de lo que significa estructura, con-
sideremos las etiquetas y los mnemónicos de un menú
Está localizado cerca de la tarea del proceso donde de aplicación. Un menú está constituido por etiquetas
están ocurriendolos errores -por consiguiente pro- y sus mnemónicos (abreviaturas)asociados. Cada menú,
porciona una realimentación rápida en cuanto a la independientemente de su contenido o su localización,
corrección de errores se refiere-. debe obedecer las siguientes reglas listadas en la Guía
de Estilo Motif
3Referencia Web
Cada nemotécnico debe estar contenido en su eti-
Se puede obtener una colección completa de recursos
de pokoyoke en queta asociada;
www.campbell.berr y.edu/fatult y/igrout/ Cada nemotécnico debe ser único dentro del menú;
pokayoke.shtml
Cada nemotécnico debe ser un carácter Único;
Aunque el poka-yoke fue originariamente desarro-
liado para su uso en «control de calidad cero» [SHI86] Cada nemotécnico debe estar en ASCII.
para el hardware fabricado, puede ser adaptado para su
Úso en ingeniería del software. Para ilustrar esto, con- Estas reglas son invariantes a través de las localiza-
sideremos el problema siguiente [ROB97]: ciones, y pueden ser utilizadaspara verificar que un menú
está correctamente construidoen la localización objetivo.
Una compañía de productos de software vende el software
de aplicaciónen el mercado internacional.Los menús desple- Existen varias posibilidades para realizar la prueba
gables y todos los códigos asociados proporcionados con cada de errores de los mnemónicos del menú:
aplicación deben reflejar el lenguaje que se emplea en el lugar
donde se usa. Por ejemplo, el elemento del menú del lenguaje Dispositivo de prevención. Nosotros podemos escri-
inglés para «Glose», tiene el mnemónico«C» asociadocon ello. bir un programa para generar los mnemónicos automá-
Cuando la aplicación se vende en un país de habla francesa, el ticamente, dada una lista de etiquetas en cada menú.
mismo elemento del menú es «Fermen>con el mnemónico «F». Este enfoque evitaría errores, pero el problema es que
escoger un mnemónico adecuado es difícil, y el esfuer-
zo requerido para escribir el programa no estaría justi-
ficado con el beneficio obtenido.

Dispositivo de prevención. Podríamos escribir un
programa que prevendría al localizador de elegir unos
mnemónicos que no satisfagan el criterio. Este enfoque
también evitm’a errores, pero el beneficio obtenido sería
mínimo: los mnemónicos incorrectos son lo suficiente-

145

www.elsolucionario.net

INGENIERfA DEL SOFTWARE. UN ENFOQUE PRÁCTICO .

mente fáciles de detectar y corregir después de que apa- estructurales de los menús .Un pequeño «script»poka- www.elsolucionario.net
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-
cutar los programas sobre los catálogos de mensaje tra- Los cscripts>p>oka-yoke eran pequeños (aproximada-
ducidos antes de enviarnos a nosotros dichos catálogos. mente 100líneas),fácilesde escribir (algunosde los escri-
Este enfoque proporcionaría una realimentación rápida tos estaban en cuanto al tiempo por debajo de una hora)
sobre los errores y será, probablemente, un paso a dar y fáciles de ejecutar. Nosotros ejecutábamos nuestros
en el futuro. «scripts»poka-yokesobre 16 aplicacionesen la ubicación
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 mnemóni- menús. Los dispositivospoka-yokeencontraron 311 erro-
COS 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 loca- 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 eficientecomo algunode los ba y ejecución de nuestras aplicacioneslocalizadas.
r iétodos anteriormente mencionados y puede requerir
que se establezca una comunicación fluida hacia delan- El ejemplo descrito antes representa un dispositivo
te y hacia atrás con los localizadores, pero los errores poka-yoke que ha sido integrado en la actividad de prue-
detectados son incluso fáciles de corregir en este punto. bas de ingeniería del software. La técnica poka-yoke
puede aplicarse a los niveles de diseño, codificacióny
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- ISO 9004-2. Quality Management and Quality Sys-
cipal describir el cada vez más importante estándar inter- tem Elements -Part 2-. Este documento propor-
nacional ISO 9001. El estándar, que ha sido adoptado ciona las directrices para el servicio de facilidades
por más de 130países para su uso, se está convirtiendo del software como soporte de usuarios.
en el medio principal con el que los clientes pueden juz-
gar la competencia de un desarrollador de software.Uno Los requisitos se agrupan bajo 20 títulos:
de los problemas con el estándar ISO 9001 está en que
no es específico de la industria: está expresado en tér- Responsabilidad de la gestión.
minos generales, y puede ser interpretado por los desa- Inspección, medición y equipo de pruebas.
rrolladores de diversos productos como cojinetes de Sistema de calidad.
bolas (rodamientos), secadores de pelo, automóviles, Inspección y estado de pruebas.
equipamientos deportivos y televisiones, así como por Revisión de contrato.
desarrolladores de software. Se han realizado muchos Acción correctiva.
documentos que relacionan el estándar con la industria Control de diseño.
del software, pero no entran en una gran cantidad de Control de producto no aceptado.
detalles. El objetivo de esta sección es describir lo que Control de documento.
significa el ISO 9001 en términos de elementos de cali- Tratamiento, almacenamiento, empaquetamiento y
dad y técnicas de desarrollo. entrega.
Compras.
Para la industria del software los estándares rele- Producto proporcionado al comprador.
vantes son: Registros de calidad.
Identificación y posibilidad de seguimientodel producto,
ISO 9001. Quality Systems-Modelfor QualityAssu- Auditorías internas de calidad.
Formación
rance in Design, Development, Production, Insta- Control del proceso
llation and Servicing. Este es un estándar que Servicios.
describe el sistema de,calidad utilizado para mante- Inspección y estado de prueba.
ner el desarrollode un producto que implique diseño. Técnicas estadísticas.
ISO 9000-3. Guidelinesfor Application of ISO 9001
Merece la pena ver un pequeño extracto de la ISO
to the Development, Supply and Maintainance of
Software. Este es un documento específico que 9001. Este le dará al lector una idea del nivel con el que
interpreta el ISO 9001 para el desarrollador de soft- la ISO 9001 trata la garantía de calidad y el proceso de
ware.

146

httwp:w//liwbr.eerlisao-ulnuicveiorsnitaarriioa..bnloegt spot.com
.

CAPfTULO 8 GARANTIA DE CALIDAD DEL SOFTWARE

desarrollo. El extracto elegido proviene de la sección ción del párrafo --es pretendido obviamente por los
1.11: procesos estándar de ingeniería donde equipos tales
como indicadores de calibración y potenciómetros son
4.11.E1 equipo de Inspección, medición y pruebas. habituales-.

El suministradordebe controlar, calibrar y mantenerla ins- Una interpretación del párrafo anterior es que el dis-
pección, medir y probar el equipo, ya sea el dueño el suminis- tribuidor debe asegurar que cualquiera de las herramien-
tas de software utilizadas para las pruebas tiene, por lo
trador, prestado o proporcionado por el comprador, para menos, la misma calidad que el software a desarrollar, y
demostrarla conformidaddel producto con los requisitosespe- que cualquier prueba del equipo produce valores de medi-
ción, por ejemplo, los monitores del rendimiento, tienen
cificados. El equipo debe utilizarse de un modo que asegure una precisión aceptable cuando se compara con la preci-
que se conoce la incertidumbre de la medición y que es con- sión especificadapara el rendimiento en la especificación
sistente con la capacidad de medición requerida. de los requisitos.

Lo primero a destacar es su generalidad; se puede
aplicar al desarrollador de cualquier producto. Lo
segundo a considerar es la dificultad en la interpreta-

El plan de SQA proporciona un mapa para institucio- documentos de usuario (por ejemplo: archivos de www.elsolucionario.net
nalizar la garantía de calidad del software.El plan, desa-
rrollado por un grupo de SQA, sirve como plantilla para ayuda).

actividades de SQA instituidas para cada proyecto de Además, esta sección define e1 conjunto mínimo de
software. productos de trabajo que se pueden aceptar para lograr
alta calidad.
El Plan GCS
Los estándares, prácticas y convenciones muestran
El IEEE [IEEE94]ha recomendado un estándar para todos los estándares/prácticasque se aplican durante el
los planes de SQA. Las secciones iniciales describen el proceso de software (por ejemplo: estándares de docu-
propósito y el alcance del documento e indican aque- mentos, estándares de codificación y directrices de revi-
ilas actividades del proceso del software cubiertas por sión). Además, se listan todos los proyectos, procesos y
la garantía de calidad. Se listan todos los documentos (en algunos casos) métricas de producto que se van a reco-
señalados en el plan de SQA y se destacan todos los ger como parte del trabajo de ingeniería del software.
estándares aplicables. La sección de Gestión del plan
describe la situación de la SQA dentro de la estructura La sección Revisiones y Auditorías del plan identi-
organizativa; las tareas y las actividades de SQA y su fica las revisiones y auditorías que se van a llevar a cabo
emplazamientoa lo largo del proceso del software; así por el equipo de ingeniería del software, el grupo de
como los papeles y responsabilidades organizativas rela- SQA y el cliente. Proporciona una visión general del
tivas a la calidad del producto. enfoque de cada revisión y auditoría.

La sección de Documentación describe (por referen- La secciónPrueba hace referencia al Plan y Procedi-
cia) cada uno de los productos de trabajo producidos como miento de Pruebas del Sofiare (Capítulo 18).También
píute del proceso de software. Entre estos se incluyen: define requisitos de mantenimientode registros de prue-
bas. La Información sobre problemas y acción correcti-
documentos del proyecto (por ejemplo: plan del pro- va define procedimientos para informar, hacer segui-
yecto), miento y resolver errores y defectos, e identifica las res-
modelos (por ejemplo: DERs, jerarquías de clases), ponsabilidades organizativaspara estas actividades.
* documentos técnicos (por ejemplo: especificaciones,
planes de prueba), El resto del plan de SQA identifica las herramientas
y métodos que soportan actividades y tareas de SQA;
hace referencia a los procedimientos de gestión de con-
figuración del software para controlar el cambio; defi-
ne un enfoque de gestión de contratos; establece métodos
para reunir, salvaguardary mantener todos los registros;
identifica la formación que se requiere para cumplir las
necesidades del plan y define métodos para identificar,
evaluar, supervisar y controlar riesgos.

www.elsolucionario.net
.

INGENIERfA DEL SOFTWARE. UN ENFOQUE PRACTICO

La garantía de calidad del software es una «actividad mostrado extremadamenteefectiva en el descubrimiento www.elsolucionario.net
de protección» que se aplica a cada paso del proceso de errores.
del software. La SQA comprende procedimientos para
la aplicación efectiva de métodos y herramientas, revi- Para llevar a cabo adecuadamente una garantía de
siones técnicas formales, técnicas y estrategias de prue- calidad del software, se deben recopilar, evaluar y dis-
ba, dispositivos poku-yoke, procedimientos de control tribuir todos los datos relacionados con el proceso de
de cambios, procedimientos de garantía de ajuste a los ingeniería del software. La SQA estadística ayuda a
estándares y mecanismos de medida e información. mejorar la calidad del producto y la del proceso de soft-
ware. Los modelos de fiabilidad del software amplían
La SQA es complicadapor 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»-.
Cuando se considera de forma más general, la calidad del Resumiendo,recordemos las palabras de Dunn y U11-
software engloba muchos factores de proceso y de pro- man [DUN82]: «La garantía de calidad del softwarees
ducto diferentes con sus métricas asociadas. la guía de los preceptos de gestión y de las disciplinas
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.

[ALV64] von Alvin, W. H. (ed.), Reliability Engineering, [GLA98] Glass, R., «Defining Quality Intuitively»,IEEE Soft-
Prentice-Hall, 1964. wure, Mayo 1998, pp. 103-104 y 107.

[ANS87] ANSI/ASQC A3-1987, Quality Systems Termino- [HOY981Hoyle, D., Iso 9000 Quality Systems Development
logy, 1987. Handbook: A Systems Engineering Approach, Buttenvorth-
Heinimann, 1998.
[ART92]Arthur, L. J., Improving Software Quality: An Insi-
der's Guide to TQM, Wiley, 1992. [IBMSI] dmplementating Software Inspectionsn, notas del
curso, IBM Systems Sciences Institute, IBM Corporation,
[ART97] Arthur, L. J., «Quantum Improvements in Softwa- 1981.
re System Qualityn, CACM,vol. 40, n." 6, Junio 1997,pp.
47-52. [IEE90] Software Quality Assurunce: Model Procedures,Ins-
titution of Electrical Engineers, 1990.
[BOE811Boehm, B., Software Engineering Economics, Pren-
tice-Hall, 1981 . [IEE94] Software Engineering Standards, ed. de 1994,IEEE
Computer Society, 1994
[CR075] Crosby, P., Quality is Free, McGraw-Hill, 1975.
[JAN861 Jahanian, F., y A. K. Mok, «Safety Analysis of
[CR079] Crosby, P., Quality is Free, McGraw-Hill, 1979. Timing Properties of Real Time Systems», IEEE Trans.
Software Engineering, vol. SE-12, n.O 9, Septiembre 1986,
[DEM86] Deming,W. W., Out of the Crisis, MIT Press, 1986. pp. 890-904.

[DEM99] DeMarco, T., «Management Can Make Quality [JON86] Jones, T. C., Pi-ogramming Productivity, McGraw-
(Im)possible», presentación de Cutter Summit '99, Bos- Hill, 1986.
ton, MA, 26 de Abril 1999.
[KAN951 Kan, S. H., Metrics and Models in Software Qua-
[DIJ76] Dijkstra, E., A Discipline ofPuogrumming, Prentice- lity Engineering, Addison Wesley, 1995.
Hall, 1976.
[KAP95] Kaplan, C., R. Clark y V. Tang, Secrets ofsoftwa-
[DUN82]Dunn, R., y R. Ullman, Quality Assuranrefor Com- re Quality: 40 Innovations from IBM, McGraw-Hill, 1995.
puter S o f i a r e , McGraw-Hill, 1982.
[LEV86] Leveson, N.G., «Software Safety: Why, What, and
[FRE90] Freedman, D. P., y G. M. Weinberg, Handbook oj How»,ACM Computing Suweys, vol. 18,n." 2, Junio 1986,
Walkthroughs, Inspections and Technicul Reviews, 3.- ed., pp. 125-163.
Dorset House, 1990.
[LEV87]Leveson, N. G., y J.L. Stolzy, «SafetyAnalysis using
[GIL931Gilb, T., y D. Graham, Sofmiare Inspections, Addi- Petri Nets»,IEEE Trans.Software Engineering, vol. SE-13,
son-Wesley, 1993. n.' 3, Marzo 1987, pp. 386-397.

148

www.elsolucionario.net
.

CAPfTULO 8 GARANTIA DE CALIDAD DEL SOFTWARE

kEV951 Leveson, N.G., Safeware: Systenz Safety and Corn- [R0090] Rook, J., Sofhvare Reliahility Handhook, Elsevier, www.elsolucionario.net
puters, Addison-Wesley, 1995. 1990.

fLIN791Linger, R., H. Mills y B. Witt, Structured Program- [SCH98] Schulmeyer, G. C., y J.I. McManus (eds.), Hand-
ming,Addison-Wesley, 1979. hook of Sofiware Quality Assurance, Prentice-Hall, 3.- ed.,
1998.
w89]Littlewood, B., «Forecasting Software Reliability»,
en Software Reliahility: Modelling and ldentification (S. [SCH94] Schmauch, C.H., ISO 9000 for Software Develo-
Bittanti, ed.), Springer-Verlag, 1989, pp. 141-209. pers, ASQC Quality Press, Milwaukee, WI, 1994.

m N 9 6 ] Manns, T. y M. Coleman, Software Quality Assu- [SCH97] Schoonmaker, S.J., ISO Y000 for Engineers and
rance,MacMillan Press, 1996. Designers, McGraw Hill, 1997.

[MUS87] Musa, J. D., A. Iannino y K. Okumoto, Enginee- [SHI86] Shigeo Shingo, Zero Qualiry Control: Source Ins-
ring and Managing Software with Reliahility Measures, pection and the Poka-Yoke System, Productivity Press,
1986.
McGgw-Hill, 1987.
[SOM96] Somerville, I., Sofhare Engineering, 5.- ed., Addi-
[PAU93] Paulk, M., et al., Capabiliry Maturir-y Model for son-Wesley, 1996.
Software,SoftwareEngineering Institute, Camegie Mellon
[TIN96] Tingey, M., Comparing ZSO 9000, Malcolm Bal-
' University, Pittsburgh, PA, 1993. dridge y al SEJ CMM para Software, Prentice-Hall, 1996.

[POR951Porter,A,, H. Siv. C. A. Toman, y L. G. Votta, «An [TR197] Tricker, R., ISO 9000for Small Bussinesses, But-
Experiment to Assess the Cost-Benefits of Code Inspec- terworth-Heinemann, 1997.
tions irrLarge Scale Software Developmenb, Proc. Third
ACM SIGSOFT Syrnposium on the Foiindations of Soft- [VES811 Veseley, W.E., et al., Fault Tree Handhook, U.S
ware Engineering, Washington DC, Octubre 1996, ACM Nuclear Regulatory Commision, NUREG-0492, Enero
Press, pp. 92-103. 1981.

jROB971 Robinson, H., «Using Poka-Yoke Techniques for [WI494] Wilson, L. A., 8 stp to Succesful ISO 9000, Cam-
Early Error Detectiom, Proc. Sixth International Confe- bridge Interactive Publications, 1996.
rence on Software TestingAnalysis and Review (STAR'97),
1997,pp. 119-142.

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
ción está en el centro del control de calidad». Como todos los estilo de programación al igual que la corrección. ¿Es una bue-
programas que se crean son diferentes unos de otros, ¿cuáles na idea? ¿Por qué?
son las variaciones que se buscan y cómo se controlan?
8.11. Revise la Tabla 8.1 y seleccione las cuatro causas vita-
8.2. ¿Es 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
de acuerdo a la siguiente distribución de porcentajes:
cútalas.
Paso Porcentaje de errores encontrados
8.4. ¿Puede un programa ser correcto y aún así no ser fiable? 1 20 %
Explique por qué. 2 15 %
3 15 %
8.5. ¿Puedeun programa ser correcto y aun así no exhibir una 4 40 %
5 10 %
buena calidad? Explique por qué.
Mediante la información de la Tabla 8.1 y la distribución de
8.6. ¿Por qué a menudo existen fricciones entre un grupo de porcentajes anterior, calcule el índice de defectos global para
ingeniería del software y un grupo independiente de garantía dicha organización. Suponga que PS = 100.000.
de calidad del software? ¿Es esto provechoso?
8.13. Investigue en los libros sobre fiabilidad del software y
8.7. Si se le da la responsabilidad de mejorar la calidad del escriba un artículo que explique un modelo de fiabilidad del
software en su organización. ¿Qué es lo primero que haría? software. Asegúrese de incluir un ejemplo.
AQué sería lo siguiente?
8.14. El concepto de TMEF del software sigue abierto a deba-
8.8. Además de los errores, ¿hay otras características claras te. ¿Puede pensar en algunas razones para ello?
del software que impliquen calidad? ¿Cuáles son y cómo se
pueden medir directamente?

8.9. Una revisión técnica formal sólo es efectiva si todo el
mundo se la prepara por adelantado. ¿Cómo descubriría que
nno de los participantes no se la ha preparado? ¿Qué haría si
fuera el jefe de revisión?

149

www.elsolucionario.net

.

INGENIERfA DEL SOFTWARE. UN ENFOQUE PRftCTICO

8.15. Considere dos sistemas de seguridad crítica que estén 8.17. Sugiera unos cuantos dispositivos poka-yoke que pui%
controlados por una computadora. Liste al menos tres peligros dan ser usados para detectar y/o 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 (Sofhvare Excellence: A Total Qua- Sanders, J., Software Quality: A Framework for Success www.elsolucionario.net
lity Munagement Guide, Productivity Press, 1997), Horch in Sofiware Developrnent, Addison-Wesley, 1994.
(Practica1Guide to Software Quality Management, Artech
Publishing, 1996) son unas excelentes presentaciones a nivel Sumner, F. H. Software Quality Assurance, MacMillan,
de gestión sobre los beneficios de los programas formales de 1993.
garantía de calidad para el software de computadora. Los
libros de Deming [DEM86] y Crosby [CR079], aunque no Wallmuller, E., Software Quality Assurance: A Practical
se centran en el software, ambos libros son de lectura obli- Approach, Prentice-Hall, 1995.
gada para los gestores seniorcon responsabilidadesen el desa-
rrollo de software. Gluckman y Roome (Every day Heroes of Weinberg, G. M., Quality Software Managenzent, 4 vols.,
the Quulity Movement, Dorset House, 1993) humaniza los Dorset House, 1992, 1993, 1994 y 1996.
aspectos de calidad contando la historia de los participantes
en el proceso de calidad. Kan (Metrics and Models in Soft- Wilson, R. C., Software Rx: Secrets of Engineering Qua-
ware Quality Engineering, Addison-Wesley, 1995) presenta lity Sofiware, Prentice-Hall, 1997.
una visión cuantitativade la calidad del software.Manns (Sof-
ware Quality Assurance, Macmillan, 1996) es una excelente Una antología editada por Wheeler, Bryczynsky y Mee-
introducción a la garantía de calidad del software. son (SofbvareInspection: lndustry Best Practice, IEEE Com-
puter Society Press, 1996) presenta información útil sobre
Tingley (Compering ISO 9000, Malcom Baldridge, and esta importante actividad de GCS. Friedman y Voas (Software
the SE1 CMMfor Software, Prentice-Hall, 1996) proporciona Assessment, Wiley, 1995) estudian los soportes y métodos
una guía útil para las organizacionesque se esfuerzan en mejo- prácticos para asegurar la fiabilidad y la seguridad de pro-
rar sus procesos de gestión de calidad. Oskarsson (An ISO gramas de computadora.
9000 Approach to Building Quality Software, Prentice-Hall,
1995) estudia cómo se aplica el estándar ISO al software. Musa (Software Reliability Engineering: More Relinbie
Software, Faster Development and Testing, McGraw-Hill,
Durante los últimos años se han escrito docenas de libros 1998) ha escrito una guía práctica para aplicar a las técnicas
sobre aspectos de garantía de calidad. La lista siguiente es de fiabilidad del software. Han sido editadas antologías de
una pequeña muestra de fuentes útiles: artículosimportantessobre la fiabilidad del software por Kapur
y otros (Contrihutions to Hardware and Software Reability
Clapp, J. A,, et al., Sofhvare Quality Control,Error Analy- Modelling, World Scientific Publishing Co., 1999), Gritzails
sis and Testing, Noyes Data Corp.. Park Ridge, NJ,1995. (Reliability,Quality and Safety of Sofhyare-lntensive Systems,
Kluwer Academic Publishing, 1997), y Lyu (Handbook of
Dunn, R. H., y R.S. Ullman, TQMfor Computer Softwa- Software Reliahility Engineering, McGraw-Hill, 1996).Sto-
re, McGrawHill, 1994. rey (Safety-Critica1 Computer Systems, Addison-Wesley,
1996)y Leveson [LEV95] continúan siendo los estudios más
Fenton, N., R. Whitty y Y. Iizuka, S o f i a r e Quality Assu- completos sobre la seguridad del software publicados hasta
rance and Measurement: Worldwide Industrial Applications, la fecha.
Chapman & Hall, 1994.
Además de [SHI86], la técnicapoka-yoke para el software
Ferdinand, A. E., Systems, Software, and Quality Enginee- de prueba de errores es estudiada por Shingo (TheShingo Pro-
ring,Van Nostrand Reinhold, 1993. duction Management Systern: Improving Product Quality by
Preventing Defects, Productivity Press, 1989) y por Shimbun
Ginac, F. P., Customer Oriented Software Quality Assu- (Poka-Yo&: Improving Product Quulity by Preventing Defects,
rance, Prentice-Hall, 1998. Productivity Press, 1989).

Ince, D., ISO 9001 and Software Quality Assurance, En Intemet están disponibles una gran variedad de fuen-
McGraw-Hill, 1994. tes de información sobre la garantía de calidad del software,
fiabilidad del software y otros temas relacionados. Se puede
Ince, D., An lntroduction to Software Quality Assurance encontrar una lista actualizada con referencias a sitios (pági-
und Implementation, McGraw-Hill, 1994. nas) web que son relevantes para la calidad del software en
http://www.pressman5.com.
Jarvis, A., y V. Crandall, lnroads to Softwwe Quality:
«How To» Guide and Toolkit, Prentice-Hall, 1997.

150

www.elsolucionario.net
.

CAPÍTULO

GESTIÓN DE LA CONFIGURACIÓN
DEL SOFTWARE (GCSISCM)*

CUANDO se construye software de computadora, los cambios son inevitables. Además, www.elsolucionario.net
los cambios aumentan el grado de confusión entre los ingenieros del software que están
trabajando en el proyecto. La confusión surge cuando no se han analizado los cambios
antes de realizarlos, no se han registrado antes de implementarlos, no se les han comunicado a
aquellas personas que necesitan saberlo o no se han controlado de manera que mejoren la cali-
dad y reduzcan los errores. Babich [BAB86] se refiere a este asunto cuando dice:

El arte de coordinar el desarrollo de software para minimizar...la confusión, se denomina gestión de con-
figuración. La gestión de configuración es el arte de identificar, organizar y controlar las modificaciones que
sufre el software que construye un equipo de programación. La meta es maximizar la productividad mini-
mizando los errores.

La gestión de configuración del software (GCS) es una actividad de autoprotección que se
aplica durante el proceso del software. Como el cambio se puede producir en cualquier momen-
to, las actividades de GCS sirven para ( 1 ) identificar el cambio, (2) controlar el cambio, ( 3 )
garantizar que el cambio se implementa adecuadamente y (4) informar del cambio a todos aque-
llos que puedan estar interesados.

Es importante distinguir claramente entre el mantenimiento del software y la gestión de con-
figuración del software. El mantenimiento es un conjunto de actividades de ingeniería del soft-
ware que se producen después de que el software se haya entregado al cliente y esté en
funcionamiento. La gestión de configuración del software es un conjunto de actividades de
seguimiento y control que comienzan cuando se inicia el proyecto de ingeniería del software y
termina sólo cuando el software queda fuera de la circulación.

&Quées? Cuando construimossoftwarede &Porqué es importante?Si no con- que necesitan conocer los cambios son
computadora, surgen cambios. Debido trolamos el cambio, él nos controlará a informados, se realizan los informes.
a esto,necesitamos controlarlos eficaz- nosotros. Y esto nunca es bueno. Es
mente. La gestión de la configuración muy fácil para un flujo de cambios &Cuáles el producto obtenido? El
del software (GCS)es un conjunto de incontrolados llevar al caos a un pro- Plan de Gestión de la Configuración
actividadesdiseñadas para controlarel yecto de software correcto. Por esta del Software define la estrategia del
cambio identificando los productos del razón, la GCS es una parte esencial de proyecto para la GCS. Además, cuan-
trabajo que probablemente cambien, una buena gestión del proyecto y una do se realiza la GCS formal, el proce-
estableciendo relaciones entre ellos, práctica formal de la ingeniería del so d e control del cambio provoca
definiendomecanismos para gestionar software. peticiones de cambio del software e
distintas versiones de estos productos, informes de órdenes de cambios d e
controlando los cambios realizados, y iCuhles son los pasos? Puesto que ingeniería.
auditando e informandode los cambios
realizados. muchos productos d e trabajo se obtie- &Cómopuedo estar seguro de que lo
nen cuando se construye el software, he hecho correctamente?Cuando
&Quiénlo hace? Todos aquellos que cada uno debe estar identificado uní- cualquier producto de trabajo puede
estén involucrados en el proceso de vocamente. Una vez que esto se ha ser estimado para ser supervisado y
ingeniería de software están relacio- logrado, se pueden establecer los controlado: cuando cualquier cambio
nados con la GCS hasta cierto punto, mecanismos para el control del cam- pueda ser seguido y analizado; cuan-
pero las posiciones de mantenimiento bio y d e las versiones. Para garantizar do cualquiera que necesite saber algo
especializadas son creadas a veces que se mantiene la calidad mientras sobre algún cambio ha sido informa-
para la gestión del proceso de GCS. se realizan los cambios, se audita el do, lo habremos realizado correcta-
proceso. y para asegurar que aquellos mente.

* En inglés, Software Configuration Management.
151

htwtpw://wlib.reelrsiao-luuncivioenrsaitrairoia.n.belotgspot.com

INGENIERfA DEL SOFTWARE. UN ENFOQUE PRÁCTICO .

El resultado del proceso de ingeniería del software es la moyoría de los cambiasson justificados. No lamente www.elsolucionario.net
una información que se puede dividir en tres amplias
categorías: (1) programas de computadora (tanto en for- las cambios. Mejar dicho, esté seguro que tiene
ma de código fuente como ejecutable), (2) documentos los mecanismospreparodos poro realizorlos.
que describen los programas de computadora (tanto téc-
nicos como de usuario) y ( 3 )datos (contenidos en el pro- 9.1.1. Líneas base
grama o externos a él). Los elementos que componen
toda la información producida como parte del proceso Una línea base es un concepto de gestión de configura-
de ingeniería del software se denominan colectivamen- ción del software que nos ayuda a controlar los cam-
te configuración del software. bios sin impedir seriamente los cambiosjustificados.La
IEEE (Estándar IEEE 610.12-1990) define una línea
A medida que progresa el proceso del software, el base como:
número de elementos de configuración del software
(ECSs)crece rápidamente. Una especificación del sis- Una especificación o producto que se ha revisado formal-
tema produce un plan del proyecto del software y una mente y sobre los que se ha llegado a un acuerdo, y que de ahí
especificación de requisitos del software (así como en adelante sirve como base para un desarrollo posterior y que
otros documentos relativos al hardware). A su vez, puede cambiarse solamente a través de procedimientos for-
éstos producen otros documentos para crear una jerar- males de control de cambios.
quía de información. Si simplemente cada ECS pro-
dujera otros ECSs, no habría prácticamente confusión. Una forma de describir la línea base es mediante una
Desgraciadamente, en el proceso entra en juego otra analogía:
variable -el cambio-. El cambio se puede producir
en cualquier momento y por cualquier razón. De hecho, Considere las puertas de la cocina en un gran restaurante.
la Primera Ley de la Ingeniería de Sistemas [BERSO] Para evitar colisiones,una puerta esta marcada como SALIDA
establece: Sin importar en qué momento del ciclo de y la otra como ENTRADA. Las puertas tienen topes que hacen
vida del sistema nos encontremos, el sistema cambia- que sólo se puedan abrir en la dirección apropiada.
rá y el deseo de cambiarlo persistirá a lo largo de todo
el ciclo de vida. Si un camarero recoge un pedido en la cocina, lo coloca en
una bandeja luego se da cuenta de que ha cogido un plato equi-
ente excepto el cambio vocado, puede cambiar el plato correctorápida e informalmente
antes de salir de la cocina.
¿Cuál es el origen de estos cambios? La respuesta a
esta pregunta es tan variada como los cambios mismos. Sin embargo, si abandona la cocina, le da,el plato al
Sin embargo, hay cuatro fuentes fundamentales de cam- cliente y luego se le informa de su error, debe seguir el
bios: siguiente procedimiento: (1) mirar en la orden de pedido si
ha habido algún error; ( 2 ) disculparse insistentemente; (3)
nuevos negocios o condiciones comerciales que dic- volver a la cocina por la puerta de ENTRADA; (4) expli-
tan los cambios en los requisitos del producto o en car el problema, etc.
las normas comerciales;
@LAc! V E
nuevas necesidades del cliente que demandan la
modificación de los datos producidos por sistemas Un producto de trabajo de la ingeniería
de información, funcionalidades entregadas por pro-
ductos o servicios entregados por un sistema basado del software se convierte en una línea base,
en computadora; solamente después de haber sido revisado y aprobado.

reorganización o crecimiento/reducción del negocio Una línea base es análoga a la cocina de un restau-
que provoca cambios en las prioridades del proyecto rante. Antes de que un elemento de configuración de
o en la estructuradel equipo de ingeniería del software; software se convierta en una línea base, el cambio se
puede llevar a cabo rápida e informalmente. Sin embar-
restricciones presupuestarias o de planificación que go, una vez que se establece una línea base, pasamos,
provocan una redefinición del sistema o producto. de forma figurada, por una puerta de un solo sentido.
Se pueden llevar a cabo los cambios, pero se debe apli-
La gestión de configuración del software (GCS) es un car un procedimiento formal para evaluar y verificar
conjunto de actividades desarrolladas para gestionar los cada cambio.
cambios a lo largo del ciclo de vida del software de com-
putadora. En el contexto de la ingeniería del software, defini-
mos una linea base como un punto de referencia en el
desarrollo del software que queda marcado por el envío
de uno o más elementos de configuración del software
y la aprobación del ECS obtenido mediante una revi-
sión técnica formal (Capítulo 8). Por ejemplo, los ele-

152

www.elsolucionario.net
.

C A P ~ T U L O9 G E S T t 6 N D E LA C O N F I G U R A C I O N DEL S O F T W A R E

mentos de una Especificación de Diseño se documen- so de ingeniería del software. Llevado al extremo, se pue- www.elsolucionario.net
tan y se revisan. Se encuentran errores y se corrigen. de considerar un ECS como una sección individual de
Cuando todas las partes de la especificaciónse han revi- una gran especificación o cada caso de prueba de un gran
sado, corregido y aprobado, la Especificación de Dise- conjunto de pruebas. De forma más realista, un ECS es
fio se convierteen una línea base. Sólo se pueden realizar un documento, un conjunto completo de casos de prue-
cambios futuros en la arquitectura del software (docu- ba o un componente de un programa dado (p. ej., una fun-
mentado en la Especificación de Diserío)tras haber sido ción de C++ o un paquete de ADA).
evaluados y aprobados. Aunque se pueden definir las
líneas base con cualquier nivel de detalle, las líneas base En realidad, los ECSs se organizan como objetos de
más comunes son las que se muestran en la Figura 9.1. configuración que han de ser catalogados en la base de
datos del proyecto con un nombre único. Un objeto de
Asegúrese que la base de datos del proyecta se montiene configuración tiene un nombre y unos atributos y está
sobre un entornoconirotodo, centralizodo. «conectado»a otros objetos mediante relaciones. De acuer-
do con la Figura 9.2, los objetos de configuración,Espe-
La progresión de acontecimientosque conducen a un cificación de Diseño, modelo de datos, componente N,
línea base está también ilustrada en la Figura 9.1. Las códigofuente y Especificaciónde Prueba, están defini-
tareas de la ingeniería del software producen uno o más dos por separado. Sin embargo, cada objeto está relacio-
ECSs. Una vez que un ECS se ha revisado y aprobado, nado con otros como muestran las flechas. Una flecha
se coloca en una base de datos del proyecto (también curvada representa una relaciónde composición.Es decir,
denominada biblioteca del proyecto o depósito de soft- modelo de datos y componente N son parte del objeto
ware).Cuando un miembro del equipo de ingeniería del Especificación de Diseño. Una flecha recta con dos pun-
software quiere hacer modificacionesen un ECS de línea tas representauna interrelación.Si se lleva a cabo un cam-
base, se copia de la base de datos del proyecto a un área bio sobre el objeto código fuente, las interrelaciones
de trabajo privada del ingeniero. Sin embargo, este ECS permiten al ingeniero de software determinar qué otros
extraído puede modificarse sólo si se siguen los contro-
les GCS (tratados más adelante en este capítulo). Las objetos (y ECSs) pueden verse afectados'.
flechas punteadas de la Figura 9.1 muestran el camino
de modificación de una línea base ECS.

modificada Elementos de configuración del software.

L

Tareas 7 aprobada
- 4 eingeniería
\
del software
A

extraída

controles.
GCS

Especificacion del sistema
Requisitos del software
Especificaciones de diseno

Planes/ Procedimientosi

FIGURA 9.1. ECS de línea base y base de datos del proyecto.

9.1.2.Elementos de configuración del software FIGURA 9.2. Objetos de configuración.

Ya hemos definido un elementode configuración del soft-
ware como la información creada como parte del proce-

' Estas relaciones se tratan en la Sección 9.2.1 y la estructura de la

base de datos del proyecto se trata con detalle en el Capítulo 3 1 .

153

www.elsolucionario.net

INGENIERfA DEL SOFTWARE. UN ENFOQUE PRACTICO .

GCS ¿Cómo identifica y gestiona una organización las www.elsolucionario.net
diferentes versiones existentes de un programa (y su
La gestión de configuración del softwarees un elemento documentación) de forma que se puedan introducir
importante de garantía de calidad del software. Su res- cambios eficientemente?
ponsabilidad principal es el control de cambios. Sin
embargo, la GCS también es responsable de la identi- ¿Cómo controla la organización los cambios antes
ficación de ECSs individuales y de las distintas versio- y después de que el software sea distribuido al
nes del software, de las auditorías de la configuración cliente?
del software para asegurar que se desarrollan adecua-
damente y de la generación de informes sobre todos los ¿Quién tiene la responsabilidad de aprobar y de asig-
cambios realizados en la configuración. nar prioridades a los cambios?

3Referencia Web ¿Cómo podemos garantizar que los cambios se han
llevado a cabo adecuadamente?
Las páginas amarillas de gestión de configuración
contienenel listado más complejode los recursos de GCS ¿Qué mecanismo se usa para avisar a otros de los
en la web. Para más información, consultar: cambios realizados?

www.ts.tolorado.edu/users/andre/ Estas cuestiones nos llevan a la definición de cinco
tonfiguration-management.ht ml tareas de GCS: Identificación, control de versiones,con-
trol de cambios, auditorías de configuración y genera-
Cualquier estudio de la GCS plantea una serie de pre- ción de informes.
guntas complejas:

Para controlar y gestionar los elementos de configura- S%
ción, se debe identificar cada uno de forma Única y lue-
go organizarlosmediante un enfoque orientado a objetos. CLAVE
Se pueden identificar dos tipos de objetos [CH089]: obje-
tos básicos y objetos compuestos2. Un objeto básico es los relaciones establecidosentre los objetos de
una «unidad de texto» creado por un ingeniero de soft- configuraciónpermiten al ingenierodel software
ware durante el análisis, diseño, codificación o pruebas. evaluar el impacto del cambio.
Por ejemplo, un objeto básico podría ser una sección de
una especificación de requisitos, un listado fuente de un Los recursos son «entidades que proporciona, proce-
módulo o un conjunto de casos prueba que se usan para sa, referencia o son, de alguna otra forma, requeridaspor
ejercitar el código. Un objeto compuesto es una colec- el objeto». [CH089], por ejemplo, los tipos de datos, las
ción de objetos básicos y de otros objetos compuestos. funciones específicase incluso los nombres de las varia-
De acuerdo con la Figura 9.2, la Especificación de Dise- bles pueden ser considerados recursos de objetos. La rea-
no es un objeto compuesto. Conceptualmente,se puede lización es una referencia a la «unidad de texto» para un
ver como una lista de referencias con nombre (identifi- objeto básico y nulo para un objeto compuesto.
cadas) que especificanobjetos básicos, tales como mode-
lo de datos y componente N. La identificación del objeto de configuración tam-
bién debe considerar las relaciones existentes entre los
Cada objeto tiene un conjunto de características dis- objetos identificados. Un objeto puede estar identifica-
tintas que le identifican de forma Única: un nombre, una do como <parte-de>un objeto compuesto. La relación
descripción,una lista de recursos y una «realización».El <parte-de>define una jerarquía de objetos. Por ejem-
nombre del objeto es una cadena de caracteres que iden- plo, utilizando esta sencilla notación
tifica al objeto sin ambigüedad. La descripción del obje-
to es una lista de elementos de datos que identifican: Diagrama E-R 1.4 <parte-de> modelo de datos;
Modelo de datos <parte-de> especificación de diseño;
el tipo de ECS (por ejemplo: documento, programa,
creamos una jerarquía de ECSs.
datos) que está representado por el objeto; No es realista asumir que la Única relación entre los

un identificador del proyecto; objetos de la jerarquía de objetos se establece median-
te largos caminos del árboljerárquico. En muchos casos,
la información de la versión y/o el cambio; los objetos están interrelacionados entre ramas de la

Como mecanismos para representar una versión completa de la
configuración del software se ha propuesto el concepto de objeto
agregado [CUS89]

154

www.elsolucionario.net
.

CAPiTULO 9 G E S T I 6 N DE LA C O N F I G U R A C I 6 N DEL SOFTWARE

jerarquía de objetos. Por ejemplo, el modelo de datos [GUS89] para cualquier objeto. El grafo d&evolución www.elsolucionario.net
está interrelacionadocon los diagramas de flujo de datos describe la historia de los cambios de un objeto y apa-
(suponiendoque se usa el análisis estructurado) y tam- rece ilustrado en la Figura 9.3. El objeto de configu-
bién está interrelacionado con un conjunto de casos de ración 1.O pasa la revisión y se convierte en el objeto
prueba para una clase particular de equivalencia. Las 1.1. Algunas correcciones y cambios mínimos produ-
relaciones a través de la estructura se pueden represen- cen las versiones 1.1.1 y 1.1.2, que van seguidas de
tar de la siguiente forma: una actualización importante, resultando el objeto 1.2.
La evolución de objeto 1.O sigue hacia 1.3 y 1.4, pero,
Modelo de datos &terrelacionado> modelo de flujo de al mismo tiempo, una gran modificación del objeto
datos; produce un nuevo camino de evolución, la versión 2.0.
Modelo de datos <interrelacionado> caso de prueba de la A estas dos versiones se les sigue dando soporte.
clase rn:
Se pueden realizar cambios en cualquier versión,
tos modelos de datos y los diagromasde fluio de datos aunque no necesariamente en todas. ¿Cómo puede el
se tratan en ei Capítulo 12. desarrollador establecerlas referencias de todos los com-
ponentes, documentos, casos de prueba de la versión
En el primer caso, la interrelación es entre objetos 1.4.? ¿Cómo puede saber el departamento comercial los
compuestos, mientras que en el segundo caso, la rela- nombres de los clientes que en la actualidad tienen la
ción es entre un objeto compuesto (modelo de datos) versión 2.1 .? ¿Cómo podemos estar seguros de que los
y un objeto básico (caso de prueba de la clase m). cambios en el código fuente de la versión 2.1 han sido
reflejados adecuadamente en la correspondiente docu-
Las interrelaciones entre los objetos de configura- mentación de diseño? Un elemento clave para respon-
ción se pueden representar con un lenguaje de interco- der a todas estas preguntas es la identificación.
nexión de módulos (LZM) [NAR87]. Un LIM describe
las interdependencias entre los objetos de configuración Herramientas CASE-GCS
y permite construir automáticamente cualquier versión
de un sistema. Se han desarrollado varias herramientas automáticas
para ayudaren la tarea de identificación(y otras de GCS).
El esquema de identificación de los objetos de soft- En algunos casos, se diseña la herramienta para mantener
ware debe tener en cuenta que los objetos evolucio- copias completas de las versiones más recientes.
nan a lo largo del proceso de ingeniería del software.
Antes de que un objeto se convierta en una línea base,
puede cambiar varias veces,.e incluso cuando ya es
una línea base, los cambios se presentan con bastante
frecuencia. Se puede crear un g a f o de evolución

El control de versiones combina procedimientos y herra- tipos de cambios funcionales aplicados al sistema
mientas para gestionar las versiones de los objetos de [LIE89].
configuración creados durante el proceso del software.
Clemm [CLE89] describe el control de versiones en el
contexto de la GCS:

El esquemoque cld. estoblecióporo los EfS deberia
incorporor el número de versión.

La gestión de configuraciónpermite a un usuario especifi- FIGURA 9.3.Grafo de evolución.
carconfiguracionesalternativasdel sistemade softwaremedim-
te la selección de las versiones adecuadas. Esto se puede Una representación de las diferentes versiones de un
gestionar asociando atributos a cada versión del softwarey per- sistema es el grafo de evolución mostrado en la Figura
mitiendo luego especificar [y construir]una configuración des- 9.3. Cada nodo del grafo es un objeto compuesto, es
cribiendo el conjunto de atributos deseado. decir, una versión completa del software. Cada versión
del software es una colección de ECSs (código fuente,
Los «atributos» que se mencionan pueden ser tan documentos, datos) y cada versión puede estar com-
sencillos como un número específico de versión aso-
ciado a cada objeto o tan complejos como una cadena
de variables lógicas (indicadores) que especifiquen

155

www.elsolucionario.net

INGENIERfA DEL SOFTWARE. UN ENFOQUE PRÁCTICO .

puesta de diferentesvariantes. Para ilustrar este concep- objetos del mismo nivel de revisión. Una variante es
to, consideremos una versión de un sencillo programa una colección diferente de objetos del mismo nivel de
revisión y, por tanto, coexiste en paralelo con otras
que está formado por los componentes 1 , 2 , 3 , 4y S3.El variantes. Una nueva versión se define cuando se reali-
componente 4 sólo se usa cuando el software se imple- zan cambios significativos en uno o más objetos.
menta para monitores de color. El componente5 se imple-
En la pasada década se propusieron diferentes enfo-
menta cuando se dispone de monitor monocromo. Por ques automatizados para el control de versiones. La pnn-
tanto, se pueden definir dos variantes de la versión: (1) cipal diferencia entre los distintos enfoques está en la
componentes 1 , 2 , 3 y 4; (2) componentes 1 , 2 , 3 y 5. sofisticación de los atributos que se usan para construir
versiones y variantes específicas de un sistema y en la
Para construir la variante adecuada de una determina- mecánica del prbceso de construcción.
da versión de un programa, a cada componente se le asig-
na una «tupla de atributos» -una lista de características variantes
que definen si se ha de utilizar el componente cuandose va A
a construiruna determinadaversión del software-. A cada
variante se le asigna uno o más atributos. Por ejemplo, se
podría usar un atributocolorpara definir qué componentes
se deben incluirpara soportede monitores en color.

Otra forma de establecer los conceptos de la relación versiones entidades www.elsolucionario.net
entre componentes, variantes y versiones (revisiones)
es representarlas como unfondo de objetos [REI89]. De 4 (componen*tes)
acuerdo con la Figura 9.4, la relación entre los objetos
de configuración y los componentes, las variantes y las m
versiones se pueden representar como un espacio tridi- objetos
mensional. Un componente consta de una colección de
FIGURA 9.4. Representación en fondo d e objetos
de los componentes, variantes y versiones
IRE189J.

La realidad del control de cunihio en un contextomoder- yectos, el control de cambios combina los procedimien-
no de ingeniería de software ha sido bien resumida por tos humanos y las herramientas automáticas para propor-
James Bach [BAC98] : cionar un mecanismo para el control del cambio. El
proceso de controi de cambios está ilustrado esquemáti-
El control de cambio es vital. Pero las fuerzas que lo hacen camente en la Figura 9.5. Se hace una petición de cam-
necesario tambien lo hacen molesto. Nos preocupamos por el bio4 y se evalúa para calcular el esfuerzo técnico, los
cambio porque una diminuta perturbacion en el código puede posibles efectos secundarios,el impacto global sobre otras
crear un gran fallo en el producto. Pero tambien puede reparar funciones del sistema y sobre otros objetos de la confi-
un gran fallo o habilitarexcelentescapacidadesnuevas. Nos preo- guración. Los resultados de la evaluación se presentan
cupamos por el cambio porque un desarrollador pícaro puede
hacer fracasarel proyecto; sin embargo las brillantes ideas naci-
das en la mente de estos pícaros, y un pesado proceso de con-
trol de cambio pueden disuadirle de hacer un trabajo creativo.

Bach reconoce que nos enfrentamos a una situacion
a equilibrar.Mucho control de cambio y crearemos pro-
blemas. Poco, y crearemos otros problemas.

En un gran proyecto de ingenieríade software,el cam-
bio incontrolado lleva rápidamenteal caos. Para estos pro-

En este contexto, el término <,componente)s)e refiere a todos los Aunque muchas de las peticiones de cambio se reciben durante la
objetos compuestos y objetos básicos di: un ESC de línea base. Por fase de mantenimiento, en este estudio tomamos un punto de vista
ejemplo, un componente de ((entrada)p)uede estar constituido por más amplio. Una petición de cambio puede aparecer en cualquier
seis componentes de software distintos, cada uno responsable de momento durante el proceso del software.
una subfunción de entrada.

156

htwtpw://wlib.reelrsiao-luuncivioenrsaitrairoia.n.belotgspot.com
.

CAPfTULO 9 GESTIÓN DE LA C O N F I G U R A C I 6 N DEL SOFTWARE

como un informe de cambios a la autoridad de control de y de auditoría. El objeto a cambiar es «dado de baja» de
cambios (ACC) -una persona o grupo que toma la deci- la base de datos del proyecto; serealiza el cambioy se apli-
sión final del estadoy la prioridad del cambio-. Para cada can las adecuadas actividades de SQA. Luego, el objeto
cambio aprobadose genera una orden de cambio de inge- es «dado de altan en la base de datos y se usan los meca-
nieriu (OCZ). La OCI describe el cambio a realizar, las res- nismos de control de versiones apropiados (Sección 9.4)
tricciones que se deben respetar y los criterios de revisión para crear la siguiente versión del software.

Se reconoce la necesidad del cambio

El usuario suscribe lai petición de cambio
El desarrollaidor la evalua

t
Se genera un informe de cambios
t
La autoridad de control de cambios decide
actu/ación, \
queda Petición
..rLa
petición pendiente de de cambio denegada

se genera la OCI Informacion del usuario

4.
Asignación personalizada a los objetos

de configuración

"Dar de baja" objetos (eleimentos) de configuración www.elsolucionario.net

Realización4del cambio
4.

Revisión de cambio (auditoría)

iLos elementos de configuración qu han cambiado son "dados de alta"
Establecimiento de una línea base para la prueba

4

Realización de actividades de garantía de calidad y de prueba

"Promoción" de los cambios para ser inc4 lu.idos en la siguiente versión (revisión)
Reconstrucción de la versiión adecuada del software
i

Revisión (auditoría) de los cambios en todos los elementos de configuración

i

Cambios incluidos en la nueva versión

tDistribución de a nueva versión

FIGURA 9.5. El proceso de control de cambios.

Objeto de configuración \
(versión modificada
Objeto de configuración
/
Información de (versión de línea base)
auditoría
Información Base de datos
1 1ingeniero de pertenencia del proyecto

Objeto de configuración Blo\queo Objeto de configuración

FIGURA 9.6. Control de acceso y de sincronización.

157

www.elsolucionario.net

INGENiERfA DEL SOFTWARE. U N ENFOQUE PRÁCTICO .

l a confusión conduce o los errores -algunas de ellas Antes de que un ECS se convierta en una línea www.elsolucionario.net
muy serias-. Los canirales de acceso base, sólo es necesario aplicar un control de cambios
y de sincranizoción evitan la confusión. lmplemente informal. El que haya desarrollado el ECS en cues-
ambos, inclusa si su enfoque tiene que ser simplificoda tión podrá hacer cualquier cambio justificado por el
para adaptarlo a su culturo de desarrolla. proyecto y por los requisitos técnicos (siempre que
los cambios no impacten en otros requisitos del sis-
Los procesos de «alta» y «baja» implementan dos tema más amplios que queden fuera del ámbito de tra-
elementos importantes del control de cambios --con- bajo del encargado del desarrollo). Una vez que el
trol de acceso y control de sincronización-. El control objeto ha pasado la revisión técnica formal y ha sido
de acceso gobierna los derechos de los ingenieros de aprobado, se crea la línea base. Una vez que el ECS
software a acceder y modificar objetos de configuración se convierte en una línea base, aparece el control de
concretos. El control de sincronización asegura que los cambios a nivel de proyecto. Ahora, para hacer un
cambios en paralelo, realizados por personas diferen- cambio, el encargado del desarrollo debe recibir la
tes, no se sobreescriben mutuamente [HAR89]. aprobación del gestor del proyecto (si el cambio es
«local») o de la ACC si el cambio impacta en otros
El flujo de control de acceso y de sincronización están ECSs. En algunos casos, se dispensa de generar for-
esquemáticamente ilustrados en la Figura 9.6. De acuer- malmente las peticiones de cambio, los informes de
do con una petición de cambio aprobada y una OCI, un cambio y las OCI. Sin embargo, hay que hacer una
ingeniero de software da de baja a un objeto de configu- evaluación de cada cambio así como un seguimiento
ración. Una función de control de acceso comprueba que y revisión de los mismos.
el ingeniero tiene autoridad para dar de baja el objeto, y
el control de sincronización bloquea el objeto en la base Cuando se distribuye el producto de software a los
de datos del proyecto, de forma que no se puedan hacer clientes, se instituye el control de cambios formal. El
más actualizaciones hasta que se haya reemplazado con procedimiento de control de cambios formal es el que
la nueva versión. Fíjese que se pueden dar de baja otras aparece definido en la Figura 9.5.
copias, pero no se podrán hacer otras actualizaciones. El
ingeniero de software modifica una copia del objeto de La autoridad de control de cambios (ACC) desem-
línea base, denominada versión extraida. Tras la SQA y peña un papel activo en el segundo y tercer nivel de
la prueba apropiada, se da de alta la versión modificada control. Dependiendo del tamaño y de las caracterís-
del objeto y se desbloquea el nuevo objeto de línea base. ticas del proyecto de software, la ACC puede estar
compuesta por una persona -el gestor del proyec-
Puede que algunos lectores empiecen a sentirse incó- to- o por varias personas (por ejemplo, represen-
modos con el nivel de burocracia que implica el proceso tantes del software, del hardware, de la ingeniería de
anterior. Esta sensación es normal. Sin la protección ade- las bases de datos, del soporte o del departamento
cuada, el control de cambios puede ralentizar el progre- comercial, etc.). El papel de la ACC es el de tener una
so y crear un papeleo innecesario. La mayoría de los visión general, o sea, evaluar el impacto del cambio
desarrolladores de software que disponen de mecanis- fuera del ECS en cuestión. ¿Cómo impactará el cam-
mos de control de cambios (desgraciadamentela mayo- bio en el hardware? ¿Cómo impactará en el rendi-
ría no tienen ninguno) han creadovarios niveles de control miento? ¿Cómo alterará el cambio la percepción del
para evitar los problemas mencionados anteriormente. cliente sobre el producto? ¿Cómo afectará el cambio
a la calidad y a la fiabilidad? La ACC se plantea estas
y otras muchas cuestiones.

h

Optepar un poco mós de controlde combio
del que pensobo necesitar en un principia. Es probable
que muchapuedo ser la cantidad apropiada.

La identificación,el control de versiones y el control de ha implementado correctamente?La respuesta es doble:
cambios ayudan al equipo de desarrollo de software a (1) revisiones técnicas formales y (2) auditorías de con-
mantener un orden que, de otro modo, llevaría a una figuración del software.
situación caótica y sin salida. Sin embargo, incluso los
mecanismos más correctos de control de cambios hacen Las revisiones técnicas formales (presentadas en deta-
un seguimiento al cambio sólo hasta que se ha genera- Ile en el Capítulo 8) se centran en la corrección técnica
do la OCI. ¿Cómo podemos asegurar que el cambio se del elemento de configuración que ha sido modificado.
Los revisores evalúan el ECS para determinar la con-

158

www.elsolucionario.net
.

CAPfTULO 9 GESTIÓN DE LA CONFIGURACI6N DEL SOFTWARE

sistencia con otros ECSs, las omisiones o los posibles 3. ¿Se ha seguido el proceso del software y se han apli-
efectos secundarios. Se debe llevar a cabo una revisión cado adecuadamente los estándares de ingeniería del
técnica formal para cualquier cambio que no sea trivial. software?

Una auditoría de configuración del sofmare com- 4. ¿Se han «resaltado» los cambios en el ECS? ¿Se han
plementa la revisión técnica formal al comprobar carac- especificado la fecha del cambio y el autor? ¿Reflejan
terísticas que generalmente no tiene en cuenta la los cambios los atributosdel objeto de Configuración?
revisión. La auditoría se plantea y responde las siguien-
tes preguntas: 5. ¿Se han seguido procedimientos de GCS para seña-
lar el cambio, registrarlo y divulgarlo?
2 Cuáles son las principales
preguntas que hacemos en 6. ¿Se han actualizado adecuadamente todos los ECSs
una auditoría de configuración? relacionados?

1. ¿Seha hecho el cambio especificado en la OCI? ¿Se En algunos casos, las preguntas de auditoría se inclu-
han incorporado modificaciones adicionales? yen en la revisión técnica formal. Sin embargo, cuando
la GCS es una actividad formal, la auditoría de la GCS
2. ¿Se ha llevado a cabo una revisión técnica formal se lleva a cabo independientemente por el grupo de
para evaluar la corrección técnica? garantía de calidad.

La generación de informes de estado de la configura- Desarrulleuna ((listoque se necesita con0cer.vwww.elsolucionario.net
ción (a veces denominada contabilidad de estado) es para cada ECS y monténgalaactualizada. Cuando
una tarea de GCS que responde a las siguientes pre- se realice un cambio, asegúrese que se informa
guntas: (1) ¿Qué pasó? (2) ¿Quién lo hizo? ( 3 ) ¿Cuán- a todos los que estón en la listo.
do pasó? (4) ¿Qué más se vio afectado?
La generación de informes de estado de la configura-
En la Figura 9.5 se ilustra el flujo de información ción desempeñaun papel vital en el éxito del proyecto de
para la generación de informes de estado de la confi- desarrollode software.Cuandoaparece involucradamucha
guración (IEC).Cada vez que se asigna una nueva iden- gente es muy fácil que se dé el síndromede que «la mano
tificación a un ECS o una identificación actualizada se izquierda ignora lo que hace la mano derecha». h e d e que
genera una entrada en el IEC. Cada vez que la ACC dos programadores intenten modificar el mismo ECS con
aprueba un cambio (o sea, se expide una OCI), se gene- intenciones diferentes y conflictivas. Un equipo de inge-
ra una entrada en el IEC. Cada vez que se lleva a cabo niería del software puede emplear meses de esfuerzo en
una auditoría de configuración, los resultados aparecen construirun software a partir de unas especificacionesde
como parte de una tarea de generación de un IEC. La hardware obsoletas. Puede que la persona que descubra
salida del IEC se puede situar en una base de datos inte- los efectos secundarios senos de un cambio propuestono
ractiva [TAYM] de forma que los encargados del desa- esté enterada de que el cambio se está realizando.El IEC
rrollo o del mantenimiento del software puedan acceder ayuda a eliminar esos problemas, mejorando la comuni-
a la información de cambios por categorías clave. Ade- cación entre todas las personas involucradas.
más, se genera un IEC regularmente con intención de
mantener a los gestores y a los profesionales al tanto de
los cambios importantes.

.. .. . .: % * .:'i .. .. < ' O. ,

La gestión de configuración del software es una activi- La configuracióndel software está compuesta por un
dad de protección que se aplica a lo largo de todo el pro- conjunto de objetos interrelacionados, también deno-
ceso del software. La GCS identifica, controla, audita e minados elementos de configuración del software, que
informa de las modificaciones que invariablemente se se producen como resultado de alguna actividad de inge-
dan al desarrollar el software una vez que ha sido dis- niería del software.Además de los documentos, los pro-
tribuido a los clientes. Cualquier información produci- gramas y los datos, también se puede poner bajo control
da como parte de la ingeniería del software se convierte de configuración el entorno de desarrollo utilizado para
en parte de una configuración del software. La confi- crear el software.
guración se organiza de tal forma que sea posible un
control organizado de los cambios. Una vez que se ha desarrollado y revisado un obje-
to de configuración, se convierte en una línea base. Los

159

www.elsolucionario.net

INGENIERfA DEL SOFTWARE. UN ENFOQUE PRÁCTICO .

cambios sobre un objeto de línea base conducen a la da que se realizan cambios en los objetos de la con-
creación de una nueva versión del objeto. La evolución figuración. El proceso de control de cambios comien-
de un programa se puede seguir examinando el histo- za con una petición de cambio, lleva a una decisión
rial de las revisiones de todos los objetos de su confi- de proseguir o no con el cambio y culmina con una
guración. Los objetos básicos y los compuestos forman actualización controlada del ECS que se ha de
un asociación de objetos que refleja las variantes y las cambiar.
versiones creadas. El control de versiones es un con-
junto de procedimientos y herramientas que se usan para La auditoría de configuración es una actividad de
gestionar el uso de los objetos. SQA que ayuda a asegurar que se mantiene la calidad
durante la realización de los cambios. Los informes de
El control de cambios es una actividad procedi- estado proporcionan información sobre cada cambio a
mental que asegura la calidad y la consistencia a medi- aquellos que tienen que estar informados.

[ADA89] Adams, E., M. Honda y T. Miller, «Object Mana- [IEE94] Sofiware Engineering Standards, edición de 1994, www.elsolucionario.net
gement in a CASE Environmenb, Proc. 11 th Intl. Conf IEEE Computer Society, 1994.
Software Engineering, IEEE, Pittsburg, PA, Mayo 1989,
pp. 154-163. [LIE89] Lie, A. et al., «Change Oriented Versioning in a Soft-
ware Engineeering Database», Proc. 2nd Intl. Workshop
[BAC98] Bach, J., «The Highs and Lows of Change Con- on Software Confguration Management, ACM, Prince-
trol», Computer,vol. 31, n.Q&Agosto 1998, pp. 113-115. ton, NJ, Octubre 1989, pp. 56-65

[BER80] Bersoff, E.H., V.D. Henderson y S. G. Siegel, Soft- [NAR87] Narayanaswamy, K., y W. Scacchi, «Maintatning
ware Configuration Management, Prentice-Hall, 1980. Configurations of Evolving Software Systemw, IEEE
Trans. Software Engineering, vol.SE-13, n.- 3, Marzo
[BRY80]Bryan, W., C.Chadboume,y S. Siegel,Sofryvare Con- 1987, pp. 324-334.
figurationMamgement, IEEE ComputerSociety Press, 1980.
[RE1891 Reichenberger, C., «Orthogonal Version Manage-
[CH089] Choi, S. C., y W. Scacchi, «Assuring the Correct- ment», Proc. 2nd Intl. Workshop on Software Configura-
ness of a Configured Software Description», Proc. 2nd tion Management, ACM, Princeton, NJ, Octubre 1989,
Intl. Workshop on Software Conftguration Management, pp. 137-140.
ACM, Princeton, NJ, Octubre 1989, pp. 66-75.
[ROC75] Rochkind, M., «The Source Code Control System»,
[CLE89] Clemm, G. M., «Replacing Version Control with IEEE Trans.SoftwareEngineering, vol. SE-1, n.O 4, Diciem-
Job Control», Proc. 2nd Intl. Workshop on Software Con- bre 1975,pp. 364-370.
figuration Management, ACM, Princeton, NJ, Octubre
1989, pp. 162-169. [TAY85]Taylor, B., «A Database Approach to Configuration
Management for Large Projectw, Proc. Conf. Software
[GUS89] Gustavsson, A., «Maintaining the Evaluation of Maintenance-1985, IEEE, Noviembre 1985, pp. 15-23.
Software Objects in an Integrated Environment», Proc.
2nd Intl. Workshop on Software Configuration Manage- [TIC821Tichy, W. E, «Design. Implementation and Evalua-
ment, ACM, Princeton, NJ, Octubre 1989, pp. 1 14-117. tion of a Revision Control System», Proc. 6"' Intl. Conf.
Software Engineering, IEEE, Tokyo, Septiembre 1982,pp.
[HAR89] Harter, R., «Configuration Managemenb, HP Pro- 58-67.
fessional, vol.3 , n.Q6, Junio 1989.

9.1. ¿Por qué es cierta la primera ley de la ingeniería de sis- mo programa? ¿Se manejaría de forma diferente el código
temas? ¿Cómo afecta a nuestra percepción de los paradigmas fuente que la documentación? ¿Cómo se evitaría que dos pro-
de la ingeniería del software? gramadores hicieran cambios diferentes sobre el mismo ECS
al mismo tiempo?
9.2. Exponga las razones de la existencia de líneas base con
sus propias palabras. 9.5. Investigue un poco sobre bases de datos orientadas a
objetos y escriba un artículo que describa cómo se podrían
9.3. Asuma que es el gestor de un pequeño proyecto. ¿Qué usar en el contexto de la GCS.
líneas base definiría para el proyecto y cómo las controlaría?

9.4. Diseñe un sistema de base de datos que permita a un 9.6. Utilice un modelo E-R (Capítulo 12) para describir las
interrelaciones entre los ECS (objetos) de la Sección 9.1.2.
ingeniero del software guardar, obtener referencias de forma

cruzada, buscar, actualizar, cambiar, etc., todos los elemen- 9.7. Investigue sobre herramientas de GCS existentes y des-

.t.o.,s.-,d.:e-..l:-a configuración del sao:fr-tw--a-re importantes. ¿Cómo _.__criba cómo implementan el control de versiones, de cambios
~ .---:---- 2- - 2- -L. 2- - - . E - '*
1- L-"- A- A-+,.- A- -:.

160

www.elsolucionario.net
.

CAPfTULO 9 GESTI6N DE LA CONFIGURACIÓN DEL SOFTWARE

9.8. Las relaciones «parte-de» e «interrelacionado» repre- 9.10.Utilizando la Figura 9.5 como guía, desarrolle un
sentan relaciones sencillas entre los objetos de configuración. esquema de trabajo más detallado aún para el control de cam-
Describa cinco relaciones adicionales que pudieran ser Útiles bios. Describa el papel de la ACC y sugiera formatos para la
en el contexto de la base de datos del proyecto. petición de cambio, el informe de cambios e IEC.

9.9. Investigue sobre una herramienta de GCS existente y 9.11.Desarrolle una lista de comprobaciones que se pueda
describa cómo implementa los mecanismos de control de ver- utilizar en las auditorías de configuración.
siones. Alternativamente,lea dos o tres de los artículos a los
que se hace referencia en este capítulo e investigue en las 9.12.¿Cuál es la diferencia entre una auditoria de GCS y una
estructurasde datos y los mecanismosque se usan para el con- revisión técnica formal? $e pueden juntar sus funciones en
trol de versiones. una sola revisión? ¿Cuáles son los pros y los contras?

Uno de los pocos libros escritos sobre la GCS en los últimos de las principales actividades de GC). Rawlings (SCM for www.elsolucionario.net
años lo realizaron Brown et al. (AntiPatterns and Patterns in Network Development Environments, McGraw-Hill, 1994)
Software Configuration Managernent, Wiley, 1989). es el primer libro de GCS en tratar el asunto con un énfasis
específico en el desarrollo de software en un entorno de red.
Los autores tratan las cosas que no hay que hacer (anti- Whitgift (Methods and Toolsf o r Software Configuration
patrones) cuando se implementa un proceso de GCS y enton- Management, Wiley, 1991)contiene una razonable cobertu-
ces consideran sus remedios. ra de todos los temas importantes de GCS, pero se distingue
por su estudio del diccionario de datos y tratamiento de aspec-
Lyon(Practica1 CM: Best Configuration Management tos de entornos CASE. Arnold y Bohner (Software Change
Practices for the 2 I s t Century, Raven Publishing, 1999) y lmpact Analysis, IEEE Computer Society Press, 1996) han
Mikkelsen y Pherigo (Practica1 Software Configuration editado una antología que estudia cómo analizar el impacto
Management:The Latenight Developer’s Handhook, Allyn & del cambio dentro de sistemas complejos basados en soft-
Bacon, 1997) proporcionan tutoriales practicos importantes ware.
de GCS. Ben-Menachem ( S o f i a r e Configuration Manage-
ment Guidebook, McGraw-Hill, 1994),Vacca (Implementing Puesto que la GCS identifica y controla documentos de
a Successful. Configuration. Change. Management. Program, ingenieria del software, los libros de Nagle (Handbookf o r
LS. Management Group, 1993), y Ayer y Patrinnostro (Soft- Preparing Engineering Documents: From Concept to Com-
ware Configuration Management, McGrawHill, 1992) pre- pletion, IEEE, 1996), Watts (Engineering Documentation
sentan correctas visiones para aquellos que todavia no se han Control Handbook: Configuration Management for Indu.stry,
introducido en la materia. Berlack (Software Configuration Noyes Publication, 1993).Ayer y Patnnnostro (Documenting
Management, Wiley, 1992, presenta una estudio Útil de con- the Software Process, McGraw-Hill, 1992) proporciona un
ceptos de la GCS, haciendo incapié en la importancia del dic- complemento con textos mas centrados en la GCS. La edi-
cionario de datos (repository) y de las herramientas en la ción de Marzo de 1999 de Crosstalk contiene vanos artícu-
gestion del cambio. Babich [BAB86] es un tratado abrevia- los Útiles de la GCS.
do, aunque eficaz, de temas practicos sobre la gestión de con-
figuración del software. En Internet están disponibles una gran variedad de fuen-
tes de información relacionadas con temas de gestión y de
Buckley (Implementing ConfigurationManagernent, IEEE software. Se puede encontrar una lista actualizada con refe-
Computer Society Press, 1993) estudia enfoques de gestión rencias a sitios (páginas) web que son relevantes para el Soft-
de configuraciónpara todos los elementos de un sistema (hard- ware en http://www.pressrnanS.com.
ware, software y firmware con unos detallados tratamientos

161


Click to View FlipBook Version