El documento describe el método evolutivo iterativo de desarrollo de software. Este método implica el desarrollo incremental del software a través de iteraciones repetitivas que permiten la entrega continua de versiones mejoradas del producto. Cada iteración incluye las etapas de análisis, diseño, implementación, prueba e integración para agregar nuevas funcionalidades basadas en la retroalimentación del cliente. El objetivo es entregar valor al cliente de manera continua a través de versiones mejoradas con cada iteración.
0 calificaciones0% encontró este documento útil (0 votos)
1K vistas9 páginas
El documento describe el método evolutivo iterativo de desarrollo de software. Este método implica el desarrollo incremental del software a través de iteraciones repetitivas que permiten la entrega continua de versiones mejoradas del producto. Cada iteración incluye las etapas de análisis, diseño, implementación, prueba e integración para agregar nuevas funcionalidades basadas en la retroalimentación del cliente. El objetivo es entregar valor al cliente de manera continua a través de versiones mejoradas con cada iteración.
El documento describe el método evolutivo iterativo de desarrollo de software. Este método implica el desarrollo incremental del software a través de iteraciones repetitivas que permiten la entrega continua de versiones mejoradas del producto. Cada iteración incluye las etapas de análisis, diseño, implementación, prueba e integración para agregar nuevas funcionalidades basadas en la retroalimentación del cliente. El objetivo es entregar valor al cliente de manera continua a través de versiones mejoradas con cada iteración.
El documento describe el método evolutivo iterativo de desarrollo de software. Este método implica el desarrollo incremental del software a través de iteraciones repetitivas que permiten la entrega continua de versiones mejoradas del producto. Cada iteración incluye las etapas de análisis, diseño, implementación, prueba e integración para agregar nuevas funcionalidades basadas en la retroalimentación del cliente. El objetivo es entregar valor al cliente de manera continua a través de versiones mejoradas con cada iteración.
Descargue como DOCX, PDF, TXT o lea en línea desde Scribd
Descargar como docx, pdf o txt
Está en la página 1de 9
METODOLOGIA EVOLUTIVO
Desarrollo iterativo y creciente (o incremental) es un proceso de desarrollo de software
creado en respuesta a las debilidades del modelo tradicional de cascada. Bsicamente este modelo de desarrollo, que no es ms que un conjunto de tareas agrupadas en pequeas etapas repetitivas (iteraciones) 1 , es uno de los ms utilizados en los ltimos tiempos ya que, como se relaciona con novedosas estrategias de desarrollo de software y una programacin extrema, es empleado en metodologas diversas. El modelo consta de diversas etapas de desarrollo en cada incremento, las cuales inician con el anlisis y finalizan con la instauracin y aprobacin del sistema.
Concepto Se planifica un proyecto en distintos bloques temporales que se le denominan iteracin. En una iteracin se repite un determinado proceso de trabajo que brinda un resultado ms completo para un producto final, de forma de que quien lo utilice reciba beneficios de este proyecto de manera creciente. Para llegar a lograr esto, cada requerimiento debe tener un completo desarrollo en una nica iteracin que debe de incluir pruebas y una documentacin para que el equipo pueda cumplir con todos los objetivos que sean necesarios y est listo para ser dado al cliente. As se evita tener riesgosas actividades en el proyecto finalizado. Lo que se busca es que en cada iteracin los componentes logren evolucionar el producto dependiendo de los completados de las iteraciones antecesoras, agregando ms opciones de requisitos y logrando as un mejoramiento mucho ms completo. Una manera muy primordial para dirigir al proceso iterativo incremental es la de priorizar los objetivos y requerimientos en funcin del valor que ofrece el cliente. 3
Para 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. El desarrollo incremental e iterativo es tambin una parte esencial de un tipo de programacin conocido como Extreme Programming y los dems frameworks de desarrollo rpido de software.
Ciclo de vida La idea principal detrs de mejoramiento iterativo es desarrollar un sistema de programas de manera incremental, permitindole al desarrollador sacar ventaja de lo que se ha aprendido a lo largo del desarrollo anterior, incrementando, versiones entregables del sistema. El aprendizaje viene de dos vertientes: el desarrollo del sistema, y su uso (mientras sea posible). Los pasos claves en el proceso son comenzar con una implementacin simple de los requerimientos del sistema, e iterativamente mejorar la secuencia evolutiva de versiones hasta que el sistema completo est implementado. En cada iteracin, se realizan cambios en el diseo y se agregan nuevas funcionalidades y capacidades al sistema. Bsicamente este modelo se basa en dos premisas: Los usuarios nunca saben bien que es lo que necesitan para satisfacer sus necesidades. En el desarrollo, los procesos tienden a cambiar. El proceso en s mismo consiste de: Etapa de inicializacin Etapa de iteracin Lista de control de proyecto Consideraciones sobre el momento de aplicacion Para integrar la usabilidad en un proceso de desarrollo, no es suficiente con asignar tcnicas de usabilidad a actividades de desarrollo, puesto que no todas las tcnicas de usabilidad son aplicables en cualquier momento de un desarrollo iterativo. Por ejemplo, las tcnicas para desarrollar el concepto del producto estn concebidas para su aplicacin en en los primeros esfuerzos del desarrollo, cuando las necesidades se identifican y el esquema general del sistema se establece. Aunque es aconsejable aplicarles tambin ms tarde, para refinar el concepto, su principal esfuerzo de aplicacin esta en las tareas iniciales de desarrollo .
Etapa de inicializacin Se crea una versin del sistema. La meta de esta etapa es crear un producto con el que el usuario pueda interactuar, y por ende retroalimentar el proceso. Debe ofrecer una muestra de los aspectos claves del problema y proveer una solucin lo suficientemente simple para ser comprendida e implementada fcilmente. Para guiar el proceso de iteracin se crea una lista de control de proyecto, que contiene un historial de todas las tareas que necesitan ser realizadas. Incluye cosas como nuevas funcionalidades para ser implementadas, y areas de rediseo de la solucin ya existente. Esta lista de control se revisa peridica y constantemente como resultado de la fase de anlisis. Etapa de iteracin Esta etapa involucra el rediseo e implementacin de una tarea de la lista de control de proyecto, y el anlisis de la versin ms reciente del sistema. La meta del diseo e implementacin de cualquier iteracin es ser simple, directa y modular, para poder soportar el rediseo de la etapa o como una tarea aadida a la lista de control de proyecto. El cdigo puede, en ciertos casos, representar la mayor fuente de documentacin del sistema. El anlisis de una iteracin se basa en la retroalimentacin del usuario y en el anlisis de las funcionalidades disponibles del programa. Involucra el anlisis de la estructura, modularidad, usabilidad, confiabilidad, eficiencia y eficacia (alcanzar las metas). La lista de control del proyecto se modifica bajo la luz de los resultados del anlisis. Las guas primarias que guan la implementacin y el anlisis incluyen: Cualquier dificultad en el diseo, codificacin y prueba de una modificacin debera apuntar a la necesidad de redisear o recodificar. Las modificaciones deben ajustarse fcilmente a los mdulos fciles de encontrar y a los aislados. Si no es as, entonces se requiere algn grado de rediseo. Las modificaciones a las tablas deben ser especialmente fciles de realizar. Si dicha modificacin no ocurre rpidamente, se debe aplicar algo de rediseo. Las modificaciones deben ser ms fciles de hacer conforme avanzan las iteraciones. Si no es as, hay un problema primordial usualmente encontrado en un diseo dbil o en la proliferacin excesiva de parches al sistema. Los parches normalmente deben permanecer solo por una o dos iteraciones. Se hacen necesarios para evitar el rediseo durante una fase de implementacin. La implementacin existente debe ser analizada frecuentemente para determinar qu tal se ajusta a las metas del proyecto. Las facilidades para analizar el programa deben ser utilizadas cada vez para ayudar en el anlisis de implementaciones parciales. La opinin del usuario debe ser solicitada y analizada para indicar deficiencias en la implementacin referida por l.
CARACTERISTICAS Usando anlisis y mediciones como guas para el proceso de mejora es una diferencia mayor entre las mejoras iterativas y el desarrollo rpido de aplicaciones, principalmente por dos razones: Provee de soporte para determinar la efectividad de los procesos y de la calidad del producto. Permite estudiar y despus mejorar y ajustar el proceso para el ambiente en particular. Estas mediciones y actividades de anlisis pueden ser aadidas a los mtodos de desarrollo rpido existentes. De hecho, el contexto de iteraciones mltiples conlleva ventajas en el uso de mediciones. Las medidas a veces son difciles de comprender en lo absoluto, aunque en los cambios relativos en las medidas a travs de la evolucin del sistema puede ser muy informativo porque proveen una base de comparacin. Por ejemplo, un vector de medidas m1, m2,..., mn puede ser definido para caracterizar varios aspectos del producto en cierto punto, como pueden ser el esfuerzo total realizado, los cambios, los defectos, los atributos lgico, fsico y dinmico, consideraciones del entorno, etctera. As el observador puede decir como las caractersticas del producto como el tamao, la complejidad, el acoplamiento y la cohesin incrementan o disminuyen en el tiempo. Tambin puede monitorearse el cambio relativo de varios aspectos de un producto o pueden proveer los lmites de las medidas para apuntar a problemas potenciales y anomalas.
VENTAJAS En este modelo los usuarios no tienen que esperar hasta que el sistema completo se entregue para hacer uso de l. El primer incremento cumple los requerimientos ms importantes de tal forma que pueden utilizar el software al instante. Los usuarios pueden utilizar los incrementos iniciales como prototipos y obtener experiencia sobre los requerimientos de los incrementos posteriores del sistema. Existe muy pocas probabilidades de riesgo en el sistema. Aunque se pueden encontrar problemas en algunos incrementos, lo normal es que el sistema se entregue sin inconvenientes al usuario. Ya que los sistemas de ms alta prioridad se entregan primero, y los incrementos posteriores se integran entre ellos, es muy poco probable que los sistemas ms importantes sean a los que se les hagan ms pruebas. Esto quiere decir que es menos probable que los usuarios encuentren fallas de funcionamiento del software en las partes ms importantes del sistema. 6
DEBILIDADES DEL MODELO La entrega temprana de los proyectos produce la creacin de sistemas demasiados simples que a veces se ven un poco montonos a los ojos del personal que lo recibe. La mayora de los incrementos se harn en base de las necesidades de los usuarios. Los incrementos en si ya son estipulados desde antes de la entrega del proyecto, sin embargo hay que ver cmo se maneja el producto para ver si necesita otros cambios adems de los estipulados antes de la entrega del proyecto. Este problema no se ve frecuentemente ya que la mayora de las veces los incrementos estipulados suplen satisfactoriamente al usuario. Los incrementos no deben constar de muchas lneas de cdigo ya que la idea de los incrementos es agregar accesorios al programa principal (o funcional), para que este tenga una y mil formas de desenvolverse en su tarea; llenar los incrementos de muchas lneas de cdigo provocara que se perdiera la objetividad o base de lo que se trata el desarrollo incremental. Requiere de un cliente involucrado durante todo el curso del proyecto. Hay clientes que simplemente no estarn dispuestos a invertir el tiempo necesario. El trato con el cliente debe basarse en principios ticos y colaboracin mutua, ms que trabajar cada parte independientemente, defendiendo slo su propio beneficio. La entrega de un programa que es parcial pero funcional puede hacer vulnerable al programa debido a la falta de robustez en su sistema, provocando que agentes ajenos puedan interferir con el correcto funcionamiento del programa en s. Infunde responsabilidad en el equipo de desarrollo al trabajar directamente con el cliente, requiriendo de profesionales sobre el promedio. Sufre fuertes penalizaciones en proyectos en los cuales los requerimientos estn previamente definidos, o para proyectos "todo/nada" en los cuales se requiere que se completen en un 100% el producto para ser implementado (por ejemplo, licitaciones) otro punto muy importante es asegurarnos de que el trabajo se pueda cumplir tomando en cuenta los costos que podamos usar en nuestros propios recursos.
ESPIRAL El desarrollo en espiral es un modelo de ciclo de vida del software definido por primera vez por Barry Boehm en 1986, 1 utilizado generalmente en la Ingeniera de software. Las actividades de este modelo se conforman en una espiral, en la que cada bucle o iteracin representa un conjunto de actividades. Las actividades no estn fijadas a ninguna prioridad, sino que las siguientes se eligen en funcin del anlisis de riesgo, comenzando por el bucle interior. Ciclos 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. Este sistema es muy utilizado en proyectos grandes y complejos como puede ser, por ejemplo, la creacin de un Sistema Operativo. Al ser un modelo de Ciclo de Vida orientado a la gestin de riesgo se dice que uno de los aspectos fundamentales de su xito radica en que el equipo que lo aplique tenga la necesaria experiencia y habilidad para detectar y catalogar correctamente los riesgos.
Tareas Para cada ciclo habr cuatro actividades: 1. Determinar Objetivos. 2. Anlisis del riesgo. 3. Desarrollar y probar. 4. 'Planificacin.'
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. 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. As si por ejemplo si los riesgos en la interfaz de usuario son dominantes, un modelo de desarrollo apropiado podra ser la construccin de prototipos evolutivos. Si lo riesgos de proteccin son la principal consideracin, un desarrollo basado en transformaciones formales podra ser el ms apropiado. 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. Se evalan alternativas. Se debe tener un prototipo antes de comenzar a desarrollar y probar. En resumen, es para tener en cuenta de los riesgos e cada uno de los ambitos
Ventajas El anlisis del riesgo se hace de forma explcita y clara. Une los mejores elementos de los restantes modelos. Reduce riesgos del proyecto Incorpora objetivos de calidad Integra el desarrollo con el mantenimiento, etc. Adems es posible tener en cuenta mejoras y nuevos requerimientos sin romper con la metodologa, ya que este ciclo de vida no es rgido ni esttico Desventajas Genera mucho tiempo en el desarrollo del sistema Modelo costoso Requiere experiencia en la identificacin de riesgos
PUD El Proceso Unificado de Desarrollo Software o simplemente Proceso Unificado es un marco de desarrollo de software que se caracteriza por estar dirigido por casos de uso, centrado en la arquitectura y por ser iterativo e incremental. El refinamiento ms conocido y documentado del Proceso Unificado es el Proceso Unificado de Rational o simplemente RUP. El Proceso Unificado no es simplemente un proceso, sino un marco de trabajo extensible que puede ser adaptado a organizaciones o proyectos especficos. De la misma forma, el Proceso Unificado de Rational, tambin es un marco de trabajo extensible, por lo que muchas veces resulta imposible decir si un refinamiento particular del proceso ha sido derivado del Proceso Unificado o del RUP. Por dicho motivo, los dos nombres suelen utilizarse para referirse a un mismo concepto. El nombre Proceso Unificado se usa para describir el proceso genrico que incluye aquellos elementos que son comunes a la mayora de los refinamientos existentes. Tambin permite evitar problemas legales ya que Proceso Unificado de Rational o RUP son marcas registradas por IBM (desde su compra de Rational Software Corporation en 2003). El primer libro sobre el tema se denomin, en su versin espaola, El Proceso Unificado de Desarrollo de Software (ISBN 84-7829-036-2) y fue publicado en 1999 por Ivar Jacobson, Grady Booch y James Rumbaugh, conocidos tambin por ser los desarrolladores del UML, el Lenguaje Unificado de Modelado. Desde entonces los autores que publican libros sobre el tema y que no estn afiliados a Rational utilizan el trmino Proceso Unificado, mientras que los autores que pertenecen a Rational favorecen el nombre de Proceso Unificado de Rational.
Fases El Proceso Unificado de desarrollo puede ser dividido en cuatro fases para su mejor desarrollo. Estas fases ayudando tanto a la elaboracin como a la resolucin de problemas. Inicio En la fase de inicio se define el negocio: facilidad de realizar el proyecto, se presenta un modelo, visin, metas, deseos del usuario, plazos, costos y viabilidad. Elaboracin En esta fase se obtiene la visin refinada del proyecto a realizar, la implementacin iterativa del ncleo del de la aplicacin, la resolucin de riesgos altos, nuevos requisitos y se ajustan las estimaciones. Construccin Esta abarca la evolucin hasta convertirse en producto listo incluyendo requisitos mnimos. Aqu se afinan los detalles menores como los diferentes tipos de casos o los riesgos menores. Transicin En esta fase final, el programa debe estar listo para ser probado, instalado y utilizado por el cliente sin ningn problema. Una vez finalizada esta fase, se debe comenzar a pensar en futuras novedades para la misma. Desde el punto de vista Tcnico: el proyecto est formado por los flujos de trabajo fundamentales: captura de requerimientos, anlisis, diseo, implementacin y pruebas. Tantos el punto de vista Gerencial como el Tcnico concuerdan en: La iteracin .