Documentos de Académico
Documentos de Profesional
Documentos de Cultura
4 PROCESO DE SOFTWARE
Y MÉTRICAS DE PROYECTOS
L
A medición es fundamental para cualquier disciplina de ingeniería, y la ingeniería del soft-
ware no es una excepción. La medición nos permite tener una visión más profunda propor-
cionando un mecanismo para la evaluación objetiva. Lord Kelvin en una ocasión dijo:
Cuando pueda medir lo que está diciendo y expresarlo con números, ya conoce algo sobre
ello; cuando no pueda medir, cuando no pueda expresar lo que dice con números, su conoci-
miento es precario y deficiente: puede ser el comienzo del conocimiento, pero en sus pensa-
mientos, apenas está avanzando hacia el escenario de la ciencia.
La comunidad de la ingeniería del software ha comenzado finalmente a tomarse en serio las
palabras de Lord Kelvin. Pero no sin frustraciones y sí con gran controversia.
Las métricas del software se refieren a un amplio elenco de mediciones para el software de
computadora. La medición se puede aplicar al proceso del software con el intento de mejorar-
lo sobre una base continua. Se puede utilizar en el proyecto del software para ayudar en la esti-
mación, el control de calidad, la evaluación de productividad y el control de proyectos.
Finalmente, el ingeniero de software puede utilizar la medición para ayudar a evaluar la cali-
dad de los resultados de trabajos técnicos y para ayudar en la toma de decisiones táctica a medi-
da que el proyecto evoluciona.
¿Qué es? El proceso del software y las ;Quién lo hace? Las métricas del soft- zando métricas orientadas al tamaño o
métricas del producto son una medida ware son analizadas y evaluadas por a la función. El resultado se analiza y
cuantitativa que permite a la gente del los administradores del software. A se compara con promedios anteriores
software tener una visión profunda de menudo las medidas son reunidas por de proyectos similares realizados con
la eficacia del proceso del software y de los ingenieros del software. la organización. Se evalúan las ten-
los proyectos que dirigen utilizando el ;Por qué es imporiante? Si no mides, dencias y se generan las conclusiones.
proceso como un marco de trabajo. Se sólo podrás juzgar basándote en una ¿Cuál es el producto obtenido?Es un
reúnen los datos básicos de calidad y evaluación subjetiva. Mediante la medi- conjunto de métricas del software que
productividad. Estos datos son entonces ción, se pueden señalar las tendencias proporcionan una visión profunda del
analizados, comparados con promedios (buenas o malas), realizar mejores esti- proceso y d e la comprensión del pro-
anteriores, y evaluados para determi- maciones, llevar a cabo una verdadera yecto.
nar las mejoras en la calidad y produc- mejora sobre el tiempo. ¿Cómo puedo estar seguro de que lo
tividad. Las métricas son también ¿Cuáles son los pasos? Comenzar defi- he hecho correctamente? Aplican-
utilizadas para señalar áreas con pro- niendo un conjunto limitado de medi- do un plan de medición sencillo pero
blemas de manera que se puedan desa- das de procesos, proyectos y productos consistente, que nunca utilizaremos
rrollar los remedios y mejorar el proceso que sean fáciles de recoger. Estas medi- para evaluar, premiar o castigar el ren-
del software. d a s son a menudo normalizadas utili- dimiento individual.
Dentro del contexto de la gestión de proyectos de software, en primer lugar existe una gran pre-
ocupación por las métricas de productividad y de calidad -medidas «de salida» (finalización) del
desarrollo del software, basadas en el esfuerzo y tiempo empleados, y medidas de la «utilidad» del
producto obtenid+.
Park, Goethert y Florac [PAR961 tratan en su guía de la medición del software las razones por
las que medimos:
Hay cuatro razones para medir los procesos del software, los productos y los recursos:
caracterizar
evaluar
predecir
mejorar
53
INGENIERIA DEL SOFTWARE. UN ENFOQUE PRACTICO
Caracterizamos para comprender mejor los procesos, los productos, los recursos y los entomos y para establecer
las líneas base para las comparaciones con evaluaciones futuras.
Evaluamos para determinar el estado con respecto al diseño. Las medidas utilizadas son los sensores que nos per-
miten conocer cuándo nuestros proyectos y nuestros procesos están perdiendo la pista, de modo que podamos poner-
los bajo control. También evaluamos para valorar la consecución de los objetivos de calidad y para evaluar el impacto
de la tecnología y las mejoras del proceso en los productos y procesos.
Predecimos para poder planificar. Realizar mediciones para la predicción implica aumentar la comprensión de las
relaciones entre los procesos y los productos y la construcción de modelos de estas relaciones, por lo que los valores
que observamos para algunos atributos pueden ser utilizados para predecir otros. Hacemos esto porque queremos esta-
blecer objetivos alcanzables para el coste, planificación, y calidad - d e manera que se puedan aplicar los recursos apro-
piados-. Las medidas de predicción también son la base para la extrapolación de tendencias, con lo que la estimación
para el coste, tiempo y calidad se puede actualizar basándose en la evidencia actual. Las proyecciones y las estima-
ciones basadas en datos históricos también nos ayudan a analizar riesgos y a realizar intercambios diseño/coste.
Medimos para mejorar cuando recogemos la información cuantitativa que nos ayuda a identificar obstáculos, pro-
blemas de raíz, ineficiencias y otras oportunidades para mejorar la calidad del producto y el rendimiento del proceso.
Aunque los términos medida, medición y métricas se [RAG95]. Un indicador proporciona una visión pro-
utilizan a menudo indistintamente, es importante des- funda que permite al gestor de proyectos o a los inge-
tacar las diferencias sutiles entre ellos. Como los tér- nieros de software ajustar el producto, el proyecto o
minos «medida» y «medición» se pueden utilizar el proceso para que las cosas salgan mejor.
como un nombre o como un verbo, las definiciones
de estos términos se pueden confundir. Dentro del con-
texto de la ingeniería del software, una medida pro-
porciona una indicación cuantitativa de la extensión,
cantidad, dimensiones, capacidad o tamaño de algu-
nos atributos de un proceso o producto. La medición
es el acto de determinar una medida. El ZEEE Stan-
dard Glossary of Software Engineering Terms [IEEE93]
define métrica como «una medida cuantitativa del gra-
do en que un sistema, componente o proceso posee
un atributo dado». Por ejemplo, cuatro equipos de software están tra-
Cuando, simplemente, se ha recopilado un solo bajando en un proyecto grande de software. Cada equi-
aspecto de los datos (por ejemplo: el número de erro- po debe conducir revisiones del diseño, pero puede
res descubiertos en la revisión de un módulo), se ha seleccionar el tipo de revisión que realice. Sobre el
establecido una medida. La medición aparece como examen de la métrica, errores encontrados por per-
resultado de la recopilación de uno o varios aspectos sona-hora consumidas, el gestor del proyecto notifi-
de los datos (por ejemplo: se investiga un número de ca que dos equipos que utilizan métodos de revisión
revisiones de módulos para recopilar medidas del más formales presentan un 40 por 100 más de erro-
número de errores encontrados durante cada revisión). res encontrados por persona-hora consumidas que
Una métrica del software relata de alguna forma las otros equipos. Suponiendo que todos los parámetros
medidas individuales sobre algún aspecto (por ejem- son iguales, esto proporciona al gestor del proyecto
plo: el número medio de errores encontrados por revi- un indicador en el que los métodos de revisión más
sión o el número medio de errores encontrados por formales pueden proporcionar un ahorro mayor en
persona y hora en revisiones’). inversión de tiempo que otras revisiones con un enfo-
Un ingeniero del software recopila medidas y desa- que menos formal. Esto puede sugerir que todos los
rrolla métricas para obtener indicadores. Un indica- equipos utilicen el enfoque más formal. La métrica
dor es una métrica o una combinación de métricas que proporciona al gestor una visión más profunda. Y ade-
proporcionan una visión profunda del proceso del soft- más le llevará a una toma de decisiones más funda-
ware, del proyecto de software o del producto en sí mentada.
TO
La medición es algo común en el mundo de la ingenie- En algunos casos, se pueden utilizar las mismas
ría. Se mide el consumo de energía, el peso, las dimen- métricas del software para determinar tanto el pro-
siones físicas, la temperatura, el voltaje, la relación yecto como los indicadores del proceso. En realidad,
señal-ruido.. . la lista es casi interminable. Por desgra- las medidas que recopila un equipo de proyecto y las
cia, la medición es mucho menos común en el mundo convierte en métricas para utilizarse durante un pro-
de la ingeniería del software. Existen problemas para yecto también pueden transmitirse a los que tienen la
ponerse de acuerdo sobre qué medir y las medidas de responsabilidad de mejorar el proceso del software.
evaluación de problemas recopilados. Por esta razón, se utilizan muchas de las mismas métri-
cas tanto en el dominio del proceso como en el del
proyecto.
Referenciu We6/ ’ 4.2.1. Métricas del proceso y mejoras
Se puede descargar una guío completo
de métricos del software desde: en el proceso del software
www.inv.nasa.gov/SWG/resources/ La Única forma racional de mejorar cualquier proceso
NASA-GB-001-94.pdf es medir atributos del proceso, desarrollar un juego de
Se deberían recopilar métricas para que los indica- métricas significativas según estos atributos y entonces
dores del proceso y del producto puedan ser ciertos. Los utilizar las métricas para proporcionar indicadores que
indicadores de proceso permiten a una organización de conducirán a una estrategia de mejora. Pero antes de
ingeniería del software tener una visión profunda de la estudiar las métricas del software y su impacto en la
eficacia de un proceso ya existente (por ejemplo: el para- mejoras de los procesos del software es importante des-
digma, las tareas de ingeniería del software, productos tacar que el proceso es el Único factor de «los controla-
de trabajo e hitos). También permiten que los gestores bles al mejorar la calidad del software y su rendimiento
evalúen lo que funciona y lo que no. Las métricas del como organización» [PAU94].
proceso se recopilan de todos los proyectos y durante
un largo período de tiempo. Su intento es proporcionar
indicadores que lleven a mejoras de los procesos de soft-
ware a largo plazo. CLAVE
Los indicadores de proyecto permiten al gestor de l o habilidad y la motivación del personal realizando
proyectos del software (1) evaluar el estado del proyecto el trobajo son los factores más importantes que influyen
en curso; (2) seguir la pista de los riesgos potenciales: en lo colidod del software.
(3) detectar las áreas de problemas antes de que se con-
viertan en «críticas»; (4) ajustar el flujo y las tareas del En la Figura 4.1, el proceso se sitúa en el centro de
trabajo, y ( 5 ) evaluar la habilidad del equipo del pro- un triángulo que conecta tres factores con una pro-
yecto en controlar la calidad de los productos de traba- funda influencia en la calidad del software y en el ren-
jo del software.
dimiento como organización. La destreza y la
motivación del personal se muestran como el Único
Producto
factor realmente influyente en calidad y en el rendi-
miento [BOE81]. La complejidad del producto pue-
de tener un impacto sustancial sobre la calidad y el
rendimiento del equipo. La tecnología (por ejemplo:
Características Condiciones métodos de la ingeniería del software) que utiliza el
proceso también tiene su impacto. Además, el trián-
gulo de proceso existe dentro de un círculo de condi-
ciones de entornos que incluyen entornos de desarrollo
(por ejemplo: herramientas CASE), condiciones de
gestión (por ejemplo: fechas tope, reglas de empresa)
y características del cliente (por ejemplo: facilidad de
comunicación).
de desarrollo
55
INGENIERfA DEL SOFTWARE. U N ENFOQUE P R Á C T I C O
56
C A P ~ T U L O4 PROCESO DEL SOFTWARE Y MÉTRICAS DEL PROYECTO
lnterfaz
hardware
7.7%
especificación
Comprobació rn
de errores
10.9%
El cliente dió
información
lnterfaz de usuario equivocada
11.7%
Origen de erroreddefectos Peticiones inadecuadas
Especificación/requisitos
Diseño
Código
Incorrecto Cambios
FIGURA 4.2. Causas de defectos y su origen para cuatro
proyectos de software iGRA941. FIGURA 4.3. Un diagrama de espina (Adaptado de [GRA921).
4.2.2. Métricas del proyecto La utilización de métricas para el proyecto tiene dos
Las métricas del proceso de software se utilizan para aspectos fundamentales. En primer lugar, estas métri-
propósitos estratégicos. Las medidas del proyecto de cas se utilizan para minimizar la planificación de desa-
software son tácticas. Esto es, las métricas de proyec- rrollo haciendo los ajustes necesarios que eviten retrasos
tos y los indicadores derivados de ellos los utilizan un y reduzcan problemas y riesgos potenciales. En segun-
gestor de proyectos y un equipo de software para adap- do lugar, las métricas para el proyecto se utilizan para
tar el flujo del trabajo del proyecto y las actividades evaluar la calidad de los productos en el momento actual
técnicas. y cuando sea necesario, modificando el enfoque técni-
co que mejore la calidad.
¿Cómo debemos
las técnicas de estimación de proyectos se estudian
utilizar las métricas
en el capítulo 5.
durante el proyecto?
La primera aplicación de métricas de proyectos en A medida que mejora la calidad, se minimizan los
la mayoría de los proyectos de software ocurre duran- defectos, y al tiempo que disminuye el número de defec-
te la estimación. Las métricas recopiladas de proyectos tos, la cantidad de trabajo que ha de rehacerse también
anteriores se utilizan como una base desde la que se rea- se reduce. Esto lleva a una reducción del coste global
lizan las estimaciones del esfuerzo y del tiempo para el del proyecto.
actual trabajo del software. A medida que avanza un Otro modelo de métricas del proyecto de software
proyecto, las medidas del esfuerzo y del tiempo consu- [HET93] sugiere que todos los proyectos deberían medir:
mido se comparan con las estimaciones originales (y la entradas: la dimensión de los recursos (p. ej.: perso-
planificación de proyectos). El gestor de proyectos uti- nas, entomo) que se requieren para realizar el trabajo,
liza estos datos para supervisar y controlar el avance.
A medida que comienza el trabajo técnico, otras salidas: medidas de las entregas o productos creados
métricas de proyectos comienzan a tener significado. durante el proceso de ingeniería del software,
Se miden los índices de producción representados resultados: medidas que indican la efectividad de las
mediante páginas de documentación, las horas de revi- entregas.
sión, los puntos de función y las líneas fuente entre- En realidad, este modelo se puede aplicar tanto al
gadas. Además, se sigue la pista de los errores proceso como al proyecto. En el contexto del proyecto,
detectados durante todas las tareas de ingeniería del el modelo se puede aplicar recursivamente a medida
software. Cuando va evolucionando el software des- que aparece cada actividad estructural. Por consiguien-
de la especificación al diseño, se recopilan las métri- te las salidas de una actividad se convierten en las entra-
cas técnicas (Capítulos 19 al 24) para evaluar la das de la siguiente. Las métricas de resultados se pueden
calidad del diseño y para proporcionar indicadores utilizar para proporcionar una indicación de la utilidad
que influirán en el enfoque tomado para la generación de los productos de trabajo cuando fluyen de una acti-
y prueba del código. vidad (o tarea) a la siguiente.
59
INGENIERfA DEL SOFTWARE. UN ENFOQUE PRÁCTICO
cl
Simple Medio Complejo
=a
3
de entradas x 3 4 6
Referencia Web
de usuario
Número
de salidas
cl x 4 5 7 =a
Se puede obtener información completo sobre los puntos
de funcibn en: www.ifpug.org
de usuario
Número
de peticiones x 3 4 6 =a
Los puntos de función se calculan [IFP94] comple-
tando la tabla de la Figura 4.5. Se determinan cinco
de usuario
Número
de archivos X l 10 15 a
=
características de dominios de información y se pro-
porcionan las cuentas en la posición apropiada de la
tabla. Los valores de los dominios de información se
definen de la forma siguiente?
Número
de interfaces
externas
x 5 7 10 a
=
Cuenta total
Número de entradas de usuario. Se cuenta cada
entrada de usuario que proporciona diferentes datos
orientados a la aplicación. Las entradas se deberían FIGURA 4.5. Cálculo de puntos de función.
diferenciar de las peticiones, las cuales se cuentan de
forma separada. Para calcular puntos de función (PF), se utiliza la
relación siguiente:
PF = cuenta-total x [0,65 + 0,Ol x 6(Fi )] (4.1)
en donde cuenta-total es la suma de todas las entradas
los puntos de función se derivan de medidas PF obtenidas de la figura 4.5.
directas del dominio de la información. Fi (i = 1 a 14) son «valores de ajuste de la compkji-
dad» según las respuestas a las siguientes preguntas
Número de salidas de usuario. Se cuenta cada salida
[ART85]:
que proporciona al usuario información orientada a la
aplicación. En este contexto la salida se refiere a infor- 1. ¿Requiere el sistema copias de seguridad y de recu-
mes, pantallas, mensajes de error, etc. Los elementos peración fiables?
de datos particulares dentro de un informe no se cuen- 2. ¿Se requiere comunicación de datos?
tan de forma separada. 3. ¿Existen funciones de procesamiento distribuido?
Número de pcticiones de usuario. Una petición se 4. ¿Es crítico el rendimiento?
define como una entrada interactiva que produce la gene- 5. ¿Se ejecutarh el sistema en un entorno operativo
ración de alguna respuesta del software inmediata en existente y fuertemente utilizado?
forma de salida inleractiva. Se cuenta cada petición por 6. i,Requiere el sistema entrada de datos interactiva?
separado.
Número de archivos. Se cuenta cada archivo maes- 7. ¿Requiere la entrada de datos interactiva que las
tro lógico (esto es, un grupo lógico de datos que puede transacciones de entrada se lleven a cabo sobre múl-
ser una parte de una gran base de datos o un archivo tiples pantallas u operaciones?
independiente). 8. ¿Se actualizan los archivos maestros de forma
Número de interfaces externas. Se cuentan todas interactiva?
las interfaces legibles por la máquina (por ejemplo: 9. ¿Son complejas las entradas, las salidas, los archi-
archivos de datos de cinta o disco) que se utilizan vos o las peticiones?
para transmitir información a otro sistema. 10. ¿Es complejo el procesamiento interno?
Una vez que se han recopilado los datos anterio- 11. ¿Se ha diseñado el código para ser reutilizable?
res, a la cuenta se asocia un valor de complejidad. 12. ¿Están incluidas en el diseño la conversión y la ins-
Las organizaciones que utilizan métodos de puntos talación'?
de función desarrollan criterios para determinar si 13. ¿Se ha diseñado el sistema para soportar múltiples
una entrada en particular es simple, media o com- instalaciones en diferentes organizaciones?
pleja. No obstante la determinación de la compleji- 14. ¿Se ha diseñado la aplicación para facilitar los cam-
dad es algo subjetiva. bios y para ser fácilmente utilizada por el usuario?
60
CAPfTULO 4 P R O C E S O DEL SOFTWARE Y M P T R I C A S DEL PROYECTO
Debe señalarse que también han sido propuestas otras extensiones En el capítulo 12 se presenta un estudio detallado de la dimensión
a los puntos de función para aplicarlas en trabajos de software de de comportamientos que incluyen estados y transiciones de estados.
tiempo real (p.ej., [ALA97]). Sin embargo, ninguno de estos parece
usarse ampliamente en la industria.
61
INGENIERfA DEL SOFTWARE. UN ENFOQUE PRACTICO
Para calcular puntos de función 3D, se utiliza la rela- El punto de función (y sus extensiones), como la
ción siguiente: medida LDC, es controvertido. Los partidarios afirman
que PF es independiente del lenguaje de programación,
índice=I + O +Q +F +E + T +R (4.2) lo cual es ideal para aplicaciones que utilizan lenguajes
en donde 1, O, Q, F, E, T y R representan valores con convencionales y no procedimentales; esto se basa en
peso de complejidad en los elementos tratados ante- los datos que probablemente se conocen al principio de
riormente: entradas, salidas, peticiones, estructuras de la evolución de un proyecto, y así el PF es más atracti-
datos internas, archivos externos, transformaciones y vo como enfoque de estimación.
transiciones, respectivamente. Cada valor con peso de
complejidad se calcula con la relación siguiente:
Sentencias
valor con peso de complejidad =
1-5 6-10 11+
(4.3)
en donde Nil , Ni, y Nih representan el número de apa- 1-10 Bajo Bajo Medio
riciones del elemento i (p. ej.: salidas) para cada nivel
11-20 Bajo Medio Alto
de complejidad (bajo, medio, alto), y Wi, , Wia y W,
son los pesos correspondientes. El cálculo global de los
puntos de función 3D se muestran en la Figura 4.6.
Se debería señalar que los puntos de función, los pun- FIGURA 4.6. Cálculo de los índices de los puntos
tos de característica y los puntos de función 3D repre- de función 30.
sentan lo mismo -«funcionalidad» o «utilidad»
entregada por el software-. En realidad, cada una de Los detractores afirman que el método requiere algún
estas medidas producen el mismo valor si sólo se con- «juego de manos» en el que el cálculo se base en datos
sidera la dimensión de datos de una aplicación. Para sis- subjetivos y no objetivos; y afirman que las cuentas del
temas de tiempo real más complejos, la cuenta de puntos dominio de información (y otras dimensiones) pueden
de característica a menudo se encuentra entre el 20 y el ser difíciles de recopilar después de realizado, y por últi-
35 por 100 más que la cuenta determinada sólo con los mo que el PF no tiene un significado físico directo -es
puntos de función. simplemente un número-.
E s importante destacar que la da individualización de compo- zación de mantenimiento podría observar el tamaño de los pro-
nentes importantes. se puede interpretar de muchas maneras. yectos en relación con los pedidos de cambio de ingeniería (Capi-
Algunos ingenieros del software que trabajan en un entorno de tulo 9). Una organización de sistemas de información podría
desarrollo orientado a objetos (Cuarta Parte) utilizan ciertas cla- observar el número de procesos de negocio a los que impacta una
ses u objetos como métrica dominante del tamaño. Una organi- aplicación.
62
CAPfTULO 4 P R O C E S O DEL SOFTWARE Y MÉTRICAS DEL P R O Y E C T O
Una revisión de los datos anteriores indica que una comparar la relación LDC/personas-mes (ó PF/perso-
LDC de C++ proporciona aproximadamente 1,6 veces nas-mes) de un grupo con los datos similares de otro
la «funcionalidad» (de media) que una LDC de FOR- grupo? ¿Deben los gestores evaluar el rendimiento de
TRAN. Además, una LDC de Visual Basic proporcio- las personas usando estas métricas? La respuesta a estas
na 3 veces la funcionalidad de una LDC de un lenguaje preguntas es un rotundo «No». La razón para esta res-
de programación convencional. En [JON98] se presen- puesta es que hay muchos factores que influyen en la
tan datos más precisos sobre las relaciones entre los PF productividad, haciendo que la comparación de «man-
y las LDC, que pueden ser usados para «repasar» pro- zanas y naranjas» sea mal interpretada con facilidad.
gramas existentes, determinando sus medidas en PF (por Se han encontrado los puntos de función y las LDC
ejemplo, para calcular el número de puntos de función basadas en métricas para ser predicciones relatiuamen-
cuando se conoce la cantidad de LDC entregada). te exactas del esfuerzo y coste del desarrollo del soft-
Las medidas LDC y PF se utilizan a menudo para ware. Sin embargo, para utilizar LDC y PF en las
extraer métricas de productividad. Esta invariabilidad técnicas de estimación (capítulo S), debe establecerse
conduce al debate sobre el uso de tales datos. Se debe una línea base de información histórica.
Cavano hicieron su trabajo, con gran influencia, en 1978. a sus usuarios finales-. Cuando la proporción de
Pero los atributos que proporcionan una indicación de desperdicios en el coste global del proyecto (para
la calidad del software siguen siendo los mismos. muchos proyectos) se representa como una función
del tiempo, el gestor puede determinar si la facilidad
total del software producido por una organización de
desarrollo está mejorando. Se pueden emprender
%&"E acciones a partir de las conclusiones obtenidas de
Sorprendentemente, los factores que definían la calidad esa información.
del software en el año 1970 san los mismos factores Integridad. En esta época de «hackers» y dire-
que continúan definiendo la calidad del software walls», la integridad del software ha llegado a tener
en la primera década de este siglo. mucha importancia. Este atributo mide la capacidad
de un sistema para resistir ataques (tanto accidentales
¿Qué significa esto? Si una organización de software como intencionados) contra su seguridad. El ataque
adopta un juego de factores de calidad como una «lista se puede realizar en cualquiera de los tres componentes
de comprobación» para evaluar la calidad del softwa- del software: programas, datos y documentos.
re, es probable que el software construido hoy siga exhi-
biendo la calidad dentro de las primeras décadas de este Para medir la integridad, se tienen que definir
siglo. Incluso, cuando las arquitecturas de cálculo sufren dos atributos adicionales: amenaza y seguridad.
cambios radicales (como seguramente ocurrirá), el soft- Amenaza es la probabilidad (que se puede estimar
ware que exhibe alta calidad en operación, transición y o deducir de la evidencia empírica) de que un ata-
revisión continuará sirviendo también a sus usuarios. que de un tipo determinado ocurra en un tiempo
determinado. La seguridad es la probabilidad (que
se puede estimar o deducir de la evidencia empí-
4.5.2. Medida de la calidad rica) de que se pueda repeler el ataque de un tipo
Aunque hay muchas medidas de la calidad de softwa- determinado. La integridad del sistema se puede
re, la corrección,facilidad de mantenimiento, integri- definir como:
dad, y facilidad de uso proporcionan indicadores Útiles
para el equipo del proyecto. Gilb [GIL881 ha sugerido integridad = C [( 1 - amenaza) x (1 - seguridad)]
definiciones y medidas para cada uno de ellos. donde se suman la amenaza y la seguridad para cada
Corrección. Un programa debe operar correcta- tipo de ataque.
mente o proporcionará poco valor a sus usuarios. La
corrección es el grado en el que el software lleva a Facilidad de uso. El calificativo «amigable con el
cabo su función requerida. La medida más común de usuario» se ha convertido en omnipresente en las dis-
corrección es defectos por KLDC, en donde un cusiones sobre productos de software. Si un programa
defecto se define como una falta verificada de con- no es «amigable con el usuario», frecuentemente está
formidad con los requisitos. abocado al fracaso, incluso aunque las funciones que
realice sean valiosas. La facilidad de uso es un intento
Facilidad de mantenimiento. El mantenimiento de cuantificar «lo amigable que puede ser con el usua-
del software cuenta con más esfuerzo que cualquier rio» y se puede medir en función de cuatro caracte-
otra actividad de ingeniería del software. La facili- rísticas: (1) habilidad intelectual y/o física requerida
dad de mantenimiento es la facilidad con la que se para aprender el sistema; (2) el tiempo requerido para
puede corregir un programa si se encuentra un error, llegar a ser moderadamente eficiente en el uso del sis-
se puede adaptar si su entorno cambia, o mejorar si tema; ( 3 ) aumento neto en productividad (sobre el
el cliente desea un cambio de requisitos. No hay enfoque que el sistema reemplaza) medida cuando
forma de medir directamente la facilidad de mante- alguien utiliza el sistema moderadamente y eficiente-
nimiento; por consiguiente, se deben utilizar medi- mente; y (4) valoración subjetiva (a veces obtenida
das indirectas. Una simple métrica orientada al mediante un cuestionario) de la disposición de los
tiempo es el tiempo medio de cambio (TMC),es decir usuarios hacia el sistema. En el Capítulo 15 se estu-
el tiempo que se tarda en analizar la petición de cam- dia más detalladamente este aspecto.
bio, en diseñar una modificación adecuada, en imple-
mentar el cambio, en probarlo y en distribuir el Los cuatro factores anteriores son sólo un ejemplo
cambio a todos los usuarios. Como media, los pro- de todos los que se han propuesto como medidas de la
gramas que se pueden mantener tendrán un TMC calidad del software. El Capítulo 19 considera este tema
más bajo (para tipos equivalentes de cambios) que con más detalle.
los programas que no son más fáciles de mantener.
Hitachi [TAJS11 ha utilizado una métrica orien- 4.5.3. Eficacia de la Eliminación de Defectos
tada al coste para la capacidad de mantenimiento lla- Una métrica de la calidad que proporciona beneficios
mada «desperdicios» -e1 coste en corregir defectos tanto a nivel del proyecto como del proceso, es la efi-
encontrados después de haber distribuido el software cacia de la eliminación de defectos (EED). En esen-
64
CAPÍTULO 4 P R O C E S O DEL SOFTWARE Y M t T R I C A S DEL P R O Y E C T O
cia, EED es una medida de la habilidad de filtrar las proyecto de software instituya técnicas para encontrar
actividades de la garantía de calidad y de control al todos los errores posibles antes de su entrega.
aplicarse a todas las actividades del marco de trabajo EED también se puede utilizar dentro del proyecto
del proceso. para evaluar la habilidad de un equipo en encontrar erro-
Cuando un proyecto se toma en consideración glo- res antes de que pasen a la siguiente actividad estructu-
balmente, EED se define de la forma siguiente: ral o tarea de ingeniería del software. Por ejemplo, la tarea
del análisis de los requisitos produce un modelo de aná-
EED = E / (E + D) (4.4) lisis que se puede revisar para encontrar y corregir erro-
donde E es el número de errores encontrados antes de res. Esos errores que no se encuentren durante la revisión
la entrega del software al usuario final y D es el núme- del modelo de análisis se pasan a la tarea de diseño (en
ro de defectos encontrados después de la entrega. donde se pueden encontrar o no). Cuando se utilizan en
este contexto, EED se vuelve a definir como:
EEDi = Ei /(Ei + Ei + i ) (4.5)
¿Qué es la eficiencia
de eliminación de defectos? en donde Ei es el número de errores encontrado duran-
te la actividad de ingeniería del software i y Ei es el
número de errores encontrado durante la actividad de
El valor ideal de EED es 1. Esto es, no se han encon- ingeniería del software i + I que se puede seguir para
trado defectos en ei software. De forma realista, D será llegar a errores que no se detectaron en la actividad de
mayor que cero, pero el valor de EED todavía se pue- la ingeniería del software i.
de aproximar a 1. Cuando E aumenta (para un valor de
D dado), el valor total de EED empieza a aproximarse
a 1. De hecho, a medida que E aumenta, es probable
que el valor final de D disminuya (los errores se filtran Utilice EED como una medido de la eficiencio
antes de que se conviertan en defectos). Si se utilizan de sus primeros octividodes de SQA. Si EED es bajo
como una métrica que proporciona un indicador de la durante el análisis y diseño, emplee olgón tiempo
habilidad de filtrar las actividades de la garantía de la mejorondo la forma de conducir los revisiones técnicos
calidad y del control, EED anima a que el equipo del formoles.
La mayoría de los desarrolladores de software todavía 4.6.1. Argumentos para las Métricas del Software
no miden, y por desgracia, la mayoría no desean ni ¿Por qué es tan importante medir el proceso de inge-
comenzar. Como se ha señalado en este capítulo, el pro- niería del software y el producto (software) que produ-
blema es cultural. En un intento por recopilar medidas ce? La respuesta es relativamente obvia. Si no se mide,
en donde no se haya recopilado nada anteriormente, a no hay una forma real de determinar si se está mejo-
menudo se opone resistencia: «¿Por qué necesitamos rando. Y si no se está mejorando, se está perdido.
hacer esto?», se pregunta un gestor de proyectos ago-
biado. «No entiendo por qué», se queja un profesional
saturado de trabajo.
En esta sección, consideraremos algunos argumen-
tos para las métricas del software y presentaremos un úmerov en muchos
enfoque para instituir un programa de métricas dentro .. Estos números nos
n o dirigir nuestros
de una organización de ingeniería del software. Pero
antes de empezar, consideremos algunas palabras de
cordura sugeridas por Grady y Caswell [GRA87]:
Algunas de las cosas que describimos aquí parecen bastan-
te fáciles. Realmente, sin embargo, establecer un programa de La gestión de alto nivel puede establecer objetivos
métricas del software con éxito es un trabajo duro. Cuando
decimos esto debes esperar al menos tres años antes de que
significativos de mejora del proceso de ingeniería del
estén disponibles las tendencias organizativas, lo que puede software solicitando y evaluando las medidas de pro-
darte alguna idea del ámbito de tal esfuerzo. ductividad y de calidad. En el Capítulo1 se señaló que
el software es un aspecto de gestión estratégico para
La advertencia sugerida por los autores se conside- muchas compañías. Si el proceso por el que se desa-
ra de un gran valor, pero los beneficios de la medición rrolla puede ser mejorado, se producirá un impacto direc-
son tan convincentes que obligan a realizar este duro to en lo sustancial. Pero para establecer objetivos de
trabajo. mejora, se debe comprender el estado actual de desa-
65
INGENIERfA DEL SOFTWARE. U N ENFOQUE PRACTICO
rrollo del software. Por lo tanto la medición se utiliza ( 3 ) las medidas deben ser consistentes, por ejemplo, una
para establecer una línea base del proceso desde donde línea de código debe interpretarse consistentemente en
se pueden evaluar las mejoras. todos los proyectos para los que se han reunido los datos:
Los rigores del trabajo diario de un proyecto del soft- (4)las aplicaciones deben ser semejantes para trabajar en
ware no dejan mucho tiempo para pensar en estrategias. la estimación -tiene poco sentido utilizar una línea base
Los gestores de proyecto de software están más preo- obtenida en un trabajo de sistemas de información batch
cupados por aspectos mundanos (aunque igualmente para estimar una aplicación empotrada de tiempo real-.
importantes): desarrollo de estimaciones significativas
del proyecto; producción de sistemas de alta calidad y 4.6.3. Colección de métricas, cómputo y evaluación
terminar el producto a tiempo. Mediante el uso de medi-
ción para establecer una línea base del proyecto, cada El proceso que establece una línea base se muestra en la
uno de estos asuntos se hace más fácil de manejar. Ya Figura 4.7. Idealmente, los datos necesarios para estable-
hemos apuntado que la línea base sirve como base para cer una línea base se han ido recopilando a medida que se
la estimación. Además, la recopilación de métricas de ha ido progresando. Por desgracia, este no es el caso. Por
calidad permite a una organización «sintonizar» su pro- consiguiente, la recopilación de datos requiere una inves-
ceso de ingeniería del software para eliminar las causas tigación histórica de los proyectos anteriores para recons-
«POCO vitales» de los defectos que tienen el mayor
truir los datos requeridos. Una vez que se han recopilado
impacto en el desarrollo del software’. medidas (incuestionablemente el paso más difícil), el cál-
Técnicamente (en el fondo), las métricas del soft- culo de métricas es posible. Dependiendo de la amplitud
ware, cuando se aplican al producto, proporcionan bene- de las medidas recopiladas, las métricas pueden abarcar
ficios inmediatos. Cuando se ha terminado el diseño del una gran gama de métricas LDC y PF, así como métricas
software, la mayoría de los que desarrollan pueden estar de la calidad y orientadas al proyecto. Finalmente, las
ansiosos por obtener respuestas a preguntas como: métricas se deben evaluar y aplicar durante la estimación,
el trabajo técnico, el control de proyectos y la mejora del
¿Qué requisitos del usuario son más susceptibles al proceso. La evaluación de métricas se centra en las razo-
cambio? nes de los resultados obtenidos, y produce un grupo de
¿Qué módulos del sistema son más propensos a error? indicadores que guían el proyecto o el proceso.
¿Cómo se debe planificar la prueba para cada
módulo?
¿Cuántos errores (de tipos concretos) puede esperar
cuando comience la prueba? los datos de las métricas de línea base deberían
Se pueden encontrar respuestas a esas preguntas si recogerse de una gran muestra representativa
se han recopilado métricas y se han usado como guía de proyectos de software del pasado.
técnica. En posteriores capítulos examinaremos cómo
se hace esto.
66
CAPfTULO 4 PROCESO DEL SOFTWARE Y MÉTRICAS DEL P R O Y E C T O
Uno de los problemas al que se han enfrentado los tra- Una vez que estas cuestiones se hayan establecido,
bajadores de las métricas durante las dos últimas déca- entonces es cuando puede ser desarrollada una métrica
das es la de desarrollar métricas que fueran útiles para que pueda ayudar a que se cumpla el objetivo planteado
el diseñador de software. Ha sido toda una historia de que naturalmente emergerá a partir de estas cuestiones.
utilización de la métrica dentro de los entornos indus- La importancia de OPM proviene no solamente del
triales basada en el simple criterio de lo que era facili- hecho de que es uno de los primeros intentos de desa-
tar la medida, más que emplear cualquier criterio rrollar un conjunto de medidas adecuado que pueda ser
relacionado con la utilidad. El panorama de la Última aplicado al software, sino también al hecho de que está
mitad de los años 80 y la primera mitad de la década de relacionado con el paradigma de mejora de procesos
los 90, constató el hecho de que mientras había sido que ha sido discutido previamente. Basili ha desarro-
desarrollado mucho trabajo en la validación de la métri- llado un paradigma de mejora de calidad dentro del cual
ca y en el esclarecimiento de los principios teóricos el método OPM puede encajarse perfectamente. El para-
detrás de ella, muy poco había sido hecho para dotar al digma comprende tres etapas:
diseñador de software con herramientas para la selec- Un proceso de llevar a cabo una auditoría de un pro-
ción o construcción de métricas. yecto y su entorno estableciendo metas u objetivos
El objetivo de esta sección es describir OPM, que es de calidad para el proyecto y seleccionando herra-
casi con certeza el método de desarrollo de métrica más mientas adecuadas y métodos y tecnologías de ges-
ampliamente aplicado y mejor conocido y que ha sido desa- tión para que dichos objetivos de calidad tengan una
rrollado por Victor Basili y sus colaboradores de la Uni- oportunidad de cumplirse.
versidad de Maryland. Basili y sus colaboradores tenían
Un proceso de ejecutar un proyecto y chequear los
ya una larga historia de validación de métricas en la déca-
da de los 80 y el mét6do OPM (objetivo, pregunta y métri-
datos relacionados con esas metas u objetivos de cali-
ca) surgió de un trabajo que fue desarrollado dentro de un dad. Este proceso es llevado a cabo en conjunción
laboratorio de ingeniería del software esponsorizado por con otro proceso paralelo de actuación sobre los pro-
la Agencia Americana del Espacio, NASA. pios datos cuando se vea que el proyecto corre peli-
Basili establecía que para que una organización tuvie- gro de no cumplir con los objetivos de calidad.
ra un programa de medida exacto era necesario que Un proceso para el análisis de los datos del segundo
tuviera constancia de tres componentes: paso, con el fin de poder hacer sugerencias para una
1. Un proceso donde pudieran articularse metas u obje- mayor mejora. Este proceso implicaría el analizar
tivos para sus proyectos. los problemas ya en la etapa de recolección de datos,
problemas en la implementación de las directivas de
2. Un proceso donde estas metas pudieran ser traducidas calidad y problemas en la interpretación de los datos.
a los datos del proyecto que exactamente reflejasen
dichas metas u objetivos en términos de software. Basili [BAS96] ha proporcionado una serie de plan-
3. Un proceso que interpretara los datos del proyecto tillas que son útiles para los desarrolládores que deseen
con el fin de entender los objetivos. utilizar el método OPM para desarrollar métricas rea-
listas sobre sus proyectos. Los objetivos de OPM pue-
Un ejemplo de un objetivo típico que bien podría ser
den articularse por medio de tres plantillas que cubren
adoptado por una empresa es que la cantidad de trabajo
el propósito, la perspectiva y el entorno.
de revisión sobre un diseño de sistema debido a pro- La plantilla o esquema de cálculo denominada de
blemas que fueran descubiertos por los programadores propósito se utiliza para articular o comparar lo que está
se redujera al 80 por ciento. siendo analizado y el propósito de dicha parte del pro-
A partir de este ejemplo de objetivo emerge un cier-
yecto. Por ejemplo, un diseñador puede desear analizar
to número de preguntas típicas cuya contestación podría
la efectividad de las revisiones de diseño con el propó-
ser necesaria para clarificar los objetivos y por consi-
sito de mejorar la tasa de eliminación de errores de dicho
guiente el desarrollo de una métrica. Un conjunto de
proceso o el propio diseñador puede desear analizar las
ejemplos de estas preguntas, se exponen a continuación:
normas utilizadas por su empresa con el objetivo de
¿Cómo realizar la cuantificación de los trabajos de reducir la cantidad de mano de obra utilizada durante
revisión? el mantenimiento. Una segunda plantilla está relacio-
¿Debería ser tenido en cuenta el tamaño del producto nada con la perspectiva. Esta plantilla pone su atención
en el cálculo de la disminución de trabajos de revi- en los factores que son importantes dentro del propio
sión o revisiones? proceso o producto que está siendo evaluado. Ejemplos
Debería ser tenido en cuenta el incremento de mano típicos de esto incluyen los factores de calidad de la
de obra de programación requerida para validaciones mantenibilidad, chequeo, uso y otros factores tales como
suplementarias y trabajos de rediseño en comparación el coste y la corrección. Esta plantilla se fundamenta en
con el proceso actual de validar un diseño corriente. la perspectiva del propio proceso al que se dirige.
67
INGENlERfA DEL SOFTWARE. UN ENFOQUE PRÁCTICO
Hay varios enfoques que pueden hacerse sobre el pro- teca de software reutilizable. En este estudio se da el soft-
ceso de desarrollo de software - e l del cliente y el del ware de nuestra área de aplicación principal; que es la de
diseñador son los dos más típicos-y la elección de una control de inventarios.
u otra perspectiva tiene un efecto muy grande sobre los Aquí, el propósito es la mejora de un estándar de pro-
análisis que se llevan a cabo. Por ejemplo, si un cierto gramación; la perspectiva es la de la reutilización bajo
proceso como una revisión de requisitos está siendo ana- el punto de vista del personal encargado de la adminis-
lizada con respecto al coste, la perspectiva del diseñador, tración de una biblioteca de software reutilizable, y el
es la del que desea reducir el coste del proceso en térmi- entorno son todos aquellos proyectos que impliquen
nos de hacerlo más eficiente en cuanto a la detección de funciones de control de inventarios.
errores; sin embargo, si después examinamos el mismo Otro ejemplo adicional es el siguiente:
propósito pero desde el punto de vista del cliente, con- Deseamos examinar el efecto de utilizar un constructor de
cretamente sobre si su personal puede emplear o no una interfaces gráficas, sobre la mejora de las interfaces hombre-
gran cantidad de tiempo en dichas revisiones, entonces máquina, que producimos para nuestros sistemas de adminis-
la perspectiva podría involucrar el plantearse un uso más tración. En particular, deseamos examinar cómo puede esto
afectar a la facilidad de manejo de estas interfaces por parte del
eficiente de dicho tiempo empleado en las revisiones. usuario. Un foco de atención principai es cómo percibirán los
Ambas perspectivas son válidas - a veces se solapan y usuarios de estos sistemas que dichas interfaces han cambiado.
a veces son antitéticas-existe, por ejemplo, una nece-
sidad natural en el diseñador de maximizar el beneficio Aquí, el propósito es analizar una herramienta-con
a la vez que el objetivo del cliente es la corrección máxi- el objetivo de determinar una mejora con respecto a la
ma del producto y la entrega dentro del plazo. Un punto facilidad de uso, bajo el punto de vista del usuario den-
importante a recalcar es que del examen de la perspecti- tro del contexto de los sistemas administrativos. Un
va del producto, el desarrollador está en una mejor posi- ejemplo final es el siguiente:
ción para evaluar un proceso de software y un producto Nuestro objetivo es examinar el proceso de chequeo de
de software y también la mejora de los mismos. módulos de código de forma que podamos utilizar los resulta-
dos de las comprobaciones con el fin de predecir el número de
Una tercera plantilla implica el entorno. Este es el con- defectos de código en comprobaciones futuras. La perspecti-
texto dentro del cual el método OPM se aplica e implica va que deseamos tener surge de una preocupación sobre el exce-
el examen del personal, la propia empresa y los entornos so de errores que se han cometido y que no han sido detectados
de recursos en los que el análisis se está llevando a cabo. hasta el chequeo del sistema. Deseamos ver qué factores son
Factores típicos de entorno incluyen, por ejemplo, el tipo importantes que permitan que un programador tome decisic-
nes sobre si un módulo está disponible para ser entregado a los
de sistema informático que está siendo usado, las habili- probadores del sistema, o por el contrario requiere una com-
dades del personal implicado en el proyecto, el modelo probación adicional. Deseamos concentramosen nuestro mode-
de ciclo de vida adoptado para tal caso, la cantidad de lo de ciclo de vida actual con programadores que utilizan el
recursos adiestrados disponibles y el área de aplicación. lenguaje de programación FORTRAN.
Una vez que tanto el propósito como la perspectiva Aquí, el objetivo es la predicción, el análisis de un
y el entorno de un objetivo han sido bien especificados, proceso -1 de chequeo de código- la perspectiva es
el proceso de planteamiento de cuestiones y el desarro- la de reducción de costes a través de una reducción del
llo de una métrica o valoración puede comenzar. Antes número de errores residuales, que se deslizan dentro del
de examinar este proceso, merece la pena dar algunos propio chequeo del sistema. La perspectiva es desde el
ejemplos de objetivos empleados en los términos plan- punto de vista del programador y el entorno el de los
teados. El primero se describe a continuación: proyectos convencionales que utilizan el lenguaje de
El objetivo es analizar los medios por los que revisamos programación FORTRAN.
el código de programación con el propósito de evaluar la La plantilla propósito se utiliza para definir lo que
efectividad en la detección de errores desde el punto de vis- está siendo estudiado: podría ser un proceso, un pro-
ta del gestor del proyecto de software dentro de los proyec-
tos que suministran programas críticos bajo el punto de vista
ducto, un estándar o un procedimiento. La plantilla tam-
de la seguridad. bién define lo que se va a hacer, y la razón de hacerlo.
La perspectiva tiene el objetivo de asegurar que los obje-
En el ejemplo planteado, el propósito es la evalua- tivos no son demasiado ambiciosos: al final del día el
ción, la perspectiva es la eliminación de defectos bajo método OPM requerirá la realización de medidas y estas
el punto de vista del gestor de proyectos dentro del medidas y los datos estadísticos asociados serán sólo
entorno de aplicaciones en los que la seguridad es un efectivos cuanto más grande sea el número de factores
aspecto crítico. Otro ejemplo es: dentro de un nivel razonable. La plantilla del entorno
Nosotros deseamos examinar la efectividad de las nor- tiene una función similar: reduce el factor de espacio y
mas de programación que usamos para el lenguaje de pro- permite que sean hechas comparaciones estadísticas
gramación C++, con el fin de determinar si son efectivos en
la producción de software, que pueda ser reutilizado dentro
efectivas entre procesos y productos.
de otros proyectos. En particular, estamos interesados en lo Con el fin de terminar esta sección es provechoso
que se necesita con el fin de organizar efectivamente un depar- analizar el método OPM en acción sobre un pequeño
tamento nuevo encargado de el mantenimiento de una biblio- ejemplo, con el siguiente objetivo de proceso:
68
CAPfTULO 4 P R O C E S O D E L SOFTWARE Y MPTRICAS D E L P R O Y E C T O
Analícese el proceso de confección de prototipos con el pro- una complejidad ponderada C i. Entonces el tamaño de
pósito de evaluar desde el punto de vista del desarrollador, el los requisitos totales será:
número de requisitos que se rechazan por el cliente en una Últi- n
ma etapa del proyecto.
CRi*Ci
Nosotros asumiremos un modelo desechable de con- ¿=O
fección de prototipos en el que se use una tecnología Supongamos que una cierta proporción p de estos
como la de un lenguaje típico de cuarta generación para requisitos han sido puestos en cuestión emprendiéndo-
desarrollar una versión rápida de un sistema que, cuan- se un chequeo de aceptación por parte del cliente, y que
do el cliente lo ha aceptado, se implemente de forma estos requisitos no han sido debidos a cambios en las
convencional con la eliminación del propio prototipo. propias circunstancias del cliente. Entonces, la métrica
Esto plantea un cierto número de preguntas que enton- n
ces pueden ser procesadas con el fin de evaluar el pro- e=p.CRi.Ci
ceso de confección de prototipos desechables: i=O
¿Qué medida tomm’amos con los requerimientos que representa una cierta medida de la desviación de los
se hayan cambiado durante la parte convencional del requisitos desde el prototipo a lo largo del chequeo de
proyecto? aceptación.
¿Se deben ponderar todos los requisitos de forma Este valor puede entonces ser comparado con los
igualitaria o son algunos más complejos que otros? valores base de otros proyectos de confección de pro-
¿Qué tipos de cambios en los requisitos debemos con- totipos que tengan un entorno parecido. Si se ha obser-
siderar? Después de todo, algunos de ellos serán debi- vado una cierta mejora, la siguiente etapa es intentar
dos a imperfecciones en el proceso de confección de descubrir cómo se ha logrado esta mejora, por ejemplo,
prototipos mientras que otros podrían tener que ver en este proyecto el cliente puede haber enviado el mis-
con factores extraños que pueden ser debidos a cam- mo representante para ayudar en las demostraciones del
bios en las propias circunstancias del cliente. prototipo y por consiguiente ha conseguido una con-
Con el fin de aplicar el método OPM, necesitamos sistencia mayor que faltaba en otros proyectos, o el per-
un modelo del proceso que esté llevándose a cabo y un sonal del desarrollo que estaba implicado en el proyecto
modelo de la perspectiva de calidad: el número de cam- puede haber estado formado por analistas en lugar de
bios en los requisitos que son exigidos por el cliente no diseñadores, y así haber constituido una más sólida rela-
provienen generalmente de cambios en sus propias cir- ción con el cliente. Si se observaba un incremento en la
cunstancias. métrica e, entonces un análisis similar debería llevarse
Supongamos que el modelo para el proceso de con- a cabo en términos de lo que constituían los factores
fección de prototipos desechables es: desfavorables que afectaban al proyecto.
Lo ya expuesto, entonces, ha sido un resumen esque-
1. Especificar los requisitos.
mático del proceso OPM. Un punto importante a con-
2. Valorar cada requisito en importancia según térmi- siderar es que ya que existe un número casi infinito de
nos del cliente. métricas que pueden usarse para caracterizar un pro-
3. Valorar cada requisito en términos de la compleji- ducto de software y un proceso de software existe una
dad de su descripción. necesidad de determinar la forma de seleccionarlas, o
4. Planificar una serie de reuniones de revisión en las que dicho de otra forma, cuál de las OPM es el mejor ejem-
se presente a través de un prototipo una cierta selec- plo. Una vez que esto ha sido tomado en consideración
ción de requisitos donde el gestor del proyecto tome en una empresa, esa empresa puede entonces implicar-
una decisión sobre en qué se basa la selección de una se en una actividad continua de mejora de procesos, que
presentación de, por ejemplo, dos horas de duración. la coloque en un nivel 4 ó 5 de la Escala de Modelos de
Supongamos un modelo muy simple de perspectiva Madurez de Capacidades y así distinguirla de aquellas
de calidad, dónde cada requisito R , esté asociado con otras que lleguen sólo a niveles 1 ó 2.
Debido a que el proceso de software y el producto que to no será la misma que otras métricas similares selec-
tal proceso produce son ambos influenciados por cionadas para otro proyecto. En efecto, hay a menudo
mucho3 parámetros (por ejemplo: el nivel de habili- variaciones significativas en las métricas elegidas como
dad de los realizadores de dichos procesos, la estruc- parte del proceso de software.
tura del equipo de software, el conocimiento del Puesto que la misma métrica de procesos variará de un
cliente, la tecnología que va a ser implementada, las proyecto a otro proyecto, ¿cómo podemos decir si unos
herramientas que serán usadas en la actividad de desa- valores de métricas mejoradas (o degradadas) que ocu-
rrollo), la métrica elegida para un proyecto o produc- rren como consecuencia de actividades de me-jora están
69
INGENIERfA DEL SOFTWARE. UN ENFOQUE PRÁCTICO
de hecho teniendo un impacto cuantitativo real? ¿Cómo 1. Calcular los rangos móviles: el valor absoluto de las
saber si lo que nosotros estamos contemplando es una ten- diferencias sucesivas entre cada pareja de puntos de
dencia estadísticamente válida o si esta «tendencia» es datos... Dibujar estos rangos móviles sobre el gráfico.
simplemente el resultado de un ruido estadístico? ¿Cuán- 2. Calcular la media de los rangos móviles... dibujando
do son significativos los cambios (ya sean positivos o ésta («barra Rm») como la línea central del propio
negativos) de una métrica de software particular? gráfico.
3. Multiplicar la media por 3.268. Dibujar esta línea
como el límite de control superior [LCS]. Esta línea
supone tres veces el valor de la desviación estándar
paro lo gestibn por encima de la media.
lo que hoy
Usando los datos representados en la figura 4.8y los
distintos pasos sugeridos por Zultner como anterior-
mente se ha descrito, desarrollamos un gráfico de cons
trol Rm que se muestra en la Figura 4.9. El valor (medio)
Se dispone de una técnica gráfica para determinar si «barra Rm» para los datos de rango móvil es 1.71. El
los cambios y la variación en los datos de la métrica son límite de control superior (LCS) es 5.57.
significativos. Esta técnica llamada gráfico de control
y desarrollada por Walter Shewart en 1920", permite e
que los individuos o las personas interesadas en la mejo-
ra de procesos de software determine si la dispersión es desde el ruido, como
(variabilidad) y <<lalocalización» (media móvil) o métri- el proceso son mejoras-
ca de procesos que es estable (esto es, si el proceso exhi-
be cambios controlados o simplemente naturales) o
inestable (esto es, si el proceso exhibe cambios fuera Para determinar si la dispersión de las métricas del
de control y las métricas no pueden usarse para prede- proceso es estable puede preguntarse una cuestión muy
cir el rendimiento). Dos tipos diferentes de gráficos de sencilla: ¿Están los valores de rango móvil dentro del
control se usan en la evaluación de los datos métricos LCS? Para el ejemplo descrito anteriormente, la con-
[ZUL99]: (1) el gráfico de control de rango móvil (Rm) testación es «sí». Por consiguiente, la dispersión de la
y (2) el gráfico de control individual. métrica es estable.
Para ilustrar el enfoque que significa un gráfico de El gráfico de control individual se desarrolla de la
control, consideremos una organización de software que manera siguiente":
registre en la métrica del proceso los errores descubiertos
1. Dibujar los valores de la métrica individual según se
por hora de revisión, E,. Durante los pasados 15 meses, describe en la Figura 4.8.
la organización ha registrado el E,. para 20 pequeños
proyectos en el mismo dominio de desarrollo de soft- 2. Calcular el valor promedio, A,, para los valores de
ware general. Los valores resultantes para E, están repre- la métrica.
sentados en la figura 4.8. Si nos referimos a la figura, 3. Multiplicar la media de los valores Rm (la barra Rm)
E, varía desde una tasa baja de 1.2 para el proyecto 3 a por 2.660 y añadir el valor de A, calculado en el paso
una tasa más alta de 5.9 para el proyecto 17. En un 2. Esto da lugar a lo que se denomina límite de pro-
esfuerzo de mejorar la efectividad de las revisiones, la ceso natural superior (LPNS). Dibujar el LPNS.
organización de software proporcionaba entrenamien- 4. Multiplicar la media de los valores Rm (la barra Rm)
to y asesoramiento a todos los miembros del equipo del por 2.660 y restar este valor del A, calculado en el
proyecto, comenzando con el proyecto 1 1. paso 2. Este cálculo da lugar al límite de proceso
natural inferior (LPNZ). Dibujar el LPNI. Si el LPNI
es menor que 0.0, no necesita ser dibujado a menos
¿Cómo podemos estar que la métrica que está siendo evaluada tome valo-
seguros de que las métricas res que sean menores que 0.0.
que hemos recopilado son
5 Calcular la desviación estándar según la fórmula
estadísticamente validas?
(LPNS - A,)/3. Dibujar las líneas de la desviación
estándar una y dos por encima y por debajo de A,.
Richard Zultner proporciona una vista general del Si cualquiera de las líneas de desviación estándar es
procedimiento que se requiere para desarrollar un grú- menor de 0.0, no necesita ser dibujada a menos que
fico de control de rango móvil (Rm) para determinar la la métrica que está siendo evaluada tome valores que
estabilidad del proceso [ZUL99]: sean menores que 0.0.
1 3 5 7 9 11 13 15 17 19 1 3 5 7 9 11 13 15 17 19
FIGURA 4.8. Datos de métricas para descubrir errores FIGURA 4.9. Gráfico de control de rango móvil (Rm).
por hora de revisión.
Referencia Web/ L
Se puede encontrar un Gráfico de Control Común 1 3 5 7 9 11 13 15 17
-19
que cubre el tema en alguna dimensión en: Proyectos
www.sytsma.tom/tqmtools/ctlthfprinciples.html FIGURA 4.10. Gráfico de control individual.
La amplia mayoría de las organizaciones de desarrollo [KAU99] describe un escenario típico que ocurre cuan-
de software tienen menos de 20 personas dedicadas al do se piensa en programas métricos para organizacio-
software. Es poco razonable, y en la mayoría de los casos nes pequeñas de software:
no es realista, esperar que organizaciones como éstas Onginalmente,los desarrolladores de software acogían nues-
desarrpllen programas métricos de software extensos. tras actividades con un alto grado de escepticismo, pero al final
Sin embargo, si que es razonable sugerir que organiza- las aceptaban debido a que nosotros conseguíamos que nues-
ciones de software de todos los tamaños midan y des- tras medidas fueran simples de realizar, adaptadas a cada orga-
nización y se aseguraba que dichas medidas producían una
pués utilicen las métricas resultantes para ayudar a información válida y útil. Al final, los programas proporcio-
mejorar sus procesos de software local y la calidad y n a b a una base para encargarse de los clientes y para la plani-
oportunidad de los productos que realizan. Kautz ficación y desarrollo de su trabajo futuro.
71
INGENIERfA DEL SOFTWARE. UN ENFOQUE PR A C TI C O
4.10 ] P p
El Instituto de Ingeniería del Software (11s) ha desan-o- 6. Identificar preguntas que puedan cuantificarse y los
llado una guía extensa [PAR961 para establecer un pro- indicadores relacionados que se van a usar para
grama de medición de software dirigido hacia objetivos. ayudar a conseguir los objetivos de medición.
La guía sugiere los siguientes pasos para trabajar: 7. Identificar los elementos de datos que se van a reco-
1. Identificar los objetivos del negocio. ger para construir los indicadores que ayuden a res-
ponder a las preguntas planteadas.
2. Identificar lo que se desea saber o aprender.
8. Definir las medidas a usar y hacer que estas defi-
3. Identificar los subobjetivos. niciones sean operativas.
4. Identificar las entidades y atributos relativos a esos 9. Identificar las acciones que serán tomadas para
subobjetivos. mejorar las medidas indicadas.
5 . Formalizar los objetivos de la medición. 10. Preparar un plan para implementar estas medidas.
72
CAPÍTULO 4 P R O C E S O DEL SOFTWARE Y MÉTRICAS DEL P R O Y E C T O
La medición permite que gestores y desarrolladores to se utilizan para calcular las métricas del softwa-
mejoren el proceso del software, ayuden en la pla- re. Estas métricas se pueden analizar para propor-
nificación, seguimiento y control de un proyecto de cionar indicadores que guían acciones de gestión y
software, y evalúen la calidad del producto (soft- técnicas.
ware) que se produce. Las medidas de los atributos Las métricas del proceso permiten que una orga-
específicos del proceso, del proyecto y del produc- nización tome una visión estratégica proporcionan-
73
INGENIERIA DEL SOFTWARE. UN ENFOQUE PRÁCTICO
do mayor profundidad de la efectividad de un proce- áreas de proceso del software que son la causa de los
so de software. Las métricas del proyecto son tácti- defectos del software.
cas. Estas permiten que un gestor de proyectos adapte Las métricas tienen significado solo si han sido
el enfoque a flujos de trabajo del proyecto y a pro- examinadas para una validez estadística. El gráfico
yectos técnicos en tiempo real. de control es un método sencillo para realizar esto y
Las métricas orientadas tanto al tamaño como a la al mismo tiempo examinar la variación y la localiza-
función se utilizan en toda la industria. Las métricas ción de los resultados de las métricas.
orientadas al tamaño hacen uso de la línea de código La medición produce cambios culturales. La reco-
como factor de normalización para otras medidas, pilación de datos, el cálculo de métricas y la evaluación
como persona-mes o defectos. El punto de función de métricas son los tres pasos que deben implementar-
proviene de las medidas del dominio de información se al comenzar un programa de métricas. En general,
y de una evaluación subjetiva de la complejidad del un enfoque orientado a los objetivos ayuda a una orga-
problema. nización a centrarse en las métricas adecuadas para su
Las métricas de la calidad del software, como negocio. Los ingenieros del software y sus gestores pue-
métricas de productividad, se centran en el proceso, den obtener una visión más profunda del trabajo que
en el proyecto y en el producto. Desarrollando y ana- realizan y del producto que elaboran creando una línea
lizando una línea base de métricas de calidad, una base de métricas -una base de datos que contenga
organización puede actuar con objeto de corregir esas mediciones del proceso y del producto-.
[ALA971Alain, A., M. Maya, J. M. Desharnais y S. St. Pie- [IEE93] IEEE S o f i a r e Engineering Standards, Std. 610.12-
rre, «Adapting Function Points to Real-Time Software», 1990, pp. 47-48.
American Programmer, vol. 10, n." 11, Noviembre 1997,
pp. 32-43. [IFP94] Function Point Counting Practica Manual, Release
4.0, IntemationalFunction Point Users Group (IFPUG), 1994.
[ART85] Arthur, L. J., Measuring Programmer Productivity
[JON86] Jones, C., Programming Productivity, McGraw-Hill,
and Software Quality, Wiley-Interscience, 1985.
1986.
[ALB79] Albrecht, A. J., «Measuring Application Develop-
[JON91] Jones, C., Applied Software Costs, McGraw-Hill,
ment Productivity», Proc. IBA4 Application Development
1991.
Symposium, Monterey, CA, Octubre 1979, pp. 83-92.
[JON98] Jones, C., Estimating Sojitware Costs, McGraw-Hill,
[ALB83] Albretch, A. J., y J. E. Gaffney, «Software Func- 1998.
tion, Source Lines of Code and Development Effort Pre-
diction: A Software Science Validatiom, IEEE Trans. [KAU99] Kautz, K., «Making Sense of Measurement for Small
Software Engineering, Noviembre 1983, pp. 639-648. Organizations», IEEE Software, Marzo 1999, pp. 14-20.
[BOE8 11 Boehm, B., Software Engineering Economics, Pren- [MCC78] McCall, J. A., y J. P. Cavano, «A Framework for
tice Hall, 1981. the Measurement of Software Quality», ACM Software
Quality Assuixznce Workshop, Noviembre 1978.
[GRA87] Grady, R.B., y D.L. Caswell, Software Metrics: Estu-
hlishing a Company-Wide Program, Prentice-Hall, 1987. [PAU94] Paulish, D., y A. Carleton, «Case Studies of Soft-
ware Process Improvement Measurement», Computer, vol.
[GRA92] Grady, R.G., Practica1 Software Metrics for Pro- 27, n.' 9, Septiembre 1994, pp. 50-57.
ject Munagenzent and Process Improvement, Prentice-Hall,
1992. [PAR961 Park, R. E., W. B. Goethert y W. A. Florac, Goal
Driven Software Measurement-A Giridehook, CMU/SEI-
[GRA94] Grady, R., «Succesfully Applying Software 96-BH-002, Software Engineering Institute, Carnegie
Metricw, Computer, vol. 27, n.' 9, Septiembre 1994, pp. Mellon University, Agosto 1996.
18-25.
[RAG95] Ragland, B., «Measure, Metnc or Indicator: What'c
[GRA99] Grable, R., et al., «Metrics for Small Projects: Expe- the Difference?», Crosstulk, vol. 8, n.' 3, Marzo 1995,
nences at SED», IEEE Software, Marzo 1999, pp. 21-29. pp. 29-30.
[GIL881 Gilb, T., Principles qf Software Project Manage- [TAL811 Tjima, D., y T. Matsubara, «The Computer Software
ment, Addison-Wesley, 1998. Industry in Japan», Computei; Mayo 1981, p. 96.
[HET93] Hetzel, W., Making Software Measurement Work, [WHI95] Whitmire, S. A., «An Introduction to 3D Function
QED Publishing Group, 1993. Points», Software Development, Abril 1995, pp. 43-53.
[HUM95] Humphrey, W., A Disciplinefor Software En,+- [ZUL99] Zultner, R. E., «What Do Our Metrics Mean?»,
neering, Addison-Wesley, 1995. Cutter IT Journal, vol. 12, n.' 4, Abril 1999, pp. 11-19.
74
CAPfTULO 4 P R O C E S O DEL S O F T W A R E Y MÉTRICAS DEL P R O Y E C T O
4.1. Sugiera tres medidas, tres métricas y los indicadores que Número de archivos: 8
se podrían utilizar para evaluar un automóvil. Número de interfaces externos: 2
4.2. Sugiera tres medidas, tres métricas y los indicadores Asuma que todos los valores de ajuste de complejidad están
correspondientes que se podrían utilizar para evaluar el en la media.
departamento de servicios de un concesionario de automó-
viles. 4.12. Calcule el valor del punto de función de un sistema empo-
trado con las características siguientes:
4.3. Describa, con sus propias palabras, la diferencia entre
métricas del proceso y del proyecto. Estructuras de datos interna: 6
Estructuras de datos externa: 3
4.4. ¿Por qué las métricas del software deberían mantenerse
«privadas»?Proporcione ejemplos de tres métricas que debie- Número de entradas de usuario: 12
ran ser privadas. Proporcione ejemplos de tres métricas que Número de salidas de usuario: 60
debieran ser públicas. Número de peticiones de usuario: 9
4.5. Obtenga una copia de [HUM95] y escriba un resumen en Número de interfaces externos: 3
una o dos páginas que esquematice el enfoque PSP. Transformaciones: 36
Transiciones: 24
4.6. Grady sugiere una etiqueta para las métricas del soft-
ware. ¿Puede añadir más reglas a las señaladas en la Sec- Asuma que la complejidad de las cuentas anteriores se divi-
ción 4.2.1? de de igual manera entre bajo, medio y alto.
4.7. Intente completar el diagrama en espina de la Figura 4.3. 4.13. El software utilizado para controlar una fotocopiadora
Esto es, siguiendo el enfoque utilizado para especificaciones avanzada requiere 32.000 líneas de C y 4.200 líneas de Small-
«incorrectas»,proporcione información análoga para «perdi- talk. Estime el número de puntos de función del software de
do, ambiguo y cambios». la fotocopiadora.
4.8. ¿Qué es una medida indirecta y por qué son comunes tales 4.14. McCall y Cavano (Sección 4.5.1) definen un «marco de
cambios en un trabajo de métricas de software? trabajo» de la calidad del software. Con la utilización de la
información de este libro y de otros se amplían los tres «pun-
4.9. El equipo A encontró 342 errores durante el proceso de tos de vista» importantes dentro del conjunto de factores y de
ingeniería del software antes de entregarlo. El equipo B encon- métricas de calidad.
tró 184 errores. ¿Qué medidas adicionales se tendrían que
tomar para que los proyectos A y B determinen qué equipos 4.15. Desarrolle sus propias métricas (no utilice las presenta-
eliminaron los errores más eficientemente?¿Qué métricas pro- das en este capítulo) de corrección, facilidad de mantenimiento,
pondrían para ayudar a tomar determinaciones? ¿Qué datos integridad y facilidad de uso. Asegúrese de que se pueden tra-
históricos podrían ser útiles? ducir en valores cuantitativos.
4.16. ¿Es posible que los desperdicios aumenten mientras que
4.10. Presente un argumento en contra de las líneas de códi-
go como una medida de la productividad del software. ¿Se va disminuyen defectosKLDC? Explíquelo.
a sostener su propuesta cuando se consideren docenas o cien- 4.17. ¿Tiene algún sentido la medida LDC cuando se utiliza
tos de proyectos? el lenguaje de cuarta generación? Explíquelo.
4.11. Calcule el valor del punto de función de un proyecto con 4.18. Una organización de software tiene datos EED para 15
las siguientes características del dominio de información: proyectos durante los 2 últimos años. Los valores recogidos
son: 0.81, 0.71,0.87, 0.54,0.63, 0.71,0.90,0.82, 0.61, 0.84,
Número de entradas de usuario: 32
0.73,0.88,0.74,0.86,0.83.Cree Rm y cuadros de control indi-
Número de salidas de usuario: 60 viduales para determinar si estos datos se pueden utilizar para
Número de peticiones de usuario: 24 evaluar tendencias.
La mejora del proceso del software (MPS) ha recibido una Garmus, D., y D. Herron, Measuring the Sofriiare Pro-
significativa atención durante la pasada década. Puesto que cess: A Practica1 Guide to Functional Measurements, Pren-
la medición y las métricas del software son claves para con- tice-Hall, 1996.
seguir una mejora del proceso del software, muchos libros Kan, S. H., Metrics and Models in Software Quulity Engi-
sobre MPS también tratan las métricas. Otras lecturas adi- neering, Addison-Wesley, 1995.
cionales que merecen la pena incluyen: Humphrey [HUM95], Yeh (Software Process Control,
Burr, A., y M. Owen, Statistical Methos for Software Qua- McGraw-Hill, 1993), Hetzel [HET93] y Grady [GRA92] estu-
lify, Intemational Thomson Publishing, 1996. dian cómo se pueden utilizar las métricas del software para pro-
Florac, W. A., y A. D. Carleton, Measuring tlie Sofhvare porcionar los indicadores necesarios que mejoren el proceso
Process: Statistical Process Control for Software Process del software. Putnam y Myers (Executive Briefrng: Controlling
lmprovement, Addison-Wesley, 1999. Software Development, IEEE Computer Society, 1996) y Pul-
75
INGENIERfA DEL SOFTWARE. UN ENFOQUE PR A C TI CO
ford y sus colegas (A QuantitativeApproach to Software M a m - cas del software. Park y otros [PAR961 han desarrollado una
gement, Addison-Wesley, 1996) estudian las métricas del pro- guía detallada que proporciona paso a paso sugerencias para
ceso y su uso desde el punto de vista de la gestión. instituir un programa de las métricas del software para la
Weinberg (Qualiv Software Management, Volume 2: First mejora del proceso del software.
Order Measurement, Dorset House, 1993) presenta un modc- La hoja informativa ZTMetrics (Editada por Howard Rubin
lo útil para observar proyectos de software, asegurándose el y publicada por los Servicios de Información Cutter) presen-
significado de la observación y determinando el significado ta comentarios Útiles sobre el estado de las métricas del soft-
de las decisiones tácticas y estratégicas. Garmus y Herron ware en la industria. Las revistas Cutter iT Journal y Software
(Measuring the Software Process, Prentice-Hall, 1996) trata Development tienen habitualmente artículos y característi-
las métricas del proceso en el análisis del punto de función. cas completas dedicadas a las métricas del software.
El Software Productivity Consortium (The Software Measu- En Intemet están disponibles una gran variedad de fuen-
rement Guidebook, Thomson Computer Press, 1995) pro- tes de información relacionadas con temas del proceso del
porciona sugerencias útiles para instituir un enfoque efectivo software y de las métricas del software. Se puede encontrar
de métricas. Oman y Pfleeger (Applying Software Metrics, una lista actualizada con referencias a sitios (páginas) web
IEEE Computer Society Press, 1997) han editado una exce- que son relevantes para el proceso del Software y para las
lente antología de documentos importantes sobre las métri- métricas del proyecto en http://www.pressman5.com.
76