Administración y Gestión de Proyectos de...

110
Administración y Gestión de Proyectos de Software Elsa Estévez – Clara Casalini Dpto. de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur 2do. Cuatrimestre 2011

Transcript of Administración y Gestión de Proyectos de...

Page 1: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

Administración y Gestión deProyectos de Software

Elsa Estévez – Clara CasaliniDpto. de Ciencias e Ingeniería de la ComputaciónUniversidad Nacional del Sur

2do. Cuatrimestre 2011

Page 2: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 2

Contenido

1) Métricas de atributos internos – tamaño – complejidad

2) Métricas de estructuras – flujos de control

3) Medidas jerárquicas1) Medidas jerárquicas para medir longitud2) Medidas jerárquicas para medir complejidad3) Medidas jerárquicas para testing

4) Medidas para modelos de objetos

5) Métricas de estructura1) Métricas de estructura - flujos de control entre módulos2) Métricas de estructura - flujos de información3) Métricas de estructura - estructura de datos

Page 3: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 3

Tamaño - Complejidad

Los puntos de función de Albrecht miden el problema. Un problema puede tener varias soluciones de distinta complejidad.

Complejidad de la Solución � Complejidad del Problema.

Complejidad del Problema: cantidad de recursos requeridos para una solución óptima del problema.

Complejidad de la Solución: cantidad de recursos necesarios para implementar una solución particular.

La complejidad de la solución tiene dos aspectos: tiempo y espacio.

Page 4: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 4

Complejidad - Ejemplo

Complejidad-tiempo: el recurso es tiempo del computador.

Complejidad-espacio: el recurso es memoria del computador.

Para medir la eficiencia de una solución, como la solución está basada en un algoritmo � se mide la eficiencia del algoritmo.

Ejemplo:1) Búsqueda Secuencial: el peor caso son n comparaciones.

2) Búsqueda Binaria: el peor caso es log2(n).

Page 5: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 5

Medir Eficiencia

Medir tiempo de ejecución: es una medida de eficiencia externa. Depende de factores externos.

Idea intuitiva:

1) Identificar un pequeño número de operaciones aritméticas primitivas relevantes del algoritmo. Ejemplo: en búsquedas / sorts: comparaciones

2) Usando esa información medir en términos del número de operaciones requeridas para un input dado.

Page 6: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 6

Características para Medir Eficiencia...

Se mide el producto y no el proceso.

No es mas dependiente de la máquina o de la implementación.

Es específica de un input con respecto al algoritmo.

En la mayoría de los problemas los inputs pueden caracterizarse por un solo parámetro de tamaño n.

Ejemplo: algoritmo de búsqueda. Input: lista de elementos e ítem a buscar. La eficiencia del algoritmo depende de la longitud de la lista.

Page 7: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 7

Características para Medir Eficiencia...

El número máximo de operaciones primitivas requeridas para cualquier algoritmo es f(n). Ejemplo: log2(n) , n2, n,...

Idea: Definir una relación empírica: más eficiente.

No es claro que pares están en la relación. Ejemplo: n2 ?? 100*n

Para precisarlo se usa un formalismo matemático notación big-O - el orden de una función.

Intuitivamente: se busca el término dominante de f(n) y se ignoran constantes.

Ejemplo: f(n)= 3n2+2n+6 � O(n2)

Page 8: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 8

Características para Medir Eficiencia

Es demostrable que se cumple:O(1) < O(log n) < O(n) < O(n\log n) < O(n2) < O(cn) < O(n!)

Algunas mas comunes:

1) f(n) es O(1): complejidad constante2) f(n) es O(log n): complejidad logarítmica3) f(n) es O(n): complejidad lineal4) f(n) es O(n2): complejidad cuadrática5) f(n) es O(cn), donde c>1: complejidad exponencial

Page 9: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 9

Medir Eficiencia

Se define la Eficiencia de un algoritmo A como O(f(n)), donde para un tamaño de input n, A requiere al menos O(f(n)) operaciones para el peor caso.

La función exhibe un comportamiento asintótico. Se aproxima

La eficiencia de n y 2n, se mapean a O(n): comportamiento asintótico.

A(O(n)) < A(O(n2)) � Con n suficientemente grandes A(O(n2)) serámas lento que A(O(n))

Page 10: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 10

Medir Eficiencia...

En función de este cálculo de eficiencia se puede medir el tiempo de ejecución.

Si se conoce el tiempo de ejecución de la operación primitiva, se determina O(g) del algoritmo. Dado el valor de n de input, se obtiene la estimación del tiempo de ejecución.

Un algoritmo de eficiencia O(g) < O(ni) para algun i є Nat se dice acotado polinómicamente.

Es posible implementar un algoritmo acotado polinómicamente para un input grande.

Page 11: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 11

Medir Complejidad del Problema - 1

Supongamos que para solucionar todas las instancias de un problema particular un algoritmo requiere f(n) cálculos.

Decimos que f(n) asintóticamente ó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 asintóticamenteóptimo para la solución del problema.

Un problema que tiene una solución acotada polinómicamente se dice factible.

Page 12: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 12

Medir Complejidad del Problema - 2

P: la clase de todos los problemas factibles.

NP: la clase de programas cuya factibilidad es desconocida. Parecieran no admitir solución, pero hay métodos (algoritmos acotados polinómicamente) para chequear una solución.

NP-completo: subconjunto de programas mas complejos.

La jerarquía de clases de complejidad está dada por P, NP y NP-completo.

Page 13: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 13

Contenido

1) Métricas de atributos internos – tamaño – complejidad

