Está en la página 1de 10

,.

CONTROL DE CALIDAD
EN EL SOFTWARE
JOSE HERNANDO BAHAMON L.

Ingeniero en Electrnica y Telecomunicaciones de la Uni-


versidad del Cauca. Profesor Investigador en el rea de
microprocesadores en la facultad de Electrnica de la Uni-
versidad del Cauca. Gerente Nacional de Soporte a Clientes
en la Divisin de Computadores de Carvajal S.A. Participan-
te en numerosos cursos de actualizacin y profundizacin
en computadores, sistemas operativos, herramientas de
programacin de cuarta generacin, ingeniera de software,
etc. Jefe del Departamento de Sistemas del ICES!. Profesor
universitario. Conferencista. Investigador y Asesor de Em-
presas en Sistemas y Computacin.

El concepto de calidad total aplicado por dos por el hombre. Hoy en da las inves-
los japoneses como estrategia de desa- tigaciones en el rea de la ingeniera
rrollo a partir de la Segunda Guerra de software se centran en el desarrollo
Mundial, con el fin de recuperar su eco- de metodologas que garanticen y con-
noma y tener una presencia a nivel in- trolen la calidad en el software construi-
ternacional, ha empezado a populari- do.
zarse a nivel mundial y es el tema obli-
gado de las naciones, organizaciones, El presente documento busca ilustrar,
entidades e individuos que buscan con- adems del concepto de calidad en el
solidacin y presencia en los mercados software, las actividades necesarias
del mundo. para controlar y garantizar la calidad de
El concepto de calidad total propende los sistemas de informacin que se im-
por la bsqueda de la excelencia en plementen. El problema principal para
lodo lo que el hombre, la sociedad y las garantizar la calidad en el software est
organizaciones realizan. en la concepcin de la gran mayora de
las personas cuando suponen que la
Este concepto puede entonces aplicar- garanta de calidad es algo que se impo-
se al desarrollo de sistemas de informa- ne bajo una medida que se obtiene al
cin basados en equipos de procesa- finalizar un proyecto de software. El con-
miento de datos y en programas disea- trol de calidad en el software se funda-

43
,.,.. ICESI
menta en el principio de que la calidad que un software es de alta calidad cuan-
se construye a travs de un proceso do cumple con los requerimientos del
continuo de desarrollo, verificacin (re- usuario, pero:
visin) y optimizacin en diferentes eta-
- No es eficiente al utilizar los recursos
pas.
de la mquina (programas muy len
El control de calidad en el software, de- tos).
nominado SQA ("Software Quality As-
- O no es confiable; los resultados que
surance"), se basa en las siguientes
entrega varan, no son siempre igua
actividades:
les al procesar los mismos datos.
1) Uso de mtodos y herramientas de
- O no es fcil de utilizar.
anlisis, diseo, codificacin y prue-
ba. - O no es seguro.
2) Revisiones tcnicas formales, que - O no es fcil hacerle mantenimiento.
se aplican durante cada paso de la
Ingeniera de software. La calidad en el software es una mezcla
compleja de ciertos factores que varan
3) Estrategia de prueba multiescalada. de acuerdo con el usuario y con los tipos
de aplicacin.
4) Control de la documentacin del
software y de los cambios realiza- Podemos resumir el concepto de la ca-
dos. lidad en el software en los siguientes
puntos:
5) Procedimientos que aseguren un
ajuste a los estndares de desarro-
1) Los requerimientos del usuario so-
llo.
bre un programa son los fundamen-
6) Mecanismos de medida de la calidad tos desde los que se mide la calidad.
("mtricas"). La falta de concordancia con estos
requerimientos es una falta de cali-
dad.
DEFINICION DE CALIDAD
EN EL SOFTWARE 2) Los estndares especificados defi-
nen un conjunto de criterios de desa-
Se han formulado muchas definiciones rrollo que gu an la forma como se apli-
sobre el concepto de calidad en el soft- ca la ingeniera de software; si no se
ware. Para no transcribir estas definicio- siguen estos estndares, probable-
nes en el presente documento tratemos mente se obtendr software de baja
de responder la pregunta qu es cali- calidad.
dad en el software? Seguramente la pri-
mera respuesta en que pensara la ma- 3) Existe un conjunto de requerimien-
yora de las personas es: tos implcitos que a menudo no se
mencionan (eficiencia, facilidad de
La calidad en el software est en rela- uso, facilidad de mantenimiento). Si
cin directa con el cumplimiento de los el software falla en alcanzar los re-
requerimientos formulados por el usua- querimientos implcitos, la calidad en
rio, de tal forma que si un programa no el software queda en entredicho.
cumple con alguno de estos requeri-
mientos es un software de baja calidad.
FACTORES Y CRITERIOS
Aunque el criterio de cumplimiento de
QUE DETERMINAN LA CALIDAD
los requerimientos es un factor impor-
EN EL SOFTWARE
tante, no es el nico factor, ya que exis-
ten condiciones implcitas que el softwa- Los elementos bsicos empleados para
re debe cumplir como son eficiencia, medir la calidad en el software se deno-
seguridad, integridad, consistencia, minan factores; stos pueden clasificar-
etc.; por lo tanto no podemos afirmar se en dos grandes categoras:

