Ingeniería del software Tema 8: La calidad del software

47
dit dit UPM © DIT-UPM, 2006 Ingeniería del software Tema 8: La calidad del software Juan Carlos Juan Carlos Yelmo Yelmo

Transcript of Ingeniería del software Tema 8: La calidad del software

Page 1: Ingeniería del software Tema 8: La calidad del software

ditditUPM

© DIT-UPM, 2006

Ingeniería del softwareTema 8: La calidad del software

Juan Carlos Juan Carlos YelmoYelmo

Page 2: Ingeniería del software Tema 8: La calidad del software

ditditUPM 2

© DIT-UPM, 2006

ObjetivosObjetivosConocerConocer loslos conceptosconceptos bbáásicossicos en en relacirelacióónn con con la la calidadcalidad de de loslos sistemassistemas software, software, asasíí comocomosusu importanciaimportancia e e impactoimpactoConocerConocer mecanismosmecanismos y y esquemasesquemasorganizativosorganizativos parapara fomentarfomentar la la calidadcalidad a a nivelnivelindividual, de individual, de proyectoproyecto y de y de organizaciorganizacióónnConocerConocer estestáándaresndares de de calidadcalidad de de aplicaciaplicacióónn en en la la ingenieringenierííaa del softwaredel softwareConocerConocer mecanismosmecanismos de de evaluacievaluacióónn y y medidamedidade la de la calidadcalidad del del productoproducto softwaresoftware

Page 3: Ingeniería del software Tema 8: La calidad del software

ditditUPM 3

© DIT-UPM, 2006

ContenidosContenidosIntroducciIntroduccióónn y y conceptosconceptos bbáásicossicosSistemasSistemas y y estestáándaresndares de de calidadcalidadCalidadCalidad en en proyectosproyectos de de desarrollodesarrolloMMéétricastricas de de calidadcalidad

Page 4: Ingeniería del software Tema 8: La calidad del software

ditditUPM 4

© DIT-UPM, 2006

MotivaciMotivacióón para la calidadn para la calidadLa calidad como factor fundamental en un La calidad como factor fundamental en un mercado competitivo junto con el tiempo y el mercado competitivo junto con el tiempo y el dinero necesarios para desarrollar un productodinero necesarios para desarrollar un productoAdaptaciAdaptacióón y satisfaccin y satisfaccióón de las necesidades n de las necesidades del clientedel cliente

Investigar y averiguar necesidadesInvestigar y averiguar necesidadesDefinir necesidades en forma de requisitos que Definir necesidades en forma de requisitos que el sistema debe cumplirel sistema debe cumplirComprobar que los requisitos se cumplen y las Comprobar que los requisitos se cumplen y las necesidades se satisfacennecesidades se satisfacen

Page 5: Ingeniería del software Tema 8: La calidad del software

ditditUPM 5

© DIT-UPM, 2006

Concepto de calidadConcepto de calidad

SatisfacciSatisfaccióón de usuarion de usuario = =

Producto conforme a requisitosProducto conforme a requisitos++

Buena calidadBuena calidad++

Entrega dentro de presupuesto y plazoEntrega dentro de presupuesto y plazo

Page 6: Ingeniería del software Tema 8: La calidad del software

ditditUPM 6

© DIT-UPM, 2006

Concepto de calidadConcepto de calidadConjunto de propiedades inherentes a un objeto Conjunto de propiedades inherentes a un objeto que permiten apreciarlo como mejor, igual o que permiten apreciarlo como mejor, igual o peor que otros de su especie (RAE)peor que otros de su especie (RAE)La calidad es relativa y multidimensional: La calidad es relativa y multidimensional: depende del observador, del momento, del depende del observador, del momento, del coste, coste, ……Es en parte subjetiva y en parte objetiva y Es en parte subjetiva y en parte objetiva y mediblemediblePuede ser transparente cuando estPuede ser transparente cuando estáá presente y presente y ffáácilmente reconocible cuando estcilmente reconocible cuando estáá ausenteausente

Page 7: Ingeniería del software Tema 8: La calidad del software

ditditUPM 7

© DIT-UPM, 2006

Concepto de calidadConcepto de calidadConformidad con los requisitos y fiabilidadConformidad con los requisitos y fiabilidadAdecuaciAdecuacióón al uson al usoSatisfacciSatisfaccióón de usuario y ausencia de n de usuario y ausencia de deficienciasdeficienciasGrado en el que un conjunto de caracterGrado en el que un conjunto de caracteríísticas sticas inherentes a un producto cumple con los inherentes a un producto cumple con los requisitos establecidos (ISO 9000)requisitos establecidos (ISO 9000)

Los requisitos son necesidades o expectativas Los requisitos son necesidades o expectativas implimplíícitas o explcitas o explíícitascitasLas caracterLas caracteríísticas son rasgos diferenciadoressticas son rasgos diferenciadores

Page 8: Ingeniería del software Tema 8: La calidad del software

ditditUPM 8

© DIT-UPM, 2006