2) Métricas de estructuras – flujos de control

3) Medidas jerárquicas1) Medidas jerárquicas para medir longitud2) Medidas jerárquicas para medir complejidad3) Medidas jerárquicas para testing

4) Medidas para modelos de objetos

5) Métricas de estructura1) Métricas de estructura - flujos de control entre módulos2) Métricas de estructura - flujos de información3) Métricas de estructura - estructura de datos

Page 14: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 14

Estructura

La estructura del producto es importante no solo para el desarrollo sino también para el mantenimiento.

Dividimos la estructura en:

1) Estructura del Flujo de Control: apunta a la secuencia en las cuales se ejecutan las instrucciones.

2) Estructura del Flujo de Datos: sigue el rastro de los items de datos, cómo son creados o manejados por el programa.

3) Estructura de Datos: la organización de los datos en sí misma, independiente del programa.

Page 15: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 15

Estructura del Flujo de Control

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:

1) nodos: enumeran las sentencias del programa.

2) arcos: muestran el flujo de control de una sentencia a otra.

Dado un programa A, llamamos interpretación razonable F(A) al grafo de control de flujo de A.

No siempre es obvio como mapear A en F(A).

Page 16: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 16

Estructura Flujo de Control - Ejemplo

10

20

30

40

50

6080

11090

120

t f

tf

10 INPUT P

20 Div = 2

30 Lim = INT(SQR(P))

40 Flag = P / Div – INT(P/Div)

50 IF Flag = 0 OR Div = Lim THEN 80

60 Div = Div + 1

70 GO TO 40

80 IF Flag <> 0 OR P > 4 THEN 110

90 PRINT Div; “Factor mas pequeño de ”; P

100 GO TO 120

110 PRINT P; “es primo”

120 END

Page 17: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 17

Estructura del Flujo de Control...

Si m es una medida estructural definida en términos del modelo F(A), y si el programa A es estructuralmente mas complejo que B �

m(A) >> m(B)

Se trata de introducir un enfoque independiente de cualquier visión de programación estructurada.

La técnica permite mostrar que cualquier programa tiene una única descomposición estructural definida por componentes primitivas.

Se utilizan conceptos de grafos.

Page 18: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 18

Grafo de Flujo de Control

Grafo: conjunto de puntos (o nodos) y segmentos.

Grafo Dirigido: cada segmento tiene asignada una dirección indicada por una flecha, llamada arco. Conjunto de nodos y arcos. Cada arco conecta un par de nodos.

Arco: par ordenado <x,y> donde x e y son los nodos de los extremos. La dirección del arco es de x a y.

Grado-in: número de arcos que llegan a un nodo.

Grado-out: número de arcos que dejan un nodo.

Page 19: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 19

Grafo de Flujo de Control

Camino: secuencia de arcos consecutivos. Puede haber duplicados en la secuencia.

Camino Simple: camino sin arcos repetidos.

Ejemplo:

1) Nodo 50 Grado-in: 1

2) Nodo 50 Grado-out: 2

3) Camino: <30,40>, <40,50>, <50,60>, <60,40>, <40,50>, <50,80>

No es camino simple, ya que repite <40,50>

10

20

30

40

50

6080

11090

120

t f

tf

Page 20: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 20

Grafo de Flujo de Control

Grafo de Flujo: es un grafo dirigido en los cuales dos nodos, el nodo inicial y el nodo final tienen propiedades especiales:

1) el nodo final tiene grado-out = 0 y 2) cada nodo del grafo está en algún camino desde el nodo inicial

al nodo final.

El nodo inicial y el nodo final se distinguen con

El grafo de flujo es un ejemplo de máquina de estados finitos.

Nodos de Procedimiento: nodos con grado-out = 1.

Nodos de Predicado: nodos con grado-out > 1.

Page 21: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 21

Grafo de Flujo de Control: Ejemplos 1

...

X1 X2 Xn Pn o Pn(X1, X2, ..., Xn)X1;X2;...;Xn

X

A

t fY

D1 o D1(A, X, Y)if A then X

else Y

X

A

tD0 o D0(A, X)if A then X

f

X1

A

a1

Xn

Cn o Cn(A, X1,... Xn)case A of

a1: X1

a2: X2

...

an: Xn

X2a2

an

... ...

Page 22: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 22

Grafo de Flujo de Control: Ejemplos 2

A

t

D2 o D2(A, X)while A do X

f

X

X

t

D3 o D3(A, X)repeat X until A

f

A

Page 23: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 23

Grafo de Flujo de Control...

Grafo de Flujo Parametrizado: cuando se asocia con el código actual que representa. Ejemplo: D2(A,X) significa D2 con parámetros A y X. Notación para la estructura while A do X.

Si se habla solo de D2 significa la estructura de control genérica do-while.

La mayoría de los programas imperativos utilizan construcciones de control prediseñadas. Pero esto no siempre es la realidad.

Ejemplo:

A

X

t

fB

L2 o L2(A, B, X, Y) – “two-exit loop”loop A

X: exit when A; Y: exit when B

loop: end

en Ada

f f

Yt

Page 24: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 24

Secuencia y Anidamiento

Hay dos operaciones básicas que se pueden utilizar para construir un grafo de flujo:

1) secuencia

2) anidamiento

Page 25: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 25

Secuencia

Sean F1 y F2 grafos de flujos. La secuencia F1 y F2 es el grafo formado por intercalar el nodo final de F1con el nodo inicial de F2.

El grafo resultante es F1;F2 o seq(F1,F2) o P2(F1,F2)

Ejemplo:

D1

D3

SECUENCIA