44
/CE5/
a) Factores que pueden ser medidos 3) Los criterios son medibles y verifica-
directamente: bles a travs de mtricas (valor nu-
(N9 de errores/unidad tiempo). mrico de la medida de calidad).

b) Factores que slo pueden ser medi-


dos indirectamente; valores subjeti- La lista de criterios se ilustra en la gr-
vos (Ejemplo: facilidad de uso). fica 1 ,y la relacin entre los criterios y
los factores se muestra en la grfica 2.
Segn los estudios realizados por J.A.
McCall y P.K. Richards para la RADC
('Rome Air Development Center"), los
factores de calidad se pueden agrupar NEGOCIACIONES ENTRE
de acuerdo con tres aspectos importan- LOS FACTORES DE CALIDAD
tes de todo programa, como son sus
caractersticas operacionales, su capa- Si observamos los factores de calidad
cidad de soportar los cambios y su podemos ver que el incrementar un fac-
adaptabilidad a nuevos entornos. tor puede causar efectos negativos (de~
cremento) en otros factores. Por ejem-
la clasificacin sugerida por J.A. McCa" plo, si nosotros solicitamos que el factor
en su libro Factors in Software Ouality, . de facilidad de uso sea muy alto segu-
se ilustra en la tabla N 1, Y la descrip- ramente esto se lograr a expensas de
cin de cada factor se ilustra en la tabla disminuir la eficiencia del programa.
W2.
En la mayoria de los casos los factores Las relaciones negativas entre factores
son difciles de medir, para facilitar el se ilustran en la grfica 3.
proceso de cuantificar la calidad, McCall
propone dividir los factores en sus ca- Es necesario definir, basados en fa na
ractersticas independientes o criterios turaleza y tipo de software a producir,
medibles. Las razones fundamentales los factores que el usuario considere de
para dividir los factores son: mayor importancia y estimar el impacto
negativo que se pueda causar en otros
1) los criterios ofrecen una definicin
factores, con el fin de establecer una
ms concreta y completa de los fac-
negociacin hasta obtener la pondera-
tores.
cin deseada en cada factor. Esta acti-
2) Los criterios comunes a dos o ms vidad de negociacin debe establecerse
factores ayudan a ilustrar la interre- en la etapa de formulacin de los reque-
lacin entre los factores. rimientos.

TABLA 1

Aspecto Factor
Operacin del producto Cumplimiento
, Exactitud
Eficiencia
Integridad
Facilidad de uso
Revisin del producto Facilidad de mantenimiento
Facilidad de prueba
Flexibilidad
Transicin del producto Portabilidad
Reusabilidad
Interoperatividad

45
ICESI
,
METRICAS DE CONTROL Si la respuesta a la pregunta es "s",
DE LA CALIDAD EN EL SOFTWARE podemos calificar con 1 en la hoja de
chequeos este subcriterio; si la respues-
Se define como mtrica el valor asocia-
ta es "no" lo calificamos con O.
do con la respuesta a una pregunta for-
mulada en una revisin para evaluar o
establecer un atributo o un requerimien- El valor de la mtrica para el factor de
to de un criterio o subcriterio relacionado calidad que est siendo juzgado ser la
con un factor. Por ejemplo: suma de todos los valores obtenidos por
criterios/subcriterios divididos por el n-
Un criterio del factor de calidad "Eficien- mero de preguntas aplicadas.
cia" es "Ejecucin eficiente" y un atributo
de este subcriterio seria "datos agrupa-
En los estudios realizados por McCall
dos para procesamiento eficiente". En
se establece un conjunto de mtricas
una revisin para evaluar este subcrite-
para los diferentes criterios y subcrite-
rio se podra formular la siguiente pre-
rios. En la grfica 4 se ilustran algunas
gunta: "Estn los datos agrupados
de estas mtricas.
para permitir un procesamiento eficien-
te"?

TABLA 2

Factor calidad Definicin


