Você está na página 1de 117

Calidad

Administracin de Proyectos

Captulo I

Introduccin
A
CALIDAD

Aseguramiento de la calidad
Es un proceso continuo.
Debe estar en todas las etapas del proyecto o
del desarrollo.
Una parte se focaliza en el producto

Minimo nmero de fallas.


Respoder a los requerimientos.

Otra en el proceso
Implementa tcnicas y herramientas.

Qu es Calidad?
Significa diferentes cosas para cada individuo.
Puede significar:

ausencia de errores
adecuacin a los requerimientos
ajuste a los estndares
cosas intangibles

Puede significar vida o muerte de una


empresa/producto/proyecto

Qu es Calidad?

Es imposible conseguir un estado de Cero defecto


para un sistema de cualquier tamao.
Hay tres aspecto para conseguir la satisfaccin del
usuario (calidad)
Integridad: el sistema produce resultados
correctos. Es seguro.
Fiabilidad: el sistema no se cuelga.
Performance: El sistema funciona con la
velocidad requerida por el usuario.

Factores de Calidad

Los factores de McCall se agrupan en tres


tipos:
Utilizacin (operacin):
Conformidad (hace lo que se quiere)
Fiabilidad (lo hace en cualquier circunstancia)
Eficiencia (mejor uso de los recursos)
Integridad (es seguro ante manipulaciones)
Facilidad de uso

Factores de Calidad
Mantenimiento (revisin)
Mantenibilidad (se puede corregir)
Prueba (se puede testear)
Flexibilidad (adaptabilidad) Se le pueden aadir nuevas
funcionalidades.

Transferencia o Transicin
Portabilidad (utilizable en otros entornos)
Reusabilidad (sus partes se pueden usar en otros productos)
Compatibilidad: se puede conectar a otros programas.
Interoperabilidad.

Elementos de un plan de
aseguramiento de la calidad
Todas las actividades deben ser planeadas y
escritas.
Deben comenzar en paralelo con los
requerimientos o antes.
Dependiendo del tamao del proyecto, un
grupo independiente y entrenado debe
controlar calidad.
El plan contiene elementos medibles.

Tcnicas de Aseguramiento de
la calidad

Seguimiento de errores.
Se mantiene en todo el plan.
Nm. Error / Desc. / severidad / Fase / etc.

Testeo
Revisiones tcnicas (walkthroughs, inspecciones,
lectura de codigo,etc.)

Notificacin y distribucin
Preparacin
Reuniones de revisin
Reportes
Seguimientos

Claves del xito en las


revisiones tcnicas

Utilizar testeadores independiente.


Mantener las revisiones focalizadas en detectar
errores.
Llevar registro de los errores detectados.
Hacer publicas las revisiones dentro del grupo de
proyecto.
Revisar el producto, no el productor.
Fijar una agenda y mantenerla.
Limitar el debate y las impugnaciones.

Qu deben verificar los


revisores de un proyecto?

Las actividades de estimacin y planificacin (del


proyecto y del software).
La planificacin de las revisiones y controles de
calidad.
La existencia de actividades de preparacin del
plan de desarrollo del software.
Los estandares usados en la preparacin del plan
de desarrollo.
Los contenidos del plan.

Metricas de seguimiento de
defectos de SCO

Nuevos arribos:
grfico de barras compuestas con un mapeo de los
defectos a lo largo del tiempo. Cada barra tiene 5
secciones, una por cada nivel de severidad. Una
barra por cada semana. El ratio debe disminuir a
medida que se acerca la fecha de lanzamiento.

Arreglos por severidad:


similar al anterior. Constata arribos vs arreglos.

Metricas de seguimiento de
defectos de SCO

Registro de defectos arreglo prioritario:


Enumera los defectos que deben ser reparados
inmediatamente despus del lanzamiento.

Defectos no prioritarios:
Enumera los defectos que pueden ser
reparados a lo largo del tiempo pero sin
demasiado esfuerzo.

Captulo II

CALIDAD
DE
PRODUCTO

Calidad de Producto

Introduccin

Modelo de calidad de producto Sw: ISO 9126

Evaluacin del producto software: ISO 14598

Ejemplos

Calidad de Producto: Introduccin

El objetivo no es necesariamente alcanzar una


calidad perfecta, sino la necesaria y suficiente
para cada contexto de uso a la hora de la
entrega y del uso por parte de los usuarios.

Es necesario comprender las necesidades


reales de los usuarios con tanto detalle como
sea posible (requisitos).

Calidad de Producto: Introduccin


Diferentes aspectos de la calidad:
Interna: medible a partir de las caractersticas
intrnsecas, como el cdigo fuente
Externa: medible en el comportamiento del
producto, como en una prueba
En uso: durante la utilizacin efectiva por parte
del usuario

Calidad de Producto: Introduccin


Proceso

Influye
Proceso de
calidad

Influye
Calidad
interna

Depende de

Efecto del
producto

Producto

Influye
Calidad
externa

Depende de

proveedor

Calidad
en uso
Depende de

usuario

Contextos
de uso

Calidad de Producto: Introduccin

Calidad
En el
Ciclo de
Vida
Del
Software

Necesidades
de calidad
del usuario

Calidad en uso
Uso y
retroalimentacin
Indica

Contribuye a especificar

Requisitos de
calidad externa

Validacin

Contribuye a especificar

Calidad
externa

Indica

Requisitos de
calidad interna

Calidad
interna
Verificacin

Calidad de Producto: Introduccin