Page 26: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 26

Secuencia - Continuación

La operación de secuencia de grafos de flujo corresponde a la operación de secuencia (concatenación) de los LP imperativos.

Supongamos que A y A' son dos bloques de código de programa:F(A;A')=F(A);F(A')

El grafo del programa secuencia es igual a la secuencia de grafos.

Page 27: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 27

Anidamiento

Sean F1 y F2 grafos de flujos. Supongamos que F1 tiene un nodo de procedimiento X.

Anidar F2 en F1 en X es el grafo formado por F1 reemplazando el arco que sale de X con todo F2.

El grafo de flujo resultante es F1(F2 en X). Si no hay ambigüedad se nota F1(F2).

Page 28: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 28

Anidamiento – Continuación 1

La operación de anidamiento de grafos de flujos corresponde a la operación de sustitución de procedimientos en LP imperativos.

Ejemplo:

D1 D3

CON ANIDADO EN X

D1(D3 EN X)

X

Page 29: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 29

Anidamiento – Continuación 2

Sea A un programa en el cual el procedimiento A' es llamado con un parámetro X. F(A con A' sustituido por X)= F(A)(F(A') en X)

El grafo de flujo de la sustitución es igual al anidamiento de grafos de flujos.

En general, sean F1, F2,...,Fn grafos de flujos con n nodos de procedimientos específicos X1,X2,...,Xn. El grafo resultante es F(F1 en X1,F2 en X2,...,Fn en Xn) Si los nodos no son relevantes, se nota F(F1,F2,...,Fn)

Page 30: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 30

Familia de Grafos Estructurados

Se introduce el concepto de familia S de grafos de flujo primos.

Grafo de Flujo Primo: es un grafo de flujos que no pueden ser descompuesto de manera no trivial en secuencias y anidamientos

Bohm y Jacopini: Cualquier algoritmo puede ser implementado usando las construcciones de secuencia, selección y anidamiento.

Objetivo: Considerando solo el grafo de flujo determinar si un algoritmo es estructurado o no.

Page 31: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 31

Nociones de Grafos Estructurados

Se dice que una familia de grafos es S-estructurada (o que losmiembros de la familia son S-grafos) si satisface las siguientes reglasrecursivas:

1) Cada miembro de S es S-estructurado.

2) Si F y F' son S-estructurados, � tambien lo son:a) F;F' b) F(F’) (siempre que esté definido el anidamiento de F' en F

3) Ningún otro grafo es un S-grafo a menos que se pueda demostrar que es generado en un número finito de veces aplicando las reglas anteriores.

Page 32: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 32

S-Grafos Básicos

Por definición, los elementos de S son S-estructurados.

Los elementos de S se denominan S-grafos básicos.

Se puede elegir qué bloques constituyen los S-grafos. Ejemplo:

1) Para S={P1}, S-grafos={P1,P2,...,Pn...}

2) Sd={P1,D0,D2} son los grafos D-estructurados

3) Para S={D1,D2}, los siguiente son S-grafos:

D1 D1;D2 D2(D1)

D2 D1(D2) D1;D2;D2(D1)

... ... ...

Page 33: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 33

Descomposición Prima

A todo grafo de flujo se le puede asociar un árbol de descomposición.

El árbol es construído a partir de secuencias y anidamiento de grafos primos.

Page 34: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 34

Ejemplo de Descomposición

Page 35: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 35

Ejemplo de Descomposición

Page 36: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 36

Teorema de Descomposición Prima - 1

Teorema de Descomposición Prima: Todo grafo tiene una únicadescomposición en una jerarquía de grafos primos.

Existen herramientas que lo hacen automáticamente.

El teorema provee una forma simple para determinar si un grafo es S-estructurado para una familia de primos S.

Procedimiento:

1) Se calcula el árbol.2) Si todo nodo es un elemento de S o es un Pn � el grafo es un S-

grafo.

Page 37: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 37

Teorema de Descomposición Prima - 2

El teorema de descomposición prima muestra que todo programa tiene un grado cuantificable de estructuración caracterizado por el árbol de descomposición.

Las únicas estructuras que no pueden ser descompuestas de ninguna manera son los primos. Por lo tanto, a menos que todo el grafo sea un primo, acepta un grado de descomposición.

Page 38: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 38

Uso del Árbol de Descomposición

La descomposición prima definida de manera única es una descripción definitiva de la estructura de control de un programa.

A partir del árbol de descomposición, se pueden obtener distintas medidas que permiten evaluar la estructura de un programa.

Page 39: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 39

Profundidad de Anidamiento

Supongamos que deseamos medir formalmente la profundidad de anidamiento de un programa.

Sea F el grafo de un programa y α la profundidad de anidamiento de F. Podemos expresar α en términos de primos, secuencias y anidamientos:

Primos: α(P1)=0 y ∀ F primo ≠ P1 α(F)=1

Secuencia: la profundidad de anidamiento de la secuencia F1,F2,...,Fn

es la máxima profundidad de anidamiento de los Fi

α(F1;F2;...;Fn)=max(α(F1),...,α(Fn))

Anidamiento: la profundidad de anidamiento de F(F1...Fn) es la máximaprofundidad de anidamiento de los F i + 1α(F(F1,...,Fn)= 1 + max(α(F1),...,α(Fn))

Page 40: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 40

Profundidad de Anidamiento - Ejemplo

Ejemplo:

α(F) = α(D1( (D0;P1;D2), D0(D3) ) )

α(F) = 1 + max (α(D0;P1;D2), α(D0(D3)) )

α(F) = 1 + max ( max(α(D0), α(P1), α(D2) ), 1 + α(D3))

α(F) = 1 + max( max( 1, 0, 1), 2)

α(F) = 1 + max(1, 2)

α(F) = 3

Page 41: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 41

Contenido

1) Métricas de atributos internos – tamaño – complejidad

