∗ Objetivos
∗ Administración de la calidad
∗ Aseguramiento y estándares de calidad
∗ Planeación de la calidad
∗ Control de calidad
∗ Proceso del software
∗ Normas
∗ ISO
∗ CMM
Ingeniería de Software - 2
Glosario de la Clase
∗ Calidad concepto presente en el mundo
globalizado
∗ Como se aplica en IS?
∗ Definiendo calidad:
∗ “el producto desarrollado cumple su especificación”
(Crosby, 1979)
Ingeniería de Software 3
Administración de Calidad
∗ Como se aplica a la IS? problemas
∗ La especificación se orienta hacia las características del
producto que el consumidor quiere, pero la organización
tiene requerimientos que no se incluyen en la
especificación (ej. Mantenimiento)
∗ No se sabe como especificar ciertas características de
calidad de una forma no ambigua
∗ En IR es muy difícil redactar especificaciones concretas del
software. Por esto aunque el producto esté acorde con la
especificación, los usuarios no lo consideran un producto
de alta calidad
Ingeniería de Software - 4
Administración de Calidad
∗ Tres actividades principales
∗ Aseguramiento de calidad
∗ Establecer un marco de trabajo de procedimientos y
estándares organizacionales que conduce a software de
alta calidad
∗ Planeación de la calidad: la selección de procedimientos y
estándares adecuados a partir de este marco de trabajo y la
adaptación de éstos para un proyecto específico.
∗ Control de calidad: definición y promulgación de los
procesos que aseguran que los procedimientos y
estándares para la calidad del proyecto son seguidos por el
equipo de desarrollo de software.
Ingeniería de Software 5
Administración de Calidad
∗ Administración de calidad proceso de desarrollo
del soft
∗ Tareas independientes
∗ El resultado del proceso de desarrollo se introduce
en el proceso de administración de la calidad
∗ Cuales son los procesos de adm.?
∗ ISO 9000
∗ CMM
Ingeniería de Software 6
Administración de Calidad
∗ Actividades para QA (aseguramiento de calidad)
∗ Estándares
∗ Del producto: se aplican sobre el elemento a desarrollar. Se
incluye
∗ Estándares de documentos
∗ Estructuras del documento de requerimiento
∗ Estándares de codificación, etc.
∗ Del proceso: definen los procesos a seguir durante el
desarrollo del soft. Incluyen
∗ Procesos de especificación, diseño y validación
∗ Documentación asociada con lo anterior
Ingeniería de Software 7
Administración de Calidad
∗ Estándares de documentación
∗ Son la única forma tangible de representar al software y al
proceso de software.
∗ Tres tipos de estándares
∗ Del proceso de documentación: define el proceso a seguir
para la producción del documento
∗ Del documento: gobierna la estructura y presentación de
documentos
∗ Para intercambio de documentos: asegura-miento que las
copias electrónicas sean compatibles
Ingeniería de Software - 8
Administración de Calidad
Administración de Calidad
∗ Calidad del proceso y del producto
Calidad basada en procesos
Ingeniería de Software
9
∗ El dibujo anterior se aplica en producción
manufacturera
∗ Como llevarlo a la producción del software?
∗ Es difícil medir atributos del software sin utilizarlo mucho
tiempo
∗ Mejorar la calidad se centra en
∗ Identificar buenos productos de calidad
∗ Examinar el proceso usado para su desarrollo
∗ Generalizar el proceso para aplicarlo en varios proyectos.
Ingeniería de Software 10
Administración de Calidad
∗ Inconvenientes
∗ La relación proceso del software y calidad del producto
es compleja.
∗ Cambiar el proceso no siempre conduce a mejorar
calidad del producto
∗ Recordar análisis de riesgo.
∗ Planificación de calidad
∗ Se inicia en las primeras etapas del proceso del software.
∗ Un plan de calidad define
∗ la calidad del producto deseado
∗ Como valorar esta calidad
∗ Lo que significa el software de “alta calidad”
Ingeniería de Software - 11
Administración de Calidad
Administración de Calidad
Ingeniería de Software - 12
∗ Un plan de calidad selecciona
∗ los estándares organizacionales
apropiados para un producto.
∗ Un proceso de desarrollo
∗ Un plan comprende
∗ Introducción al producto
∗ Descripción del mismo, el mercado a
donde está dirigido y las expectativas
de calidad
∗ Planes de producto
∗ Fechas de terminación y
responsabilidades importantes
∗ Descripción del proceso
∗ De desarrollo y de servicio a utilizar
para el desarrollo y administración
del producto
∗ Metas de calidad
∗ Metas y planes de calidad previstos
∗ Riesgo y administración del
riesgo
∗ Control de calidad
∗ Vigilar el proceso de desarrollo del software para asegurar que se
sigan los procedimientos de aseguramiento y estándares de
calidad.
∗ Dos enfoques
∗ Revisiones de calidad (se evalúa soft, documentación y
procesos utilizados)
∗ Valoración automática del soft (el soft y documentos
producidos se procesan por algún programa y se comparan
contra estándares que se aplican a ese proyecto en particular).
Ingeniería de Software 13
Administración de Calidad
∗ Actividades, métodos y prácticas para desarrollar y
mantener software y sus productos asociados.
Ingeniería de Software - 14
Proceso de Software. Definición.
Procedimientos & Métodos
Proceso
Gente.
Habilidades &
Motivación Herramientas
&
Equipamiento
∗ Capacidad: Rango de resultados que pueden ser
alcanzados siguiendo un proceso inicialmente
establecido a nivel de organización.
∗ Performance / Desempeño: medida de los
resultados reales alcanzados. Se aplica a un
proyecto en particular de la organización.
Ingeniería de Software -
15
Proceso. Aspectos Generales.
Suele ser <> por cada
ejecución del proceso
Es lo que se intenta predecir
y controlar
∗ Madurez de un proceso
∗ La medida en la cual un proceso está
explícitamente documentado, gestionado,
medido, controlado y continuamente mejorado
Ingeniería de Software - 16
Capacidad & ResultadosProbabilidad
Resultado
Probabilidad
Resultado
Proceso de Baja capacidad Proceso de Alta capacidad
Resultado podría ser plazo / fit presup / # bugs, etc
Proceso
maduro
tendrá alta
capacidad
∗ Concreción del proyecto:
∗ 31% son cancelados antes de la finalización
∗ Costo
∗ +50% han costado el doble de lo estimado originalmente.
∗ Calidad
∗ En mediciones actuales se estima la existencia de 50
errores/1000 lineas de código
Ingeniería de Software 17
Crisis del software (I)
http://www.costxpert.com/resource_center/disaster_as_opportunity.html
https://secure.standishgroup.com/reports/reports.php?rid=500
∗ Standish Group 2004
∗ Proyectos de IT han mejorado su “tasa de éxito” un 34%.
Mejora del 100% en comparación con 1994. Tasa de fallos -15%.
Problema de costos promedio 43%
Ingeniería de Software - 18
Crisis del software (II)
Proyectos mas pequeños
Procesos iterativos haciendo
evidentes los requerimientos
Project Management
conceptualizado y no
tomado como una
“ciencia oculta”
http://www.softwaremag.com/L.cfm?Doc=newsletter/2004-01-15/Standish
∗ Necesidad de software cada vez mas complejo & crítico.
∗ La producción de software es una actividad creativa e intelectual
realizada por seres humanos. Técnicas de Ingeniería de software
acompañadas por sentido común, Competencia y Experiencia.
∗ Técnicas de Ingeniería de software en re-evaluación (Método
iterativo vs waterfall). Productos de software como los Web
Services implican una aplicación diferencial de las técnicas.
∗ Aceptación del ppio del “No Silver Bullet”
Ingeniería de Software - 19
Contexto. Realidad del Software
∗ CMM (Capability Maturity Model)
∗ Desarrollado por SEI (Software Engineering Institute), org. creado
por el DoD de USA
∗ Fuerte impacto en mejora del proceso
∗ Estipula un Camino para la mejora
∗ Areas Clave que se deben atacar
∗ ISO 12207 – Modelos de Ciclos de Vida del Software
∗ Actividades que debe incluir
∗ SPICE (Software Process Improvement and Capability
dEtermination) – ISO 15504
∗ Tick-It (modelo inglés)
Ingeniería de Software - 20
Modelos de Proceso y de su Capacidad
CMMICMMI