lunes, 29 de agosto de 2011

Calidad en el Desarrollo de Software Modelo de Mc Call


Medición de calidad de software



  • la calidad, al igual que la belleza, está en el ojo de quien lo mira

sin embargo, desde el punto de vista de medición, se debe tener una definición precisa en términos de atributos del software que sean de interés al usuario 

  • en general, éstos son atributos externos 

sin embargo, muchas propuestas miden y analizan atributos internos porque los consideran predictores de aquellos externos

  • los atributos internos tienen dos ventajas: 
  1.  están disponibles para medición más temprano 
  2. son más fáciles de medir

Modelos iniciales de calidad

Desde el principio de la ingeniería de software, se observó que la calidad está compuesta por una composición de muchas características

un modelo de calidad describe entonces estas características y sus relaciones

muchos modelos hacen difusa la distinción entre atributos internos y externos, lo que dificulta la comprensión del concepto de calidad

los modelos que se presentarán a continuación son los que han ganado mayor popularidad en la comunidad, pero no tienen sustento científico

extrayendo los factores comunes a todos ellos, es posible derivar modelos propios adaptados a usos específicos


Modelo de McCall
el modelo de McCall fue el primero en ser presentado en 1977, y se originó motivado por US Air Force y DoD

se focaliza en el producto final, identificando atributos claves desde el punto de vista del usuario

estos atributos se denominan factores de calidad y son normalmente atributos externos
pero también se incluyen algunos atributos posiblemente internos

los factores de calidad son demasiados abstractos para ser medidos directamente, por lo que por cada uno de ellos se introduce atributos de bajo nivel denominados criterios de calidad

algunos criterios de calidad son atributos internos, reflejando la creencia de McCall que el atributo interno tiene un efecto directo en el atributo externo correspondiente

un nivel más de descomposición es necesario, mapeando cada criterio de calidad en un conjunto de métricas de calidad que son atributos (tanto del producto como del proceso) de muy bajo nivel, medibles directamente


Factores de calidad
McCall propone tres perspectivas para agrupar los factores de calidad
  • revisión del producto habilidad para ser cambiado
  • transición del producto adaptabilidad al nuevo ambiente
  • operación del producto características de operación

  • Factores de calidad de revisión
la revisión del producto incluye los siguientes factores de calidad:
  • mantenibilidad esfuerzo requerido para localizar y corregir fallas
  • flexibilidad facilidad de realizar cambios
  • testeabilidad facilidad para realizar el testing, para asegurarse que el producto no tiene errores y cumple con la especificación

  • Factores de calidad de transición
la transición del producto incluye los siguientes factores de
calidad:
  • portabilidad esfuerzo requerido para transferir entre distintos ambientes de operación
  • reusabilidad facilidad de reusar el software en diferentes contextos
  • interoperabilidad esfuerzo requerido para acoplar el producto con otros sistemas


  • Factores de calidad de operación


La operación del producto incluye los siguientes factores de calidad:
  • correctitud el grado en el que el producto cumple con su especificación
  • confiabilidad la habilidad del producto de responder ante situaciones no esperadas
  •  eficiencia el uso de los recursos tales como tiempo de ejecución y memoria de ejecución
  •  integridad protección del programa y sus datos de accesos no autorizados
  •  usabilidad facilidad de operación del producto por parte de los usuarios

Criterios de calidad: factor mantenibilidad
según McCall el factor mantenibilidad incluye los siguientes criterios:
  • consistencia
  • simplicidad
  • concisidad
  • auto-descripción
  • modularidad

pero la mantenibilidad ha cambiado bastante desde 1977; encontrar y corregir errores es sólo un aspecto más


Ghezzi la divide en tres categorías:

  • correctiva concerniente a remover pequeñas fallas remanentes después del testeo
  • adaptativa concerniente al cambio del producto necesario por el cambio de sus requerimientos
  • perfectiva busca solo mejorar los algoritmos usados para hacerlos más eficientes
mantenibilidad está muy influenciado por el uso de buenas prácticas a lo largo de todo el ciclo de desarrollo algunas de estas buenas prácticas son:
  1. seguir una metodología bien definida
  2. usar buenas técnicas de diseño, tanto de procedimientos como de datos, para aumentar cohesión y reducir acoplamiento
  3. observar la documentación interna
  4. usar buenas prácticas de programación: nombres significativos, código legible, etc

  • Criterios de calidad: factor flexibilidad
según McCall el factor flexibilidad incluye los siguientes criterios:
  • expandibilidad
  • generalidad
  • auto-descripción
  • modularidad
