Ingeniería del   Software      ULEAM 2012
Planificación de Proyectos de                     Software
El ComienzoEn el principio se pidieron los proyectos deSoftware.Los proyectos estaban desordenados yvacíos, y las tiniebla...
L   a gestión de un proyecto desoftware comienza con un conjuntode actividades que globalmente sedenominan       planifica...
ImportanciaSiempre queestimamos, estamos mirandohacia el futuro y aceptamosresignadoscierto grado deincertidumbre  Existen...
Task¿Qué es la Estimación?¿Cuál es la importancia de laestimación?
OBSERVACIONES SOBRE LA ESTIMACIÓN
Observaciones sobre la estimación
TaskEscribe tus conclusiones y       comentarios
ObservaciONES sobre la estimaciónA un destacado ejecutivo se le preguntó una vezpor la característica más importante que d...
ObservaciONES sobre la estimaciónLa estimación de recursos, costes yplanificación temporal de un esfuerzoen el desarrollo ...
La estimación conlleva un riesgoinherente y es este riesgo el que lleva ala incertidumbre.
Task¿Qué entendemos como Incertidumbre?
IMPORTANTE   Antes de comenzar se debe estimar…     Esfuerzo,   tiempo, personal y demás recursos..   Luego de estimar ...
Objetivos   Resolver problemas corriente arriba a bajo costo.   La experiencia dice que el proyecto promedio gasta 80 po...
Objetivos Proporcionar   un Marco de  Trabajo que permita al gestor  estimar razonablemente los  recursos, costo y progra...
Los expertos dicen   Nuestras técnicas de estimación están pobremente    desarrolladas. Mas seriamente, reflejan una    s...
La Estimación   No necesita realizarse en una forma    improvisada.   La experiencia es una gran ayuda.   La estimación...
La Estimación Variabilidad en requisitos =  inestabilidad Un gestor no debe  obsesionarse con las  estimaciones.
Conjunto de Tareas para laPlanificación de un Proyecto   Establecer el ámbito del proyecto.   Determinar Factibilidad  ...
ÁMBITO DEL SOFTWARE
Ambito del SoftwareDescribe:      Funciones      Características      Entradas      Salidas      Contenido a Presenta...
Obtención de la información necesaria para el ámbitoEl primer conjunto de cuestiones de contexto libre se centran enel cli...
Las preguntas siguientes permiten que el analista comprendamejor el problema y que el cliente exprese sus percepcionessobr...
La última serie de preguntas se centra en la efectividad dela reunión. Gause y Weinberg las llaman «metacuestiones» ypropo...
Ambito del Software          Divide y Vencerás   Muchas veces es bueno refinar.   Las estimaciones de costo y el program...
VIABILIDADCuatro elementos esenciales:                       Tecnología                       Finanzas                  ...
RecursosDivididos en Tres Grandes  Categorías:    Personal    Componentes     de     Software     Reutilizables    Ento...
La Trinidad                       Personal                     Proyecto       Software                                  En...
Recursos Humanos   El planificador debe especificar:     Habilidades   Requeridas     Posición   Organizacional     Es...
Recursos de Software ReutilizablesIngeniería de Software basada en Componentes. Énfasisen la reutilización.Categorías de s...
Para que la reutilización sea  eficiente, los componentes   de software deben estarcatalogados, estandarizados y          ...
Recursos del Entorno  Hardware  Software  (Herramientas de   Desarrollo)
Recuerde   Un gran error en la estimación puede    hacer la diferencia entre Ganancia o    Perdida.          Mala        ...
La Estimación del proyecto de softwarea.   La estimación nunca es exacta, en un principio el     costo era mínimo hoy en d...
¿Como lograr estimaciones Confiables?   Hacer una estimación al 100 %   Basarse en proyectos similares   Descomposición Si...
Usar Datos Históricos                d = f (Vi)Donde d es uno de los valores estimados(por ejemplo, esfuerzo, coste, durac...
Técnicas deDescomposición
Técnicas de Descomposición           ¿Porqué utilizarla?   El problema a resolver es muy complejo para    considerarlo un...
Tamaño del SoftwareLa precisión de una estimación del proyecto de software sepredice basándose en: El grado con el cual se...
   El «tamaño» del software o construir puede    estimarse     utilizando    una     medida    directa, LDC, o uno medida...
Estimación basada en el Problema
Estimación basada en el ProblemaMétricas basadas en la Productividad                LDC/pm                 PF/pm        ...
Estimación Basada en el Problema
Estimación basada en el Problema        Para estimaciones de PFLa descomposición se centra en lascaracterísticas del   dom...
calculo media ponderada                 Mas                     ValorOptimista                  Pesimista               Pr...
Estimación basada en LDC   Descomposición funcional absolutamente    esencial   considerables niveles de detalle   LDC ...
Ejemplo E. basada en elproyecto
Estimación basada en PF   Los datos requeridos para estimar los    Puntos    de     Función    son    más    macroscópico...
Ejemplo: Estimación basa en PF Factor de ajustede la complejidad
FACTOR DE AJUSTE DE LA COMPLEJIDAD:     Características generales del sistema   Nivel de influencia    1- Comunicación de ...
LDC o PF Esperados A partir de los datos históricos o (cuando  todo lo demás falla) usando su intuición, el  planificador...
Estimación basada en el Proceso
La técnica más común para estimar un proyectoes basar la estimación en el proceso que seva a utilizar. Es decir, el proces...
Estimación basada en el                 Proceso   Técnica más habitual   El proceso se descompone en actividades o    ta...
Pasos de la Estimación basada en el                  Proceso   Delimitar las funciones obtenidas a partir del ámbito del ...
Ejemplo
Modelos Empíricos de  EstimaciónModelos empíricos de estimación:   Utilizan fórmulas derivadas empíricamente para predeci...
Ecuaciones de los ModelosEmpíricos
Observaciones   Se nota claramente que cada uno de los modelos    (ecuaciones) producirá un resultado diferente para los ...
CocomoEl Modelo Constructivo de Costos (COnstructive COst Model) es unajerarquía de modelos de estimación para el software...
Jerarquías de Cocomo   El modelo COCOMO básico es un modelo univariable    estático que calcula el esfuerzo (y el costo) ...
Cocomo Orientado a los Tiposde proyecto de software   Modelo Orgánico. Proyectos de software relativamente    pequeños y ...
COCOMO II   Es una Evolución del COCOMO original propuesto por    Boehm   Aborda las siguientes áreas:        Modelo de...
¡Analice el siguiente ejemplo!
Puntos Objeto   Son una manera indirecta de calcular el tamaño del    software por medio de conteo de:        Pantallas ...
Puntos Objeto   Estimando el % de reutilización se ajusta la cuenta de    PO        NPO = (PO) * [(100- %reut)/100]   P...
La Ecuación del Software   Es un modelo multivariable   Supone una distribución especifica del esfuerzo a lo    largo de...
Técnicas de  Estimaciónespecializadas
Estimación Orientada aObjetos en PF o LDCEstimaciones   Aplicar el modelado de análisis OO.   Determinar el numero de C...
Estimación para DesarrolloÁgil   Los requerimiento en este tipo de proyectos se    presentan como un conjunto de escenari...
Los Expertos Dicen   Es mejor Comprender el trasfondo de una estimación    antes de utilizarla.
Estimación para Ingeniería   Web    Los proyectos WEB adoptan el modelo de desarrollo ágil   Se usa un enfoque de puntos...
¿Desarrollar o  Comprar?
Árbol de Decisión    La organización tiene estas opciones:1.    Construir el Sistema desde 02.    Reutilizar Componentes ...
Árbol de Decisión                             Simple (0.30)     $ 380000                Construir                         ...
Subcontratación   Es extremadamente simple.   Las actividades de ingeniería del software se contratan    con una tercera...
PLANIFICACION TEMPORAL            YSEGUIMIENTO DEL PROYECTO
¿Por qué se entrega elsoftware con retraso?   Fecha limite irrealizable establecida por externo e    impuesta   Cambio e...
“Adoro las Fechas limite. Megusta cuando pasan como unaexhalación cuando se alejan.”                Douglas Adams
Lo que no se debe hacer   Presentarse ante el cliente y demandarle que cambie la    fecha de entrega impuesta por el merc...
Generalidades   Objetivo del gestor        Definir tareas        Construir la red de tareas        Bosquejar las inter...
Generalidades   Cientos de tareas deben realizarse para completar la    meta mayor   Algunas tareas se pueden completar ...
Calendarización
En que consiste laCalendarización   En crear una red de tareas de ingeniería que le    permitirán tener el trabajo listo ...
¿Por qué es importante?   Construcción de un sistema complejo   Tareas de ingeniería ocurren en paralelo   Resultado de...
Calendarización AdecuadaRequiere:   Que todas las tareas aparezcan en la red.   Esfuerzo y tiempo asignados inteligentem...
Principios Básicos deCalendarización   Compartimentación   Interdependencia   Asignación de Tiempo   Validación del Es...
Interdependencia   Algunas tareas deben ocurrir en secuencia   Otras pueden ocurrir en paralelo   Algunas tareas no pue...
Asignación de Tiempo   A cada tarea se debe asignar cierto numero de unidades    de trabajo (personas – días de esfuerzo)...
Relación entre Personal yEsfuerzo   Mito: “Si nos retrasamos en la calendarización siempre    podemos incorporar mas prog...
Relación entre Personal yEsfuerzo   Las calendarizaciones de proyecto son elásticas.   Es posible comprimir en cierta me...
Curva Putnam-Norden-Rayleigh (PNR)
Lectura ejemploCapitulo 7 pág. 115
LITERA   Actividad                          Predecesor   DuraciL                                                        ón...
Ejercicio
CarátulaÍndice1. Introducción (análisis de la necesidad) (1-2 caras)1.1. Problema (1 cara)1.2. Objetivos (General – Especí...
Planificacion de proyectos
Planificacion de proyectos
Planificacion de proyectos
Planificacion de proyectos
Planificacion de proyectos
Planificacion de proyectos
Planificacion de proyectos
Planificacion de proyectos
Planificacion de proyectos
Planificacion de proyectos
Planificacion de proyectos
Planificacion de proyectos
Planificacion de proyectos
Planificacion de proyectos
Próxima SlideShare
Cargando en…5
×

Planificacion de proyectos

2.255 visualizaciones

Publicado el

Publicado en: Educación
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
2.255
En SlideShare
0
De insertados
0
Número de insertados
2
Acciones
Compartido
0
Descargas
76
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Planificacion de proyectos

  1. 1. Ingeniería del Software ULEAM 2012
  2. 2. Planificación de Proyectos de Software
  3. 3. El ComienzoEn el principio se pidieron los proyectos deSoftware.Los proyectos estaban desordenados yvacíos, y las tinieblas estaban sobre la hazdel abismo, y el Espíritu de Dios se movíasobre este mar de Caos.Y dijo Dios: Sea la Planificación: y fue laPlanificación.Y vio Dios que la Planificación era buena: yapartó Dios la Planificación del desorden…
  4. 4. L a gestión de un proyecto desoftware comienza con un conjuntode actividades que globalmente sedenominan planificación delproyecto. Antes de que el proyectocomience.El gestor y el equipo de softwaredeben realizar: Una estimación del trabajo a realizar De los recursos necesarios y
  5. 5. ImportanciaSiempre queestimamos, estamos mirandohacia el futuro y aceptamosresignadoscierto grado deincertidumbre Existen técnicas Útiles para la estimación del esfuerzo y del tiempo.
  6. 6. Task¿Qué es la Estimación?¿Cuál es la importancia de laestimación?
  7. 7. OBSERVACIONES SOBRE LA ESTIMACIÓN
  8. 8. Observaciones sobre la estimación
  9. 9. TaskEscribe tus conclusiones y comentarios
  10. 10. ObservaciONES sobre la estimaciónA un destacado ejecutivo se le preguntó una vezpor la característica más importante que debetener un gestor de proyectos. Respondió: << ... una persona con la habilidad de saber qué eslo que va a ir mal antes de que ocurra...» .Debemos añadir: << ...y con el coraje para hacer estimacionescuando el futuro no está claro...».
  11. 11. ObservaciONES sobre la estimaciónLa estimación de recursos, costes yplanificación temporal de un esfuerzoen el desarrollo de software requiere:a. Experienciab. Acceso a una buena información históricac. Coraje de confiar en predicciones (medidas) cuantitativas
  12. 12. La estimación conlleva un riesgoinherente y es este riesgo el que lleva ala incertidumbre.
  13. 13. Task¿Qué entendemos como Incertidumbre?
  14. 14. IMPORTANTE Antes de comenzar se debe estimar…  Esfuerzo, tiempo, personal y demás recursos.. Luego de estimar se debe planificar…  Establecer un Plan de Proyecto que defina tareas y fechas clave, identificar responsables por tareas y especificar dependencias entre tareas.
  15. 15. Objetivos Resolver problemas corriente arriba a bajo costo. 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.
  16. 16. Objetivos Proporcionar un Marco de Trabajo que permita al gestor estimar razonablemente los recursos, costo y programa de trabajo. Adaptar y actualizar el plan conforme se avance en el proyecto.
  17. 17. Los expertos dicen 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…  Frederick Brooks, 1975
  18. 18. La Estimación No necesita realizarse en una forma improvisada. La experiencia es una gran ayuda. La estimación implica riesgo inherente, y este conduce a la incertidumbre. El riesgo de la estimación se mide por el grado de incertidumbre en las estimaciones cuantitativas para recursos, costos y programa de trabajo.
  19. 19. La Estimación Variabilidad en requisitos = inestabilidad Un gestor no debe obsesionarse con las estimaciones.
  20. 20. Conjunto de Tareas para laPlanificación de un Proyecto Establecer el ámbito del proyecto. Determinar Factibilidad Analizar Riesgos. Definir los recursos requeridos (humanos, software, etc). Estimar costo y Esfuerzo  Descomponer el problema  Desarrollar 2 o mas estimaciones (Ej: puntos de función, casos de uso, etc…) Desarrollar un Plan de Proyecto  Establecer un conjunto de tareas significativas.  Definir una red de tareas.
  21. 21. ÁMBITO DEL SOFTWARE
  22. 22. Ambito del SoftwareDescribe:  Funciones  Características  Entradas  Salidas  Contenido a Presentar  Desempeño Task  Restricciones  InterfacesConfiabilidad a entregar al Usuario final.
  23. 23. Obtención de la información necesaria para el ámbitoEl primer conjunto de cuestiones de contexto libre se centran enel cliente, en los objetivos globales y en los beneficios. Porejemplo, el analista podría preguntar:1. ¿Quién está detrás de la solicitud de este trabajo?2. ¿Quién utilizará la solución?3. ¿Cuál será el beneficio económico de una buena solución?4. ¿Hay otro camino para la solución?
  24. 24. Las preguntas siguientes permiten que el analista comprendamejor el problema y que el cliente exprese sus percepcionessobre una solución:1. ¿Cómo caracterizaría [el cliente] un resultado «correcto» que se generaría con una solución satisfactoria?2. ¿Con qué problema(s) se afrontará esta solución?3. ¿Puede mostrarme (o describirme) el entorno en el que se utilizará la solución?4. ¿Hay aspectos o limitaciones especiales de rendimiento que afecten a la forma en que se aborde la solución?
  25. 25. La última serie de preguntas se centra en la efectividad dela reunión. Gause y Weinberg las llaman «metacuestiones» yproponen la lista siguiente (abreviada):1. ¿Es usted la persona apropiada para responder a estas2. preguntas?iSon «oficiales» sus respuestas?3. ¿Son relevantes mis preguntas para su problema?4. ¿Estoy realizando muchas preguntas?5. ¿Hay alguien más que pueda proporcionar información6. adicional?7. ¿Hay algo más que debiera preguntarle?
  26. 26. Ambito del Software Divide y Vencerás Muchas veces es bueno refinar. Las estimaciones de costo y el programa de trabajo están funcionalmente orientadas, por eso es útil cierto grado de descomposición.
  27. 27. VIABILIDADCuatro elementos esenciales:  Tecnología  Finanzas  Tiempo  Recursos Lectura página 80 viabilidad
  28. 28. RecursosDivididos en Tres Grandes Categorías:  Personal  Componentes de Software Reutilizables  Entorno
  29. 29. La Trinidad Personal Proyecto Software Entorno Reutilizable
  30. 30. Recursos Humanos El planificador debe especificar:  Habilidades Requeridas  Posición Organizacional  EspecialidadEl personal puede estar Geográficamentedisperso.Determinar el número de personas (p/m)
  31. 31. Recursos de Software ReutilizablesIngeniería de Software basada en Componentes. Énfasisen la reutilización.Categorías de software: Componentes ya desarrollados. Adquirir componentes de Terceros. Componentes Experimentados Componentes de Experiencia ParcialNo inventar el Agua Tibia
  32. 32. Para que la reutilización sea eficiente, los componentes de software deben estarcatalogados, estandarizados y validados.
  33. 33. Recursos del Entorno Hardware Software (Herramientas de Desarrollo)
  34. 34. Recuerde Un gran error en la estimación puede hacer la diferencia entre Ganancia o Perdida. Mala Desastre para Estimación el Desarrollador
  35. 35. La Estimación del proyecto de softwarea. La estimación nunca es exacta, en un principio el costo era mínimo hoy en día es el elemento más caro de un S.I.b. Mientras más se conozca menos errores serios se cometerán.c. La estimación nunca es exacta, implica muchas variables  Humanas  Técnicas  Ambientales  Políticas  etc
  36. 36. ¿Como lograr estimaciones Confiables? Hacer una estimación al 100 % Basarse en proyectos similares Descomposición Simple Uso de Modelos Empíricos
  37. 37. Usar Datos Históricos d = f (Vi)Donde d es uno de los valores estimados(por ejemplo, esfuerzo, coste, duración delproyecto) y los vi, son determinadosparámetros independientes (porejemplo, LDC o PF estimados).
  38. 38. Técnicas deDescomposición
  39. 39. Técnicas de Descomposición ¿Porqué utilizarla? El problema a resolver es muy complejo para considerarlo una sola pieza Descomponer el problema en problemas mas pequeños Hacer el problema mas MANEJABLE
  40. 40. Tamaño del SoftwareLa precisión de una estimación del proyecto de software sepredice basándose en: El grado con el cual se ha estimado adecuadamente el tamaño Habilidad para traducir estimación en esfuerzo humano, cronograma y dinero Grado en el que la planificación refleja las habilidades del equipo de Software La estabilidad de los requisitos del software y el entorno que soporta el esfuerzo de la ingeniería del software.
  41. 41.  El «tamaño» del software o construir puede estimarse utilizando una medida directa, LDC, o uno medida indirecta, PF.
  42. 42. Estimación basada en el Problema
  43. 43. Estimación basada en el ProblemaMétricas basadas en la Productividad  LDC/pm  PF/pm  Combinaciones El «tamaño» del software o construir puede estimarse utilizando una medida directa, LDC, o uno medida indirecta, PF.
  44. 44. Estimación Basada en el Problema
  45. 45. Estimación basada en el Problema Para estimaciones de PFLa descomposición se centra en lascaracterísticas del dominio deinformación: Entradas, Salidas, Archivos de Datos, Peticiones, Interfaces Externas y los catorce valores de ajuste de la
  46. 46. calculo media ponderada Mas ValorOptimista Pesimista Probable Esperado
  47. 47. Estimación basada en LDC Descomposición funcional absolutamente esencial considerables niveles de detalle LDC se estima directamente. Página No. 88
  48. 48. Ejemplo E. basada en elproyecto
  49. 49. Estimación basada en PF Los datos requeridos para estimar los Puntos de Función son más macroscópicos que en LDC. Nivel de descomposición considerablemente menos detallado que en LDC. PF se determina indirectamente mediante la estimación del número de entradas, salidas, archivos de datos, peticiones e interfaces externas, entre otras.
  50. 50. Ejemplo: Estimación basa en PF Factor de ajustede la complejidad
  51. 51. FACTOR DE AJUSTE DE LA COMPLEJIDAD: Características generales del sistema Nivel de influencia 1- Comunicación de datos 4 2- Procesamiento distribuido 0 3- Perfomance (desempeño) 0 4-Configuración del equipamiento 1 5- Volumen de transacciones 1 6- Entrada de datos on-line 5 7- Interfase con el usuario 1 8- Actualización on-line 5 9- Procesamiento complejo 0 10- Reusabilidad 0 11-Facilidad de implementación 0 12- Facilidad de operación 0 13- Múltiples locales 0 14- Facilidad de cambios 0 Nivel de influencia 17El factor de ajuste se calcula mediante la fórmula: Factor de ajuste = (Nivel de influencia * 0,01) + 0,65Utilizando la fórmula en el ejemplo: Factor de ajuste = (17 * 0,01) + 0,65 = 0,82
  52. 52. LDC o PF Esperados 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. 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).
  53. 53. Estimación basada en el Proceso
  54. 54. La técnica más común para estimar un proyectoes basar la estimación en el proceso que seva a utilizar. Es decir, el proceso se descomponeen un conjunto relativamente pequeño deactividades o tareas, y en el esfuerzo requeridopara llevar a cabo la estimación de cada tarea.
  55. 55. Estimación basada en el Proceso Técnica más habitual El proceso se descompone en actividades o tareas y el esfuerzo requerido para llevar a cabo cada tarea Se presentan las tareas en forma de tabla
  56. 56. Pasos de la Estimación basada en el Proceso Delimitar las funciones obtenidas a partir del ámbito del software Actividades del proceso para cada función Estimación de esfuerzo (persona-mes) para cada actividad En cada función Aplicación de índices de trabajo medios (esfuerzo coste/unidad) al esfuerzo estimado para cada actividad Cálculo de costes y esfuerzo de cada función y de la actividad
  57. 57. Ejemplo
  58. 58. Modelos Empíricos de EstimaciónModelos empíricos de estimación: Utilizan fórmulas derivadas empíricamente para predecir el esfuerzo como una función de LDC o PF. Datos empíricos obtenidos de una muestra de proyectos:  difíciles de usar para todas las clases de software y todos los entornos de desarrollo  se deben calibrar para las condiciones específicas de una organización
  59. 59. Ecuaciones de los ModelosEmpíricos
  60. 60. Observaciones Se nota claramente que cada uno de los modelos (ecuaciones) producirá un resultado diferente para los mismos valores de LDC o PF. Los modelos deben CALIBRARSE para las necesidades locales
  61. 61. CocomoEl Modelo Constructivo de Costos (COnstructive COst Model) es unajerarquía de modelos de estimación para el software.Las ecuaciones del modelo COCOMO básico tienen la siguiente forma:E = ab (KLDC) exp (bb)D = cb (E) exp (db)Donde E es el esfuerzo aplicado en personas-mes, D es el tiempo dedesarrollo en meses cronológicos y KLDC es el número estimado deLíneas de Código distribuídas (en miles) para el proyecto.Las ecuaciones del modelo COCOMO intermedio toma la forma:E = ai (KLDC) exp (bi) x FAEdonde E es el esfuerzo aplicado en personas-mes, KLDC es el númeroestimado de Líneas de Código distribuídas para el proyecto.
  62. 62. Jerarquías de Cocomo 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. 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. 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.
  63. 63. Cocomo Orientado a los Tiposde proyecto de software 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). 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). 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).
  64. 64. COCOMO II Es una Evolución del COCOMO original propuesto por Boehm Aborda las siguientes áreas:  Modelo de composición de la aplicación  Modelo de la etapa de diseño temprano  Modelo de etapa posterior a la arquitectura Tres opciones de Tamaño:  Puntos de Función PF  Líneas de Código Fuente LDC  Puntos Objeto PO
  65. 65. ¡Analice el siguiente ejemplo!
  66. 66. Puntos Objeto Son una manera indirecta de calcular el tamaño del software por medio de conteo de:  Pantallas de interfaz de usuario  Reportes  Componente requeridos para las construcción de la aplicación. Las ponderaciones se basan en una tabla Se determina el numero de PO y se multiplica por la ponderación Se suman todos los resultados para obtener una cuenta total de PO.
  67. 67. Puntos Objeto Estimando el % de reutilización se ajusta la cuenta de PO  NPO = (PO) * [(100- %reut)/100] Para obtener la estimación de esfuerzo se debe calcular la tasa de Productividad  PROD = NPO/persona-mes Una vez obtenida pasamos a estimar el esfuerzo  Esfuerzo Estimado = NPO/PROD
  68. 68. La Ecuación del Software Es un modelo multivariable Supone una distribución especifica del esfuerzo a lo largo de la vida del proyecto E = [LDC * B0.333/P]3 * (1/t4)  E = Esfuerzo en Personas-mes o Personas-año  T = duración del proyecto en meses o años  B = “Factor especial de habilidades”  P = Parámetro de productividad
  69. 69. Técnicas de Estimaciónespecializadas
  70. 70. Estimación Orientada aObjetos en PF o LDCEstimaciones Aplicar el modelado de análisis OO. Determinar el numero de Clases Clave Categorizar el tipo de interfaz para la aplicación y desarrollar un multiplicador Multiplicar el numero total de clases por el Tipo de Multiplicador Interfaz numero promedio de unidades de trabajo por Sin GUI 2.0 clase. Interfaz basada 2.25 en texto GUI 2.25 GUI Compleja 3.0
  71. 71. Estimación para DesarrolloÁgil Los requerimiento en este tipo de proyectos se presentan como un conjunto de escenarios de usuario. Se puede estimar de manera mas informal. Se usan los enfoques de LDC o PF orientados a escenarios
  72. 72. Los Expertos Dicen Es mejor Comprender el trasfondo de una estimación antes de utilizarla.
  73. 73. Estimación para Ingeniería Web Los proyectos WEB adoptan el modelo de desarrollo ágil Se usa un enfoque de puntos de función modificado  Entradas: Cada pantalla o formato de entrada incluidas las de mantenimiento (CGI o JAVA)  Salidas: Cada pagina Web estática, cada guion de pagina Web dinámica y cada reporte (ASP, DHTML)  Tablas: Cada tabla lógica en la DB y cada objeto XML  Consultas: Cada interfaz publicada externamente (referencias externas DCOM o COM) Los PF son un indicador razonable del volumen para un WebApp
  74. 74. ¿Desarrollar o Comprar?
  75. 75. Árbol de Decisión La organización tiene estas opciones:1. Construir el Sistema desde 02. Reutilizar Componentes existentes de “experiencia parcial”3. Comprar un Producto disponible y modificarlo.4. Contratar una empresa externa para el desarrollo.
  76. 76. Árbol de Decisión Simple (0.30) $ 380000 Construir Difícil (0.70) $ 450000 Cambios $ 275000 Menores (0.40) Reutilizar Simple (0.2) $ Cambios 310000 Mayores (0.6) Sistema X Complejo (0.8) $ Cambios Menores (0.70) 490000 Comprar $ Cambios 210000 Mayores (0.30) $ 400000 Sin Cambios $ (0.60) Contratar 350000 Con Cambios (0.40) $ 500000
  77. 77. Subcontratación Es extremadamente simple. Las actividades de ingeniería del software se contratan con una tercera parte que realiza el trabajo a un costo mas bajo Efecto negativo que la compañía pierde cierto control sobre el software Corre el riesgo de poner el destino de su competitividad en manos de una tercera parte
  78. 78. PLANIFICACION TEMPORAL YSEGUIMIENTO DEL PROYECTO
  79. 79. ¿Por qué se entrega elsoftware con retraso? Fecha limite irrealizable establecida por externo e impuesta Cambio en los requisitos no reflejados en modificaciones en la calendarización Subestimación de la cantidad de esfuerzo y recursos Riesgos no considerados (Predecibles y no Predecibles) Dificultades humanas imprevisibles Dificultades técnicas no previstas Falta de Comunicación entre el personal Falla en la Gestión del Proyecto
  80. 80. “Adoro las Fechas limite. Megusta cuando pasan como unaexhalación cuando se alejan.” Douglas Adams
  81. 81. Lo que no se debe hacer Presentarse ante el cliente y demandarle que cambie la fecha de entrega impuesta por el mercado. Rechazar el trabajo¿Que hacer? Estimación Detallada Aplicar un Modelo de proceso Incremental Explicar al cliente por que la fecha es irrealizable con la estimación detallada Funcionalidad faltante se entregara después
  82. 82. Generalidades Objetivo del gestor  Definir tareas  Construir la red de tareas  Bosquejar las interdependencias entre las tareas  Identificar las tareas cruciales y darles seguimiento La calendarización evoluciona a lo largo del tiempo. Una calendarización Macroscópica se realiza durante las primeras etapas de la planificación
  83. 83. Generalidades Cientos de tareas deben realizarse para completar la meta mayor Algunas tareas se pueden completar sin preocuparse de su impacto sobre la fecha de terminación del proyecto
  84. 84. Calendarización
  85. 85. En que consiste laCalendarización En crear una red de tareas de ingeniería que le permitirán tener el trabajo listo a tiempo. Una vez creada la red debe asignar responsabilidades a cada tarea Asegurarse que las tareas se realicen Adaptar la red conforme los riesgos se vuelvan realidad
  86. 86. ¿Por qué es importante? Construcción de un sistema complejo Tareas de ingeniería ocurren en paralelo Resultado de trabajo realizado durante una tarea pude tener un profundo efecto en el trabajo llevado a cabo en otra tarea. Interdependencia difíciles de entender sin calendarización
  87. 87. Calendarización AdecuadaRequiere: Que todas las tareas aparezcan en la red. Esfuerzo y tiempo asignados inteligentemente por tarea. Interdependencias entre tareas indicadas adecuadamente. Recursos asignados para el trabajo. Hitos espaciados de modo cercano para poder seguir el progreso.
  88. 88. Principios Básicos deCalendarización Compartimentación Interdependencia Asignación de Tiempo Validación del Esfuerzo Definición de Responsabilidades Definición de Resultados Definición de Hitos
  89. 89. Interdependencia Algunas tareas deben ocurrir en secuencia Otras pueden ocurrir en paralelo Algunas tareas no pueden comenzar mientras el producto de trabajo producido por otras tareas no este disponible
  90. 90. Asignación de Tiempo A cada tarea se debe asignar cierto numero de unidades de trabajo (personas – días de esfuerzo) Asignar fecha de inicio y terminación en función de las interdependencias
  91. 91. Relación entre Personal yEsfuerzo Mito: “Si nos retrasamos en la calendarización siempre podemos incorporar mas programadores y recuperarnos mas adelante en el proyecto”. Esto tiene un efecto perturbador en el equipo de trabajo Provoca mas desfases Las personas agregadas recientemente deben aprender el sistema y la gente que les enseña es la misma que estaba trabajando
  92. 92. Relación entre Personal yEsfuerzo Las calendarizaciones de proyecto son elásticas. Es posible comprimir en cierta medida la fecha de terminación deseada del proyecto (al añadir recursos adicionales).
  93. 93. Curva Putnam-Norden-Rayleigh (PNR)
  94. 94. Lectura ejemploCapitulo 7 pág. 115
  95. 95. LITERA Actividad Predecesor DuraciL ónA Realizar entrevistas Ninguno 3B Aplicar cuestionarios A 4C Leer informes de la compañía Ninguno 4D Analizar el flujo de datos B,C 8E Introducir prototipos B,C 5F Observar reacciones a prototipos E 3G Realizar análisis de costo y D 3 beneficiosH Preparar propuesta F,G 2I Presentar propuesta H 2
  96. 96. Ejercicio
  97. 97. CarátulaÍndice1. Introducción (análisis de la necesidad) (1-2 caras)1.1. Problema (1 cara)1.2. Objetivos (General – Específicos)1.3. Justificación (1 cara)1.4. Ámbito y Alcance (2 caras)1.5. Estudio de Viabilidad (1.5 caras)1.6. Responsables (Matriz) (1 cara)1.7. Estimaciones de Tiempo y Esfuerzo (Cocomo) (2-3 caras)1.8 Matriz de gestión de riesgos (1-2 caras)2.-Marco de referencia Marco Teórico (Teorías de aprendizaje – Docentes- Tecnologías-SoftwareEducativo..) (6-10 caras)3. Metodología (3 caras) 3.1. Introducción 3.1. Metodología de Desarrollo (justificar) (rup, xp, scrum, Prototipos)4. Recursos (1 cara) Humanos Tecnológicos Entorno5. Planificación temporal (4-5) Matriz de actividades Diagrama de Pert-Ruta Critica Análisis Costo Beneficio

×