Caractersticas
Sub_caractersticas
y
Atributos de
Calidad
Del
Software

x
x
x
x

x
x

x
x

x
x

x
x

x
x

atributo
subcaracterstica

atributos internos

caracterstica

atributos externos

Calidad de Producto: Introduccin


Modelo de McCall et al. (1977)
Visin de la direccin
Visin de usuario

Operacin de
producto

Facilidad de uso
Seguridad (integridad)
Eficiencia
Correccin (exactitud)
Fiabilidad

Revisin de
producto

Facilidad de
mantenimiento
Facilidad de
prueba
Flexibilidad

Transicin de
producto

Capacidad de
reutilizacin
Transportabilidad
Interoperabilidad

Visin del desarrollador


Operabilidad
Familiarizacin
Comunicatividad
Volumen y tasa de E/S
Datos comunes
Control y audit. de acceso
Integridad de datos
Eficiencia de almacenam.
Eficiencia de ejecucin
Complecin
Trazabilidad
Consistencia
Precisin
Tolerancia a errores
Simplicidad
Concisin
Autodescriptividad
Modularidad
Instrumentacin
Capacidad de ampliacin
Generalidad
Indep. mquina
Indep. soft. de sistema
Comunicac. comunes

Calidad de Producto: ISO 9126


ISO/IEC 9126: Tecnologas de la Informacin

Calidad de los productos software.

Parte 1: Modelo de Calidad

Parte 2: Mtricas Externas


Parte 3: Mtricas Internas
Parte 4: Mtricas de Calidad en Uso

Calidad de Producto: ISO 9126


Ejemplos de uso:

Validar la completitud de una definicin de requisitos;


Identificar requisitos software;
Identificar objetivos para el diseo software;
Identificar requisitos para las pruebas del software;
Identificar requisitos para el aseguramiento de la
calidad;
Identificar criterios de aceptacin para un producto
software completo.

Calidad de Producto: ISO 9126


Modelo de calidad para calidad interna y externa

calidad externa
e interna

funcionalidad

fiabilidad

usabilidad

adecuacin
exactitud
interoperabilidad
seguridad de
acceso

madurez
tolerancia a
fallos
capacidad de
recuperacin

cumplimiento de
la funcionalidad

cumplimiento de
la fiabilidad

capacidad para
ser entendido
capacidad para
ser aprendido
capacidad para
ser operado
capacidad de
atraccin
cumplimiento de
la usabilidad

eficiencia

mantenibilidad

portabilidad

comportamiento
temporal
utilizacin de
recursos

capacidad para
ser analizado
capacidad para
ser cambiado
estabilidad
capacidad para
ser probado

adaptabilidad
instalabilidad
coexistencia
capacidad para
ser reemplazado

cumplimiento de
la eficiencia

cumplimiento de
la mantenibilidad

cumplimiento de
la portabilidad

Calidad de Producto: ISO 9126


Funcionalidad
Adecuacin
Capacidad del producto software para proporcionar un
conjunto apropiado de funciones para tareas y objetivos de
usuario especificados.
Exactitud
Capacidad del producto software para proporcionar los
resultados o efectos correctos o acordados, con el grado
necesario de precisin.
Interoperabilidad
Capacidad del producto software para interactuar con uno o
ms sistemas especificados.

Calidad de Producto: ISO 9126


Funcionalidad
Seguridad de acceso
Capacidad del producto software para proteger
informacin y datos de manera que las personas
o sistemas no autorizados no puedan leerlos o
modificarlos, al tiempo que no se deniega el acceso
a las personas o sistemas autorizados
Cumplimiento funcional
Capacidad del producto software para adherirse a normas,
convenciones o regulaciones en leyes y prescripciones
similares relacionadas con funcionalidad.

Calidad de Producto: ISO 9126


Fiabilidad
Madurez
Capacidad del producto software para evitar fallar como
resultado de fallos en el software.
Tolerancia a fallos
Capacidad del software para mantener un nivel especificado
de prestaciones en caso de fallos software o de infringir sus
interfaces especificados.
Capacidad de recuperacin
Capacidad del producto software para reestablecer un nivel
de prestaciones especificado y de recuperar los datos
directamente afectados en caso de fallo.

Calidad de Producto: ISO 9126


Fiabilidad
Cumplimiento de la fiabilidad
Capacidad del producto software para adherirse a normas,
convenciones o regulaciones relacionadas con al fiabilidad.

Calidad de Producto: ISO 9126


Usabilidad
Capacidad para ser entendido
Capacidad del producto software que permite al usuario
entender si el software es adecuado y cmo puede ser usado
para unas tareas o condiciones de uso particulares.
Capacidad para ser aprendido
Capacidad del producto software que permite al usuario
aprender sobre su aplicacin.
Capacidad para ser operado
Capacidad del producto software que permite al usuario
operarlo y controlarlo.

Calidad de Producto: ISO 9126


Usabilidad
Capacidad de atraccin
Capacidad del producto software para ser atractivo al
usuario.
Cumplimiento de la usabilidad
Capacidad del producto software para adherirse a normas,
convenciones, guas de estilo o regulaciones relacionadas
con la usabilidad.

Calidad de Producto: ISO 9126


Eficiencia
Comportamiento temporal
Capacidad del producto software para proporcionar tiempos
de respuesta, tiempos de proceso y potencia apropiados,
bajo condiciones determinadas.
Utilizacin de recursos
Capacidad del producto software para usar las cantidades y
tipos de recursos adecuados cuando el software lleva a cabo
su funcin bajo condiciones determinadas.
Cumplimiento de la eficiencia
Capacidad del producto software para adherirse a normas o
convenciones relacionadas con la eficiencia.