Control de calidadControl de calidadEn la industria clEn la industria cláásica tiene que ver con control de la sica tiene que ver con control de la variacivariacióón entre muestrasn entre muestrasConjunto de inspecciones, revisiones y pruebas que se Conjunto de inspecciones, revisiones y pruebas que se realizan a lo largo del proceso de desarrollo para realizan a lo largo del proceso de desarrollo para asegurar que cada artefacto cumple los requisitos asegurar que cada artefacto cumple los requisitos planteadosplanteadosEl control de calidad implica un lazo de realimentaciEl control de calidad implica un lazo de realimentacióón n que permite ajustar el proceso cuando los artefactos que permite ajustar el proceso cuando los artefactos no cumplen sus especificacionesno cumplen sus especificacionesLa idea bLa idea báásica es que todos los artefactos tienen sica es que todos los artefactos tienen especificaciones definidas y especificaciones definidas y mediblesmedibles respecto de las respecto de las que comparar el resultado del proceso de desarrolloque comparar el resultado del proceso de desarrollo

Page 9: Ingeniería del software Tema 8: La calidad del software

ditditUPM 9

© DIT-UPM, 2006

La calidad del softwareLa calidad del softwareConformidad con requisitos funcionales y no Conformidad con requisitos funcionales y no funcionales establecidos explfuncionales establecidos explíícitamente, citamente, estestáándares de desarrollo documentados y ndares de desarrollo documentados y caractercaracteríísticas y expectativas implsticas y expectativas implíícitas en todo citas en todo producto software desarrollado producto software desarrollado profesionalmenteprofesionalmente

Los requisitos del software son la base sobre la Los requisitos del software son la base sobre la que medir la calidadque medir la calidadLos estLos estáándares definen un conjunto de criterios ndares definen un conjunto de criterios de desarrollo cuyo incumplimiento conlleva una de desarrollo cuyo incumplimiento conlleva una ppéérdida de calidadrdida de calidadExisten un conjunto de requisitos implExisten un conjunto de requisitos implíícitos cuyo citos cuyo incumplimiento conduce a una falta de calidadincumplimiento conduce a una falta de calidad

Page 10: Ingeniería del software Tema 8: La calidad del software

ditditUPM 10

© DIT-UPM, 2006

GestiGestióón y aseguramiento de la calidadn y aseguramiento de la calidadGestiGestióón de la calidad del softwaren de la calidad del software

Actividades coordinadas para dirigir y controlar una Actividades coordinadas para dirigir y controlar una organizaciorganizacióón en lo relativo a la calidadn en lo relativo a la calidadParte de la funciParte de la funcióón de gestin de gestióón de una empresa que n de una empresa que determina y aplica la poldetermina y aplica la políítica de calidadtica de calidadSe define a nivel de empresa: planificaciSe define a nivel de empresa: planificacióón estratn estratéégica, gica, asignaciasignacióón de recursos, etc.n de recursos, etc.

Aseguramiento de la calidad del softwareAseguramiento de la calidad del softwareInstrumentos sistemInstrumentos sistemááticos de auditoria e informaciticos de auditoria e informacióón de n de la gestila gestióón que proporcionan datos sobre la calidad de los n que proporcionan datos sobre la calidad de los productos y el proceso de desarrolloproductos y el proceso de desarrolloIncrementa la confianza en que los productos estIncrementa la confianza en que los productos estáán n cumpliendo sus objetivos de calidadcumpliendo sus objetivos de calidadSi los objetivos de calidad no se cumplen, la gestiSi los objetivos de calidad no se cumplen, la gestióón n aborda el problema y asigna los recursos necesarios aborda el problema y asigna los recursos necesarios para resolverlopara resolverlo

Page 11: Ingeniería del software Tema 8: La calidad del software

ditditUPM 11

© DIT-UPM, 2006

Niveles de acciNiveles de accióón sobre la calidadn sobre la calidadIndividuoIndividuo. Mejora de las capacidades de los . Mejora de las capacidades de los ingenieros y desarrolladores. ingenieros y desarrolladores.

FormaciFormacióón sobre conocimientos y habilidades n sobre conocimientos y habilidades ttéécnicas y competencias personalescnicas y competencias personales

ProyectoProyecto. Organizaci. Organizacióón, planificacin, planificacióón y n y seguimiento de actividades de desarrollo y seguimiento de actividades de desarrollo y mantenimiento y actividades especmantenimiento y actividades especííficas de ficas de aseguramiento de la calidadaseguramiento de la calidad

GestiGestióón de configuracin de configuracióónnVerificaciVerificacióón y validacin y validacióónnRecogida y evaluaciRecogida y evaluacióón de mn de méétricastricas

Page 12: Ingeniería del software Tema 8: La calidad del software

ditditUPM 12

© DIT-UPM, 2006

Niveles de acciNiveles de accióón sobre la calidadn sobre la calidadEmpresa. Empresa. GestiGestióón global de la calidad a nivel n global de la calidad a nivel de la organizacide la organizacióónn

OrganizaciOrganizacióón, evaluacin, evaluacióón y mejora de procesos n y mejora de procesos de desarrollo y mantenimiento para lograr de desarrollo y mantenimiento para lograr eficiencia y calidad en todos los proyectos de la eficiencia y calidad en todos los proyectos de la organizaciorganizacióónnOrganizaciOrganizacióón para la calidad: ISO 9000n para la calidad: ISO 9000Modelos de evaluaciModelos de evaluacióón y mejora de procesos de n y mejora de procesos de desarrollo de software: CMM, ISO 15504 desarrollo de software: CMM, ISO 15504 (SPICE), CMMI(SPICE), CMMI

Page 13: Ingeniería del software Tema 8: La calidad del software

ditditUPM 13

© DIT-UPM, 2006

