Ingeniería de Software UARG-UNPA
Estimación de Esfuerzo con Casos de Uso
Estimación de Esfuerzo con Casos de Uso
Ing. Natalia Bibiana Trejo
Ingeniería de Software UARG-UNPA
Estimación de Esfuerzo con Casos de Uso Estimación de Esfuerzo con Casos de Uso
Necesitamos predecirCuánto tiempo llevará el desarrollo del SWCuántas personas se requieren para hacerlo
Cuánto tiempo llevará al ingeniero de software cumplir una tarea dada depende
principalmente de la complejidad del problema y de las habilidades del ingeniero
Ingeniería de Software UARG-UNPA
Estimación de Esfuerzo con Casos de UsoEstimación de Esfuerzo con Casos de Uso
Necesitamos cuantificarLa complejidad del sistema
• Funcionalidad• Complejidad técnica
El nivel de experiencia de las personas que integran el proyectoEl tiempo necesario para producir una unidad de complejidad
Se pretende obtener un número único que caracterice completamente al sistema y que
se correlacione con la productividad observada del ingeniero
Ingeniería de Software UARG-UNPA
Estimación de Esfuerzo con Casos de UsoEstimación de Esfuerzo con Casos de Uso
Estimador de Punto de Caso de UsoUn método de estimación creado por GustavKarner de Rational Software Corporation
• Caracteriza la complejidad del sistema mediantePuntos de Casos de Uso
• Es usado para obtener una idea del número de horas-hombre para un proyecto
• Se derivó empíricamente y la cantidad de ensayos hasta la fecha muestran que es aplicable satisfactoriamente en aplicaciones de negocio, como los sistemas de información
Ingeniería de Software UARG-UNPA
Estimador de Punto de Caso de UsoEstimador de Punto de Caso de Uso
Este método involucra los siguientes pasosCalcular Puntos de Casos de Uso no Ajustados (UUCP)
• Pesar Actores (UAW) & Pesar CUs (UUCW)UUCP = f (UAW;UUCW) = UAW + UUCW
Calcular Puntos de Casos de Uso (UCP)• Pesar Factores Técnicos (TCF)• Pesar Factores Ambientales (EF)
UCP = f (UUCP; TCF; EF) = UUCP * TCF * EF
Estimar el número de horas-hombreHoras-hombre = f (UCP)
Ingeniería de Software UARG-UNPA
Un ejemploUn ejemplo
Cliente
Cliente Rep
Administrador Soporte al Cliente
Sistema Contable
Sistema de Inventario
Empleado
Registrar Reclamo
Obtener Estado dela Orden
Obtener Catálogo
Login
Cancelar Orden
Ingresar Orden
Devolver Producto
Ejecutar Reportede Ventas
Actualizar Cuenta
ActualizarCantidades del Producto
ObtenerInformación del Producto
Recibir artículosordenados pendientes
Completar y enviarorden
Sistema de procesamiento de órdenes
Compañía de Envío
<<include>>
<<include>>
<<include>>
<<include>>
<<include>><<include>>
<<include>>
<<include>>
Diagrama de Casos de Uso
Ingeniería de Software UARG-UNPA
Calcular UUCPCalcular UUCP
Pesar los ActoresConsiderar la complejidad de los actores determinando si cada actor es una persona u otro sistema y la forma en la que interactúa con el sistema a desarrollar
Una persona interactuando a través de una interfaz gráfica de usuario
Complejo
Otro sistema interactuando a través de un protocolo (ej. TCP/IP) o una persona interactuando a través de una interfaz en modo texto
Promedio
Otro sistema con una API (Application ProgrammingInterface) definida
Simple
DescripciónTipo de actor
Ingeniería de Software UARG-UNPA
Calcular UUCPCalcular UUCP
Pesar los Actores (cont.)Contar cuántos actores de cada tipo existen en el sistemaMultiplicar cada tipo por su factor de peso
3Complejo 2Promedio 1Simple
FactorTipo de actor
Sumar estos productos para obtener el total UAW
Ingeniería de Software UARG-UNPA
Calcular UUCPCalcular UUCP
Pesar los Actores (cont.) Sistema Procesamiento de órdenes
Determinar el tipo para cada actor del sistema
ComplejoVendedor
Promedio Empresa de distribución
PromedioAdministrador de Soporte al Cliente
SimpleSistema de inventario
ComplejoCliente Rep
SimpleSistema Contable
ComplejoCliente
TipoActor
Ingeniería de Software UARG-UNPA
Calcular UUCPCalcular UUCP
Pesar los Actores (cont.) Sistema Procesamiento de órdenes
Contar cuántos actores hay de cada tipo2 Simple, 2 Promedio y 3 Complejo
Multiplicar las cantidades de cada tipo por su peso2 Simple * 1 = 22 Promedio * 2 = 43 Complejo * 3 = 9
Sumar estos productos para obtener el total Total de Pesos de Actores = 15 UAW
Ingeniería de Software UARG-UNPA
Calcular UUCPCalcular UUCP
Pesar los CUs Para cada CU determinar si es simple, promedio o complejo
• Alternativas:Basado en Transacciones o basado en Clases de Análisis
Contar cuántos CU de cada tipo hay en el sistemaMultiplicar la cantidad de cada tipo por el factor de peso de ese tipoSumar estos productos para obtener el total UUCW
Ingeniería de Software UARG-UNPA
Calcular UUCPCalcular UUCP
Pesar los CUs Basado en transacciones
Determinar el número de transacciones en un caso de uso, incluyendo los caminos alternativosUna transacción es un conjunto de actividades atómicas, donde se ejecutan todas ellas o no se ejecuta ninguna
15105
Factor
Más de 7 transaccionesComplejo 4 a 7 transaccionesPromedio 3 transacciones o menosSimple
DescripciónTipo de CU
Ingeniería de Software UARG-UNPA
Sistema de Procesamiento de órdenesSistema de Procesamiento de órdenes
Nombre: Ingresar ordenDescripción breveEste CU describe el proceso mediante el cual las órdenes son ingresadas en el sistema
de procesamiento de órdenes…Flujo de EventosCamino básico1. El CU comienza cuando el cliente selecciona Ingresar Orden en la pantalla principal2. El sistema muestra la pantalla de Ingresar Orden3. El cliente ingresa su nombre y dirección4. El cliente ingresa los códigos de productos a ser ordenados5. Para cada código de producto ingresado
a. Incluir Obtener Información del Productob. El sistema agrega el precio del ítem al total
Fin del bucle6. El cliente ingresa la información de pago de la tarjeta de crédito7. El cliente selecciona Aceptar8. El sistema verifica la información9. El sistema almacena la orden como pendiente – Incluir Almacenar Orden10. Incluir Actualizar Cuenta11. El sistema marca la orden como confirmada – Incluir Actualizar Orden12. El sistema devuelve un ID de orden al cliente y el caso de uso finaliza
Documento de CU
Ingeniería de Software UARG-UNPA
Sistema de Procesamiento de órdenesSistema de Procesamiento de órdenes
Nombre: Ingresar ordenDescripción breve…Flujo de Eventos…Caminos alternativos• Cancelar orden ingresada• Error en el pago• Dirección de envío incompleta• Código de producto no coincide con los productos actuales• El producto ya no se vende• El cliente paga con cheque
Camino alternativo: Cancelar orden ingresadaPrecondición: el usuario no selecciona Enviar1. El camino alternativo comienza cuando el Cliente selecciona Cancelar2. El sistema descarta cualquier información ingresada3. El sistema regresa a la pantalla anterior4. El caso de uso finaliza
Documento de CU
Ingeniería de Software UARG-UNPA
Calcular UUCPCalcular UUCP
Pesar los CUs Sistema de Procesamiento de órdenes
Determinar si los casos de uso son de tipo simple, promedio o complejo
SimpleEjecutar reporte de ventas
SimpleCancelar orden
Promedio Recibir ítems ordenados pendientesPromedioCompletar y enviar orden
SimpleRegistrar reclamo
SimpleEnviar catálogoSimpleObtener estado de orden
Promedio Devolver producto Promedio Ingresar orden
Tipo Caso de Uso
Ingeniería de Software UARG-UNPA
Calcular UUCPCalcular UUCP
Pesar los CUs Sistema de Procesamiento de órdenes
Contar cuántos CUs hay de cada tipo5 Simple, 4 Promedio y 0 Complejo
Multiplicar las cantidades de cada tipo por su peso
5 Simple * 5 = 254 Promedio * 10 = 400 Complejo * 15 = 0
Sumar estos productos para obtener el total Total de Pesos de CUs = 65 UUCW
Ingeniería de Software UARG-UNPA
Calcular UUCPCalcular UUCP
Calcular los Puntos de Caso de Uso No Ajustados
UUCP = UAW + UUCWUUCP Sistema de Procesamiento de órdenes = 15 + 65 = 80
UUCP nos dan una idea de la complejidad de los casos de uso y de sus interfaces, pero …
Qué hay acerca de los factores técnicos y ambientales o del entorno del sistema???
Ingeniería de Software UARG-UNPA
Calcular UCPCalcular UCP
Factores Técnicos
1 Se requieren facilidades especiales de entrenamiento a usuarios T13 1 Provee acceso directo a terceras partes T12 1 Incluye objetivos especiales de seguridad T11 1 ConcurrenciaT10 1 Facilidad de cambio T9 2 PortabilidadT8
0.5 Facilidad de uso T7 0.5 Facilidad de instalación T6 1 El código debe ser reutilizable T5 1 Procesamiento interno complejo T4 1 Eficiencia del usuario final T3 1 Objetivos de performance o tiempo de respuesta T2 2 Sistema distribuido T1
Peso Descripción Factor
Ingeniería de Software UARG-UNPA
Calcular UCPCalcular UCP
Factores TécnicosRecorrer la tabla y estimar cada factor entre 0 y 5
• Un valor de 0 significa que el factor es irrelevante• Un valor de 5 significa que el factor es esencial• Un valor de 3 significa que el valor es promedio
Multiplicar la estimación de cada Factor (TLevel) por su pesoSumar estos productos para obtener el total (TFactor)
Ingeniería de Software UARG-UNPA
Calcular UCPCalcular UCP
Pesar Factores Técnicos Sistema de Procesamiento de órdenes
TFactor = ∑ (TLevel * Peso) = 320
5
3
5
3
0
5
5
0
1
5
3
1
TLevel
0
5
3
5
3
0
2.5
2.5
0
1
5
3
2
TLevel * Peso
Muy fácil por lo que no requiere entrenamiento1T13
Clientes1T12
Seguridad simple1T11
No exactamente, pero es multiusuario1T10
Necesario1T9
No en este momento2T8
Necesita ser fácil para las personas no técnicas0.5T7
Necesita ser fácil para las personas no técnicas0.5T6
Deseable pero más adelante1T5
Fácil procesamiento1T4
Necesita ser eficiente1T3
Velocidad limitada por la entrada de datos del operador1T2
Sistema cliente-servidor2T1
Justificación PesoFactor Técnico
Ingeniería de Software UARG-UNPA
Calcular UCPCalcular UCP
Pesar Factores Técnicos Sistema de Procesamiento de órdenes
TFactor = ∑ (TLevel * Peso) = 32
TCF = 0.6 + (0.01 * TFactor)
TCF = 0.6 + (0.01 * 32) = 0.92
Ingeniería de Software UARG-UNPA
Calcular UCPCalcular UCP
Factores Ambientales
-1Dificultad del lenguaje de programaciónE8
-1Personal part-timeE7
2Estabilidad de los requerimientosE6
1MotivaciónE5
0.5Capacidad del analista líderE4
1Experiencia en orientación a objetosE3
0.5Experiencia en la aplicaciónE2
1.5Familiaridad con el modelo de proyectoE1
PesoDescripción del factorFactor Ambiental
Ingeniería de Software UARG-UNPA
Calcular UCPCalcular UCP
Pesar Factores AmbientalesRecorrer la tabla y estimar cada factor entre 0 y 5
Factores entre E1 y E4• Una estimación de 0 significa sin experiencia; 3 significa experiencia
promedio; 5 significa amplia experienciaFactor E5 (Motivación)
• 0 significa sin motivación; 3 motivación media; 5 significa motivación alta
Factor E6 (Requerimientos estables)• 0 significa requerimientos altamente inestables; 3 estabilidad media; 5
requerimientos establesFactor E7 (Personal Part-Time)
• 0 significa ningún personal part-time; 5 significa que todo el personal es part-time
Factor E8 (Lenguaje de Programación)• 0 significa lenguaje de programación fácil de usar; 5 significa lenguaje
de programación difícil de utilizar
Ingeniería de Software UARG-UNPA
Calcular UCPCalcular UCP
Pesar Factores AmbientalesLuego multiplicamos la estimación para cada factor (ELevel) por su pesoSumamos estos productos para obtener el total (EFactor)
Ingeniería de Software UARG-UNPA
Calcular UCPCalcular UCP
Pesar Factores Ambientales Sistema de Procesamiento de órdenes
EFactor = ∑ (ELevel * Peso) = 20.5305553
3
1
ELevel
-30105
2.53
1.5
1.5
ELevel * Peso
Se programará con Java-1E8 Sin empleados a tiempo parcial-1E7 No se esperan cambios2E6 El equipo está entusiasmado1E5 El líder es idóneo0.5E4 Programadores OO1E3
La mayoría del equipo son programadores0.5E2
La mayoría del equipo no estáfamiliarizado1.5E1
Justificación PesoFactor Ambiental
Ingeniería de Software UARG-UNPA
Calcular UCPCalcular UCP
Pesar Factores Ambientales Sistema de Procesamiento de órdenes
EFactor = ∑ (ELevel * Peso) = 20.5
EF = 1.4 + (-0.03 * EFactor)
EF = 1.4 + (-0.03 * 20.5) = 0.785
Ingeniería de Software UARG-UNPA
Calcular UCPCalcular UCP
Calcular los Puntos de Caso de Uso
UCP = UUCP * TCF * EFUCPsistema de procesamiento de órdenes = 80*0.92*0.785 = 57.77
UCP nos da una idea de la complejidad del sistema ajustado a los factores técnicos y del entorno
Ingeniería de Software UARG-UNPA
Estimación del proyectoEstimación del proyecto
Estimar Horas-hombreEn general, Karner sugiere usar 20 horas-hombre por UCP
Horas-hombre sistema de procesamiento de órdenes = 57.77 * 20 = 1155.52
~ 29 semanas a 40 horas por semana, para una persona
Tomando un equipo pequeño de 6 personas trabajando full-time
~ 5 semanas de esfuerzo
Agregar algunas semanas para trabajar en cualquier problema del equipo
• Lo veremos más adelante
Ingeniería de Software UARG-UNPA
Estimación del proyectoEstimación del proyecto
Estimar Horas-hombreSchneider & Winter sugieren un refinamiento basado en los Factores Ambientales
• Factores EF miden el nivel de experiencia del equipo de desarrollo y la estabilidad del proyecto
• Cualquier problema en este área significa quetendremos que invertir tiempo en el entrenamientode las personas o solucionando problemas debidoa la inestabilidad
Ingeniería de Software UARG-UNPA
Estimación del proyectoEstimación del proyecto
Estimar Horas-hombreSchneider & Winter sugieren un refinamiento basado en los Factores Ambientales
• Se calcula este valor de la siguiente manera:Contar cuántos factores ambientales desde E1 a E6 son inferiores a 3 (valor de nivel promedio) y cuántos de los factores ambientales E7 y E8 son superiores a 3
• Entonces se usan20 horas-hombre por UCP si el valor es ≤ 228 horas-hombre por UCP si el valor es ≤ 436 horas-hombre por UCP si el valor es ≥ 5
» En este caso considerar modificar el proyecto ya quees muy riesgoso
Ingeniería de Software UARG-UNPA
Calcular UCPCalcular UCP
Pesar Factores Ambientales Sistema de Procesamiento de órdenes
Tenemos un EF inferior al promedio => 20 horas-hombre por UCP3
0
5
5
5
3
3
1
ELevel
-3
0
10
5
2.5
3
1.5
1.5
ELevel * Peso
Se programará con Java-1E8
Sin empleados a tiempo parcial-1E7
No se esperan cambios2E6
El equipo está entusiasmado1E5
El líder es idóneo0.5E4
Programadores OO1E3
La mayoría del equipo son programadores
0.5E2
La mayoría del equipo no familiarizado1.5E1
Justificación Peso
Factor Ambiental
Es inferior a 3Es inferior a 3
Ingeniería de Software UARG-UNPA
Estimación del proyectoEstimación del proyecto
Estimar Horas-hombreEl valor de esfuerzo estimado se refiere solamente a las horas-hombre invertidas en el desarrollo de la funcionalidad especificada en los CUsUn nuevo ajuste consiste en sumar a la estimación de esfuerzo obtenida por UCP, las estimaciones de esfuerzo de las demás actividades relacionadas con el desarrollo del software, distribuidas según la siguiente aproximación:
15%Sobrecarga (otras actividades)15%Pruebas40%Programación20%Diseño10%Análisis
PorcentajeActividad
Ingeniería de Software UARG-UNPA
Estimación del proyectoEstimación del proyecto
Estimar Horas-hombre Sistema Procesamiento de órdenes
Horas-hombre sistema de procesamiento de órdenes = 57.77 * 20 = 1155.52
2888.8100%TOTAL Esfuerzo
15%
15%
40%
20%
10%
Porcentaje
433.32Sobrecarga (otras actividades)
433.32Pruebas
1155.52Programación
577.76Diseño
288.88Análisis
Horas-hombreActividad
~ 72 semanas a 40 horas por semana, para una personaTomando un equipo de 6 personas trabajando full-time~ 12 semanas de esfuerzo
Top Related