INTRODUCCIÓN A LA INGENIERÍA DE SOFTWARE2do cuatrimestre 2012
M. Clara CasaliniDepartamento de Cs. e Ing. de la Computación
Universidad Nacional del Sur
Bibliografía
� Básica
� Ingeniería del software. Un enfoque práctico - R. Pressman
Capítulo 23 – Conceptos de calidad.
� Controlling softare projects – Tom DeMarco
2
� Controlling softare projects – Tom DeMarco
Capítulo 19 – In search of sotware quality
Capítulo 20 – Software quality control
� ISO - www.iso.org/iso/iso_9000
� Software Engineering Institute - www.sei.cmu.edu/cmmi
Calidad del producto
Calidad del proceso
Administración de proyectos3
Calidad del proceso
Normas, estándares y modelos.
Calidad5
� ¿Qué es la calidad?
� Calidad del diseño: características que los diseñadores especifican para un producto. diseñadores especifican para un producto.
� La calidad de un producto se incrementa si se fabrica de acuerdo con las especificaciones.
Calidad6
� Contribuyen: tipo de materiales, tolerancias y especificaciones del desempeño, cumplimiento de funciones.
Satisfacción del usuario =Satisfacción del usuario =producto que funciona
+buena calidad
+entrega dentro del prepuesto y plazo
Calidad del software7
Proceso eficaz de software que se aplica de manera que crea un producto útil que
� Una definición
manera que crea un producto útil queproporciona valor medible a quienes lo producen
y a quienes lo utilizan
Dimensiones de la calidad (Garvin)8
� Punto de vista multidimensional
� Comenzar con evaluación de conformidad
� Terminar con visión estética
� La mayoría son subjetivas� La mayoría son subjetivas
� Es necesario también un conjunto de factores más“duros” que permitan hacer mediciones para llegar a un indicador de calidad
Dimensiones de la calidad (Garvin)9
Calidad del desempeño
¿entrega contenido, funciones y caraceterísticasespecificadas dando valor agregado al usuario?
Calidad de lascaracterísticas
¿tiene características que sorprenden y agradan a los usuarios finales?
Confiabilidad ¿funciona sin fallas? ¿está disponible cuando se lo Confiabilidad ¿funciona sin fallas? ¿está disponible cuando se lo necesita?
Conformidad ¿concuerda con estándares y convenciones?
Durabilidad ¿puede hacerse mantenimiento con bajo impacto?
Servicio ¿se cuenta con información para hacer cambios?
Estética Elegancia, flujo, “presencia”
Percepción Prejuicios que afectan la percepción de calidad
Factores de calidad de McCall10
� Clasificación de factores que afectan a la calidaddel software.
� Centrados en tres aspectos del producto
� Características operativas� Características operativas
� Capacidad de ser modificado
� Adaptabilidad a nuevos ambientes
Factores de calidad de McCall11
Revisión del producto
Transición del producto
Facilidad de recibir mantenimientoFlexibilidadSusceptibilidad de someterse a pruebas
PortabilidadReusabilidadInteroperabilidad
Operación del producto
producto producto
CorrecciónConfiabilidadUsabilidad
IntegridadEficiencia
Factores de calidad de McCall12
Revisión del producto
Transición del producto
Facilidad de recibir mantenimientoFlexibilidadSusceptibilidad de someterse a pruebas
PortabilidadReusabilidadInteroperabilidad
Operación del producto
producto producto
Corrección
ConfiabilidadUsabilidad
IntegridadEficiencia
Corrección: grado en el que satisface sus especificaciones y en el quecumple con los objetivos de la misión del cliente
Factores de calidad de McCall13
Revisión del producto
Transición del producto
Facilidad de recibir mantenimientoFlexibilidadSusceptibilidad de someterse a pruebas
PortabilidadReusabilidadInteroperabilidad
Operación del producto
producto producto
CorrecciónConfiabilidad
Usabilidad
IntegridadEficiencia
Confiabilidad: grado en el que se espera que cumpla con su funcióny con la precisión requerida
Factores de calidad de McCall14
Revisión del producto
Transición del producto
Facilidad de recibir mantenimientoFlexibilidadSusceptibilidad de someterse a pruebas
PortabilidadReusabilidadInteroperabilidad
Operación del producto
producto producto
CorrecciónConfiabilidadUsabilidad
IntegridadEficiencia
Usabilidad: esfuerzo que se requiere para aprender, operar, prepara las entradas e interpretar las salidas de un programa.
Factores de calidad de McCall15
Revisión del producto
Transición del producto
Facilidad de recibir mantenimientoFlexibilidadSusceptibilidad de someterse a pruebas
PortabilidadReusabilidadInteroperabilidad
Operación del producto
producto producto
CorrecciónConfiabilidadUsabilidad
Integridad
Eficiencia
Integridad: grado en el que es posible controlar el acceso de personas no autorizadas al software o a los datos.
Factores de calidad de McCall16
Revisión del producto
Transición del producto
Facilidad de recibir mantenimientoFlexibilidadSusceptibilidad de someterse a pruebas
PortabilidadReusabilidadInteroperabilidad
Operación del producto
producto producto
CorrecciónConfiabilidadUsabilidad
IntegridadEficiencia
Eficiencia: cantidad de recursos de cómputo y de código querequiere para llevar a cabo su función
Factores de calidad de McCall17
Revisión del producto
Transición del producto
Facilidad de recibir mantenimiento
FlexibilidadSusceptibilidad de someterse a pruebas
PortabilidadReusabilidadInteroperabilidad
Operación del producto
producto producto
CorrecciónConfiabilidadUsabilidad
IntegridadEficiencia
Facilidad de recibir mantenimiento: esfuerzo requerido paradetectar y corregir un error en un programa (*)
Factores de calidad de McCall18
Revisión del producto
Transición del producto
Facilidad de recibir mantenimientoFlexibilidad
Susceptibilidad de someterse a pruebas
PortabilidadReusabilidadInteroperabilidad
Operación del producto
producto producto
CorrecciónConfiabilidadUsabilidad
IntegridadEficiencia
Flexibilidad: esfuerzo necesario para modificar un programa que se encuentra en producción
Factores de calidad de McCall19
Revisión del producto
Transición del producto
Facilidad de recibir mantenimientoFlexibilidadSusceptibilidad de someterse a pruebas
PortabilidadReusabilidadInteroperabilidad
Operación del producto
producto producto
CorrecciónConfiabilidadUsabilidad
IntegridadEficiencia
Susceptibilidad de someterse a pruebas: esfuerzo requerido paraprobarlo a fin de garantizar que realiza la función pretendida
Factores de calidad de McCall20
Revisión del producto
Transición del producto
Facilidad de recibir mantenimientoFlexibilidadSusceptibilidad de someterse a pruebas
Portabilidad
ReusabilidadInteroperabilidad
Operación del producto
producto producto
CorrecciónConfiabilidadUsabilidad
IntegridadEficiencia
Portabilidad: esfuerzo necesario para transferir un programa de un ambiente de hw o sw a otro diferente
Factores de calidad de McCall21
Revisión del producto
Transición del producto
Facilidad de recibir mantenimientoFlexibilidadSusceptibilidad de someterse a pruebas
PortabilidadReusabilidad
Interoperabilidad
Operación del producto
producto producto
CorrecciónConfiabilidadUsabilidad
IntegridadEficiencia
Reusabilidad: grado en el que un programa o sus partes puedenvolver a utilizarse en otras aplicaciones
Factores de calidad de McCall22
Revisión del producto
Transición del producto
Facilidad de recibir mantenimientoFlexibilidadSusceptibilidad de someterse a pruebas
PortabilidadReusabilidadInteroperabilidad
Operación del producto
producto producto
CorrecciónConfiabilidadUsabilidad
IntegridadEficiencia
Interoperabilidad: esfuerzo requerido para acoplar un sistema con otro
Factores de calidad de McCall23
� Para cada atributo definió un conjunto de sub-atributos
� Para cada sub-atributo se deben definir formas de medirlomedirlo
� El conjunto de medidas obtenidas permite evaluarel factor
Factores de la calidad ISO 912624
� Identificar atributos clave del software
� Identifica seis atributos de la calidad
� Funcionalidad
� Confiabilidad� Confiabilidad
� Usabilidad
� Eficiencia
� Facilidad de recibir mantenimiento
� Portabilidad
Costo de la calidad26
� La calidad tiene costo
� costos de buscar la calidad
� costos posteriores por la falta de calidad
� Se dividen en:� Se dividen en:
� costos asociados con la prevención
� costos de evaluación
� costos de falla
Costo de la calidad27
� Prevención
� Planeary coordinar actividades de control y aseguramiento de la calidad
� Evaluación� Evaluación
� Actividades de investigación: revisiones técnicas, obtención de datos y medidas, pruebas y depuración
� Falla
� Internos: error detectado en el producto antes del envío
� Externos: defectos encontrados después de enviar el producto a los consumidores
Costos del software28
Análisis
Costos
AnálisisDeterioro
Diseño
Codif.
Testeo
Mantenimiento
Análisis
Diseño
Codif.
Testeo
Mantenimiento
Deterioro
Deterioro29
� Esfuerzo dedicado a diagnosticar y remover fallasque se introdujeron durante el proceso de desarrollo.
� Es el costo de las fallas humanas en el proceso de � Es el costo de las fallas humanas en el proceso de desarrollo. Estas fallas incluyen fallas en la codificación, en el testeo, en el diseño y en el análisis.
Defectos, bugs, fallas30
� Bug: “trepa” por su propia voluntad en el código y lo arruina de manera maliciosa.
� Defecto: desviación entre el resultado deseado y el � Defecto: desviación entre el resultado deseado y el resultado observado.
Calidad del software31
� Calidad en el software es “asuencia de deterioro”
� Se deben contabilizar los defectos para cuantificarla calidad.la calidad.
Calidad = ∑costo de diagnóstico y corrección de def.
Volúmen del programa
Corrección de errores32
Sistema de producción
Salida (con errores)
producción
Correcciones
Salida corregida
¡Es el procedimiento lo que debemos corregir!
Corrección de errores33
� Las habilidades y el esfuerzo de corrección se deben aplicar al proceso.
� Es la esencia de la prevención de errores
Sistema de producción
Salida aceptable
¿Qué cuesta más?34
� Abstenerse de introducir defectos es más económico
Remover un defecto No introducir el defectovs.
� Abstenerse de introducir defectos es más económico
� Se debe proponer como objetivo el “desarrollo cero defecto”
Desarrollo cero defectos35
� Las personas somos todas distintas.
� Se deben detectar debilidades y fortalezas de cada uno para asignar tareas acordes.
� Es más productivo quitar un desarrollador que� Es más productivo quitar un desarrollador queintroduce muchos defectos que introducir un desarrollador nuevo para hacer correcciones.
ISO38
� International Organization for Standardization
� ISO 9000
� Familia de estándares relacionados con la administración de la calidad en los sistemasadministración de la calidad en los sistemas
� Provee guías y herramientas para organizaciones quequieran asegurar la calidad de sus productos y servicios
� ISO 9001
� Establecer sistema de administración de calidad
Principios de administración de calidad39
ISO Series 9000
1. Foco en el cliente
2. Liderazgo
3. Participación de la gente3. Participación de la gente
4. Método de procesos
5. Administrar procesos como un sistema
6. Mejora contínua
7. Decisiones fundamentadas en datos
8. Relaciones de beneficio mutuo con proveedores
Secciones41
� Requerimientos para la calidad del sistema de administración de la calidad y documentación
� Responsabilidad del administrador, enfoque, políticas, planificacón y objetivospolíticas, planificacón y objetivos
� Administración y asignación de recursos
� Administración del proceso y de la realización del producto
� Mediciones, monitoreo, análisis y mejoras
CMM / CMMI42
� CMM = Capability Maturity Model
(Modelo de madurez de capacidad)
� CMMI = Capability Maturity Model Integration
� Enfoque de mejoramiento de procesos.
� Define los elementos claves de un proceso efectivo
� Describe un camino de mejora evolutivo
CMM43
� Cinco niveles de madurez
1. Inicial
2. Repetible2. Repetible
3. Definido
4. Dirigido
5. Optimizado
CMM44
� Cada nivel de madurez se compone de áreas de proceso claves
� Cáda área de proceso clave se organiza en cincosecciones de características comunessecciones de características comunes
CMMI45
� Define tres modelos
Aplicables a diversos tipos de negocios: prácticascomunes.
� CMMI para adquisiciones
� CMMI para desarrollo
� CMMI para servicios
CMMI para adquisiciones46
� Negocios que trabajan en relación con proveedorespara fabricar un producto o brindar un servicio
� Áreas de proceso: administración del acuerdo, desarrollo de requerimientos de adquisición, administración técnica de la adquisición, validaciónadministración técnica de la adquisición, validaciónde adquisiciones, …
� Aconsejable cuando: � Se ocupa mucho tiempo resolviendo problemas con
proveedores
� Le preocupa si los proveedores hacen lo que espera
CMMI para desarrollo47
� Negocios que se enfocan en desarrollar productos y servicios.
� Áreas de proceso: integración de productos, desarrollo de requerimientos, soluciones técnicas, desarrollo de requerimientos, soluciones técnicas, validación y verificación
� Aconsejable cuando:
� Se enfoca en eliminar defectos de productos y servicios
� Tiene el desafío de diseñar un producto o servicio quele da una ventaja sobre la competencia
CMMI para servicios48
� Negocios que se enfocan en establecer, administrary entregar servicios.
� Áreas de proceso: administración de la capacidady la disponibilidad, prevención y resolución de y la disponibilidad, prevención y resolución de incidentes, continuidad del servicio, entrega de servicios, desarrollo de sistemas de servicios, …
� Aconsejable cuando
� Se enfoca en alinear recursos para atender la demanda
� Debe mantener un nivel alto de servicios al cliente
Certificación49
� Las organizaciones deben certificar el cumplimientode las normas o modelos.
� Hay empresas que realizan las evaluaciones y otorgan (o no) la certificación.otorgan (o no) la certificación.
� Son procesos costosos pero otorgan beneficios a lasorganizaciones
� Se mejoran los procesos: más eficiencia, competitividad, calidad, …
� Se gana imagen frente a los clientes