Niveles de acciNiveles de accióón sobre la calidadn sobre la calidad

Plan deCalidad

Procedimientosde Calidad

Sistema de calidad

Plan de Calidad adaptadoCliente

Proyecto

Estándares

Page 14: Ingeniería del software Tema 8: La calidad del software

ditditUPM 14

© DIT-UPM, 2006

ContenidosContenidosIntroducciIntroduccióónn y y conceptosconceptos bbáásicossicosSistemasSistemas y y estestáándaresndares de de calidadcalidadCalidadCalidad en en proyectosproyectos de de desarrollodesarrolloMMéétricastricas de de calidadcalidad

Page 15: Ingeniería del software Tema 8: La calidad del software

ditditUPM 15

© DIT-UPM, 2006

El sistema de calidad (empresa)El sistema de calidad (empresa)DocumentosDocumentos

Conjunto de documentos con manuales y Conjunto de documentos con manuales y procedimientos sobre polprocedimientos sobre polííticas de calidadticas de calidadSe suelen ajustar a una norma (ISO 9001)Se suelen ajustar a una norma (ISO 9001)

Recursos fRecursos fíísicossicosOrdenadores, herramientas software, recintos,Ordenadores, herramientas software, recintos,……

Recursos humanosRecursos humanosFormaciFormacióón de personal a todos los niveles sobre n de personal a todos los niveles sobre ttéécnicas de calidad y comunicacicnicas de calidad y comunicacióónnCreaciCreacióón y coordinacin y coordinacióón de equipos de trabajon de equipos de trabajo

Page 16: Ingeniería del software Tema 8: La calidad del software

ditditUPM 16

© DIT-UPM, 2006

Documentos del sistema de calidadDocumentos del sistema de calidadPlan de calidadPlan de calidad. Describe el sistema de gesti. Describe el sistema de gestióón de la n de la calidad y sirve de referencia para implantar o aplicar el calidad y sirve de referencia para implantar o aplicar el sistemasistema

Incluye polIncluye polííticas y procedimientos, presenta la estructura ticas y procedimientos, presenta la estructura de la organizacide la organizacióón y referencia los procedimientos n y referencia los procedimientos estestáándar aplicablesndar aplicables

ProcedimientosProcedimientosTTéécnicas y metodologcnicas y metodologííasasEstilos de programaciEstilos de programacióónnProcedimientos de pruebasProcedimientos de pruebas……

Registros de aplicaciRegistros de aplicacióón del plan de calidadn del plan de calidad

Page 17: Ingeniería del software Tema 8: La calidad del software

ditditUPM 17

© DIT-UPM, 2006

EstEstáándares de calidad: ISO 9000ndares de calidad: ISO 9000La normativa de calidad se centra en el nivel de La normativa de calidad se centra en el nivel de organizaciorganizacióónnInicialmente aplicada en sectores crInicialmente aplicada en sectores crííticos en cuanto a ticos en cuanto a seguridad y calidad: defensa, nuclear, aeroespacial, seguridad y calidad: defensa, nuclear, aeroespacial, ……Se generaliza con la publicaciSe generaliza con la publicacióón de los estn de los estáándares ISO ndares ISO 9000 para gesti9000 para gestióón y aseguramiento de la calidadn y aseguramiento de la calidad

ISO 9000, 9001, 9002, 9003, 9004 (1994)ISO 9000, 9001, 9002, 9003, 9004 (1994)InterpretaciInterpretacióón de ISO 9001 para el software: ISO 9000n de ISO 9001 para el software: ISO 9000--3 3 (1997)(1997)La versiLa versióón mn máás actual de ISO 9001 (2000) es un s actual de ISO 9001 (2000) es un documento documento úúnico que abarca todos los aspectos de nico que abarca todos los aspectos de calidad en todas las actividades del ciclo de vidacalidad en todas las actividades del ciclo de vida

Page 18: Ingeniería del software Tema 8: La calidad del software

ditditUPM 18

© DIT-UPM, 2006

ISO 9000ISO 9000--33ISO 9001 es el estISO 9001 es el estáándar de aseguramiento de la ndar de aseguramiento de la calidad aplicable a todas las disciplinas de ingeniercalidad aplicable a todas las disciplinas de ingenierííaaISO 9000ISO 9000--3 es un conjunto de directrices de 3 es un conjunto de directrices de interpretaciinterpretacióón del estn del estáándar ISO 9001 para su uso en el ndar ISO 9001 para su uso en el proceso de desarrollo de softwareproceso de desarrollo de software

Marco de trabajo de la empresa: sistema de calidad, Marco de trabajo de la empresa: sistema de calidad, responsabilidad de la direcciresponsabilidad de la direccióón, n, ……Actividades del ciclo de vida: especificaciActividades del ciclo de vida: especificacióón, n, planificaciplanificacióón, disen, diseñño, implementacio, implementacióón, revisiones, n, revisiones, pruebas, pruebas, ……Actividades de apoyo: GestiActividades de apoyo: Gestióón de configuracin de configuracióón, control n, control de documentos, formacide documentos, formacióón, registros de calidadn, registros de calidad

Page 19: Ingeniería del software Tema 8: La calidad del software

ditditUPM 19

© DIT-UPM, 2006

ISO 9001:2000ISO 9001:2000Responsabilidad de la direcciResponsabilidad de la direccióónn

