jueves, 21 de octubre de 2010

Métricas del Software

** Orientadas al Tamaño - 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:
  1. Modelo básico
  2. Modelo intermedio
  3. Modelo detallado

La función básica que utilizan los tres modelos es: 
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  Xj, 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.



** Orientadas a la Función y Ampliadas de Punto de Función **

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

- Calidad:

Muchas de las medidas que maximizan la calidad producen como efecto colateral una disminució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 sean accidentales o intencionales 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

- Organizaciones Pequeñas:

1. Tiempo transcurrido desde el momento en que se hizo la solicitud hasta que la evaluación esta completa.

2. Esfuerzo para realizar la evaluación.

3. Tiempo transcurrido desde que se completa la evaluación hasta la asignación del pedido de cambio de personal.

4. Esfuerzo requerido para hacer el cambio.

5. Tiempo requerido para hacer el cambio.

6. Errores descubiertos durante el trabajo para hacer el cambio.

7. Defectos descubiertos después de que el cambio es liberado a la base de cliente.

BIBLIOGRAFIA


** Programa de Métricas y Planificación (Uso de MSPROJECT) **

Microsoft Project (o MSP) es un software de administración de proyectos diseñado, desarrollado y comercializado por Microsoft para asistir a administradores de proyectos en el desarrollo de planes, asignación de recursos a tareas, dar seguimiento al progreso, administrar presupuesto y analizar cargas de trabajo.



 Aplicación de las Métricas Orientadas al Tamaño y Orientadas a la Función a los Casos de Estudio



1. Objetivos del Negocio:

Mejorar la gestión de fondos Asignados a los diversos programas que ejecutan en Nicaragua.

2. Nuevos Saberes/Aprendizajes:

Actualmente la fundación Fredrick Ebet Stiffurd (FES), están aprendiendo automatizar sus actividades, lo prioritario es la agenda de eventos (lugar, fecha, cantidad de participantes, invitaciones, confirmaciones y llenado de datos, expositores, temas, documentos, materiales de apoyo, refrigerio o alimentos, entre otros recursos requeridos), posteriormente realizan informes, resumen de los temas, incorporan fotos y lo publican a fin de establecer comentarios al respecto y con ellos hacer encuestas y gráficos.  
  
3. Sub objetivos:

Prioridad: Eventos
                Lugar
                Fecha
                Medios Audiovisuales

Participantes: Invitaciones
                     Confirmaciones
                     Llenado de Datos
                     Expositores

 Exponencias: Documentos
                      Materiales
                      Refrigerio y Alimentos

Otros Recursos: Informes
                         Resumen
                         Fotos/Videos
                         Publicaciones
                         Comentarios
                         Encuestas/ Gráficos

 4. Entidades y Atributos de los Sub Objetivos: 

Caso de Uso

Diagrama de Dominio
Diagrama de Clase

5. Objetivos de Medición:

Si no se mide, no hay una forma real de determinar si se está mejorando. Y si no se está mejorando, se está perdiendo tiempo, dinero y esfuerzo. Además q el medir nos da una visión y nos ayuda o dirigir nuestras acciones.


6. Preguntas cuantitativas e Indicadores relacionados: 


7. Recolecta de datos y Cálculos: 


El modo de trabajo es Rígido y el modelo es Básico


Calcular el Punto de Fusión

Evaluación de 0 – 5

Fi = 45
Pf = 800*[0.65+0.01*45] = 880
Kl = 880/1000 = 0.88

Tabla de Constantes del Modelo Básico

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

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


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


9. 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 Tours:


1. Objetivo:
Desea realizar una mercadotecnia defensiva de sus servicios de viajes y paquetes turísticos.

2. Prioridad:
          Servicios de Viajes
          Paquetes Turísticos

Diagrama de Caso de Uso

Diagrama de Dominio
Diagrama de Clase

3. Recolecta de Datos y Cálculos:



El modo de trabajo es Rígido y el modelo es Básico
Calcular el Punto de Fusión
Evaluación de 0 – 5
Fi = 47
Pf = 658*[0.65+0.01*47] = 736
Kl = 736/1000 = 0.736

Tabla de Constantes del Modelo Básico
 
P = 3.6*(0.88)1.2
P = 2.4 = 2 personas


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

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


4. Interfaz

No hay comentarios:

Publicar un comentario