Cumplimiento El grado en que un programa satisface sus especi-
ficaciones y consigue los objetivos de la misin
encomendada por el cliente.
Fiabilidad El grado en que se puede esperar que un progra-
ma lleve a cabo sus funciones esperadas con la
precisin requerida.
Eficiencia La cantidad de recursos de hardware y de cdigo
requerido por un programa para realizar su funcin.
Integridad El grado en que puede controlarse el acceso al
software o a los datos por personas no auto-
rizadas.
Facilidad de uso El esfuerzo requerido para aprender, trabajar,
preparar la entrada e interpretar la salida de un
programa.
Facilidad de El esfuerzo requerido para localizar y arreglar un
mantenimiento error en un programa.
Facilidad de El esfuerzo requerido para probar un programa de
prueba forma que se asegure que realiza la funcin re-
querida.
Portabilidad El esfuerzo requerido para transferir el programa
desde una configuracin de hardware o sistema
operativo a otro.
Reusabilidad El grado en que un programa (o partes de l) se
pueden reutilizar en otras aplicaciones.
Facilidad de El esfuerzo requerido para acoplar un sistema
interoperacin. a otro.

46
ICESI
GRAFICA 1

Facilidad de auditora Facilidad con que se puede comprobar la confor-


midad con los estndares.
Exactitud La precisin en los clculos y el control.
Normalizacin de las El grado en que se usan el ancho de banda, los
comunicaciones. protocolos y las interfases estndar:
Completitud El grado en que se ha conseguido la total imple-
mentacin de las funciones requeridas.
Concisin Lo compacto que es el programa en trminos de
Ineas de cdigo.
Consistencia El uso de un diseo uniforme y de tcnicas de do-
cumentacin.
Estandarizacin datos El uso de estructuras de datos y de tipos datos
estndar.
Tolerancia de errores El dao que se produce cuando el programa en-
cuentra un error.
Eficiencia en la ejecucin El rendimiento en tiempo de ejecucin de un
programa.
Facilidad de expansin El grado en que se puede ampliar el diseo arqui-
tectnico de datos.
Generalidad La amplitud de aplicacin potencial de los compo-
nentes del programa.
Independencia del El grado en que el software es independiente del
hardware hardware que usa.
Instrumentacin El grado en que el programa muestra su propio
funcionamiento e identifica errores que aparecen.
Modularidad Independencia funcional de los componentes
del programa.
Facilidad de operacin Grado de facilidad de operacin.
Seguridad La disponibilidad de mecanismos que controlen
o protejan los programas o los datos.
Autodocumentacin El grado en que el cdigo fuente proporciona
documentacin significativa.
Simplicidad El grado en que un programa puede ser entendido
sin dificultad.
Facilidad de trazo La posibilidad de seguir la pista de la represen-
tacin del diseo de los componentes reales del
programa hacia atrs.
Formacin El grado en que el software ayuda a permitir que
nuevos usuarios apliquen el sistema.

:~~~;1~~r-:c::;~;..ruft~ill~ii1i~~tt1~~lli-.t~mt~~~tffi~~t;' 47
)'~':'(--_;:J;,; ~--~:~~;::f1:~,3~i~~fttt\JP1~kr~~r~~0mt::r.:~t't"~~51L~t1i~~Bii?1~~S~ ICESI
GRAFICA 2

Cll
Mtrica de .o
Cl>
calidad del ::J "O g
software o
O)
a. "O
Cll
:g ::J
Cl> "O Cll ii al
e "O "O
:g -o
~:
,o Cll
'
-o
Cll Cll
"O
Cll
Clle
Cll
:g "O
Cll
:g ii O)~ -o
Cll
Factor u :g '
"O
ii :g ii c. ;g
l!: ii Cll
'5, "00)
::c 'x Cll
Cll
lJl e
de calidad o

Cll
u:::
U
l:U e
Cl> UCll
~E :
Cl> '
Cll
u.
t::
o
a..
::J
Cl>
ex:
2
.E
'
Cll
I.l.

Facilidad de auditora X X
Exactitud X
Normalizacin de
X
las comunicaciones
Completitud X
Complejidad X X X
Concisin X X X
Consistencia X X X X
Estandarizacin
X
en los datos
Tolerancia de errores X
Eficiencia en la ejecucin X
Facilidad de expansin X
Generalidad X X X X
Indep. del hardware X X
Instrumentacin X X X
Modulardad X X X X X X X
Facilidad de operacin X X
Seguridad x
Auto-documentacin X X X X X
Simplicidad X X X X
Indep, del sistema X X
Facilidad de traza X
Formacin X

48
ICESI
Grfica 3
~o
~e,

