Calidad Del Software

16
1 Calidad del Software Calidad del Software José Luis Fuertes Castro Facultad de Inform Facultad de Informática tica Universidad Polit Universidad Politécnica de Madrid cnica de Madrid X Reuni X Reunión de Responsables de Sistemas n de Responsables de Sistemas de Informaci de Información La Antigua, Guatemala La Antigua, Guatemala 22 22-25 de septiembre de 2008 25 de septiembre de 2008 Calidad del Software José Luis Fuertes 1 1. 1. Introducci Introducción 2. 2. Control y Garant Control y Garantí a de la Calidad del Software a de la Calidad del Software 1. 1. Controles est Controles estáticos y din ticos y dinámicos micos 2. 2. Actividades constructivas de la calidad Actividades constructivas de la calidad 3. 3. El coste de la calidad El coste de la calidad 3. 3. Medidas Medidas 1. 1. Introducci Introducción a las medidas n a las medidas 2. 2. Qu Qué, por qu , por qué y c y cómo miden los ingenieros mo miden los ingenieros 3. 3. Medidas y m Medidas y métricas tricas 4. 4. Medidas en Ingenier Medidas en Ingeniería del Software a del Software 5. 5. Clasificaci Clasificación de medidas n de medidas 4. 4. Calidad del Software Calidad del Software 1. 1. Introducci Introducción a la calidad n a la calidad 2. 2. Modelos de calidad del software Modelos de calidad del software 3. 3. Mejora del proceso software Mejora del proceso software 5. 5. Conclusiones Conclusiones Contenidos Contenidos Introducci Introducción Calidad del Software José Luis Fuertes 3 Software: Software: z Especifica el conjunto de programas inform Especifica el conjunto de programas informáticos que se ticos que se desarrollan en el entorno de una computadora desarrollan en el entorno de una computadora z Papel del software en la sociedad ha cambiado Papel del software en la sociedad ha cambiado significativamente en los significativamente en los últimos 50 a ltimos 50 años os mejoras en rendimiento del hardware mejoras en rendimiento del hardware cambios en arquitecturas inform cambios en arquitecturas informáticas ticas aumentos de memoria y capacidad de almacenamiento aumentos de memoria y capacidad de almacenamiento variedad de dispositivos de entrada y salida variedad de dispositivos de entrada y salida ... ... z Importancia profesional y personal de la Inform Importancia profesional y personal de la Informática tica Disminuye el precio del Disminuye el precio del hardware hardware Aumenta la demanda de nuevas aplicaciones Aumenta la demanda de nuevas aplicaciones Introducci Introducción Calidad del Software José Luis Fuertes 4 Sistemas cada vez m Sistemas cada vez más sofisticados y complejos s sofisticados y complejos Se ha pasado de ser una herramienta para la Se ha pasado de ser una herramienta para la resoluci resolución de problemas a una industria n de problemas a una industria Caracter Caracterí sticas del software sticas del software z El software se desarrolla, no se fabrica El software se desarrolla, no se fabrica z El software no se estropea El software no se estropea z Aunque la industria tiende a ensamblar componentes, la Aunque la industria tiende a ensamblar componentes, la mayor mayorí a del software se construye a medida a del software se construye a medida Introducci Introducción Calidad del Software José Luis Fuertes 5 Un poco de historia... Un poco de historia... z os 40 os 40 Æ Fundamentos de la computaci Fundamentos de la computación moderna n moderna z Principios de los 60 Principios de los 60 Æ Consolidaci Consolidación del desarrollo de n del desarrollo de software de aplicaciones relativamente grandes software de aplicaciones relativamente grandes z Finales de los 60 Finales de los 60 Æ Crisis del software Crisis del software Imposibilidad de desarrollar proyectos de una dimensi Imposibilidad de desarrollar proyectos de una dimensión n acorde con los avances tecnol acorde con los avances tecnológicos de la gicos de la época poca z 1968 1968 Æ El comit El comité cient cientí fico de la OTAN patrocina una fico de la OTAN patrocina una conferencia en Alemania, para identificar, clasificar y conferencia en Alemania, para identificar, clasificar y discutir los problemas que se produc discutir los problemas que se producí an en el desarrollo an en el desarrollo de grandes proyectos de grandes proyectos Resultado: el desarrollo del software es una tarea de Resultado: el desarrollo del software es una tarea de ingenier ingenierí a (se acu a (se acuña el t a el término de rmino de Ingenier Ingenierí a del Software a del Software) Introducci Introducción

Transcript of Calidad Del Software

Page 1: Calidad Del Software

1

Calidad del SoftwareCalidad del SoftwareJosé Luis Fuertes Castro

Facultad de InformFacultad de InformááticaticaUniversidad PolitUniversidad Politéécnica de Madridcnica de Madrid

X ReuniX Reunióón de Responsables de Sistemas n de Responsables de Sistemas de Informacide Informacióónn

La Antigua, GuatemalaLa Antigua, Guatemala2222--25 de septiembre de 200825 de septiembre de 2008

Calidad del Software José Luis Fuertes 1

1.1. IntroducciIntroduccióónn2.2. Control y GarantControl y Garantíía de la Calidad del Softwarea de la Calidad del Software

1.1. Controles estControles estááticos y dinticos y dináámicosmicos2.2. Actividades constructivas de la calidadActividades constructivas de la calidad3.3. El coste de la calidadEl coste de la calidad

3.3. MedidasMedidas1.1. IntroducciIntroduccióón a las medidasn a las medidas2.2. QuQuéé, por qu, por quéé y cy cóómo miden los ingenierosmo miden los ingenieros3.3. Medidas y mMedidas y méétricastricas4.4. Medidas en IngenierMedidas en Ingenieríía del Softwarea del Software5.5. ClasificaciClasificacióón de medidasn de medidas

4.4. Calidad del SoftwareCalidad del Software1.1. IntroducciIntroduccióón a la calidadn a la calidad2.2. Modelos de calidad del softwareModelos de calidad del software3.3. Mejora del proceso softwareMejora del proceso software

5.5. ConclusionesConclusiones

ContenidosContenidos

IntroducciIntroduccióónn

Calidad del Software José Luis Fuertes 3

Software:Software:Especifica el conjunto de programas informEspecifica el conjunto de programas informááticos que se ticos que se desarrollan en el entorno de una computadoradesarrollan en el entorno de una computadoraPapel del software en la sociedad ha cambiado Papel del software en la sociedad ha cambiado significativamente en los significativamente en los úúltimos 50 altimos 50 aññosos

mejoras en rendimiento del hardwaremejoras en rendimiento del hardwarecambios en arquitecturas informcambios en arquitecturas informááticasticasaumentos de memoria y capacidad de almacenamientoaumentos de memoria y capacidad de almacenamientovariedad de dispositivos de entrada y salidavariedad de dispositivos de entrada y salida......

Importancia profesional y personal de la InformImportancia profesional y personal de la InformááticaticaDisminuye el precio del Disminuye el precio del hardwarehardwareAumenta la demanda de nuevas aplicacionesAumenta la demanda de nuevas aplicaciones

IntroducciIntroduccióónn

Calidad del Software José Luis Fuertes 4

Sistemas cada vez mSistemas cada vez máás sofisticados y complejoss sofisticados y complejosSe ha pasado de ser una herramienta para la Se ha pasado de ser una herramienta para la resoluciresolucióón de problemas a una industrian de problemas a una industriaCaracterCaracteríísticas del softwaresticas del software

El software se desarrolla, no se fabricaEl software se desarrolla, no se fabricaEl software no se estropeaEl software no se estropeaAunque la industria tiende a ensamblar componentes, la Aunque la industria tiende a ensamblar componentes, la mayormayoríía del software se construye a medidaa del software se construye a medida

IntroducciIntroduccióónn

Calidad del Software José Luis Fuertes 5

Un poco de historia...Un poco de historia...AAñños 40os 40 Fundamentos de la computaciFundamentos de la computacióón modernan modernaPrincipios de los 60 Principios de los 60 ConsolidaciConsolidacióón del desarrollo de n del desarrollo de software de aplicaciones relativamente grandessoftware de aplicaciones relativamente grandesFinales de los 60 Finales de los 60 Crisis del softwareCrisis del software

Imposibilidad de desarrollar proyectos de una dimensiImposibilidad de desarrollar proyectos de una dimensióón n acorde con los avances tecnolacorde con los avances tecnolóógicos de la gicos de la éépocapoca

1968 1968 El comitEl comitéé cientcientíífico de la OTAN patrocina una fico de la OTAN patrocina una conferencia en Alemania, para identificar, clasificar y conferencia en Alemania, para identificar, clasificar y discutir los problemas que se producdiscutir los problemas que se producíían en el desarrollo an en el desarrollo de grandes proyectosde grandes proyectos

Resultado: el desarrollo del software es una tarea de Resultado: el desarrollo del software es una tarea de ingenieringenieríía (se acua (se acuñña el ta el téérmino de rmino de IngenierIngenieríía del Softwarea del Software))

IntroducciIntroduccióónn

Page 2: Calidad Del Software

2

Calidad del Software José Luis Fuertes 6

IngenierIngenieríía:a:Diccionario de la Real Academia EspaDiccionario de la Real Academia Españñolaola: : ““Conjunto de conocimientos y tConjunto de conocimientos y téécnicas que permiten cnicas que permiten aplicar el saber cientaplicar el saber cientíífico a la utilizacifico a la utilizacióón de la materia n de la materia y de las fuentes de energy de las fuentes de energííaa””

Software:Software:Diccionario de la Real Academia EspaDiccionario de la Real Academia Españñolaola: : ““Conjunto de programas, instrucciones y reglas Conjunto de programas, instrucciones y reglas informinformááticas para ejecutar ciertas tareas en una ticas para ejecutar ciertas tareas en una computadoracomputadora””

IntroducciIntroduccióónn

Calidad del Software José Luis Fuertes 7

IngenierIngenieríía del Software:a del Software:BoehmBoehm, 1976, 1976

IEEE, 1993IEEE, 1993

IntroducciIntroduccióónn

“Aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación y mantenimiento del software”

“Aplicación práctica del conocimiento científico en el diseño y construcción de programas de computadora y la documentación asociada

requerida para desarrollar, operar y mantenerlos”

Calidad del Software José Luis Fuertes 8

El producto software:El producto software:Es un sistema software desarrollado para un cliente con la Es un sistema software desarrollado para un cliente con la documentacidocumentacióón que describe cn que describe cóómo instalar y usar el mo instalar y usar el sistemasistemaObjetivo de la IngenierObjetivo de la Ingenieríía del Softwarea del Software

Producir productos softwareProducir productos software

IntroducciIntroduccióónn

Calidad del Software José Luis Fuertes 9

El proceso software:El proceso software:Es el conjunto de actividades y resultados que permite Es el conjunto de actividades y resultados que permite producir un producto softwareproducir un producto softwareActividades fundamentales del proceso software:Actividades fundamentales del proceso software:

EspecificaciEspecificacióón del software: se define la funcionalidad del n del software: se define la funcionalidad del software y el modo de operacisoftware y el modo de operacióónnDesarrollo del software: se produce el software de acuerdo con Desarrollo del software: se produce el software de acuerdo con las especificacioneslas especificacionesValidaciValidacióón del software: el software debe ser validado para n del software: el software debe ser validado para asegurarse que hace lo que espera el clienteasegurarse que hace lo que espera el clienteEvoluciEvolucióón del software: el software debe evolucionar para n del software: el software debe evolucionar para acomodarse a las nuevas necesidades del clienteacomodarse a las nuevas necesidades del cliente

Actividad compleja, muchas actividades distintasActividad compleja, muchas actividades distintas

IntroducciIntroduccióónn

Calidad del Software José Luis Fuertes 10

IntroducciIntroduccióónn

Ley de Murphy:Ley de Murphy:““Si algo puede ir mal, irSi algo puede ir mal, iráá malmal””

El software no es perfectoEl software no es perfecto

Calidad del Software José Luis Fuertes 11

Las causas de los fallos informLas causas de los fallos informááticos pueden ser ticos pueden ser muy diversas:muy diversas:

Especificaciones incorrectas o incompletasEspecificaciones incorrectas o incompletasAnAnáálisis equivocadoslisis equivocadosDiseDiseñños con fallosos con fallosProgramaciProgramacióón con erroresn con erroresValidaciValidacióón poco precisan poco precisa

IntroducciIntroduccióónn

Page 3: Calidad Del Software

3

Calidad del Software José Luis Fuertes 12

Actualmente se usa el software en gran diversidad Actualmente se usa el software en gran diversidad de de áámbitosmbitosLos defectos del software pueden causar Los defectos del software pueden causar importantes problemas e, incluso, daimportantes problemas e, incluso, dañños fos fíísicossicos

Los defectos en programas financieros o editores son Los defectos en programas financieros o editores son poco importantes, poco costosos y nadie sale herido poco importantes, poco costosos y nadie sale herido Cuando el software Cuando el software ““pilotapilota”” aviones, aviones, ““conduceconduce”” autos, autos, ““controlacontrola”” el trel trááfico afico aééreo o reo o ““vigilavigila”” centrales nucleares, centrales nucleares, los defectos pueden ser muy peligrososlos defectos pueden ser muy peligrosos

IntroducciIntroduccióónn

Calidad del Software José Luis Fuertes 13

La soluciLa solucióón al problema es la n al problema es la calidadcalidad¿¿CuCuáándo tiene buena calidad el software?ndo tiene buena calidad el software?¿¿QuQuéé caractercaracteríísticas influyen al determinar la calidad del sticas influyen al determinar la calidad del software?software?¿¿CCóómo medir la calidad del software?mo medir la calidad del software?¿¿CCóómo controlar y garantizar la calidad del software?mo controlar y garantizar la calidad del software?

IntroducciIntroduccióónn

Calidad del Software José Luis Fuertes 14

Es necesario medir la calidad...Es necesario medir la calidad......pero es una tarea dif...pero es una tarea difíícilcil¿¿Por quPor quéé medir?medir?

IntroducciIntroduccióónn

“Si algo puede ser medido y expresado con números, entonces se

sabe algo acerca de ello”

“No se puede controlar lo que

no se puede medir”

Kelvin DeMarco

Control y GarantControl y Garantíía de a de la Calidadla Calidad

Calidad del Software José Luis Fuertes 16

Control de la CalidadControl de la Calidad

Objetivos:Objetivos:Comprobar si un producto posee una determinada Comprobar si un producto posee una determinada caractercaracteríística de calidad en el grado requeridostica de calidad en el grado requerido

Si no es asSi no es asíí, tiene un , tiene un defectodefectoIdentificar defectos y corregirlosIdentificar defectos y corregirlos

Actividades de control:Actividades de control:Controles estControles estááticosticos

Analizan el producto sin necesidad de ejecutarloAnalizan el producto sin necesidad de ejecutarloControles dinControles dináámicosmicos

Analizan el producto durante su funcionamientoAnalizan el producto durante su funcionamiento

Calidad del Software José Luis Fuertes 17

Controles manualesControles manualesInformalesInformales

Por los autores del desarrollo o por personal equivalentePor los autores del desarrollo o por personal equivalenteComprobaciComprobacióón de escritorio (n de escritorio (deskdesk checkingchecking))RevisiRevisióón por pares (n por pares (peer peer reviewreview))

DisciplinadosDisciplinadosSon tSon téécnicas de grupocnicas de grupo

AuditorAuditorííasasRevisionesRevisiones

Controles automControles automááticosticosSistemas informSistemas informááticos o con un proceso algorticos o con un proceso algoríítmicotmico

AnAnáálisis estlisis estáático automtico automááticoticoVerificaciVerificacióón formaln formal

Control de la CalidadControl de la CalidadControles EstControles Estááticosticos

Page 4: Calidad Del Software

4

Calidad del Software José Luis Fuertes 18

Tipos de pruebasTipos de pruebasPrueba Prueba modularmodular

Se prueba cada mSe prueba cada móódulo aislado del resto del sistemadulo aislado del resto del sistemaPrueba de Prueba de integraciintegracióónn

Se prueba que las interfaces entre los mSe prueba que las interfaces entre los móódulos son correctasdulos son correctasPrueba de Prueba de sistemasistema

Se prueba si el sistema satisface todos los requisitos del Se prueba si el sistema satisface todos los requisitos del usuariousuario

Prueba de Prueba de aceptaciaceptacióónnSu objetivo es demostrar al usuario que el sistema satisface Su objetivo es demostrar al usuario que el sistema satisface sus necesidadessus necesidades

Prueba de Prueba de regresiregresióónnSe comprueba que la nueva versiSe comprueba que la nueva versióón del producto no es de n del producto no es de menos calidad que la anteriormenos calidad que la anterior

Control de la CalidadControl de la CalidadControles DinControles Dináámicosmicos

Calidad del Software José Luis Fuertes 19

DefiniciDefinicióónnConjunto de actividades de planificaciConjunto de actividades de planificacióón, estimacin, estimacióón y n y supervisisupervisióón del proceso de desarrollo, que se realizan de n del proceso de desarrollo, que se realizan de forma independiente al equipo de desarrollo, de tal forma forma independiente al equipo de desarrollo, de tal forma que los productos software resultantes cumplen los que los productos software resultantes cumplen los requisitos establecidos y satisfacen los niveles de calidad requisitos establecidos y satisfacen los niveles de calidad exigidosexigidos

GarantGarantíía de Calidada de Calidad

Calidad del Software José Luis Fuertes 20

Modelos de proceso softwareModelos de proceso softwareIdealizaciIdealizacióón del proceso de desarrollo y mantenimiento n del proceso de desarrollo y mantenimiento del softwaredel softwareSe descompone el proceso en fases, definiendo las Se descompone el proceso en fases, definiendo las actividades a realizaractividades a realizar

MMéétodos y formalismostodos y formalismosLa sistematizaciLa sistematizacióón de los procedimientos facilita la n de los procedimientos facilita la prueba de los resultados obtenidosprueba de los resultados obtenidosSe producen incrementos en la productividad (50Se producen incrementos en la productividad (50--150%)150%)

GarantGarantíía de Calidada de CalidadActividades ConstructivasActividades Constructivas

Calidad del Software José Luis Fuertes 21

Herramientas y entornos de desarrolloHerramientas y entornos de desarrolloLas herramientas CASE (Las herramientas CASE (ComputerComputer AidedAided Software Software EngineeringEngineering) facilitan la producci) facilitan la produccióón de softwaren de softwareLos modernos entornos de desarrollo han simplificado el Los modernos entornos de desarrollo han simplificado el proceso de implementaciproceso de implementacióónn

Lenguajes de programaciLenguajes de programacióónnSu importancia (en tSu importancia (en téérminos de calidad) se hace patente rminos de calidad) se hace patente en el mantenimientoen el mantenimientoCaracterCaracteríísticas interesantes: msticas interesantes: móódulos, compilacidulos, compilacióón n separada, ocultaciseparada, ocultacióón de informacin de informacióón, flujo de control n, flujo de control estructurado, fuerte estructurado, fuerte tipadotipado, OO, orientaci, OO, orientacióón a eventos...n a eventos...

GarantGarantíía de Calidada de CalidadActividades ConstructivasActividades Constructivas

Calidad del Software José Luis Fuertes 22

DocumentaciDocumentacióónnJuega un papel esencialJuega un papel esencialCaracterCaracteríísticas importantes: consistencia, claridad, sticas importantes: consistencia, claridad, comprensibilidad, completitud...comprensibilidad, completitud...

Factores humanosFactores humanosFactores a considerar: cultura de la organizaciFactores a considerar: cultura de la organizacióón, n, comunicacicomunicacióón, entorno fn, entorno fíísico, formacisico, formacióón, motivacin, motivacióón, n, direccidireccióón, liderazgo...n, liderazgo...

OtrosOtrosEstEstáándares y convenciones, ejemplos y patrones, gestindares y convenciones, ejemplos y patrones, gestióón n de configuracide configuracióón, control del cn, control del cóódigo, gestidigo, gestióón de n de problemas...problemas...

GarantGarantíía de Calidada de CalidadActividades ConstructivasActividades Constructivas

Calidad del Software José Luis Fuertes 23

Intervienen dos factores:Intervienen dos factores:PrevenciPrevencióón de erroresn de erroresDetecciDeteccióón de defectosn de defectos

GarantGarantíía de Calidada de CalidadEl Coste de la CalidadEl Coste de la Calidad

DistribuciDistribucióón de defectos detectados segn de defectos detectados segúún la fase en la que se n la fase en la que se cometieron:cometieron:

27%

7%10%

56%

Especificación

Diseño

Codificación

Otros

Page 5: Calidad Del Software

5

Calidad del Software José Luis Fuertes 24

Intervienen dos factores:Intervienen dos factores:PrevenciPrevencióón de erroresn de erroresDetecciDeteccióón de defectosn de defectos

GarantGarantíía de Calidada de CalidadEl Coste de la CalidadEl Coste de la Calidad

Porcentaje, sobre el coste total de correcciPorcentaje, sobre el coste total de correccióón de los defectos, segn de los defectos, segúún la n la fase en la que se cometieron:fase en la que se cometieron:

13% 1%4%

82%

Especificación

Diseño

Codificación

Otros

Calidad del Software José Luis Fuertes 25

Intervienen dos factores:Intervienen dos factores:PrevenciPrevencióón de erroresn de erroresDetecciDeteccióón de defectosn de defectos

GarantGarantíía de Calidada de CalidadEl Coste de la CalidadEl Coste de la Calidad

0 $

2.500 $

5.000 $

7.500 $

10.000 $

12.500 $

15.000 $

17.500 $

Análisis Diseño Codificación Pruebas Implantación

Coste de correcciCoste de correccióón segn segúún la fase en la que se detectaron los defectos:n la fase en la que se detectaron los defectos:

MedidasMedidas

Calidad del Software José Luis Fuertes 27

¿¿QuQuéé es la medicies la medicióón?n?La mediciLa medicióón es la asociacin es la asociacióón de valores numn de valores numééricos con ricos con un objeto o acciun objeto o accióónnSe interpreta este valor como la cantidad de calidad o de Se interpreta este valor como la cantidad de calidad o de cierto atributo posecierto atributo poseíído por dicho objeto o accido por dicho objeto o accióónn

IntroducciIntroduccióón a las Medidasn a las MedidasDefinicionesDefiniciones

Calidad del Software José Luis Fuertes 28

MedirMedirDiccionario de la Real Academia EspaDiccionario de la Real Academia Españñolaola: :

Comparar una cantidad con su respectiva unidad, con el fin de Comparar una cantidad con su respectiva unidad, con el fin de averiguar cuaveriguar cuáántas veces la segunda estntas veces la segunda estáá contenida en la primeracontenida en la primera

MedidaMedidaDiccionario de la Real Academia EspaDiccionario de la Real Academia Españñolaola::

AcciAccióón y efecto de medirn y efecto de medirExpresiExpresióón del resultado de una medicin del resultado de una medicióón n Cada una de las unidades que se emplean para medir longitudes, Cada una de las unidades que se emplean para medir longitudes, ááreas o volreas o volúúmenes de lmenes de lííquidos o quidos o ááridos ridos

IntroducciIntroduccióón a las Medidasn a las MedidasDefinicionesDefiniciones

Calidad del Software José Luis Fuertes 29

La ingenierLa ingenieríía puede definirse como el proceso que a puede definirse como el proceso que produce productos produce productos úútilestilesPuede describirse lo que miden los ingenieros en Puede describirse lo que miden los ingenieros en dos categordos categoríías:as:

Medidas del productoMedidas del productoMedidas del procesoMedidas del proceso

MedidasMedidas¿¿QuQuéé Miden los Ingenieros?Miden los Ingenieros?

Page 6: Calidad Del Software

6

Calidad del Software José Luis Fuertes 30

Medidas del productoMedidas del productoMedidas estMedidas estááticasticas

Pueden calcularse cuando el objeto no estPueden calcularse cuando el objeto no estáá en usoen usoTamaTamañño, longitud, altura, anchura, peso, capacidad, o, longitud, altura, anchura, peso, capacidad, volumen...volumen...

Medidas dinMedidas dináámicasmicasDescriben el comportamiento de un objeto mientras estDescriben el comportamiento de un objeto mientras estáá en en usousoVelocidad, consumo, disipaciVelocidad, consumo, disipacióón de calor, nivel de ruido...n de calor, nivel de ruido...

MedidasMedidas¿¿QuQuéé Miden los Ingenieros?Miden los Ingenieros?

Calidad del Software José Luis Fuertes 31

Medidas del procesoMedidas del procesoSe usan para cuantificar la actividad humana de la Se usan para cuantificar la actividad humana de la ingenieringenierííaaEjemplos:Ejemplos:

TamaTamañño de un equipo de desarrollo, esfuerzo, tiempo, coste, o de un equipo de desarrollo, esfuerzo, tiempo, coste, productividad...productividad...

MedidasMedidas¿¿QuQuéé Miden los Ingenieros?Miden los Ingenieros?

Calidad del Software José Luis Fuertes 32

Para describir el estado actual del mundoPara describir el estado actual del mundoCada medida describe un aspecto concreto del estado del Cada medida describe un aspecto concreto del estado del mundo hoymundo hoySi se mide el estado del mundo periSi se mide el estado del mundo perióódicamente, puede dicamente, puede ser posible descubrir patrones y tendenciasser posible descubrir patrones y tendencias

Permite dar explicaciones del comportamiento del mundo Permite dar explicaciones del comportamiento del mundo realreal

Leyes o teorLeyes o teoríías cientas cientííficasficas

Los ingenieros pretenden descubrir:Los ingenieros pretenden descubrir:el comportamiento de los sistemas que diseel comportamiento de los sistemas que diseññan y construyenan y construyenlas tendencias en el propio proceso de ingenierlas tendencias en el propio proceso de ingenierííaa

MedidasMedidas¿¿Por quPor quéé Miden los Ingenieros?Miden los Ingenieros?

Calidad del Software José Luis Fuertes 33

Para establecer los requisitos cuantitativamente y Para establecer los requisitos cuantitativamente y demostrar su cumplimientodemostrar su cumplimiento

No puede imaginarse un proyecto de ingenierNo puede imaginarse un proyecto de ingenieríía sin a sin requisitos cuantitativosrequisitos cuantitativos

ConstrucciConstruccióón de un puente (longitud, altura, carga mn de un puente (longitud, altura, carga mááxima, xima, caudal del rcaudal del ríío...)o...)PequePequeñños electrodomos electrodoméésticos (tamasticos (tamañño, peso, coste...)o, peso, coste...)VehVehíículos (peso, consumo, espacio interior, espacio para culos (peso, consumo, espacio interior, espacio para equipaje, resistencia a los impactos...)equipaje, resistencia a los impactos...)Software (tiempo de respuesta, memoria ocupada...)...Software (tiempo de respuesta, memoria ocupada...)...

Para demostrar que se cumplen los requisitos Para demostrar que se cumplen los requisitos cuantitativos, es necesario medircuantitativos, es necesario medir

MedidasMedidas¿¿Por quPor quéé Miden los Ingenieros?Miden los Ingenieros?

Calidad del Software José Luis Fuertes 34

Para realizar un seguimiento del progreso y predecir Para realizar un seguimiento del progreso y predecir los resultadoslos resultados

Las mediciones periLas mediciones perióódicas de lo que se va obteniendo dicas de lo que se va obteniendo permite realizar un seguimiento cuantitativo del proyectopermite realizar un seguimiento cuantitativo del proyecto

Pueden ponerse de manifiesto tendencias inusuales que, al Pueden ponerse de manifiesto tendencias inusuales que, al detectarlas, pueden corregirsedetectarlas, pueden corregirse

Los ingenieros del software cuentan el nLos ingenieros del software cuentan el núúmero de mero de defectos encontrados durante las pruebas para calibrar defectos encontrados durante las pruebas para calibrar los modelos de fiabilidadlos modelos de fiabilidad

Pueden predecir cuPueden predecir cuáándo se completarndo se completaráán las pruebas y cun las pruebas y cuáándo ndo se alcanzarse alcanzaráá el nivel de fiabilidad requeridoel nivel de fiabilidad requerido

MedidasMedidas¿¿Por quPor quéé Miden los Ingenieros?Miden los Ingenieros?

Calidad del Software José Luis Fuertes 35

Para analizar costes y beneficiosPara analizar costes y beneficiosEl corazEl corazóón de la ingeniern de la ingenieríía: el compromisoa: el compromiso

Hay muchas formas de diseHay muchas formas de diseññar productos y muchas formas ar productos y muchas formas de disede diseññar sus componentesar sus componentesCada diseCada diseñño tiene ventajas y desventajaso tiene ventajas y desventajasEl ingeniero debe valorarlas todas y establecer un El ingeniero debe valorarlas todas y establecer un compromiso entre unas y otrascompromiso entre unas y otras

A veces se acepta una cualidad negativa para favorecer otra A veces se acepta una cualidad negativa para favorecer otra cualidadcualidadA veces se acepta menos de un atributo deseable para obtener mA veces se acepta menos de un atributo deseable para obtener máás s de otro atributo deseablede otro atributo deseable

Ej.: Coche: se deben establecer compromisos entre peso, economEj.: Coche: se deben establecer compromisos entre peso, economíía, a, espacio del habitespacio del habitááculo, confort y precioculo, confort y precio

MedidasMedidas¿¿Por quPor quéé Miden los Ingenieros?Miden los Ingenieros?

Page 7: Calidad Del Software

7

Calidad del Software José Luis Fuertes 36

Tradicionalmente, los ingenieros usan instrumentosTradicionalmente, los ingenieros usan instrumentosLos instrumentos pueden proporcionar medidas Los instrumentos pueden proporcionar medidas errerróóneasneas

La exactitud de un instrumento es una indicaciLa exactitud de un instrumento es una indicacióón de la n de la diferencia entre la lectura del instrumento y los datos de diferencia entre la lectura del instrumento y los datos de entradaentradaLa precisiLa precisióón de un instrumento es una indicacin de un instrumento es una indicacióón de lo n de lo repetible que resulta una medicirepetible que resulta una medicióón con una exactitud n con una exactitud determinadadeterminada

MedidasMedidas¿¿CCóómo Miden los Ingenieros?mo Miden los Ingenieros?

Calidad del Software José Luis Fuertes 37

MuestreoMuestreoSelecciSeleccióón y medida de una parte representativa de la n y medida de una parte representativa de la poblacipoblacióón para deducir parn para deducir paráámetros o caractermetros o caracteríísticas de sticas de toda la poblacitoda la poblacióón.n.

Se usa cuando es imposible o poco prSe usa cuando es imposible o poco prááctico medir a toda la ctico medir a toda la poblacipoblacióónn

EjemploEjemploControl de calidad en un proceso de fabricaciControl de calidad en un proceso de fabricacióónn

Se elige uno de cada 1000 productos y se realizan medidasSe elige uno de cada 1000 productos y se realizan medidasUtilizando varias tUtilizando varias téécnicas estadcnicas estadíísticas, se extraen conclusiones sticas, se extraen conclusiones acerca de todos los productos a partir de las medidas realizadasacerca de todos los productos a partir de las medidas realizadas en en los productos seleccionadoslos productos seleccionados

MedidasMedidas¿¿CCóómo Miden los Ingenieros?mo Miden los Ingenieros?

Calidad del Software José Luis Fuertes 38

Informalmente:Informalmente:MedidaMedida

Forma perfectamente definida de asociar valores numForma perfectamente definida de asociar valores numééricos a ricos a los atributos de los elementos de una entidadlos atributos de los elementos de una entidad

MMéétricatricaCriterio para determinar la diferencia o distancia entre dos Criterio para determinar la diferencia o distancia entre dos entidadesentidades

TeorTeoríía de Medidasa de MedidasMedidas y MMedidas y Méétricastricas

Calidad del Software José Luis Fuertes 39

MatemMatemááticamente:ticamente:MedidaMedida

Sea Sea AA un conjunto de objetos fun conjunto de objetos fíísicos o empsicos o empííricosricosSea Sea BB un conjunto de objetos formales (nun conjunto de objetos formales (núúmeros)meros)Se define una Se define una medidamedida μμ como una relacicomo una relacióón unn uníívoca de voca de AA a a BB: : μμ: A : A →→ BB

Cada objeto tiene una y solo una medidaCada objeto tiene una y solo una medida

TeorTeoríía de Medidasa de MedidasMedidas y MMedidas y Méétricastricas

Calidad del Software José Luis Fuertes 40

MatemMatemááticamente:ticamente:MMéétrica:trica:

Sea Sea AA un conjunto de objetosun conjunto de objetosSea Sea ℜℜ el conjunto de nel conjunto de núúmeros realesmeros realesSea Sea mm: : AA ⊗⊗ AA →→ ℜℜ una medidauna medidaEntonces Entonces mm es una es una mméétricatrica si cumple:si cumple:

m(x, y) m(x, y) ≥≥ 0, 0, ∀∀ x, y x, y ∈∈AAm(x, y) = 0 m(x, y) = 0 ⇔⇔ x = yx = ym(x, y) = m(y, x), m(x, y) = m(y, x), ∀∀ x, y x, y ∈∈AAm(x, z) m(x, z) ≤≤ m(x, y) + m(y, z), m(x, y) + m(y, z), ∀∀ x, y, z x, y, z ∈∈AA

TeorTeoríía de Medidasa de MedidasMedidas y MMedidas y Méétricastricas

Calidad del Software José Luis Fuertes 41

Este concepto de Este concepto de ““mméétricatrica”” como distancia entre como distancia entre dos entidades tiene muy poco sentido en el mundo dos entidades tiene muy poco sentido en el mundo del softwaredel softwareEn cambio, sEn cambio, síí tiene sentido calcular una medida tiene sentido calcular una medida para dos productos y compararlaspara dos productos y compararlas

MMéétrica del Software trica del Software ⇔⇔ Medida del SoftwareMedida del Software

TeorTeoríía de Medidasa de MedidasMedidas y MMedidas y Méétricastricas

Page 8: Calidad Del Software

8

Calidad del Software José Luis Fuertes 42

Barrera intelectualBarrera intelectual

TeorTeoríía de Medidasa de Medidas

Objetos del mundo real, relaciones,

operaciones

Objetos numéricos, relaciones, operaciones

Resultados numéricos

Resultados relevantes al mundo real

medición

matemáticas,estadística

interpretación

barrera intelectual

Calidad del Software José Luis Fuertes 43

Medidas en IngenierMedidas en Ingenieríía del a del SwSw..

¿¿Es bueno un programa?Es bueno un programa?¿¿CCóómo de fiable sermo de fiable seráá el sistema una vez instalado?el sistema una vez instalado?¿¿CuCuáántos errores se esperan encontrar?ntos errores se esperan encontrar?¿¿CuCuáántas pruebas tengo que hacer?ntas pruebas tengo que hacer?¿¿CuCuáál serl seráá el coste de las pruebas?el coste de las pruebas?¿¿SerSeráá difdifíícil mantener el sistema?cil mantener el sistema?¿¿CuCuáánto costarnto costaráá construir un sistema similar al que construir un sistema similar al que construconstruíí hace 5 ahace 5 añños?os?¿¿CuCuáánto tardarnto tardaréé en desarrollar el sistema?en desarrollar el sistema?......

Calidad del Software José Luis Fuertes 44

Medidas en IngenierMedidas en Ingenieríía del a del SwSw..

Los ingenieros del software se enfrentan Los ingenieros del software se enfrentan diariamente a estas preguntasdiariamente a estas preguntasLa habilidad para realizar las medidas apropiadas es La habilidad para realizar las medidas apropiadas es fundamental para los ingenieros del softwarefundamental para los ingenieros del softwareTambiTambiéén es importante saber cn es importante saber cóómo medirmo medirEs un Es un áárea de investigacirea de investigacióón candente en Ingeniern candente en Ingenieríía a del Softwaredel Software

No hay resultados estNo hay resultados estáándar universalmente aceptados en ndar universalmente aceptados en el terreno de las medidas del softwareel terreno de las medidas del software

Calidad del Software José Luis Fuertes 45

Medidas en IngenierMedidas en Ingenieríía del a del SwSw..

Ejemplo de medida de tamaEjemplo de medida de tamañño del softwareo del softwareLLííneas de cneas de cóódigo fuente (LOC)digo fuente (LOC)

#define LOWER 0 /* límite inferior de la tabla */#define UPPER 300 /* límite superior */#define STEP 20 /* tamaño del paso */

main ()/* Tabla de conversión de Fahrenheit a Celsius */{

int fahr;for (fahr = LOWER; fahr <= UPPER; fahr = fahr + STEP)

printf ("%4d %6.1f\n", fahr, (5.0 / 9.0) * (fahr - 32));}

Calidad del Software José Luis Fuertes 46

Medidas en IngenierMedidas en Ingenieríía del a del SwSw..

05

10152025

de

votos

1 2 3 4 5 6 7 8 9

Nº de líneas de código fuente

Calidad del Software José Luis Fuertes 47

Medidas en IngenierMedidas en Ingenieríía del a del SwSw..

CaracterCaracteríísticas deseables de las medidassticas deseables de las medidasDeben ser sencillas y estar definidas con precisiDeben ser sencillas y estar definidas con precisióónnDeben ser objetivasDeben ser objetivasDeben ser fDeben ser fááciles de obtenerciles de obtenerDeben ser vDeben ser váálidaslidasDeben ser robustasDeben ser robustasDeben definir sus valores y sus lDeben definir sus valores y sus líímitesmitesLos conjuntos de medidas deben ser consistentesLos conjuntos de medidas deben ser consistentes

Page 9: Calidad Del Software

9

Calidad del Software José Luis Fuertes 48

Medidas en IngenierMedidas en Ingenieríía del a del SwSw..

Necesidad de las medidas del Necesidad de las medidas del softwaresoftwareSolucionar los problemas del Solucionar los problemas del softwaresoftware

Estimaciones de tiempo y costes mEstimaciones de tiempo y costes máás precisass precisasMayor productividadMayor productividadProductos de mejor calidadProductos de mejor calidad

GestiGestióón del n del softwaresoftware no es efectivano es efectivaDesarrollo de Desarrollo de softwaresoftware es muy complejoes muy complejoSe tiene pocas medidas buenas del proceso o del productoSe tiene pocas medidas buenas del proceso o del productoLa mejora del proceso necesita identificar, medir y controlar La mejora del proceso necesita identificar, medir y controlar sus parsus paráámetros fundamentalesmetros fundamentales

Calidad del Software José Luis Fuertes 49

Medidas en IngenierMedidas en Ingenieríía del a del SwSw..

Gran cantidad de medidas del softwareGran cantidad de medidas del software1976: Complejidad 1976: Complejidad ciclomciclomááticatica ((McCabeMcCabe))1977: Ciencia del software (1977: Ciencia del software (HalsteadHalstead))1980: Complejidad del flujo de control, del flujo de datos y 1980: Complejidad del flujo de control, del flujo de datos y del programa (Oviedo)del programa (Oviedo)1981: Flujo de informaci1981: Flujo de informacióón (n (KafuraKafura y Henry)y Henry)1985: Estabilidad en el mantenimiento (Yau y 1985: Estabilidad en el mantenimiento (Yau y CollofelloCollofello))1988: 1988: ““Ley de Ley de DemeterDemeter”” ((LieberherrLieberherr))1993: Medidas del Dise1993: Medidas del Diseñño (Chen y Lu)o (Chen y Lu)1994: Conjunto de medidas (1994: Conjunto de medidas (ChidamberChidamber y y KemererKemerer))1999: Complejidad del c1999: Complejidad del cóódigo y del disedigo y del diseñño (o (EtzkornEtzkorn et al.)et al.)

Calidad del Software José Luis Fuertes 50

Medidas en IngenierMedidas en Ingenieríía del a del SwSw. . Ejemplos de Medidas del SoftwareEjemplos de Medidas del Software

Complejidad de Complejidad de McCabeMcCabe [[McCabeMcCabe, 1976], 1976]nnúúmero de caminos de ejecucimero de caminos de ejecucióón posibles en un n posibles en un programaprogramav(G) = e v(G) = e -- n + 2 pn + 2 p

ee: bifurcaciones: bifurcacionesnn: nodos con c: nodos con cóódigo secuencialdigo secuencialpp: n: núúmero de grafos inconexosmero de grafos inconexos

v(G)v(G) == ππ ++ 11ππ: n: núúmero de predicadosmero de predicados

Calidad del Software José Luis Fuertes 51

Medidas en IngenierMedidas en Ingenieríía del a del SwSw. . Ejemplos de Medidas del SoftwareEjemplos de Medidas del Software

Complejidad de Complejidad de McCabeMcCabe [[McCabeMcCabe, 1976], 1976]

v(G) = 18 - 12 + 2 = 8

1

2 3 4

5

6

7

8

1

2 3 4 5 6 7

8

9 10

11

12

Calidad del Software José Luis Fuertes 52

Medidas en IngenierMedidas en Ingenieríía del a del SwSw. . Ejemplos de Medidas del SoftwareEjemplos de Medidas del Software

Ciencia del Software [Ciencia del Software [HalsteadHalstead, 1977], 1977]Conjunto de medidas y estimaciones sobre el cConjunto de medidas y estimaciones sobre el cóódigo digo fuentefuenteMedidasMedidas

Contenido de InteligenciaContenido de InteligenciaNivel del ProgramaNivel del ProgramaLongitud del ProgramaLongitud del ProgramaVolumen del ProgramaVolumen del ProgramaDificultadDificultadEsfuerzoEsfuerzo

Calidad del Software José Luis Fuertes 53

Medidas en IngenierMedidas en Ingenieríía del a del SwSw. . Ejemplos de Medidas del SoftwareEjemplos de Medidas del Software

Complejidad del control de flujo [Woodward, Complejidad del control de flujo [Woodward, 1979]1979]

IF (GN .NE. 0) GOTO 10 IF (CN .LT. CT) GOTO 5 E = 1 GOTO 25 5 E = 0 GOTO 25 10 IF (CN .LT. TR) GOTO 20 E = 1 GOTO 25 20 E = 0 25 CONTINUE

Page 10: Calidad Del Software

10

Calidad del Software José Luis Fuertes 54

Medidas en IngenierMedidas en Ingenieríía del a del SwSw. . Ejemplos de Medidas del SoftwareEjemplos de Medidas del Software

Flujo de informaciFlujo de informacióón [Henry y n [Henry y KafuraKafura, 1981], 1981]Complejidad interna (Complejidad interna (CCipip) de un m) de un móódulo dulo p:p:

NNúúmero de lmero de lííneas de cneas de cóódigo (LOC) de dicho mdigo (LOC) de dicho móódulo, dulo, longitud de longitud de HalsteadHalstead, complejidad , complejidad ciclomciclomááticatica......

FanFan--inin de un mde un móódulo dulo p:p:NNúúmero de flujos de datos entrando al mmero de flujos de datos entrando al móódulo dulo pp

FanFan--outout de un mde un móódulo dulo p:p:NNúúmero de flujos de datos saliendo del mmero de flujos de datos saliendo del móódulo dulo pp

Complejidad del flujo de informaciComplejidad del flujo de informacióón de un mn de un móódulo dulo pp((CCpp):):

CCpp = = CCipip ·· (fan(fan--in in ·· fanfan--out)out)22

Calidad del Software José Luis Fuertes 55

Medidas en IngenierMedidas en Ingenieríía del a del SwSw. . Ejemplos de Medidas del SoftwareEjemplos de Medidas del Software

Ley de Ley de DemeterDemeter [[LieberherrLieberherr, 1988], 1988]Para todas las clases Para todas las clases CC y todos los my todos los méétodos todos MM de de CC, , todos los objetos a los que todos los objetos a los que MM envenvíía mensajes deben ser:a mensajes deben ser:

Los objetos que son argumentos de Los objetos que son argumentos de MM (incluyendo el propio (incluyendo el propio objeto de la clase objeto de la clase CC))Los objetos que son atributos de Los objetos que son atributos de CC

Medida: Medida: NNúúmero de veces que se viola la leymero de veces que se viola la ley

Calidad del Software José Luis Fuertes 56

Medidas en IngenierMedidas en Ingenieríía del a del SwSw. . Ejemplos de Medidas del SoftwareEjemplos de Medidas del Software

Conjunto de medidas para OO [Conjunto de medidas para OO [ChidamberChidamber y y KemererKemerer, 1991], 1991]

WMC (WMC (WeightedWeighted MethodsMethods perper ClassClass))Suma ponderada de la complejidad de cada uno de los Suma ponderada de la complejidad de cada uno de los mméétodos de una clasetodos de una clase

Sea la clase Sea la clase CC con sus mcon sus méétodos todos MM11,, MM22...,..., MMnnSea Sea cc11,, cc22...,..., ccnn la complejidad de cada mla complejidad de cada méétodotodoEntonces, para dicha clase Entonces, para dicha clase CC::

WMC = ci

i=1

n

Calidad del Software José Luis Fuertes 57

Medidas en IngenierMedidas en Ingenieríía del a del SwSw. . Ejemplos de Medidas del SoftwareEjemplos de Medidas del Software

Conjunto de medidas para OO [Conjunto de medidas para OO [ChidamberChidamber y y KemererKemerer, 1991], 1991]

DIT (DIT (DepthDepth ofof InheritanceInheritance TreeTree))Profundidad de una clase Profundidad de una clase CC en el en el áárbol de herenciarbol de herenciaDIT es una medida de cuDIT es una medida de cuáántas superclases pueden afectar ntas superclases pueden afectar potencialmente a cada clasepotencialmente a cada claseMedida: contar los niveles del grafo de herenciaMedida: contar los niveles del grafo de herencia

Calidad del Software José Luis Fuertes 58

Medidas en IngenierMedidas en Ingenieríía del a del SwSw. . Ejemplos de Medidas del SoftwareEjemplos de Medidas del Software

Conjunto de medidas para OO [Conjunto de medidas para OO [ChidamberChidamber y y KemererKemerer, 1991], 1991]

NOC (NOC (NumberNumber ofof ChildrenChildren))NNúúmero de clases subordinadas inmediatamente a una clasemero de clases subordinadas inmediatamente a una claseNOC es una medida de cuNOC es una medida de cuáántas clases heredarntas clases heredaráán los mn los méétodos todos de la clase padrede la clase padreEstEstáá relacionada con la nocirelacionada con la nocióón del alcance de los miembrosn del alcance de los miembrosMedida: contar los hijos directos de una clase con una Medida: contar los hijos directos de una clase con una relacirelacióón de herencian de herencia

Calidad del Software José Luis Fuertes 59

Medidas en IngenierMedidas en Ingenieríía del a del SwSw. . Ejemplos de Medidas del SoftwareEjemplos de Medidas del Software

Conjunto de medidas para OO [Conjunto de medidas para OO [ChidamberChidamber y y KemererKemerer, 1991], 1991]

CBO (CBO (CouplingCoupling BetweenBetween ObjectsObjects classesclasses))Cantidad de clases a la que estCantidad de clases a la que estáá acoplada (nacoplada (núúmero de objetos mero de objetos que actque actúúan sobre otro)an sobre otro)Relacionada con la nociRelacionada con la nocióón de que un objeto estn de que un objeto estáá acoplado acoplado con otro si uno de ellos actcon otro si uno de ellos actúúa sobre el otro (si los ma sobre el otro (si los méétodos de todos de uno usan muno usan méétodos o atributos del otro)todos o atributos del otro)

Page 11: Calidad Del Software

11

Calidad del Software José Luis Fuertes 60

Medidas en IngenierMedidas en Ingenieríía del a del SwSw. . Ejemplos de Medidas del SoftwareEjemplos de Medidas del Software

Conjunto de medidas para OO [Conjunto de medidas para OO [ChidamberChidamber y y KemererKemerer, 1991], 1991]

RFC (RFC (Response Response ForFor a a ClassClass))Conjunto de mConjunto de méétodos de una clase que potencialmente todos de una clase que potencialmente pueden ejecutarse como respuesta a la llegada de un mensaje pueden ejecutarse como respuesta a la llegada de un mensaje recibido en un objeto de esa claserecibido en un objeto de esa claseMedida:Medida:

M: conjunto de todos los mM: conjunto de todos los méétodos de la clase todos de la clase CCRRii: conjunto de los m: conjunto de los méétodos llamados por el mtodos llamados por el méétodo todo ii

Ui

iRMRFC∀

=

Calidad del Software José Luis Fuertes 61

Medidas en IngenierMedidas en Ingenieríía del a del SwSw. . Ejemplos de Medidas del SoftwareEjemplos de Medidas del Software

Conjunto de medidas para OO [Conjunto de medidas para OO [ChidamberChidamber y y KemererKemerer, 1991], 1991]

LCOM (LCOM (LackLack ofof CohesionCohesion OfOf MethodsMethods))Proporciona una medida de la relativa disparidad natural de Proporciona una medida de la relativa disparidad natural de los mlos méétodos de una clasetodos de una clase

Calidad del Software José Luis Fuertes 62

Medidas en IngenierMedidas en Ingenieríía del a del SwSw. . Clasificaciones de Medidas del SoftwareClasificaciones de Medidas del Software

ClasificaciClasificacióón basada en los elementos que se miden n basada en los elementos que se miden [Henry]:[Henry]:

Medidas Medidas LLééxicasxicasSe basan en contar Se basan en contar tokenstokens

Medidas Medidas SemSemáánticasnticasSe basan en la aplicaciSe basan en la aplicacióón de los conceptos de la teorn de los conceptos de la teoríía de la a de la informaciinformacióón a la formulacin a la formulacióón de medidasn de medidas

Medidas de Medidas de ConectividadConectividadMiden el grado de Miden el grado de interconectividadinterconectividad entre los componentes entre los componentes del sistema observando el flujo de informacidel sistema observando el flujo de informacióón entre ellosn entre ellos

Calidad del Software José Luis Fuertes 63

Medidas en IngenierMedidas en Ingenieríía del a del SwSw. . Clasificaciones de Medidas del SoftwareClasificaciones de Medidas del Software

ClasificaciClasificacióón de las medidas del producto [n de las medidas del producto [KafuraKafura]:]:Medidas de la Medidas de la EstructuraEstructura

Se basa en el anSe basa en el anáálisis de la estructura del diselisis de la estructura del diseññooMedidas del Medidas del CCóódigodigo

Se basan en los detalles del cSe basan en los detalles del cóódigo fuentedigo fuenteMedidas Medidas HHííbridasbridas

Se basan tanto en detalles de implementaciSe basan tanto en detalles de implementacióón como en la n como en la estructura del diseestructura del diseññoo

Calidad del Software José Luis Fuertes 64

Medidas en IngenierMedidas en Ingenieríía del a del SwSw..

Principios de las medidas del software:Principios de las medidas del software:Medir es un mecanismo ideal para caracterizar, evaluar, Medir es un mecanismo ideal para caracterizar, evaluar, predecir y proporcionar motivacipredecir y proporcionar motivacióón para los diversos n para los diversos aspectos de los procesos de construcciaspectos de los procesos de construccióón del softwaren del softwareLas medidas deben aplicarse tanto sobre el proceso Las medidas deben aplicarse tanto sobre el proceso software como en el productosoftware como en el productoDebe estar claramente indicado el propDebe estar claramente indicado el propóósito de cada sito de cada medidamedidaSe necesitan tanto medidas objetivas como subjetivasSe necesitan tanto medidas objetivas como subjetivasLa mayor parte de los aspectos del producto y del La mayor parte de los aspectos del producto y del proceso software son demasiados complicados para ser proceso software son demasiados complicados para ser identificados por una identificados por una úúnica medidanica medida

Calidad del Software José Luis Fuertes 65

Medidas en IngenierMedidas en Ingenieríía del a del SwSw..

Principios de las medidas del software:Principios de las medidas del software:Los entornos de desarrollo y mantenimiento deben estar Los entornos de desarrollo y mantenimiento deben estar preparados para las medidaspreparados para las medidasLa tarea de medir no se debe limitar a utilizar modelos y La tarea de medir no se debe limitar a utilizar modelos y medidas tal como han sido definidas en otros entornosmedidas tal como han sido definidas en otros entornosEl proceso de medida debe ser de arriba hacia abajo, en El proceso de medida debe ser de arriba hacia abajo, en vez de ser de abajo hacia arriba, para poder definir un vez de ser de abajo hacia arriba, para poder definir un conjunto de objetivos operativos, especificar las medidas conjunto de objetivos operativos, especificar las medidas apropiadas, permitir interpretaciones y anapropiadas, permitir interpretaciones y anáálisis lisis contextuales vcontextuales váálidos y proporcionar retroalimentacilidos y proporcionar retroalimentacióón n para el aprendizaje y el seguimientopara el aprendizaje y el seguimiento

Page 12: Calidad Del Software

12

Calidad del Software José Luis Fuertes 66

Medidas en IngenierMedidas en Ingenieríía del a del SwSw..

Principios de las medidas del software:Principios de las medidas del software:Las medidas deben asociarse con interpretaciones, pero Las medidas deben asociarse con interpretaciones, pero estas interpretaciones deben corresponder con un estas interpretaciones deben corresponder con un determinado contextodeterminado contextoSe necesitan mSe necesitan múúltiples mecanismos para la recopilaciltiples mecanismos para la recopilacióón y n y validacivalidacióón de datosn de datosPara evaluar y comparar proyectos y para llevar a cabo Para evaluar y comparar proyectos y para llevar a cabo modelos se necesita una base histmodelos se necesita una base históórica de experienciasrica de experiencias

Calidad del Software José Luis Fuertes 67

Medidas en IngenierMedidas en Ingenieríía del a del SwSw..

AplicaciAplicacióón del n del principio de incertidumbre de principio de incertidumbre de HeisenbergHeisenberg al cal cáálculo de las medidaslculo de las medidas

“Es imposible determinar simultáneamente la posición y

velocidad exactas de un electrón”

Efecto Efecto HawthorneHawthorne

“La medida de cualquier parámetro de un proyecto y su asociación con una evidencia significativa influirá

en la utilidad de dicha medida”

Calidad del Calidad del SoftwareSoftware

Calidad del Software José Luis Fuertes 69

Calidad de un productoCalidad de un productoPunto de vista subyacente:Punto de vista subyacente:

Excelencia innataExcelencia innataPunto de vista del producto: Punto de vista del producto:

Contenidos del productoContenidos del productoPunto de vista del usuario: Punto de vista del usuario:

AdecuaciAdecuacióón para el uson para el usoPunto de vista industrial: Punto de vista industrial:

Conforme a requisitosConforme a requisitosPunto de vista del valor del producto: Punto de vista del valor del producto:

DiseDiseñño al costeo al coste

Calidad del SoftwareCalidad del SoftwareIntroducciIntroduccióónn

SoftwareSoftware

Calidad del Software José Luis Fuertes 70

CalidadCalidadDiccionario de la Real Academia EspaDiccionario de la Real Academia Españñolaola

““Propiedad o conjunto de propiedades inherentes a una Propiedad o conjunto de propiedades inherentes a una cosa, que permiten cosa, que permiten apreciarla como igual, mejor o peorapreciarla como igual, mejor o peorque las restantes de su especieque las restantes de su especie””

Calidad del softwareCalidad del softwareIEEEIEEE

““Grado con el cual el cliente o usuario percibe que el Grado con el cual el cliente o usuario percibe que el software software satisfacesatisface sus expectativassus expectativas””

Calidad del SoftwareCalidad del SoftwareIntroducciIntroduccióónn

Calidad del Software José Luis Fuertes 71

Calidad del SoftwareCalidad del SoftwareModelos de CalidadModelos de Calidad

Modelos de calidad del softwareModelos de calidad del softwareIntentan cuantificar la calidad del softwareIntentan cuantificar la calidad del softwareSe descompone la calidad en Se descompone la calidad en niveles estructuradosniveles estructuradosLos distintos modelos se Los distintos modelos se diferencian por:diferencian por:

la relacila relacióón entre los nivelesn entre los nivelesla cantidad de nivelesla cantidad de niveleslos conceptos de cada nivellos conceptos de cada nivel

Page 13: Calidad Del Software

13

Calidad del Software José Luis Fuertes 72

Calidad del SoftwareCalidad del SoftwareModelos de CalidadModelos de Calidad

19761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001

Modelo de BoehmModelo de McCall

Modelo de Arthur

Modelo de Gilb / Modelo de Deutsch y Willis

Modelo de Schulmeyer

Modelo de Gillies / Modelo REBOOT

Modelo de Dromey

ISO 9126

Calidad del Software José Luis Fuertes 73

ISO/IEC 9126:ISO/IEC 9126:Software Software EngineeringEngineering –– ProductProduct QualityQuality4 partes:4 partes:

ISO/IEC IS 9126ISO/IEC IS 9126--1:20011:2001QualityQuality ModelModel (15(15--66--2001)2001)

ISO/IEC TR 9126ISO/IEC TR 9126--2:20032:2003External External MetricsMetrics (1(1--77--2003)2003)

ISO/IEC TR 9126ISO/IEC TR 9126--3:20033:2003InternalInternal MetricsMetrics (1(1--77--2003)2003)

ISO/IEC TR 9126ISO/IEC TR 9126--4:20044:2004QualityQuality in use in use MetricsMetrics (1(1--44--2004)2004)

Calidad del SoftwareCalidad del SoftwareModelo de Calidad ISO/IEC 9126Modelo de Calidad ISO/IEC 9126

Calidad del Software José Luis Fuertes 74

Modelo en dos partes para la calidad del softwareModelo en dos partes para la calidad del softwareCalidad interna y externaCalidad interna y externa

SubdivisiSubdivisióón en 6 caractern en 6 caracteríísticassticasCaracterCaracteríísticassticas

SubdivisiSubdivisióón en n en subcaractersubcaracteríísticassticas

Calidad en el usoCalidad en el usoSubdivisiSubdivisióón en 4 caractern en 4 caracteríísticassticas

Calidad del SoftwareCalidad del SoftwareModelo de Calidad ISO/IEC 9126Modelo de Calidad ISO/IEC 9126--11

Calidad del Software José Luis Fuertes 75

CaracterCaracteríísticassticasSe muestran externamente al usar el software y son el Se muestran externamente al usar el software y son el resultado de atributos internosresultado de atributos internosSon aplicables a cualquier tipo de softwareSon aplicables a cualquier tipo de softwareConceptos Conceptos ““caractercaracteríísticassticas”” y y ““subcaractersubcaracteríísticassticas””

Proporcionan una terminologProporcionan una terminologíía consistente para la calidad a consistente para la calidad del producto softwaredel producto softwareProporcionan un marco para especificar requisitos de calidad Proporcionan un marco para especificar requisitos de calidad del softwaredel softwarePermiten definir compromisos entre capacidades del Permiten definir compromisos entre capacidades del producto softwareproducto software

Calidad del SoftwareCalidad del SoftwareModelo de Calidad ISO/IEC 9126Modelo de Calidad ISO/IEC 9126--11

Calidad del Software José Luis Fuertes 76

Calidad del SoftwareCalidad del SoftwareModelo de Calidad ISO/IEC 9126Modelo de Calidad ISO/IEC 9126--11

Atributos de calidad en el uso

Proceso Producto Software Efecto delProducto Software

influye influye influye

depende de depende de depende de

medidas del proceso

medidas internas

medidas externas

medidas de la calidad en

el uso

contextosde uso

Calidad del

proceso

Atributos de calidad

interna

Atributos de calidad externa

La calidad en el ciclo de vidaLa calidad en el ciclo de vida

Calidad del Software José Luis Fuertes 77

Calidad del SoftwareCalidad del SoftwareModelo de Calidad ISO/IEC 9126Modelo de Calidad ISO/IEC 9126--11

La calidad en el ciclo de vidaLa calidad en el ciclo de vida

Necesidades de calidad

Calidad en el uso

Requisitos de calidad externa

Calidad externa

Requisitos de calidad

interna

Calidad interna

contribuyeen especificar

contribuyeen especificar

indica

indica

uso y realimentación

validación

verificación

Page 14: Calidad Del Software

14

Calidad del Software José Luis Fuertes 78

Calidad del SoftwareCalidad del SoftwareModelo de Calidad ISO/IEC 9126Modelo de Calidad ISO/IEC 9126--11

Modelo de calidad externa e internaModelo de calidad externa e interna

Calidad externa e interna

Funcionalidad Fiabilidad Usabilidad Eficiencia Mantenibilidad Portabilidad

AdecuaciónPrecisión

InteroperatividadSeguridad

MadurezTolerancia a fallos

Recuperación

ComprensibilidadAprendizajeOperatividad

Atractivo

Comportamiento temporal

Uso de recursos

AnalizableModificableEstabilidad

Fácil de probar

AdaptabilidadInstalable

Co-existenciaReemplazabilidad

Calidad del Software José Luis Fuertes 79

Calidad del SoftwareCalidad del SoftwareModelo de Calidad ISO/IEC 9126Modelo de Calidad ISO/IEC 9126--11

Modelo de calidad en el usoModelo de calidad en el uso

Calidad en el uso

Efectividad Productividad Seguridad Satisfacción

Calidad del Software José Luis Fuertes 80

Mejora del Proceso Software Mejora del Proceso Software AntecendentesAntecendentes

El proceso softwareEl proceso softwareSecuencia de pasos necesarios para desarrollar softwareSecuencia de pasos necesarios para desarrollar softwareEstablece el marco de trabajo tEstablece el marco de trabajo téécnico y de gesticnico y de gestióón para n para aplicar los maplicar los méétodos, herramientas y el personal a la tarea todos, herramientas y el personal a la tarea de la construccide la construccióón de programasn de programas

Calidad del Software José Luis Fuertes 81

Mejora del Proceso Software Mejora del Proceso Software AntecendentesAntecendentes

Mejora del proceso softwareMejora del proceso softwareMonitorizar, medir y revisar el rendimiento del proceso Monitorizar, medir y revisar el rendimiento del proceso estestáándar al ser aplicado sobre proyectos individualesndar al ser aplicado sobre proyectos individualesTodo el personal implicado en el proceso software debe Todo el personal implicado en el proceso software debe participar en las actividades de mejoraparticipar en las actividades de mejoraEs primordial fijar y perseguir objetivos cuantitativos y Es primordial fijar y perseguir objetivos cuantitativos y medibles para mejorar el proceso, dirigiendo estos medibles para mejorar el proceso, dirigiendo estos objetivos a perfeccionar la calidad del productoobjetivos a perfeccionar la calidad del productoDebe establecerse un programa de mejora del proceso que Debe establecerse un programa de mejora del proceso que impulse a los desarrolladores a mejorar su propio proceso impulse a los desarrolladores a mejorar su propio proceso de trabajo y a participar en las mejoras de sus compade trabajo y a participar en las mejoras de sus compaññeroseros

Calidad del Software José Luis Fuertes 82

Mejora del Proceso Software Mejora del Proceso Software AntecendentesAntecendentes

Carnegie Carnegie MellonMellon UniversityUniversity (CMU)(CMU)Software Software EngineeringEngineering InstituteInstitute (SEI)(SEI)

CapabilityCapability MaturityMaturity ModelModel (1991)(1991)Establecer programas de mejora del proceso softwareEstablecer programas de mejora del proceso softwareIndica los objetivos de las medidas a usar en cada nivelIndica los objetivos de las medidas a usar en cada nivel

Personal Software Personal Software ProcessProcess (1993)(1993)Conseguir mejores Ingenieros del SoftwareConseguir mejores Ingenieros del SoftwareIncluye algunas medidas bIncluye algunas medidas báásicas y del procesosicas y del proceso

Calidad del Software José Luis Fuertes 83

Una forma de discriminar entre niveles de madurez Una forma de discriminar entre niveles de madurez del proceso es la habilidad de los desarrolladores y del proceso es la habilidad de los desarrolladores y gestores para ver y entender qugestores para ver y entender quéé es lo que ocurre es lo que ocurre durante todo el proceso de desarrollodurante todo el proceso de desarrollo

En el nivel inferior de madurez, no se comprende ni el En el nivel inferior de madurez, no se comprende ni el proceso, pero conforme crece la madurez, se comprende proceso, pero conforme crece la madurez, se comprende y se puede definir mejory se puede definir mejorTanto las medidas como la habilidad para ver y entender Tanto las medidas como la habilidad para ver y entender estestáán n ííntimamente relacionadas, puesto que un ntimamente relacionadas, puesto que un desarrollador puede medir sdesarrollador puede medir sóólo lo que resulta visible en lo lo que resulta visible en un proceso y las medidas ayudan a incrementar esa un proceso y las medidas ayudan a incrementar esa visibilidadvisibilidad

Mejora del Proceso Software Mejora del Proceso Software CMMCMM

Page 15: Calidad Del Software

15

Calidad del Software José Luis Fuertes 84

El CMM puede servir como una guEl CMM puede servir como una guíía para a para determinar qudeterminar quéé medir primero y cmedir primero y cóómo planear un mo planear un plan de medidas comprensivo y adecuadoplan de medidas comprensivo y adecuadoTipos de medidas por nivel del CMM:Tipos de medidas por nivel del CMM:

Mejora del Proceso Software Mejora del Proceso Software CMMCMM

Optimización dinámica y mejora durante el proyecto

Los procesos se retroalimentan con las mejoras5. Optimizado:

Definición, cuantificación y control de los subprocesos y los elementosSe miden los procesos4. Gestionable:

Definición y cuantificación de los procesos y productos intermedios

Los procesos se definen y se institucionalizan3. Definido:

Seguimiento y control del proyectoLos procesos dependen de los individuos2. Repetible:

Establecer las bases para planear y estimarAd hoc, caótico1. Inicial:

Objetivo de las MedidasCaracterísticasNivel de Madurez

Calidad del Software José Luis Fuertes 85

El PSP es un proceso de perfeccionamiento El PSP es un proceso de perfeccionamiento disediseññado para ayudar a controlar, gestionar y ado para ayudar a controlar, gestionar y mejorar la forma de trabajarmejorar la forma de trabajarMarco de trabajo estructurado con formularios, Marco de trabajo estructurado con formularios, guguíías y procedimientos para desarrollar softwareas y procedimientos para desarrollar softwarePSP proporciona los datos histPSP proporciona los datos históóricos necesarios para ricos necesarios para mejorar el procesomejorar el procesoPrincipal objetivo: conseguir mejores ingenieros del Principal objetivo: conseguir mejores ingenieros del softwaresoftware

Mejora del Proceso Software Mejora del Proceso Software PSPPSP

Calidad del Software José Luis Fuertes 86

Permite comprender por quPermite comprender por quéé se han cometido se han cometido errores y cuerrores y cuáál es la mejor forma de encontrarlosl es la mejor forma de encontrarlosSe puede determinar la calidad de las revisiones, los Se puede determinar la calidad de las revisiones, los tipos de errores no detectados y los mtipos de errores no detectados y los méétodos mtodos máás s efectivos para cada ingenieroefectivos para cada ingeniero

Mejora del Proceso Software Mejora del Proceso Software PSPPSP

Calidad del Software José Luis Fuertes 87

El PSP estEl PSP estáá dividido en cuatro fases:dividido en cuatro fases:PSP0, PSP1, PSP2 y PSP3PSP0, PSP1, PSP2 y PSP3Fases intermedias de mejora: PSP0.1, PSP1.1 y PSP2.1Fases intermedias de mejora: PSP0.1, PSP1.1 y PSP2.1

Mejora del Proceso Software Mejora del Proceso Software PSPPSP

PSP0 Proceso actual

Registro del tiempo Registro de defectos

Estándar de tipos de defectos

PSP0.1 Estándar de codificación

Medidas del tamaño Propuesta de mejora del proceso

PSP1 Estimación del tamaño

Informe de pruebas

PSP1.1 Planificación de tareas

Planificación de tiempos

PSP2 Revisiones del código Revisiones del diseño

PSP2.1 Plantillas de diseño

PSP3 Desarrollo cíclico

Proceso personal

básico

Proceso personal de

planificación

Gestión personal

de calidad

Proceso personal

cíclico

ConclusionesConclusiones

Calidad del Software José Luis Fuertes 89

La calidad del software puede verse como un La calidad del software puede verse como un problema econproblema econóómicomico

Aunque es fundamental obtener un software de calidad, Aunque es fundamental obtener un software de calidad, cada medida, cada test, cada revisicada medida, cada test, cada revisióónn…… consume tiempo consume tiempo y dineroy dinero

Si se desea un software de alta calidad, hay que Si se desea un software de alta calidad, hay que asegurarse de que cada una de sus partes tenga alta asegurarse de que cada una de sus partes tenga alta calidadcalidad

ConclusionesConclusiones

Page 16: Calidad Del Software

16

Calidad del Software José Luis Fuertes 90

Razones para la lentitud en la adopciRazones para la lentitud en la adopcióón del uso de n del uso de medidas para evaluar la calidad del software:medidas para evaluar la calidad del software:

No existen medidas de la calidad del software No existen medidas de la calidad del software universalesuniversales

Existen algunas medidas Existen algunas medidas úútiles para ciertos entornostiles para ciertos entornosExistirExistiráán medidas de calidad ampliamente aceptadas, cuando n medidas de calidad ampliamente aceptadas, cuando madure la investigacimadure la investigacióón en medidas de calidad del software n en medidas de calidad del software

Incluso sabiendo quIncluso sabiendo quéé medidas usar, no es fmedidas usar, no es fáácil obtener cil obtener los datoslos datosIncluso con los datos, no es obvio cIncluso con los datos, no es obvio cóómo interpretar y mo interpretar y usar los nusar los núúmerosmerosLa gente se resiste a que se mida la calidad de su trabajoLa gente se resiste a que se mida la calidad de su trabajo

ConclusionesConclusiones

Calidad del Software José Luis Fuertes 91

ISO/IEC 9126ISO/IEC 9126--1: Modelo de Calidad del Software1: Modelo de Calidad del SoftwareLos estLos estáándares, por sndares, por síí solos, no son suficientessolos, no son suficientesSe necesita una disciplina para aplicarlosSe necesita una disciplina para aplicarlosSi no se comprende el proceso del negocio, no resultarSi no se comprende el proceso del negocio, no resultarááúútil aplicar ningtil aplicar ningúún mn méétodo de evaluacitodo de evaluacióón de la calidad ni n de la calidad ni de mejora del procesode mejora del proceso

La medida de los atributos del software puede La medida de los atributos del software puede usarse para predecir o medir indirectamente la usarse para predecir o medir indirectamente la calidad del softwarecalidad del software

ConclusionesConclusiones