Técnicas de estimación: puntos de casos de uso

UN Use-Case es una serie de interacciones relacionadas entre un usuario y un sistema que permite al usuario alcanzar un objetivo.

Los casos de uso son una forma de capturar los requisitos funcionales de un sistema. El usuario del sistema se denomina "Actor". Los casos de uso están fundamentalmente en forma de texto.

Puntos de casos de uso: definición

Use-Case Points (UCP)es una técnica de estimación de software que se utiliza para medir el tamaño del software con casos de uso. El concepto de UCP es similar a los FP.

El número de UCP en un proyecto se basa en lo siguiente:

  • El número y la complejidad de los casos de uso en el sistema.
  • El número y complejidad de los actores del sistema.
    • Varios requisitos no funcionales (como portabilidad, rendimiento, mantenibilidad) que no están escritos como casos de uso.

    • El entorno en el que se desarrollará el proyecto (como el idioma, la motivación del equipo, etc.)

La estimación con UCP requiere que todos los casos de uso se escriban con un objetivo y aproximadamente al mismo nivel, dando la misma cantidad de detalles. Por lo tanto, antes de la estimación, el equipo del proyecto debe asegurarse de haber escrito sus casos de uso con objetivos definidos y en un nivel detallado. El caso de uso normalmente se completa en una sola sesión y una vez que se alcanza el objetivo, el usuario puede continuar con alguna otra actividad.

Historial de puntos de casos de uso

El método de estimación de puntos de casos de uso fue introducido por Gustav Karner en 1993. Posteriormente, el trabajo fue licenciado por Rational Software que se fusionó con IBM.

Proceso de recuento de puntos de casos de uso

El proceso de recuento de puntos de casos de uso tiene los siguientes pasos:

  • Calcular UCP no ajustados
  • Ajuste para la complejidad técnica
  • Ajuste para la complejidad ambiental
  • Calcular UCP ajustados

Paso 1: Calcule los puntos de casos de uso no ajustados.

Primero calcula los puntos de casos de uso no ajustados mediante los siguientes pasos:

  • Determine el peso del caso de uso no ajustado
  • Determine el peso del actor no ajustado
  • Calcular puntos de casos de uso no ajustados

Step 1.1 - Determine el peso del caso de uso no ajustado.

Step 1.1.1 - Encuentre el número de transacciones en cada caso de uso.

Si los casos de uso se escriben con niveles de objetivo de usuario, una transacción equivale a un paso en el caso de uso. Encuentre el número de transacciones contando los pasos en el caso de uso.

Step 1.1.2- Clasifique cada caso de uso como simple, promedio o complejo en función del número de transacciones en el caso de uso. Además, asigne el peso del caso de uso como se muestra en la siguiente tabla:

Complejidad de casos de uso Numero de transacciones Peso del caso de uso
Simple ≤3 5
Promedio 4 a 7 10
Complejo > 7 15

Step 1.1.3- Repita para cada caso de uso y obtenga todos los pesos de casos de uso. El peso de caso de uso no ajustado (UUCW) es la suma de todos los pesos de caso de uso.

Step 1.1.4 - Busque el peso de caso de uso no ajustado (UUCW) utilizando la siguiente tabla -

Complejidad de casos de uso Peso del caso de uso Número de casos de uso Producto
Simple 5 NSUC 5 × NSUC
Promedio 10 NAUC 10 × NAUC
Complejo 15 NCUC 15 × NCUC
Unadjusted Use-Case Weight (UUCW) 5 × NSUC + 10 × NAUC + 15 × NCUC

Dónde,

NSUC es el no. de casos de uso simples.

NAUC es el no. de casos de uso promedio.

NCUC es el no. de casos de uso complejos.

Step 1.2 - Determine el peso del actor no ajustado.

Un actor en un caso de uso puede ser una persona, otro programa, etc. Algunos actores, como un sistema con API definida, tienen necesidades muy simples y aumentan la complejidad de un caso de uso solo ligeramente.

Algunos actores, como un sistema que interactúa a través de un protocolo, tienen más necesidades y aumentan la complejidad de un caso de uso hasta cierto punto.

Otros actores, como un usuario que interactúa a través de la GUI, tienen un impacto significativo en la complejidad de un caso de uso. Con base en estas diferencias, puede clasificar a los actores como simples, promedio y complejos.

Step 1.2.1 - Clasifique a los actores como simples, promedio y complejos y asigne pesos de actores como se muestra en la siguiente tabla -

Complejidad del actor Ejemplo Peso del actor
Simple Un sistema con API definida 1
Promedio Un sistema que interactúa a través de un protocolo 2
Complejo Un usuario que interactúa a través de la GUI 3

Step 1.2.2- Repita para cada actor y obtenga todos los pesos de actor. El peso de actor no ajustado (UAW) es la suma de todos los pesos de actor.

Step 1.2.3 - Encuentre el peso de actor no ajustado (UAW) usando la siguiente tabla -

Complejidad del actor Peso del actor Número de actores Producto
Simple 1 NSA 1 × NSA
Promedio 2 NAA 2 × NAA
Complejo 3 NCA 3 × NCA
Unadjusted Actor Weight (UAW) 1 × NSA + 2 × NAA + 3 × NCA

Dónde,

NSA es el no. de actores simples.

NAA es el no. de actores promedio.

NCA es el no. de actores complejos.

Step 1.3 - Calcular puntos de casos de uso no ajustados.

El peso de caso de uso no ajustado (UUCW) y el peso de actor no ajustado (UAW) juntos dan el tamaño no ajustado del sistema, denominado puntos de caso de uso no ajustado.

Unadjusted Use-Case Points (UUCP) = UUCW + UAW

