Vous êtes sur la page 1sur 22

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Mtricas del software

Calidad en el Desarrollo de Software


Mtricas del software You cant control what you cant measure Pablo R. Fillottrani Tom DeMarco
Depto. Ciencias e Ingeniera de la Computacin Universidad Nacional del Sur

Segundo Cuatrimestre 2007

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Mtricas del software - resumen

Mtricas para el presupuesto

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos objetivo: maximizar la cantidad de funciones entregables por unidad de costo, considerando el costo total (todo el tiempo de vida) del sistema costo total del sistema: costo de desarrollo + costo de produccin + costo de mantenimiento

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Pasos a seguir

Modelizacin del problema

pasos a seguir:
1

formular un slo indicador de medida de xito vs el objetivo. BPB: Bang per Buck (impacto por peso) coleccionar datos en una muestra de proyectos para establecer estndares de performance de BPB buscar y evaluar predictores para aquellas partes de medida del BPB que inuyen a futuro motivar al personal para mejorar el BPB. El personal debe estar informado de cmo se calcula el BPB publicar el BPB proyectado durante el proyecto, y el real luego de 6 meses de la implementacin

un modelo consiste de una particin, junto con un registro de las interfaces entre las piezas de la particin se necesitan tres perspectivas para especicar la mayora de los sistemas:
modelo funcional: visin particionada de lo que hace el sistema modelo de datos retenidos: visin particionada de lo que el sistema recuerda modelo de comportamiento: visin de los diferentes estados de comportamiento que caracterizan al sistema

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Mtricas provenientes de primitivas Correccin de indicadores Clculo del bang

Mtricas de especicacin
la confeccin de un modelo formal provee tres benecios:
el modelo de especicacin es pblico. Puede ser corregido y renado por miembros del proyecto o usuario el modelo de especicacin tiene caractersticas medibles que pueden ser relacionadas con performance observada el modelo de especicacin es terminado en forma temprana durante el proyecto, provee oportunidad para corregir las estimaciones

Componentes primitivas de un modelo


componente primitiva: no se descompone en componentes subordinadas dependiendo de lo que se particione, se obtienen seis clases de primitivas: Elemento DFD DD diag. objetos diag. objetos diag. estados diag. estados Particiona requerimientos del sistema datos del sistema datos retenidos datos retenidos caractersticas de control caractersticas de control Produce primitivas primitivas funcionales datos elementales objetos relaciones estados transiciones

el modelo de especicacin describe los requerimientos en s mismo, no la forma de satisfacerlos. un anlisis cuantitativo del modelo provee una medida de las funciones

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Mtricas provenientes de primitivas Correccin de indicadores Clculo del bang

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Mtricas provenientes de primitivas Correccin de indicadores Clculo del bang

Mtricas a partir de las primitivas

Mtricas a partir de las primitivas

analizar las primitivas provee mtricas bsicas para medir el Bang:


PF : nmero de primitivas funcionales automticas PFM: nmero de primitivas funcionales manuales modicables DE: nmero de datos elementales dentro del sistema automtico DEI: nmero de datos elementales de input DEO: nmero de datos elementales de output DER: nmero de datos elementales retenidos

mtricas bsicas para medir el Bang (cont.):


OB: nmero de objetos retenidos RE: nmero de relaciones en el modelo de datos retenido ST : nmero de estados en el modelo de comportamiento TR: nmero de transiciones en el modelo de comportamiento TCi : nmero de data tokens en la primitiva i REi : nmero de relaciones que involucran al objeto i

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Mtricas provenientes de primitivas Correccin de indicadores Clculo del bang

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Mtricas provenientes de primitivas Correccin de indicadores Clculo del bang

Formulacin de una teora de costos

Indicador principal

bang tentativo bang = PF (FactorDePesoParaPF )+ DE (FactorDePesoParaDE )+. . . para caracterizar el bang se elige uno de los indicadores como el principal y se usan los otros para modicarlo en la mayora de los sistemas administrativos PF es el principal indicador hay sistemas altamente orientados a funciones y otros a datos, dependiendo de esto es el indicador que se deber considerar como principal

