martes, 19 de octubre de 2010

METRICAS DEL SOFTWARE



MÉTODO COCOMO
El modelo COCOMO se basa en la existencia de tres niveles que ha de aplicarse según el estado en que se encuentre el desarrollo del proyecto.
•Estos tres niveles son:
–Modelo básico
–Modelo intermedio
–Modelo detallado
La función básica que utilizan los tres modelos es: 

E=a(KL)b*m(X)

Donde:
a y b: Son constantes con valores definidos en cada sub-modelo
Kl o KLOC: Es la cantidad de líneas de código excluyendo comentarios, en miles.
M(X): Es un multiplicador que depende de 15 atributos.
El resultado se da en unidades salario/mes y horas-hombre.
Cada sub-modelo también se divide en modos de trabajo que representan el tipo de
Proyecto, y puede ser:
1. Modo orgánico: un pequeño grupo de programadores experimentados desarrollan software en un entorno familiar. El tamaño del software varía desde unos pocos miles de líneas (tamaño pequeño) a unas decenas de miles (medio).
2. Modo Semilibre o Semiencajado: corresponde a un esquema intermedio entre el orgánico y el rígido; el grupo de desarrollo puede incluir una mezcla de personas experimentadas y no experimentadas.
3. Modo Rígido o Empotrado: el proyecto tiene fuertes restricciones, que pueden estar relacionadas con la funcionalidad y/o pueden ser técnicas. El problema a resolver es único y es difícil basarse en la experiencia, puesto que puede no haberla.

NIVEL  BÁSICO
Se utiliza para obtener una primera aproximación rápida del esfuerzo. Y  hace uso de la siguiente tabla de constantes para calcular distintos aspectos de costes:



Estos valores son para las fórmulas:
1. Personas necesarias por mes para llevar adelante el proyecto (MM) = a*(Klb)
2. Tiempo de desarrollo del proyecto (TDEV) = c*(MMd)
3. Personas necesarias para realizar el proyecto (CosteH) = MM/TDEV
4. Costo total del proyecto (CosteM) = CosteH * Salario medio entre los programadores y analistas.
NOTA: El valor de m(x) en el caso del modelo básico tiene como valor fijo la unidad.
Para calcular el número de meses estimados para el desarrollo, utilizamos la siguiente fórmula:


Donde:
E: Es el valor del esfuerzo calculado en la anterior ecuación.
c y d:  Son valores constantes que dependen de la clase o “modo” de proyecto que estemos evaluando.
NIVEL  INTERMEDIO
En este caso la ecuación de esfuerzo que rige este modelo es: 



Donde E, KLOC, a y b tienen el mismo significado que en caso del modelo básico, aunque el valor de a y b es diferente.
La tabla para los valores de las constantes de las ecuaciones de esfuerzo (E) para este “modo” de proyecto es:



El valor de m(x) es el peso del factor de coste, y cuya expresión matemática es:




Cada factor es valorado por separado en una escala ordinal de seis puntos (muy bajo / bajo/ nominal / alta / muy alta / extra alta)
A partir de las tablas hechas públicas por Boehm se asigna un valor numérico a cada factor y se aplica la ecuación; el resultado es el factor de ajuste del esfuerzo.




NIVEL  AVANZADO
Es un modelo que incorpora todas las características del modelo anterior pero realiza una evaluación de las “guías de coste” para cada una de las etapas que considera Boehm (Análisis/Diseño, Codificación y Prueba) y, por tanto, se puede aplicar cuando se tiene un conocimiento específico sobre cada una de las etapas básicas del proyecto.
CÁLCULO DE METRICAS
ORIENTADAS A  LA  FUNCIÓN
Hay que completar la siguiente tabla de valores del dominio de la información:

donde:
ü  Entradas de usuario. Son entradas que proporcionan diferentes datos a la aplicación. No confundirlos con las peticiones de usuario.
ü  Salidas de usuario. Son reportes, pantallas o mensajes de error que proporcionan información. Los elementos de un reporte, no se cuentan de forma separada.
ü  Peticiones de usuario. Es una entrada interactiva que produce la generación de alguna respuesta del software en forma de salida interactiva.
ü  Archivos. Son los archivos que pueden ser parte de una base de datos o independientes.
ü  Interfaces externas. Son los archivos que se usan para transmitir información a otro sistema.
El punto de función FP se calcula con la siguiente ecuación:
PF = T * (0.65 + 0.01 * F)
AMPLIADAS DE PUNTO DE FUNCIÓN
Los puntos de función fueron diseñados originalmente para sistemas de información y por eso le da más importancia a los datos y menos a los aspectos de control y funcionales. Para subsanar esto, se han propuesto los puntos de característica y los puntos de función 3D.
Puntos de característica: Se calcula igual que el punto de función y solo agrega la cuenta de algoritmos. Se define un algoritmo como un problema de cálculo limitado que se incluye dentro de un programa de computadora específico.
Puntos de función 3D: Los puntos de función 3D se calculan llenando la siguiente tabla:


donde:
ü  Estructuras internas de datos. Son arreglos, listas ligadas, pilas, colas, etc.
ü  Datos externos. Equivale a la suma de los archivos y las interfaces externas tal y como están definidos para el punto de función.
ü  Entradas de usuario. Definidas igual que para el punto de función.
ü  Salidas de usuario. Definidas igual que para el punto de función.
ü  Peticiones de usuario. Definidas igual que para el punto de función.
ü  Transformaciones. Son las operaciones internas requeridas para transformar datos de entrada en datos de salida. Multiplicar dos matrices cuenta como una transformación. Leer datos de un archivo y guardarlos en memoria no.
ü  Transiciones. Ocurre cuando el software pasa de un estado a otro como resultado de algún suceso. En un sistema de altas, bajas y cambios, al tomar la opción de altas, pasa del estado "menú principal" al estado "procesa altas" y puede ser que en ese momento pida datos para dar la alta.

PARA  LA  CALIDAD
Muchas de las medidas que maximizan la calidad producen como efecto colateral una diminución en el coste, y viceversa. Tradicionalmente se piensa que aumentar la calidad es aumentar el coste en tiempo. Pero muchas veces el tiempo invertido en aumentar la calidad repercute en el futuro en un menor coste de desarrollo o mantenimiento.
Valores abstractos del software:
Robusto: libre de errores.
Flexible: permite reutilización y adaptación a nuevos requisitos.
Mantenible: permite entender el código tiempo después de haber sido escrito y/o por personas que no lo escribieron (estándares de sintaxis y documentación).
Escalabilidad y rendimiento: al aumentar el número de usuarios, el rendimiento no disminuye exponencialmente.
Integridad: mide la habilidad de un sistema para resistir a ataques ya sea accidental o intencional a su seguridad. Se pueden dar en los programas, datos y documentos.
La medición de la integridad define dos atributos:
Amenaza: puede estimarse o deducirse es la probabilidad de que un ataque suceda en un tiempo determinado.
           
Seguridad: Existen herramientas que enfrentan a tu código a una base de datos de vulnerabilidades conocidas. También es la probabilidad de que se repela la amenaza.
Integridad = 1 – (amenaza x (1 – seguridad ))
Calidad = Errores / PF



PARA  LAS  ORGANIAZCIONES  PEQUEÑAS
ü  Tiempo transcurrido desde el momento en que se hizo la solicitud hasta que la evaluación esta completa
ü  Esfuerzo para realizar la evaluación.
ü  Tiempo transcurrido desde que se completa la evaluación hasta la asignación del pedido de cambio de personal.
ü  Esfuerzo requerido para hacer el cambio.
ü  Tiempo requerido para hacer el cambio.
ü  Errores descubiertos durante el trabajo para hacer el cambio.
ü  Defectos descubiertos después de que el cambio es liberado a la base de cliente.

 
Programa de Métricas y Planificación (Uso de MS Proj)





 
Aplicación de las Métricas O. Tamaño y O. a la función A los Casos de Estudio: Fundación FES & Agencia de Viajes Sky Light Tours.  

                                          *FUNDACION FES 



1)    Recolectas de Datos y Cálculos
El modo de trabajo es Rígido y el modelo es Básico.


Según Bib.
Formulario
Persona x mes (P)
MM
a*(Klb)
Tiempo de Desarrollo (Td)
TDEV
C*Pd
Costo del Software (CT)
CosteM
P/Td*SalProm
Esfuerzo (E)
E
P*m(x)
 
