Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Curso: Ingeniera de la Informacin Modelos de Ciclo de Vida A lo largo de la historia se han propuesto diferentes paradigmas o ciclos de vida para el software: desde el ciclo en cascada, pasando por el modelo en espiral de Boehm, hasta los ms recientes ciclos de vida orientados a objetos.
DISEO PRELIMINAR
DISEO DETALLADO
CODIFICACIN Y PRUEBAS
EXPLOTACIIN Y MANTENIM.
Curso: Ingeniera de la Informacin Modelos de Ciclo de Vida En un modelo de cascada, proyecto progresa a travs de una secuencia ordenada de pasos partiendo anlisis hasta la explotacin y mantenimiento. El proyecto realiza una revisin al final de cada etapa para determinar si est preparada para pasar a la siguiente etapa, por ejemplo, desde el anlisis de requerimientos hacia el diseo de la arquitectura. Cuando la divisin determina que el proyecto no est listo para pasar a la siguiente etapa, permanece en la etapa actual hasta que est preparado. El modelo en cascada est dirigido por documentos; es decir, los productos principales del trabajo que se pasan de etapa en etapa son documentos. El modelo se utiliza para ciclos de productos en los que se tiene una definicin estable del producto, y tambin cuando se est trabajando con metodologas tcnicas conocidas. En estos casos, el modelo en cascada ayuda a utilizar errores en las primeras etapas del proyecto a un bajo costo. Proporciona los requerimientos que los desarrolladores anhelan. Si se est construyendo una versin de mantenimiento bien definida de un producto existente o migrando un producto existente a una nueva plataforma, un ciclo de vida en cascada puede ser una eleccin correcta para el desarrollo rpido. El modelo en cascada ayuda a minimizar sin los gastos de No
planificacin
porque
permite
realizarla
problemas.
proporciona resultados tangibles en forma de software hasta el final del ciclo de vida, pero para alguien familiarizado con el modelo, la documentacin que genera proporciona indicaciones significativas del progreso a lo largo del ciclo de vida.
Curso: Ingeniera de la Informacin Modelos de Ciclo de Vida El modelo en cascada funciona bien con proyectos complejos que se entienden correctamente, debido a que se pueden obtener beneficios al enfrentarse a la complejidad de forma ordenada. Funciona correctamente cuando los requerimientos de la calidad dominan sobre los requerimientos de costo y de planificacin. El modelo evita una fuente comn de errores importantes, eliminando los cambios que se pueden producir a medio camino. El modelo en cascada funciona especialmente bien si se dispone de personal poco inexperto, por que presenta el proyecto con una escritura que ayuda a minimizar el esfuerzo intil. Las desventajas del modelo en cascada se centran en la dificultad para especificar claramente los requerimientos al comienzo del proyecto antes de que realice ningn trabajo de diseo y antes de escribir ningn cdigo. Los desarrolladores se quejan de los usuarios que no saben lo que quieren, pero supongamos que cambian los papeles. Imagnese intentando explicarle en detalle a un ingeniero de automocin cmo es su carro. Le explica al ingeniero que necesita un motor , una carrocera, ventanillas, volante, pedal de acelerador, pedal de freno, el freno de emergencia, asientos y dems. Pero, puede recordar todo lo que el ingeniero de automocin necesitar conocer para construir el carro? Suponga que se olvide indicarle que necesita la luz de marcha atrs. El ingeniero se va y vuelve a los 6 meses con un carro que no tiene luz de marcha atrs. Le comenta Oh, cielos, olvide decirle que el carro necesita luz de marcha atrs,. El ingeniero se vuelve loco sabe usted lo que va a costar coger el carro para conectar la luz de marcha atrs desde la transmisin hasta la parte posterior del coche?. Tenemos que redisear el
Curso: Ingeniera de la Informacin Modelos de Ciclo de Vida cuadro de mando del carro, realizar la conexin para la luz del freno y aadir otro censor a la transmisin. Este cambio supondr semanas, por no decir meses! por qu no me lo comento antes? Ud. hace una mueca pareca una cosa tan sencilla... Un error comprensible verdad? Un carro es difcil de explicar para un aficionado. Una gran cantidad de productos software tambin son complicados, y a menudo las personas que se encargan de especificar el software tampoco son expertos en ordenadores. Pueden olvidarse cosas que parecen tan sencillas cuando se ve el producto funcionando. Cuando se utiliza un modelo en cascada, olvidar algo puede suponer un error costoso. No se percibe este hecho hasta que se realiza la prueba del sistema, y se comprueba que uno de los requerimientos no est o es incorrecto. Por tanto, el principal problema del modelo en cascada es no permitir flexibilidad en los cambios se tienen que especificar completamente todos los requerimientos al comienzo del proyecto, lo que puede suponer meses e incluso aos antes de tener el software funcionando esto choca con las necesidades del comercio moderno, donde el premio a menudo es para los desarrolladores que puedan implementar la mxima funcionalidad en la ltimas etapas del proyecto. Otras desventajas son: No refleja el proceso real de desarrollo de software. Los proyectos reales raramente siguen este flujo secuencial, puesto que siempre hay iteraciones. Aunque en este modelo la iteracin est permitida en etapas contiguas, en la vida real normalmente la iteracin abarca ms de una etapa. Un caso tpico es la redefinicin de los requisitos cuando se est codificando la aplicacin.
Curso: Ingeniera de la Informacin Modelos de Ciclo de Vida Se tarda mucho tiempo en pasar por todo el ciclo, dado que hasta que no se finalice una fase no se pasa a la siguiente. As, se podra dar el caso de no salir nunca de la fase de anlisis de requisitos software. Acenta el fracaso de la industria del software con el usuario final. En este caso, el usuario debe tener paciencia, ya que el sistema de funcionamiento no estar disponible hasta las fases finales del proyecto. Para un proyecto de desarrollo rpido, el modelo en cascada puede suponer una cantidad excesiva de documentacin. Genera pocos signos visibles de progreso hasta el final. Esto puede dar la impresin de un desarrollo lento, incluso sin ser verdad. Los clientes quieren tener la seguridad de que sus proyectos sern entregados a tiempo. Algunas personas han criticado el modelo en cascada por no permitir volver atrs para corregir los errores. Esto no es del todo cierto. La vuelta atrs es posible, pero difcil. Una visin distinta del modelo en cascada que puede ofrecer una mejor perspectiva es el ciclo de vida del salmn. Se puede nada contra la corriente, pero el esfuerzo puede matarle. Al final del diseo de la arquitectura, ha participado en la mayora de los eventos ms importantes que se han realizado en esta etapa. Se realiz una revisin del diseo y se firm la copia oficial del documento de la arquitectura. Si se descubre un fallo en la arquitectura durante la codificacin y prueba, es muy difcil nadar contra la corriente y rehacer la arquitectura. En Resumen, los inconvenientes del venerado modelo en cascada hacen que sea, a menudo, un modelo poco apropiado para un proyecto de desarrollo rpido.
EXPLOTACIN Y MANTENIMIENTO
MODELO EN ESPIRAL Conocido tambin como El rollo de canela en rama ha sido desarrollado para cubrir las mejores caractersticas tanto del ciclo de vida clsico, como de la creacin de prototipos; aadiendo adems un nuevo elemento: el anlisis del riesgo, que falta en esos paradigmas. Antes de comenzar a hablar de dicho modelo definamos lo que es riesgo. En primer lugar, el riesgo concierne a lo que ocurra en el futuro. El hoy y el ayer ya no nos conciernen realmente, por que ahora ya estamos recogiendo los frutos de lo que sembramos en el pasado. La cuestin es si podemos, entonces, modificando nuestras acciones de este momento, crear una oportunidad para una situacin diferente y ms esperanzadora de nuestro maana. Esto significa, en segundo lugar, que el riesgo implica un cambio, que puede venir dado por cambios de opiniones, acciones o lugares... [En tercer lugar,] el riesgo implica una eleccin, y la falta de certeza de que la eleccin sea la correcta. As, paradjicamente, el riesgo, como la muerte o los impuestos, es una de las pocas cosas inevitables de la vida. Cuando consideramos el riesgo en el contexto de la ingeniera del Software, siempre se hacen evidentes las tres consideraciones conceptuales de Charette. Nos concierne el futuro cules son los riesgos que pueden hacer que fracase el proyecto software? Nos conciernen los cambios cmo afectarn al xito global y a los plazos los cambios en los requisitos del cliente, en las tecnologas del desarrollo, en las computadoras destino y en todas dems entidades relacionadas con el proyecto? Por ltimo, nos enfrentamos con elecciones Qu mtodos y herramientas
Curso: Ingeniera de la Informacin Modelos de Ciclo de Vida debemos usar, cuanta gente debe estar involucrada, cuanta importancia hay que darle a la calidad? El anlisis del riesgo consta en realidad de cuatro actividades diferentes: identificacin del riesgo, proyeccin del riesgo, clculo del riesgo y gestin del riesgo. El modelo de espiral es un modelo de ciclo de vida orientada a riesgos que divide un proyecto software en miniproyectos. Cada miniproyectos. Cada miniproyecto se centra en uno o ms riesgos importantes hasta que todos estn controlados; despus de controlar todos los riesgos ms importantes, el modelo en espiral finaliza del mismo modo que el modelo de ciclo de vida en cascada. El modelo, representado mediante la espiral de la figura, define cuatro actividades principales, representados por los cuatro cuadrantes de la figura: 1. Planificacin.- Determinacin de objetivos, alternativos y restricciones. 2. Anlisis de riesgo.- Anlisis de alternativas, identificaciones y resolucin de riesgos. 3. Ingeniera.- Desarrollo del producto del siguiente nivel. 4. Evaluacin de Cliente.- valoracin de los resultados de la ingeniera. Con cada iteracin alrededor de la espiral se construyen sucesivas versiones del software, cada vez ms completas. Durante la primera vuelta alrededor de la espiral se definen los objetivos, las alternativas, las restricciones y se analizan e identifican los riesgos. Si el anlisis de riesgo indica que hay una incertidumbre en los requisitos, se puede usar la creacin de prototipos en el cuadrante de ingeniera para dar asistencia tanto
Curso: Ingeniera de la Informacin Modelos de Ciclo de Vida al encargado del desarrollo como al cliente. Se pueden usar simulaciones y otros modelos para definir ms el problema y refinar los requisitos. El cliente evala el trabajo de ingeniera y sugiere modificaciones. En base a los comentarios del cliente se produce la siguiente fase de planificacin y anlisis de riesgo. En cada bucle alrededor de la espiral, la culminacin del anlisis de riesgo resulta en una decisin de seguir o no seguir. Si los riesgos son demasiados grandes, se puede dar por terminado el proyecto. Sin embargo, en la mayora de los casos, se sigue avanzando alrededor del camino de la espiral, y ese camino lleva los desarrolladores hacia un modelo ms completo del sistema y al final al propio sistema operacional. Una de las ventajas ms importantes del modelo en espiral es que mientras los costes suben, los riesgos disminuyen. Cuanto ms tiempo y dinero emplee, menores sern los riesgos, que es exactamente lo que se quiere en un proyecto de desarrollo rpido. El modelo en espiral proporciona al menos tanto control de gestin como el modelo en cascada tradicional. Se tienen los puntos de verificacin al final de cada iteracin. Como el modelo esta orientado a riesgos, le proporciona con anterioridad indicaciones de cualquier riesgo insuperable. Descubrir si el proyecto no se puede realizar por razones tcnicas u otras razones, y esto no supondr un costo excesivo. La nica desventaja en el 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. En algunos casos, el desarrollo del producto es suficientemente lineal, y los riesgos del
Curso: Ingeniera de la Informacin Modelos de Ciclo de Vida proyecto son tan pocos que no se necesitan la flexibilidad y la gestin de riesgos que ofrece el modelo en espiral.
PLANIFICACIN Recoleccin de requisitos y planificacin del proyecto iniciales Planificacin Basada en los comentarios del cliente
ANLISIS DE RIESGO Anlisis de riesgo basado en requisitos iniciales Anlisis de riesgo basado en la reaccin del cliente
Decisin de Seguir o no
Prototipo inicial Evaluacin del cliente Prototipo del siguiente nivel ENTREGAR
INGENIERIA
SISTEMAS
Este modelo es definido por Meyer (1990), los cuales consideran que la cultura implcita en los modelos usuales del ciclo de vida est basada en el proyecto, mientras que el desarrollo orientado al objeto esta basada en el producto, el cual es entendido como elemento software reutilizables y cuyo beneficio econmico aparece a largo plazo. Meyer propone este modelo, en el que se tiene en cuenta esta nueva fase de generalizacin que aparece combinada con la fase de validacin. Agrupamiento: conjunto de clases relacionadas con un objetivo comn. Ejm. Un agrupamiento grfico. En el modelo Cluster se crean diferentes subciclos de vida que se pueden solapar en el tiempo, cada uno incluye una fase de especificacin, otra de diseo y realizacin, y por ltimo, una de validacin y generalizacin. Modelo de agrupamiento (cluster) T Diseo o realizacin Validacin Generaliz.
Agrupamiento n
Especificacin
Especificacin
Agrupamiento 2
Especificacin
Agrupamiento 1
Tiempo
MODELO FUENTE
Representa grficamente el alto grado de iteracin y solapamiento que hace posible la tecnologa de objetos. En el modelo fuente la base esta en el anlisis de requisitos, a partir del cual va creciendo el ciclo de vida, donde cada burbuja, corresponde a una fase, cayendo solo para el mantenimiento necesario, de all el nombre de fuente, la piscina sera el repositorio de clases. Los autores adems, proponen un modelo de ciclo de vida para cada clase o modulo, ya que cada una puede estar en fase diferente del ciclo de vida durante el desarrollo de un sistema.
Mantenim. Utilizacin
Evolucin
Curso: Ingeniera de la Informacin Modelos de Ciclo de Vida MODELO REMOLINO El modelo cascada asume solo una dimensin de iteracin consistente en la fase del proceso, pero se pueden identificar otras dimensiones: Amplitud o tamao del desarrollo (por ejemplo, nmero de elementos). Profundidad, referida a nivel de abstraccin o detalle. Madurez, entendida como el grado de complecin, correccin y elegancia. Alternativas, diferentes soluciones a un problema. Alcance, en cuanto a objetivos del sistema, ya que los requisitos van cambiando a lo largo del proyecto. Las diferentes dimensiones se pueden anidar de muchas maneras, por ejemplo, fase madurez amplitud. Este proceso fractal (ms que lineal), consistente en un desarrollo multicclico, tiene la forma de un remolino en lugar de una cscada, de ah su nombre.
MODELO PINBALL
Un modelo muy curioso y didctico a la hora de explicar el desarrollo orientado al objeto elpinball
6
. refleja realmente la
forma en la que se desarrolla software. En este modelo la pelota representa un proyecto completo o un subproyecto y el jugador es el equipo de desarrollo. Se produce de forma iterativa a encontrar clases, atributos, mtodos e interrelaciones (actividades que se pueden englobar en la fase de anlisis) y definir colaboraciones, herencia, agregacin y subsistemas (que se incluyen en el diseo). Por ltimo se pasa a
Curso: Ingeniera de la Informacin Modelos de Ciclo de Vida la programacin, prueba e implementacin. Realmente, como en el pinball, los pasos se pueden tomar en cualquier orden y de forma simultnea. Ambler tambin destaca dos estilos a la hora de jugar: A lo seguro. Con tecnologas y mtodos probados. Al lmite, con mayor riesgo, pero tambin ms ventajas. A veces, sta es la nica manera de conseguir beneficios espectaculares. El autor destaca que, al igual que en el juego del pinball, la habilidad es el factor ms importante (junto con la experiencia), pero adems se requiere algo de suerte.
Curso: Ingeniera de la Informacin Modelos de Ciclo de Vida Word Pad, Paint y la red de corazones, Microsoft podra utilizar el diseo por planificacin para evitar que sus complementos retrazaran Windows en general. Uno de los elementos de este modelo de ciclo de vida es priorizar las prestaciones y planificar sus etapas de tal forma que las primeras contengan las prestaciones de mayor prioridad. Las prestaciones de baja prioridad se dejan para ms tarde. si se llega a la fecha de entrega antes de finalizar todas las etapas, no es conveniente dejar sin realizar prestaciones crticas debido a que se ha gastado tiempo de implementacin en otras menos crticas. El principal inconveniente de esta aproximacin es que si no se completan todas las etapas, se desperdiciar tiempo en la especificacin, arquitectura y diseo de prestaciones que no se van a entregar. Si se ha gastado tiempo en una gran cantidad de prestaciones incompletas que no se van a entregar, se debera tener tiempo para resumir en una o mas prestaciones ms completas. La decisin para utilizar el modelo de planificacin se somete a la pregunta de cuanta confianza se tiene en la habilidad para la planificacin. Si se tiene mucha confianza para alcanzar los objetivos de la planificacin, esta aproximacin es ineficiente. Si se tiene una menor confianza, esta aproximacin podra salvar su vida.