Metricas de Bang
Metricas de Bang
Metricas de Bang
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 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 para el presupuesto Modelos y componentes primitivas Mtricas de atributos internos Mtricas de atributos externos objetivo: maximizar la cantidad de funciones entregables por unidad de costo, considerando el costo total (todo el tiempo de vida) del sistema costo total del sistema: costo de desarrollo + costo de produccin + costo de mantenimiento
Pablo R. Fillottrani
Pablo R. Fillottrani
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
pasos a seguir:
1
formular un slo indicador de medida de xito vs el objetivo. BPB: Bang per Buck (impacto por peso) coleccionar datos en una muestra de proyectos para establecer estndares de performance de BPB buscar y evaluar predictores para aquellas partes de medida del BPB que inuyen a futuro motivar al personal para mejorar el BPB. El personal debe estar informado de cmo se calcula el BPB publicar el BPB proyectado durante el proyecto, y el real luego de 6 meses de la implementacin
un modelo consiste de una particin, junto con un registro de las interfaces entre las piezas de la particin se necesitan tres perspectivas para especicar la mayora de los sistemas:
modelo funcional: visin particionada de lo que hace el sistema modelo de datos retenidos: visin particionada de lo que el sistema recuerda modelo de comportamiento: visin de los diferentes estados de comportamiento que caracterizan al sistema
Pablo R. Fillottrani
Pablo R. Fillottrani
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 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
Pablo R. Fillottrani
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
Pablo R. Fillottrani
Pablo R. Fillottrani
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
Indicador principal
bang tentativo bang = PF (FactorDePesoParaPF )+ DE (FactorDePesoParaDE )+. . . para caracterizar el bang se elige uno de los indicadores como el principal y se usan los otros para modicarlo en la mayora de los sistemas administrativos PF es el principal indicador hay sistemas altamente orientados a funciones y otros a datos, dependiendo de esto es el indicador que se deber considerar como principal
se pueden analizar dos razones en funcin de PF (primitivas funcionales) y RE (relaciones entre objetos): RE /PF < 0,7 sistema orientado a funciones RE /PF > 1,5 sistema orientado a datos la razn DEO /PF es una medida de cunto el sistema est dedicado a clculos o a administracin de datos
Pablo R. Fillottrani
Pablo R. Fillottrani
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
Clasicacin de proyectos
Particiones uniformes
para determinar el criterio de hasta donde se debe particionar se puede usar TCavg = TCi /PF
regla de particin uniforme: dejar una componente como primitiva slo si no es posible una particin o si la nueva particin no reduce el TCavg
Pablo R. Fillottrani
Pablo R. Fillottrani
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
Correccin de indicadores I
Correccin de indicadores II
Pablo R. Fillottrani
Pablo R. Fillottrani
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
en los sistemas orientados a datos el peso depende de los REi de los objetos existen factores de correccin en funcin de los REi
se deben usar otras mtricas para otras actividades, como por ejemplo conversin de la base de datos, etc
Pablo R. Fillottrani
Pablo R. Fillottrani
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
bang ::= 0 para cada primitiva funcional f[i] del modelo TC[i] ::= sumatoria de data token de f[i] PFC[i] ::= correccin(TC[i] clasificar f[i] buscar PesoCorr[i] en tabla de correccin y de acuerdo al tipo de primitiva bang ::= bang + PFC[i] * PesoCorr[i]
bang ::= 0 para cada objeto del modelo de datos calcular RE[i] OBC[i] ::= correccin(RE[i]) bang ::= bang + OBC[i]
Pablo R. Fillottrani
Pablo R. Fillottrani
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
el tamao del software puede ser descripto con tres atributos: en software, el tamao no es lo que importa ya que en general no considera
esfuerzo: no tiene en cuenta redundancia y complejidad productividad: no consideran funcionalidad costo: no contabiliza reuso longitud: mide tamao fsico del producto funcionalidad: mide las funciones provistas por el producto complejidad: puede ser interpretada de distintas maneras
del problema a resolver del algoritmo utilizado, eciencia del software estructural: mide la estructura del SW implementada cognitiva: esfuerzo requerido para entender el SW
Pablo R. Fillottrani
Pablo R. Fillottrani
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
Consideraciones
Productos
hay consenso en medir longitud de programas, pero no de especicaciones existen trabajos para medir funcionalidad de especicaciones existen pocos avances en medicin de complejidad
los tres productos mas importantes cuyo tamao sera importante medir son:
especicaciones diseo cdigo
la medida mas comnmente usada son las lneas de cdigo: LOC se debe tener en cuenta: lneas en blanco, lneas de comentarios, declaracin de datos y lneas que contienen varias instrucciones
Pablo R. Fillottrani
Pablo R. Fillottrani
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
Lneas de cdigo
Lneas de cdigo
Conte, Dunsmore & Shen: cualquier lnea de texto de programa que no es comentario o lnea en blanco, independientemente del nmero de sentencias o fragmentos de sentencias en la lnea Hewlett-Packard: una sentencia de cdigo fuente no comentada; cualquier sentencia excepto comentarios o lneas en blanco NCLOC - CLOC: non commented line of code - commented line of code ELOC: effective line of code longitud total LOC = NCLOC + CLOC
es posible distinguir entre la cantidad de cdigo entregado (DSI Delivered Source instructions) y la cantidad de cdigo desarrollado formula de Halstead: volumen = longitud log2 (vocabulario) otro enfoque es medir longitud de acuerdo a:
nmero de bytes de almacenamiento requerido para el texto del programa nmero de caracteres (CHAR) en el texto del programa
Pablo R. Fillottrani
Pablo R. Fillottrani
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
Lneas de cdigo
Longitud de especicaciones
en programacin visual, entornos de ventanas, orientacin a objetos lenguajes de cuarta generacin, cambian las nociones de tamao surgen dos nuevos objetivos de medicin:
cmo se tienen en cuenta objetos no textuales? cmo medimos componentes construidas externamente?
las especicaciones y diseos consisten de textos y diagramas se deben medir diferentes objetos atmicos los objetos atmicos para DFD: procesos, entidades externas, ujos de datos, almacenamientos. las entidades atmicas para especicaciones algebraicas son clases, funciones, operaciones y axiomas intuitivamente: se predice la longitud para tratar de relacionar la longitud de productos de etapas posteriores con la longitud de productos ya construidos
Pablo R. Fillottrani
Pablo R. Fillottrani
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
Longitud de especicaciones
Reuso
razn de expansin : tamao de diseo / tamao de cdigo LOC = a i = 1n Si , donde Si es el tamao del mdulo i Walston & Felix:
D documentacin medida en pginas L longitud del programa D = 49L1,01
el reuso mejora la productividad y la calidad. Es difcil de denir formalmente grados de reuso publicado por NASA/Goddards Software Engineering Lab
reuso verbatim: reusado sin cambio ligeramente modicado: se reus modicando menos del 25 % LOC extensamente modicado: se reus modicando ms del 25 % LOC nuevo: ninguna lnea proviene de un componente previo
Pablo R. Fillottrani
Pablo R. Fillottrani
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
Funcionalidad
los puntos de funcin (PFA) intentan medir la cantidad de funcionalidad de un sistema, descripta en la especicacin pasos:
1
identicar
inputs externos outputs externos consultas archivos externos archivos internos
idea intuitiva: si un programa P es la implementacin de la especicacin S, entonces P y S deberan tener la misma funcionalidad
Pablo R. Fillottrani
Pablo R. Fillottrani
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
determinar complejidad subjetiva a cada tem: simple, media, compleja y asignarle un peso segn la tabla calcular PFNA:
15
Item inputs externos outputs externos consultas archivos externos archivos internos
PFNA =
3
i =1
#|tipoi | Pesoi
14
i =1
Fi
donde Fi es la valoracin de 14 posibles factores de complejidad en el rango de 0 a 5. El resultado es tal que 0, 65 FCT 1,35 calcular PFA PFA = PFNA FCT
Pablo R. Fillottrani Calidad en el Desarrollo de Software
Pablo R. Fillottrani
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
F1 conabilidad de backup y recuperacin F2 comunicacion de datos F3 funciones distribuidas F4 performance F5 dependencia de la conguracin F6 entrada de datos online F7 facilidad de operacin
F8 actualizacin online F9 interface compleja F1 0 procesamiento complejo F1 1 reusabilidad F1 2 facilidad de instalacin F1 3 sitios mltiples F1 4 facilidad de cambio
los puntos de funcin forman una base para la estimacin del esfuerzo Albrecht los propone como medida de tamao independiente de la tecnologa presentan varios problemas:
subjetividad en FCT, variacin del 35 % contar las cosas 2 veces valores no intuitivos: Fi = 3 FCT = 1 pero Fi = 3 FCT = 1,07 problemas con exactitud: el FCT no mejora signicativamente la estimacin de recursos
Pablo R. Fillottrani
Pablo R. Fillottrani
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
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
Pablo R. Fillottrani
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
Pablo R. Fillottrani
Pablo R. Fillottrani
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
estimar el nmero de pantallas, reportes y componentes 3GL clasicar la complejidad de los mismos en simple, medio o difcil
total < 4 (<2 servidor, <2 cliente) simple simple medio fuentes de datos total < 8 (2-3 servidor, 3-5 cliente) simple medio difcil total > 7 ( >3 servidor, >5 cliente) medio difcil difcil Secciones de reporte 0-1 2-3 >3 total < 4 (<2 servidor, <2 cliente) simple simple medio fuentes de datos total < 8 (2-3 servidor, 3-5 cliente) simple medio difcil total > 7 ( >3 servidor, >5 cliente) medio difcil difcil
pesar los objetos de acuerdo a su complejidad Objeto simple medio difcil pantalla 1 2 3 reporte 2 5 8 componente 3GL 10 determinar PO mediante la sumatoria de los pesos de todos los objetos encontrados
Pablo R. Fillottrani
Pablo R. Fillottrani
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
estimar el porcentaje de reuso que se espera y calcular los nuevos puntos objeto (NPO) NPO ::= PO (100 %reuso)/100
contar
inputs externos (IE) outputs externos (OE) consultas externas (CE) archivos internos (AI) archivos de interface externos (AE)
NPO se utiliza a continuacin en COCOMO II para estimar el esfuerzo necesario para el desarrollo del proyecto, teniendo en cuenta la productividad del personal y de las herramientas CASE a utilizar
Pablo R. Fillottrani
Pablo R. Fillottrani
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
aplicar pesos de complejidad segn la tabla puntos funcin inputs externos outputs externos consultas externas archivos internos archivos externos simple 3 4 3 7 5 complejidad medio complejo 4 6 5 7 4 6 10 15 7 10
calcular los puntos de funcin no ajustados (PFNA), sumando los puntos de funcin por su peso de complejidad
Pablo R. Fillottrani
Pablo R. Fillottrani
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
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
Pablo R. Fillottrani
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
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
Pablo R. Fillottrani
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
Eciencia
el medir tiempo de ejecucin es una medida de eciencia externa. Depende de factores externos. idea intuitiva:
identicar un pequeo nmero de operaciones aritmticas primitivas relevantes del algoritmo. Ejemplo: en bsquedas / ordenamiento: comparaciones usando esa informacin medir en trminos del nmero de operaciones requeridas para un input dado
se mide el producto y no el proceso no es dependiente de la mquina o de la implementacin es especca de un input con respecto al algoritmo en la mayora de los problemas los inputs pueden caracterizarse por un solo parmetro de tamao n ejemplo: algoritmo de bsqueda. Input: lista de elementos e tem a buscar. La eciencia del algoritmo depende de la longitud de la lista
Pablo R. Fillottrani
Pablo R. Fillottrani
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
Notacin asinttica
Objetivos
mide el nmero de operaciones primitivas requeridas para cualquier algoritmo es f (n). Ejemplo: log2 (n) , n2 , n,... idea: denir una relacin emprica: ms eciente no es claro que pares estn en la relacin. Ejemplo: n2 >??100 n para precisarlo se usa un formalismo matemtico notacin O (), el orden de una funcin
no interesa conocer los valores absolutos de las funciones. permitir una caracterizacin simple de la eciencia de un algoritmo y comparar las performances relativas de distintos algoritmos. independizar el anlisis de los algoritmos de condiciones especcas de implementacin: lenguaje de programacin, compilador, equipo, etc.
Pablo R. Fillottrani
Pablo R. Fillottrani
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
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))
determina una cota superior en la tasa de crecimiento de una funcin, dentro de un factor constante. ejemplos: 6n3 O (n3 ) ya que se cumple la denicin con c = 6, n0 = 1. 3 log n O (n) ya que se cumple la denicin con c = 1, n0 = 4.
Pablo R. Fillottrani
Pablo R. Fillottrani
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
Notacin ()
Ejemplos: 300n2 O (n2 ) 5n 4n + 10n + 39 O (n ) logb n O (loga n), a, b 2n O (n!) 500000n O (0,00001n2 ) 0,000001n2 O (500000n) n! O (2n ) determina una cota inferior en la tasa de crecimiento de una funcin, dentro de un factor constante. ejemplos: 6n3 (n3 ) ya que se cumple la denicin con c = 1, n0 = 1 1/3n (log n) ya que se cumple la denicin con c = 1/3, n0 = 1.
4 3 2 4
Pablo R. Fillottrani
Pablo R. Fillottrani
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
Ejemplos: 3n5 + 4n3 8n2 + 10n (n4 ) logb n (loga n), a, b n! (2n ) 0,00001n2 (50000n) 50000n (0,00001n ) 2n (n!)
2
Pablo R. Fillottrani
Pablo R. Fillottrani
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
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
Pablo R. Fillottrani
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
Complejidad de un problema
en general, los distintos grados de tratabilidad son muy subjetivos (varan mucho de acuerdo al modelo computacional, los recursos disponibles, las variantes de las estructuras de datos, etc.) por lo tanto un objetivo primario del estudio de la complejidad es denir cules problemas son tratables, y cules no. Recin despus de esto se pueden considerar distintos grados de tratabilidad o intratabilidad por ejemplo, se puede armar que la mayora de los problemas vistos en la materia son tratables: o sea tienen solucin para instancias grandes, y una mejora algortmica o una mejora en el HW produce una gran ampliacin en el conjunto de instancias que se pueden resolver en cambio, hay problemas que no son tratables: el problema de las torres de Hanoi, o el problema del viajante, en la prctica slo se resuelven para instancias pequeas.
Supongamos que para solucionar todas las instancias de un problema particular un algoritmo requiere f (n) clculos Decimos que f(n) asintticamente ptima si para todo algoritmo con complejidad g que soluciona el problema, f es O (g ) complejidad de un problema: es el orden del algoritmo asintticamente ptimo para la solucin del problema un problema que tiene una solucin acotada polinmicamente se dice tratable o factible
Pablo R. Fillottrani
Pablo R. Fillottrani
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
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
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
Pablo R. Fillottrani
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
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
Pablo R. Fillottrani
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
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
Pablo R. Fillottrani
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
WMC =
ci
esa longitud mxima desde el nodo hasta la raz del rbol de herencia cuanto ms profunda est una clase en una jerarqua, mayor nmero de mtodos hereda, haciendo ms complejo predecir su comportamiento una jerarqua de clases profunda lleva tambin a una mayor complejidad de diseo ya que involucra ms clases por otro lado, los valores grandes de esta medida implican que se pueden reutilizar muchos mtodos
, donde ci es una medida de complejidad del mtodo i el nmero de mtodos y su complejidad es un predictor de cunto tiempo y esfuerzo es necesario para desarrollar y mantener la clase cuanto ms mtodos mayor impacto en los hijos (herencia) clases con ms mtodos son mas especcas, limitando el reuso
Pablo R. Fillottrani
Pablo R. Fillottrani
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
denida como el nmero de subclases inmedidatas a medida que crece el nmero de descendientes se incrementa la reutilizacin puede darse una mayor posibilidad de una incorrecta abstraccin y mayor complejidad de la clase padre un gran nmero de hijos puede requerir mayor testing de los mtodos de la clase un gran nmero de hijos tambin es un indicador de la inuencia potencial de una clase en el diseo respuesta para una clase (RFC response for a class) falta de cohesin en los mtodos (LCO lack of cohesion)
Pablo R. Fillottrani
Pablo R. Fillottrani
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
es el nmero de mtodos que pueden ser invocados en respuesta a un mensaje enviado a un objeto de la clase un valor muy alto indica que la clase es compleja y probablemente altamente acoplada aumenta el esfuerzo de testeo y mantenimiento puede surgir el interrogante de si la clase est modelada correctamente
es el nmero de pares de mtodos cuya similitud es cero menos el nmero de pares de mtodos cuya similitud es distinta de cero. Si el valor es negativo, se asume cero similitud: si dos pares de mtodos acceden a uno o ms de los mismos atributos la cohesin de los mtodos dentro de una clase es deseable ya que promueve el encapsulamiento la falta de cohesin implica que una clase debiera dividirse en dos o ms clases
Pablo R. Fillottrani
Pablo R. Fillottrani
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
respuesta para una clase (RFC) acoplamiento entre objetos (CBO coupling between objects)
un valor alto disminuye el diseo modular y diculta el reuso el acoplamiento debe mantenerse mnimo para mejorar modularidad y encapsulamiento una medida de acoplamiento es til para determinar cuanto de complejo ser el diseo de testing cuanto ms acoplamiento presenta el diseo ms riguroso debe ser el testing
Pablo R. Fillottrani
Pablo R. Fillottrani
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
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)
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
Pablo R. Fillottrani
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
un NOO elevado es ndice de no respeto a la abstraccin implcita en la superclase es decir, de una jerarqua frgil involucra mayor dicultad en el testing y mantenimiento
al crecer el NOA la clase se aleja de la abstraccin representada por la superclase tambin es ndice de una jerarqua frgil, que conlleva dicultades en testing y mantenimiento en general, al crecer el DIN el NOA debera disminuir
Pablo R. Fillottrani
Pablo R. Fillottrani
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
la especializacin se da agregando, redeniendo o eliminando mtodos de la superclase se dene SI = (NOO nivel )/M donde nivel es el nivel de la clase en la jerarqua y M es el nmero total de mtodos en la clase valores elevados de SI indican baja conformidad con la abstraccin de la superclase
la medicin de atributos externos no es tan difundida como la de los internos la principal razn es que los atributos internos se consideran predictores razonables de aquellos externos y adems los internos estan disponibles antes para su medicin tambin, no es fcil la medicin de atributos externos la medicin cuidadosa de atributos externos requiere recursos extra que no todos los administradores de proyectos desean comprometer
Pablo R. Fillottrani
Pablo R. Fillottrani
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 de usabilidad
la densidad de defectos del software se dene como la razn entre el nmero de defectos conocidos y el tamao del producto pero no existe consenso sobre lo que es un defecto algunos reemplazan el tamao del cdigo por el tiempo de ejecucin, resultando en tasa de defectos otra medida es la de desperdicios del sistema, denida como la razn entre el tiempo (o costo) de reparar defectos post-entrega sobre el tiempo (o costo) total del sistema
usabilidad es la medida en que el software es conveniente y prctico para usar (user-friendliness) una posible medida es la probabilidad de que el operador no experimente un problema en la interface del usuario el problema de esta medida es que requiere una recoleccin de datos intensiva y cuidadosa tambin se puede medir indirectamente contando manuales, buen uso de menues y grcos, mensajes de errores informados, invocaciones a funciones de ayuda e interfaces consistentes
Pablo R. Fillottrani
Pablo R. Fillottrani
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