Está en la página 1de 22

Mtricas para el presupuesto

Modelos y componentes primitivas


Mtricas de atributos internos
Mtricas de atributos externos
Calidad en el Desarrollo de Software
Mtricas del software
Pablo R. Fillottrani
Depto. Ciencias e Ingeniera de la Computacin
Universidad Nacional del Sur
Segundo Cuatrimestre 2007
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 del software
You cant control what you cant measure
Tom DeMarco
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 del software - resumen
1 Mtricas para el presupuesto
2 Modelos y componentes primitivas
3 Mtricas de atributos internos
4 Mtricas de atributos externos
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
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
Mtricas para el presupuesto
Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos
Pasos a seguir
pasos a seguir:
1
formular un slo indicador de medida de xito vs el objetivo. BPB:
Bang per Buck (impacto por peso)
2
coleccionar datos en una muestra de proyectos para establecer
estndares de performance de BPB
3
buscar y evaluar predictores para aquellas partes de medida del
BPB que inuyen a futuro
4
motivar al personal para mejorar el BPB. El personal debe estar
informado de cmo se calcula el BPB
5
publicar el BPB proyectado durante el proyecto, y el real luego de
6 meses de la implementacin
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
Modelizacin del problema
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
Mtricas para el presupuesto
Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos
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
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
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
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 Particiona Produce primitivas
DFD requerimientos del sistema primitivas funcionales
DD datos del sistema datos elementales
diag. objetos datos retenidos objetos
diag. objetos datos retenidos relaciones
diag. estados caractersticas de control estados
diag. estados caractersticas de control transiciones
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 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
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 a partir de las primitivas
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
TC
i
: nmero de data tokens en la primitiva i
RE
i
: nmero de relaciones que involucran al objeto i
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
Formulacin de una teora de costos
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
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
Indicador 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
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
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
Particiones uniformes
para determinar el criterio de hasta donde se debe particionar se
puede usar
TC
avg
=

