Está en la página 1de 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

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

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

Mtricas para el presupuesto

Modelos y componentes primitivas

Mtricas de atributos internos

Mtricas de atributos externos

Pablo R. Fillottrani

Pablo R. Fillottrani

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

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 influyen 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

Pablo R. Fillottrani

se necesitan tres perspectivas para especificar 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 para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Calidad en el Desarrollo de Software

Mtricas provenientes de primitivas


Correccin de indicadores
Clculo del bang

Componentes primitivas de un modelo

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

el modelo de especificacin 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

un modelo consiste de una particin, junto con un registro de las


interfaces entre las piezas de la particin

Calidad en el Desarrollo de Software

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

Pablo R. Fillottrani

Produce primitivas
primitivas funcionales
datos elementales
objetos
relaciones
estados
transiciones

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 modificables
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

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

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 modificarlo
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

Calidad en el Desarrollo de Software

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
TCi : nmero de data tokens en la primitiva i
REi : nmero de relaciones que involucran al objeto i

Calidad en el Desarrollo de Software

Formulacin de una teora de costos

Pablo R. Fillottrani

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Pablo R. Fillottrani

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Calidad en el Desarrollo de Software

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

Clasificacin de proyectos

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
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

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Calidad en el Desarrollo de Software

Mtricas provenientes de primitivas


Correccin de indicadores
Clculo del bang

Correccin de indicadores I

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Calidad en el Desarrollo de Software

Mtricas provenientes de primitivas


Correccin de indicadores
Clculo del bang

Correccin de indicadores II

las primitivas se pueden clasificar 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

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

clasificacin de primitivas (cont.)


edicin: evala nuevos datos en frontera hombre-mquina
verificacin: chequea e informa inconsistencias
manipulacin de textos: administra textos
sincronizacin: decide cundo actuar o decide por otras
generacin de output: formatea nuevos flujos 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

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

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Calidad en el Desarrollo de Software

Mtricas provenientes de primitivas


Correccin de indicadores
Clculo del bang

Clculo del bang funcional

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 eficiencia productiva: BPB

se deben usar otras mtricas para otras actividades, como por


ejemplo conversin de la base de datos, etc

Pablo R. Fillottrani

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Calidad en el Desarrollo de Software

Mtricas provenientes de primitivas


Correccin de indicadores
Clculo del bang

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]

Pablo R. Fillottrani

Mtricas provenientes de primitivas


Correccin de indicadores
Clculo del bang

Clculo del bang

clasificacin de primitivas (cont.)

Pablo R. Fillottrani

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Calidad en el Desarrollo de Software

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

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:


en software, el tamao no es lo que importa

longitud: mide tamao fsico del producto


funcionalidad: mide las funciones provistas por el producto
complejidad: puede ser interpretada de distintas maneras

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

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

del problema a resolver


del algoritmo utilizado, eficiencia 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

Longitud
Funcionalidad
Complejidad
Estructuras
Mtricas orientadas a objetos

Consideraciones

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Calidad en el Desarrollo de Software

Longitud
Funcionalidad
Complejidad
Estructuras
Mtricas orientadas a objetos

Productos

hay consenso en medir longitud de programas, pero no de


especificaciones
existen trabajos para medir funcionalidad de especificaciones
existen pocos avances en medicin de complejidad

los tres productos mas importantes cuyo tamao sera


importante medir son:
especificaciones
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

Lneas de cdigo

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

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

longitud total LOC = NCLOC + CLOC

Pablo R. Fillottrani

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Calidad en el Desarrollo de Software

Longitud
Funcionalidad
Complejidad
Estructuras
Mtricas orientadas a objetos

Lneas de cdigo

Pablo R. Fillottrani

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Calidad en el Desarrollo de Software

Longitud
Funcionalidad
Complejidad
Estructuras
Mtricas orientadas a objetos

Longitud de especificaciones

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?

Pfleeger: contar objetos y mtodos conduce a estimaciones mas


precisas

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

las especificaciones y diseos consisten de textos y diagramas


se deben medir diferentes objetos atmicos
los objetos atmicos para DFD: procesos, entidades externas,
flujos de datos, almacenamientos.
las entidades atmicas para especificaciones 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 especificaciones

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

razn de expansin : tamao de diseo / tamao de cdigo


LOC = a i = 1n Si , donde Si es el tamao del mdulo i
Walston & Felix:

