INTRODUCCIÓN A LA INGENIERÍA DE SOFTWARE · PDF fileBibliografía...

Preview:

Citation preview

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.

Calidad. Calidad del producto4

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

Defectos. Costos. Correcciones.25

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.

Normas. Certificaciones.36

Estándares y modelos37

� Normas ISO

� CMM/CMMI

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

El método de proceso40

http://www.iso.org/iso/iso_9000_selection_and_use-2009.pdf

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

Recommended