Tareas Ingeniería de software semestre 1/2012 Tarea 6: Modelo de proceso - hitos 1) ¿Qué son los modelos de proceso o ciclos de vida? 2) ¿Para que sirven? 3) ¿Cuando se usan? 4) ¿Son necesarios? ¿son indispensables? 5) Traer por lo menos 3 modelos diferentes: (Entre sus 3 modelos, solamente uno puede ser cascada/espiral) explicar procesos y fases sus hitos, ventajas y desventajas del modelo ¿cuando usar? Hitos: 1) ¿ Qué es hito? 2) ¿ Qué es producto entregable? 3) ¿ Cuál es la diferencia entre hito y producto entregable? 4) ¿ Cuál es la importancia de definir hitos y producto entregable en la calendarización ? Tarea 7: 1) ¿Cómo se organiza el grupo de trabajo en el proceso de desarrollo de SW? 2) ¿Cuáles las tareas a realizar, cuáles los roles a cumplir por los diferentes miembros del grupo? 3) Traer varios ejemplos organización de equipos de desarrollo. 4) ¿Qué tiene que ver la calendarización con el grupo de trabajo? Tarea 8: Gestión de riesgo 1) ¿Que es la gestión de riesgo? 2) ¿Es necesario realizar la gestión de riesgo? Si/no: ¿por que? 3) ¿Cuáles los pasos a seguir para realizar la gestión de riesgo de un proyecto de software? (describir en forma detallada cada uno de los pasos para la gestión de riesgo). 4) Traer un ejemplo concreto de un riesgo gestionado. OPCIONAL: 3 Puntos de participación para cualquier grupo de alumnos que traiga un ejemplo de riesgo gestionado que no esté en la bibliografía. Máximo 3 personas por grupo. Deben traer un papelógrafo y explicar todos los miembros del grupo de que se trata y presentar por escrito a la docente. Tarea 9: 5) ¿ Qué es la calendarización?. 6) ¿ En que consiste el proceso de calendarización? De un ejemplo concreto, para un sistema pequeño. 7) ¿ Qué es el camino crítico? ¿A quién le interesa conocer el camino crítico? 8) ¿ Qué información proporciona el camino crítico? 9) ¿ Es lo mismo camino crítico o tarea crítica? 10) ¿ Cómo se identifican las tareas a realizar? 11) ¿ Las tareas a realizar deben ser generales o específicas? Tareas Ingeniería de Software Página : 1 Tarea 10: Métricas en el desarrollo de software 1) ¿Qué es necesario estimar? 2) ¿Qué se mide?, ¿con qué se mide? 3) ¿Qué es una métrica? 4) Traer ejemplos de métricas que se puedan aplicar al trabajo práctico de la materia Costos y precio de un software 1) ¿Cuáles son los criterios para fijar precios al software? 2) ¿Cuáles son los componentes del costo de un proyecto de software? 3) ¿De los componentes del costo cuál es el más importante? y ¿por qué? Tarea 11: Estimación de recursos: Líneas de código y puntos de función 1. ¿En base a qué parámetros se puede calcular el costo de un proyecto y/o su duración? 2. ¿Cuáles son las métricas que existen para medir el tamaño o complejidad de un software? 3. ¿ Cuáles son las métricas que existen para medir la productividad del software ? 4. Traer un ejemplo concreto de estimación de costos utilizando líneas de código 5. ¿Qué son los puntos de función? 6. Traer un ejemplo concreto de estimación de costos utilizando puntos de función. Opcional: Traer un ejemplo concreto de estimación de costos documentado para un proyecto de software utilizando cualquier métrica. Tarea 12: Estimación de recursos: Modelos de estimación de costos 1. ¿Qué son los modelos de estimación de costos? Y ¿ qué métricas utilizan la mayoría de estos modelos? Y ¿por qué? 2. ¿Por qué existen muchos modelos de estimación de costos? 3. ¿Todos los modelos de estimación son adecuados para estimar cualquier proyecto de software? Si/no, ¿por qué? 4. Explica en qué consiste el modelo de estimación de recursos COCOMO 81 y COCOMO II. 5. Trae un ejemplo concreto de estimación de costos utilizando COCOMO 81 y COCOMO II. OPCIONAL: Para cualquier grupo de alumnos que traiga un ejemplo de estimación de costos documentado para un proyecto de software concreto que no esté en la bibliografía. Máximo 3 personas por grupo. Deben traer un papelógrafo y explicar todos los miembros del grupo de que se trata y presentar por escrito a la profesora Tareas Ingeniería de Software Página : 2 Tarea 13: Ejercicio 1) Realizar el gráfico de red de actividades para las siguientes tareas: Tareas T1 T2 T3 T4 T5 T6 Duración (días) 8 15 15 10 10 5 Dependencias Tareas Duración (días) 20 25 15 15 7 10 T7 T8 T9 T10 T11 T12 T1 T2, T4 T1, T2 Dependencias T1 T4 T3, T6 T5, T7 T9 T11 Estimación de recursos: Tamaño esperado: Sesperado = (Soptimista + 4 SmasProbable + Pesimista)/6 Estimaciones informales del número medio de líneas de código requeridas para construir un punto de función: Lenguaje de LDC/PF Lenguaje de LDC/PF Lenguaje de LDC/PF Programación (media) Programación (media) Programación (media) Ensamblador 320 PASCAL 90 Smalltalk 22 C 128 C++ 64 Powerbuilder 16 COBOL 106 ADA 53 SQL 12 FORTRAM 106 Visual Basic 32 Ejercicio 2) puntos de función: Valor de dominio de Optim Proba Pesimi información ista ble sta Número de entradas Usr Número de salidas de Usr Número de peticiones Usr Número de archivos Núm. De interfaces externas Cuenta Total (UCF) 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 20 12 16 4 2 24 15 22 4 3 ¿ Copias de seguridad y de recuperación fiables ? ¿ Se requiere comunicación de datos? ¿ Existen funciones de procesamiento distribuido? ¿ Es crítico el rendimiento? ¿ Entorno operativo existente y fuertemente utilizado? ¿ Requiere el sistema entrada de datos interactiva? ¿ Transacciones de entrada en múltiples pantallas? ¿ Archivos maestros actualizados en línea? ¿ Complejidad de valores del dominio de información? ¿ Es complejo el procesamiento interno? ¿ Se ha diseñado el código para ser reutilizable? ¿ Están incluidas en el diseño la conversión y la instalación? ¿ Instalaciones múltiples? ¿ Aplicación diseñada para facilitar los cambios ? 30 22 28 5 3 Peso Cuenta PF 4 5 4 10 7 4 2 0 4 3 4 5 3 5 5 4 3 5 5 PFestimado = UCF x Factor de ajuste de la complejidad (Fi)] Estimar Cuenta estimada PFestimado = UCF x [0,65 + 0,01 x a) Puntos de función estimados b) El esfuerzo total del proyecto si la productividad estimada es de 6.5 pm. c) Costo por persona mes si el costo por PF es de 615. Tareas Ingeniería de Software Página : 3 d) El costo total del proyecto. Ejercicio 3) Dada la siguiente tabla para un sistema CAD, que muestra las funciones identificadas para el sistema y sus correspondientes estimados del tamaño de cada función de software: LDC LDC LDC Función optimista Probable pesimista Interfaz de usuario y facilidades de control 1800 2100 3000 Análisis geométrico de dos dimensiones 4000 5100 7000 Análisis geométrico de tres dimensiones 5200 6600 8100 Gestión de BD 1160 2400 4500 Facilidades de presentación gráfica 3300 4750 7345 Control de periféricos 1100 1900 4200 Módulos de análisis de diseño 7800 8200 9700 Estimar: i) El tamaño del proyecto en líneas de código ii) Dado que un ingeniero de sistemas gana 4000 Bs., a. Cuál el costo del proyecto estimado si la productividad esperada es de 620 LDC/mes? b. ¿En cuantos meses se acabará el proyecto (asumir que tenemos contratados 4 ingenieros que trabajarán mensualmente en el proyecto)?. Comparar con el tiempo obtenido en el ejercicio 4, con COCOMO´81. ¿Cuál de los tiempos se debería tomar y por qué? iii) ¿Cuál el tamaño (complejidad) en puntos de función dado que el cálculo de tamaño en LDC se realizó para VISUAL BASIC? a. ¿Cuál es el costo del proyecto, si la productividad que se tiene en la empresa es de 6.5 PF/mes? iv) ¿ Cuántas líneas de código tendría nuestro sistema si el proyecto se realiza en ENSAMBLADOR? v) ¿ Cuántas líneas de código tendría nuestro sistema si el proyecto se realiza en PASCAL? Ejercicio 4) 1. De acuerdo al tamaño de proyecto estimado en el anterior ejercicio estimar el esfuerzo, costo, el tiempo y el número de ingenieros mes (para esto asumir que un ingeniero gana 4000 Bs./mes) en base a los modelos de: a. ¿COCOMO'81 para M=1, para un proyecto simple? b. ¿COCOMO'81 para M=1, para un proyecto incrustado? 2. Calcular con COCOMO II, a. Nivel inicial: para el anterior proyecto M = 1, conociendo que la productividad de mis ingenieros es MUY BAJA y que la relación de líneas de código por puntos de objeto es: 85 LDC/PON (1.25 PON/PF), y que el nivel de reutilización es del 10%. b. Nivel de diseño: para un nuevo proyecto para el cual se tiene 340 PF, (asumir que el proyecto se realizará en Pascal) , a. para un proyecto conocido con M=1 b. para un proyecto novedoso con M=1, con M=1,4 Tarea 14 : Repaso Repaso 1. ¿En qué consiste el estudio de factibilidad? 2. ¿El estudio de factibilidad se lo debe hacer antes o después de la planificación? 3. ¿En qué consiste el análisis de opciones? 4. ¿Cuál el objetivo del análisis de opciones? Repaso Tareas Ingeniería de Software Página : 4 1. ¿Cuáles los objetivos de un plan de sistemas? 2. ¿Cuáles son las actividades estructurales de la planificación, dentro de la ingeniería de software y cuáles los productos? 3. ¿Cuál es el producto de la actividad de planificación en la Ingeniería de Software? Nuevo 4. Indica un índice de contenido máximo y uno mínimo de un plan de proyecto de software y explica en que consiste cada uno de los temas mencionados en el índice. Tareas Ingeniería de Software Página : 5