Puntos de caso de uso (en inglés: Use Case Points o UCP) es un método de estimación de esfuerzo para proyectos de desarrollo de software, basado en sus casos de uso. Fue desarrollado por Gustav Karner en 1993 —bajo la supervisión de Ivar Jacobson— basándose en el método de puntos de función. Ha sido analizado posteriormente en otros estudios, como la tesis de Kirsten Ribu en la Universidad de Oslo (2001).
El método se emplea preferentemente cuando el diseño y desarrollo de software utilizan metodologías como el UML o el RUP.
El método utiliza los actores y casos de uso relevados para calcular el esfuerzo de desarrollo. A los casos de uso se les asigna una complejidad basada en transacciones (interacciones entre el usuario y el sistema), mientras que a los actores se les asigna una complejidad basada en su tipo (interfaz de usuario o interfaz de sistema). Adicionalmente, se aplican factores de entorno y de complejidad técnica para ajustar el resultado final.
Historia La técnica UCP fue desarrollada por Gustav Karner en 1993 mientras trabajaba en Objectory Systems, empresa que más tarde se fusionó con Rational Software y posteriormente con IBM. El método UCP surgió para resolver la problemática de la estimación del tamaño del software en sistemas orientados a objetos. Se basa en principios similares a los del método de estimación de Puntos de Función (PF), pero adaptado a las necesidades específicas de los sistemas orientados a objetos y de los requisitos basados en casos de uso.Murali Chemuturi, (https://books.google.com/books?id=IwEOB2Mfzx0C) Software Estimation Best Practices, Tools and Techniques for Software Project Estimators], J.Ross Publishing, 2009, p. 84-87Dennis, Alan R., Barbara Haley Wixom, and David Tegarden. (https://books.google.com/books?id=iUG7AAAACAAJ) Systems Analysis and Design with UML Version 2.0: An Object-Oriented Approach, Third Edition], John Wiley & Sons, 2009, Capítulo 5 - Functional ModelingDennis, Alan R., Barbara Haley Wixom, and David Tegarden. Systems Analysis and Design with UML Version 2.0: An Object-Oriented Approach, Fourth Edition, John Wiley & Sons, 2012, Capítulo 2 - Project Management
Método El cálculo de puntos de casos de uso se estructura en cuatro etapas:
Cálculo del factor de peso de los actores sin ajustar (UAW, del inglés ). Cálculo del factor de peso de los casos de uso sin ajustar (UUCW, ). Cálculo de los puntos de caso de uso ajustados (UCP, ). Estimación del esfuerzo en horas-persona.
Puntos de caso de uso sin ajustar (UUCP) Al inicio de un proyecto de software, se establece una breve descripción de cada caso de uso y su funcionalidad esperada. Los puntos de casos de uso sin ajustar (UUCP) proporcionan una estimación inicial de la complejidad, considerando los pesos de los actores (UAW) y los pesos de los casos de uso (UUCW).
La fórmula general es:
Donde: UUCP: puntos de casos de uso sin ajustar. UAW: factor de peso de los actores sin ajustar. UUCW: factor de peso de los casos de uso sin ajustar.
Aplicando el análisis de puntos de función a estos casos de uso, se puede obtener una estimación trivial del tamaño y a partir de ella una estimación del esfuerzo.
Factor de peso de los actores sin ajustar (UAW) Este factor evalúa la complejidad de los actores externos que interactúan con el sistema. Se clasifica cada actor según su naturaleza (persona o sistema) y la complejidad de su interfaz.
+ Tabla 1: Peso de los actores sin ajustar. Tipo de actor Descripción FactorSimpleOtro sistema que interactúa con el sistema a desarrollar mediante una interfaz de programación de aplicaciones (API).1MedioOtro sistema interactuando a través de un protocolo (ej. TCP/IP) o una persona interactuando a través de una interfaz en modo texto.2ComplejoUna persona que interactúa con el sistema mediante una interfaz gráfica (GUI).3
El cálculo se realiza mediante la sumatoria de los actores de cada tipo multiplicados por su factor:
Factor de peso de los casos de uso sin ajustar (UUCW) El peso de los casos de uso se determina mediante dos enfoques posibles: basado en transacciones o basado en clases de análisis. Una transacción se define como un conjunto de actividades atómicas que se ejecutan completamente o no se ejecutan en absoluto.
Basado en transacciones Evalúa el número de transacciones que incluye el flujo del caso de uso.
+ Tabla 2: Peso de las transacciones. Tipo de caso de uso Descripción FactorSimple3 transacciones o menos5Medio4 a 7 transacciones10ComplejoMás de 7 transacciones15
Basado en clases de análisis Evalúa el número de clases de análisis que participan en la realización del caso de uso.
+ Tabla 3: Peso de las clases de análisis. Tipo de caso de uso Descripción FactorSimpleMenos de 5 clases5Medio5 a 10 clases10ComplejoMás de 10 clases15
Independientemente del método de clasificación, la fórmula es:
Esta estimación inicial permite obtener una idea del esfuerzo necesario, la cual puede refinarse conforme aumenta la información disponible sobre el sistema.
Puntos de caso de uso ajustados (UCP) Los puntos de caso de uso ajustados (UCP) se obtienen ponderando el valor sin ajustar (UUCP) con factores técnicos y del entorno:
Donde: UCP: puntos de casos de uso ajustados. UUCP: puntos de casos de uso sin ajustar. TCF (Technical Complexity Factor): factores de complejidad técnica. EF (Environmental Factor): factores de entorno o ambientales.
Factores de complejidad técnica (TCF) Se evalúan 13 factores técnicos que impactan en la complejidad del sistema. Cada factor tiene un peso predefinido (T1 a T13). El evaluador asigna un valor de influencia de 0 a 5 a cada factor.
+ Tabla 4: Peso de los factores de complejidad técnica. Factor Descripción Peso T1 Sistema distribuido. 2 T2 Objetivos de performance o tiempo de respuesta. 1 T3 Eficiencia del usuario final. 1 T4 Procesamiento interno complejo. 1 T5 El código debe ser reutilizable. 1 T6 Facilidad de instalación. 0.5 T7 Facilidad de uso. 0.5 T8 Portabilidad. 2 T9 Facilidad de cambio. 1 T10 Concurrencia. 1 T11 Incluye objetivos especiales de seguridad. 1 T12 Provee acceso directo a terceras partes. 1 T13 Se requiere facilidades especiales de entrenamiento a usuario. 1
Escala de evaluación para cada factor: + Tabla 5: Escala de los factores de complejidad técnica. Descripción Valor Irrelevante De 0 a 2. Medio De 3 a 4. Esencial 5
El cálculo del TCF sigue las siguientes fórmulas:
Para realizar este cálculo, se debe evaluar cada factor, asignándole un valor como se menciona anteriormente, después se multiplican y se suma cada producto para obtener el TFactor. Luego, se debe seguir la segunda fórmula multiplicando el TFactor por y sumar el resultado a , esto nos va a dar el TCF.
Factores del entorno (EF) Se evalúan 8 factores relacionados con las habilidades y experiencia del equipo de desarrollo.
+ Tabla 6: Peso de los factores del entorno. Factor Descripción Peso E1 Familiaridad con el modelo de proyecto (RUP/UML). 1,5 E2 Experiencia en la aplicación. 0,5 E3 Experiencia en orientación a objetos. 1 E4 Capacidad del analista líder. 0,5 E5 Motivación. 1 E6 Estabilidad de los requerimientos 2 E7 Personal part-time -1 E8 Dificultad del lenguaje de programación -1
Cada factor se califica del 0 al 5. El cálculo del EF es:
Esfuerzo en horas-persona El cálculo final estima el esfuerzo en horas de trabajo. Históricamente, Karner sugirió utilizar 20 horas-persona por UCP, aunque este valor suele ajustarse según las características del equipo.
Una método común para determinar el factor de horas por UCP es contar cuántos factores ambientales (E1-E6) tienen puntuación menor a 3 y cuántos (E7-E8) son mayores a 3.
+ Tabla 7: Factor del esfuerzo hora-persona. Factor FiltroDe E1 a E6Factor < 3De E7 a E8Factor > 3
Para evaluar el resultado o la cantidad total según la siguiente tabla:
+ Tabla 8: Cantidad de hora-persona según el valor. Hora-persona (CF) Descripción20Si el valor es 28Si el valor es 36Si el valor es
El esfuerzo total estimado (E) es:
Donde: E: esfuerzo estimado en hora-persona. UCP: puntos de casos de uso ajustados. CF: hora-persona.
Generalmente, este resultado representa el esfuerzo de implementación (programación). Karner propone que esto corresponde aproximadamente al 40% del esfuerzo total del ciclo de vida del proyecto.
En la siguiente tabla se detallan la distribución en porcentaje, para el esfuerzo total en el desarrollo del proyecto: ActividadPorcentaje Análisis10%Diseño 20%Programación40%Pruebas15%Sobrecarga15%
Ejemplo Para ilustrar el proceso de cálculo del UCP, se utilizará un sistema de compras en línea. El siguiente diagrama muestra el diagrama de casos de uso del sistema que se va a desarrollar.
Modelo de casos de uso del sistema de compras en línea Peso de caso de uso sin ajustar (UUCW) Para calcular el UUCW, se deben definir los casos de uso e identificar el número de transacciones para cada uno. El diagrama de casos de uso del sistema de compras en línea representa 9 casos de uso: simples medios complejos
El cálculo del UUCW es el siguiente:
Para el sistema de compras en línea:
Peso del actor sin ajustar (UAW) Para calcular el UAW, es necesario identificar a los actores. El diagrama de caso de uso del sistema de compras en línea representa 5 actores: simple (sistema de procesamiento de pagos) medios complejos (cliente en línea, administrador de marketing, empleado y gerente de almacén)
El cálculo del UAW es el siguiente:
Para el sistema de compras en línea:
Factor de complejidad técnica (TCF) Para calcular el TCF, se asigna un valor a cada factor técnico según su importancia para el sistema en desarrollo. El diagrama a continuación muestra los valores asignados al Sistema de Compras en Línea. Los valores se multiplican por los valores ponderados y se determina el TF total.
Factor Descripción Peso Valor asignado Peso x Valor asignado T1 Sistema distribuido 2,0 5 10 T2 Objetivos de rendimiento/tiempo de respuesta 1,0 5 5 T3 Eficiencia del usuario final 1,0 3 3 T4 Complejidad del procesamiento interno 1,0 2 2 T5 Reutilización del código 1,0 3 3 T6 Fácil de instalar 0,5 1 0,5 T7 Fácil de usar 0,5 5 2,5 T8 Portabilidad a otras plataformas 2,0 2 4 T9 Mantenimiento del sistema 1,0 2 2 T10 Procesamiento concurrente/paralelo 1,0 3 3 T11 Características de seguridad 1,0 5 5 T12 Acceso para terceros 1,0 1 1 T13 Capacitación del usuario final 1,0 1 1 Total (TF): 42
El cálculo del TCF es:
Para el sistema de compras en línea:
Factor de complejidad del entorno (ECF) Para calcular el ECF, se asigna un valor a cada factor del entorno según el nivel de experiencia del equipo. El siguiente diagrama indica los valores asignados al sistema de compras online. Estos se multiplican por los valores ponderados (peso) y se determina el EF total.
Factor Descripción Peso Valor asignado Peso x Valor asignado E1 Familiaridad con el proceso de desarrollo utilizado 1,5 3 4,5 E2 Experiencia de aplicación 0,5 3 1,5 E3 Experiencia orientada a objetos del equipo 1,0 2 2 E4 Capacidad de analista líder 0,5 5 2,5 E5 Motivación del equipo 1,0 2 2 E6 Estabilidad de los requisitos 2,0 1 2 E7 Personal a tiempo parcial -1,0 0 0 E8 Lenguaje de programación difícil -1,0 4 -4 Total (EF): 10,5
A continuación se calcula el ECF:
Para el sistema de compras en línea:
Puntos de caso de uso (UCP) Una vez determinados el peso del caso de uso sin ajustar (UUCW), el peso del actor sin ajustar (UAW), el factor de complejidad técnica (TCF) y el factor de complejidad del entorno (ECF), los puntos de caso de uso (UCP) se pueden calcular con la siguiente fórmula:
Para el sistema de compras en línea:
Para el sistema de compras en línea, el tamaño total estimado para desarrollar el software es de 125,06 puntos de caso de uso.
Ahora que se conoce el tamaño del proyecto, se puede estimar el esfuerzo total que requerirá. Para el ejemplo del sistema de compras en línea, se utilizarán 28 horas-persona por cada caso de uso.