viernes, 2 de marzo de 2012

Estimación por casos de uso

La estimación por casos de uso es un método de estimación de esfuerzo a partir de los casos de uso, que es aplicable en proyectos de desarrollo de software. Surge en el año 1993 como un proyecto de tesis en la Universidad de Linkoping. 


Se basa en el cálculo del esfuerzo para el desarrollo de los actores y casos de uso requeridos por la solución, los cuales se categorizan de acuerdo con su complejidad y de acuerdo con las ponderaciones se obtiene un valor inicial. El valor obtenido es ajustado considerando factores ambientales y técnicos, y finalmente, utilizando un factor de productividad, se obtiene el esfuerzo en horas-hombre requerido. 


Es importante considerar los casos de uso y actores a un alto nivel, para obtener un valor adecuado y posteriormente utilizando métodos más precisos refinar la estimación. A continuación presentamos un procedimiento sencillo para el cálculo de esfuerzo con casos de uso. 


Calculo de esfuerzo por casos de uso
1. Clasificar el número de actores en simple, medio o complejo
  •  Simple: Otra aplicación con una interfaz de programación (API)
  •  Medio: Otra aplicación interactuando a través de un protocolo, Ej. TCP/IP
  • Complejo: Una persona interactuando con una interfaz gráfica (GUI) o página WEB 
2. Multiplicar el número de actores de cada clasificación por el peso correspondiente (1, 2 o 3) y sumar los valores para obtener el peso de los actores sin ajustar (A) 
3. Clasificar el número de casos de uso en simple, medio o complejo de acuerdo al número de transacciones, escenarios o pasos que se requiere 
  • Simple: Tres o menos transacciones 
  • Medio: Entre 4 y 6 transacciones 
  • Complejo: Siete o más transacciones 
4. Multiplicar el número de casos de uso de cada clasificación por el peso correspondiente (5, 10 o 15) y sumar los valores para obtener el peso de los casos de uso sin ajustar (B) 
5. Sumar A y B para obtener el total de casos de uso sin ajustar (C) 
6. Determinar el grado de influencia en la productividad de los factores técnicos considerando 0 como no influencia y 5 como esencial o fuerte influencia. 
  • Sistema distribuido -----------------------------  2
  • Desempeño ---------------------------------------  1
  • Conocimiento del usuario ---------------------  1
  • Procesamiento complejo ----------------------  1
  • Código reusable ---------------------------------  1 
  • Fácil de instalar ----------------------------------   0.5
  • Fácil de usar --------------------------------------   0.5
  • Portable --------------------------------------------   2 
  • Fácil de modificar -------------------------------  1 
  • Concurrente ---------------------------------------  1 
  • Características de seguridad ----------------  1
  • Acceso por terceros ----------------------------  1
  • Requiere capacitación especial ------------  1
7. Multiplicar el grado de influencia de los factores técnicos por el peso correspondiente y sumar los valores para obtener la influencia del factor técnico (FT)
8. Calcular la complejidad del factor técnico (CFT) como:  CFT = 0.6 + (0.01 * FT) ( D ) 
9. Determinar el grado de influencia en la productividad de los factores ambientales considerando 0 como no influencia y 5 como esencial o fuerte influencia. 

  • Familiaridad con RUP ----------------------------- 1.5
  • Experiencia con la aplicación -------------------  0.5
  • Experiencia Orientada a Objetos --------------  1
  • Capacidad del analista ---------------------------  0.5
  • Motivación --------------------------------------------   1
  • Requerimientos estables ------------------------    2
  • Personal medio tiempo --------------------------   -1
  • Dificultad del lenguaje de programación ---   -1

10. Multiplicar el grado de influencia de los factores ambientales por el peso correspondiente y sumar los valores para obtener la influencia del factor ambiental (FA) 
11. Calcular la complejidad del factor ambiental (CFA) como: CFA = 1.4 + (-0.03 * FA) ( E ) 
12. Multiplicar C, D y E para calcular el total de casos de uso ajustados ( F ) 
13. Determinar el valor de productividad por caso de uso, se toman valores entre 20 y 36 horas-persona por caso de uso dependiendo de la complejidad del factor ambiental ( G ) 
14. Calcular el esfuerzo en horas-persona multiplicando F y G.