Calcular el Punto  de funcion


Parámetro
Cuenta
Simple
Medio
Complejo
ST
#Entradas
6=

             *

3
4
32
      
192
#Salidas
 16

             *

4
5
7=
      
112
#Peticiones
 10

             *

3
4
6=
      
96
#Archivos
10

            *

7
30
15 =
100
#Interfaces
 16

            *

5
7
10
     
300
Cuenta Total
800



Evaluación de 0 – 5

Preg.
Resp.
Preg.
Resp.
Preg.
Resp.
1
3
6
4
11
5
2
4
7
1
12
0
3
4
8
4
13
0
4
2
9
5
14
5
5
4
10
5




Fi = 45
Pf = 800*[0.65+0.01*45] = 880
Kl = 880/1000 = 0.88
Tabla de Constantes del Modelo Básico


MODO
a
b
c
d
Orgánico
2.40
1.05
2.50
0.38
Semilibre
3.00
1.12
2.50
0.35
Rígido
3.60
1.20
2.50
0.32





P = 3.6*(0.88)1.2
P = 3.08 = 3 personas

T = 2.5*(3.08)0.32= 3.58 = 3 meses y medio

Campos
Salario
Personal
Analista
500
Hazel Ramírez
Desarrollador
300
Javier Reyes
Programador
300
Kenny Coleman
Desarrollador
300
Jenny Hodgson
Total
1400
Prom = 1400/4 = 350

CT = [3.08/3.58]*350
CT = 301.12 ganancia

1)    Medidas a usar (Definición Operativa de los Resultados) 
En el cálculo de Pf se contabilizan en total 800 entradas de parámetros teniendo 4 de estos un factor de ponderación de grado complejo (#Entradas, #Salidas, #Peticiones, #Interfaces) y 1 de grado medio (#Archivos), un valor de ajuste de complejidad (Fi) de 45, el resultado de Pf se utiliza de forma análoga en las LDC como forma de normalizar las medidas de productividad, calidad y otros atributos del software.

En el cálculo estimado de personal aplicado al desarrollo del software dio como resultado 3, estos según el cálculo seria el número de personas necesarias por mes para llevar adelante el proyecto en un tiempo aproximado de 3 meses y medio, con un salario medio de $ 301.12

2)    Acciones de Mejora
El cálculo de MM (personas necesarias por mes para llevar adelante el proyecto) nos muestra un resultado de 3, anexando una persona más agilizaríamos el trabajo aunque la ganancia disminuya, pero el esfuerzo disminuiría un poco y el tiempo de realización del software también. 

*Agencia de Viajes Sky Light Tour

Recolectas de Datos y Cálculos
El modo de trabajo es Rígido y el modelo es Básico.

Según Bib.
Formulario
Persona x mes (P)
MM
a*(Klb)
Tiempo de Desarrollo (Td)
TDEV
C*Pd
Costo del Software (CT)
CosteM
P/Td*SalProm
Esfuerzo (E)
E
P*m(x)

Calcular el Punto de Fusión

Evaluación de 0 – 5
 
Preg.
Resp.
Preg.
Resp.
Preg.
Resp.
1
3
6
4
11
5
2
5
7
3
12
0
3
4
8
4
13
0
4
2
9
5
14
4
5
5
10
3


 

Fi = 47
Pf = 658*[0.65+0.01*47] = 736
Kl = 736/1000 = 0.736
Tabla de Constantes del Modelo Básico

MODO
a
B
c
d
Orgánico
2.40
1.05
2.50
0.38
Semilibre
3.00
1.12
2.50
0.35
Rígido
3.60
1.20
2.50
0.32
 
P = 3.6*(0.88)1.2
P = 2.4 = 2 personas

T = 2.5*(2.4)0.32 = 3.30 = 3 meses


Campos
Salario
Personal
Analista
500
Hazel Ramírez
Desarrollador
300
Javier Reyes
Programador
300
Kenny Coleman
Desarrollador
300
Jenny Hodgson
Total
1400
Prom = 1400/4 = 350




CT = [2.4/3.30]*350
CT = 255 ganancia















































No hay comentarios:

Publicar un comentario