DE VIDA DE SISTEMAS INTRODUCCIN 2 Consideraciones preliminares (1) Todo esfuerzo en el desarrollo de Sistemas conlleva un ciclo de vida. Un modelo de ciclo de vida es un modelo prescriptivo de lo que pasara entre la primera idea y el funcionamiento del sistema. Existen varios modelos del ciclo de vida. El modelo de ciclo de vida apropiado puede orientar el proyecto y ayudar a asegurar que cada paso se acerque ms a la consecucin del objetivo. 3 Dependiendo del modelo de ciclo de vida seleccionado: se puede aumentar la velocidad de desarrollo. mejorar la calidad, el control y el seguimiento del proyecto. minimizar gastos y riesgos. mejorar las relaciones con el usuario. Consideraciones preliminares (2) 4 La seleccin ineficaz de un modelo de ciclo de vida puede ser una fuente constante de: ralentizacin del trabajo. trabajo repetitivo, innecesario y frustrante. Se pueden producir estos ltimos efectos si no se elige un modelo de ciclo de vida. Consideraciones preliminares (3) 5 Ciclos de vida en el desarrollo de Sistemas cascada pura codificar y corregir espiral cascadas modificadas prototipo evolutivo entrega por etapas diseo por planificacin entrega evolutiva diseo por herramientas software comercial existente Diferentes tipos de ciclos de vida 6 PLANIFICACIN DEL CICLO DE VIDA DE SISTEMAS CASCADA PURA 7 Es el predecesor de todos los modelos de ciclo de vida y ha servido de base para otros modelos. En este modelo, un proyecto progresa a travs de una secuencia ordenada de etapas, partiendo desde su concepto inicial hasta la prueba del mismo. El proyecto realiza una revisin al final de cada etapa para determinar si est preparado para pasar a la siguiente. El modelo de cascada pura 8 Implementacin Utilizacin Planeacin Anlisis Diseo Grfica del modelo de cascada pura 9 Ventajas del modelo de Cascada Pura (1) Se utiliza correctamente para ciclos en los que: se tiene una definicin estable del producto. cuando se esta trabajando con metodologas y tcnicas conocidas. Puede constituir una eleccin correcta para el desarrollo rpido cuando se est: construyendo una versin de mantenimiento bien definida de un producto existente migrando un producto existente a una nueva plataforma. Ayuda a minimizar los gastos de la planificacin porque permite realizarla sin problemas. 10 Ventajas del modelo de cascada pura (2) Funciona bien: con proyectos complejos bien definidos. debido a que se pueden obtener beneficios al enfrentarse a la complejidad de forma ordenada. cuando los requerimientos de calidad dominan sobre los de costos y de planificacin. Evita una fuente comn de errores importantes. eliminando los cambios que se pueden producir a medio camino. Presenta el proyecto con una estructura que ayuda a minimizar el esfuerzo intil. 11 Desventajas del modelo de cascada pura (1) Dificultad para especificar claramente los requerimientos al comienzo del proyecto (no permite flexibilidad en los cambios). Para un proyecto de desarrollo rpido, el modelo de cascada puede suponer una cantidad excesiva de documentacin. 12 Desventajas del modelo de cascada pura (2) Si se intenta mantener la flexibilidad, la actualizacin de la especificacin se puede convertir en un trabajo a tiempo completo. No es imposible volver atrs utilizando el modelo de cascada pura, pero si difcil. Genera pocos signos visibles de progreso hasta el final. esto puede dar la impresin de un desarrollo lento, incluso sin ser verdad. 13 Observaciones al modelo de cascada pura Es el modelo ms conocido y ofrece una velocidad de desarrollo aceptable en algunas circunstancias. otros modelos, sin embargo, proporcionan una velocidad de desarrollo superior. Los inconvenientes del modelo hacen que sea, a menudo, poco apropiado para un proyecto de desarrollo rpido. incluso en los casos en los que las ventajas del modelo superan los inconvenientes, los modelos de cascada modificada pueden funcionar mejor. 14 PLANIFICACIN DEL CICLO DE VIDA DE SISTEMAS CODIFICAR Y CORREGIR 15 El modelo codificar y corregir Es un modelo poco til, pero bastante comn Si no se ha seleccionado explcitamente otro modelo, por omisin se estar utilizando este modelo. Cuando se utiliza se empieza con una idea general de lo que se necesita construir. se puede tener una especificacin formal, o no tenerla. se utiliza cualquier combinacin de diseo, cdigo, depuracin y mtodos de prueba no formales que sirven hasta que se tiene el producto listo para entregarlo. 16 Grfica del modelo codificar y corregir codificar y corregir Especificacin del sistema (quizs) Entrega (quizs) 17 Ventajas del modelo codificar y corregir (1) No conlleva ninguna gestin. No se pierde tiempo en: la planificacin. en la documentacin. en el control de la calidad. en el cumplimiento de los estndares. en cualquier otra actividad que no sea la codificacin pura. 18 Ventajas del modelo codificar y corregir (2) Como se pasa directamente a codificar, se pueden mostrar inmediatamente indicios de progreso. Requiere poca experiencia: cualquier persona que haya escrito alguna vez un programa de computadora est familiarizada con el modelo de codificar y corregir. 19 Desventajas del modelo codificar y corregir Resulta peligroso para otro tipo de proyectos que no sean pequeos. Aunque no suponga gestin alguna, tampoco ofrece medios de evaluacin del progreso. se codifica justo hasta que se termina. No proporciona medios de evaluacin de la calidad o de identificacin de riesgos. 20 Observaciones al modelo codificar y corregir Puede resultar til para proyectos pequeos que se intentan liquidar poco despus de ser construidos. programas pequeos de demostracin de conceptos. para demostraciones de duracin corta. prototipos desechables.. No tiene cabida en un proyecto de desarrollo rpido, excepto para estos pequeos proyectos sealados. Es un modelo no formal que se utiliza normalmente porque es simple, pero no porque funcione bien. 21 PLANIFICACIN DEL CICLO DE VIDA DE SISTEMAS ESPIRAL 22 El modelo de espiral Es un modelo orientado a riesgos que divide un proyecto en miniproyectos. cada miniproyecto se centra en uno o ms riesgos importantes hasta que todos stos estn controlados. El concepto riesgo puede referirse a: requerimientos y arquitecturas poco comprensibles. problemas de ejecucin importantes. problemas con la tecnologa subyacente. Despus de controlar todos los riesgos importantes, el modelo finaliza del mismo modo que el modelo de ciclo de vida en cascada. 23 Planificacin Anlisis de riesgos Evaluacin del cliente Ingeniera Recoleccin de requisitos y planificacin inicial del cliente Planificacin basada en los comentarios del cliente Evaluacin del cliente Anlisis de riesgo basado en los requisitos iniciales Anlisis de riesgo basado en la reaccin del cliente Prototipo inicial del software Prototipo del siguiente nivel Sistema de ingeniera Hacia el sistema final Grfica del modelo de espiral 24 Combinaciones del modelo de espiral Primera combinacin. iterar para reducir los riesgos hasta que se hayan reducido a un nivel aceptable. finalizar el esfuerzo de desarrollo con un ciclo de vida en cascada u otro modelo de ciclo de vida no basado en riesgos. Segunda combinacin. se pueden incorporar otros modelos de ciclo de vida como iteraciones dentro del modelo en espiral. por ejemplo, una iteracin de prototipado que permita la investigacin de alguno de los riesgos. 25 Ventajas del modelo de espiral (1) Mientras los costos suben, los riesgos disminuyen. cuanto ms tiempo y dinero se emplee, menores sern los riesgos. que es exactamente lo que se quiere en un proyecto de desarrollo rpido. Proporciona al menos tanto control de gestin como el modelo en cascada tradicional. se tienen los puntos de verificacin al final de cada iteracin. 26 Como el modelo est orientado a riesgos, proporciona con anterioridad indicaciones de cualquier riesgo insuperable. Es posible descubrir si el proyecto no se puede realizar por razones tcnicas u otras razones. y esto no supondr un costo excesivo. Ventajas del modelo de espiral (2) 27 Desventajas del modelo de espiral La nica desventaja del modelo en espiral es que se trata de un modelo complicado. Requiere de una gestin concienzuda, atenta, y que exige conocimientos profundos. Puede ser difcil definir hitos objetivos de comprobacin que indiquen si est preparado para pasar al siguiente nivel de la espiral. 28 Observaciones al modelo de espiral El modelo de espiral es un modelo de ciclo de vida orientado a riesgos. Este se puede combinar con otros modelos de ciclo de vida. La principal ventaja de este modelo es que mientras los costos suben, los riesgos disminuyen. 29 PLANIFICACIN DEL CICLO DE VIDA DE SISTEMAS CASCADAS MODIFICADAS 30 El modelo cascadas modificadas El mayor problema del modelo de cascada pura es que trata las fases del ciclo de vida como etapas secuenciales disjuntas. Es posible corregir los inconvenientes ms importantes en el modelo de cascada pura con pequeas modificaciones. puede modificarse de forma tal que las etapas se solapen. se puede reducir el nfasis sobre la documentacin. se puede permitir ms regresin. 31 Variantes del modelo de cascadas modificadas (1) Cascada con fases solapadas. puede evitar algunos inconvenientes del modelo de cascada pura al solapar sus etapas. por ejemplo, sugiere que se debera tener bien hecho el diseo global y quizs a medio hacer el diseo detallado antes de considerar completo el anlisis de requerimientos. puede reducir sustancialmente la documentacin necesaria entre etapas. 32 Variantes del modelo de cascadas modificadas (2) Cascada con subproyectos. puede permitir la ejecucin de algunas de las tareas de la cascada en paralelo (subproyectos), siempre que se haya realizado una cuidadosa planificacin. 33 Cascada con reduccin de riesgos. incorpora una espiral en lo alto de la cascada para controlar el riesgo de los requerimientos. incorpora una espiral para las dems etapas de desarrollo. a este nivel es posible: desarrollar un prototipo de interfaz de usuario. tener entrevistas con los usuarios. observar cmo los usuarios interactan con algn sistema previo. utilizar otros mtodos que se consideren apropiados para la identificacin de los requerimientos. Variantes del modelo de cascadas modificadas (3) 34 Planeacin Anlisis Diseo Implementacin Utilizacin Grfica del modelo de cascada con fases solapadas 35 Grfica del modelo de cascada con subproyectos Planeacin Anlisis Diseo Diseo detallado Prueba del subsistema Diseo detallado Prueba del subsistema Diseo detallado Codificacin y depuracin Prueba del subsistema Prueba del sistema Codificacin y depuracin Codificacin y depuracin 36 Planeacin Anlisis Diseo Implemen tacin Utilizacin Grfica del modelo en cascada con reduccin de riesgos 37 Desventajas de las variantes Modelo de cascada con fases solapadas. debido al solapamiento entre las etapas, los hitos son ms ambiguos, y esto hace ms difcil trazar el progreso correctamente. la realizacin de actividades en paralelo puede suponer una mala comunicacin, suposiciones incorrectas e ineficacia. Modelo de cascada con subproyectos. presencia de interdependencias imprevistas. Modelo de cascada con reduccin de riesgos. Ninguno. 38 PLANIFICACIN DEL CICLO DE VIDA DE SISTEMAS PROTOTIPADO EVOLUTIVO 39 El modelo de prototipado evolutivo (1) Es un modelo de ciclo de vida en el que se desarrolla el concepto del sistema a medida que avanza el proyecto. Normalmente se comienza desarrollando los aspectos ms visibles del sistema. 40 El modelo de prototipado evolutivo Se presenta la parte ya desarrollada del sistema al cliente y se contina el desarrollo del prototipo en base la realimentacin que se recibe del cliente. El ciclo contina hasta que el prototipo se convierte en el producto final de ingeniera. 41 Grfica del modelo de prototipado evolutivo Inicio Parada Planeacin y anlisis Diseo rpido Construccin del prototipo Evaluacin del prototipo por el cliente Refinamiento del prototipo Producto de Ingeniera 42 Cuando los requerimientos cambian con rapidez. Cuando el cliente es reacio a especificar el conjunto de los requerimientos. Cuando ni el analista ni el cliente identifican de forma apropiada el rea de aplicacin. Cuando los desarrolladores no estn seguros de la arquitectura o los algoritmos adecuados a utilizar. Cundo utilizar el prototipado evolutivo? 43 Desventajas del modelo de prototipado evolutivo Imposibilidad de conocer al inicio del proyecto lo que se tardar en crear un producto aceptable. incluso no se sabe cuntas iteraciones se tendrn que realizar. esta aproximacin puede convertirse fcilmente en una excusa para realizar el desarrollo con el modelo de codificar y corregir. 44 PLANIFICACIN DEL CICLO DE VIDA DE SISTEMAS ENTREGA POR ETAPAS 45 El modelo de entrega por etapas (implementacin incremental) El sistema se muestra al cliente en etapas refinadas sucesivamente. A diferencia del modelo de prototipado evolutivo, se conoce exactamente qu es lo que se va a construir cuando se procede a construirlo. Lo que hace diferente a este modelo es que el sistema no se entrega como un todo al final del proyecto, sino que ste se entrega por etapas sucesivas a lo largo del proyecto. 46 Grfica del modelo de entrega por etapas planeacin anlisis diseo etapa 1: diseo, implementacin, utilizacin etapa 1: diseo, implementacin, utilizacin etapa 1: diseo, implementacin, utilizacin 47 Ventajas del modelo de entrega por etapas (1) Permite proporcionar una funcionalidad til en las manos del cliente antes de entregar el 100% del proyecto. Con una planificacin cuidadosa, es posible entregar las prestaciones ms importantes al principio, y el cliente puede comenzar a usar el sistema en ese punto. 48 Ventajas del modelo de entrega por etapas (2) Proporciona signos tangibles de progreso en el proyecto, y se generan con enfoques menos incrementales. estos signos de progreso pueden ser un valioso aliado para mantener la presin de planificacin a un nivel apropiado. 49 Desventajas del modelo de entrega por etapas No funciona sin una planificacin adecuada tanto para niveles tcnicos como para niveles de gestin. 50 PLANIFICACIN DEL CICLO DE VIDA DE SISTEMAS DISEO POR PLANIFICACIN 51 El modelo de diseo por planificacin (1) Es similar al modelo entrega por etapas. la diferencia radica en que no siempre se conoce al principio si se tendr el producto para la ltima entrega. Se pueden tener cinco etapas planificadas. pero slo se llega a la tercera etapa debido a que se tiene una fecha lmite que no se puede cambiar. 52 Uno de los elementos crticos de este modelo es priorizar los requerimientos y planificar sus etapas. de tal forma que las primeras contengan los requerimientos de mayor prioridad. los requerimientos de baja prioridad se dejan para ms tarde. El modelo de diseo por planificacin (2) 53 Grfica del modelo de diseo por planificacin Planeacin anlisis diseo alta prioridad: diseo detallado, implementacin, utilizacin prioridad media-alta: diseo detallado, implementacin, utilizacin prioridad media: diseo detallado, implementacin, utilizacin entrega prioridad media-baja: diseo detallado, implementacin, utilizacin prioridad baja: diseo detallado, implementacin, utilizacin AGOTAMIENTO DEL PLAZO O DEL PRESUPUESTO 54 Ventajas del modelo de diseo por planificacin Puede ser una estrategia vlida para asegurar que se tiene un producto listo a entregar en una fecha determinada. Esta estrategia es particularmente til para las partes del producto que no se quieren realizar en el camino crtico. 55 Desventajas del modelo de diseo por planificacin Si no se completan todas las etapas, se desperdiciar tiempo en la especificacin, arquitectura y diseos de prestaciones que no se van a entregar. Si se ha gastado tiempo en una gran cantidad de requerimientos incompletos que no se van a entregar, se debera tener tiempo para resumir en uno o dos requerimientos ms completos. 56 Observaciones al modelo de diseo por planificacin La decisin radica en la respuesta a la pregunta cunta confianza se tiene en la habilidad para la planificacin?. si se tiene mucha confianza, esta aproximacin es ineficiente. si se tiene una menor confianza, esta aproximacin podra ser excelente. 57 PLANIFICACIN DEL CICLO DE VIDA DE SISTEMAS ENTREGA EVOLUTIVA 58 El modelo de entrega evolutiva (1) Es un modelo que se encuentra entre el prototipado evolutivo y la entrega por etapas se desarrolla una versin del producto. se muestra al cliente. se refina el producto en funcin de los comentarios del cliente. El parecido entre ambos modelos depende de hasta qu punto se lleva a cabo una planificacin para adaptarse a las solicitudes de los clientes. 59 Si se planifica para adaptarse a la mayora de las solicitudes, la entrega evolutiva se parecer ms al prototipado evolutivo. Si se planifica para adaptarse a pocas solicitudes de modificacin, la entrega evolutiva se aproximar a la entrega por etapas. El modelo de entrega evolutiva (2) 60 Grfica del modelo de entrega evolutiva Planeacin Anlisis Diseo Entregar la versin final Desarrollar una versin Entregar la versin Realimentacin del cliente Agregar la realimentacin del cliente 61 Las diferencias principales entre el prototipado evolutivo y la entrega evolutiva son ms de nfasis que de aproximacin fundamental. en el prototipado evolutivo, el nfasis inicial se encuentra en los aspectos visibles del sistema; despus se vuelve atrs y se completan los huecos de las bases del sistema. en la entrega evolutiva, el nfasis inicial se pone en el ncleo del sistema, que est constituido por funciones de bajo nivel que probablemente no van a ser modificadas por la realimentacin del cliente. Observaciones al modelo de entrega evolutiva 62 PLANIFICACIN DEL CICLO DE VIDA DE SISTEMAS DISEO POR HERRAMIENTAS 63 El modelo de diseo por herramientas En este modelo la idea es incluir una prestacin (funcionalidad) dentro del producto slo si las herramientas de software existentes la soportan directamente. Si no est soportada, se deja. Ejemplos de herramientas son: las libreras de cdigo y clases. generadores de cdigo. lenguajes de desarrollo rpido y otras herramientas software que reducen de manera espectacular el tiempo de implementacin. 64 Funcionalidad soportadas por las herramientas Funcionalidad que se va a incluir Funcionalidad ideal Funcionalidad que no va a estar en el producto Grfica del modelo de diseo por herramientas 65 Ventajas del modelo de diseo por herramientas Este modelo se puede combinar con otros modelos. Primer ejemplo de combinacin. construir una espiral inicial para identificar las capacidades de las herramientas software existentes. identificar los requerimientos bsicos. determinar si la aproximacin del diseo por herramientas es viable. Segundo ejemplo de combinacin. utilizar una aproximacin del diseo por herramientas para implementar un prototipo de prueba. realizando un prototipo slo de las capacidades que se pueden implementar fcilmente con herramientas. implementar el software real utilizando la entrega por etapas, la entrega evolutiva y el diseo por planificacin. 66 Desventajas del modelo de diseo por herramientas Se pierde mucho control sobre el producto. Puede que no sea posible llevar a cabo la implementacin de todos los requerimientos que se desean, y que no se puedan implementar otros requerimientos exactamente de la forma que se quiere. Depende en buena medida de los productores de software comercial (tanto de sus estrategias de productos como de su estabilidad financiera) 67 Observaciones al modelo de diseo por herramientas Al utilizar este modelo no ser posible implementar toda la funcionalidad que se considera ideal incluir. sin embargo, si selecciona las herramientas con cuidado, puede implementar la mayor parte de la funcionalidad que se desea. Cuando el tiempo es una restriccin, se podra implementar ms funcionalidad de la que se obtiene con otra aproximacin. sin embargo, ser la funcionalidad que las herramientas permiten una implementacin de forma ms sencilla, no la funcionalidad que se considera ideal. 68 PLANIFICACIN DEL CICLO DE VIDA DE SISTEMAS SOFTWARE COMERCIAL EXISTENTE 69 El modelo de software comercial existente El software comercial disponible raramente va a satisfacer todas las necesidades del cliente. Se deben considerar los siguientes puntos: est disponible de forma inmediata. en el lapso de tiempo entre que se adquiere el software comercial y en el que se puede tener preparada la entrega del sistema de creacin propia, los usuarios pueden. aprender a trabajar con las limitaciones del producto. revisar el software comercial para adaptarlo an ms a las necesidades de cada uno. 70 PLANIFICACIN DEL CICLO DE VIDA DE SISTEMAS SELECCIN DEL CICLO DE VIDA 71 Observaciones sobre la seleccin Distintos proyectos tienen necesidades diferentes. incluso si todos necesitan ser desarrollados lo ms rpido posible. No existe un modelo de ciclo de vida de desarrollo rpido. debido a que el modelo ms efectivo depende del contexto en el que se utilice. Determinados modelos de ciclo de vida son considerados ms rpidos que otros. pero cada uno de ellos ser ms rpido en determinadas situaciones y ms lento en otras. 72 Un modelo que a menudo trabaja bien puede suceder que no funcione bien si no se utiliza correctamente. Para seleccionar el modelo ms conveniente se debe responder a las siguientes preguntas: Me compenetro con el cliente para la especificacin de los requerimientos al comienzo del problema?. Es probable que el entendimiento de las dos partes cambie significativamente a medida que se avance en el proyecto?. Preguntas sobre la seleccin (1) 73 Comprendo bien la arquitectura del sistema?. Es probable que necesite llevar a cabo modificaciones importantes en la arquitectura a mitad del proyecto?. Cunta fiabilidad necesito?. Cunto tiempo extra necesito para planificar y disear durante el proyecto para las versiones futuras?. Cuntos riesgos conlleva el proyecto? . Estoy sometido a una planificacin predefinida?. Necesito poder realizar modificaciones a medio camino?. Preguntas sobre la seleccin (2) 74 Necesito proporcionar a mis clientes signos visibles de progreso durante el proyecto?. Necesito ofrecer a la directiva signos visibles de progreso durante el proyecto?. Cunta sofisticacin necesito para utilizar el modelo de ciclo de vida con xito?. Preguntas sobre la seleccin (3) 75 Capacidades del modelo de ciclo de vida Cascada Pura Codificar y Corregir Espiral Cascadas Modificad as Prototipado Evolutivo Trabaja con poca identificacin de los requerimientos Malo Malo Excelente Medio a excelente Excelente Trabaja con poca comprensin sobre la arquitectura Malo Malo Excelente Medio a excelente Malo a medio Genera un sistema altamente fiable Excelente Malo Excelente Excelente Medio Genera un sistema con amplio desarrollo Excelente Malo a medio Excelente Excelente Excelente Gestionar riesgos Malo Malo Excelente Medio Medio Estar sometido a una planificacin predefinida Medio Malo Medio Medio Malo Ventajas y desventajas de los diferentes modelos (1) 76 Capacidades del modelo de ciclo de vida Cascada Pura Codificar y Corregir Espiral Cascadas Modificadas Prototipado Evolutivo Requiere poco tiempo de gestin Malo Excelente Medio Excelente Medio Permite modificaciones a medio camino Malo Malo a excelente Medio Medio Excelente Ofrece a los clientes signos visibles de progreso Malo Medio Excelente Medio Excelente Ofrece a la directiva signos visibles de progreso Medio Malo Excelente Medio a excelente Medio Requiere poca sofisticacin para los directivos y desarrolladores Medio Excelente Malo Malo a medio Malo Ventajas y desventajas de los diferentes modelos (2) 77 Capacidades del modelo de ciclo de vida Entrega por Etapas Entrega Evolutiva Diseo por Planificacin Diseo por Herramientas Software Comercial Trabaja con poca identificacin de los requerimientos Malo Medio a excelente Malo a medio Medio Excelente Trabaja con poca comprensin sobre la arquitectura Malo Malo Malo Malo a excelente Malo a excelente Genera un sistema altamente fiable Excelente Medio a excelente Medio Malo a excelente Malo a excelente Genera un sistema con amplio desarrollo Excelente Excelente Medio a excelente Malo N/A Gestiona riesgos Medio Medio Medio a excelente Malo a medio N/A Estar sometido a una planificacin predefinida Medio Medio Excelente Excelente Excelente Ventajas y desventajas de los diferentes modelos (3) 78 Capacidades del modelo de ciclo de vida Entrega por Etapas Entrega Evolutiva Diseo por Planificacin Diseo por Herramientas Software Comercial Requiere poco tiempo de gestin Medio Medio Medio Medio a excelente Excelente Permite modificaciones a medio camino Malo Medio a excelente Malo a medio Excelente Malo Ofrece a los clientes signos visibles de progreso Medio Excelente Medio Excelente N/A Ofrece a la directiva signos visibles de progreso Excelente Excelente Excelente Excelente N/A Requiere poca sofisticacin para los directivos y desarrolladores Medio Medio Malo Medio Medio Ventajas y desventajas de los diferentes modelos (4)