Calidad de Producto: ISO 9126


Mantenibilidad
Capacidad para ser analizado
Es la capacidad del producto software para serle
diagnosticadas deficiencias o causas de los fallos en el
software, o para identificar las partes que han de ser
modificadas.
Capacidad para ser cambiado
Capacidad del producto software que permite que una
determinada modificacin sea implementada.
Estabilidad
Capacidad del producto software para evitar efectos
inesperados debidos a modificaciones del software.

Calidad de Producto: ISO 9126


Mantenibilidad
Capacidad para ser probado
Capacidad del producto software que permite que el
software modificado sea validado.
Cumplimiento de la mantenibilidad
Capacidad del producto software para adherirse a normas o
convenciones relacionadas con la mantenibilidad.

Calidad de Producto: ISO 9126


Portabilidad
Adaptabilidad
Capacidad del producto software para ser adaptado a
diferentes entornos especificados, sin aplicar acciones o
mecanismos distintos de aquellos proporcionados para este
propsito por el propio software considerado.
Instalabilidad
Capacidad del producto software para ser instalado en un
entorno especificado.
Coexistencia
Capacidad del producto software para coexistir con otro
software independiente, en un entorno comn,

Calidad de Producto: ISO 9126


Portabilidad
Capacidad para reemplazar
Capacidad del producto software para ser usado en lugar de
otro producto software, para el mismo propsito, en el
mismo entorno.
Cumplimiento de la portabilidad
Capacidad del producto software para adherirse a normas o
convenciones relacionadas con la portabilidad.
.

Calidad de Producto: ISO 9126


Modelo de calidad para calidad en uso

calidad en
uso

efectividad

productividad

seguridad de
acceso

satisfaccin

Calidad de Producto: ISO 9126


Efectividad
Capacidad del producto software para permitir a los usuarios
alcanzar objetivos especificados con exactitud y completitud,
en un contexto de uso especificado.
Productividad
Capacidad del producto software para permitir a los usuarios
gastar una cantidad adecuada de recursos con relacin a la
efectividad alcanzada, en un contexto de uso especificado.
Seguridad fsica (de acceso)
Capacidad del producto software para alcanzar niveles
aceptables del riesgo de hacer dao a personas, al negocio, al
software, a las propiedades o al medio ambiente en un
contexto de uso especificado.

Calidad de Producto: ISO 9126


Satisfaccin
Capacidad del producto software para satisfacer a los usuarios
en un contexto de uso especificado.

Calidad de Producto: ISO 14598

Recursos y
entorno

Apoyo a la
evaluacin

Proceso de
evaluacin

Proceso de
evaluacin

Producto
software

Mtricas
Internas

Mtricas
externas

Efecto del
producto
software

Mtricas de
calidad en
uso

14598-1
14598-2

14598-3

9126-1

14598-4
14598-6

14598-5

9126-3

9126-2

9126-4

Calidad de Producto: ISO 14598


La norma UNE 71048: Tecnologa de la
Informacin Evaluacin del Producto Software
(Soporte Lgico):
-- Parte 1: Visin general
-- Parte 2: Planificacin y gestin
-- Parte 3: El proceso para desarrolladores
-- Parte 4: El proceso para adquisidores
-- Parte 5: El proceso para evaluadores
-- Parte 6: Documentacin de los mdulos de evaluacin

Calidad de Producto: ISO 14598


Proceso de evaluacin
Establecer propsito de la evaluacin (7.1)
Establecer
requisitos de
evaluacin

Identificar los tipos de producto(s) (7.2)


Especificar el modelo de calidad (7.3)
Seleccionar mtricas (8.1)

Especificar
evaluacin

Establecer niveles para las mtricas (8.2)


Establecer criterios de valoracin (8.3)

Disear
evaluacin

Producir plan de evaluacin (9.1)

Tomar medidas (10.1)


Ejecutar
evaluacin

Comparar con criterios (10.2)


Valorar resultados (10.3)

9126-1 Caractersticas de
Calidad
9126-2 Mtricas Externas
9126-3 Mtricas Internas
14598-6 Mdulos de
Evaluacin

Calidad de Producto: ISO 14598


Establecer el propsito de la evaluacin
Productos intermedios:
decidir sobre la aceptacin de un producto intermedio de un subcontratista;
decidir cuando un proceso est completo y cuando remitir los productos al
siguiente proceso;
predecir o estimar la calidad del producto final;
recoger informacin con objeto de controlar y gestionar el proceso.

Producto final:
decidir sobre la aceptacin del producto;
decidir cuando publicar el producto;
comparar el producto con otros productos competitivos;

Calidad de Producto: ISO 14598


Establecer el propsito de la evaluacin
seleccionar un producto entre productos alternativos;
valorar tanto el aspecto positivo como negativo cuando est en uso;
decidir cuando mejorar o reemplazar un producto.

Calidad de Producto: ISO 14598


Requisitos

mundo
real

Operacin

Necesidades

Calidad
en uso

mtricas
externas

uso y respuesta
determina

Especificacin
indica

comportamiento del
sistema
real

Requisitos
calidad
externos

Calidad
externa

Integracin
del Sistema y
Pruebas
mtricas
externas

determina

Diseo y
Desarrollo
indica

atributos
software

Requisitos
calidad
internos

Calidad
interna

mtricas
internas

Identificar los
tipos de
producto(s) a
ser evaluados