Compromiso con la satisfacciCompromiso con la satisfaccióón del clienten del clienteDeterminaciDeterminacióón eficaz de requisitos y n eficaz de requisitos y necesidades del clientenecesidades del clientePlanificaciPlanificacióón de la calidad y sus objetivos a n de la calidad y sus objetivos a travtravéés de un sistema de gestis de un sistema de gestióón de la calidadn de la calidadRevisiones formales de la gestiRevisiones formales de la gestióón realizadan realizada

GestiGestióón de recursosn de recursosDeterminar y proporcionar los recursos Determinar y proporcionar los recursos necesarios para la gestinecesarios para la gestióón de la calidad: n de la calidad: recursos humanos, informacirecursos humanos, informacióón, infraestructuras, n, infraestructuras, entorno de trabajo, etc.entorno de trabajo, etc.

Page 20: Ingeniería del software Tema 8: La calidad del software

ditditUPM 20

© DIT-UPM, 2006

ISO 9001:2000ISO 9001:2000GestiGestióón de los procesosn de los procesos

GestiGestióón y procesos relacionados con el clienten y procesos relacionados con el clienteDiseDiseñño y desarrollo de productos y servicioso y desarrollo de productos y serviciosCompras y proveedoresCompras y proveedoresControl de noControl de no--conformidades y servicios postconformidades y servicios post--entregaentrega

MediciMedicióón, ann, anáálisis y mejoralisis y mejoraRendimiento del sistema: satisfacciRendimiento del sistema: satisfaccióón de usuario y n de usuario y auditorauditoríías internasas internasMediciMedicióón de procesos y productosn de procesos y productosAnAnáálisis de datos para emprender acciones de mejora: lisis de datos para emprender acciones de mejora: correccicorreccióón de errores, prevencin de errores, prevencióón de problemas futuros, n de problemas futuros, procesos de mejora continuaprocesos de mejora continua

Page 21: Ingeniería del software Tema 8: La calidad del software

ditditUPM 21

© DIT-UPM, 2006

CertificaciCertificacióón de calidadn de calidadLa importancia de los estLa importancia de los estáándares de calidad reside en ndares de calidad reside en que se emplea como base para certificar la calidad de que se emplea como base para certificar la calidad de las empresaslas empresas

Una tercera parte independiente (AENOR en EspaUna tercera parte independiente (AENOR en Españña) a) certifica que la organizacicertifica que la organizacióón dispone de procedimientos n dispone de procedimientos que permiten asegurar la calidad en sus actividadesque permiten asegurar la calidad en sus actividades

Con frecuencia las grandes empresas y las Con frecuencia las grandes empresas y las administraciones exigen de sus proveedores la administraciones exigen de sus proveedores la certificacicertificacióón de calidadn de calidadLa certificaciLa certificacióón de calidad se consigue tras pasar una n de calidad se consigue tras pasar una auditorauditoríía de conformidad de su sistema de calidad a de conformidad de su sistema de calidad respecto del estrespecto del estáándarndarLa certificaciLa certificacióón se renueva mediante auditorn se renueva mediante auditoríías as periperióódicasdicas

Page 22: Ingeniería del software Tema 8: La calidad del software

ditditUPM 22

© DIT-UPM, 2006

EstEstáándares de calidad: CMMndares de calidad: CMMModelo de madurez de la capacidad para el desarrollo Modelo de madurez de la capacidad para el desarrollo de software (de software (CapabilityCapability MaturityMaturity ModelModel))Elaborado por el Elaborado por el Software Software EngineeringEngineering InstituteInstitute(EEUU), define el conjunto de capacidades que debe (EEUU), define el conjunto de capacidades que debe poseer una organizaciposeer una organizacióón para alcanzar un determinado n para alcanzar un determinado nivel de madurez en su proceso de desarrollo de nivel de madurez en su proceso de desarrollo de softwaresoftwareEl modelo CMM permite evaluar a las organizaciones El modelo CMM permite evaluar a las organizaciones en cuanto al cumplimiento de actividades clave que en cuanto al cumplimiento de actividades clave que sitsitúúan a la organizacian a la organizacióón en un determinado nivel de n en un determinado nivel de madurez .El CMM define para ello cinco niveles de madurez .El CMM define para ello cinco niveles de madurezmadurezLa capacidad del proceso software describe el rango La capacidad del proceso software describe el rango de resultados esperables del proceso y proporciona un de resultados esperables del proceso y proporciona un medio para predecir los resultados del siguiente medio para predecir los resultados del siguiente proyecto que lleve a cabo la organizaciproyecto que lleve a cabo la organizacióónn

Page 23: Ingeniería del software Tema 8: La calidad del software

ditditUPM 23

© DIT-UPM, 2006

Niveles de madurez en el CMMNiveles de madurez en el CMM

InicialInicial

RepetibleRepetible

DefinidoDefinido

GestionadoGestionado

En optimizaciónEn optimización

Procesodisciplinado

Procesoconsistente yestandarizado

Procesopredecible

Procesode mejoracontinua

Page 24: Ingeniería del software Tema 8: La calidad del software

ditditUPM 24

© DIT-UPM, 2006

