Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Expo Control Calidad
Expo Control Calidad
La medición del software se refiere a derivar un valor numérico para algún atributo de un
producto de software o un proceso del software. Comparando estos valores entre
parámetros que se van a incluir en el modelo y calibrarlos utilizando datos existentes. Un
profesional de la estadística debe involucrarse en el proceso.
4. Identificar las mediciones anómalas Una vez que se obtienen las mediciones de
los componentes, se comparan entre ellas y con las mediciones previas registradas
en una base de datos de mediciones. Se deben observar los valores más altos y
más bajos de cada métrica puesto que éstos sugieren que puede haber problemas
con los componentes que exhiben estos valores.
5. Analizar los componentes anómalos Una vez identificados los componentes con
valores anómalos para las métricas particulares, se examinan estos componentes
para decidir silos valores de la métrica indican que la calidad del componente está
en peligro o no. Los valores de la métrica anómalos para la complejidad (por
ejemplo) no necesariamente significan que el componente tenga calidad
deficiente. Puede existir alguna otra razón para el valor alto y no significa que
existan problemas con la calidad del componente.
Los datos recolectados se mantienen como un recurso organizacional, de igual
forma los registros históricos de todos los proyectos deben conservarse aun
cuando los datos no se hayan utilizado durante un proyecto particular. Una vez
que se haya creado una base de datos suficientemente grande de mediciones, se
hace la comparación con los proyectos y las métricas específicas se refinan de
acuerdo con las necesidades organizacionales.
Las métricas del producto se refieren a las características del software mismo.
Desafortunadamente, las características del software que se miden fácilmente —
como el tamaño y la complejidad ciclomática, los atributos de calidad como la
comprensión y la mantenibilidad— no tienen una relación clara y universal. Las
relaciones varían dependiendo de los procesos y la tecnología de desarrollo y el
tipo de sistemas a desarrollar. Las organizaciones interesadas en la medición
tienen que construir una base de datos histórica. Después, esto se puede utilizar
para descubrir cómo se relacionan los atributos del producto de software con la
calidad en la que está interesada la organización.
Las métricas del producto se dividen en dos clases:
Estas diferentes métricas están relacionadas con diversos atributos de calidad. Las
métricas dinámicas ayudan a valorar la eficiencia y la fiabilidad de un programa
mientras que las métricas estáticas ayudan a valorar la complejidad, la
comprensión y la mantenibilidad de un sistema de software.
Las métricas dinámicas por lo general están relacionadas de forma cercana con los
atributos de calidad del software. Es relativamente fácil medir el tiempo de
ejecución requerido por funciones particulares y estimar el tiempo requerido para
iniciar un sistema. Esto se relaciona directamente con la eficiencia del sistema. De
forma similar, se puede registrar el número y el tipo de caídas del sistema y
relacionarlos directamente la fiabilidad del software, discutida en el capítulo 16.
Métricas de software
Fan-in/Fan-out
Fan-in es una medida del número de funciones que llaman a otra función (por
ejemplo, X). Fan-out es el número de funciones que son llamadas por una función
X. Un valor alto de fan-in significa que X está fuertemente acoplada al resto del
diseño y que los cambios en X tendrán efectos extensivos contundentes. Un valor
alto de fan-out sugiere que la complejidad de X podría ser alta debido a la
complejidad de la lógica de control necesaria para coordinar los componentes
llamados.
Longitud del código
Ésta es una medida del tamaño del programa. Generalmente entre más grande sea
el tamaño del código de un componente del programa, más complejo y susceptible
a errores será el componente.
Complejidad ciclomática
Ésta es una medida de la complejidad del control de un ciclomática programa. Esta
complejidad del control está relacionada con la comprensión del programa. El
cálculo de la complejidad ciclomática se cubre en el capítulo 20.
Indice de Fog
Las métricas estáticas, por otro lado, tienen una relación indirecta con los atributos
de calidad. Se han propuesto varias de estas métricas y se han llevado a cabo
experimentos para tratar de derivar y validar las relaciones entre estas métricas y
la complejidad, la comprensión y la mantenibilidad del sistema. La figura 24.12
describe varias métricas estáticas utilizadas para valorar los atributos de calidad.
De éstas, parece ser que los predictores más confiables de la comprensión, la
complejidad y mantenibilidad del sistema son la longitud del programa o del
componente y la complejidad del control.
Desde principios de los 90, han habido varios estudios sobre métricas orientadas a
objetos. Algunas de éstas se derivaron de métricas anteriores, mostradas en la
figura 24.12, pero otras son específicas de los sistemas orientados a objetos. Varias
de las métricas orientadas a objetos se explican en la figura 24.13. Estas métricas
son menos maduras que las de la figura 24.12, las cuales est&i relacionadas con los
diseños orientados a funciones, por lo que su utilidad como métricas indicadoras
aún está en proceso de establecimiento.
Método fan-in/fan-out
Está directamente relacionada a fan-in y a fan-out, como se fan-in/fan-out
describió antes, y significa esencialmente lo mismo. Sin embargo, es cónveniente
hacer una distinción entre las llamadas provenientes de otros métodos dentro del
objeto y las llamadas provenientes de los métodos externos.
Las métricas específicas relevantes dependen del proyecto, de las metas del
equipo d administración de la calidad y del tipo de software a desarrollar. Todas las
métricas mostradas en las figuras 24.12 y 24.13 son útiles en algunas situaciones.
Sin embargo, existen otras situaciones donde no son apropiadas. Cuando se
introduce una medida de software como parte del proceso de administración de la
calidad, las organizaciones deben hace experimentos para descubrir la métricas
más apropiadas a sus necesidades.
Los cambios en el proceso dan inicio lo que involucra más al cliente en el proceso
de diseño de software. Se introducen las pruebas beta para todos los productos y
las modificaciones solicitadas por los clientes se incorporan en el producto a
entregar. Las nuevas versiones de los productos, desarrolladas con este proceso
modificado, se entregan. En algunos casos, el número de peticiones de cambios se
reduce; en otros, se incrementa. El administrador se queda perplejo y no puede
valorar los efectos de los cambios del proceso en la calidad del producto.
Para comprender por qué pasan esta clase de cosas, se tiene que comprender por
qué se hacen las peticiones de cambio. Una razón es que el software entregado no
haga lo que los clientes quieren que haga. Otra posibilidad es que el software sea
muy bueno y se utilice amplia y frecuentemente, algunas veces para propósitos
para los que no se diseñó originalmente. Puesto que existen muchas personas
utilizándolo, es natural que se generen más peticiones de cambios.
Una tercera posibilidad es que la compañía productora del software sea sensible a
las peticiones de cambio de los clientes. Por lo tanto, los clientes se sienten
satisfechos con el servicio que reciben. Generan muchas peticiones de cambios
debido a que conocen que esas peticiones se considerarán seriamente. Sus
sugerencias probablemente se incorporarán en las versiones posteriores del
software.
El número de peticiones de cambios podría decrecer debido a que los cambios en
el proceso han sido efectivos y lo han hecho más utilizable y conveniente. De
forma alternativa, el número podría haber decrecido debido a que el producto ha
perdido mercado con respecto a su producto rival. En consecuencia, existen menos
usuarios del producto. El número de peticiones de cambios podría incrementarse
debido a que existen más usuarios, debido a que los procesos de pruebas beta han
convencido a los usuarios de que la compañía desea hacer cambios o debido a que
los sitios de pruebas beta no son típicos o no se utilizan mucho en el programa.