2) Métricas de estructuras – flujos de control

3) Medidas jerárquicas1) Medidas jerárquicas para medir longitud2) Medidas jerárquicas para medir complejidad3) Medidas jerárquicas para testing

4) Medidas para modelos de objetos

5) Métricas de estructura1) Métricas de estructura - flujos de control entre módulos2) Métricas de estructura - flujos de información3) Métricas de estructura - estructura de datos

Page 42: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 42

Medidas Jerárquicas

Sea S un conjunto arbitrario de primos. Decimos que m es una medida jerárquica si puede definirse en el conjunto de S-grafos especificando:

1) Regla M1:m(F) F є S

2) Regla M2: la(s) función(es) de secuencia

3) Regla M3: las funciones de anidamiento hf F є S

Se puede calcular la medida jerárquica de un programa una vez que conocemos las reglas M1, M2, M3 y el árbol de descomposición.

Page 43: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 43

Medir Longitud

Deseamos medir formalmente la longitud v que indique el número de sentencias en un programa, cuando este se modela como un grafo.

1) M1: v(P1) = 1

Si F (≠)P1 � v(F)=n+1donde n es el número de nodos de procedimientos en F

2) M2: v(F1;...;Fn)=Σ v(Fi)

3) M3: v(F(F1,...,Fn))= 1 + Σ v(Fi) para cada primo F (≠)P1

v(D0) = 1 + 1 = 2v(D1) = 2 + 1 = 3v(D2) = 1 + 1 = 2v(D3) = 1 + 1 = 2

Page 44: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 44

Longitud para Grafos Primos

X

A

t fYX

A

tUn solo nodo de procedimiento

v(D0) = 1 + 1 = 2f

Dos nodos deprocedimiento

v(D1) = 2 + 1 = 3

A

t

f

X

X

t

f

A

Un solo nodo de procedimiento

v(D2) = 1 + 1 = 2v(D3) = 1 + 1 = 2

D0: D1:

D2: D3:

Page 45: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 45

Ejemplo de Medir Longitud

v(F) = v (D1(D0;P1;D2), D0(D3)))

v(F) = 1 + v(D0;P1;D2) + v(D0(D3)))

v(F) = 1 + (v(D0) + v(P1) + v(D2)) + (1 + v(D3))

v(F) = 1 + (2 + 1 + 2) + (1 + 2)

v(F) = 1 + 5 + 3

v(F) = 9

Page 46: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 46

Complejidad Ciclomática de Mc Cabe

Para un programa con grafo F, el número ciclomático es:v(F)=a-n+2, donde F tiene a arcos y n nodos.

El número ciclomático mide el número de caminos linealmente independientes de F.

Para cualquier grafo F, v(F)=1 + d, donde d es el número de nodos predicados de F.

La medida es objetiva y útil para medir los caminos linealmente independientes, pero no es claro que refleje de manera completa y exacta la complejidad de un programa.

Page 47: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 47

Complejidad Ciclomática de Mc Cabe

v puede ser definida como una medida jerárquica:

1) M1: v(F)=1 + d para cada primo F donde d :cantidad de nodos predicados de F.

1) M2: v(F1;...;Fn)= Σ v(Fi)- n + 12) M3: v(F(F1,...,Fn))=v(F)+ Σ v(Fi) - n para cada primo F

La complejidad de los primos depende sólo del número de nodos predicado que tengan.

La complejidad de la secuencia es igual a la suma de las complejidades de las componentes menos el número de componentes mas uno.

La complejidad de las componentes anidadas en un primo F es la complejidad del primo F mas la suma de las complejidades de las componentes menos el número de componentes.

Page 48: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 48

Complejidad Ciclomática de Mc Cabe

Desde la teoría de las mediciones, es dudoso que cualquiera de estas afirmaciones corresponda a relaciones intuitivas sobre complejidad.

Por eso, v no puede ser usada como una medida general de complejidad.

El número ciclomático es un indicador útil de la dificultad para probar y mantener un programa o módulo. Si v > 10 = problemático.

Page 49: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 49

Complejidad Esencial de Mc Cabe

Mc Cabe tambien propone una medida para capturar el nivel general de estructuración de un programa.

Para un programa con grafo F, define complejidad esencial: ev(F)=v(F) - m

donde m es el número de subgrafos de F que Є {D0, D1, D2,D3}

Page 50: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 50

Complejidad Esencial de Mc Cabe

Page 51: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 51

Complejidad Esencial de Mc Cabe

Mc Cabe afirma que la complejidad esencial indica el grado hasta el cual el grafo puede ser “reducido” descomponiéndolo en todos los sub-grafos que son D-primos.

La complejidad esencial mide el número ciclomático de lo que queda luego de descomponer todos los subgrafos estructurados.

Una idea más intuitiva de la complejidad esencial puede ser el número ciclomático del primo más grande en el árbol de descomposición.

Page 52: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 52

Contenido

1) Métricas de atributos internos – tamaño – complejidad

2) Métricas de estructuras – flujos de control

3) Medidas jerárquicas1) Medidas jerárquicas para medir longitud2) Medidas jerárquicas para medir complejidad3) Medidas jerárquicas para testing

4) Medidas para modelos de objetos

5) Métricas de estructura1) Métricas de estructura - flujos de control entre módulos2) Métricas de estructura - flujos de información3) Métricas de estructura - estructura de datos