~~ rlJ-O
Cumplimiento .::> .~~
.~" i;}'"lr
Fiabilidad o x" .e,\:' rlJ-O .e,~o
~cJ i..'~ C:JO ~~
Eficiencia ~e,C8
oe,v ~Qi
Integridad ,\:'
x~
v. ~~
oe, ve,
~'"lr
Fcil. de uso o o o
v
o x'"lr oe,
~<:
o
Fcil. de mantenimiento o o x~
v o~
.;$0 o
Fcil. de prueba o o o o .~
x"e,-t- .~~
'lf

Flexibilidad o o o o o
o
~
~
Portabilidad o o 'lf
-e,>:>""
Rehusabilidad o o o o
Facilidad de Interop. o 1

o
Impacto negativo
Impacto positivo
Blanco no hay relacin

MEDIDA DE CONCI510N donde


y COMPLEJIDAD DE HALSTEAD
n1 = N9 total de operadores distintos
La teora de complejidad del software en el programa
propuesta por Maurice Halstead en su n2 = N total de operandos distintos en
libro Elements of Software Science, es el programa
probablemente la ms conocida y estu-
diada. Esta teoria est basada en la su- La medida de concisin (MC) se obtiene
posicin fundamental de que la medida por medio de la siguiente frmula:
de un programa bien estructurado est
en funcin de sus operandos yoperado- Nc-No
MC= 1 - - -
res.
No
Estudios realizados en las universida-
Otra medida propuesta por Halstead es
des sobre un gran nmero de progra-
el clculo del "Esfuerzo", entendido
mas existentes han confirmado la vali-
como la cantidad de tiempo requerido
dez de las premisas de Halstead.
para escribir, modificar, mantener o de-
purar un cdigo; para obtener esta me-
La medida de concisin propuesta por dida se deben evaluar las siguientes va-
Halstead involucra el clculo de dos va- riables:
riables:
A) El volumen (V): nmero de bits re-
A) La longitud calculada (Nc): queridos al especificar el programa.

Nc = n, Log 2 n, + n2 Log 2 n2 V = (N1 + N2) log2 (n1 + n2)

B) El volumen potencial (V*): nmero


B) La longitud observada (No):
de bits para la forma ms compacta
No = n1 + n2 del programa.

49
ICESI
GRAFICA 4
,---------------------------------_._--
Criterio completitud
atributos: 1) Referencia sin ambigedad (entrada, salida. funcin)
2) Definidas todas las referencias externas, calculadas
u obtenidas por fuentes externas.
3) Definidas todas las funciones usadas
4) Definidas todas las funciones referenciadas.
5) Definidas todas las condiciones para cada punto
de decisin.
6) Definidos todos los parmetros para la secuencia
de llamadas a procesos.
7) Todos los problemas reportados estn resueltos.
8) Diseo est de acuerdo con los requerimientos.
9) La codificacin est de acuerdo con el diseo

9
L valor c/atributo
1
V. mtrica criterio:
9

- Criterio: Consistencia
Subcriterio: Procedimiento consistente
atributos: a) Representacin estndar en el diseo'
b) Secuencia de llamada a mdulo segn lo establecido'
c) Entrada / salida segn lo establecido'
d) Manejo de errores segn el estndar'

Valor mtrica:
Nmero mdulos que violan la regla
Valor mtrica: 1-
Nmero total de mdulos

