Planificación de Proyectos de Software<br />Iván Sánchez<br />Ronald Sáenz<br />Gissellor<br />Karen Navarro<br />Muñoz<br...
El Comienzo<br />En el principio se pidieron los proyectos de Software.<br />Los proyectos estaban desordenados y vacíos, ...
Introducción<br />Antes de comenzar se debe estimar…<br />Esfuerzo, tiempo, personal y demás recursos..<br />Luego de esti...
Objetivos<br />Resolver problemas corriente arriba a bajo costo.<br />La experiencia dice que el proyecto promedio gasta 8...
Objetivos<br />Proporcionar un Marco de Trabajo que permita al gestor estimar razonablemente los recursos, costo y program...
Actividades<br />La planificación del proyecto del software abarca 5 grandes actividades:<br /><ul><li>Estimación
Programa de Trabajo
Análisis de Riesgos
Planificación de la Gestión de Calidad
Planificación de la Gestión del Cambio</li></li></ul><li>Los expertos dicen<br />Nuestras técnicas de estimación están pob...
La Estimación<br />No necesita realizarse en una forma improvisada.<br />La experiencia es una gran ayuda.<br />La estimac...
La Estimación<br />Variabilidad en requisitos = inestabilidad<br />Un gestor no debe obsesionarse con las estimaciones.<br />
Conjunto de Tareas para la Planificación de un Proyecto<br />Establecer el ámbito del proyecto.<br />Determinar Factibilid...
Ambito del Software<br />Describe:<br />Funciones<br />Características<br />Entradas<br />Salidas<br />Contenido a Present...
Ambito del Software<br />Divide y Vencerás<br />Muchas veces es bueno refinar.<br />Las estimaciones de costo y el program...
Factibilidad<br />Cuatro elementos esenciales:<br />Tecnología<br />Finanzas<br />Tiempo<br />Recursos<br />
Recursos<br />Divididos en Tres Grandes Categorías:<br />Personal<br />Componentes de Software Reutilizables<br />Entorno<...
La Trinidad<br />
Recursos Humanos<br />El planificador debe especificar:<br />Habilidades Requeridas<br />Posición Organizacional<br />Espe...
Recursos de Software Reutilizables<br />Ingeniería de Software basada en Componentes.<br />Énfasis en la reutilización<br ...
Recursos del Entorno<br />Hardware<br />Software (Herramientas de Desarrollo)<br />
Estimación<br />Un gran error en la estimación puede hacer la diferencia entre Ganancia o Perdida.<br />
Estimación<br />Nunca es exacta<br />Mientras mas se conozca menos errores serios se cometerán.<br />Implica muchas variab...
¿Como lograr estimaciones Confiables?<br />
Estimación<br />Usar Datos Históricos<br />
Técnicas de Descomposición<br />El problema a resolver es muy complejo para considerarlo una sola pieza<br />Descomponer e...
Tamaño del Software<br />
Estimación Basada en el Problema<br />Métricas basadas en la Productividad<br />LDC/pm<br />PF/pm<br />Combinaciones<br />
Estimación Basada en el Problema<br />
Estimación<br />Una mejor estimación viene dada por:<br />S = (Sopt + 4Smed + Spes)/6<br />cálculo de la desviación de las...
Estimación basada en LDC<br />Descomposición funcional absolutamente esencial<br />considerables niveles de detalle<br />L...
Ejemplo<br />
Estimación basada en PF<br />Los datos requeridos para estimar los Puntos de Función son más macroscópicos que en LDC.<br ...
Ejemplo<br />
LDC o PF Esperados<br />A partir de los datos históricos o (cuando todo lo demás falla) usando su intuición, el planificad...
Estimación basada en el Proceso<br />Técnica más habitual<br />El proceso se descompone en actividades o tareas y el esfue...
Pasos de la Estimación basada en el Proceso<br />delimitar las funciones obtenidas a partir del ámbito del software<br />a...
Ejemplo<br />
Estimación basada en Casos de Uso<br />Permiten que el equipo de software comprenda mejor el ámbito y los requisitos.<br /...
Metodología General a Usar con Estimación de Casos de Uso<br />
¿Cómo Estimar usando Casos de Uso?<br />
Reconciliación de Estimaciones<br />La estimacion por LDC, PF y basadas en el proceso se realizan independientemente.<br /...
Técnicas Delfi<br />Desarrolladas con el fin de obtener el consenso de un grupo de expertos sin contar con los efectos neg...
Modelos Empíricos de Estimación<br />Modelos empíricos de estimación:<br />Utilizan fórmulas derivadas empíricamente para ...
Ecuaciones de los Modelos Empiricos<br />
Observaciones<br />Se nota claramente que cada uno de los modelos (ecuaciones) producira un resultado diferente para los m...
Cocomo<br />El Modelo Constructivo de Costos (COnstructiveCOstModel) es una jerarquía de modelos de estimación para el sof...
Jerarquías de Cocomo<br />El modelo COCOMO básico es un modelo univariable estático que calcula el esfuerzo (y el costo) d...
Cocomo Orientado a los Tipos de proyecto de software <br />Modelo Orgánico. Proyectos de software relativamente pequeños y...
Cocomo Ejemplo<br />El chino lo pondra en esta diapo<br />
COCOMO II<br />Es una Evolución del COCOMO original propuesto por Boehm<br />Aborda las siguientes áreas:<br />Modelo de c...
Puntos Objeto<br />Son una manera indirecta de calcular el tamaño del software por medio de conteo de:<br />Pantallas de i...
Puntos Objeto<br />Estimando el % de reutilizacion se ajusta la cuenta de PO<br /><ul><li>NPO = (PO) * [(100- %reut)/100]<...
Técnicas de Estimación especializadas<br />
Estimación Orientada a Objetos<br />Estimaciones en PF o LDC<br />Aplicar el modelado de análisis OO.<br />Determinar el n...
Estimación para Desarrollo Ágil<br />Los requerimiento en este tipo de proyectos se presentan como un conjunto de escenari...
Los Expertos Dicen<br />Es mejor Comprender el trasfondo de una estimación antes de utilizarla.<br />
Estimación para Ingeniería Web<br />Los proyectos WEB adoptan el modelo de desarrollo ágil<br />Se usa un enfoque de punto...
¿Desarrollar o Comprar?<br />
Árbol de Decisión<br />La organización tiene estas opciones:<br />Construir el Sistema desde 0<br />Reutilizar Componentes...
Árbol de Decisión<br />$ 380000<br />$ 450000<br />$ 275000<br />$ 310000<br />$ 490000<br />$ 210000<br />$ 400000<br />$...
Subcontratación<br />Es extremadamente simple.<br />Las actividades de ingeniería del software se contratan con una tercer...
¿Cuáles son las claves del éxito?<br />“Q: What are the most exciting/promising software engineering ideas or techniques o...
¿A qué se refiere Parnas?<br />PRÁCTICAS EN PLANIFICACIÓN – GESTIÓN DE PROYECTOS<br />Automated estimation tools (1973)<br...
Calendarización<br />
En que consiste la Calendarización<br />En crear una rede de tareas de ingeniería que le permitirán tener el trabajo listo...
¿Por qué es importante?<br />Construcción de un sistema  complejo <br />Tareas de ingeniería ocurren en paralelo<br />Resu...
Calendarización Adecuada<br />Requiere:<br />Que todas las tareas aparezcan en la red<br />Esfuerzo y tiempo asignados int...
¿Por qué se entregan el software con retraso?<br />Fecha limite irrealizable establecida por externo e impuesta<br />Cambi...
Los Expertos dicen<br />“Cualquier comandante en jefe que pretenda lleva  a cabo un plan que considera defectuoso comete u...
“Adoro las Fechas limite. Me gusta cuando pasan como una exhalación cuando se alejan.”<br />Douglas Adams<br />
Lo que no se debe hacer<br />Presentarse ante el cliente y demandarle que cambie la fecha de entrega impuesta por el merca...
Generalidades<br />Objetivo del gestor<br />Definir tareas<br />Construir la red de tareas<br />Bosquejar las interdepende...
Generalidades<br />Cientos de tareas deben realizarse para completar la meta mayor<br />Algunas tareas se pueden completar...
Principios Básicos de Calendarización<br />Compartimentación<br />Interdependencia<br />Asignación de Tiempo<br />Validaci...
Interdependencia<br />Algunas tareas deben ocurrir en secuencia<br />Otras pueden ocurrir en paralelo<br />Algunas tareas ...
Asignación de Tiempo<br />A cada tarea se debe asignar cierto numero de unidades de trabajo (personas – días de esfuerzo)<...
Relación entre Personal y Esfuerzo<br />Mito: “Si nos retrasamos en la calendarización siempre podemos incorporar mas prog...
Relación entre Personal y Esfuerzo<br />Las calendarizaciones de proyecto son elásticas.<br />Es posible comprimir en cier...
Curva Putnam-Norden-Rayleigh (PNR)<br />
Curva Putnam-Norden-Rayleigh (PNR)<br />Indica que un proyecto no se puede comprimir mas allá de 0.75 td<br />Si se intent...
Curva Putnam-Norden-Rayleigh (PNR)<br />La ecuación del software se obtiene de la curva PNR<br />Relación enormemente line...
Conclusiones de PNR<br />Se pueden obtener beneficios al emplear menos personal durante un periodo un poco mas largo para ...
Distribución del Esfuerzo<br />Regla 40-20-40<br />40% de todos los esfuerzos se asignan al análisis y el diseño de sistem...
10 CLAVESDE UN PROYECTO CON ÉXITO<br />Evitar los errores clásicos<br />No ignorar las bases del desarrollo<br />Gestión a...
PLANIFICACIÓN…<br />
Visión Clara del Proyecto<br />Sin una clara visión un proyecto puede terminar en cualquier punto.<br />Los equipos trabaj...
Requisitos estables, completos y escritos<br />2<br />
Los cambios en los requisitos…<br />Riesgo más común en un proyecto<br />Requisitos estables al 100% es casi imposible<br ...
Técnicas para definir Requisitos estables<br />Requirementsworkshop<br />User interface prototyping<br />User interview<br...
Prototipos de Interfaz de Ususario<br />Técnica Orientada al riesgo más común en un proyecto... El cambio en los requisito...
Gestión de Proyectos Efectiva<br />La “pobre” gestión – planificación es el segundo riesgo más común.<br />4<br />
Responsabilidades de un Jefe de Proyecto<br />Una buena gestión software requiere (NECESITA) significativas habilidades.<b...
Estimaciones Precisas<br />Las expectativas Injustificadas o no realistas son la mayor causa de los problemas<br />El esta...
Exactitud de la Estimación y mejora<br />
Resultados Reales como Porcentaje deResultados Estimados<br />
Efecto de la Estimación<br />
Estimación Precisa<br />La estimación es una habilidad técnica especializada<br />Tratar la estimación como un mini proyec...
“No morir por la planificación”<br />Evitar las dos causas de sobre planificación...<br />Planes inamovibles<br />Planes e...
Ajuste en la Planificación<br />Tiempo<br />
Enfoque en la Calidad<br />7<br />
¿Por qué centrarse en la calidad?<br />En la mayoría de los proyectos, el trabajo de corregir defectos no previstos es el ...
No olvidar las bases del desarrollosoftware<br />Los fundamentos de Gestión<br />Siempre antes que los de Ingeniería<br />...
Gestión Activa de los Riesgos<br />9<br />
Sobre la Gestión de Riesgos…<br />Según un estudio de KPMG…<br />55% de los proyectos descontrolados no tenían gestión de ...
Gestión de Riesgos<br />
Riesgos más comunes (Best Hits)<br />Cambio en los Requisitos<br />Meticulosidad en Requisitos o Desarrollo<br />Escatimar...
El Factor Humano<br />Seguir Desarrollando<br />
IEEE Std 830-1998<br />Indica como realizar un documento de<br />especificación de requisitos de software (SRS).<br />• Es...
De aquí en Adelante son diapos que no se si van a ir en la presentacion final<br />
¿Por qué Planificar?<br />• Boehm, 1975: 45% de los errores tienen su origen<br />en los requisitos y en el diseño prelimi...
Upcoming SlideShare
Loading in...5
×