el reuso mejora la productividad y la calidad. Es difcil de definir


formalmente
grados de reuso publicado por NASA/Goddards Software
Engineering Lab
reuso verbatim: reusado sin cambio
ligeramente modificado: se reus modificando menos del 25 %
LOC
extensamente modificado: se reus modificando ms del 25 %
LOC
nuevo: ninguna lnea proviene de un componente previo

D documentacin medida en pginas


L longitud del programa
D = 49L1,01

para estimaciones precisas, se deben recolectar datos para


entornos especficos

razn de reuso r = LineasReusadas/LOC

Pablo R. Fillottrani

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Longitud
Funcionalidad
Complejidad
Estructuras
Mtricas orientadas a objetos

Funcionalidad

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Calidad en el Desarrollo de Software

Longitud
Funcionalidad
Complejidad
Estructuras
Mtricas orientadas a objetos

Puntos de funcin de Albrecht

existen tres enfoques para medir funcionalidad:


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

idea intuitiva: si un programa P es la implementacin de la


especificacin S, entonces P y S deberan tener la misma
funcionalidad

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

los puntos de funcin (PFA) intentan medir la cantidad de


funcionalidad de un sistema, descripta en la especificacin
pasos:
1

identificar
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

determinar complejidad subjetiva a cada tem: simple, media,


compleja y asignarle un peso segn la tabla
calcular PFNA:

Item

15

PFNA =

#|tipoi | Pesoi

i =1
3

calcular el factor de complejidad tcnico (FCT ):


14

FCT = 0,65 + 0,01

Fi

i =1

Longitud
Funcionalidad
Complejidad
Estructuras
Mtricas orientadas a objetos

Puntos de funcin de Albrecht - peso de cada categora de


items

pasos (cont.)
1

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

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

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Calidad en el Desarrollo de Software

Longitud
Funcionalidad
Complejidad
Estructuras
Mtricas orientadas a objetos

Componentes del Factor de Complejidad Tcnico

F1 confiabilidad de backup
y recuperacin

F8 actualizacin online

F2 comunicacion de datos
F3 funciones distribuidas

F1 0 procesamiento
complejo

F4 performance

F1 1 reusabilidad

F5 dependencia de la
configuracin

F1 2 facilidad de instalacin

F6 entrada de datos online

F1 4 facilidad de cambio

F9 interface compleja

F1 3 sitios mltiples

F7 facilidad de operacin

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

inputs externos
outputs externos
consultas
archivos externos
archivos internos

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

Pablo R. Fillottrani

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Calidad en el Desarrollo de Software

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: Fi = 3 6 FCT = 1 pero
Fi = 3 FCT = 1,07
problemas con exactitud: el FCT no mejora significativamente 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 especificacin
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 cientficas
problemas de dependencia de tecnologa: no es independiente de
los mtodos de anlisis y diseo usados

Pablo R. Fillottrani

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Calidad en el Desarrollo de Software

Longitud
Funcionalidad
Complejidad
Estructuras
Mtricas orientadas a objetos

Modelos del COCOMO II

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 planificaciones

Pablo R. Fillottrani

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Calidad en el Desarrollo de Software

Longitud
Funcionalidad
Complejidad
Estructuras
Mtricas orientadas a objetos

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 finalizar 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

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

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Clculo de puntos objeto

Clculo de puntos objeto

pasos para el clculo de PO (cont.)

pasos para el clculo de PO


1
2
Vistas
de
pantalla

estimar el nmero de pantallas, reportes y componentes 3GL


clasificar la complejidad de los mismos en simple, medio o difcil
total < 4
(<2 servidor,
<2 cliente)
simple
simple
medio

<3
3-7
>7

fuentes de datos
total < 8
(2-3 servidor,
3-5 cliente)
simple
medio
difcil

total > 7
( >3 servidor,
>5 cliente)
medio
difcil
difcil

Pablo R. Fillottrani

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Longitud
Funcionalidad
Complejidad
Estructuras
Mtricas orientadas a objetos

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

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Longitud
Funcionalidad
Complejidad
Estructuras
Mtricas orientadas a objetos

Clculo de puntos objeto

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Calidad en el Desarrollo de Software

Longitud
Funcionalidad
Complejidad
Estructuras
Mtricas orientadas a objetos

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)

pasos para el clculo de PF :


1

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

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

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Clculo de puntos funcin