Page 53: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 53

Medidas de Cubrimiento de Tests 1

La estructura de un módulo está relacionada con la dificultad para testearlo.

Sea P un programa, S la especificación de P, e i un input a P. Se define caso de test: (i, S(i)).

El interés es chequear que S(i)= P(i)

Las estrategias para testear software pueden ser:

1) Pruebas de caja negra: los casos de test se derivan de la especificación sin referencias al código.

2) Pruebas de caja blanca: los casos de test se seleccionan basados en el conocimiento de la estructura interna del programa.

Page 54: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 54

Medidas de Cubrimiento de Tests 2

En estrategias de caja blanca, los casos de test se seleccionan de tal manera que toda sentencia de programa se ejecute al menos una vez -cobertura de sentencias.

En términos de grafos de programas la cobertura de sentencias se logra encontrando un conjunto de caminos de tal forma que todo nodo esté en al menos un camino.

Page 55: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 55

Medidas de Cubrimiento de Tests - Ejemplo

Page 56: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 56

Medidas de Cubrimiento de Tests...

Una alternativa para tests de caja blanca es seleccionar casos de testde tal manera que cada rama (arco) sea ejecutada al menos una vez -cobertura de arcos.

La estrategia de caja blanca mas exhaustiva es seleccionar casos de test de tal forma que todo camino posible del programa sea ejecutadoal menos una vez - cobertura de caminos. Prácticamente imposible.

Existe un impedimento básico en las estrategias de caja blanca –camino no factible.

Page 57: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 57

Camino No Factible

Camino No Factible: es un camino del programa que no puede ser ejecutado por ningún input.

Ejemplo: ABCEFG

Page 58: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 58

Medidas de Cubrimiento de Tests

Ninguna estrategia de caja blanca puede asegurar por sí misma un adecuado testeo del software.

Ejemplo: La ejecución del camino ABDEFG para "9" fue correcta. Qué pasa con el input 11? Ejecuta el mismo camino y el resultado es erróneo.

El conocer todos los caminos que satisfacen una estrategia no significa conocer cómo definir los casos de test.

Asociado con toda estrategia de test, existen dos medidas:

1) el mínimo número de casos de test.

2) el ratio de efectividad del test.

Page 59: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 59

Número Mínimo de Casos de Test

Es importante no sólo diseñar la estrategia, sino también el número mínimo de casos de test (NMCT).

El teorema de descomposición nos permite calcular el NMCT.

Un caso de test corresponde a un camino a través del grafo F.

Para calcular el NMCT, debemos calcular el número mínimo de caminos m(F) requeridos para satisfacer la estrategia.

Podemos calcular m(F) a partir del árbol, conociendo m(F) para los primos, la secuencia y el anidamiento.

Page 60: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 60

NMCT - Ejemplo

Page 61: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 61

Ratio de Efectividad de Test

Para un programa y un conjunto de casos de test, deseamos conocer en que grado los casos de prueba satisfacen una estrategia particular de test.

Ejemplo: Ejecutamos con 2 casos de prueba: "6" y "9".

Los casos de test cubren dos caminos: ABDEG y ABDEFG.

Cubren 6 de las 7 sentencias, 7 de los 8 arcos y 2 de los 4 caminos.

Decimos que:1) cubrimiento de sentencias es 86%, 2) cubrimiento de arcos es 87,5% y 3) cubrimiento de caminos es 50%.

Page 62: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 62

Ratio de Efectividad de Test...

Dada una estrategia T que requiere cubrir una clase de objetos (sentencias, caminos,...), para un programa dado y un conjunto de casos de prueba, se define el Ratio de Efectividad del Test:

RETT =número de objetos de T usados al menos una veznúmero total de objetos de T

Los gerentes asumen que normalmente RET es del 100%. La experiencia dice que no supera el 40%.

Se testea correctamente el software?

Page 63: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 63

Contenido

1) Métricas de atributos internos – tamaño – complejidad

2) Métricas de estructuras – flujos de control

3) Medidas jerárquicas1) Medidas jerárquicas para medir longitud2) Medidas jerárquicas para medir complejidad3) Medidas jerárquicas para testing

4) Medidas para modelos de objetos

5) Métricas de estructura1) Métricas de estructura - flujos de control entre módulos2) Métricas de estructura - flujos de información3) Métricas de estructura - estructura de datos

Page 64: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 64

Métricas Orientadas a Objetos

Métricas propuestas por Shyam R.Chidamber y Chris F.Kemerer

1) Definición de Objetos y Relaciones entre Objetos2) Atributos y Propiedades de Objetos3) Comunicación entre Objetos

Page 65: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 65

Métricas Orientadas a Objetos

Métricas de definición de objetos y relaciones entre objetos

1) Métodos ponderados por clase - WMC:Weighted Methods per Class

2) Profundidad del árbol de herencia - DIN:Depth of Inheritance

3) Número de descendientes - NOC: Number Of Children

Page 66: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 66

Métodos Ponderados por Clase : WMC

WMC= Σ ci, donde ci es una medida de complejidad del método i.

El número de métodos y su complejidad es un predictor de cuanto tiempo y esfuerzo es necesario para desarrollar y mantener la clase.

Cuanto más métodos mayor impacto en los hijos (herencia).

Clases con más métodos son mas específicas, limitando el reuso.

Page 67: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 67

Profundidad del Arbol de Herencia :DIN

La longitud máxima desde el nodo hasta la raíz del árbol.

Cuanto más profunda está una clase en una jerarquía, mayor número de métodos hereda, haciendo más complejo predecir su comportamiento.