Niveles de madurez CMMNiveles de madurez CMMInicialInicial. Proceso software ad . Proceso software ad hochoc con pocos procesos definidos. El con pocos procesos definidos. El ééxito depende del esfuerzo individualxito depende del esfuerzo individualRepetibleRepetible. Tiene establecidos procesos de gesti. Tiene establecidos procesos de gestióón de proyecto para n de proyecto para controlar costes, tiempos y funcionalidad. El proceso es disciplcontrolar costes, tiempos y funcionalidad. El proceso es disciplinado inado y permite repetir y permite repetir ééxitos pasados en futuros proyectos con xitos pasados en futuros proyectos con aplicaciones similaresaplicaciones similaresDefinidoDefinido. Los procesos de gesti. Los procesos de gestióón e ingeniern e ingenieríía esta estáán n documentados, estandarizados e integrados como proceso software documentados, estandarizados e integrados como proceso software a nivel global en la organizacia nivel global en la organizacióón. Incluye el nivel 2n. Incluye el nivel 2GestionadoGestionado. Se recogen m. Se recogen méétricas detalladas de la calidad del tricas detalladas de la calidad del proceso y el producto. Proceso cuantitativamente comprendido y proceso y el producto. Proceso cuantitativamente comprendido y controlado. Incluye nivel 3controlado. Incluye nivel 3En optimizaciEn optimizacióónn. Dispone de un proceso de mejora continua . Dispone de un proceso de mejora continua mediante la realimentacimediante la realimentacióón cuantitativa que proviene de la medida n cuantitativa que proviene de la medida del proceso y del ensayo de ideas y tecnologdel proceso y del ensayo de ideas y tecnologíías innovadoras. as innovadoras. Incluye el nivel 4Incluye el nivel 4

Page 25: Ingeniería del software Tema 8: La calidad del software

ditditUPM 25

© DIT-UPM, 2006

ÁÁreas clave de proceso en el CMMreas clave de proceso en el CMMLas KPA describen procesos de ingenierLas KPA describen procesos de ingenieríía del software que debe estar a del software que debe estar presentes para asegurar buenas prpresentes para asegurar buenas práácticas en un determinado nivel de madurezcticas en un determinado nivel de madurezNivel 2Nivel 2

GestiGestióón de configuracin de configuracióón del softwaren del softwareAseguramiento de la calidad del softwareAseguramiento de la calidad del softwareGestiGestióón de la subcontratacin de la subcontratacióón del softwaren del softwareSeguimiento y supervisiSeguimiento y supervisióón del proyecto n del proyecto PlanificaciPlanificacióón de proyecton de proyectoGestiGestióón de requisitosn de requisitos

Nivel 3Nivel 3RevisionesRevisionesCoordinaciCoordinacióón entre gruposn entre gruposIngenierIngenieríía de producto softwarea de producto softwareGestiGestióón integradan integradaPrograma de formaciPrograma de formacióónnDefiniciDefinicióón del proceso de la organizacin del proceso de la organizacióónnÉÉnfasis en la mejora de procesos organizativosnfasis en la mejora de procesos organizativos

Page 26: Ingeniería del software Tema 8: La calidad del software

ditditUPM 26

© DIT-UPM, 2006

ÁÁreas clave de proceso en el CMMreas clave de proceso en el CMMNivel 4Nivel 4

GestiGestióón de la calidad del softwaren de la calidad del softwareGestiGestióón cuantitativa del proceson cuantitativa del proceso

Nivel 5Nivel 5GestiGestióón de cambios en el proceson de cambios en el procesoGestiGestióón de cambios en la tecnologn de cambios en la tecnologííaaPrevenciPrevencióón de defectosn de defectos

Page 27: Ingeniería del software Tema 8: La calidad del software

ditditUPM 27

© DIT-UPM, 2006

ContenidosContenidosIntroducciIntroduccióónn y y conceptosconceptos bbáásicossicosSistemasSistemas y y estestáándaresndares de de calidadcalidadCalidadCalidad en en proyectosproyectos de de desarrollodesarrolloMMéétricastricas de de calidadcalidad

Page 28: Ingeniería del software Tema 8: La calidad del software

ditditUPM 28

© DIT-UPM, 2006

La calidad a nivel de proyectoLa calidad a nivel de proyectoLos sistemas de calidad a nivel de organizaciLos sistemas de calidad a nivel de organizacióón n marcan directrices generales que es necesario marcan directrices generales que es necesario adaptar para cada proyecto particularadaptar para cada proyecto particularAdemAdemáás de la adaptacis de la adaptacióón, es posible que el n, es posible que el cliente quiera que se cumplan normas distintas cliente quiera que se cumplan normas distintas a las que se siguen en la empresaa las que se siguen en la empresaEl plan de calidad especEl plan de calidad especíífico de un proyecto fico de un proyecto incluirincluiráá sus condiciones particulares y las sus condiciones particulares y las exigencias especiales del cliente. Sin embargo, exigencias especiales del cliente. Sin embargo, lo mlo máás habitual es que el plan de calidad del s habitual es que el plan de calidad del proyecto siga fielmente las disposiciones del proyecto siga fielmente las disposiciones del plan de calidad de la organizaciplan de calidad de la organizacióónn

Page 29: Ingeniería del software Tema 8: La calidad del software

ditditUPM 29

© DIT-UPM, 2006

La calidad a nivel de proyectoLa calidad a nivel de proyectoDe forma general, las actividades de De forma general, las actividades de aseguramiento de la calidad a nivel de proyecto aseguramiento de la calidad a nivel de proyecto sonson