Clculo de puntos funcin

pasos para el clculo de PF (cont.):

pasos para el clculo de PF (cont.):


2

clasificar los objetos de acuerdo a su complejidad en simple,


medio, o complejo

para AI y AE
registros
1
2-5
>5

1-19
simple
simple
medio

datos
20-50
simple
medio
difcil

>50
medio
difcil
difcil

para IE
archivos
0-1
2-3
>3

1-4
simple
simple
medio

Pablo R. Fillottrani

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

para OE y CE
archivos
0-1
2-3
>3
datos
5-15
simple
medio
difcil

1-5
simple
simple
medio

datos
5-20
simple
medio
difcil

>15
medio
difcil
difcil

Pablo R. Fillottrani

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

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

Longitud
Funcionalidad
Complejidad
Estructuras
Mtricas orientadas a objetos

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Calidad en el Desarrollo de Software

Longitud
Funcionalidad
Complejidad
Estructuras
Mtricas orientadas a objetos

Complejidad

convertir PFNA en lneas de cdigo estimadas (SLOC) de


acuerdo a la siguiente tabla:
SLOC por PFNA
71
91
128
128
29
91
105

aplicar pesos de complejidad segn la tabla


puntos funcin

pasos para el clculo de PF (cont.):

Lenguaje
Ada
Basic (comp.)
Basic (int.)
C
C++
Cobol 85
Fortran 77

> 20
medio
difcil
difcil

Clculo de puntos funcin

Longitud
Funcionalidad
Complejidad
Estructuras
Mtricas orientadas a objetos

Lenguaje
Java
Lisp
Modula 2
Pascal
Prolog
Generador reportes
Planilla de clculo

SLOC por PFNA


53
64
80
91
64
80
6

Calidad en el Desarrollo de Software

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

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

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

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Calidad en el Desarrollo de Software

Longitud
Funcionalidad
Complejidad
Estructuras
Mtricas orientadas a objetos

Eficiencia

Pablo R. Fillottrani

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Calidad en el Desarrollo de Software

Longitud
Funcionalidad
Complejidad
Estructuras
Mtricas orientadas a objetos

Caractersticas de medir eficiencia

se mide el producto y no el proceso

el medir tiempo de ejecucin es una medida de eficiencia


externa. Depende de factores externos.

no es dependiente de la mquina o de la implementacin

idea intuitiva:

es especfica de un input con respecto al algoritmo

identificar 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

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 eficiencia 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

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

mide el nmero de operaciones primitivas requeridas para


cualquier algoritmo es f (n). Ejemplo: log2 (n) , n2 , n,...
idea: definir una relacin emprica: ms eficiente
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

Pablo R. Fillottrani

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

no interesa conocer los valores absolutos de las funciones.


permitir una caracterizacin simple de la eficiencia de un
algoritmo y comparar las performances relativas de distintos
algoritmos.
independizar el anlisis de los algoritmos de condiciones
especficas de implementacin: lenguaje de programacin,
compilador, equipo, etc.

Calidad en el Desarrollo de Software

Pablo R. Fillottrani

Longitud
Funcionalidad
Complejidad
Estructuras
Mtricas orientadas a objetos

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Calidad en el Desarrollo de Software

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 definicin con c = 6, n0 = 1.
3 log n O (n) ya que se cumple la definicin 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 )
4

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


2

5n 4n + 10n + 39 O (n )

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

logb n O (loga n), a, b


2n O (n!)
500000n O (0,00001n2 )
0,000001n2 6 O (500000n)

ejemplos:
6n3 (n3 ) ya que se cumple la definicin con c = 1, n0 = 1
1/3n (log n) ya que se cumple la definicin con
c = 1/3, n0 = 1.

n! 6 O (2n )

Pablo R. Fillottrani

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

determina una cota inferior en la tasa de crecimiento de una


funcin, dentro de un factor constante.

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

Longitud
Funcionalidad
Complejidad
Estructuras
Mtricas orientadas a objetos

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Calidad en el Desarrollo de Software

Longitud
Funcionalidad
Complejidad
Estructuras
Mtricas orientadas a objetos

Clasificacin de problemas segn su complejidad

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

50000n 6 (0,00001n )
2n 6 (n!)

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

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 (a log n))

Pablo R. Fillottrani

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Calidad en el Desarrollo de Software