Una jerarquía de clases profunda lleva también a una mayor complejidad de diseño ya que involucra más clases.

Por otro lado, los valores grandes de esta medida implican que se pueden reutilizar muchos métodos.

Page 68: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 68

Número de Descendientes : NOC

Definida como el número inmedidato de subclases.

A medida que crece el número de descendientes se incrementa la reutilización.

Puede darse una mayor posibilidad de una incorrecta abstracción y mayor complejidad de la clase padre.

Un gran número de hijos puede requerir mayor testing de los métodos de la clase.

Un gran número de hijos también es un indicador de la influencia potencial de una clase en el diseño.

Page 69: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 69

Métricas Orientadas a Objetos

Métricas de atributos y propiedades de objetos:

1) Respuesta para una clase (RFC: Response for a Class)

2) Falta de cohesión en los métodos (LCO: Lack of Cohesion)

Page 70: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 70

Respuesta para una Clase : RFC

El número de métodos 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.

Page 71: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 71

Falta de Cohesión en los Métodos : LCO

El número de pares de métodos cuya similitud es cero menos el número de pares de métodos cuya similitud es distinta de cero. Si el valor es negativo, se asume cero.

Similitud: si dos pares de métodos acceden a uno o más de los mismos atributos.

La cohesión de los métodos dentro de una clase es deseable ya que promueve el encapsulamiento.

La falta de cohesión implica que una clase debiera dividirse en dos o más clases.

Page 72: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 72

Métricas Orientadas a Objetos

Métricas de Comunicación entre Objetos

1) Respuesta para una clase – RFC

2) Acoplamiento entre clases (CBO: Coupling Between Objects)

Page 73: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 73

Acoplamiento entre Clases : CBO

La cantidad de clases con las cuales está acoplada.

Una clase está acoplada con otra si usa métodos o variables de instancia de la otra.

Un valor alto disminuye el diseño modular y dificulta el reuso.

El acoplamiento debe mantenerse mínimo para mejorar modularidad y encapsulamiento.

Una medida de acoplamiento es útil para determinar cuanto de complejo será el diseño de testing.

Cuanto más acoplamiento presenta el diseño más riguroso debe ser el testing.

Page 74: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 74

Métricas propuestas por Lorenz y Kidd

Dividen las métricas en cuatro categorías:

1) tamaño (recuento de atributos y operaciones),

2) herencia (reutilización del código a lo ancho y alto de la jerarquía de clases),

3) valores internos (cohesión y análisis de código) y

4) valores externos (acoplamiento y reuso).

Page 75: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 75

Métricas por Lorenz y Kidd - Ejemplos

1) Tamaño de la clase (TC):

a) Número de Operaciones (heredadas + privadas)

b) Número de Atributos (heredados + privados)

c) Número de Operaciones Invalidadas por una Subclase (NOI)

Invalidación: cuando una subclase substituye una operación heredada por una versión especializada para su propio uso.

d) Número de Operaciones Agregadas por una Subclase (NOA)

Page 76: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 76

Métricas propuestas por Lorenz y Kidd

Las subclases se especializan agregando atributos y operaciones privadas.

• Indice de Especialización (IE) =(NOI * nivel)/Mtotal

donde:

NOI: número de operaciones invalidadas por la subclase,nivel= nivel de la jerarquía de clases donde reside la clase.Mtotal=número total de métodos para la clase.

Page 77: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 77

Métricas Orientadas a Operaciones

Propuestas por Lorenz y Kidd.

1) Tamaño Medio de Operación: (TOAvg). a) LOCb) Cantidad de mensajes enviados por la operación.

2) Complejidad de Operación (CO): se calcula mediante cualquier métrica de complejidad.

3) Número medio de parámetros por operación (NPavg).

Page 78: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 78

Métricas para Pruebas OO - Binder

1) Encapsulamiento

a) Carencia de Cohesión en Métodos (LOC).

b) Porcentaje Público y Protegido (PPP): Los atributos públicos se heredan de otras clases. Los atributos protegidos son una especialización y privados de una clase específica. Esta métrica indica el ratio entre ambos.

c) Acceso Público a Datos (APD): Indica el número de clases (o métodos) que pueden acceder a los atributos de otra clase, violando el encapsulamiento.

Page 79: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 79

Métricas para Pruebas OO (Binder)...

2) Herencia

a) Número de Clases Raíz (NCR): Cantidad de jerarquías de clases.

b) Admisión (ADM): medida de herencia múltiple. Si ADM > 1 la clase hereda de más de una clase raíz.

c) Número de descendientes (NOD) y

d) Profundidad del árbol de Herencia (DIN).

Page 80: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 80

Métricas para Proyectos OO

Propuestas por Lorenz y Kidd

1) Número de Guiones de Escenario (NGE)–Guión de Escenario: es una secuencia detallada de pasos que describen la interacción entre el usuario y la aplicación.

2) Número de Clases Claves (NCC) –Clase Clave: Clase central al dominio del problema.

3) Número de Subsitemas (NSUB)–Proporciona una idea de la asignación de recursos, de planificación y de esfuerzo de integración.

Page 81: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 81

Contenido

1) Métricas de atributos internos – tamaño – complejidad

2) Métricas de estructuras – flujos de control

3) Medidas jerárquicas1) Medidas jerárquicas para medir longitud2) Medidas jerárquicas para medir complejidad3) Medidas jerárquicas para testing

4) Medidas para modelos de objetos

5) Métricas de estructura1) Métricas de estructura - flujos de control entre módulos2) Métricas de estructura - flujos de información3) Métricas de estructura - estructura de datos