Calidad de Producto: ISO 14598


Especificar el modelo de calidad
- ISO 9126 -1

Seleccionar mtricas
- ISO 9126 2 y -3

Calidad de Producto: ISO 14598


Establecer niveles de puntuacin para las mtricas
Excede los requisitos
nivel planeado
valor
medido

Rango objetivo

satisfactorio

nivel actual
Mnimamente aceptable
el caso peor

insatisfactorio
Inaceptable

escala de medicin

niveles de puntuacin

Calidad de Producto: ISO 14598


Establecer criterios para la evaluacin
El evaluador debe preparar un procedimiento para esto, con
criterios distintos para diferentes caractersticas de calidad,
cada uno pudiendo estar expresado en trminos de
subcaractersticas individuales, o una combinacin ponderada
de subcaractersticas. El procedimiento habitualmente incluir
otros aspectos como el tiempo y el coste que contribuyen a la
estimacin de la calidad de un producto software en un entorno
concreto.

Calidad de Producto: ISO 14598


Producir un plan de evaluacin
El plan de evaluacin describe los mtodos de evaluacin y el
programa de acciones del evaluador (UNE 71048-3, UNE
71048-4 o UNE 71048-5). Debe ser consistente con el plan de
mediciones (UNE 71048-2).
2 . P l a n i f ic a c i n y G e s t i n

3 . P ro c e s o p a ra
D e s a r r o ll a d o r e s

4 . P ro c e s o p a ra
A d q u is id o r e s

6 . D o c u m e n t a c i n d e
m d u lo s e v a lu a c i n

5 . P ro c e s o p a ra
E v a lu a d o r e s

CALIDAD DE PRODUCTO

ISO 25000

CALIDAD DE PRODUCTO

EJEMPLOS

Franch y Carvallo
(2003)
0.- Definir el dominio
1.- Determinar subcaractersticas de calidad
2.- Definir una jerarqua de subcaractersticas
3.- Descomponer subcaractersticas en atributos
4.- Descomponer atributos derivados en atributos bsicos
5.- Establecer relaciones entre entidades de calidad
6.- Determinar mtricas para los atributos

CALIDAD DE PRODUCTO

EJEMPLOS

Calidad de Producto: ISO 14598


Tomar medidas
Para la medicin, las mtricas seleccionadas se aplican al producto
software. Los resultados son valores expresados en las escalas de las
mtricas.

Comparar con los criterios


En el paso de puntuacin, el valor medido se compara con los
criterios predeterminados

Valorar los resultados


La valoracin, que resume un conjunto de niveles calificados, es el
paso final del proceso de evaluacin del software

Control Calidad Software


Formulacin

Objetivos:

Identificar atributos de Calidad de Software.


Revisar propuestas de Atributos de calidad
Atributos de Calidad vs. Requerimientos de usuario.
Midiendo la Calidad
Mtricas de Calidad de Software.
Definir las Actividades para Definicin de Atributos

Identificando Factores y
Atributos de Calidad

P1. Seleccionar los factores de calidad.


Por ejemplo: factores prioritarios y de mayor importancia
para un software de vuelo son generalmente la Fiabilidad
(Reliability) y la eficiencia (Efficiency).
Se debera identificar atributos especficos que ayudan a
incrementar la calidad. Por ejemplo: MODULARIDAD.

P2. Factores debe ser rankeados.

Consideraciones

No todas los factores de calidad estn


relacionados en forma simple a atributos
medibles de cdigo y diseo.
Tampoco es tan simple medir la calidad.
La idea es seleccionar o inventar atributos de
diseo o cdigo que sean medibles, analizables o
testeables, que incrementen las calidad deseada.
Atributos similares a encapsulamiento, fuerza,
cohesin y acoplamiento, deberan ser considerados

Necesidades de Usuario

El software est basado en una jerarqua de


necesidades de usuario.
Funcional
Operacional
Performance

Necesidades
de Usuarios
para Software

Cambios
Mantencin
Administracin

Necesidades de Usuarios vs.


Factores de Calidad

Ejemplo: Definiciones de
Atributos de Calidad

Exactitud: El software es exacto si produce resultados que


estn dentro de la tolerancia de exactitud requerida. Para ser
exacto, se debe conservar el nmero de bits de precisin
durante el clculo: Librerias matemticas, tcnicas
numricas, conversin numrica.

Ejemplo: Definiciones de
Atributos de Calidad
Algunas sugerencias:
Seleccionar libreras matemticas para lograr los
requerimientos de precisin.
Usar anlisis numrico para disear algoritmos precisos.
Minimizar el nmero de representaciones diferentes de
datos.
Usar prototipos o modelos que verifiquen la estabilidad
de algoritmos.
Seleccionar computadores (hardware) que permitan
lograr la precisin requerida.

Algunas Definiciones de
Atributos de Calidad

Administracin de Anomalas:
La administracin de anomalas de software (error)
funciona bien si se puede detectar y recuperar
elegantemente desde condiciones anmalas ms que
romper el procesamiento o pararlo.
En esencia, el software debera ser diseado para
sobrevivir cuando se enfrenta a fallas de hardware o
software. La administracin de fallas, debera inclur :
deteccin, contencin y recuperacin de fallas originadas
por:
Entradas de datos impropias, fallas computacionales,
fallas de hardware, fallas de dispositivos y errores de
comunicacin.