Longitud
Funcionalidad
Complejidad
Estructuras
Mtricas orientadas a objetos

Complejidad de un problema

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

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Calidad en el Desarrollo de Software

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.)

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

por lo tanto un objetivo primario del estudio de la complejidad es


definir cules problemas son tratables, y cules no. Recin
despus de esto se pueden considerar distintos grados de
tratabilidad o intratabilidad
por ejemplo, se puede afirmar 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

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

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 flujo 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 flujo de control: apunta a la secuencia en las cuales
se ejecutan las instrucciones
estructura del flujo 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 flujo de control son usualmente modeladas a


partir de grafos dirigidos, llamados grafos de control de flujo
(flowgraphs)
el grafo est compuesto por:
nodos: corresponden a las sentencias del programa
arcos: muestran el flujo de control de una sentencia a otra

dado un programa A, llamamos interpretacin razonable F (A) al


grafo de control de flujo de A
no siempre es obvio cmo mapear A en F (A)

Pablo R. Fillottrani

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Calidad en el Desarrollo de Software

Longitud
Funcionalidad
Complejidad
Estructuras
Mtricas orientadas a objetos

Ejemplo grafo de control de flujo

Pablo R. Fillottrani

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Calidad en el Desarrollo de Software

Longitud
Funcionalidad
Complejidad
Estructuras
Mtricas orientadas a objetos

Medidas de un grafo de control de flujo

si m es una medida estructural definida 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 definida 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 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 objetos y relaciones entre objetos

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


definicin 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

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Calidad en el Desarrollo de Software

Longitud
Funcionalidad
Complejidad
Estructuras
Mtricas orientadas a objetos

Mtodos ponderados por clase (WMC)

WMC =

ci

, 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 especficas, limitando el reuso

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

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

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Calidad en el Desarrollo de Software

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)

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

definida 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

respuesta para una clase (RFC response for a class)


falta de cohesin en los mtodos (LCO lack of cohesion)

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 influencia
potencial de una clase en el diseo

Pablo R. Fillottrani

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Calidad en el Desarrollo de Software

Longitud
Funcionalidad
Complejidad
Estructuras
Mtricas orientadas a objetos

Respuesta para una clase (RFC)

Pablo R. Fillottrani

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Calidad en el Desarrollo de Software

Longitud
Funcionalidad
Complejidad
Estructuras
Mtricas orientadas a objetos

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

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

un valor muy alto indica que la clase es compleja y


probablemente altamente acoplada

similitud: si dos pares de mtodos acceden a uno o ms de los


mismos atributos

aumenta el esfuerzo de testeo y mantenimiento

la cohesin de los mtodos dentro de una clase es deseable ya


que promueve el encapsulamiento

puede surgir el interrogante de si la clase est modelada


correctamente

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

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

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

respuesta para una clase (RFC)

un valor alto disminuye el diseo modular y dificulta el reuso

acoplamiento entre objetos (CBO coupling between objects)

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

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Calidad en el Desarrollo de Software

Longitud
Funcionalidad
Complejidad
Estructuras
Mtricas orientadas a objetos

Algunas mtricas LK

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Calidad en el Desarrollo de Software

Longitud
Funcionalidad
Complejidad
Estructuras
Mtricas orientadas a objetos

Tamao de una clase (CS)

tamao de clase (CS)


nmero de operaciones redefinidas en una clase (NOO)
nmero de operaciones agregadas en una clase (NOA)
ndice de especializacin (SI)

Pablo R. Fillottrani

Pablo R. Fillottrani

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

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

Nmero de operaciones redefinidas 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 dificultad en el testing y mantenimiento

Pablo R. Fillottrani

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Calidad en el Desarrollo de Software

Longitud
Funcionalidad
Complejidad
Estructuras
Mtricas orientadas a objetos

ndice de especializacin (SI)

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
dificultades 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

Medidas de atributos internos vs externos

la especializacin se da agregando, redefiniendo o eliminando


mtodos de la superclase
se define
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

Pablo R. Fillottrani

Mtricas para el presupuesto


Modelos y componentes primitivas
Mtricas de atributos internos
Mtricas de atributos externos

Calidad en el Desarrollo de Software

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

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 define 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, definida 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 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

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 grficos, mensajes de errores informados,
invocaciones a funciones de ayuda e interfaces consistentes

Pablo R. Fillottrani

Calidad en el Desarrollo de Software

También podría gustarte