Planificacion De Proyectos De Software

27,782

Published on

Como realizar una buena planificacion de proyectos en el software,,,, beta

Published in: Education
4 Comments
7 Likes
Statistics
Notes
No Downloads
Views
Total Views
27,782
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
1,154
Comments
4
Likes
7
Embeds 0
No embeds

No notes for slide

Planificacion De Proyectos De Software

  1. 1. Planificación de Proyectos de Software<br />Iván Sánchez<br />Ronald Sáenz<br />Gissellor<br />Karen Navarro<br />Muñoz<br />Andrea Estrella<br />Katichula<br />Megan Fox<br />
  2. 2. El Comienzo<br />En el principio se pidieron los proyectos de Software.<br />Los proyectos estaban desordenados y vacíos, y las tinieblas estaban sobre la haz del abismo, y el Espíritu de Dios se movía sobre este mar de Caos.<br />Y dijo Dios: Sea la Planificación: y fue la Planificación.<br />Y vio Dios que la Planificación era buena: y apartó Dios la Planificación del desorden…<br />
  3. 3. Introducción<br />Antes de comenzar se debe estimar…<br />Esfuerzo, tiempo, personal y demás recursos..<br />Luego de estimar se debe planificar…<br />Establecer un Plan de Proyecto que <br />defina tareas y fechas clave, <br />identificar responsables por <br />tareas y especificar <br />dependencias entre tareas.<br />
  4. 4. Objetivos<br />Resolver problemas corriente arriba a bajo costo.<br />La experiencia dice que el proyecto promedio gasta 80 por ciento de su tiempo en reelaboración: corrigiendo errores que se cometieron en etapas tempranas del proyecto.<br />
  5. 5. Objetivos<br />Proporcionar un Marco de Trabajo que permita al gestor estimar razonablemente los recursos, costo y programa de trabajo.<br />Adaptar y actualizar el plan conforme se avance en el proyecto.<br />
  6. 6. Actividades<br />La planificación del proyecto del software abarca 5 grandes actividades:<br /><ul><li>Estimación
  7. 7. Programa de Trabajo
  8. 8. Análisis de Riesgos
  9. 9. Planificación de la Gestión de Calidad
  10. 10. Planificación de la Gestión del Cambio</li></li></ul><li>Los expertos dicen<br />Nuestras técnicas de estimación están pobremente desarrolladas. Mas seriamente, reflejan una suposición no expresada que es bastante incierta, es decir: que todo ira bien…<br />Frederick Brooks, 1975<br />
  11. 11. La Estimación<br />No necesita realizarse en una forma improvisada.<br />La experiencia es una gran ayuda.<br />La estimación implica riesgo inherente, y este conduce a la incertidumbre.<br />El riesgo de la estimación se mide por el grado de incertidumbre en las estimaciones cuantitativas para recursos, costos y programa de trabajo.<br />
  12. 12. La Estimación<br />Variabilidad en requisitos = inestabilidad<br />Un gestor no debe obsesionarse con las estimaciones.<br />
  13. 13. Conjunto de Tareas para la Planificación de un Proyecto<br />Establecer el ámbito del proyecto.<br />Determinar Factibilidad<br />Analizar Riesgos.<br />Definir los recursos requeridos (humanos, software, etc).<br />Estimar costo y Esfuerzo<br />Descomponer el problema<br />Desarrollar 2 o mas estimaciones (Ej: puntos de función, casos de uso, etc…)<br />Desarrollar un Plan de Proyecto<br />Establecer un conjunto de tareas significativo.<br />Definir una red de tareas.<br />Desarrollar un cronograma con Herramientas de Planificación<br />Definir mecanismos de seguimiento del programa de trabajo.<br />
  14. 14. Ambito del Software<br />Describe:<br />Funciones<br />Características<br />Entradas<br />Salidas<br />Contenido a Presentar<br />Desempeño<br />Restricciones<br />Interfaces<br />Confiabilidad a entregar al Usuario final.<br />
  15. 15. Ambito del Software<br />Divide y Vencerás<br />Muchas veces es bueno refinar.<br />Las estimaciones de costo y el programa de trabajo están funcionalmente orientadas, por eso es útil cierto grado de descomposición.<br />
  16. 16. Factibilidad<br />Cuatro elementos esenciales:<br />Tecnología<br />Finanzas<br />Tiempo<br />Recursos<br />
  17. 17. Recursos<br />Divididos en Tres Grandes Categorías:<br />Personal<br />Componentes de Software Reutilizables<br />Entorno<br />
  18. 18. La Trinidad<br />
  19. 19. Recursos Humanos<br />El planificador debe especificar:<br />Habilidades Requeridas<br />Posición Organizacional<br />Especialidad<br />El personal puede estar Geográficamente disperso.<br />
  20. 20. Recursos de Software Reutilizables<br />Ingeniería de Software basada en Componentes.<br />Énfasis en la reutilización<br />Componentes ya desarrollados.<br />Adquirir componentes de Terceros.<br />Componentes Experimentados<br />Componentes de Experiencia Parcial<br />No inventar el Agua Tibia<br />
  21. 21. Recursos del Entorno<br />Hardware<br />Software (Herramientas de Desarrollo)<br />
  22. 22. Estimación<br />Un gran error en la estimación puede hacer la diferencia entre Ganancia o Perdida.<br />
  23. 23. Estimación<br />Nunca es exacta<br />Mientras mas se conozca menos errores serios se cometerán.<br />Implica muchas variables <br />Humanas<br />Técnicas<br />Ambientales<br />Políticas<br />etc<br />
  24. 24. ¿Como lograr estimaciones Confiables?<br />
  25. 25. Estimación<br />Usar Datos Históricos<br />
  26. 26. Técnicas de Descomposición<br />El problema a resolver es muy complejo para considerarlo una sola pieza<br />Descomponer el problema en problemas mas pequeños<br />Hacer el problema mas MANEJABLE<br />
  27. 27. Tamaño del Software<br />
  28. 28. Estimación Basada en el Problema<br />Métricas basadas en la Productividad<br />LDC/pm<br />PF/pm<br />Combinaciones<br />
  29. 29. Estimación Basada en el Problema<br />
  30. 30. Estimación<br />Una mejor estimación viene dada por:<br />S = (Sopt + 4Smed + Spes)/6<br />cálculo de la desviación de las estimaciones<br />
  31. 31. Estimación basada en LDC<br />Descomposición funcional absolutamente esencial<br />considerables niveles de detalle<br />LDC se estima directamente.<br />
  32. 32. Ejemplo<br />
  33. 33. Estimación basada en PF<br />Los datos requeridos para estimar los Puntos de Función son más macroscópicos que en LDC.<br />Nivel de descomposición considerablemente menos detallado que en LDC.<br />PF se determina indirectamente mediante la estimación del número de entradas, salidas, archivos de datos, peticiones e interfaces externas, entre otras.<br />
  34. 34. Ejemplo<br />
  35. 35. LDC o PF Esperados<br />A partir de los datos históricos o (cuando todo lo demás falla) usando su intuición, el planificador estima los valores optimista, más probable y pesimista de LDC o de PF para cada función. Cuando lo que se especifica es un rango de valores, implícitamente se proporciona una indicación del grado de incertidumbre.<br />Entonces, se calcula el valor esperado de LDC o de PF. El valor esperado para la variable de estimación, E, se obtiene como una medida ponderada de las estimaciones LDC o PF óptima (a), más probable (m) y pesimista (b). <br />
  36. 36. Estimación basada en el Proceso<br />Técnica más habitual<br />El proceso se descompone en actividades o tareas y el esfuerzo requerido para llevar a cabo cada tarea<br />Se presentan las tareas en forma de tabla<br />
  37. 37. Pasos de la Estimación basada en el Proceso<br />delimitar las funciones obtenidas a partir del ámbito del software<br />actividades del proceso para cada función<br />estimación de esfuerzo (persona-mes) para cada actividad<br />en cada función<br />aplicación de índices de trabajo medios (esfuerzo coste/unidad) al esfuerzo estimado para cada actividad<br />cálculo de costes y esfuerzo de cada función y de la actividad<br />
  38. 38. Ejemplo<br />
  39. 39. Estimación basada en Casos de Uso<br />Permiten que el equipo de software comprenda mejor el ámbito y los requisitos.<br />El uso de casos de uso es a veces problemático porque:<br /> no existe un formato estándar.<br />Representan una visión externa con diferentes grados de abstracción<br />No abordan la complejidad de las funciones ni de las características<br />Los expertos recomiendan no usar mas de 10 casos de Uso con no mas de 30 escenarios<br />
  40. 40. Metodología General a Usar con Estimación de Casos de Uso<br />
  41. 41. ¿Cómo Estimar usando Casos de Uso?<br />
  42. 42. Reconciliación de Estimaciones<br />La estimacion por LDC, PF y basadas en el proceso se realizan independientemente.<br />Cuando se tienen algunas estimaciones de costo y esfuerzo se pueden comparar y armonizar.<br />Si tienen un buen grado de concordancia son confiables las estimaciones.<br />Si son poco concordantes los resultados de las estimaciones, entonces se debe investigar y analizar mejor<br />
  43. 43. Técnicas Delfi<br />Desarrolladas con el fin de obtener el consenso de un grupo de expertos sin contar con los efectos negativos de las reuniones de grupos. La técnica puede adaptarse a la estimación de costos de la siguiente manera:<br />Un coordinador proporciona a cada experto la documentación con la definición del sistema y una papeleta para que escriba su estimación.<br />Cada experto estudia la definición y determina su estimación en forma anónima; los expertos pueden consultar con el coordinador, pero no entre ellos.<br />El coordinador prepara y distribuye un resumen de las estimaciones efectuadas, incluyendo cualquier razonamiento extraño efectuado por alguno de los expertos.<br />Los expertos realizan una segunda ronda de estimaciones, otra vez anónimamente, utilizando los resultados de la estimación anterior. En los casos que una estimación difiera mucho de las demás, se podrá solicitar que también en forma anónima el experto justifique su estimación.<br />El proceso se repite varias veces como se juzgue necesario, impidiendo una discusión grupal durante el proceso.<br />
  44. 44. Modelos Empíricos de Estimación<br />Modelos empíricos de estimación:<br />Utilizan fórmulas derivadas empíricamente para predecir el esfuerzo como una función de LDC o PF.<br />Datos empíricos obtenidos de una muestra de proyectos:<br />difíciles de usar para todas las clases de software y todos los entornos de desarrollo<br />se deben calibrar para las condiciones específicas de una organización<br />
  45. 45. Ecuaciones de los Modelos Empiricos<br />
  46. 46. Observaciones<br />Se nota claramente que cada uno de los modelos (ecuaciones) producira un resultado diferente para los mismos valores de LDC o PF.<br />Los modelos deben CALIBRARSE para las necesidades locales<br />
  47. 47. Cocomo<br />El Modelo Constructivo de Costos (COnstructiveCOstModel) es una jerarquía de modelos de estimación para el software.<br />Las ecuaciones del modelo COCOMO básico tienen la siguiente forma:<br />E = ab (KLDC) exp (bb)<br />D = cb (E) exp (db)<br />donde E es el esfuerzo aplicado en personas-mes, D es el tiempo de desarrollo en meses cronológicos y KLDC es el número estimado de Líneas de Código distribuídas (en miles) para el proyecto.<br />Las ecuaciones del modelo COCOMO intermedio toma la forma:<br />E = ai (KLDC) exp (bi) x FAE<br />donde E es el esfuerzo aplicado en personas-mes, KLDC es el número estimado de Líneas de Código distribuídas para el proyecto.<br />
  48. 48. Jerarquías de Cocomo<br />El modelo COCOMO básico es un modelo univariable estático que calcula el esfuerzo (y el costo) del desarrollo de software en función del tamaño del programa expresando en líneas de código (LDC) estimadas.<br />El modelo COCOMO intermedio calcula el esfuerzo del desarrollo de software en función del tamaño del programa y de un conjunto de “conductores de costo”, que incluyen la evaluación subjetiva del producto, del hardware, del personal y de los atributos del proyecto.<br />El modelo COCOMO avanzado incorpora todas las características de la versión intermedia y lleva a cabo una evaluación de impacto de los conductores de costo en cada fase (análisis, diseño, etc.) del proceso de ingeniería de software.<br />
  49. 49. Cocomo Orientado a los Tipos de proyecto de software <br />Modelo Orgánico. Proyectos de software relativamente pequeños y sencillos en los que trabajan pequeños equipos, con buena experiencia en la aplicación, sobre el conjunto de requisitos poco rígidos (por ejemplo, un programa de análisis termal desarrollado para un grupo calórico).<br />Modelo Semiacoplado. Proyectos de software intermedios (en tamaño y complejidad) en los que los equipos, con variados niveles de experiencia, deben satisfacer requisitos poco o medio rígidos (por ejemplo, un sistema de procesamiento de transacciones con requisitos fijos para un hardware de terminal o un software de gestión de base de datos).<br />Modelo Empotrado. Proyectos de software que deben ser desarrollados en un conjunto de hardware, software y restricciones operativas muy restringidas (por ejemplo, software de control de navegación para un avión).<br />
  50. 50. Cocomo Ejemplo<br />El chino lo pondra en esta diapo<br />
  51. 51.
  52. 52. COCOMO II<br />Es una Evolución del COCOMO original propuesto por Boehm<br />Aborda las siguientes áreas:<br />Modelo de composición de la aplicación<br />Modelo de la etapa de diseño temprano<br />Modelo de etapa posterior a la arquitectura<br />Tres opciones de Tamaño:<br />Puntos de Funcion PF<br />Lineas de Codigo Fuente LDC<br />Puntos Objeto PO<br />
  53. 53. Puntos Objeto<br />Son una manera indirecta de calcular el tamaño del software por medio de conteo de:<br />Pantallas de interfaz de usuario<br />Reportes<br />Componente requeridos para las construcción de la aplicación.<br />Las ponderaciones se basan en una tabla<br />Se determina el numero de PO y se multiplica por la ponderacion<br />Se suman todos los resultados para obtener una cuenta total de PO.<br />
  54. 54. Puntos Objeto<br />Estimando el % de reutilizacion se ajusta la cuenta de PO<br /><ul><li>NPO = (PO) * [(100- %reut)/100]</li></ul>Para obtener la estimacion de esfuerzo se debe calcular la tasa de Productividad<br /><ul><li>PROD = NPO/persona-mes</li></ul>Una vez obtenida pasamos a estimar el esfuerzo<br /><ul><li>Esfuerzo Estimado = NPO/PROD</li></li></ul><li>La Ecuación del Software<br />Es un modelo multivariable<br />Supone una distribución especifica del esfuerzo a lo largo de la vida del proyecto<br />E = [LDC * B0.333/P]3 * (1/t4)<br />E = Esfuerzo en Personas-mes o Personas-año<br />T = duración del proyecto en meses o años<br />B = “Factor especial de habilidades”<br />P = Parámetro de productividad<br />
  55. 55. Técnicas de Estimación especializadas<br />
  56. 56. Estimación Orientada a Objetos<br />Estimaciones en PF o LDC<br />Aplicar el modelado de análisis OO.<br />Determinar el numero de Clases Clave<br />Categorizar el tipo de interfaz para la aplicación y desarrollar un multiplicador<br />Multiplicar el numero total de clases por el numero promedio de unidades de trabajo por clase.<br />
  57. 57. Estimación para Desarrollo Ágil<br />Los requerimiento en este tipo de proyectos se presentan como un conjunto de escenarios de usuario.<br />Se puede estimar de manera mas informal.<br />Se usan los enfoques de LDC o PF orientados a escenarios<br />
  58. 58. Los Expertos Dicen<br />Es mejor Comprender el trasfondo de una estimación antes de utilizarla.<br />
  59. 59. Estimación para Ingeniería Web<br />Los proyectos WEB adoptan el modelo de desarrollo ágil<br />Se usa un enfoque de puntos de función modificado<br />Entradas: Cada pantalla o formato de entrada incluidas las de mantenimiento (CGI o JAVA)<br />Salidas: Cada pagina Web estática, cada guion de pagina Web dinámica y cada reporte (ASP, DHTML)<br />Tablas: Cada tabla lógica en la DB y cada objeto XML<br />Consultas: Cada interfaz publicada externamente (referencias externas DCOM o COM)<br />Los PF son un indicador razonable del volumen para un WebApp<br />
  60. 60. ¿Desarrollar o Comprar?<br />
  61. 61. Árbol de Decisión<br />La organización tiene estas opciones:<br />Construir el Sistema desde 0<br />Reutilizar Componentes existentes de “experiencia parcial”<br />Comprar un Producto disponible y modificarlo.<br />Contratar una empresa externa para el desarrollo.<br />
  62. 62. Árbol de Decisión<br />$ 380000<br />$ 450000<br />$ 275000<br />$ 310000<br />$ 490000<br />$ 210000<br />$ 400000<br />$ 350000<br />$ 500000<br />
  63. 63. Subcontratación<br />Es extremadamente simple.<br />Las actividades de ingeniería del software se contratan con una tercera parte que realiza el trabajo a un costo mas bajo<br />Efecto negativo que la compañía pierde cierto control sobre el software<br />Corre el riesgo de poner el destino de su competitividad en manos de una tercera parte<br />
  64. 64. ¿Cuáles son las claves del éxito?<br />“Q: What are the most exciting/promising software engineering ideas or techniques on the horizon?<br />A: I don’t think that the most promising ideas are on the horizon. They are already here and have been here for years but are not being used properly.”<br />David L. Parnas<br />
  65. 65. ¿A qué se refiere Parnas?<br />PRÁCTICAS EN PLANIFICACIÓN – GESTIÓN DE PROYECTOS<br />Automated estimation tools (1973)<br />Evolutionarydelivery (1988)<br />Measurement (1977)<br />Productivityenvironments (1984)<br />Riskmanagementplanning (1981)<br />PRÁCTICAS EN INGENIERÍA DE REQUISITOS<br />Changeboard (1979)<br />Throwawayuser interface prototyping (1975)<br />JAD sessions (1985)<br />Requirements (1989)<br />
  66. 66. Calendarización<br />
  67. 67. En que consiste la Calendarización<br />En crear una rede de tareas de ingeniería que le permitirán tener el trabajo listo a tiempo.<br />Una vez creada la red debe asignar responsabilidades a cada tarea<br />Asegurarse que las tareas se realicen<br />Adaptar la red conforme los riesgos se vuelvan realidad<br />
  68. 68. ¿Por qué es importante?<br />Construcción de un sistema complejo <br />Tareas de ingeniería ocurren en paralelo<br />Resultado de trabajo realizado durante una tarea pude tener un profundo efecto en el trabajo llevado a cabo en otra tarea.<br />Interdependencia difíciles de entender sin calendarización<br />
  69. 69. Calendarización Adecuada<br />Requiere:<br />Que todas las tareas aparezcan en la red<br />Esfuerzo y tiempo asignados inteligentemente por tarea<br />Interdependencias entre tareas indicadas adecuadamente<br />Recursos asignados para el trabajo<br />Hitos espaciados de modo cercano para poder seguir el progreso<br />
  70. 70. ¿Por qué se entregan el software con retraso?<br />Fecha limite irrealizable establecida por externo e impuesta<br />Cambio en los requisitos no reflejados en modificaciones en la calendarización<br />Subestimación de la cantidad de esfuerzo y recursos<br />Riesgos no considerados (Predecibles y no Predecibles)<br />Dificultades humanas imprevisibles<br />Dificultades técnicas no previstas<br />Falta de Comunicación entre el personal<br />Falla en la Gestión del Proyecto<br />
  71. 71. Los Expertos dicen<br />“Cualquier comandante en jefe que pretenda lleva a cabo un plan que considera defectuoso comete un error; debe exponer sus razones, insistir en que el plan debe cambiarse y finalmente presentar su renuncia en lugar de ser el instrumento de la destrucción de su ejercito”<br />Napoleón<br />
  72. 72. “Adoro las Fechas limite. Me gusta cuando pasan como una exhalación cuando se alejan.”<br />Douglas Adams<br />
  73. 73. Lo que no se debe hacer<br />Presentarse ante el cliente y demandarle que cambie la fecha de entrega impuesta por el mercado.<br />Rechazar el trabajo<br />¿Que hacer?<br />Estimación Detallada<br />Aplicar un Modelo de proceso Incremental<br />Explicar al cliente por que la fecha es irrealizable con la estimación detallada<br />Funcionalidad faltante se entregara despues<br />
  74. 74. Generalidades<br />Objetivo del gestor<br />Definir tareas<br />Construir la red de tareas<br />Bosquejar las interdependencias entre las tareas<br />Identificar las tareas cruciales y darles seguimiento<br />La calendarización evoluciona a lo largo del tiempo. <br />Una calendarización Macroscópica se realiza durante las primeras etapas de la planificación<br />
  75. 75. Generalidades<br />Cientos de tareas deben realizarse para completar la meta mayor<br />Algunas tareas se pueden completar sin preocuparse de su impacto sobre la fecha de terminación del proyecto<br />
  76. 76. Principios Básicos de Calendarización<br />Compartimentación<br />Interdependencia<br />Asignación de Tiempo<br />Validación del Esfuerzo<br />Definición de Responsabilidades<br />Definición de Resultados<br />Definición de Hitos<br />
  77. 77. Interdependencia<br />Algunas tareas deben ocurrir en secuencia<br />Otras pueden ocurrir en paralelo<br />Algunas tareas no pueden comenzar mientras el producto de trabajo producido por otras tareas no este disponible<br />
  78. 78. Asignación de Tiempo<br />A cada tarea se debe asignar cierto numero de unidades de trabajo (personas – días de esfuerzo)<br />Asignar fecha de inicio y terminación en función de las interdependencias<br />
  79. 79. Relación entre Personal y Esfuerzo<br />Mito: “Si nos retrasamos en la calendarización siempre podemos incorporar mas programadores y recuperarnos mas adelante en el proyecto”.<br />Esto tiene un efecto perturbador en el equipo de trabajo<br />Provoca mas desfases<br />Las personas agregadas recientemente deben aprender el sistema y la gente que les enseña es la misma que estaba trabajando<br />
  80. 80. Relación entre Personal y Esfuerzo<br />Las calendarizaciones de proyecto son elásticas.<br />Es posible comprimir en cierta medida la fecha de terminación deseada del proyecto (al añadir recursos adicionales).<br />
  81. 81. Curva Putnam-Norden-Rayleigh (PNR)<br />
  82. 82. Curva Putnam-Norden-Rayleigh (PNR)<br />Indica que un proyecto no se puede comprimir mas allá de 0.75 td<br />Si se intenta mayor compresión el proyecto cae en la región imposible y el riesgo de fracaso se eleva mucho<br />La opcion de entrega de menor costo es<br />to = 2td<br />Esto implica que la demora en la entrega puede reducir los costos significativamente<br />
  83. 83. Curva Putnam-Norden-Rayleigh (PNR)<br />La ecuación del software se obtiene de la curva PNR<br />Relación enormemente lineal entre el tiempo cronológico para completar un proyecto y el esfuerzo humano aplicado a este.<br />L = P * E1/3t4/3<br />E = L3/(P3t4) es el esfuerzo humano en personas año durante el ciclo de vida para el desarrollo<br />T es el tiempo en años<br />
  84. 84. Conclusiones de PNR<br />Se pueden obtener beneficios al emplear menos personal durante un periodo un poco mas largo para lograr el mismo objetivo<br />
  85. 85. Distribución del Esfuerzo<br />Regla 40-20-40<br />40% de todos los esfuerzos se asignan al análisis y el diseño de sistemas de entrada.<br />40% en poner a prueba los sistemas de salida<br />20% en codificación<br />Esta distribución de esfuerzo es solo una guía.<br />Las características del proyecto deben dictar la distribución del esfuerzo.<br />Planeación = 2% – 3%<br />
  86. 86. 10 CLAVESDE UN PROYECTO CON ÉXITO<br />Evitar los errores clásicos<br />No ignorar las bases del desarrollo<br />Gestión activa del riesgo<br /> Métodos de Planificación<br />
  87. 87. PLANIFICACIÓN…<br />
  88. 88. Visión Clara del Proyecto<br />Sin una clara visión un proyecto puede terminar en cualquier punto.<br />Los equipos trabajan para lograr las metas que se les fijan.<br />Muchos Objetivos = no Objetivos<br />Una buena visión establece prioridades<br />¿Qué tipo de desarrollo rápido quiere?<br />Speedoriented<br />Schedule-riskoriented<br />Visibilityoriented<br />1<br />
  89. 89. Requisitos estables, completos y escritos<br />2<br />
  90. 90. Los cambios en los requisitos…<br />Riesgo más común en un proyecto<br />Requisitos estables al 100% es casi imposible<br />La mayoría de los cambios en los requisitos vienen de requisitos que definidos de forma incompleta la primera vez, y no por “cambios de mercado” u otras razones similares.<br />
  91. 91. Técnicas para definir Requisitos estables<br />Requirementsworkshop<br />User interface prototyping<br />User interview<br />Use cases<br />User manual<br />Usabilitystudies<br />Incremental delivery<br />Requirementsreviews/inspections<br />
  92. 92. Prototipos de Interfaz de Ususario<br />Técnica Orientada al riesgo más común en un proyecto... El cambio en los requisitos<br />Implican a los usuarios de forma amigable<br />Bajo coste, corta planificación y alta satisfacción del usuario<br />Es necesario tener habilidad para desarrollar prototipos exitosos<br />3<br />
  93. 93. Gestión de Proyectos Efectiva<br />La “pobre” gestión – planificación es el segundo riesgo más común.<br />4<br />
  94. 94. Responsabilidades de un Jefe de Proyecto<br />Una buena gestión software requiere (NECESITA) significativas habilidades.<br />Estimación del Alcance<br />Análisis de Tiempo, Esfuerzo y Coste<br />Selección del Ciclo de Vida<br />Planificación de la Calidad<br />Personal Técnico<br />Gestión de Riesgos<br />
  95. 95. Estimaciones Precisas<br />Las expectativas Injustificadas o no realistas son la mayor causa de los problemas<br />El estado del arte es dramáticamente mejor que el estado de la práctica<br />5<br />
  96. 96. Exactitud de la Estimación y mejora<br />
  97. 97. Resultados Reales como Porcentaje deResultados Estimados<br />
  98. 98. Efecto de la Estimación<br />
  99. 99. Estimación Precisa<br />La estimación es una habilidad técnica especializada<br />Tratar la estimación como un mini proyecto<br />Tener un plan de reestimación periódica<br />
  100. 100. “No morir por la planificación”<br />Evitar las dos causas de sobre planificación...<br />Planes inamovibles<br />Planes excesivamente detallados<br />6<br />
  101. 101. Ajuste en la Planificación<br />Tiempo<br />
  102. 102. Enfoque en la Calidad<br />7<br />
  103. 103.
  104. 104. ¿Por qué centrarse en la calidad?<br />En la mayoría de los proyectos, el trabajo de corregir defectos no previstos es el mayor coste (40 – 80 % del total)<br />Centrarnos en la calidad tiene un impacto económico positivo<br />La calidad debe ser planificada durante el proyecto, no<br />puede añadirse al final<br />
  105. 105. No olvidar las bases del desarrollosoftware<br />Los fundamentos de Gestión<br />Siempre antes que los de Ingeniería<br />Estimación, Planificación, Seguimiento y Medición<br />Las Bases Técnicas<br />Requisitos, Diseño, Construcción, Gest. Configuración, etc.<br />Las Bases del Control de Calidad<br />Pruebas, Inspecciones, etc.<br />8<br />
  106. 106. Gestión Activa de los Riesgos<br />9<br />
  107. 107.
  108. 108. Sobre la Gestión de Riesgos…<br />Según un estudio de KPMG…<br />55% de los proyectos descontrolados no tenían gestión de riesgos<br />38% tenían algo, pero la mitad de estos no usó los riesgos hallados una vez que el proyecto comenzó<br />7% no sabe si utilizó gestión de riesgos<br />sobre un 80% de los proyectos comenzados no mantenían una gestión de riesgos significativa<br />Más del 50% de los proyectos muestran sus problemas durante el inicio del desarrollo<br />Sobre el 25% muestran sus problemas durante la planificación inicial<br />
  109. 109.
  110. 110.
  111. 111.
  112. 112.
  113. 113. Gestión de Riesgos<br />
  114. 114.
  115. 115. Riesgos más comunes (Best Hits)<br />Cambio en los Requisitos<br />Meticulosidad en Requisitos o Desarrollo<br />Escatimar en Calidad<br />Planificaciones Demasiado Optimistas<br />Diseño Inadecuado<br />Síndrome de la &quot;Bala de Plata“<br />Desarrollo Orientado a la Investigación<br />Personal Mediocre<br />No definición de Roles y Responsables<br />Error en la Contratación<br />Diferencias entre Desarrolladores y Clientes<br />Falta de Sponsor<br />Falta de información del Usuario<br />Añadir gente a un proyecto retrasado<br />Sobreestimar de nuevas herramientas o métodos<br />Cambio de herramientas en mitad del proyecto<br />Falta de control automatizado del código fuente<br />
  116. 116. El Factor Humano<br />Seguir Desarrollando<br />
  117. 117.
  118. 118. IEEE Std 830-1998<br />Indica como realizar un documento de<br />especificación de requisitos de software (SRS).<br />• Establecer las bases para el acuerdo de lo que el<br />software realizará entre clientes y proveedores.<br />• Reducir el esfuerzo de desarrollo.<br />• Proveer las bases para estimar el costo y<br />calendarios.<br />• Proveer líneas base para validación y verificación<br />• Sirve de base para realizar mejoras.<br />
  119. 119. De aquí en Adelante son diapos que no se si van a ir en la presentacion final<br />
  120. 120. ¿Por qué Planificar?<br />• Boehm, 1975: 45% de los errores tienen su origen<br />en los requisitos y en el diseño preliminar.<br />• DeMarco, 1984: 56% de los errores que tienen<br />lugar en un proyecto software se deben a una mala<br />especificación de requisitos.<br />• Chaos Report, 1995: Los factores principales que<br />conducen al fracaso en los proyectos software son:<br />– Falta de comunicación con los usuarios.<br />– Requisitos incompletos.<br />– Cambios a los requisitos.<br />
  121. 121. ¿Es lo Mismo?<br />
  122. 122. Estimación basada en Casos de Uso<br />La construcción de software es “human-intensive”.<br />Software es intangible.<br />El software depende del hardware y de otro software.<br />Más y más sistemas son actualmente controlados por software.<br />Una de las partes más críticas de un proyecto informático es averiguar lo que costara desarrollarlo.<br />
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×