Artículos y Servicios

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.



2 comentarios:

  1. Respetado señor Carlos Javier, estamos muy motivados e interesados en las publicaciones de este blog y constantemente las leemos para estar al tanto de la informacion impartida, nosotros somos estudiantes de ultimo semestre de Ing. de Sistemas y nuestro proyecto de grado consiste en hacer un Simulador web de apoyo a los procesos de estimación de recurso humano y medición de productividad para empresas que desarrollan software bajo estándares de calidad, coincidencialmente estamos haciendo este simulador con este modelo de casos de uso y otro de clases, pero queremos hacerle una pregunta, ¿Porque implementar este modelo de Casos de Uso y no otro? ¿Que beneficio trae? ademas de eso nos encantaria cualquier informacion adicional que pudiese enviarnos, Muchas gracias por su atencion!

    ResponderEliminar
  2. Hola Diego, me honras con tu comentario y me comprometes mucho más con esta tarea de compartir el conocimiento sobre el tema. Excelente propuesta de proyecto, si puedo comentarles algo sería interesante que el modelo pueda ser calibrado en la medida de los resultados y con la experiencia en su uso. El artículo está basado en la información disponible de Gustav Karner que presentó originalmente la técnica en 1993. No existe un método mejor que otro, porque el mejor es el que utilizamos en la práctica para lograr una aproximación para calcular lo que no tenemos certeza aún. Es importante considerar en qué situaciones se aplica, los resultados que puede obtener y cómo se puede combinar con otras técnicas. Pero es fundamental que sea utilizado y que se vaya ajustando a las necesidades de los proyectos o de la organización. En el caso de la estimación por casos de uso tiene la ventaja que desde las etapas iniciales del proyecto, con relativamente poca información se puede obtener un dimensionamiento global del proyecto que en otros métodos se requiere trabajar más para obtener ese dato. Una desventaja sería que en situaciones donde no se identifican casos de uso, se tendría que crear una variante. Espero mi respuesta les sea útil y quedo a sus ordenes. Saludos, Carlos

    ResponderEliminar