GestiGestióón de configuracin de configuracióón del softwaren del softwareVerificaciVerificacióón y validacin y validacióón del software: pruebas y n del software: pruebas y revisionesrevisionesMMéétricas del software para el control del proyectotricas del software para el control del proyecto

Page 30: Ingeniería del software Tema 8: La calidad del software

ditditUPM 30

© DIT-UPM, 2006

VerificaciVerificacióón y validacin y validacióón del softwaren del softwareConjunto de procedimientos, actividades tConjunto de procedimientos, actividades téécnicas y cnicas y herramientas que se utilizan paralelamente al herramientas que se utilizan paralelamente al desarrollo de software para asegurar que un producto desarrollo de software para asegurar que un producto software resuelve correctamente el problema software resuelve correctamente el problema planteadoplanteadoSe trata de actuar sobre artefactos intermedios y Se trata de actuar sobre artefactos intermedios y entregas para detectar y corregir defectos y entregas para detectar y corregir defectos y desviaciones respecto de los objetivos fijadosdesviaciones respecto de los objetivos fijadosLos proyectos suelen contar con una planificaciLos proyectos suelen contar con una planificacióón de n de actividades de validaciactividades de validacióón y verificacin y verificacióón que se recogen n que se recogen en el correspondiente planen el correspondiente planLa tLa téécnica de verificacicnica de verificacióón y validacin y validacióón mn máás frecuente s frecuente es la prueba del softwarees la prueba del software

Page 31: Ingeniería del software Tema 8: La calidad del software

ditditUPM 31

© DIT-UPM, 2006

Objetivos de la V+VObjetivos de la V+VDetectar y corregir defectos tan pronto como Detectar y corregir defectos tan pronto como sea posible en el ciclo de vida del softwaresea posible en el ciclo de vida del softwareMitigar riesgos y disminuir desviaciones de Mitigar riesgos y disminuir desviaciones de plazo y presupuestoplazo y presupuestoMejorar la calidad y fiabilidad del softwareMejorar la calidad y fiabilidad del softwareMejorar la visibilidad de la gestiMejorar la visibilidad de la gestióón del proceso n del proceso de desarrollode desarrolloValorar de forma rValorar de forma ráápida y eficaz los cambios pida y eficaz los cambios propuestos y sus consecuenciaspropuestos y sus consecuencias

Page 32: Ingeniería del software Tema 8: La calidad del software

ditditUPM 32

© DIT-UPM, 2006

TTéécnicas V+Vcnicas V+VPruebas del softwarePruebas del softwareRevisiones y auditoriasRevisiones y auditoriasOtrasOtras

AnAnáálisis de algoritmoslisis de algoritmosSimulaciSimulacióónnMonitorizaciMonitorizacióónnAnAnáálisis de clisis de cóódigo fuentedigo fuenteAnAnáálisis de aplicaciones en tiempo de ejecucilisis de aplicaciones en tiempo de ejecucióónn……

Page 33: Ingeniería del software Tema 8: La calidad del software

ditditUPM 33

© DIT-UPM, 2006

Revisiones del softwareRevisiones del softwareSon revisiones tSon revisiones téécnicas o de gesticnicas o de gestióón realizadas de n realizadas de forma sistemforma sistemáática por miembros del proyecto, otros tica por miembros del proyecto, otros miembros de la organizacimiembros de la organizacióón o terceras partes n o terceras partes independientes, con objeto de evaluar la calidad de independientes, con objeto de evaluar la calidad de artefactos o procesos y el cumplimiento de estartefactos o procesos y el cumplimiento de estáándares ndares y procedimientosy procedimientosVarios tipos y nombresVarios tipos y nombres

RevisiRevisióónn. Car. Caráácter informal realizado por miembros del cter informal realizado por miembros del proyectoproyectoInspecciInspeccióónn. Car. Caráácter formal, realizadas de forma cter formal, realizadas de forma sistemsistemáática en una organizacitica en una organizacióón, normalmente por n, normalmente por equipos de inspecciequipos de inspeccióón que incluyen personal externo al n que incluyen personal externo al proyectoproyectoAuditorAuditorííaa. Realizadas por terceras partes . Realizadas por terceras partes independientesindependientes

Page 34: Ingeniería del software Tema 8: La calidad del software

ditditUPM 34

© DIT-UPM, 2006

Revisiones del softwareRevisiones del softwareEn general, consisten en la reuniEn general, consisten en la reunióón de un grupo de personas para n de un grupo de personas para examinar un producto o proceso y buscar defectos o examinar un producto o proceso y buscar defectos o disconformidadesdisconformidadesLos objetivos pueden serLos objetivos pueden ser

Analizar el progreso del proyecto y el cumplimiento del plan de Analizar el progreso del proyecto y el cumplimiento del plan de proyectoproyectoDeterminar la adecuaciDeterminar la adecuacióón del enfoque de gestin del enfoque de gestióónnComprobar que el producto se ajusta a las especificacionesComprobar que el producto se ajusta a las especificacionesComprobarComprobar la adecuada aplicacila adecuada aplicacióón de estn de estáándares, planes y ndares, planes y procedimientosprocedimientosComprobar la satisfacciComprobar la satisfaccióón de los criterios de calidad establecidosn de los criterios de calidad establecidosComprobar defectos y omisionesComprobar defectos y omisionesRecoger datos y mRecoger datos y méétricas que ayuden a la organizacitricas que ayuden a la organizacióón a detectar n a detectar problemas y mejorar el proceso en el futuroproblemas y mejorar el proceso en el futuro……

