INGENIERÍA DE SOFTWARE CURSO 2005 PRÁCTICA 4 Parte Uno = Costeo Algunas consideraciones: ciertos ejercicios que se plantean a continuación requieren la elaboración por parte del alumno. En teoría se brinda el conocimiento base necesario el cual ampliado desde Internet o generando discusiones entre los alumnos permitirá llegar a la resolución de cada problema. 1. Una importante dependencia de gobierno desea contratar una empresa dedicada al desarrollo de soft para un proyecto de aproximadamente 40000 líneas de código. Suponiendo que el trabajo es considerado de complejidad “simple o intermedia”. Podría calcular el esfuerzo hombre mes y el tiempo necesario para su desarrollo? Qué información necesita? Intente resolver el problema utilizando COCOMO 81 y luego COCOMO II 2. Un administrador de software está a cargo del desarrollo de un sistema de software de seguridad crítico que se diseña para controlar una máquina de radioterapia para tratar a los pacientes que sufren de cáncer. Este sistema está embebido en la máquina y debe ejecutarse en un procesador de propósito especial con una cantidad fija de memoria (8Mb). La máquina se comunica con un sistema de BD de pacientes para obtener los detalles del paciente, y después del tratamiento, automáticamente registra la dosis de radiación suministrada y otros detalles de tratamiento en la base de datos. El método COCOMO se utiliza para estimar el esfuerzo requerido para desarrollar este sistema y se calcula un estimado de 26 persona-mes. Todos los multiplicadores conductores de costos se establecen a uno cuando se hace la estimación. Explique por qué esta estimación debe ajustarse para tomar en cuenta al proyecto, al personal, al producto y a los factores organizacionales. Sugiera cuatro factores que podrían tener efectos importantes en la estimación inicial de COCOMO y proponga valores posibles de estos factores. Justifique por qué se incluye cada factor. 3. Muchos gerentes de proyecto establecen sus cronogramas basándose en la productividad de los programadores en proyectos anteriores. Esta productividad suele medirse en términos de una unidad de tamaño por una unidad de tiempo. Por ejemplo, una organización puede producir 300 líneas de código por día o 1200 puntos función por mes. ¿Resulta apropiado medir la productividad de esta forma? Discutir las mediciones de la productividad en términos de los siguientes aspectos: a. Diferentes lenguajes pueden producir cantidades diferentes de líneas de código para la implementación del mismo diseño. b. La productividad en líneas recién puede medirse cuando comienza la implementación c. Los programadores pueden estructurar el código para satisfacer metas de productividad. Parte Dos = Mantenimiento 4. Pfleeger plantea tres tipos de sistemas: a. Sistemas-S: que tienen un mundo real sujeto a cambio, pero el problema, la especificación de requerimientos, el sistema y la información que manejan permanece constante b. Sistema-P: donde el mundo real es valiable, el problema es constante, la abstracción, especificación de requerimientos, sistema e información están sujetos a cambio c. Sistemas-E: donde todo está sujeto a cambios. Sin tener en cuenta el ejercicio 5, ejemplifique con un sistema de cada clase 5. Categorizar los siguientes sistemas como S, P o E. Para cada uno explicar por qué pertenece a esa categoría. Identificar los aspectos que pueden cambiar. a. Sistema de control de tráfico aéreo b. Sistema operativo para PC c. Sistema de cálculo matricial d. Sistema para gestión de BD e. Sistemas para encontrar factores primos de un número 6. Recuerda las prácticas anteriores? El software del Ariane-5 como lo clasificaría S, P o E. 7. Plantee un ejemplo concreto donde se puedan observar las cuatro clases de mantenimiento discutidas en clase: correctivo, perfectivo, preventivo y adaptativo. 8. Suponga que ante un sistema resuelto por UD, recibe un llamado del cliente indicando que ciertas partes de la organización cambiaron su política y, por lo tanto, el sistema deberá ser modificado para cubrirlas. Qué tipo de mantenimiento realizará? 9. Suponga que como resultado del ejercicio 8, un nuevo sistema entra en operación y que se produce un error en una parte del proceso que no sufrió modificación. Este error puede haber sido producido por el cambio, porque antes funcionaba correctamente. Qué clase de mantenimiento deberá hacer? El costo del mismo por quien debería correr. 10. Investigue los conceptos de Ingeniería Inversa y Reingeniería. En que casos conviene aplicarla y por qué?