1 / 48

Ingeniería de Software

Unidad I. Gestión de Proyectos de Software. Ingeniería de Software. Semana 5. Tema. Planificación de la gestión de proyectos de software. Objetivos Generales:.

edena
Download Presentation

Ingeniería de Software

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Unidad I Gestión de Proyectos de Software Ingeniería de Software Semana 5 Tema Planificación de la gestión de proyectos de software

  2. Objetivos Generales: • Comprender correcta y eficientemente los conceptos y principios del espectro de técnicas de Ingeniería de Software que puedan ser aplicadas en proyectos de software. • Desarrollar una cultura de ingeniería de software.

  3. Objetivos Específicos: • Aplicar correctamente los conceptos y principios relacionados a la Ingeniería de Software en la resolución de casos prácticos para la gestión de proyectos de software de calidad. • Utilizar herramientas para el modelado y gestión de proyectos de software. • Utilizar metodologías agiles en el desarrollo de software.

  4. Objetivos Instruccionales: • Realizar estimaciones del trabajo a realizar, de los recursos necesarios y del tiempo que transcurrirá desde el comienzo hasta el final de su realización. • Analizar los riesgos para analizar y determinar la probabilidad de que pueda ocurrir.

  5. Objetivos de la planificación del proyecto • Proporcionar un marco de trabajo que permite al gerente de software hacer una estimación razonable de recursos, costo y planificación temporal. • Las estimaciones deberían definir los escenarios del “mejor caso” y “peor caso”de forma que los resultados del proyecto puedan limitarse. • Poner al día las estimaciones así como los progresos del proyecto. Planificación de proyectos de software

  6. Actividades de la planificación del proyecto de software • Determinar el ámbito del software • Estimación de los recursos requeridos Planificación de proyectos de software

  7. Ámbito del software Es la primera actividad de la planificación del proyecto de software en la cual: • Se describe el control y los datos a procesar, la función, el rendimiento, las restricciones, las interfaces y la fiabilidad. • Se evalúan las funciones descritas en la declaración del ámbito, y en algunos casos se refinan para dar mas detalle antes del comienzo de la estimación. • Las restricciones identifican los limites del software originados por el hardware externo, por la memoria disponible y por otros sistemas existentes. Planificación de proyectos de software - AMBITO

  8. Obtención de la información necesaria para el ámbito… Es importante para: • Determinar las metas globales del cliente para el sistema propuesto y expectativas por los beneficios. • Determinar las percepciones del cliente acerca de la naturaleza de una buena solución al problema. • Evaluar la efectividad de la reunión con el cliente. Planificación de proyectos de software - AMBITO

  9. …Obtención de la información necesaria para el ámbito… Como empezar: • Establecer una reunión o una entrevista preliminar. • Realizando una serie de preguntas que lleven a: • Un entendimiento básico del problema, • Determinar porque las personas que están interesadas en la solución, • Conocer la naturaleza de la solución que se desea. Planificación de proyectos de software - AMBITO

  10. …Obtención de la información necesaria para el ámbito… Preguntas centradas en el cliente, en los objetivos globales y en los beneficios: Planificación de proyectos de software - AMBITO • ¿Quien esta detrás de la solicitud de trabajo? • ¿Quién utilizara la solución? • ¿Cuál será el beneficio económico de una buena solución? • ¿Hay otro camino para la solución?

  11. …Obtención de la información necesaria para el ámbito… Preguntas centradas en comprender mejor el problema y que el cliente exprese sus percepciones sobre una solución: • ¿Cómo caracterizaría (el cliente) un resultado correcto que se generaría con una solución satisfactoria? • ¿Con que problema(s) se afrontara esta solución? • ¿Puede mostrarme (o describirme) el entorno en el que se utilizaría la solución? • ¿Hay aspectos o limitaciones especiales de rendimiento que afecten a la forma en que se aborda la solución? Planificación de proyectos de software - AMBITO

  12. …Obtención de la información necesaria para el ámbito… Preguntas centradas en la efectividad de la reunión: • ¿Es Usted la persona apropiada para responder a estas preguntas? ¿Son oficiales sus respuestas? • ¿Son relevantes mis preguntas para su problema? • ¿Estoy realizando muchas preguntas? • ¿Hay alguien mas que pueda proporcionar información adicional? • ¿Hay algo mas que deba preguntarle? Planificación de proyectos de software - AMBITO

  13. La Viabilidad… Una vez identificado el ámbito, es razonable preguntarse: Planificación de proyectos de software - AMBITO • ¿Podemos construir el software de acuerdo a este ámbito? • ¿Es factible el proyecto?

  14. …La Viabilidad… Planificación de proyectos de software - AMBITO

  15. …La Viabilidad “Una vez que se ha comprendido el ámbito, tanto el equipo de desarrollo como el resto deben trabajar para determinar si puede ser construido dentro de las dimensiones especificadas”. Planificación de proyectos de software - AMBITO

  16. Ejemplo de ámbito MOVIMIENTO DE LA CINTA TRANSPORTADORA 1 2 Nº ID Nº ID Nº ID Nº ID Nº ID Nº ID 3 Planificación de proyectos de software - AMBITO 4 MECANISMO DE CONTROL ESTACION DE TRABAJO 5 CODIGO DE BARRAS • Lectura de la entrada del código de barras • Lectura del tacómetro de pulsos • Descodificación de los datos del código de pieza • Búsqueda en la base de datos • Determinar la posición del compartimiento • Producción de la señal de control para el mecanismo de maniobra • Mantener una lista de los destinos de las cajas 6 FUNCIONES CONEXIÓN DE CONTROL

  17. Estimación de Recursos… Es la segunda actividad de la planificación del proyecto de software: Cada recurso queda especificado mediante cuatro características: Personas Planificación de proyectos de software - RECURSOS Componentes de Software reutilizables • Descripción del recurso • Informe de disponibilidad • Fecha cronológica en la que se requiere el recurso • Tiempo durante el que será aplicado el recurso. Herramientas Hardware/Software Recursos del Proyecto

  18. …Estimación de Recursos… • A. Recursos humanos: • Se debe tener en cuenta: • Las habilidades que se requieren para llevar a cabo el desarrollo, especificando la posición dentro de la organización (gestor, Ing. de software experimentado, etc.) como la especialidad (telecomunicaciones, base de datos, etc.). • El número de personas requeridas para un proyecto de software (personas-mes). Planificación de proyectos de software - RECURSOS

  19. …Estimación de Recursos… • B. Recursos de software reutilizables: • Se debe tener en cuenta: • Componentes ya desarrollados. Puede provenir de la adquisición a un tercero o de uno desarrollado internamente para un proyecto anterior. • Componentes ya experimentados. Especificaciones, diseños, código o datos de prueba existentes desarrollados para proyectos anteriores que son similares al software que se va a construir. • Componentes con experiencia parcial. Especificaciones, diseños, código o datos de prueba existentes desarrollados para proyectos anteriores que se relacionan con el software que se va a construir, pero requerirá una modificación sustancial. • Componentes nuevos. El equipo de software debe construir específicamente para las necesidades del proyecto actual. Planificación de proyectos de software - RECURSOS

  20. …Estimación de Recursos… • Directrices a tener en cuenta si se especifican componentes reutilizables: • Componentes ya desarrollados. Es preferible adquirirlos si cumplen los requisitos del proyecto. El coste de adquisición e integración es menor al costo de desarrollo. • Componentes ya experimentados. Los riesgos asociados a la modificación y a la integración generalmente se aceptan. El plan de proyecto debe reflejar la utilización de estos componentes. • Componentes con experiencia parcial. Su uso se debe analizar con detalle. El coste de modificar los componentes algunas veces puede ser mayor que el coste de desarrollar componentes nuevos. Planificación de proyectos de software - RECURSOS

  21. …Estimación de Recursos… • C. Recursos de entorno: • Se debe tener en cuenta: • La incorporación de hardware y software requeridos. El hardware proporciona una plataforma con las herramientas (software) requeridas para producir los productos que son el resultado de una buena practica de la ingeniería de software. • El equipo de software puede requerir acceso a los elementos en desarrollo por otros equipos de ingeniería. Planificación de proyectos de software - RECURSOS

  22. Observaciones sobre la estimación… • ¿Cuál es la característica mas importante que debe tener un gestor de proyectos? • La estimación de recursos, costes y planificación temporal de un esfuerzo en el desarrollo de software requiere: • Experiencia. • Acceder a una buena información. • Confiar en las predicciones (medidas) cuantitativas cuando solo existen datos cualitativos. Estimación de proyectos “La estimación conlleva a un riesgo inherente y es este riesgo el que lleva a la incertidumbre”

  23. …Observaciones sobre la estimación… Se debe de tener en cuenta: • La complejidad del Proyecto: • Tiene un gran efecto en la incertidumbre, que es inherente en la planificación. • Sin embargo, La complejidad es una medida relativa que se ve afectada por la familiaridad con esfuerzos anteriores. • El tamaño del proyecto. • Afecta a la precisión y a la eficiencia de las estimaciones. • Si aumenta el tamaño, se acentúa la interdependencia entre varios elementos de software. • El problema de la descomposición se hace mas difícil porque los elementos descompuestos pueden todavía excesivamente grandes. Estimación de proyectos

  24. …Observaciones sobre la estimación Se debe de tener en cuenta: • El grado de incertidumbre estructural: • El grado en que los requisitos se han definido. • La facilidad con la que pueden subdividirse funciones • La naturaleza jerárquica de la información que debe procesarse. • La disponibilidad de información histórica. • Se pueden hacer estimaciones con mayor seguridad. • Establecer planificaciones para evitar dificultades anteriores, y así reducir el riesgo total. Estimación de proyectos

  25. Variables inmersas • La estimación del coste y del esfuerzo del software no es exacta, y esta involucra demasiadas variables como: • Humanas, • Técnicas, • Entorno, • Políticas, • Que pueden afectar al coste final del software y al esfuerzo aplicado para desarrollarlo. Estimación de proyectos

  26. Para realizar estimaciones seguras tenemos las siguientes opciones: • Dejar la estimación para más adelante.No es práctica. • Basar las estimaciones en proyectos similares ya terminados.. Funciona bien si el proyecto actual es bastante similar a los esfuerzos pasados. • Utilizar “técnicas de descomposición” relativamente sencillas para generar las estimaciones de coste de esfuerzo del software.. “Divide y vencerás” • Utilizar uno o más modelos empíricos para la estimación del coste y el esfuerzo del software. • d=f(vi) donde d es uno de los valores estimados (esfuerzo, coste,etc) y los vi determinados parámetros independientes (LDC, PF estimados). Estimación de proyectos

  27. Estimación orientada al Tamaño del software… • Se basa en: • El grado en que el planificador ha estimado adecuadamente el tamaño del producto a construir. • La habilidad para traducir la estimación del tamaño en esfuerzo humano, tiempo y dinero. • El grado en que el plan del proyecto 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 de Software. Estimación de proyectos

  28. …Estimación orientada al Tamaño del software • Enfoques para una cuantificación razonable: • Tamaño en lógica difusa. Técnicas aproximadas de razonamiento. El planificador debe identificar el tipo de aplicación, establecer su magnitud en una escala cuantitativa y refinarla dentro del rango original. • Tamaño en punto de función. El planificador desarrolla estimaciones de características del dominio de información. • Tamaño de componente estándar. Se compone de un numero de “componentes estándar” que son genéricos para un área en particular (pantallas, informes, archivos, LDC). • Tamaño del cambio. Se utiliza cuando un proyecto comprende la utilización de software existente que se debe de modificar de alguna manera como parte de un proyecto. Estimación de proyectos

  29. Estimación basada en el problema • El planificador comienza con un visión limitada para el ámbito del software y desde este estado descompone el software en funciones que se pueden estimar individualmente. • Enfoques: • Líneas de código (LDC). Esta enfocada en que las funciones pueden dividirse en subfunciones que podrán asemejarse a entradas de una base de datos histórica. • Puntos de Función (PF). Esta enfocada en las características del dominio de la información (entradas, salidas, archivos). Estimación de proyectos

  30. Ejemplo: Estimación basada en LDC… Estimación de proyectos LDC optimista = 4600 LDC probable = 6900 LDC pesimista = 8000 LDC estimado = (4600 + 4 x 6900 + 8000 ) / 6 = 6700

  31. Ejemplo: Estimación basada en LDC… • Una revisión histórica de los datos indica: • La productividad media es de 620 LDC/pm • La tarifa laboral es de US$ 8000 por persona-mes • Entonces el coste por LDC es : • 8000/620 = 12.90  13.00 US$ • El coste total es : 13 x 33200 = 431,600 US$ • El esfuerzo estimado es : 33200 / 620 = 54 personas-mes Estimación de proyectos

  32. Ejemplo: Estimación basada en PF Estimación de proyectos

  33. Ejemplo: Estimación basada en PF Estimación de proyectos PF estimado = cuenta total x ( 0,65 + 0.01 x sumatoria Fi ) => PF = 318 x 1.17 = 375

  34. Ejemplo: Estimación basada en PF • Una revisión histórica de los datos indica: • La productividad media es de 6.5 PF/pm • La tarifa laboral es de US$ 8000 por persona-mes • Entonces el coste por PF es : 8000/6.5 = 1,230 US$ • El coste total es : 1230 x 375 = 461,250 US$ • El esfuerzo estimado es : 375 / 6.5 = 58 personas-mes Estimación de proyectos

  35. La estructura de los modelos de estimación • Típicamente derivado del análisis de la regresión sobre los datos de proyecto de software históricos, con las persona-meses estimados como la variable dependiente y LDC o PF como las variables independientes. • E = A + B x (ev)C • Donde: • E = es el esfuerzo persona-mes • A, B y C son constantes obtenidas empíricamente. • ev es la variable de estimación de LDC o PF Modelos empíricos de estimación

  36. La estructura de los modelos de estimación Modelos empíricos de estimación

  37. Realizar un trabajo de investigación en lo concerniente al modelo COCOMO y COCOMO II Modelos empíricos de estimación

  38. Puede ser más eficaz en términos costo-beneficio adquirir un bloque de software en lugar desarrollarlo. • El análisis de árbol de decisión proporciona una manera sistemática de ordenar la decisión de desarrollar-comprar. • En el nivel estratégico, los gestores tienen en consideración si una parte importante de todo el trabajo de software puede ser contratado a otros. • En el nivel táctico, un jefe de proyecto determina si algunas partes o todo el proyecto es aconsejable realizarlo mediante subcontratación. Decisión de Desarrollar - Comprar

  39. Árbol de decisiones… US$ 380,000 SIMPLE (0.30) DIFICIL (0.70) US$ 450,000 CONSTRUCCION CAMBIOS MENORES (0.40) US$ 275,000 Decisión de Desarrollar - Comprar SIMPLE (0.20) US$ 310,000 CAMBIOS IMPORTANTES (0.60) REUTILIZACION COMPLEJO (0.80) SISTEMA X US$ 490,000 COMPRA CAMBIOS MENORES (0.70) US$ 210,000 CAMBIOS IMPORTANTES (0.30) CONTRATO US$ 400,000 SIN CAMBIOS (0.60) US$ 350,000 CON CAMBIOS (0.40) US$ 500,000

  40. …Árbol de decisiones Coste esperado Construcción = 0.30 x 380000 + 0.70 x 450000 = 429,000 Coste esperado reutilización = 0.40 x 275000 + 0.60( 0.20 x 310000 +0.80 x 490000) = 382,000 Decisión de Desarrollar - Comprar Coste esperado Compra = 0.70 x 210000 + 0.30 x 400000 = 267,000 Coste esperado Contrato = 0.60 x 350000 + 0.40 x 500000 = 410,000 Según la probabilidad y los costes proyectados, el coste mas bajo es para la opción de compra

  41. Herramientas automáticas de estimación Funciones genéricas: • Dimensionamiento de las entregas del proyecto. Se estima el tamaño de uno o mas productos de software, incluyen la representación externa del software (pantallas, informes), el software en si (MLDC), su funcionalidad y la información descriptiva (documentos). • Selección de las actividades del proyecto. Se selecciona el marco de trabajo del proceso adecuado y se especifica el conjunto de tareas de IS. • Predicción de los niveles de la plantilla. Se especifica el numero de personas disponibles para realizar el trabajo. Dado que la relación entre las personas disponibles y el trabajo no es muy lineal. Herramientas

  42. Herramientas automáticas de estimación Funciones genéricas: • 4.Predicción del esfuerzo del software. Utiliza uno o mas modelos que relacionan el tamaño de las entregas del proyecto con el esfuerzo necesario para producirlas. • 5. Predicción del coste del software. Dado los resultados del paso anterior, los costes pueden calcularse asignando proporciones del trabajo a las actividades del proyecto señaladas en el paso 2. • 6. Predicción de la planificación del software. Cuando se conoce el esfuerzo, los niveles de plantilla y las actividades del proyecto, se puede realizar un borrador de la planificación asignando el trabajo a través de actividades de IS basados en modelos recomendados para la distribución del esfuerzo. Herramientas

  43. Herramientas automáticas de estimación • SISTEMA COSTAR • COmputer • STored • Ambulatory • Record Herramientas

  44. La Ingeniería de Sistemas es difícil. Nunca habrá una respuesta fácil en la solución de problemas de desarrollo de sistemas complejos. • Los Ingenieros de Software no tienen respuesta a todas las preguntas, pero entienden el funcionamiento del sistema. • Se debe de reconocer el papel que juega cada disciplina y cooperar entre todas en el proceso de Ingeniería de Sistemas. • La Ingeniería de Sistema involucra a múltiples disciplinas. • El Proceso de I.S sigue a menudo el modelo de cascada. Resumen

  45. La planeación del software involucra estimaciones en cuánto a tiempo, esfuerzo, dinero, y recursospara construir un sistema de software específico. • Después de que el alcance del proyecto es determinado yel problema se descompone en problemas más pequeños, los gerentes del software usan los datos de proyectos históricos (así como la experiencia personal e intuición) para determinar las estimaciones para cada uno. • Las estimaciones finales se ajustan típicamente tomando en cuenta la complejidad del proyecto y los riesgos. • El producto resultante del trabajo se llamaplan de dirección de proyecto. Resumen

  46. Unidad I Gestión de Proyectos de Software Ingeniería de Software Semana 5 Tema Planificación de la gestión de proyectos de software

More Related