Algunas Definiciones de
Atributos de Calidad
- La reconfiguracin en Tiempo Real es una de las tcnicas
que se puede usar para la recuperacin.
Algunas sugerencias para lograr niveles altos de
administracin de anomalas:
Especficar qu significa vlido para todas las
entradas externas.
Chequear valores de entrada para series.
Usar alternativas significativas para continuar la
ejecucin en presencia de un error.
Testing en Diseo (ms que confiarse en programas de
test)
Periodicamente chequear interfases de sistemas.
Proveer servicios comunes de recuperacin de error.

Formulacin - Guia de Accin

SQC 1- Establecer los requerimientos de calidad de


Software.
A1. Identificar una posible lista de requerimientos de
calidad.
(Usar experiencia organizacional, estndares requeridos,
regulaciones o leyes para crear la lista)
A2. Ordenar los requerimientos de Calidad
(Ponderar la lista de factores por importancia, que es
una funcin del sistema y el punto de vista de las
personas involucradas)
Para ello:
Reunir a todas las partes involucradas
Crear la lista actual de requerimientos de calidad,
sobre la base de Anlisis de Factibilidad Tcnico de

Formulacin - Guia de Accin


A3. Cuantificar cada factor:
Asignar una o ms mtricas directas para representar el
factor y asignar el valor directo de la mtrica.
El valor directo es utilizado para verificar el logro del
requerimiento de Calidad.
La lista de requerimientos cuantificados y sus
definiciones debera ser aprobada por todas las partes
involucradas.

Mtricas

Midiendo Factores y Atributos


Usando Mtricas

Las mtricas son valores cuntitativos, generalmente


calculados desde el diseo o cdigo, que miden la calidad en
cuestin, o algn atributo del software relacionado con la
calidad.

Muchas mtricas han sido inventadas, y un gran nmero de


ellas han sido utilizadas exitosamente en ambientes
especficos, pero la mayora no han ganado una aceptacin
ampla.

Clasificando los factores

DOD-STD-2167:
SE organiza alrededor de los factores de fitness-for-use
(parmetros para ajustes para el uso o atributos de
calidad)
Atributos de Calidad:
Dinmicos: examinan el comportamiento dinmico del
software mientras se est ejecutando.
Tiempo medio entre fallas (MTF)
Tiempo de recuperacin de fallas
Porcentaje de recursos usados disponibles.

Clasificando los factores


Estticos: se validan inspeccionando el producto de
software no ejecutado:
Modularidad
Simplicidad
Competitud

Mtricas de Calidad -Algunos


ejemplos (Pressman)

Mtricas del Modelo de Anlisis


PF
Bang
Mtricas de Calidad de Especificacin(David, 1993)
Mtricas del Modelo de Diseo
Mtricas del diseo de alto nivel (Card & Glass, 1990)
Complejidad estructural, complejidad de datos y
complejidad del sistema.
MKH: mtrica de diseo arquitectnico (Kafura,
1981)
Mtricas de Morfologa (Fenton, 1991)
Mtrica Indice de Calidad de estructura de diseo

Mtricas de Calidad -Algunos


ejemplos (Pressman)

Mtricas de diseo de componentes:


Mtricas de Cohesin
Mtricas de Acoplamiento
Mtricas de Complejidad
Mtricas de Diseo de Interfaz
Mtricas de Cdigo Fuente:
Teora de Halstead

Mtricas de Pruebas
Mtricas de Mantenimiento (Hetzel, 1993)
Indice de Madurez del Software (IEEE 982.1-1988)

Entendiendo el problema de
Mediciones

La medicin est relacionado a los conceptos de entidad de


inters y la definicin operacional de los conceptos.
Dependiendo de la definicin operacional, se pueden aplicar
diferentes niveles de medicin:
Escala Nominal
Escala Ordinal
Escala de Intervalos y Ratios
Algunas medidas bsicas
Ratio
Proporcin

Entendiendo el problema de
Mediciones

Porcentaje
Tasa: El concepto de tasa est asociado con el dinamismo
(cambios) del fenmeno de inters. Generalmente, se
define como una medida de cambio de una cantidad (y) por
unidad de otra cantidad (x) sobre la cual se forma la
dependencia. Generalmente la variable x es el tiempo.
Consideraciones:
Fiabilidad y Validez (errores sistemticos)
Errores en la medicin
Correlacin

Categoras Funcionales de
MEDIDAS

Mtricas de Calidad del Producto:


Errores, Fallas y Defectos
Tiempo medio de fallas, tasa de fallas
Crecimiento de Fiabilidad y proyecciones.
Defectos de productos remanentes
Completitud y consistencia
Complejidad
Satisfaccin de Cliente
Mtricas de Calidad del Proceso:
Phase-based defect removal pattern
Efectividad de remocin de defectos
Densidad de defecto durante el testing formal

Categoras Funcionales de
MEDIDAS

Control de administracin
Cobertura
Riesgos, beneficios, evaluacin de costos
Medidas de Mantencin
Fix backlog
Backlog managemente index
Fix response time
Percent delinquent fixes
Defective fixes
Adems, de la clasificacin funcional, las medidas tambin
se clasifican por las fase de ciclo de vida en que se utilizan

Ejemplo de Definicin de
Mtricas: Fault Density
Fault Density (Densidad de Fallas)
1. Aplicacin: La medida puede ser usada para desarrollar las
siguientes funciones:
A. Predecir las fallas restantes por comparacin con la
densidad de fallas esperadas.
B. Determinar si el testing es suficiente y ha sido
completado, basado en metas predeterminadas para varias
clases.
C. Establecer densidad de fallas estndar para comparacin
y prediccin.
2. Primitivas:
KSLOC = Nmero de lineas fuentes de un cdigo ejecutable
F = Nmero total de fallas nicas encontradas en un