Page 35: Ingeniería del software Tema 8: La calidad del software

ditditUPM 35

© DIT-UPM, 2006

Inspecciones del softwareInspecciones del softwareTTéécnica de evaluacicnica de evaluacióón formal y sistemn formal y sistemáática de tica de los artefactos de un proyecto por una persona o los artefactos de un proyecto por una persona o grupo distintos del autor para detectar defectos, grupo distintos del autor para detectar defectos, disconformidades con las normas, etc.disconformidades con las normas, etc.

Se realiza de forma sistemSe realiza de forma sistemáática y planificada en tica y planificada en un cierto nun cierto núúmero de puntos prefijados del ciclo mero de puntos prefijados del ciclo de vidade vidaSe realiza por personal tSe realiza por personal téécnico y de gesticnico y de gestióón de n de la organizacila organizacióón que no pertenecen al equipo de n que no pertenecen al equipo de desarrollodesarrolloSe llevan a cabo mediante reuniones de Se llevan a cabo mediante reuniones de inspecciinspeccióón en las que los participantes juegan n en las que los participantes juegan roles predefinidosroles predefinidos

Page 36: Ingeniería del software Tema 8: La calidad del software

ditditUPM 36

© DIT-UPM, 2006

Inspecciones del softwareInspecciones del softwareEl procedimiento de inspecciEl procedimiento de inspeccióón estn estáá

formalizado: preparaciformalizado: preparacióón, plantillas de n, plantillas de documentos, listas de comprobacidocumentos, listas de comprobacióón, duracin, duracióón n de reuniones, roles de participantes, etc.de reuniones, roles de participantes, etc.Hay limitaciones a la duraciHay limitaciones a la duracióón de las reuniones n de las reuniones y del proceso global de inspecciy del proceso global de inspeccióónnSe recogen datos y estadSe recogen datos y estadíísticas para su sticas para su ananáálisis posteriorlisis posteriorEl objetivo es detectar defectos y no la El objetivo es detectar defectos y no la bbúúsqueda de mejoras o solucionessqueda de mejoras o soluciones

Page 37: Ingeniería del software Tema 8: La calidad del software

ditditUPM 37

© DIT-UPM, 2006

Roles en la gestiRoles en la gestióón de inspeccionesn de inspeccionesCoordinadorCoordinador. Miembro de la organizaci. Miembro de la organizacióón con n con responsabilidad sobre el aseguramiento de la calidad responsabilidad sobre el aseguramiento de la calidad que coordina el calendario de inspecciones, define que coordina el calendario de inspecciones, define procedimientos y analiza los datos resultantesprocedimientos y analiza los datos resultantesModeradorModerador. Coordina y modera una reuni. Coordina y modera una reunióón de n de inspecciinspeccióónnAutorAutor. Autor del artefacto inspeccionado y . Autor del artefacto inspeccionado y responsable de corregir los defectos que se detectenresponsable de corregir los defectos que se detectenInspectorInspector. Un integrante gen. Un integrante genéérico del equipo de rico del equipo de inspecciinspeccióónnLectorLector. Inspector responsable de dirigir la inspecci. Inspector responsable de dirigir la inspeccióónnSecretarioSecretario. Toma nota de defectos y conclusiones. Toma nota de defectos y conclusiones

Page 38: Ingeniería del software Tema 8: La calidad del software

ditditUPM 38

© DIT-UPM, 2006

El proceso de inspecciEl proceso de inspeccióónn

PlanificaciónPlanificación

PresentaciónPresentación

PreparaciónPreparación ReuniónReunión CorrecciónCorrección SeguimientoSeguimiento

Notificación

Lista decomprobación

Lista dedefectos

Informe deinspección

Page 39: Ingeniería del software Tema 8: La calidad del software

ditditUPM 39

© DIT-UPM, 2006

ContenidosContenidosIntroducciIntroduccióónn y y conceptosconceptos bbáásicossicosSistemasSistemas y y estestáándaresndares de de calidadcalidadCalidadCalidad en en proyectosproyectos de de desarrollodesarrolloMMéétricastricas de de calidadcalidad

Page 40: Ingeniería del software Tema 8: La calidad del software

ditditUPM 40

© DIT-UPM, 2006

MMéétricas y calidad de productotricas y calidad de productoCon independencia de las dificultades que se Con independencia de las dificultades que se encuentran para definir la calidad, nos encontramos encuentran para definir la calidad, nos encontramos con la dificultad de medir o evaluar la calidad de un con la dificultad de medir o evaluar la calidad de un producto softwareproducto softwareLa valoraciLa valoracióón de la calidad de un producto depende de n de la calidad de un producto depende de la perspectiva particular de quien evalla perspectiva particular de quien evalúúa el producto a el producto (usuario, instalador, desarrollador, etc.)(usuario, instalador, desarrollador, etc.)Los modelos de calidad consideran diferentes Los modelos de calidad consideran diferentes perspectivasperspectivas y para cada una de ellas proponen una y para cada una de ellas proponen una lista de lista de factoresfactores que influyen en la calidad desde esa que influyen en la calidad desde esa perspectiva. Cada factor depende de una serie de perspectiva. Cada factor depende de una serie de criterioscriterios y, finalmente, cada criterio puede evaluarse a y, finalmente, cada criterio puede evaluarse a partir de una serie de partir de una serie de mméétricas tricas o medidas objetivaso medidas objetivas