Page 82: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 82

Modularidad y Flujos de Información

Se examinaron atributos de módulos individuales: medidas intra-modulares. Ahora estudiaremos relaciones entre módulos: medidas inter-modulares.

Módulo: secuencia contigua de sentencias de programa, acotadas por elementos de contorno y que tienen un identificador agregado (Yourdon y Constantine, 1979).

Para describir los atributos inter-modulares, construimos modelos para capturar la información necesaria sobre las relaciones entre módulos. Ejemplo: Carta estructurada. Grafo de llamada de módulos.

Page 83: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 83

Modelos de Relaciones Inter-Modulares-Ejemplo 1

Page 84: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 84

Modelos de Relaciones Inter-Modulares-Ejemplo 2

Page 85: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 85

Modularidad

Existen distintos enfoques:

1) longitud promedio de los módulos (Boehm).2) M1= módulos / procedimientos (Hausen).3) M2= módulos / variables.

Ambos sugieren focalizar primero en aspectos específicos de modularidad.

Morfología: la "forma" general de la estructura del sistema.

Las características son profunidad y ancho y se usan para diferenciar buenos de malos diseños.

Page 86: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 86

Características Morfológicas

Muchas características morfológicas son medibles directamente, incluyendo:

1) Tamaño: medido como el número de nodos, arcos, o combinación de ambos.

2) Profundidad: medido como la longitud del camino más largo desde el nodo raiz a un nodo hoja.

3) Ancho: medido como el máximo número de nodos en cualquier nivel.

4) Ratio-arco-a-nodo: puede considerarse una medida de densidad de conectividad, ya que aumenta a medida que agregamos más conexiones entre nodos.

Page 87: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 87

Ejemplo de Medidas Morfológicas

Page 88: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 88

Impuridad de Árbol

Diferentes estructuras de sistemas que se pueden encontrar en diseños típicos.

Page 89: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 89

Impuridad de Árbol...

Decimos que un grafo es conectado si para cada par de nodos en el grafo, existe un camino entre ambos.

Un grafo completo, Kn, es un grafo con n nodos, donde siempre dos nodos están conectados por un sólo arco, entonces hay n(n-1)/2 arcos. Grafos G4, G5 y G6 son grafos completos.

El grafo G1 es llamado un árbol, ya que es un grafo conectado sin ciclos (camino que empiece y termine en el mismo nodo).

Ince y Hekmatpour: "Cuanto mas se desvíe un sistema de ser una estructura pura de árbol para ser una estructura de grafo, peor es el diseño..."

Page 90: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 90

Impuridad de Árbol...

Propiedades de grafos y árboles:

1) Un árbol con n nodos siempre tiene n-1 arcos.

2) Para cada grafo conectado G, podemos encontrar al menos un subgrafo que es un árbol construído exactamente sobre los mismos nodos de G. Subárbol abarcado.

3) Subgrafo abarcado G' de un grafo G es construído sobre los mismos nodos que G , pero con un mínimo subconjunto de arcos de tal manera que siempre dos nodos de G' están conectados por un camino.

4) Intuitivamente la impuridad de G aumenta a medida que aumenta la diferencia entre G y G'.

Page 91: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 91

Impuridad de Árbol...

Formalmente la medida de impuridad de un árbol debe satisfacer las siguientes propiedades:

1) m(G)=0 � G es un árbol.Un grafo que es un árbol no tiene impuridad.

2) m(G) > m(G') si G difiere de G' sólo en el agregado de un arco (representando un call a un procedimiento existente).Ejemplo: m(G3) > m(G2)

Page 92: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 92

Impuridad de Árbol...

3) Sea A: número de arcos en G, y N: número de nodos en G.A' y N' idem para G'Si N > N' y A - N + 1 = A'- N'+ 1El subárbol abarcado de G tiene más arcos que el de G', pero en ambos casos el número de arcos adicionales al árbol abarcado es el mismo�m(G)<m(G').

4) ∀ grafo G, m(G) <= m(KN)=1donde N es el número de nodos de G y KN es el grafo completo de N nodos. Esto significa que para todos los grafos con n nodos, el grafo completo tiene máxima impuridad (1).

Page 93: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 93

Impuridad de Árbol...

Definimos medidas de impuridad:m(G)= número de arcos más que el árbol subabarcado /

máximo número de arcos más que el árbol subabarcado

En un grafo completo, el número de arcos es:a=n(n-1)/2,donde a= número de arcos en G y n= cantidad de nodosLa cantidad de nodos en el subárbol abarcado es siempre n-1.

El divisor es:n(n-1)/2 - (n-1)= (n-1)(n/2 - 1) = (n-1) (n - 2) / 2

Page 94: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 94

Impuridad de Árbol...

El cociente es: arcos totales (a) - arcos del árbol abarcado(n - 1)a - (n - 1) = a - n + 1

Reemplazando en la fórmula: a - n + 1 / ((n-1) (n-2)/ 2)2 (a - n + 1) / (n-1) (n-2)

Medida de Impuridad: m(G)=2(a - n + 1)/(n-1)(n-2)

Page 95: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 95

Impuridad de Árbol...

Page 96: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 96

Reuso

Reuso: mide la proporción del sistema construído fuera del proyecto.

Reuso Interno: mide el grado en que los módulos son usados dentro del mismo producto.

Los grafos de llamada no proveen esa información.

Yin y Winchester: propusieron como medida de diseño de sistema:r(G)=a-n+1

