jueves, 31 de marzo de 2016

TÉCNICAS DE ESTIMACIÓN

Cuándo se definen las métricas de Software, se pueden considerar  diferentes técnicas para realizar la estimación.
Es muy importante realizar una estimación al momento de planear el desarrollo de un software para estimar el costo del proyecto, el recurso humano, el tiempo y los recursos que se usarán para el mismo.
Técnicas de Estimación

Puntos de Casos de Uso
La metodología de los puntos de casos de uso es una derivación de la metodología de puntos de función propuesta por Albretch. Este método de estimación fue desarrollado en 1993 por Gustav Karner de Rational Software, quien se basa en una metodología orientada a objetos y en la utilización de casos de uso como datos de entrada para calcular el esfuerzo en horas hombre (hh) que son necesarias para el desarrollo de un proyecto de software. 

Objetivo de la técnica
Estimar las horas necesarias para ejecutar un conjunto de casos de uso. Es decir, se necesita predecir cuanto tiempo llevara el desarrollo de software y cuantas personas se requieren para realizarlo. Para ello, es necesario cuantificar la complejidad del sistema y el tiempo necesario para producir una unidad de complejidad.

Clasificación de los Casos de Uso
Los casos de uso son clasificados de acuerdo a la cantidad de transacciones que poseen, incluyendo las transacciones de escenarios alternativos y excluyendo las extensiones o incluso de otros casos de uso. Un caso de uso simple (peso=5) es aquel que posee 3 o menos transacciones; uno medio (peso=10)  es aquel que posee de 4 a 7 transacciones; y un caso de uso complejo (peso=15)  es aquel que posee más de 7 transacciones. A   cada caso de uso le corresponde un peso. 

Factor de Complejidad Técnica del Proyecto de Software
Los factores técnicos (T) están definidos por las influencias técnicas que puedan afectar el proceso de desarrollo del sistema a construir. Cada factor técnico posee un grado de complejidad, que oscila entre 0 y 5, donde 0 significa un valor irrelevante o nulo y 5 determina un valor con alto grado de influencia. Cada factor técnico posee un valor de peso.

Factores de entorno del proyecto
Los factores de entorno (E) indican la influencia del grupo humano involucrado en el proyecto sobre el sistema a desarrollar. De manera similar a los factores técnicos, los factores de entorno poseen un grado de influencia que oscila entre 0 y 5, donde 0 significa un valor irrelevante o nulo y 5 determina un valor con alto grado de influencia. Cada factor de entorno posee un valor de peso. 


Pasos para determinar la estimación
Para determinar la estimación de los Puntos de Caso de Uso se deben cumplir los siguientes pasos:
  • Clasificar los actores para determinar el valor de UAW (Unadjusted Actor Weight).
UAW=Sumatoria de todos los pesos de los actores identificados.
  • Clasificar los casos de uso para determinar el valor de UUCW (Unadjusted Use Case Weight).
UUCW=Sumatoria de los pesos de los casos de uso.
  • Determinar el valor del UUCP (Unajusted Use Case Point, Puntos de Casos de Uso No Ajustados)
UUCP=UAW+UUCW
  • Determinar el valor de TCF (Technical Complexity Factor, Factores Técnicos de Complejidad)
TCF=0.6+(0.01*∑(T1 … T3)).
  • Determinar el valor de EF (Enviroment Factor, Factores de Entorno)
EF=1.4+(-0-03*∑(E1…E8))

  • Determinar el valor de AUCP(Adjusted Use Case Point)
AUCP=UUCP*TFC*EF
Karner establece un factor de 20hr hombre por punto de caso de uso para realizar la estimación de un proyecto de software.
UCP=AUCP*20
El valor de Use Case Point (UCP) obtenido indica el esfuerzo de horas hombre que se deben invertir para desarrollar el proyecto de software.
ESTIMACIÓN DEL ESFUERZO
Una vez obtenido el tamaño, se puede obtener el esfuerzo. Para ello se utiliza la expresión:
Esfuerzo=UCP* Factor de Productividad
El método originario propone usar un factor de ajuste similar al que se usa en el método de Puntos de Función clásico.
Contar los factores de entorno entre R1 y R6 cuya influencia es inferior a 3 (influencia promedio) y los factores de entorno entre R7 y R8 que son superiores a 3.
Entonces:
  • 20 horas-hombre por UCP si el valor es =2
  • 28 horas-hombre por UCP si el valor es=4
  • 36 horas-hombre por UCP si el valor es=5, en este caso se debería replantear el proyecto.

Puntos de Función

La técnica de Análisis de Puntos de Función fue introducida por Allan Albrecht de IBM. Albrecht comenzó a analizar sistemas buscando identificar los factores críticos que determinan el tamaño del software y por consiguiente, estimar el esfuerzo y el costo de desarrollarlo. Luego de analizar cientos de sistemas, nació la técnica de Análisis de Puntos por función. La técnica mide una aplicación con base en las funciones que éste realiza para y por solicitud del usuario final. 
Componentes de los Puntos de Función (PF)

La técnica mide lo que es el sistema y no como será o cómo será diseñado.
Características de los Puntos de Función:
  • Método independiente de las herramientas de análisis, diseño y programación, ya que solo se preocupa de la complejidad de las funciones a implementar.
  • Requerir de una descomposición funcional del proyecto a realizar, que se detecten todas las piezas elementales que componen el producto final.
  • Estimar la cantidad de Puntos de Función de las funciones medidas, se realiza contando la cantidad de entradas, salidas, archivos, consultas e interfaces que se utilizan. Entre mayor cantidad, mayor es el peso de complejidad que se le asignará.
  • Ajustar la estimación del esfuerzo requerido, para determinar la presencia de ciertos elementos que dificultan el desarrollo del proyecto.
  • Permitir realizar una estimación del esfuerzo requerido en etapas tempranas del proyecto. 
Para desarrollar la técnica de puntos de función se debe desarrollar una serie de pasos los cuáles se pueden ver en el siguiente link:
O se puede seguir el desarrollo que se explica en los siguientes vídeos.







El uso de técnicas de estimación es muy importante al momento de desarrollar software para poder mostrar al cliente una estimación del costo del proyecto y del tiempo, de acuerdo a los requerimientos que especifica.

No hay comentarios:

Publicar un comentario