Victoria de Durango, Dgo. FECHA DE ENTREGA: 18/Septiembre/2012
Fundamentos de Ingeniera de Software Iovanni Fernndez Snchez 2 Modelo de Cascada Como funciona Este modelo es el ms antiguo y ms utilizado, tiene una secuencia ordenada, el trabajo de una entrada previa es la entrada del siguiente proceso, establece criterios de entrada y salida en cada fase claramente definidos, y dado que provee pocos puntos de invisibilidad da la impresin de que es lento. Etapas Anlisis de requisitos En esta fase se analizan las necesidades de los usuarios finales del software para determinar qu objetivos debe cubrir. Diseo del Sistema Descompone y organiza el sistema en elementos que puedan elaborarse por separado, aprovechando las ventajas del desarrollo en equipo. Diseo del Programa Es la fase en donde se realizan los algoritmos necesarios para el cumplimiento de los requerimientos del usuario as como tambin los anlisis necesarios para saber que herramientas usar en la etapa de Codificacin. Codificacin Es la fase en donde se implementa el cdigo fuente, haciendo uso de prototipos as como de pruebas y ensayos para corregir errores. Pruebas Los elementos, ya programados, se ensamblan para componer el sistema y se comprueba que funciona correctamente y que cumple con los requisitos, antes de ser entregado al usuario final. Verificacin Es la fase en donde el usuario final ejecuta el sistema, para ello el o los programadores ya realizaron exhaustivas pruebas para comprobar que el sistema no falle. Fundamentos de Ingeniera de Software Iovanni Fernndez Snchez 3 Mantenimiento Una de las etapas ms crticas, ya que se destina un 75% de los recursos, es el mantenimiento del Software ya que al utilizarlo como usuario final puede ser que no cumpla con todas nuestras expectativas.
Ventajas Excelente cuando se tiene un producto estable y se conoce la tecnologa. Es un mtodo muy estructurado que funciona bien con gente de poca experiencia. Provee estabilidad en los requerimientos. La planeacin se puede hacer anticipadamente. Para proyectos grandes.
Desventajas Tiene poca flexibilidad. Los proyectos en la prctica raramente siguen un flujo secuencial. Siempre es difcil para el cliente mostrar todos los requerimientos explcitamente y con mucha anticipacin. El cliente debe tener paciencia.
Fundamentos de Ingeniera de Software Iovanni Fernndez Snchez 4 Aplicaciones Es utilizado en la actualidad generalmente como mtodos didcticos de enseanza. Modelo en Espiral
Como funciona Los productos son creados a travs de mltiples repeticiones del proceso del ciclo de vida, es decir, se rompen en mini proyectos. Etapas En cada vuelta o iteracin hay que tener en cuenta: Los Objetivos: qu necesidad debe cubrir el producto. Alternativas: las diferentes formas de conseguir los objetivos de forma exitosa, desde diferentes puntos de vista como pueden ser: 1. Caractersticas: experiencia del personal, requisitos a cumplir, etc. 2. Formas de gestin del sistema. 3. Riesgo asumido con cada alternativa. Desarrollar y Verificar: Programar y probar el software. Si el resultado no es el adecuado o se necesita implementar mejoras o funcionalidades: Se planificaran los siguientes pasos y se comienza un nuevo ciclo de la espiral. La espiral tiene una forma de caracola y se dice que mantiene dos dimensiones, la radial y la angular: 1. Angular: Indica el avance del proyecto del software dentro de un ciclo. 2. Radial: Indica el aumento del coste del proyecto, ya que con cada nueva iteracin se pasa ms tiempo desarrollando.
Fundamentos de Ingeniera de Software Iovanni Fernndez Snchez 5 Para cada ciclo habr 4 actividades Determinar o fijar objetivos Fijar tambin los productos definidos a obtener: requerimientos, especificacin, manual de usuario. Fijar las restricciones. Identificacin de riesgos del proyecto y estrategias alternativas para evitarlos. Hay una cosa que solo se hace una vez: planificacin inicial. Anlisis del riesgo Se lleva a cabo el estudio de las causas de las posibles amenazas y probables eventos no deseados y los daos y consecuencias que stas puedan producir. Planificar Revisamos todo lo hecho, evalundolo, y con ello decidimos si continuamos con las fases siguientes y planificamos la prxima actividad. Desarrollar, verificar y validar (probar) Tareas de la actividad propia y de prueba. Anlisis de alternativas e identificacin resolucin de riesgos. Dependiendo del resultado de la evaluacin de los riesgos, se elige un modelo para el desarrollo, el que puede ser cualquiera de los otros existentes, como formal, evolutivo, cascada, etc.
Fundamentos de Ingeniera de Software Iovanni Fernndez Snchez 6 Ventajas El producto avanza a pasos firmes solucionado riesgos en cada iteracin. El producto termina con todos los riesgos resueltos. Se pueden incluir otros mtodos de desarrollo en las iteraciones. A medida que el costo aumenta, los riesgos se reducen. Se tienen puntos de control en cada interaccin. Desventajas Es complicado. Requiere de mucha administracin. Difcil de definir los objetivos, metas que indiquen que podemos avanzar al siguiente ciclo. Se puede caer en un desarrollo de nunca acabar.
Aplicaciones Este sistema es muy utilizado en proyectos grandes y complejos como puede ser, por ejemplo, la creacin de un Sistema Operativo. Modelo de Prototipo Como funciona El modelo de prototipo debe de ser construido en poco tiempo utilizando pocos recursos, este es una versin preliminar de un sistema y sirve para una demostracin o evaluacin del mismo. Etapas Plan rpido Modelado, diseo rpido Construccin del Prototipo Fundamentos de Ingeniera de Software Iovanni Fernndez Snchez 7 Desarrollo, entrega y retroalimentacin Comunicacin
Ventajas tiles cuando los requerimientos son cambiantes. Cuando no se conoce bien la aplicacin. Cuando el usuario no se quiere comprometer con los requerimientos. Cuando se quiere probar una arquitectura o tecnologa. Cuando se requiere rapidez en el desarrollo.
Desventajas No se conoce cuando se tendr un producto aceptable. No se sabe cuntas iteraciones sern necesarias. Da una falsa ilusin al usuario sobre la velocidad del desarrollo. Se puede volver el producto an y cuando no este con los estndares. Aplicaciones Es usado generalmente para una visualizacin previa de cualquier modelo que se quiera desarrollar.
Fundamentos de Ingeniera de Software Iovanni Fernndez Snchez 8 Modelo de Incremental Como funciona Este est basado bsicamente en varios ciclos cascada que repetidamente nos dan una mejor solucin. Etapas En pocas palabras se puede definir las etapas de este modelo en las actividades concurrentes que se mencionan a continuacin. Especificacin Desarrollo Validacin
Fundamentos de Ingeniera de Software Iovanni Fernndez Snchez 9
Ventajas La solucin se va mejorando en forma progresiva a travs de las mltiples iteraciones. Incrementa el entendimiento del problema y de la solucin por medio de los refinamientos sucesivos. Desventajas Requiere de mucha planeacin, tanto administrativa como tcnica. Requiere de metas claras para conocer el estado del proyecto.
Aplicaciones Un ejemplo es un procesador de texto que sea desarrollado bajo el paradigma Incremental podra aportar, en principio, funciones bsicas de edicin de archivos y produccin de documentos (algo como un editor simple). En un segundo incremento se le podra agregar edicin ms sofisticada, y de generacin y mezcla de documentos. En un tercer incremento podra considerarse el agregado de funciones de correccin, esquemas de paginado y plantillas; en un cuarto capacidades de dibujo propias y ecuaciones matemticas. As sucesivamente hasta llegar al procesador final requerido. As, el producto va creciendo, acercndose a su meta final, pero desde la entrega del primer incremento ya es til y funcional para el cliente, el cual observa una respuesta rpida en cuanto a entrega temprana; sin notar que la fecha lmite del proyecto puede no estar acotada ni tan definida, lo que da margen de operacin y alivia presiones al equipo de desarrollo.
Fundamentos de Ingeniera de Software Iovanni Fernndez Snchez 10 Modelo en Flor Como funciona Las etapas son desarrolladas hasta cierto punto al parejo una de la otra, es decir, no tenemos que pasar una para empezar otra. Etapas Identificacin de requerimientos
Diseo rpido
Utilizar el prototipo
Revisar y mejorar Ventajas tiles cuando los requerimientos son cambiables Cuando el usuario no se quiere comprometer con los requerimientos. Cuando no se conoce bien la aplicacin Cuando se quiere probar una arquitectura o tecnologa Cuando se requiera rapidez en el desarrollo Desventajas No se conoce cuando tengamos un producto aceptable. No se sabe cuntas iteraciones sern necesarias Dan una falsa ilusin al usuario sobre la velocidad del desarrollo.
Aplicaciones Se utiliza, como se menciona, para cuando no conocemos muy bien el modelo que deseamos construir.
Fundamentos de Ingeniera de Software Iovanni Fernndez Snchez 11 Modelo en V Como funciona Divide el proyecto en 2 partes izquierda y derecha, en el lado izquierdo representa la descomposicin de las necesidades y la creacin de las especificaciones del sistema y del lado derecho se encuentra la integracin de las piezas y su verificacin. Etapas La corriente de especificacin (parte izquierda, Project definition) consiste principalmente de: Conceptos de operaciones: que debe hacer el sistema a grandes rasgos. Requisitos del sistema y arquitectura del mismo. Diseo detallado. La corriente de pruebas (parte derecha, Project test and integration), por su parte, suele consistir de: Integracin de las distintas partes, prueba y verificacin de las mismas. Verificacin y validacin del sistema en conjunto. Mantenimiento del sistema. La corriente de desarrollo puede consistir (depende del tipo de sistema y del alcance del desarrollo) en personalizacin, configuracin o codificacin.
Fundamentos de Ingeniera de Software Iovanni Fernndez Snchez 12 Ventajas El modelo en V hace ms explcita la tarea parte de la iteracin de las actividades del proceso. Las pruebas de cada fase ayudaran a corregir posibles errores sin tener que esperar a que sean rectificados en la etapa final del proceso. Con las pruebas unitarias y de integracin se consigue obtener exactitud en los programas.
Desventajas Al encontrarse errores luego de realizar las pruebas se pierde tiempo y dinero, ya que cada prueba se realiza luego de haber terminado la implementacin. Aplicaciones Desarrollo de productos para las TIC. Es el estndar utilizado para los proyectos de la Administracin Federal alemana y de defensa. Como est disponible pblicamente muchas compaas lo usan. Es un mtodo de gestin de proyectos comparable a PRINCE2 y describe tanto mtodos para la gestin como para el desarrollo de sistemas.