(") Significa Que la frmula de evaluacin se aplica a cada atribulo.

V* = (n1 + n2*) Log2 (n1 + n2*) Estas mtricas propuestas por Halstead
permiten al grupo de control de garanta
donde
del software obtener valores no subjeti
N1 = Ngtotal de ocurrencias vos de la calidad de un programa.
de los operadores
N2 = Ng total de ocurrencias
de los operandos Existen otras mtricas como la medida
n2* = Ng de parmetros de l/O en el de complejidad ciclomtica propuesta
procedimiento. por Tom McCabe en su artculo A "Soft
ware Complexity Measure", publicado
Usando el volumen y el volumen poten- en la revista IEEE Trans. Software En
cial se puede calcular el esfuerzo como: gineering, vol. 2, diciembre de 1976;
Volumen 2 V2 pero el objetivo de este documento no
esfuerzo = es ilustrar en detalle todas las mtricas
Volumen potencial V* propuestas.

50
ICESI
ACTIVIDADES DEL CONTROL tar las etapas de anlisis y diseo del
DE CALIDAD DEL SOFTWARE . sistema a construir; luego de creada la
especificacin del sistema (o prototipo),
Hasta el momento hemos mencionado se debe garantizar su calidad.
el concepto de calidad en el software y
algunas tcnicas empleadas para esta- La actividad que nos permite garantizar
blecer una medida cuantitativa de la ca- la calidad es la revisin tcnica formal
lidad. realizada por el grupo de control de ca-
lidad.
La historia de la garanta de la calidad
en el desarrollo de programas y siste- . Los objetivos de la revisin tcnica for-
mas arranca en los aos SO y 60, en mal son:
donde la calidad era responsabilidad 1) Descubrir errores en la funcin, la
nicamente del programador. Durante lgica o la implementacin de cual-
los aos 70 se introdujeron estndares quier representacin del software.
de garanta de calidad para el software
en los contratos militares y se incorpora- 2) Verificar que el software bajo revi-
ron las metodologas para el desarrollo sin alcanza los requerimientos.
de sistemas.
3) Garantizar que el software ha segui-
do los estndares predefinidos.
Actualmente la responsabilidad de la
garanta de calidad del software no es 4) Conseguir un software que sea de-
funcin de una persona; en esto estn sarrollado en forma uniforme.
comprometidos los ingenieros de anli-
sis y diseo, los gestores y coordinado- S) Propender por que los proyectos
res del proyecto, los usuarios, los pro- sean manejables.
gramadores y todas las personas invo- La revisin tcnica formal es un proceso
lucradas en el desarrollo del proyecto. que se aplica a cada una de las fases
del desarrollo del sistema en el momen-
La garanta de calidad en el software to en que el grupo de trabajo considera
no es una certificacin impuesta luego terminada su labor en esa fase.
de haber desarrollado un programa. Es
un proceso que involucra las siguientes Como resultado de la revisin tcnica
actividades: formal se obtiene una autorizacin para
que el grupo pueda continuar con la fase
1) Aplicacin de metodologas de inge- siguiente, o una recomendacin de no
niera de software para conseguir continuar hasta realizar las modificacio-
una especificacin y un diseo de nes y ajustes al proceso en 'la fase bajo
alta calidad. revisin (Grfico S).
2) Realizacin de revisones tcnicas Una vez que se ha terminado la imple-
formales. mentacin, se inicia la fase de pruebas
3) Prueba del software. del software. Durante esta fase se dise-
an casos de prueba que ayudan a la
4) Ajuste a los estndares de la organi- deteccin de errores producidos en las
zacin. fases anteriores y no detectados duran-
te la revisin tcnica formal.
5) Control de cambios y modificaciones
(mantenimiento). Para muchos grupos de desarrollo las
6) Mediciones.
pruebas del software son consideradas.
una "red de seguridad" para la garanta
7) Registro e ,informes. de la calidad.
La garanta de calidad en el software Una de las principales amenazas para
comienza realmente con la aplicacin mantener la calidad de un software, es
de una metodologia formal para enfren- el proceso de mantenimiento a travs

51
ICESI
,
GRAFICA 5

COMPARACJON COMPARACJON COMPARACJON

REVISION

DOCUMENTO DOCUMENTO DOCUMENTO

Sistema de control de la garanta de software

del cual se originan cambios que pue- Desafortunadamente algunos de estos


den introducir errores o crear efectos procedimientos son bastante complejos
laterales que propaguen errores. de implementar; por esta razn la mayo-
ra de las organizaciones en sus depar-
El proceso de control de cambios contri- tamentos de sistemas no estn utilizan-
buye directamente a mantener la cali- do el enfoque de control de calidad en
dad de un programa al formalizar las
el software.
peticiones de mantenimiento, evaluar la
naturaleza del cambio y controlar el im-
pacto de ste en el resto del programa.
BIBLlOGRAFIA
Finalmente la medicin de la calidad se
David N. Card, Software product assurance:
fundamenta en las mtricas, las cuales
measurement and control. In! & Softwa-
nos permiten cuantificar y tener valores re Technol. (Agosto 1988).
comparativos sobre el comportamiento
y la eficiencia, en el desarrollo de pro- B. A Kitchenham and S.J. Linkman, Design
gramas y sistemas para la organizacin. metrics in pratice, In! & Software Tech
nol. (Mayo 1990).
CONCLUSION: D. Ince, Software metrics: introduction, In! &
Software Technol. (Mayo 1990).
En los ltimos aos se estn adelantan-
do esfuerzos por parte de los grupos de David N Card, Software quality engineering,
investigacin en el rea de ingeniera In! & Software Technol. (Febrero 1990).
de software con el fin de formular estra- James Vincent, Albert Waters, John Sinclair,
tegias, procedimientos de control y me- Software Quality Assurance, volumen 1,
dida de la calidad en el software. Prentice Hall (1988).

52
1r~t::1

También podría gustarte