Clase 6, 5/9/2007

2,832 views

Published on

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,832
On SlideShare
0
From Embeds
0
Number of Embeds
39
Actions
Shares
0
Downloads
134
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Clase 6, 5/9/2007

  1. 1. Metodologías de Análisis Clase 5 – 4/9/2007 Christian Sifaqui
  2. 2. Técnicas de estimación de costos <ul><li>Modelos algorítmicos de estimación de costos </li></ul><ul><li>Juicio experto </li></ul><ul><li>Estimación por analogía </li></ul><ul><li>Ley de Parkinson </li></ul><ul><li>Pricing to win </li></ul><ul><li>Subasta holandesa/Subasta inglesa </li></ul>
  3. 3. Técnicas de estimación de costos Comienza al precio más alto del objeto, el que ningún participante está dispuesto a pagar. Va descendiendo hasta que uno de los participantes anuncia su deseo de pujar. Así obtiene el objeto. Subasta Holandesa Comienza con precio cero y va subiendo. Los participantes comienzan activos deseando comprar a cero. A medida que aumenta el precio, los participantes disminuyen sus demandas. La subasta termina cuando sólo queda un participante activo. Éste es el ganador, paga el precio en el cual el resto de los participantes dejaron de pujar. Subasta Inglesa El costo del software se estima a lo que el cliente tiene disponible para gastar en el proyecto. El esfuerzo estimado depende del presupuesto que el cliente tenga y no de la funcionalidad del software. Pricing to win Esta ley establece que el trabajo se expandirá hasta completar el tiempo disponible. El costo se determina por los recursos disponibles en vez de evaluación objetiva. Si el software se entregará en 12 meses y hay 5 personas disponibles, el esfuerzo requerido se estima en 60 meses-hombre. Ley de Parkinson Esta técnica se aplica cuando otros proyectos en el mismo dominio de aplicación han sido finalizados. El costo del nuevo proyecto se esiam por analogía a estos proyectos finalziados. Estimation por analogía Se consultan algunos expertos en las técnicas de desarrollo de software y el dominio de aplicación propuesto. Ellos estiman el costo del proyecto, estas estimaciones se comparan y discuten. Se itera este proceso de estimación hasta que se logra un acuerdo. Juicio experto Se usa un modelo basado en información histórica de costos que relaciona alguna métrica de software (usualmente su tamaño) al costo del proyecto. Se hace uan estimación de esa métrica y el modelo predice el esfuerzo requerido. Modelos algorítmicos de costos
  4. 4. Estimación bottom-up y top-down <ul><li>En algunas de las aproximaciones anteriores se puede usar top-down o bottom-up </li></ul><ul><li>Top-down </li></ul><ul><ul><li>- Iniciar a nivel de sistema y estimar la funcionalidad total del sistema y cómo esta se entrega a través de sub-sistemas </li></ul></ul><ul><li>Bottom-up </li></ul><ul><ul><li>- iniciar a nivel de componente y estimar el esfuerzo para cada componente. Sume estos esfuerzo para lograr una estimación final </li></ul></ul>
  5. 5. Estimación top-down <ul><li>Usable sin conocimiento de la arquitectura del sistema y las componentes podrían ser parte del sistema </li></ul><ul><li>Toma en cuenta costos como integración, administración de la configuración y documentación </li></ul><ul><li>Puede olvidar considerar el costo de resolver difíciles problemas técnicos de bajo nivel </li></ul>
  6. 6. Estimación bottom-up <ul><li>Usable cuando la arquitectura del sistema es conocida e identificado los componentes </li></ul><ul><li>Puede ser un método exacto si el sistema ha sido diseñado en detalle </li></ul><ul><li>Podría olvidar considerar las actividades de costos de nivel de sistema como integración y documentación </li></ul>
  7. 7. Métodos de estimación <ul><li>Cada método tiene fortalezas y debilidades </li></ul><ul><li>La estimación debería estar basada en varios métodos </li></ul><ul><li>Si no entregan resultados similares, no hay suficiente información disponible para estimar </li></ul>
  8. 8. Juicio experto por analogía <ul><li>Expertos comparan el producto a realizar con productos ya realizados </li></ul><ul><ul><li>Estimaciones pueden guiar a costos incorrectos </li></ul></ul><ul><ul><li>Expertos pueden recolectar datos inexactos </li></ul></ul><ul><ul><li>Expertos humanos tienen sesgos </li></ul></ul><ul><ul><li>Sin embargo, el resultado de una estimación por un grupo amplio de expertos podría ser exacto </li></ul></ul><ul><li>La técnica Delphi se podría requerir para lograr consenso </li></ul>
  9. 9. Modelos de estimación algorítmicos de costos <ul><li>Se usa una métrica del proyecto como entrada a un modelo para calcular costos y duración </li></ul><ul><ul><li>- un modelo algorítmico es no sesgado y por lo tanto superior a una opinión experta </li></ul></ul><ul><ul><li>- sin embargo, las estimaciones son sólo tan buenas como las suposiciones de fondo </li></ul></ul><ul><li>Ejemplos </li></ul><ul><ul><li>- modelo SLIM </li></ul></ul><ul><ul><li>- modelo Price S </li></ul></ul><ul><ul><li>- COCOMO </li></ul></ul>
  10. 10. Métricas para el tamaño de un producto <ul><ul><li>- líneas de código (LOC, KDSI, KLOC) </li></ul></ul><ul><ul><li>- FFP </li></ul></ul><ul><ul><li>- Puntos de función </li></ul></ul>
  11. 11. Líneas de código <ul><ul><li>- métrica alternativa: miles de instrucciones fuente entregadas (KDSI) </li></ul></ul><ul><ul><li>- código fuente es sólo una pequeña parte del esfuerzo de software </li></ul></ul><ul><ul><li>- diferentes lenguajes entregan diferentes largos de código </li></ul></ul><ul><ul><li>- LOC no está definido para lenguajes no-procedurales (LISP o 4GL) </li></ul></ul>
  12. 12. Líneas de código <ul><ul><li>- no es claro cómo contar líneas de código </li></ul></ul><ul><ul><ul><li>- ejecutables </li></ul></ul></ul><ul><ul><ul><li>- definiciones de datos </li></ul></ul></ul><ul><ul><ul><li>- comentarios </li></ul></ul></ul><ul><ul><ul><li>- sentencias de lenguaje de job control </li></ul></ul></ul><ul><ul><ul><li>- líneas cambiadas y/o borradas </li></ul></ul></ul><ul><ul><li>- no todo lo escrito se entrega </li></ul></ul><ul><ul><li>- un generador de reportes, pantallas o GUI puede generar miles de líneas de código en minutos </li></ul></ul>
  13. 13. Líneas de código <ul><ul><li>- LOC se conoce exactamente cuando el proyecto finaliza </li></ul></ul><ul><ul><li>- estimaciones basadas en LOC por lo tanto son poco confiables </li></ul></ul><ul><ul><ul><li>para iniciar un proceso de estimación, se debe estimar las LOC del producto final </li></ul></ul></ul><ul><ul><ul><li>y esta estimación LOC se utiliza para estimar el costo del producto (es decir, una estimación basada en una estimación) </li></ul></ul></ul>
  14. 14. Líneas de código <ul><li>Paradoja de las métricas de líneas de código </li></ul><ul><li>ACTIVITY CASE A CASE B </li></ul><ul><li>ASSEMBLER FORTRAN </li></ul><ul><li>VERSION VERSION </li></ul><ul><li>(10,000 LINES) (3,000 LINES) DIFFERENCE </li></ul><ul><li>-------------- -------------- -------------- </li></ul><ul><li>Requirements 2 Months 2 Months 0 </li></ul><ul><li>Design 3 Months 3 Months 0 </li></ul><ul><li>Coding 10 Months 3 Months - 7 </li></ul><ul><li>Integration/Test 5 Months 3 Months - 2 </li></ul><ul><li>User Documentation 2 Months 2 Months 0 </li></ul><ul><li>Management/Support 3 Months 2 Months - 1 </li></ul><ul><li>-------------- -------------- -------------- </li></ul><ul><li>Total 25 Months 15 Months - 10 </li></ul><ul><li>-------------- -------------- -------------- </li></ul><ul><li>Total Costs $125,000 $75,000 - $50,000 </li></ul><ul><li>Cost Per Source Line $12.50 $25.00 + $12.50 </li></ul><ul><li>Lines Per Person Month 400 200 - 200 </li></ul>
  15. 15. Métricas para el tamaño de un producto <ul><ul><li>- se han propuesto aproximaciones alternativas para estimar el tamaño de un producto </li></ul></ul><ul><ul><ul><ul><li>FFP (files, flows y processes) ‘83 </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Puntos de función ‘79 </li></ul></ul></ul></ul>
  16. 16. FFP <ul><ul><li>- para estimación de costos de productos de procesamiento de datos de tamaño medio </li></ul></ul><ul><ul><ul><li>- file: colección de registros lógica o físicamente relacionados permanentemente residentes en el producto (se excluyen archivos de transacción y temporales) </li></ul></ul></ul><ul><ul><ul><li>- flow: interfaz de datos entre el producto y el ambiente, como una pantalla o un reporte </li></ul></ul></ul><ul><ul><ul><li>- process: manipulación de datos lógica o aritmética, definida funcionalmente </li></ul></ul></ul>
  17. 17. FFP <ul><ul><li>- dado el número de files (Fi), flows (Fl) y processes (Pr) </li></ul></ul><ul><ul><ul><li>el tamaño (s) y el costo (c) se calculan: </li></ul></ul></ul><ul><ul><ul><li>s = Fi + Fl + Pr </li></ul></ul></ul><ul><ul><ul><li>c = d * s </li></ul></ul></ul><ul><ul><ul><li>d: es una constante de eficiencia o productividad dentro de cada organización </li></ul></ul></ul><ul><ul><ul><li>esta métrica no incluye bases de datos </li></ul></ul></ul>
  18. 18. Puntos de función <ul><ul><li>- método para medir desarrollo de software desde el punto de vista del usuario </li></ul></ul>
  19. 19. Puntos de función <ul><li>Entregables </li></ul><ul><ul><li>conteo total de Unadjusted Function Point </li></ul></ul><ul><ul><li>Unadjusted Function Point (EI, EO, EQ, ILF, EIF) </li></ul></ul><ul><ul><li>Value Adjustment Factor (VAF) </li></ul></ul><ul><ul><li>conteo total de Adjusted Function Point </li></ul></ul><ul><ul><li>reportes de validación </li></ul></ul>
  20. 20. Puntos de función <ul><ul><li>- UFP (unadjusted function point) </li></ul></ul><ul><ul><ul><li>- funciones de datos: </li></ul></ul></ul><ul><ul><ul><ul><li>- ILF: internal logical files </li></ul></ul></ul></ul><ul><ul><ul><ul><li>- EIF: external interface files </li></ul></ul></ul></ul><ul><ul><ul><li>- funciones transaccionales: </li></ul></ul></ul><ul><ul><ul><ul><li>- EI: external input </li></ul></ul></ul></ul><ul><ul><ul><ul><li>- EO: external output </li></ul></ul></ul></ul><ul><ul><ul><ul><li>- EQ: external inquiries </li></ul></ul></ul></ul>
  21. 21. Puntos de función <ul><li>Entradas: </li></ul><ul><li>Documentación de los objetivos percibidos, problemas y deseos del usuario </li></ul><ul><li>Documentación recolectada respecto del sistema actual, si es que tal sistema (automático o manual) existiera </li></ul><ul><li>Cualquier objetivo y restricción refinado para el sistema propuesto </li></ul><ul><li>Cualquier otra documentación de requerimientos completada a la fecha </li></ul><ul><li>Formatos y diálogos de pantalla </li></ul><ul><li>Layouts de reportes </li></ul><ul><li>Layouts de formularios de ingreso </li></ul><ul><li>Interfaces con otros sistemas y entre sistemas </li></ul><ul><li>Modelos de datos lógicos y/o físicos preliminares </li></ul>
  22. 22. Puntos de función <ul><li>Paso 1: planificar el conteo de puntos de función (FP) </li></ul><ul><li>El trabajo de contar FP debiera estar incluido en el plan general del proyecto. Contar FP se debe agendar y planificar. El primer conteo debiera usarse para estimar el tamaño. </li></ul><ul><li>Se pueden contar FP antes de completar los requerimientos. El conteo de FP inicial debiera estar documentado, para así mantenerlo y actualizarlo. Se puede completar el conteo antes de tener el conjunto completo de requrimientos, pero el conteo de FP debiera completarse después que se hayan finalizado los requerimientos y de nuevo al finalizar la implementación. </li></ul><ul><li>Después de haber completado el conteo de FP, éste debiera compararse con los valores previos de FP para verificar componentes nuevas o cambiadas. Cada adición al conteo de FP debiera indicar si la actualización se debe a nueva funcionalidad o a una mejora en el conteo. </li></ul>
  23. 23. Puntos de función <ul><li>Paso 2: recolectar la documentación </li></ul><ul><li>Documentación de los objetivos, problemas y necesidades percibidas por el usuario. </li></ul><ul><li>Documentación recolectada respecto del sistema actual, si es que tal sistema (automático o manual) existiera </li></ul><ul><li>Cualquier objetivo y restricción refinado para el sistema propuesto </li></ul><ul><li>Descripción y o modelo del framework general del sistema </li></ul><ul><li>Cualquier otra documentación de requerimientos completada a la fecha </li></ul>
  24. 24. Puntos de función <ul><li>Paso 2: recolectar la documentación </li></ul><ul><li>Se puede completar un FP más detallado después de análisis y diseño </li></ul><ul><li>Se recomienda la siguiente documentación durante y después del completar el diseño. </li></ul><ul><ul><ul><li>Fomatos y diálogos de pantalla </li></ul></ul></ul><ul><ul><ul><li>Formatos y diálogos de pantalla </li></ul></ul></ul><ul><ul><ul><li>Layouts de reportes </li></ul></ul></ul><ul><ul><ul><li>Layouts de formularios de ingreso </li></ul></ul></ul><ul><ul><ul><li>Interfaces con otros sistemas y entre sistemas </li></ul></ul></ul><ul><ul><ul><li>Modelos de datos lógicos y/o físicos preliminares </li></ul></ul></ul><ul><ul><ul><li>Tamaños y formatos de archivos </li></ul></ul></ul><ul><ul><ul><li>Opciones de menús </li></ul></ul></ul>
  25. 25. Puntos de función <ul><li>Paso 3: determinar las 14 características generales del sistema </li></ul><ul><li>Los grados de influencia varían en un escala de 0 a 5 (sin influencia-influencia fuerte) </li></ul>Fuerte influencia 5 Influencia significativa 4 Influencia promedio 3 Influencia moderada 2 Influencia incidental 1 No presente o sin influencia 0 Influencia al sistema Valor
  26. 26. Puntos de función ¿Se diseñó la aplicación para eficiencia al usuario final? End-user efficienciy ¿Qué porcentaje de la información se ingresa en línea? On-line data entry ¿Cuán frecuentemente se ejecutan las transacciones?¿ dirariamente, semanalmente, mensualmente, etc.? Transaction rate ¿Cuánta carga de uso tiene la plataforma de hardware actual donde la aplicación correrá? Heavily used configuration ¿Solicitó el usuario tiempo de respuesta o rendimiento? Performance ¿Cómo son manejados datos y funciones de procesamiento distribuidos? Distributed data processing ¿Cuántos servicios de comunicación existen para ayudar en la transferencia o intercambio de información con la aplicación o sistema? Data communications Breve descripción Característica general del sistema (CGS)
  27. 27. Puntos de función ¿Se diseñó, desarrolló y soportó específicamente para facilitar el cambio? Facilitate change ¿Se diseñó, desarrolló y soportó la aplicación para ser instalada en múltiples sitios para múltiples organizaciones? Multiple sites ¿Cuán efectivos o automáticos son los procedimientos de inicio, respaldo y recuperación? Operational ease ¿Cuán difícil es la conversión e instalación? Installation ease ¿Fue desarrollada la aplicación para solucionar las necesidades de uno o más usuarioas? Reusability ¿La aplicación tiene extensivos procesamientos lógicos o matemáticos? Complex processing ¿Cuántos ILFs se actualizan por transacciones en línea? On-line update Breve descripción Característica general del sistema (CGS)
  28. 28. Puntos de función <ul><li>Paso 4: inventario de transacciones y archivos </li></ul><ul><ul><li>External Inputs (EI) </li></ul></ul><ul><ul><li>External Outputs (EO) </li></ul></ul><ul><ul><li>External Inquiries (EQ) </li></ul></ul><ul><ul><li>Internal Logical Files (ILF) </li></ul></ul><ul><ul><li>External Interface Files (EIF) </li></ul></ul>
  29. 29. Puntos de función <ul><li>Paso 4: inventario de transacciones y archivos </li></ul><ul><li>External Inputs (EI): es un proceso elemental que procesa datos o control de información que proviene desde afuera de la frontera de la aplicación. La primera intención de un EI es mantener uno o más ILF y/o alterar la conducta del sistema </li></ul>ILF A ILF B EI
  30. 30. Puntos de función <ul><li>Paso 4: inventario de transacciones y archivos </li></ul><ul><li>External Outputs (EO): es un proceso elemental que envía datos o información de control afuera de la frontera de la aplicación. La intención primaria de un EO es presentar información a un usuario mediante procesamiento lógico en vez de o adicionalmente a la recuperación de datos o control de información. La lógica de procesamiento debe contener al menos una fórmula matemática o cálculo o crear datos derivados. Un EO también puede mantener uno o más ILFs y/o alterar la conducta del sistema </li></ul>Datos derivados ILF A ILF B EO
  31. 31. Puntos de función <ul><li>Paso 4: inventario de transacciones y archivos </li></ul><ul><li>External Inquiries (EQ): es un proceso elemental que envía datos o información de control afuera de la frontera de la aplicación. La intención primara de un EQ es presentar información a un usuario a través de la recuperación de datos o información de control desde un ILF o EIF. La lógica de proceso no contiene fórmulas matemáticas ni cálculos y no crea datos derivados. Ningún ILF se mantiene durante el procesamiento ni se altera la conducta del sistema </li></ul>ILF A ILF B EQ
  32. 32. Puntos de función <ul><li>Paso 4: inventario de transacciones y archivos </li></ul><ul><li>Internal Logical Files (ILF): es un grupo de datos relacionados lógicamente o de información de control identificable por el usuario mantenida dentro de la frontera de la aplicación </li></ul><ul><li>External Interface Files (EIF): es un grupo de datos -identificable por el usuario- relacionados lógicamente o de información de control referenciado por la aplicación, pero mantenido dentro de la frontera del sistema por otra aplicación. Esto significa que un EIF en una aplicación debe ser un ILF en otra aplicación </li></ul>
  33. 33. Puntos de función <ul><li>Paso 5: clasificación de componentes </li></ul><ul><li>Clasificar cada función como de nivel de complejidad baja, promedio o alta, dependiendo del número de tipo de elementos de datos contenidos y el número de tipos de archivos referenciados </li></ul>Alto Alto Promedio 6+ Alto Promedio Bajo 2-5 Promedio Bajo Bajo 1 51+ 20-50 1-19 Elementos de datos Elementos de registro Para ILF e EIF
  34. 34. Puntos de función <ul><li>Paso 5: clasificación de componentes </li></ul>Alto Alto Promedio 4+ Alto Promedio Bajo 2-3 Promedio Alto Alto 0 ó 1 20+ 6-19 1-5 Elementos de datos Tipos de Archivos Para EO y EQ
  35. 35. Puntos de función <ul><li>Paso 5: clasificación de componentes </li></ul>Alto Alto Promedio 4+ Alto Promedio Bajo 2-3 Promedio Bajo Bajo 0 ó 1 16+ 5-15 1-4 Elementos de datos Tipos de archivos Para EI
  36. 36. Puntos de función <ul><li>Paso 6: determinar el value adjustment factor (VAF) </li></ul><ul><li>- los 14 CGS se deben revisar para asegurar exactitud (a cada CGS se le asigna un valor entre 0 a 5) </li></ul><ul><li>- sumar todos los resultados de los CSG, dividir ese número por 100 y sumarle 0,65 </li></ul><ul><li>- es importante revisar los CSG y VAF, ya que su influencia es de ± 35% en el conteo de FP </li></ul><ul><li>0,65 ≤ VAF ≤ 1,35 </li></ul>
  37. 37. Puntos de función <ul><li>Paso 7: tabular los resultados </li></ul>VAF * UFP Total Adjusted Function Points (FP) Multiplied Value Adjustement Factor (VAF) Número total de Unajusted Function Points (UFP) * 10 = * 7 = * 5 = External Interface Files (EIF) * 15 = * 10 = * 7 = Internal Logical Files (ILF) * 6 = * 4 = * 3 = External Inquiries (EQ) * 7= * 5 = * 4 = External Outputs (EO) * 6 = * 4 = * 3 = External Inputs (EI) Total Alto Promedio Bajo Complejidad de componentes Tipo de componente
  38. 38. Puntos de función <ul><li>Paso 8: validar los resultados </li></ul><ul><li>Los resultados del conteo de FP deben ser revisados por el equipo entero del proyecto y validado por el coordinador de métricas. Las grandes fuentes de errores en el análisis de FP son errores de omisión. Otros errores surgen cuando construcciones físicas se sustituyen por construciones lógicas y son contadas como componentes. El equipo del proyecto debe revisar el análisis de FP por completitud y debe verificar que todos los componentes (EI, EO, EQ, ILF, and EIF) se han incluido. El coordinador de métricas debe trabajar con el contador de FP para asegurar que el proceso ha sido seguido apropiadamente y se ha seguido el proceso de validación. </li></ul><ul><li>Los conteos de FP completados antes del diseño deben ser comparados a los conteos de FP después del diseño completo. Esto será un indicador de cuánto ha crecido la aplicación desde los requerimientos. </li></ul><ul><li>La documentación recomendada al final del proyecto o en la implementación del proyecto debe incluir toda la documentacion mencionada o cualquier documentación adicional del sistema. </li></ul>
  39. 39. Puntos de función <ul><li>Los puntos de función son mejores que los KDSI, pero hay problemas </li></ul><ul><li>“ Errors in excess of 800% counting KDSI, but only 200% in counting function points”, Jones ’87 </li></ul>
  40. 40. Puntos de función <ul><li>La validez económica de la métrica de punto de función </li></ul><ul><li>ACTIVITY CASE A CASE B </li></ul><ul><li>ASSEMBLER FORTRAN </li></ul><ul><li>VERSION VERSION </li></ul><ul><li>(30 F.P.) (30 F.P.) DIFFERENCE </li></ul><ul><li>-------------- -------------- -------------- </li></ul><ul><li>Requirements 2 Months 2 Months 0 </li></ul><ul><li>Design 3 Months 3 Months 0 </li></ul><ul><li>Coding 10 Months 3 Months - 7 </li></ul><ul><li>Integration/Test 5 Months 3 Months - 2 </li></ul><ul><li>User Documentation 2 Months 2 Months 0 </li></ul><ul><li>Management/Support 3 Months 2 Months - 1 </li></ul><ul><li>-------------- -------------- -------------- </li></ul><ul><li>Total 25 Months 15 Months - 10 </li></ul><ul><li>-------------- -------------- -------------- </li></ul><ul><li>Total Costs $125,000 $75,000 - $50,000 </li></ul><ul><li>Cost Per F.P. $4,166.67 $2,500.00 - $1,666.67 </li></ul><ul><li>F.P. Per Person Month 1.2 2.0 + 0.8 </li></ul>
  41. 41. Análisis de puntos de función <ul><li>Como FFP, la mantención puede medirse en forma inexacta </li></ul><ul><li>Es posible hacer cambios grandes sin cambiar </li></ul><ul><ul><li>el número de archivos, flujos y processes </li></ul></ul><ul><ul><li>el número de EI, EO, EQ, ILF, EIF </li></ul></ul><ul><li>En teoría, es posible cambiar cada línea de código sin cambiar el número de líneas de código </li></ul>
  42. 42. Otros <ul><li>MkII FPA, ISO/IEC 20968:2002(E) </li></ul><ul><li>COSMIC-FFP, ISO/IEC 19761:2003 </li></ul>
  43. 43. Modelos algorítmicos de costos <ul><li>Costo se estima como una función matemática de atributos del producto, proyecto y proceso </li></ul><ul><ul><li>Esfuerzo = A * Tamaño B * M </li></ul></ul><ul><ul><li>A es una constante dependiente de la organización, B refleja el esfuerzo desproporcionado para proyecto grandes y M es un multiplicador que refleja atributos del producto, proceso y personas </li></ul></ul><ul><li>El atributo más usado para estimación de costos es tamaño del código </li></ul>
  44. 44. Modelos de estimación de costos <ul><li>Clasificación de V. R. Basili (‘80s) </li></ul>Modelo Dinámico Estático Una variable Multivariable Guiado por tabla ajustada Línea base ajustada
  45. 45. Modelos estáticos: una variable <ul><li>Modelo SEL, Universidad de Maryland (‘80) </li></ul><ul><ul><li>Esfuerzo = 1,4 L 0,93 [H-M] </li></ul></ul><ul><ul><li>Documentación = 30,4 L 0,90 [página] </li></ul></ul><ul><ul><li>Duración = 4,6 L 0,26 [mes] </li></ul></ul><ul><ul><li>L = número de líneas de código fuente (en miles) </li></ul></ul>
  46. 46. Modelos estáticos: multivariable <ul><li>Walston-Felix, IBM (‘77) </li></ul><ul><ul><li>Esfuerzo = 5,2 L 0,91 [H-M] </li></ul></ul><ul><ul><li>Duración = 4,1 L 0,36 [mes] </li></ul></ul><ul><ul><li>L = KLOC entregadas </li></ul></ul><ul><li>A estas ecuaciones se les asocia un método para estimar la productividad, este índice usa 29 variables </li></ul>
  47. 47. Modelos estáticos: multivariable <ul><li>I = índice productividad </li></ul><ul><li>W i = peso para la variable X i </li></ul><ul><li>X i = {-1,0,1} si decrementa, no tiene efecto o incrementa la productividad. </li></ul><ul><li>Esto se aplica a la ecuación de esfuerzo y refina la estimación </li></ul>
  48. 48. Modelos estáticos: multivariable <ul><li>Otros </li></ul><ul><ul><li>COCOMO </li></ul></ul><ul><ul><li>Dot y Associates Model </li></ul></ul><ul><ul><li>GRC </li></ul></ul><ul><ul><li>… </li></ul></ul>
  49. 49. Modelos dinámicos, multivariable <ul><li>Putnam’78: relaciona tamaño, tiempo y costo en la ecuación de software </li></ul><ul><li>Parr’80 </li></ul>
  50. 50. El modelo COCOMO <ul><li>Boehm’s COnstructive COst MOdel </li></ul><ul><li>es un modelo empírico basado en experiencia de proyectos </li></ul><ul><li>tiene una larga historia desde la versión publicada en 1981 (COCOMO 81) hasta COCOMO II. </li></ul><ul><li>COCOMO II toma en cuenta diferentes aproximaciones respecto del desarrollo de software, reuso, etc. </li></ul>
  51. 51. COCOMO 81 <ul><li>Es un modelo que apoya en la planificación de presupuesto y cronograma, antes de iniciar el trabajo </li></ul><ul><li>Es un modelo no lineal de una variable </li></ul><ul><li>esfuerzo = a * TAMAÑO b </li></ul><ul><li>tiempo = c * esfuerzo d </li></ul>
  52. 52. COCOMO 81 <ul><li>Esfuerzo se entrega en unidades [H-M], es decir el número de meses que una persona necesitaría para desarrollar el proyecto </li></ul><ul><li>Tipos: </li></ul><ul><ul><ul><li>Básico </li></ul></ul></ul><ul><ul><ul><li>Intermedio </li></ul></ul></ul><ul><ul><ul><li>Detallado </li></ul></ul></ul>
  53. 53. COCOMO 81 básico <ul><li>Estima rápida y burdamente proyectos pequeños a medianos </li></ul><ul><li>3 modos: </li></ul><ul><ul><li>orgánico </li></ul></ul><ul><ul><li>semi-desconectado </li></ul></ul><ul><ul><li>empotrado </li></ul></ul>
  54. 54. COCOMO 81 básico <ul><li>orgánico </li></ul><ul><li>programadores expertos desarrollan software en ambiente familiar </li></ul><ul><ul><ul><li>E m = 2,4 L k 1,05 [H-M] </li></ul></ul></ul><ul><ul><ul><li>t d = 2,5 E m 0,38 [mes] </li></ul></ul></ul><ul><ul><ul><li>L k = miles de líneas fuente entregadas </li></ul></ul></ul>
  55. 55. COCOMO 81 básico <ul><li>semi-desconectado </li></ul><ul><li>mezcla de gente experta e inexperta </li></ul><ul><ul><ul><li>E m = 3,0 L k 1,12 [H-M] </li></ul></ul></ul><ul><ul><ul><li>t d = 2,5 E m 0,35 [mes] </li></ul></ul></ul>
  56. 56. COCOMO 81 básico <ul><li>empotrado </li></ul><ul><li>hay fuertes restricciones (procesador y hardware) y no han habido proyectos anteriores comparables </li></ul><ul><ul><ul><li>E m = 3,6 L k 1,20 [H-M] </li></ul></ul></ul><ul><ul><ul><li>t d = 2,5 E m 0,32 [mes] </li></ul></ul></ul>
  57. 57. COCOMO 81 básico <ul><li>promedio de personas </li></ul><ul><ul><ul><li>E m / t d </li></ul></ul></ul>
  58. 58. COCOMO 81 intermedio <ul><li>E n , esfuerzo nominal </li></ul><ul><li>Orgánico </li></ul><ul><ul><li>E n = 3,2 L k 1,05 [H-M] </li></ul></ul><ul><li>Semi-desconectado </li></ul><ul><ul><li>E n = 3,0 L k 1,12 [H-M] </li></ul></ul><ul><li>Empotrado </li></ul><ul><ul><li>E n = 2,8 L k 1,20 [H-M] </li></ul></ul><ul><li>15 multiplicadores de esfuerzo afectan E n entregando E t </li></ul><ul><li>t d = 2,5 E t 0,32 </li></ul>
  59. 59. COCOMO 81 intermedio <ul><li>Ejemplo </li></ul><ul><li>Un sistema de comunicaciones hecho en microprocesadores en red y como requerimientos de desarrollo, rendimiento e interfaces  modo empotrado </li></ul><ul><li>10000 líneas de código fuente entregadas  10 KDSI </li></ul><ul><li>Esfuerzo nominal: E n = 2,8 (10) 1,20 = 44 [H-M] </li></ul><ul><li>E t = E n * (multiplicadores de esfuerzo) </li></ul>
  60. 60. COCOMO 81 intermedio <ul><li>multiplicadores de esfuerzo </li></ul><ul><li>Atributos del producto: restricciones y requerimientos para el proyecto </li></ul><ul><ul><ul><ul><li>confiabilidad requerida del software (RELY) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>tamaño de la base de datos (DATA) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>complejidad del producto (CPLX) </li></ul></ul></ul></ul>
  61. 61. COCOMO 81 intermedio <ul><li>multiplicadores de esfuerzo </li></ul><ul><li>Atributos del computador: limitaciones del hardware y sistema operativo </li></ul><ul><ul><ul><ul><li>restricción del tiempo de ejecución (TIME) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>restricción de almacenamiento principal (STOR) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>volatilidad de la máquina virtual (VIRT) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>tiempo turnaround del computador (TURN) </li></ul></ul></ul></ul>
  62. 62. COCOMO 81 intermedio <ul><li>multiplicadores de esfuerzo </li></ul><ul><li>Atributos del personal: nivel de habilidad </li></ul><ul><ul><ul><ul><li>capacidades de analista (ACAP) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>experiencia en aplicaciones (AEXP) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>capacidades de programador (PCAP) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>experiencia en máquina virtual (VEXP) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>experiencia en lenguaje de programación (LEXP) </li></ul></ul></ul></ul>
  63. 63. COCOMO 81 intermedio <ul><li>multiplicadores de esfuerzo </li></ul><ul><li>Atributos del proyecto: restricciones y condiciones respecto del desarrollo del proyecto </li></ul><ul><ul><ul><ul><li>prácticas modernas de programación (MODP) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>uso de herramientas de software (TOOL) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>cronograma de desarrollo requerido (SCED) </li></ul></ul></ul></ul>
  64. 64. COCOMO 81 intermedio <ul><li>Estos 15 multiplicadores se clasifican como muy bajo, bajo, nominal, alto, muy alto y extra alto. </li></ul><ul><li>Una valor menor que 1 puede decrementar el cronograma y esfuerzo, un valor mayor que 1 extiende el cronograma o esfuerzo. </li></ul>
  65. 65. COCOMO 81 intermedio <ul><li>multiplicadores de esfuerzo </li></ul>1.10 1.04 1.00 1.08 1.23 SCED 0.83 0.91 1.00 1.10 1.24 TOOL 0.82 0.91 1.00 1.10 1.24 MODP 0.95 1.00 1.07 1.14 LEXP 0.90 1.00 1.10 1.21 VEXP 0.70 0.86 1.00 1.17 1.42 PCAP 0.82 0.91 1.00 1.13 1.29 AEXP 0.71 0.86 1.00 1.19 1.46 ACAP 1.15 1.07 1.00 0.87 TURN 1.30 1.15 1.00 0.87 VIRT 1.56 1.21 1.06 1.00 STOR 1.66 1.30 1.11 1.00 TIME 1.65 1.30 1.15 1.00 0.85 0.70 CPLX 1.16 1.08 1.00 0.94 DATA 1.40 1.15 1.00 0.88 0.75 RELY Extra alto Muy alto Alto Nominal Bajo Muy bajo
  66. 66. COCOMO 81 intermedio <ul><li>Ejemplo </li></ul><ul><li>Esfuerzo nominal: E n = 2,8 (10) 1,20 = 44 [H-M] </li></ul><ul><li>E t = E n * multiplicadores </li></ul><ul><li>E t = 44 * 1,35 = 59 [H-M] </li></ul><ul><li>t d = 2,5 E t 0,32 = 9,21 [M] </li></ul>Multiplicador Rating Situación Costo 1,35 TOTAL . . . . . . . . . . . . 1,30 muy alto Procesamiento de comunicaciones Complejidad producto 0,94 bajo 20.000 bytes Tamaño de la base de datos 1,15 Alto Serias consecuencias financieras o fallas de software Configuración del software requerido
  67. 67. COCOMO 81 detallado <ul><li>No se verá </li></ul>

×