Ejemplo de Definicin de
Mtricas: Fault Density
intervalo de tiempo dado resultando en fallas de un nivel de
intensidad especfico.
declaraciones de datos no ejecutables en Miles.
3. Implementacin:
1. Los tipos de fallas podran incluir I/O y usuarios y
podran resultar del diseo, codificacin, documentacin e
inicializacin.
2.

Observar cada falla.

Ejemplo de Definicin de
Mtricas: Fault Density
3.

Determinar la falta(s) de programa que causa la falla.


Clasificar las faltas por tipo. Podran ser encontradas
faltas adicionales en las faltas globales, siendo mayor el
nmero que las fallas observadas, o una falta podra
manifestarse por si misma por diversas fallas. De todas
formas, tanto las faltas como las fallas pueden ser
medidas.
4. Determinar el total de lneas de cdigo fuente de
declaraciones ejecutables y no ejecutables (KSLOC).
5.

Calcular la densidad de faltas para un nivel de


severidad determinado.
Fd = F/

Ejemplo de Definicin de
Mtricas: Fault Density
4. Interpretacin:
Comparacin de medidas de Densidad de Fallas hechas
sobre sistemas similares puede dar alguna indicacin de si
el actual sistema ha sido suficientemente testeado. La
Fiabilidad del software puede ser evaluada
cuantitativamente con esta informacin..

5. Consideraciones:
Los resultados del test deberan ser analizados para asegurar
que las fallas, no solo defectos, son identificados. La
cobertura del test debera ser amplio.
KSLOC debera ser calculada consistentemente (cdigo
ejecutable y datos).

Ejemplo de Definicin de
Mtricas: Fault Density
Debera ser reconocido cuando comparamos productos con
densidades de fallas esperadas y las densidad de falla
medidas tienen clases e intensidad.
6. Entrenamiento:
Se requiere un mnimo entrenamiento para usar esta mtrica.
Sin embargo, es necesario una experiencia previa en
testing, para determinar clasificaciones de fallas y
defectos. Se requieren buenas tcnicas de captura y
registros, as como herramientas de conteo de cdigo
fuente son esenciales.

Captulo III
Aseguramiento de la
Calidad
del Software (SQA)

Caractersticas
Caractersticas del
del Software
Software

La complejidad es difcil de estimar

La calidad es difcil de medir

El proceso de desarrollo es muy


dependiente de factores humanos
Difcil de controlar
Est expuesto a altos riesgos

El mantenimiento es costoso

Importancia
Importancia del
del Software
Software
La ventaja competitiva de cualquier
empresa en tecnologa de
informacin radica en el software y
el peopleware (humanware) que
posea, y no en el hardware que
adquiera.

Peoplewa
re
Softwar
e
Hardware

Aseguramiento
Aseguramiento de
de la
la Calidad
Calidad del
del
Software
Software (SQA)
(SQA)

Conjunto sistemtico de
Procediprocedimientos,
mientos
herramientas y
SQA HerraMtodos
mtodos necesarios
mientas
para asegurar la
calidad del software.

Plan
Plan de
de Calidad
Calidad del
del Software
Software
Conjunto planificado y sistemtico de
acciones necesarias para proveer la
confianza de que un producto cumple con
los requerimientos tcnicos establecidos
Estndar IEEE 610.12-1990
IEEE Software Engineering Standards
IEEE Inc., 1994

Calidad
Calidad del
del Software
Software
Concordancia con los

requerimientos
AD
D
I
L
CA
funcionales y de
rendimiento.
Cumplimiento con los
Requeri- Estnestndares de
Otro
mientos dares
s
desarrollo.
Cumplimiento con otras
caractersticas
implcitas.

Herramientas
Herramientas Modernas
Modernas
Herramientas
CASE
Desarrollo
Orientado a Objetos

Reingeniera
de procesos

Inspecciones
Mtricas

Administracin
del riesgo

Reusabilidad
Ingeniera de
la informacin

JAD, RAD, PD
Lenguajes de
4ta generacn

Mtodos
formales

Estndares
Contratacin
externa

Estndar
Estndar de
de Ingeniera
Ingeniera de
de Software
Software
Regla o base de comparacin que
se utiliza para medir algn aspecto
del software.

Calidad
Productividad
Duracin
Esfuerzo
Costo

ar
d
n

t
Es
XYZ

Por
Por qu
qu Utilizar
Utilizar Estndares?
Estndares?

Son indispensables cuando muchas


personas, productos y herramientas deben
coexistir.
Promueven el buen uso de mtodos y
herramientas.
Permiten la comunicacin entre los
desarrolladores.

Facilitan el mantenimiento del software.

Por
Por qu
qu Utilizar
Utilizar Estndares?
Estndares?

Facilitan la capacitacin del personal.

Proveen una base para evaluar los diferentes


productos de software.

Permiten definir el proceso de software de una


organizacin.

Objetivo
Objetivo de
de los
los Estndares
Estndares
Usuario

SQA
Ingeniero
de
Software

Estndare
s

Nivel de
calidad

Utilizacin
Utilizacin de
de Estndares
Estndares
CMM
Proceso de
mejoramiento
de la calidad
Estndares
de Software

ISO 900
SPICE

Metricas de diseo O.O.

(Mark Lorenz, Object-Oriented Metrics, Prentice Hall, 1994)

Existen 26 mtricas divididas en las siguientes


