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
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
Qu es Calidad?
Factores de Calidad
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
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.
Metricas de seguimiento de
defectos de SCO
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
Ejemplos
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
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
x
x
x
x
x
x
x
x
x
x
x
x
x
x
atributo
subcaracterstica
atributos internos
caracterstica
atributos externos
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
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 en
uso
efectividad
productividad
seguridad de
acceso
satisfaccin
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
Especificar
evaluacin
Disear
evaluacin
9126-1 Caractersticas de
Calidad
9126-2 Mtricas Externas
9126-3 Mtricas Internas
14598-6 Mdulos de
Evaluacin
Producto final:
decidir sobre la aceptacin del producto;
decidir cuando publicar el producto;
comparar el producto con otros productos competitivos;
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
Seleccionar mtricas
- ISO 9126 2 y -3
Rango objetivo
satisfactorio
nivel actual
Mnimamente aceptable
el caso peor
insatisfactorio
Inaceptable
escala de medicin
niveles de puntuacin
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
Objetivos:
Identificando Factores y
Atributos de Calidad
Consideraciones
Necesidades de Usuario
Necesidades
de Usuarios
para Software
Cambios
Mantencin
Administracin
Ejemplo: Definiciones de
Atributos de Calidad
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.
Mtricas
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.
Mtricas de Pruebas
Mtricas de Mantenimiento (Hetzel, 1993)
Indice de Madurez del Software (IEEE 982.1-1988)
Entendiendo el problema de
Mediciones
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
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.
Ejemplo de Definicin de
Mtricas: Fault Density
3.
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
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?
Por
Por qu
qu Utilizar
Utilizar Estndares?
Estndares?
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
Costos
Tiempos
Porcentajes de completitud.
Productividad
Curvas de recursos (usados vs. planeados)
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.
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.
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
TQM se generaliza
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).
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
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
Calidad de Software :
Sentido comn: carencia de bugs en el
producto.Tambin significa la conformidad de los
requerimientos.
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?
Qu es un Defecto?
IEEE
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
IEEE
Literatura famosa
Literatura famosa
NASA
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
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