Page 41: Ingeniería del software Tema 8: La calidad del software

ditditUPM 41

© DIT-UPM, 2006

Perspectivas sobre la calidadPerspectivas sobre la calidad

•Funcionalidad•Facilidad de uso•..

•Fiabilidad•Eficiencia•..

•Facilidad de mantenimiento•Portabilidad•..

Producto

Page 42: Ingeniería del software Tema 8: La calidad del software

ditditUPM 42

© DIT-UPM, 2006

Factores y criterios de calidadFactores y criterios de calidadCalidad

Funcionalidad Facilidad de uso Mantenimiento

Fiabilidad Eficiencia Portabilidad

•Adecuación•Precisión•Interoperabilidad•Conformidad•Seguridad

•Legibilidad•Facilidad de aprendizaje•Facilidad de operación

•Facilidad de análisis•Facilidad de cambio•Facilidad de prueba•Estabilidad

•Madurez•Tolerancia a fallos•Capacidad de recuperación

•Comportamiento dinámico•Uso de recursos

•Capacidad de adaptación•Facilidad de instalación•Conformidad•Facilidad de sustitución

Page 43: Ingeniería del software Tema 8: La calidad del software

ditditUPM 43

© DIT-UPM, 2006

EvaluaciEvaluacióón de la calidadn de la calidadLos factores y criterios de calidad no son en general Los factores y criterios de calidad no son en general cuantificablescuantificablesEl enfoque es evaluar los criterios a travEl enfoque es evaluar los criterios a travéés de ms de méétricas tricas que se pueden calcular directamente por observacique se pueden calcular directamente por observacióón n o medida de los artefactos del proceso de desarrolloo medida de los artefactos del proceso de desarrolloPor ejemplo, desde una determinada perspectiva, la Por ejemplo, desde una determinada perspectiva, la facilidad de mantenimientofacilidad de mantenimiento es un factor de calidad. es un factor de calidad. Este factor depende, entre otros, del criterio de Este factor depende, entre otros, del criterio de legibilidadlegibilidad y la legibilidad puede evaluarse en base a y la legibilidad puede evaluarse en base a una serie de muna serie de méétricas. Una de estas mtricas. Una de estas méétricas puede tricas puede ser:ser:

Porcentaje de comentarios = (NPorcentaje de comentarios = (Nºº de lde lííneas de neas de comentario)/(Ncomentario)/(Nºº total de ltotal de lííneas de cneas de cóódigo)digo)

Page 44: Ingeniería del software Tema 8: La calidad del software

ditditUPM 44

© DIT-UPM, 2006

Factores, criterios y mFactores, criterios y méétricastricasCalidad

(desde una perspectiva)

Factores

Criterios

Métricas

Page 45: Ingeniería del software Tema 8: La calidad del software

ditditUPM 45

© DIT-UPM, 2006

MMéétricas del softwaretricas del softwareMMéétrica es la asignacitrica es la asignacióón de un valor (numn de un valor (numéérico rico o no) a un atributo (tiempo, complejidad, etc.) o no) a un atributo (tiempo, complejidad, etc.) de un artefacto (cde un artefacto (cóódigo, disedigo, diseñño, etc.) o proceso o, etc.) o proceso (dise(diseñño, pruebas, etc.) sego, pruebas, etc.) segúún reglas definidasn reglas definidasSe deben establecer definiciones y Se deben establecer definiciones y procedimientos de cprocedimientos de cáálculo, aslculo, asíí como valores como valores umbral en funciumbral en funcióón de los objetivos de calidad y n de los objetivos de calidad y las estadlas estadíísticas de la organizacisticas de la organizacióónn

Page 46: Ingeniería del software Tema 8: La calidad del software

ditditUPM 46

© DIT-UPM, 2006

Ejemplos de mEjemplos de méétricas de procesotricas de procesoEstimaciEstimacióón de costes: n de costes:

LLííneas de cneas de cóódigo, puntos de funcidigo, puntos de funcióón, etc.n, etc.Fiabilidad: Fiabilidad:

MTTF, MTTRMTTF, MTTRCalidadCalidad

NNúúmero de defectos: por KLOC, personamero de defectos: por KLOC, persona--mes,mes,……NNúúmero de reparos: por KLOC, personamero de reparos: por KLOC, persona--mes, mes, ……

……

Page 47: Ingeniería del software Tema 8: La calidad del software

ditditUPM 47

© DIT-UPM, 2006

Ejemplos de mEjemplos de méétricas de productotricas de productoBasadas en cBasadas en cóódigo fuentedigo fuente

MMéétricas de tricas de HalsteadHalstead: : Longitud, vocabulario y volumen de un programaLongitud, vocabulario y volumen de un programa

Basadas en la estructura del cBasadas en la estructura del cóódigodigoProgramaciProgramacióón estructuradan estructurada

Complejidad de Complejidad de McCabeMcCabe o o ciclomciclomááticatica (interna)(interna)Complejidad de HenryComplejidad de Henry--KafuraKafura (externa)(externa)

ProgramaciProgramacióón orientada a objetosn orientada a objetosProfundidad del Profundidad del áárbol de herenciarbol de herenciaMMéétodos ponderados por clasetodos ponderados por clase