areas:
Tamao de los mtodos
Estructura interna de los mtodos
Tamao de las clases
Herencia de Clases
Herencia de mtodos
Estructura interna de las clases

Metricas de diseo O.O.

(Mark Lorenz, Object-Oriented Metrics, Prentice Hall, 1994)

Tamao de los mtodos


Cantidad de mensajes.
Tipo de mensaje segn cantidad de argumentos
(unarios, binarios, N-arios).
En 6 proyectos usando Smalltalk el promedio de
mensajes por mtodo variaba de 7 a 20. Los mtodos
con mas de 9 mensajes deban ser verificados ya
que podan indicar orientacin a la funcin.

Metricas para aplicar al


proyecto

Hay dos preguntas para establecer y


reportar el estado de desarrollo de un
proyecto:
Progreso: cuanto de lo planeado se ha
avanzado o cumplido?
Estabilidad: cuantos cambios se han realizado
con respecto a lo planificado?

Metricas para aplicar al


proyecto
Variancia: la diferencia entre lo planeado y lo
real.
Que se mide?

Costos
Tiempos
Porcentajes de completitud.
Productividad
Curvas de recursos (usados vs. planeados)

Reporte del avance de un


proyecto

Debe tener las siguientes secciones:

Cartula o presentacin.
Reporte de novedades.
Anlisis de Riesgo (semforo).
Cumplimiento de presupuestos.
Cumplimiento de cronogramas (GANTT)
Estabilidad del desarrollo.
Otras mtricas.
Acciones a seguir o recomendaciones.

Definicin de Calidad aceptada


Calidad, segn estndar IEEE:
CALIDAD DE PROCESO
Atributos de:
Tcnicas
Herramientas
Personas
Organizacin
Infraestructura

(1) El grado en que


un
sistema,
El grado
en que un sistema,
componente
o
componente o proceso,
proceso,
satisface requerimientos
satisface
especficos
.
requerimientos
especficos.

IEEE - Quality

CALIDAD DE
PRODUCTO
Atributos de:
Documentos
Diseo
Cdigo
Test
Satisfaccin

(2) El grado en el
que
un en
sistema,
(2) El grado
el que
componente
, o
un sistema,
componente,
o proceso
proceso
satisface
satisface las necesidades
las
necesidades o
o expectativas de un
expectativas
de
cliente o usuario.
un
cliente
o
usuario.

Enfoques para mejorar la Calidad


Total Quality Management:
Representa un estilo de administracin
definido para lograr el xito en el largo plazo,
relacionando calidad con la satisfaccin del
cliente.
El enfoque bsico es la creacin de una
cultura en la cual todos los miembros de la
organizacin participen en el mejoramiento
de procesos, productos y servicios.

Enfoques para mejorar la Calidad

Varios
mtodos
especficos
para
implementar la filosofia TQM, se fundan en
los trabajos de Philip Crossby (1979), W.
Edward
Deming
(1986),
Armand
Feigenabaum(1961, 1991), Koru Ishikawa
(1995) y J.M. Juran (1970).

TQM se generaliza

Desde los 80, muchas compaias en


U.S.A. Han comenzado adoptar el enfoque
TQM para la calidad.
The Malcom Baldrige National Quality Award,
establecido por el gobierno Norteamericano
en 1988, resalt por la filosofia y el estilo de
administracin.
Fiebre Mundial de Calidad !

TQM se generaliza

La adopcin de ISO 9000 como el


estndar de administracin de calidad en
la comunidad econmica europea y su
aceptacin como estndar por el sector
privado, demuestra la filosofia de la
calidad en los ambientes de negocios
actuales.
Fiebre Mundial de Calidad !

Experiencias de Exito de TQM

En la industria electrnica y de
computacin:
Ejemplos de implementaciones exitosas de
TQM incluyen:
Hewlett-Packard Total Quality Control (TQC)
Se centra en reas claves tales como: apoyo de
admnistracin, foco en el cliente, participacion total, y
anlisis sistemtico. (SQPA) Software Quality and
Productivity Analysis (Zimmer, 1989).

Motorola Six Sigma Strategy.


IBM Market Driven Quality.

Se centran en el cliente como factor relavante.

Elementos Claves de TQM


Total Quality Management
Continuous Improvement

Customer
Focus

Process
Improvement

Human Side
Of Quality

Metrics, Models,
Measurement, and Analysis
CLIENTE MEJORAMIENTO DE PROCESO LADO HUMANO DE LA CALIDAD
MEDICION Y ANALISIS

Propuesta de Modelo de TQM para


Software
Circle 1 Visible, demostrable, sustained management
support
Circle 2 Strategic Planning for information asset
management
Circle 3 A Process for software total quality management
Circle 4 Total Employee involvement/Productivity gain
sharing
1

4
THE SOFTWARE
ENGINEERING
TECHNIQUE

THE PROJECT
MANAGEMENT
PROCESS

THE
QUALITY
ASSURANCE
PROCESS

THE SOFTWARE
ENGINEERING
TECHNIQUE
THE PROJECT
MANAGEMENT
PROCESS

THE
QUALITY
ASSURANCE
PROCESS

THE
THE
AUTOMATED METHODOLOGY
TOOLS

THE
THE
AUTOMATED METHODOLOGY
TOOLS

Ref: Total Quality Management for Software,


G.Gordon Schulmeyer and James I. Mc.Manus, Van Nostrand Reinhold, 1992

Software Quality- Calidad de


Software

Software producto intangible.