·         con el correr de los años este criterio se ha fusionado con mantenibilida de hecho, en la definición original, dos de los criterios de flexibilidad estaban compartidos con mantenibilidad


  •        Criterios de calidad: factor testeabilidad

       según McCall el factor testeabilidad incluye los siguientes criterios:
  • ·         simplicidad
  • ·         instrumentación      

      dado su ubicación en tradicionales modelos de ciclo de vida de software, la facilidad de testing se define claramente como un criterio de calidad
      
          ISO 9000-3 divide el testeo en cuatro etapas
  • ·         testeo de unidad se testea los componentes individuales, generalmente realizado por los programadores
  • ·         testeo de integración se testean los módulos compuestos por diversos componentes
  • ·         testeo de sistema se testea el sistema completo tal como lo usaría un usuario normal, pero sin su presencia
  • ·         testeo de aceptación el usuario ejecuta el sistema completo para asegurarse que cumpla con los requerimientos. También llamado alpha testing

  • el testeo interactua con otros criterios de calidad, por ejemplo correctitud y eficiencia
  • debe ser llevado a cabo siguiendo planes pre-definidos, con datos conocidos y cuyos resultados sean predeterminados
  • la testeabilidad puede ser maximizada usando herramientas automáticas, buenas estrategias de cohesión y de diseño, y buenas prácticas de programación
McCall definió originalmente métricas para testeabilidad consistentes en una matriz de complejidad que involucra número y tamaño de módulos, tamaño de procedimientos, profundidad de anidamiento, número de errores por unidad de tiempo, etc.


Criterios de calidad: factor portabilidad
según McCall el factor testeabilidad incluye los siguientes criterios:
  • auto-descripción
  • modularidad
  • independencia de la máquina
  • independencia del sistema operativo
algunos autores (Sommerville) lo consideran parte de la reusabilidad
se favorece mediante el seguimiento de estándares, tanto de procedimientos (X Windows) como de datos (XML)
la existencia de compiladores cruzados favorece la portabilidad



Criterios de calidad: factor reusabilidad

según McCall el factor reusabilidad incluye los siguientes criterios:
  • generalidad
  • modularidad
  • auto-descripción
  • independencia de la máquina
  • independencia del sistema operativo

se puede favorecer la reusabilidad usando librerías de software, y técnicas de programación orientada a objetos
hay que tener en cuenta que el desarrollo de código reusable cuesta más tiempo y dinero
existe un factor económico difícil de medir: el costo de código reusable y la ganancia por reusar código ya desarrollado


Criterios de calidad: factor interoperabilidad
según McCall el factor interoperabilidad incluye los siguientes criterios:
  • modularidad
  • interoperabilidad en comunicación
  • interoperabilidad en datos
la interoperabilidad está relacionada con la reusabilidad 
En la actualidad su importancia ha crecido debido al creciente interés de conectarse con sistemas legacy
se favorece mediante la adopción de estándares


Criterios de calidad: factor correctitud

según McCall el factor correctitud incluye los siguientes criterios:
  • trazabilidad
  • completitud
  • consistencia
  1. correctitud es un factor muy difícil de identificar debido a la falta de terminología estándar
  2. se lo pueden confundir con otros factores, tales como confiabilidad e integridad
  3. para medirlo es necesario tener disponible una especificación formal de los requerimientos, cosa muy rara salvo en proyecto de alto presupuesto y sistemas críticos
  4. las técnicas para verificarlo pueden ser: inspecciones de código, verificación matemática y analizadores estáticos de programas

Criterios de calidad: factor confiabilidad
según McCall el factor confiabilidad incluye los siguientes
criterios:
  • tolerancia a errores
  • consistencia
  • simplicidad
  • exactitud

combina la tolerancia tanto a errores de hardware como de software
técnica de programación tales como tolerancia a las fallas, manejo de excepciones y programación defensiva ayudan
puede ser medido con medidas como
  • tiempo medio entre fallas
  • tiempo medio antes de mantenimiento
  • tiempo medio antes de recuperación
  • probabilidad de falla


Criterios de calidad: factor usabilidad

según McCall el factor usabilidad incluye los siguientes criterios:
  • operabilidad
  • entrenamiento
  • comunicación
  • volumen de E/S
  • tasa de E/S
la usabilidad ha cambiado mucho desde la época de McCall
incluye aspectos tales como adaptabilidad, aprendizaje, adecuación al contexto
algunos autores consideran por ejemplo que facilidad de aprendizaje es un factor de calidad independiente
se puede subdividir en
  • ergonomía general el equipo es adecuado para el uso previsto
  • ergonomía de software estilos de diálogoes, metáforas, diseño de pantallas, etc

Métricas de calidad

la medición de cualquiera de estos factores está definida en este modelo en base a 41 métricas para cada criterio existe una lista de condiciones que se deben
cumplir en distintas etapas: requerimientos (R), diseño (D), implementación (I)
se cuentan las condiciones que se satisfacen en cada una de las etapas, sobre el total posible eso da una medida del criterio, que se pondera en partes iguales para medir el factor con los otros criterios asociados al factor

para medir el criterio completitud del factor correctitud McCall sugiere las siguientes condiciones:

1 referencias no ambiguas [R,D,I]
2 referencias a datos bien definidas, o externas [R,D,I]
3 todas las funciones definidas son usadas [R,D,I]
4 todas las condiciones y procesamientos están definidos para cada punto de decisión [R,D,I]
5 todos los parámetros formales y actuales coinciden [D,I]
6 todos los reportes de problemas han sido resueltos [R,D,I]
7 el diseño concuerda con los requerimientos [D]
8 el código concuerda con el diseño [I]


entonces se cuentan la cantidad de sí en cada etapa, resultando
en la métrica de completitud:



luego la correctitud se mide como la media entre las medidas de
sus criterios









No hay comentarios:

Publicar un comentario