1. Ventajas y desventajas de los modelos que utilizan el ciclo de vida del software?
CICLO DE VIDA DEL SOFTWARE
Un modelo de ciclo de vida define el estado de las fases a travs de las cuales se mueve un proyecto de desarrollo de software. Un modelo de ciclo de vida de software es una vista de las actividades que ocurren durante el desarrollo de software, intenta determinar el orden de las etapas involucradas y los criterios de transicin asociadas entre estas etapas. Modelo en Cascada Este es el ms bsico de todos los modelos, y sirve como bloque de construccin para los de-ms modelos de ciclo de vida. La visin del modelo cascada del desarrollo de software es muy simple; dice que el desarrollo de software puede ser a travs de una secuencia simple de fases. Cada fase tiene un conjunto de metas bien definidas, y las actividades dentro de una fase con-tribuyen a la satisfaccin de metas de la fase o quizs a una sub secuencia de metas de la fase. Las flechas muestran el flujo de informacin entre las fases. La flecha de avance muestra el flujo normal. Las flechas hacia atrs representan la retroalimentacin. Ventajas: Es un modelo sencillo y disciplinado. Es fcil aprender a utilizarlo y comprender su funcionamiento. Est dirigido por los tipos de documentos y resultados que deben obtenerse al final de cada etapa. Ha sido muy usado y, por tanto, est ampliamente contrastado Ayuda a detectar errores en las primeras etapas a bajo costo. Ayuda a minimizar los gastos de planificacin, pues se realiza sin problemas. Desventajas: Los proyectos raramente siguen el proceso lineal tal como se defina originalmente el ciclo de vida. Es difcil que el cliente exponga explcitamente todos los requisitos al principio. El cliente debe tener paciencia pues obtendr el producto al final del ciclo de vida. No refleja exactamente cmo se programa realmente el sistema, en el que suele haber un gran componente iterativo. Puede resultar complicado regresar a etapas anteriores (ya acabadas) para realizar correcciones. El producto final obtenido puede que no refleje todos los requisitos del usuario
MODELO EN ESPIRAL El modelo espiral de los procesos software es un modelo del ciclo de meta vida. En este modelo, el esfuerzo de desarrollo es iterativo. Tan pronto como uno completa un esfuerzo de desarrollo, otro comienza.
Ventajas: Conjuga la naturaleza iterativa de los prototipos con los aspectos controlados y sistemticos del modelo clsico. Proporciona el potencial para el desarrollo rpido de versiones incrementales. Puede adaptarse y aplicarse a lo largo de la vida del software. Es un enfoque realista del desarrollo del software.Permite aplicar el enfoque de construccin de prototipos en cualquier momento para reducir riesgos. Reduce los riesgos antes de que se conviertan en problemticos. Controla muy bien los riesgos y mientras ms iteraciones se realicen, menos riesgos habr. Monitoriza y controla los riesgos continuamente Desventajas: Puede resultar difcil convencer a algunos clientes de que el enfoque evolutivo es controlable. Solo resulta aplicable para proyectos de gran tamao. Supone una carga de trabajo adicional, no presente en otros ciclos de vida. Requiere una considerable habilidad para la evaluacin y resolucin del riesgo, y se basa en esta habilidad para el xito. Si un riesgo importante no es descubierto y gestionado, indudablemente surgirn problemas. Es bastante complicado de realizar y su complejidad puede incrementarse hasta hacer lo impracticable. El modelo no se ha utilizado tanto como otros, por lo que tendrn que pasar aos antes de que determine con certeza la eficacia de este modelo. MODELO INCREMENTAL
Desarrollo iterativo y creciente (o incremental) es un proceso de desarrollo de software, creado en respuesta a las debilidades del modelo tradicional de cascada. Par apoyar el desarrollo de proyectos por medio de este modelo se han creado frameworks (entornos de trabajo),de los cuales los dos ms famosos son el Rational Unified Process y el Dynamic Systems Development Method .
Ventajas El usuario se involucra ms. Los usuarios no tienen que esperar. Se evitan proyectos largos y se entrega algo de valor a los usuarios con cierta frecuencia. Se puede financiar el proyecto por partes. No se necesita tanto personal al principio como para una implementacin completa. Desventajas Difcil de evaluar el costo total. Difcil de aplicar a sistemas transaccionales que tienden a ser integrados y a funcionar como un todo. Requiere gestores experimentados. Los errores en los requisitos se detectan tarde. Prioriza los requisitos del usuario y los requisitos de ms alta prioridad se incluyen en los incrementos ms tempranos. Las primeras versiones son incompletas pero proporcionan al usuario la funcionalidad que precisa y una plataforma para la evaluacin. Se necesitan pruebas de regresin
MODELO DE PROTOTIPO
El Modelo de prototipos, en Ingeniera de software, pertenece a los modelos de desarrollo evolutivo. El prototipo debe ser construido en poco tiempo, usando los programas adecuados y no se debe utilizar muchos recursos. El diseo rpido se centra en una representacin de aquellos aspectos del software que sern visibles para el cliente o el usuario final. Este diseo conduce a la construccin de un prototipo, el cual es evaluado por el cliente para una retroalimentacin; gracias a sta se refinan los requisitos del software que se desarrollar. La interaccin ocurre cuando el prototipo se ajusta para satisfacer las necesidades del cliente. Esto permite que al mismo tiempo el desarrollador en-tienda mejor lo que se debe hacer y el cliente vea resultados a corto plazo. Ventajas Permite la construccin del sistema con requisitos poco claros o cambiantes. El cliente recibe una versin del sistema en muy poco tiempo, por lo que lo puede evaluar, probar e, incluso, empezar a utilizarlo. Se pueden introducir cambios en las funcionalidades del sistema en cualquier momento. Involucra al usuario en la evaluacin de la interfaz de usuario. Se reduce el riesgo y la incertidumbre sobre el desarrollo. Genera signos visibles de progreso, que se utilizan cuando existe una demanda en la velocidad del desarrollo. Permite entender bien el problema antes de la implementacin final.
Desventajas El cliente puede quedar convencido con las primeras versiones y, quizs, no vea la necesidad de completar el sistema o redisearlo con la calidad necesaria. Requiere trabajo del cliente para evaluar los distintos prototipos y traducirlo en nuevos requisitos. Requiere un tiempo adicional para definir adecuadamente el sistema. No se sabe exactamente cunto ser el tiempo de desarrollo ni cuantos prototipos se tienen que desarrollar. Si un prototipo fracasa, el coste del proyecto puede resultar muy caro.
2. Diferencias entre la metodologa RUP y las metodologas giles
Metodologa RUP Metodologa gil La Metodologa tradicional usa procesos definidos, la recopilacin de informacin se realiza al inicio del proyecto, es tan cuadriculado que posee cierta resistencia al cambio durante el desarrollo, el cliente solo se comunica con el equipo de desarrollo por medio de reuniones establecidas. Por todo lo mencionado se puede deducir que realizar una correccin durante el desarrollo ser ms caro debido a que se invirti bastante tiempo, adems podemos decir que no existe muestra de software funcionando en la presentacin de cada avance. En Metodologa gil la recopilacin de informacin se da durante todo el proyecto no solo al inicio, siempre est preparada para cambio durante el desarrollo, y sobre todo al cliente se le considera parte del equipo. Sin duda una de las mejores caractersticas de Agile es presentar de manera continua versiones de software funcionando