se pueden analizar dos razones en funcin de PF (primitivas funcionales) y RE (relaciones entre objetos): RE /PF < 0,7 sistema orientado a funciones RE /PF > 1,5 sistema orientado a datos la razn DEO /PF es una medida de cunto el sistema est dedicado a clculos o a administracin de datos

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Mtricas provenientes de primitivas Correccin de indicadores Clculo del bang

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Mtricas provenientes de primitivas Correccin de indicadores Clculo del bang

Clasicacin de proyectos

Particiones uniformes

para determinar el criterio de hasta donde se debe particionar se puede usar TCavg = TCi /PF

regla de particin uniforme: dejar una componente como primitiva slo si no es posible una particin o si la nueva particin no reduce el TCavg

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Mtricas provenientes de primitivas Correccin de indicadores Clculo del bang

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Mtricas provenientes de primitivas Correccin de indicadores Clculo del bang

Correccin de indicadores I

Correccin de indicadores II

las primitivas se pueden clasicar de acuerdo a su funcin en:


separacin: dividen los datos de input merge: combinan los datos de input direccin de datos: dirigen datos de acuerdo a una variable de control actualizacin simple: actualiza uno o mas datos en almacenamientos administracin de almacenamientos: analiza datos almacenados y acta basado en el estado de los datos

clasicacin de primitivas (cont.)


edicin: evala nuevos datos en frontera hombre-mquina vericacin: chequea e informa inconsistencias manipulacin de textos: administra textos sincronizacin: decide cundo actuar o decide por otras generacin de output: formatea nuevos ujos de datos (no tabulares) display: construye outputs tabulares (2 dimensiones) aritmticas: realiza clculos inicializacin: setea valores para datos almacenados

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Mtricas provenientes de primitivas Correccin de indicadores Clculo del bang

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Mtricas provenientes de primitivas Correccin de indicadores Clculo del bang

Correccin de indicadores III

Clculo del bang


el bang es un indicador cuantitativo de las funciones tiles netas desde el punto de vista del usuario. Independiente de la implementacion en sistemas hbridos se aconseja manejar dos bangs, el funcional y el de datos. No se puede generalizar una frmula que los relacione objetivos de calcular el bang:
se usa como un predictor fuerte y anticipado del esfuerzo se usa para calcular eciencia productiva: BPB

clasicacin de primitivas (cont.)


computacin: clculos matemticos complejos administracin de dispositivos: controla dispositivos

los factores dependen del contexto:


tipos de sistemas herramientas, lenguajes de programacin

en los sistemas orientados a datos el peso depende de los REi de los objetos existen factores de correccin en funcin de los REi

se deben usar otras mtricas para otras actividades, como por ejemplo conversin de la base de datos, etc

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Mtricas provenientes de primitivas Correccin de indicadores Clculo del bang

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Mtricas provenientes de primitivas Correccin de indicadores Clculo del bang

Clculo del bang funcional

Clculo del bang orientado a datos