Obs: No tiene en cuenta distintas llamadas ni tamaño de componentesr(G1)=0, r(G2)=1, r(G3)=2, r(G4)=1, r(G5)=3, r(G6)=6

Page 97: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 97

Ej: Reuso

Page 98: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 98

Acoplamiento

Dados dos módulos x e y, se puede clasificar su acoplamiento en:

1) R0 no existe relación de acoplamiento: totalmente independientes.2) R1 acoplamiento de datos: se comunican por parámetros (no datos

de control). Necesaria para comunicación entre módulos.3) R2 acoplamiento de molde: aceptan el mismo tipo de registro como

parámetro.4) R3 acoplamiento de control: x pasa parámetro a y para controlar su

comportamiento (dato de control).5) R4 acoplamiento común: se refieren a los mismos datos globales.6) R5 acoplamiento de contenido: x se refiere al interior de y (x ejecuta,

cambia datos o altera sentencias de y).

Page 99: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 99

Acoplamiento...

Ri > Rj si i > j.

Para medir el acoplamiento se usa un grafo dirigido:

1) Nodos: representan los módulos.

2) Arcos: representan acoplamiento entre módulos. Puede haber más de un arco entre dos nodos.

3) Rótulo del arco <i,j>: donde i: es la relación de acoplamiento Ri y j es el número de veces que ocurre el acoplamiento.

Page 100: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 100

Ejemplo de Acoplamiento

Page 101: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 101

Acoplamiento...

Fenton y Melton: proponen medir el acoplamiento como c(x,y)= i + n/(n+1)

donde i: es la peor relación Ri de acoplamiento entre x e yn : es el número de interconexiones entre x e y.

Se puede definir C, la medida de acoplamiento general de un sistema:C(S) = valor medio C(Di, Dj)

Page 102: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 102

Cohesión

Cohesión: grado en el cual las componentes individuales se necesitan para realizar la misma tarea.

Niveles de Cohesión:

1) Coincidental: más de una función no relacionadas.2) Lógica: más de una función relacionadas lógicamente.3) Temporal: más de una función relacionadas por el tiempo.4) Procedimiento: más de una función relacionadas por un

procedimiento.5) Comunicacional: más de una función sobre los mismos datos.6) Secuencial: más de una función ejecutadas en orden secuencial.7) Funcional: una sola función bien definida.

Page 103: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 103

Cohesión...

Un módulo puede tener más de un tipo de cohesión. Se lo clasifica por el peor de todos.

Macro y Buxton: extendieron el concepto de cohesión agregando cohesión abstracta.

Cohesión Abstracta: módulo que encapsula un tipo de dato abstracto. Ejemplo: módulo que administra una pila.

Ratio_Cohesion=nro.módulos funcionales / nro.total de módulos

Page 104: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 104

Flujo de Información

Atributo inter-modular: nivel total de flujo de información a través del sistema, donde los módulos son componentes atómicos.

Atributo intra-modular: nivel total de flujo de información entre módulos individuales y el resto del sistema.

Enfoque de Henry y Kafura dentro de la segunda línea.

Page 105: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 105

Flujo de Información...

Vocabulario:1) Flujo Directo Local: A invoca a B y le pasa información o B devuelve un

resultado a A.2) Flujo Indirecto Local: B devuelve un dato a A que luego A lo pasa a C.2) Flujo Global: información de un módulo a otro vía estructura de datos

global.3) Fan in del módulo M: número de flujos locales que terminan en M, más

el nro. de estructuras de datos leídas por M.4) Fan out del módulo M: número de flujos locales que salen de M, más el

nro. de estructuras de datos actualizadas por M.

Complejidad_Flujo_Informacion(M):Longitud(M) * (fan_in(M)*fan_out(M))2

Page 106: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 106

Flujo de Información:Ejemplo

Page 107: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 107

Flujo de Información:...

Shepperd cuestionó este enfoque debido a:

1) Se hace distinción entre flujos locales y globales.2) Se deberían ignorar flujos duplicados.3) Se debe descartar la longitud del módulo. Es un atributo separado.

Complejidad_Shepperd(M):(fan_in(M)*fan_out(M))2

Sus estudios demostraron que el nivel de flujo de información estáíntimamente relacionado con el tiempo de desarrollo.

Page 108: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 108

Estructura de Datos

Hay pocos enfoques para tratar de medir datos y su estructura.

Localmente se desea medir la cantidad de estructura en cada ítem de dato.

Elliott sugiere usar teoría de grafos como se hizo con la estructura de control.

Considera tipos de datos simples (enteros, caracteres, booleanos) como primos y luego considera las distintas operaciones que permiten construir estructuras más complejas.

Page 109: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 109

Estructura de Datos

Globalmente se desea medir la cantidad de datos para un sistema.

Se puede usar lo propuesto por Halstead:µ2=número de variables + número de constantes únicas + número de etiquetasN2= número total de ocurrencias de operandos.

Page 110: Administración y Gestión de Proyectos de Softwarecs.uns.edu.ar/~mcca/home/files/aygps11/Metricas-Parte2.pdf · 2011-10-05 · Es específica de un input con respecto al algoritmo.

AGPS - 110

Resumen

1) Métricas de atributos internos – tamaño – complejidad

2) Métricas de estructuras – flujos de control

3) Medidas jerárquicas1) Medidas jerárquicas para medir longitud2) Medidas jerárquicas para medir complejidad3) Medidas jerárquicas para testing

4) Medidas para modelos de objetos

5) Métricas de estructura1) Métricas de estructura - flujos de control entre módulos2) Métricas de estructura - flujos de información3) Métricas de estructura - estructura de datos