Es ms difcil de caracterizar que los productos
fsicos.
Si es posible definir medidas que caractericen el
producto de software (PF, KLDC, complejidad
ciclomtica, etc.)

Calidad de Software :
Sentido comn: carencia de bugs en el
producto.Tambin significa la conformidad de los
requerimientos.

Software Quality- Calidad de


Software
Porque si el software contiene muchos defectos
funcionales los requerimientos bsicos no se
cumplen.
La definicin anterior,generalmente es expresada de
2 formas:
DEFECT RATE (Tasa de Defecto)[# defectos por milln de
lneas de cdigo fuente, por PF, u otra unidad].
RELIABILITY (Fiabilidad ) [# de fallas por n horas de
operacin, tiempo medio de fallas, o la probabilidad de una
operacin libre de errores en un tiempo especifico].

La Satisfaccin de Cliente tambin se mide por % de


satisfaccin o no satisfaccin de la investigacin que
se realiza a los clientes.

Qu es un Defecto?
La definicin ms clsica de defecto involucra
desde anomalas de bajo nivel como errores,
bugs y faltas. Esta definicin clsica puede ser
encapsulada como sigue:
Error: Una discrepancia conceptual, sintctica o
valorica con los resultados en una o ms faltas en el
software.
Falta: Una manifestacin especfica de un error. Una
discrepancia en el software que puede disminuir su
habilidad para la funcin que se ha intentado.

Qu es un Defecto?

Falla: Una falla de software ocurre cuando una falta


en el programa computacional es invocado por
algn dato, resultando en que el programa
computacional no compute correctamente la
funcin requerida en una forma exacta.

Defecto: Un defecto es una falta o una discrepancia


entre el cdigo y la documentacin que comprende
las pruebas, o un efecto adverso producido en la
instalacin, modificacin, mantencin o pruebas.

Qu es un Defecto?

Bug: Un trmino suave para un defecto. Utilizado


por un gran nmero de profesionales del software
para hacer tolerables los defectos para los
programadores.

IEEE

La sabidura comienza por la definicin de los trm

Segn IEEE:
Quality:
(1) The degree to wich a system, component,
meets specified requirements.
(2) The degree to wich a system, component
meets customer or user needs or expectations.

or process
or process

Quality assurance (QA):


(1) A planned and systematic pattern of all actions
necessary to provide adequate confidence that an
item or product conforms to established technical
requirements.

IEEE

La sabidura comienza por la definicin de los trm

(2) A set of activities designed to evaluate the


process by which products are developed or
manufactured. Contrast with: quality control (1).

Quality Control (QC):


Note: This term has no standarized meaning in
software engineering at this time. Candidate
definitions are:
(1) A set of activities designed to evaluate the
quality of developed or manufactured products .
Contract with: quality assurance (2).
(2) The process of verifying ones own work or that of a
co-worker.
(3) Synonym for quality assurance..

Literatura famosa

La sabidura comienza por la definicin de los trm

Segn Roger Pressman:


Calidad:
Concordancia con los requisitos funcionales y
de rendimientos explcitamente establecidos,
con los estndares de desarrollo

SQA: Auditora y funciones de informacin.


Actividades de SQA:
Establecimiento de Plan
Evaluaciones a realizar
Auditora y revisiones a realizar

Literatura famosa

La sabidura comienza por la definicin de los trm

Segn Roger Pressman:

Estndares que se puedan aplicar


Procedimientos para informacin y seguimiento de error
Documentos producidos por SQA
Realimentacin

SQC: Inspecciones y revisiones


Pg. 122, Ing. de Sw.: Un enfoque prctico

NASA

La sabidura comienza por la definicin de los trm

NASA:
SQA: Es definido como un enfoque sistemtico y
planificado para la evaluacin de la calidad, de la
adhesin a los estndares de software del
producto, procesos y procedimientos.
SQA incluye los procesos de asegurar que los
estndares y procedimientos son definidos y seguidos
atravs del ciclo de vida del software.
El cumplimiento de comn acuerdo de estndares y
procedimientos es evaluado atravs del monitoreo del
proceso, evaluacin del producto y auditoras.

NASA

La sabidura comienza por la definicin de los trm

NASA:
SQE (Software Quality Engineering):
Es un proceso para evaluar, valorar y mejorar la calidad
de software.
La calidad es a menudo definida como el grado en que el
software satisface los requerimientos de Fiabilidad,
mantenibilidad, etc., contrastadas con los
requerimientos funcionales, performance e interface
que son satisfechos como un resultado de la ingeniera
de software.

Visiones y Alcances
Visin 1:

SQA

SQC

(Proceso)

(Producto)

Visin 2

SQC SQA

Visin 3

SQA = SQC

Bibliografa para consulta

Capability Maturity Model for Software , Software Engineering


Institute, 1993
Practical Software Metrics for Project Managment and Process
Improvement, Robert B. Grady, P T R Prentice Hall, 1992
Project Management - Effective Scheduling , J. Brian Dreger, Van
Nostrand Reinhold, 1992
Applied Software Measurement, Capers Jones, McGraw-Hill, Software
Engineering Series, 1991
Software Metrics - A Rigorous Approach, Norman E. Fenton, Chapman
& Hall, 1991SMM System Development - Project Management , Price
Waterhouse, 1990; chapter on estimating guidelines
Function Point Analysis, J. Brian Dreger, Prentice Hall, Advanced
Reference Series, 1989
Software Metrics: Establishing a Company-Wide Program , Robert B
Grady and Deborah L. Caswell, Prentice-Hall, Inc., 1987

Você também pode gostar