i
TC
i
/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 TC
avg
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
Correccin de indicadores I
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
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
Correccin de indicadores II
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
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
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 RE
i
de los objetos
existen factores de correccin en funcin de los RE
i
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
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
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
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
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]
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
Clculo del bang orientado a datos
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
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
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
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
Medicin del tamao
el tamao del software puede ser descripto con tres atributos:
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
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
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
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
Productos
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
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
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
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
Lneas de cdigo
es posible distinguir entre la cantidad de cdigo entregado (DSI
Delivered Source instructions) y la cantidad de cdigo
desarrollado
formula de Halstead: volumen =longitud log
2
(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
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
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?
Peeger: contar objetos y mtodos conduce a estimaciones mas
precisas
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
Longitud de especicaciones
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
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
Longitud de especicaciones
razn de expansin : tamao de diseo / tamao de cdigo
LOC =a
i
=1
n
S
i
, donde S
i
es el tamao del mdulo i
Walston & Felix:
D documentacin medida en pginas
L longitud del programa
D =49L
1,01
para estimaciones precisas, se deben recolectar datos para
entornos especcos
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
Reuso
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
razn de reuso r =LineasReusadas/LOC
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
Funcionalidad
existen tres enfoques para medir funcionalidad:
puntos de funcin de Albrecht
COCOMO II
peso de especicacin de De Marco
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
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
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
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
Puntos de funcin de Albrecht
pasos (cont.)
1
determinar complejidad subjetiva a cada tem: simple, media,
compleja y asignarle un peso segn la tabla
2
calcular PFNA:
PFNA =
15

i =1
#|tipo
i
| Peso
i
3
calcular el factor de complejidad tcnico (FCT):
FCT =0,65+0,01
14

i =1
F
i
donde F
i
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
4
calcular PFA
PFA =PFNAFCT
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
Puntos de funcin de Albrecht - peso de cada categora de
items
Item Factor de Peso
simple medio complejo
inputs externos 3 4 6
outputs externos 4 5 7
consultas 3 4 6
archivos externos 7 10 15
archivos internos 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
Componentes del Factor de Complejidad Tcnico
F
1
conabilidad de backup
y recuperacin
F
2
comunicacion de datos
F
3
funciones distribuidas
F
4
performance
F
5
dependencia de la
conguracin
F
6
entrada de datos online
F
7
facilidad de operacin
F
8
actualizacin online
F
9
interface compleja
F
1
0 procesamiento
complejo
F
1
1 reusabilidad
F
1
2 facilidad de instalacin
F
1
3 sitios mltiples
F
1
4 facilidad de cambio
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
Evaluacin de los puntos de funcin de Albrecht
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: F
i
=3 FCT =1 pero
F
i
=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
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
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
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
COCOMO II
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
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
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
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 bsicas de COCOMO II
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
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
pasos para el clculo de PO
1
estimar el nmero de pantallas, reportes y componentes 3GL
2
clasicar la complejidad de los mismos en simple, medio o difcil
Vistas fuentes de datos Secciones fuentes de datos
de total < 4 total < 8 total > 7 de total < 4 total < 8 total > 7
pantalla (<2 servidor, (2-3 servidor, ( >3 servidor, reporte (<2 servidor, (2-3 servidor, ( >3 servidor,
<2 cliente) 3-5 cliente) >5 cliente) <2 cliente) 3-5 cliente) >5 cliente)
<3 simple simple medio 0-1 simple simple medio
3-7 simple medio difcil 2-3 simple medio difcil
>7 medio difcil difcil >3 medio difcil difcil
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
Clculo de puntos objeto
pasos para el clculo de PO (cont.)
3
pesar los objetos de acuerdo a su complejidad
Objeto simple medio difcil
pantalla 1 2 3
reporte 2 5 8
componente 3GL - - 10
4
determinar PO mediante la sumatoria de los pesos de todos los
objetos encontrados
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
Clculo de puntos objeto
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
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
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
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)
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
Clculo de puntos funcin
pasos para el clculo de PF (cont.):
2
clasicar los objetos de acuerdo a su complejidad en simple,
medio, o complejo
para AI y AE datos para OE y CE datos
registros 1-19 20-50 >50 archivos 1-5 5-20 > 20
1 simple simple medio 0-1 simple simple medio
2-5 simple medio difcil 2-3 simple medio difcil
>5 medio difcil difcil >3 medio difcil difcil
para IE datos
archivos 1-4 5-15 >15
0-1 simple simple medio
2-3 simple medio difcil
>3 medio difcil difcil
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
Clculo de puntos funcin
pasos para el clculo de PF (cont.):
3
aplicar pesos de complejidad segn la tabla
puntos funcin complejidad
simple medio complejo
inputs externos 3 4 6
outputs externos 4 5 7
consultas externas 3 4 6
archivos internos 7 10 15
archivos externos 5 7 10
4
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
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
pasos para el clculo de PF (cont.):
5
convertir PFNA en lneas de cdigo estimadas (SLOC) de
acuerdo a la siguiente tabla:
Lenguaje SLOC por PFNA Lenguaje SLOC por PFNA
Ada 71 Java 53
Basic (comp.) 91 Lisp 64
Basic (int.) 128 Modula 2 80
C 128 Pascal 91
C++ 29 Prolog 64
Cobol 85 91 Generador reportes 80
Fortran 77 105 Planilla de clculo 6
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
Complejidad
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
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
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
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
Ejemplo
problema: encontrar la posicin de un elemento en un arreglo
ordenado
solucin 1: bsqueda secuencial, con complejidad en tiempo de
n comparaciones y de espacio 1
solucin 2: bsqueda binaria, con complejidad en tiempo de
log
2
(n) comparaciones y de espacion de 1
se puede demostrar que el problema tiene complejidad en tiempo
de log
2
(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
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
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
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
Caractersticas de medir eciencia
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
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
mide el nmero de operaciones primitivas requeridas para
cualquier algoritmo es f (n). Ejemplo: log
2
(n) , n
2
, n,...
idea: denir una relacin emprica: ms eciente
no es claro que pares estn en la relacin. Ejemplo:
n
2
>??100n
para precisarlo se usa un formalismo matemtico notacin O(),
el orden de una funcin
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
Objetivos
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
Mtricas para el presupuesto
Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos
Longitud
Funcionalidad
Complejidad
Estructuras
Mtricas orientadas a objetos
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.
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
Notacin O()
O(g(n)) = {f (n) : c R
+
, n
0
N, tal que
f (n) cg(n) para todo n n
0
}
determina una cota superior en la tasa de crecimiento de una
funcin, dentro de un factor constante.
ejemplos:
6n
3
O(n
3
) ya que se cumple la denicin con c =6, n
0
=1.
3logn O(n) ya que se cumple la denicin con c =1, n
0
=4.
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
Ejemplos:
300n
2
O(n
2
)
5n
4
4n
3
+10n
2
+39 O(n
4
)
log
b
n O(log
a
n), a, b
2
n
O(n!)
500000n O(0,00001n
2
)
0,000001n
2
O(500000n)
n! O(2
n
)
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
Notacin ()
(g(n)) = {f (n) : c R
+
, n
0
N, tal que
f (n) cg(n) para todo n n
0
}
determina una cota inferior en la tasa de crecimiento de una
funcin, dentro de un factor constante.
ejemplos:
6n
3
(n
3
) ya que se cumple la denicin con c =1, n
0
=1
1/3n (logn) ya que se cumple la denicin con
c =1/3, n
0
=1.
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
Ejemplos:
3n
5
+4n
3
8n
2
+10n (n
4
)
log
b
n (log
a
n), a, b
n! (2
n
)
0,00001n
2
(50000n)
50000n (0,00001n
2
)
2
n
(n!)
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
Clasicacin de problemas segn su complejidad
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
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 (alogn))
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
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
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
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
Mtricas para el presupuesto
Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos
Longitud
Funcionalidad
Complejidad
Estructuras
Mtricas orientadas a objetos
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.
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
Estructuras
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
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
Estructura del ujo de control
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
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
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
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
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 propuestas por Shyam R. Chidamber y Chris F. Kemerer
denicin de objetos y relaciones entre objetos
atributos y propiedades de objetos
comunicacin entre objetos
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
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 objetos y relaciones 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)
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
Mtodos ponderados por clase (WMC)
WMC =

i
c
i
, 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
Mtricas para el presupuesto
Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos
Longitud
Funcionalidad
Complejidad
Estructuras
Mtricas orientadas a objetos
Profundidad del rbol de herencia (DIN)
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
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
Nmero de subclases (NOC)
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
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 CK de atributos y propiedades de objetos
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
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)
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
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
Falta de cohesin en los mtodos (LCO)
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
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
respuesta para una clase (RFC)
acoplamiento entre objetos (CBO coupling between objects)
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
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
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
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 clase (CS)
nmero de operaciones redenidas en una clase (NOO)
nmero de operaciones agregadas en una clase (NOA)
ndice de especializacin (SI)
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
Tamao de una clase (CS)
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
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)
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
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
Nmero de operaciones agregadas en una clase (NOA)
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
Mtricas para el presupuesto
Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos
Longitud
Funcionalidad
Complejidad
Estructuras
Mtricas orientadas a objetos
ndice de especializacin (SI)
la especializacin se da agregando, redeniendo o eliminando
mtodos de la superclase
se dene
SI =(NOOnivel )/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
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 atributos internos vs externos
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
Mtricas para el presupuesto
Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos
Medidas basadas en defectos
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
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 usabilidad
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
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

También podría gustarte