Corporación Universitaria Remington Ingeniería del Software II Taller teórico - práctico Muchas aplicaciones modernas cambian frecuentemente antes de presentarlas al usuario final y después de que se empieza a utilizar la primera versión. Sugiera algunas formas de construir software para detener el deterioro debido al cambio. En las pruebas que se realizan se debe tener presente las de integración que son las que realizan a medida que se construye el software las de validación que son las que evalúan la satisfacción de los requisitos completamente y las de aceptación que son las que realiza el cliente con el producto final. Evaluar la petición del software y determinar si el programa a desarrollar es un buen candidato para construir un prototipo. Dado un proyecto candidato aceptable, el analista desarrolla una representación abreviada de los requerimientos. Después de que se haya revisado la representación de los requerimientos, se crea un conjunto de especificaciones de diseño abreviadas para el prototipo. El software del prototipo se crea, prueba y refina. Una vez que el prototipo ha sido probado, se presenta al cliente, el cual "conduce la prueba" de la aplicación y sugiere modificaciones. Los pasos 4 y 5 se repiten iterativamente hasta que todos los requerimientos estén formalizados o hasta que el prototipo haya evolucionado hacia un sistema de producción. Para usted, cual es el propósito de la evaluación del proceso de un software. (Explique) El propósito de la evaluación del proceso de un software se aplican en el mismo orden en que se van generando los Distintos productos del desarrollo siguiendo una filosofía top-Down. Esto es, la evaluación estática Acompaña a las actividades de desarrollo, a diferencia de la evaluación dinámica que únicamente Puede dar comienzo cuando finaliza la actividad de codificación, siguiendo así una estrategia Botom-up. La evaluación estática es el único modo disponible de evaluación de artefactos para las Primeras fases del proceso de desarrollo (análisis y diseño), cuando no existe código. De tres ejemplos de proyectos de software que pudieran adaptarse al modelo cascada. Ser específico. REFRIGERACION Y AIRE ACONDICIONADO esta en el modelo cascada. En donde hay dos sistemas: sistema 1 evaporador 1 compresor 1 condensador 1 válvula de expansion1 sistema 2 evaporador 2 compresor 2 condensador 2 válvula de expansión 2 En donde el fluido del sistema 1 tiene mejores propiedades, que el del sistema 2. Es decir, es capaz de absorber más energía en forma de calor. El sistema 1 y 2 están acondicionados de tal forma que el calor cedido del condensador 1, lo absorbe el evaporador2. Este sistema de cascada se aplica en cámaras frigoríficas. Dialogue con su equipo de trabajo sobre el impacto del “caos” en la ingeniería del software (Explique con ejemplos reales). En el año 1994 apareció la primera edición del informe CHAOS del Stands Group sobre le eficiencia en la fabricación de software. En aquella edición, se daba el alarmante dato de un 189% de costes extra en la construcción de software. En la más reciente edición de 2004 los datos mejoraron, aunque se mantenían ciertamente pobres. Por citar alguno, tan sólo un 29% de proyectos concluyeron satisfactoriamente, frente a un 53% de proyectos que no cumplieron con las expectativas de los usuarios y un 18% que definitivamente fueron suspendidos. Como por ejemplo: Los actuales procesos de construcción del software, instaurados principalmente en las grandes compañías, resultan ineficientes. Muchos de estos proyectos acaban siendo suspendidos por no poder soportar los sobre costos o el rate-off derivado de los retrasos y la mala gestión. Otros, aún siendo finalizados, acaban en un cajón por no responder a las expectativas de los usuarios finales, generando insatisfacción y desconfianza en los propios procesos de desarrollo. Es posible probar que un componente de software o incluso un programa completo está correcto. Entonces, ¿Por qué no todos lo hacen? Cuando se desarrolla software, una de las actividades asociadas a este proceso es la Prueba; de hecho, se ha establecido formalmente que la prueba es una actividad fundamental Dentro de cada una de las etapas del proceso de desarrollo de software. La prueba es Indispensable, puesto que a partir de ella se puede determinar la calidad de los productos Implementados; a pesar de esto, no es difícil percibir como su importancia se ha subestimado Y en ocasiones hasta ignorado. Como todos los modelos de proceso el DRA tiene inconvenientes o desventajas, mencione alguno de los inconvenientes o desventajas que puede tener este modelo en la construcción de proyectos grandes. VENTAJAS Es muy rápido. Permite trabajar en él a varias personas a la vez DESVENTAJAS El enfoque DRA tiene inconvenientes para proyectos grandes, necesita suficientes recursos humanos para crear el numero correcto de equipos. Si los desarrolladores y clientes no se comprenden con las actividades necesarias para completar el sistema, los proyectos fallarán. El DRA sería inapropiado cuando los riesgos técnicos son altos. Cree usted que los modelos prescriptivos de procesos se propusieron originalmente para ordenar el caos del desarrollo de software. Si_, no_ (Justifique su respuesta) No por que la base de la Ingeniería del Software es la calidad, se siguen ciertos pasos que se adaptan a las necesidades del software que se está construyendo. Estos pasos son denominados procesos. Se tienen diferentes modelos de estos procesos, los cuales detallan los elementos que intervienen en cada uno de estos. El tener defino ciertos modelos ayuda y facilita no solo el desarrollo de software sino también proporciona estimaciones en cuanto a tiempo y recursos. Uno de estos modelos es el Cascada el cual es el más sencillo de todos porque las fases se siguen de manera lineal, este modelo sirve perfectamente cuando todos los requisitos para el software están muy bien definidos y se sabe que no sufrirán grandes cambios. Puesto que al haber modificaciones estas alterarían el adecuado proceso de desarrollo ya que no se puede regresar a fases anteriores. El modelo en cascada o ciclo de vida clásico, es el paradigma más antiguo para la ingeniería del software. Porque cree usted que algunas veces falla este modelo. Es responsabilidad del cliente o del desarrollador que el modelo presente fallas en el transcurso de la construcción del proyecto? Debido a que este modelo presente fallas es la responsabilidad del desarrollador por que La mayor parte de los lenguajes de programación presentan al menos dos tipos de errores que permiten a los programadores manejar las fallas de los programas de una manera eficiente y que no resulte agresiva con el usuario final. Dichos errores son de compilación y errores en tiempo de ejecución. Los errores de compilación normalmente inhiben que el código fuente derive en un programa ejecutable, mientras que los errores en tiempo de ejecución son situaciones específicas en las que un evento externo al programa impide su ejecución. Regularmente un programador eficiente debe intentar imaginar como debe responder ante esos eventos de manera que sea el programa y no el usuario o el sistema operativo los que resuelvan el problema. a. Modelos prescriptivos de proceso b. Modelo de desarrollo rápido de aplicaciones. c. Modelos de procesos evolutivos. d. Modelo incremental. e. Modelo en cascada. f. Modelo en espiral. g. Modelo de construcción de prototipos. Este modelo es iterativo. Produce una versión completa en forma incremental con cada iteración.(c) Este modelo también es llamado ciclo de vida clásico.(e) Combina elementos del modelo en cascada aplicado en forma iterativa. Se enfoca en la entrega de un producto operacional con cada etapa.(D) Se puede adaptar y aplicarlo a través del ciclo de vida completo de una aplicación, desde el desarrollo del concepto hasta el mantenimiento.(f) El paradigma de construcción de este ejemplar original, se inicia con la comunicación, esencialmente cuando el cliente tiene una necesidad pero no sabe definir los detalles para transmitirle al programador de lo que realmente desea.(g) Define un conjunto distinto de actividades, acciones, tareas fundamentos y productos de trabajo que se requieren para desarrollar software de alta calidad.(a) Es un modelo de proceso de software incremental, adaptación a “alta velocidad” del modelo en cascada(b)