Los siguientes pasos son ajustar los puntos de casos de uso no ajustados (UUCP) para la complejidad técnica y la complejidad ambiental.

Paso 2: ajuste para la complejidad técnica

Step 2.1 - Considere los 13 factores que contribuyen al impacto de la complejidad técnica de un proyecto en los puntos de casos de uso y sus correspondientes ponderaciones como se indica en la siguiente tabla -

Factor Descripción Peso
T1 Sistema distribuido 2.0
T2 Objetivos de rendimiento de rendimiento o tiempo de respuesta 1.0
T3 Eficiencia del usuario final 1.0
T4 Procesamiento interno complejo 1.0
T5 El código debe ser reutilizable 1.0
T6 Fácil de instalar .5
T7 Fácil de usar .5
T8 Portátil 2.0
T9 Fácil de cambiar 1.0
T10 Concurrente 1.0
T11 Incluye objetivos de seguridad especiales 1.0
T12 Proporciona acceso directo a terceros 1.0
T13 Se requieren instalaciones especiales para la formación de usuarios 1.0

Muchos de estos factores representan los requisitos no funcionales del proyecto.

Step 2.2 - Para cada uno de los 13 Factores, evalúe el proyecto y califíquelo de 0 (irrelevante) a 5 (muy importante).

Step 2.3 - Calcule el impacto del factor a partir del peso de impacto del factor y el valor nominal del proyecto como

Impact of the Factor = Impact Weight × Rated Value

Step (2.4)- Calcular la suma del Impacto de todos los Factores. Esto da el factor técnico total (TFactor) como se indica en la tabla a continuación:

Factor Descripción Peso (W) Valor nominal (0 a 5) (RV) Impacto (I = W × RV)
T1 Sistema distribuido 2.0
T2 Objetivos de rendimiento de rendimiento o tiempo de respuesta 1.0
T3 Eficiencia del usuario final 1.0
T4 Procesamiento interno complejo 1.0
T5 El código debe ser reutilizable 1.0
T6 Fácil de instalar .5
T7 Fácil de usar .5
T8 Portátil 2.0
T9 Fácil de cambiar 1.0
T10 Concurrente 1.0
T11 Incluye objetivos de seguridad especiales 1.0
T12 Proporciona acceso directo a terceros 1.0
T13 Se requieren instalaciones especiales para la formación de usuarios 1.0
Total Technical Factor (TFactor)

Step 2.5 - Calcule el factor de complejidad técnica (TCF) como -

TCF = 0.6 + (0.01 × TFactor)

Paso 3: ajuste para la complejidad ambiental

Step 3.1 - Considere los 8 Factores Ambientales que podrían afectar la ejecución del proyecto y sus correspondientes Pesos como se indica en la siguiente tabla -

Factor Descripción Peso
F1 Familiarizarse con el modelo de proyecto que se utiliza 1,5
F2 Experiencia de aplicación .5
F3 Experiencia orientada a objetos 1.0
F4 Capacidad de analista principal .5
F5 Motivación 1.0
F6 Requisitos estables 2.0
F7 Personal a tiempo parcial -1,0
F8 Lenguaje de programación difícil -1,0

Step 3.2 - Para cada uno de los 8 Factores, evalúe el proyecto y califique de 0 (irrelevante) a 5 (muy importante).

Step 3.3 - Calcule el impacto del factor a partir del peso de impacto del factor y el valor nominal del proyecto como

Impact of the Factor = Impact Weight × Rated Value

Step 3.4- Calcular la suma del Impacto de todos los Factores. Esto da el factor ambiental total (EFactor) como se indica en la siguiente tabla:

Factor Descripción Peso (W) Valor nominal (0 a 5) (RV) Impacto (I = W × RV)
F1 Familiarizarse con el modelo de proyecto que se utiliza 1,5
F2 Experiencia de aplicación .5
F3 Experiencia orientada a objetos 1.0
F4 Capacidad de analista principal .5
F5 Motivación 1.0
F6 Requisitos estables 2.0
F7 Personal a tiempo parcial -1,0
F8 Lenguaje de programación difícil -1,0
Total Environment Factor (EFactor)

Step 3.5 - Calcule el factor ambiental (EF) como -

1.4 + (-0.03 × EFactor)

Paso 4: Calcule los puntos de casos de uso ajustados (UCP)

Calcule los puntos de casos de uso ajustados (UCP) como:

UCP = UUCP × TCF × EF

Ventajas y desventajas de los puntos de casos de uso

Ventajas de los puntos de casos de uso

  • Los UCP se basan en casos de uso y se pueden medir muy temprano en el ciclo de vida del proyecto.

  • UCP (estimación de tamaño) será independiente del tamaño, habilidad y experiencia del equipo que implementa el proyecto.

  • Se encuentra que las estimaciones basadas en UCP son cercanas a las reales cuando la estimación es realizada por personas experimentadas.

  • UCP es fácil de usar y no requiere análisis adicionales.

  • Los casos de uso se utilizan ampliamente como método de elección para describir requisitos. En tales casos, UCP es la técnica de estimación más adecuada.

Desventajas de los puntos de casos de uso

  • UCP se puede usar solo cuando los requisitos están escritos en forma de casos de uso.

  • Depende de casos de uso bien redactados y orientados a objetivos. Si los casos de uso no están bien estructurados o de manera uniforme, es posible que el UCP resultante no sea preciso.

  • Los factores técnicos y ambientales tienen un alto impacto en las UCP. Se debe tener cuidado al asignar valores a los factores técnicos y ambientales.

  • UCP es útil para la estimación inicial del tamaño general del proyecto, pero es mucho menos útil para impulsar el trabajo de iteración a iteración de un equipo.