bang ::= 0 para cada primitiva funcional f[i] del modelo TC[i] ::= sumatoria de data token de f[i] PFC[i] ::= correccin(TC[i] clasificar f[i] buscar PesoCorr[i] en tabla de correccin y de acuerdo al tipo de primitiva bang ::= bang + PFC[i] * PesoCorr[i]

bang ::= 0 para cada objeto del modelo de datos calcular RE[i] OBC[i] ::= correccin(RE[i]) bang ::= bang + OBC[i]

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Tamao del software

Medicin del tamao

el tamao del software puede ser descripto con tres atributos: en software, el tamao no es lo que importa ya que en general no considera
esfuerzo: no tiene en cuenta redundancia y complejidad productividad: no consideran funcionalidad costo: no contabiliza reuso longitud: mide tamao fsico del producto funcionalidad: mide las funciones provistas por el producto complejidad: puede ser interpretada de distintas maneras
del problema a resolver del algoritmo utilizado, eciencia del software estructural: mide la estructura del SW implementada cognitiva: esfuerzo requerido para entender el SW

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Consideraciones

Productos

hay consenso en medir longitud de programas, pero no de especicaciones existen trabajos para medir funcionalidad de especicaciones existen pocos avances en medicin de complejidad

los tres productos mas importantes cuyo tamao sera importante medir son:
especicaciones diseo cdigo

la medida mas comnmente usada son las lneas de cdigo: LOC se debe tener en cuenta: lneas en blanco, lneas de comentarios, declaracin de datos y lneas que contienen varias instrucciones

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Lneas de cdigo

Lneas de cdigo

Conte, Dunsmore & Shen: cualquier lnea de texto de programa que no es comentario o lnea en blanco, independientemente del nmero de sentencias o fragmentos de sentencias en la lnea Hewlett-Packard: una sentencia de cdigo fuente no comentada; cualquier sentencia excepto comentarios o lneas en blanco NCLOC - CLOC: non commented line of code - commented line of code ELOC: effective line of code longitud total LOC = NCLOC + CLOC

es posible distinguir entre la cantidad de cdigo entregado (DSI Delivered Source instructions) y la cantidad de cdigo desarrollado formula de Halstead: volumen = longitud log2 (vocabulario) otro enfoque es medir longitud de acuerdo a:
nmero de bytes de almacenamiento requerido para el texto del programa nmero de caracteres (CHAR) en el texto del programa

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Lneas de cdigo

Longitud de especicaciones

en programacin visual, entornos de ventanas, orientacin a objetos lenguajes de cuarta generacin, cambian las nociones de tamao surgen dos nuevos objetivos de medicin:
cmo se tienen en cuenta objetos no textuales? cmo medimos componentes construidas externamente?

las especicaciones y diseos consisten de textos y diagramas se deben medir diferentes objetos atmicos los objetos atmicos para DFD: procesos, entidades externas, ujos de datos, almacenamientos. las entidades atmicas para especicaciones algebraicas son clases, funciones, operaciones y axiomas intuitivamente: se predice la longitud para tratar de relacionar la longitud de productos de etapas posteriores con la longitud de productos ya construidos

Peeger: contar objetos y mtodos conduce a estimaciones mas precisas

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Longitud de especicaciones

Reuso

razn de expansin : tamao de diseo / tamao de cdigo LOC = a i = 1n Si , donde Si es el tamao del mdulo i Walston & Felix:
D documentacin medida en pginas L longitud del programa D = 49L1,01

el reuso mejora la productividad y la calidad. Es difcil de denir formalmente grados de reuso publicado por NASA/Goddards Software Engineering Lab
reuso verbatim: reusado sin cambio ligeramente modicado: se reus modicando menos del 25 % LOC extensamente modicado: se reus modicando ms del 25 % LOC nuevo: ninguna lnea proviene de un componente previo

para estimaciones precisas, se deben recolectar datos para entornos especcos

razn de reuso r = LineasReusadas/LOC

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Funcionalidad

Puntos de funcin de Albrecht

existen tres enfoques para medir funcionalidad:


puntos de funcin de Albrecht COCOMO II peso de especicacin de De Marco

los puntos de funcin (PFA) intentan medir la cantidad de funcionalidad de un sistema, descripta en la especicacin pasos:
1

identicar
inputs externos outputs externos consultas archivos externos archivos internos

idea intuitiva: si un programa P es la implementacin de la especicacin S, entonces P y S deberan tener la misma funcionalidad

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Puntos de funcin de Albrecht


pasos (cont.)
1

Puntos de funcin de Albrecht - peso de cada categora de items

determinar complejidad subjetiva a cada tem: simple, media, compleja y asignarle un peso segn la tabla calcular PFNA:
15

Item inputs externos outputs externos consultas archivos externos archivos internos

PFNA =
3

i =1

#|tipoi | Pesoi
14

calcular el factor de complejidad tcnico (FCT ): FCT = 0,65 + 0,01

i =1

Fi

donde Fi es la valoracin de 14 posibles factores de complejidad en el rango de 0 a 5. El resultado es tal que 0, 65 FCT 1,35 calcular PFA PFA = PFNA FCT
Pablo R. Fillottrani Calidad en el Desarrollo de Software

Factor de Peso simple medio complejo 3 4 6 4 5 7 3 4 6 7 10 15 5 7 10

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Componentes del Factor de Complejidad Tcnico

Evaluacin de los puntos de funcin de Albrecht

F1 conabilidad de backup y recuperacin F2 comunicacion de datos F3 funciones distribuidas F4 performance F5 dependencia de la conguracin F6 entrada de datos online F7 facilidad de operacin

F8 actualizacin online F9 interface compleja F1 0 procesamiento complejo F1 1 reusabilidad F1 2 facilidad de instalacin F1 3 sitios mltiples F1 4 facilidad de cambio

los puntos de funcin forman una base para la estimacin del esfuerzo Albrecht los propone como medida de tamao independiente de la tecnologa presentan varios problemas:
subjetividad en FCT, variacin del 35 % contar las cosas 2 veces valores no intuitivos: Fi = 3 FCT = 1 pero Fi = 3 FCT = 1,07 problemas con exactitud: el FCT no mejora signicativamente la estimacin de recursos

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Evaluacin de los puntos de funcin de Albrecht

COCOMO II

problems con PFA (cont)


no se puede usar anticipadamente: requiere la especicacin completa problemas con cambios de requerimientos: variaciones de 400 % a 2000 % luego de implementacin problemas con dominios de aplicacin: funciona bien para sistemas de informacin administrativos, no en sistemas de tiempo real o en aplicaciones cientcas problemas de dependencia de tecnologa: no es independiente de los mtodos de anlisis y diseo usados

el modelo original de COCOMO desarrollado por Boehm result muy exitoso, sin embargo su aplicacin no es prctica para entornos modernos de desarrollo de este modo, surge COCOMO II, cuyos objetivos son:
desarrollar modelos de costos y de estimacin acordes a las prcticas actuales desarrollar bases de datos de costos y herramientas que soporten una mejora continua del modelo proveer un framework analtico cuantitativo, y un conjunto de herramientas y tcnicas para evaluar los efectos de las mejoras en los costos de ciclos de vida y en las planicaciones

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Modelos del COCOMO II

Mtricas bsicas de COCOMO II

COCOMO II est compuesto por tres modelos:


modelo de la aplicacin: basado en puntos objeto modelo de diseo temprano: usado para obtener estimaciones de costo y duracin antes de nalizar el diseo de la arquitectura modelo post-arquitectura: el modelo ms detallado, con nuevos conductores de costos, y nuevas ecuaciones

COCOMO II provee un modelo para estimar costos en base a:


KLOC puntos objeto (PO) puntos funcin (PF )

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Clculo de puntos objeto

Clculo de puntos objeto

pasos para el clculo de PO


1 2 Vistas de pantalla <3 3-7 >7

pasos para el clculo de PO (cont.)


3

estimar el nmero de pantallas, reportes y componentes 3GL clasicar la complejidad de los mismos en simple, medio o difcil
total < 4 (<2 servidor, <2 cliente) simple simple medio fuentes de datos total < 8 (2-3 servidor, 3-5 cliente) simple medio difcil total > 7 ( >3 servidor, >5 cliente) medio difcil difcil Secciones de reporte 0-1 2-3 >3 total < 4 (<2 servidor, <2 cliente) simple simple medio fuentes de datos total < 8 (2-3 servidor, 3-5 cliente) simple medio difcil total > 7 ( >3 servidor, >5 cliente) medio difcil difcil

pesar los objetos de acuerdo a su complejidad Objeto simple medio difcil pantalla 1 2 3 reporte 2 5 8 componente 3GL 10 determinar PO mediante la sumatoria de los pesos de todos los objetos encontrados

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Clculo de puntos objeto

Clculo de puntos funcin

pasos para el clculo de PO (cont.)


5

estimar el porcentaje de reuso que se espera y calcular los nuevos puntos objeto (NPO) NPO ::= PO (100 %reuso)/100

pasos para el clculo de PF :


1

contar
inputs externos (IE) outputs externos (OE) consultas externas (CE) archivos internos (AI) archivos de interface externos (AE)

NPO se utiliza a continuacin en COCOMO II para estimar el esfuerzo necesario para el desarrollo del proyecto, teniendo en cuenta la productividad del personal y de las herramientas CASE a utilizar

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Clculo de puntos funcin

Clculo de puntos funcin

pasos para el clculo de PF (cont.):


2

pasos para el clculo de PF (cont.):


3

clasicar los objetos de acuerdo a su complejidad en simple, medio, o complejo


1-19 simple simple medio datos 20-50 simple medio difcil para IE archivos 0-1 2-3 >3 >50 medio difcil difcil 1-4 simple simple medio para OE y CE archivos 0-1 2-3 >3 datos 5-15 simple medio difcil >15 medio difcil difcil 1-5 simple simple medio datos 5-20 simple medio difcil > 20 medio difcil difcil

aplicar pesos de complejidad segn la tabla puntos funcin inputs externos outputs externos consultas externas archivos internos archivos externos simple 3 4 3 7 5 complejidad medio complejo 4 6 5 7 4 6 10 15 7 10

para AI y AE registros 1 2-5 >5

calcular los puntos de funcin no ajustados (PFNA), sumando los puntos de funcin por su peso de complejidad

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Clculo de puntos funcin

Complejidad

pasos para el clculo de PF (cont.):


5

convertir PFNA en lneas de cdigo estimadas (SLOC) de acuerdo a la siguiente tabla:


Lenguaje Ada Basic (comp.) Basic (int.) C C++ Cobol 85 Fortran 77 SLOC por PFNA 71 91 128 128 29 91 105 Lenguaje Java Lisp Modula 2 Pascal Prolog Generador reportes Planilla de clculo SLOC por PFNA 53 64 80 91 64 80 6

los puntos de funcin de Albrecht miden el problema. Un problema puede tener varias soluciones de distinta complejidad complejidad de la solucin complejidad del problema complejidad del problema: cantidad de recursos requeridos para una solucin ptima del problema complejidad de la solucin: cantidad de recursos necesarios para implementar una solucin particular la complejidad de la solucin generalmente se mide en dos aspectos: tiempo y espacio

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Complejidad en tiempo y en espacio

Ejemplo
problema: encontrar la posicin de un elemento en un arreglo ordenado

el tiempo mide el tiempo de la computadora necesario para el problema o para la solucin particular el espacio mide la memoria de la computadora extra (aparte de los datos de entrada) necesario para el problema o para la solucin particular para medir la complejidad de un problema, siempre se tiene en cuenta un algoritmo optimal que lo soluciona

solucin 1: bsqueda secuencial, con complejidad en tiempo de n comparaciones y de espacio 1 solucin 2: bsqueda binaria, con complejidad en tiempo de log2 (n) comparaciones y de espacion de 1 se puede demostrar que el problema tiene complejidad en tiempo de log2 (n) y en espacio de 1. Por lo que bsqueda binaria es optimal en tiempo y espacio, pero bsqueda secuencial es optimal slo en espacio. siempre se mide el peor caso para todas las instancias de tamao n, dada la imposibilidad prctica de medir en cada instancia en particular

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Eciencia

Caractersticas de medir eciencia

el medir tiempo de ejecucin es una medida de eciencia externa. Depende de factores externos. idea intuitiva:
identicar un pequeo nmero de operaciones aritmticas primitivas relevantes del algoritmo. Ejemplo: en bsquedas / ordenamiento: comparaciones usando esa informacin medir en trminos del nmero de operaciones requeridas para un input dado

se mide el producto y no el proceso no es dependiente de la mquina o de la implementacin es especca de un input con respecto al algoritmo en la mayora de los problemas los inputs pueden caracterizarse por un solo parmetro de tamao n ejemplo: algoritmo de bsqueda. Input: lista de elementos e tem a buscar. La eciencia del algoritmo depende de la longitud de la lista

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Notacin asinttica

Objetivos

mide el nmero de operaciones primitivas requeridas para cualquier algoritmo es f (n). Ejemplo: log2 (n) , n2 , n,... idea: denir una relacin emprica: ms eciente no es claro que pares estn en la relacin. Ejemplo: n2 >??100 n para precisarlo se usa un formalismo matemtico notacin O (), el orden de una funcin

no interesa conocer los valores absolutos de las funciones. permitir una caracterizacin simple de la eciencia de un algoritmo y comparar las performances relativas de distintos algoritmos. independizar el anlisis de los algoritmos de condiciones especcas de implementacin: lenguaje de programacin, compilador, equipo, etc.

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Notacin O ()

se aplica a funciones de tiempo de ejecucin o de espacio de memoria de algoritmos en base a la longitud de la entrada: f (n) : N R + . se denomina asinttica porque analiza el comportamiento de las funciones en el lmite, es decir su tasa de crecimiento.

O (g (n))

= {f (n) : c R + , n0 N , tal que


f (n) cg (n) para todo n n0 }

determina una cota superior en la tasa de crecimiento de una funcin, dentro de un factor constante. ejemplos: 6n3 O (n3 ) ya que se cumple la denicin con c = 6, n0 = 1. 3 log n O (n) ya que se cumple la denicin con c = 1, n0 = 4.

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Notacin ()
Ejemplos: 300n2 O (n2 ) 5n 4n + 10n + 39 O (n ) logb n O (loga n), a, b 2n O (n!) 500000n O (0,00001n2 ) 0,000001n2 O (500000n) n! O (2n ) determina una cota inferior en la tasa de crecimiento de una funcin, dentro de un factor constante. ejemplos: 6n3 (n3 ) ya que se cumple la denicin con c = 1, n0 = 1 1/3n (log n) ya que se cumple la denicin con c = 1/3, n0 = 1.
4 3 2 4

(g (n)) = {f (n) : c R + , n0 N , tal que


f (n) cg (n) para todo n n0 }

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Clasicacin de problemas segn su complejidad

Ejemplos: 3n5 + 4n3 8n2 + 10n (n4 ) logb n (loga n), a, b n! (2n ) 0,00001n2 (50000n) 50000n (0,00001n ) 2n (n!)
2

de acuerdo al estado de conocimiento de sus algoritmos


cerrado abierto

de acuerdo a los recursos indispensables para su solucin


tratables intratables

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

un problema se dice cerrado si se han encontrado algoritmos que lo resuelven y se ha demostrado que esos algoritmos son ptimos en cuanto al O () del tiempo de ejecucin BSQUEDA en un arreglo ordenado y ORDENAMIENTO de un arreglo son problemas cerrados RBOL DE CUBRIMIENTO MINIMAL para un grafo es un problema abierto, dado que su cota inferior demostrada es de (a), mientras que el mejor algoritmo conocido no es lineal (pero mejor que (a log n))

para cerrar un problema se puede hacer:


encontrar un algoritmo asintticamente mejor que los que se conocen. demostar una cota asintticamente superior de las que se conocen.

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Complejidad de un problema

en general, los distintos grados de tratabilidad son muy subjetivos (varan mucho de acuerdo al modelo computacional, los recursos disponibles, las variantes de las estructuras de datos, etc.) por lo tanto un objetivo primario del estudio de la complejidad es denir cules problemas son tratables, y cules no. Recin despus de esto se pueden considerar distintos grados de tratabilidad o intratabilidad por ejemplo, se puede armar que la mayora de los problemas vistos en la materia son tratables: o sea tienen solucin para instancias grandes, y una mejora algortmica o una mejora en el HW produce una gran ampliacin en el conjunto de instancias que se pueden resolver en cambio, hay problemas que no son tratables: el problema de las torres de Hanoi, o el problema del viajante, en la prctica slo se resuelven para instancias pequeas.

Supongamos que para solucionar todas las instancias de un problema particular un algoritmo requiere f (n) clculos Decimos que f(n) asintticamente ptima si para todo algoritmo con complejidad g que soluciona el problema, f es O (g ) complejidad de un problema: es el orden del algoritmo asintticamente ptimo para la solucin del problema un problema que tiene una solucin acotada polinmicamente se dice tratable o factible

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Estructuras

Estructura del ujo de control

la estructura del producto es importante no solo para el desarrollo sino tambin para el mantenimiento podemos dividir la estructura en:
estructura del ujo de control: apunta a la secuencia en las cuales se ejecutan las instrucciones estructura del ujo de datos: sigue el rastro de los items de datos, cmo son creados o manejados por el programa estructura de datos: la organizacin de los datos en s misma, independiente del programa

las mediciones de ujo de control son usualmente modeladas a partir de grafos dirigidos, llamados grafos de control de ujo (owgraphs) el grafo est compuesto por:
nodos: corresponden a las sentencias del programa arcos: muestran el ujo de control de una sentencia a otra

dado un programa A, llamamos interpretacin razonable F (A) al grafo de control de ujo de A no siempre es obvio cmo mapear A en F (A)

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Ejemplo grafo de control de ujo

Medidas de un grafo de control de ujo

si m es una medida estructural denida en trminos del modelo F (A), y si el programa A es estructuralmente mas complejo que B, entonces m(A) >> m(B se trata de introducir un enfoque independiente de cualquier visin de programacin estructurada la tcnica permite mostrar que cualquier programa tiene una nica descomposicin estructural denida por componentes primitivas se utilizan conceptos de grafos

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Mtricas orientadas a objetos

Mtricas CK de objetos y relaciones entre objetos

mtricas propuestas por Shyam R. Chidamber y Chris F. Kemerer


denicin de objetos y relaciones entre objetos atributos y propiedades de objetos comunicacin entre objetos

mtodos ponderados por clase (WMC weighted methods per class) profundidad del rbol de herencia (DIN depth of inheritance) nmero de descendientes (NOC number of children)

mtricas propuestas por Mark Lorenz y Jeff Kidd


de tamao: nmero de atributos y mtodos de herencia: reuso de los mtodos en la jerarqua internas: relacionadas con la cohesin de la clase externas: relacionadas con el acoplamiento entre clases

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Mtodos ponderados por clase (WMC)

Profundidad del rbol de herencia (DIN)

WMC =

ci

esa longitud mxima desde el nodo hasta la raz del rbol de herencia cuanto ms profunda est una clase en una jerarqua, mayor nmero de mtodos hereda, haciendo ms complejo predecir su comportamiento una jerarqua de clases profunda lleva tambin a una mayor complejidad de diseo ya que involucra ms clases por otro lado, los valores grandes de esta medida implican que se pueden reutilizar muchos mtodos

, donde ci es una medida de complejidad del mtodo i el nmero de mtodos y su complejidad es un predictor de cunto tiempo y esfuerzo es necesario para desarrollar y mantener la clase cuanto ms mtodos mayor impacto en los hijos (herencia) clases con ms mtodos son mas especcas, limitando el reuso

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Nmero de subclases (NOC)

Mtricas CK de atributos y propiedades de objetos

denida como el nmero de subclases inmedidatas a medida que crece el nmero de descendientes se incrementa la reutilizacin puede darse una mayor posibilidad de una incorrecta abstraccin y mayor complejidad de la clase padre un gran nmero de hijos puede requerir mayor testing de los mtodos de la clase un gran nmero de hijos tambin es un indicador de la inuencia potencial de una clase en el diseo respuesta para una clase (RFC response for a class) falta de cohesin en los mtodos (LCO lack of cohesion)

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Respuesta para una clase (RFC)

Falta de cohesin en los mtodos (LCO)

es el nmero de mtodos que pueden ser invocados en respuesta a un mensaje enviado a un objeto de la clase un valor muy alto indica que la clase es compleja y probablemente altamente acoplada aumenta el esfuerzo de testeo y mantenimiento puede surgir el interrogante de si la clase est modelada correctamente

es el nmero de pares de mtodos cuya similitud es cero menos el nmero de pares de mtodos cuya similitud es distinta de cero. Si el valor es negativo, se asume cero similitud: si dos pares de mtodos acceden a uno o ms de los mismos atributos la cohesin de los mtodos dentro de una clase es deseable ya que promueve el encapsulamiento la falta de cohesin implica que una clase debiera dividirse en dos o ms clases

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Mtricas CK de comunicacin entre objetos

Acoplamiento entre objetos de clase(CBO)


es la cantidad de clases con las cuales est acoplada una clase est acoplada con otra si usa mtodos o variables de instancia de la otra

respuesta para una clase (RFC) acoplamiento entre objetos (CBO coupling between objects)

un valor alto disminuye el diseo modular y diculta el reuso el acoplamiento debe mantenerse mnimo para mejorar modularidad y encapsulamiento una medida de acoplamiento es til para determinar cuanto de complejo ser el diseo de testing cuanto ms acoplamiento presenta el diseo ms riguroso debe ser el testing

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Algunas mtricas LK

Tamao de una clase (CS)

tamao de clase (CS) nmero de operaciones redenidas en una clase (NOO) nmero de operaciones agregadas en una clase (NOA) ndice de especializacin (SI)

es el nmero total de mtodos (heredados + propios) ms el nmero total de atributos (heredados + propios) se puede dar mayor peso a atributos y mtodos pblicos y heredados un valor bajo indica mayor potencial de reuso

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Nmero de operaciones redenidas en una clase (NOO)

Nmero de operaciones agregadas en una clase (NOA)

un NOO elevado es ndice de no respeto a la abstraccin implcita en la superclase es decir, de una jerarqua frgil involucra mayor dicultad en el testing y mantenimiento

al crecer el NOA la clase se aleja de la abstraccin representada por la superclase tambin es ndice de una jerarqua frgil, que conlleva dicultades en testing y mantenimiento en general, al crecer el DIN el NOA debera disminuir

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Longitud Funcionalidad Complejidad Estructuras Mtricas orientadas a objetos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

ndice de especializacin (SI)

Medidas de atributos internos vs externos

la especializacin se da agregando, redeniendo o eliminando mtodos de la superclase se dene SI = (NOO nivel )/M donde nivel es el nivel de la clase en la jerarqua y M es el nmero total de mtodos en la clase valores elevados de SI indican baja conformidad con la abstraccin de la superclase

la medicin de atributos externos no es tan difundida como la de los internos la principal razn es que los atributos internos se consideran predictores razonables de aquellos externos y adems los internos estan disponibles antes para su medicin tambin, no es fcil la medicin de atributos externos la medicin cuidadosa de atributos externos requiere recursos extra que no todos los administradores de proyectos desean comprometer

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Medidas basadas en defectos

Medidas de usabilidad

la densidad de defectos del software se dene como la razn entre el nmero de defectos conocidos y el tamao del producto pero no existe consenso sobre lo que es un defecto algunos reemplazan el tamao del cdigo por el tiempo de ejecucin, resultando en tasa de defectos otra medida es la de desperdicios del sistema, denida como la razn entre el tiempo (o costo) de reparar defectos post-entrega sobre el tiempo (o costo) total del sistema

usabilidad es la medida en que el software es conveniente y prctico para usar (user-friendliness) una posible medida es la probabilidad de que el operador no experimente un problema en la interface del usuario el problema de esta medida es que requiere una recoleccin de datos intensiva y cuidadosa tambin se puede medir indirectamente contando manuales, buen uso de menues y grcos, mensajes de errores informados, invocaciones a funciones de ayuda e interfaces consistentes

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Mtricas para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos

Medidas de mantenibilidad

para cualquier producto, el tiempo medio para una reparacin (MTTR) se mide como el promedio que toma a un equipo de mantenimiento reparar el sistema este tiempo puede involucrar factores externos al producto, como tiempos administrativos m se ha estudiado que ciertas combinaciones de factores internos tienen ms probabilidad de generar errores

Pablo R. Fillottrani

Calidad en el Desarrollo de Software