DESARROLLO AGIL DE SOFTWARE

DEFINICION Se entiende como desarrollo ágil de software a un paradigma de desarrollo de software basado en procesos agiles. Los procesos agiles de desarrollo de software conocidos antes como metodologías livianas, intentan evitar tortuosos y burocráticos caminos de la metodologías tradicionales enfocándose en la gente y los resultados. Es un marco de trabajo conceptual de la ingeniería de software que promueve iteraciones en el desarrollo a lo largo de todo el ciclo de vida del proyecto. Existen muchos métodos de desarrollo ágil; la mayoría minimiza riesgos desarrollando software en cortos lapsos de tiempo. El software desarrollado en una unidad de tiempo se denomina una iteración, la cual debe durar de una a cuatro semanas, cada iteración del iteración del ciclo de vida incluye: planificación, análisis de requerimientos, diseño, codificación, revisión y documentación. Una iteración no debe agregar demasiada funcionalidad para justificar el lanzamiento del producto al mercado, pero la meta es tener un demo (sin errores) al final de cada iteración. Al final de cada iteración el equipo vuelve a evaluar las prioridades del proyecto.

POLITICAS Los métodos agiles enfatizan las comunicaciones cara a cara en vez de la documentación.la mayoría de los equipos ágiles están localizados en una simple oficina abierta, a veces llamadas plataformas de lanzamiento , la oficina debe incluir revisores, escritores de documentación y ayuda, diseñadores de iteración y directores de proyecto. Los métodos agiles también enfatizan que el software funcional es la primera medida del progreso. Combinados con la preferencia por las comunicaciones cara a cara, generalmente los métodos agiles son criticados y tratados como “indisciplinados” por la falta de documentación técnica.

PROGRAMACIÓN EXTREMA DEFINICION Es un enfoque de la ingeniería de software formulado por Kent Beck, autor del primer libro sobre la materia en 1999, Es el mas destacado de los procesos agiles del desarrollo de software. Al igual que estos, la programación extrema se diferencia de las metodologías tradicionales principalmente en que pone más énfasis en la adaptabilidad que en la previsibilidad. Los defensores de xp consideran que los cambios de requisitos sobre la marcha son un aspecto normal, inevitable e incluso deseable del desarrollo de proyectos. Creen que adaptarse a los cambios de requisitos en cualquier punto de la vida del proyecto, es una aproximación mejor y más realista que intentar definir todos los requisitos el comienzo del proyecto e invertir esfuerzos después en controlar los cambios en los requisitos.

RETROALIMENTACION Al estar el cliente integrado en el proyecto. con las constantes revisiones del código por parte de los desarrolladores y su exponencial crecimiento y mejoramiento se hace necesario la refactorización del código es decir para la reestructuración del código fuente. Si el código es complejo hay que esforzarse para hacerlo inteligible. su opinión sobre el estado del proyecto se conoce en tiempo real. COMUNICACIÓN La comunicación se realiza de diferentes formas. alterando su estructura interna sin modificar su comportamiento externo. .Se puede considerar la programación extrema como la adopción de las mejores metodologías de desarrollo de acuerdo a lo que se pretende llevar a cabo con el proyecto y aplicarlo de manera dinámica durante el ciclo de vida del software. Al realizarse ciclos muy cortos tras los cuales se muestran resultados. POLITICA Los principios originales de la programación extrema son : . El código autodocumentado es más fiable que los comentarios ya que éstos últimos pronto quedan desfasados con el código a medida que es modificado. se minimiza el tener que rehacer partes que no cumplen con los requisitos y ayuda a los programadores a centrarse en lo que es más importante. se aplica este principio también en la documentación del código en cuanto a sus comentarios para que este permanezca autodocumentado. El código también es una fuente de retroalimentación gracias a las herramientas de desarrollo. Permitiendo de esta manera mantener el código simple a medida que crece.Simplicidad -Comunicación -Retroalimentación -coraje SIMPLICIDAD Se simplifica el diseño para agilizar el desarrollo y facilitar el mantenimiento. Para los programadores el código comunica mejor cuanto más simple sea.

colaboración y aprendizaje. El aprendizaje permite mejorar el entendimiento real sobre la tecnología. El ciclo de vida del DAS se conforma de tres fases. En ella se utiliza información como la misión del cliente.El parendizaje individual permite al equipo tener mayor posibilidad de éxito. especulación. MODELO AGIL . RESPETO Los miembros respetan su trabajo porque siempre están luchando por la alta calidad en el producto y buscando el diseño óptimo o más eficiente para la solución a través de la refactorización del código. trabajar tan duro como sea posible.CORAJE O VALENTIA Se requiere coraje para implementar las características que el cliente quiere ahora sin caer en la tentación de optar por un enfoque más flexible que permita futuras modificaciones. los procesos utlizados y el proyecto. El se centra en la colaboración humana y la organización en equipo. se desea que exista confianza . las restricciones del proyecto y los requisitos básicos para definir el conjunto de ciclos en el que se harán los incrementos del software. En la fase de especulación se inicia el desarrollo del proyecto. Para la fase de colaboración se busca que el equipo no solo se comunique o se encuentren completamente integrados. comunicar de forma oportuna los problemas que se presenten para tomar acciones efectivas y poseer un conjunto de actitudes que contribuyan al trabajo que se encuentren realizando. donde se pueda realizar críticas constructivas y ayudar si resentimientos. DESARROLLO ADAPTATIVO DE SOFTWARE DEFINICION El desarrollo adaptativo de software (DAS)fue propuesto por jim highsmith como una metodología para desarrollar software y sistemas muy complejos.

sugiere practicas para ser modelador efectivo. La iteración de modelo funcional . MA no es un proceso prescriptivo. Con cada iteración se recopilan requisitos adicionales que pueden ir siendo incluidos en el prototipo . En lugar de eso. guiadas por principios y valores que pueden ser aplicados por profesionales de software en el día a día. piense en MA como un arte. no una ciencia. se realizan diversos prototipos incrementales que permiten mostrar al cliente la funcionalidad del sistema. ni define procedimientos detallados de cómo crear un tipo de modelo dado. realizando prototipos incrementales en un ambiente de proyecto controlado .es “suave al tacto “no es duro ni rápido. La metodología AM es una colección de prácticas. Este modelo se compone de dos actividades que se realizan primero y consecuente con ellas se realizan tres ciclos de vida adicionales. las dos actividades primarias son el estudio de factibilidad en donde se establecen los requisitos básicos del negocio y las restricciones asociadas a la metodología para evaluar si las misma puede ser realizada bajo el esquema MDSD y la segunda es el estudio del negocio donde se establecen los requerimientos funcionales y la arquitectura básica de la aplicación.Es una metodología basada en la práctica para modelado efectivo de sistemas de software. POLITICA Asumir simplicidad Permitir el siguiente esfuerzo es el objetivo secundario Cambio incremental Maximizar la inversión de las partes interesadas en el proyecto Modelar con un propósito Múltiples modelos Trabajo de calidad Rápida retroalimentación El software es el objetivo primario El contenido es mas importante que la presentación Adaptación local MÉTODO DE DESARROLLO DE SISTEMAS DINAMICOS(MDSD) El método de sistemas dinámicos (MDSD)permite la construcción de sistemas con restricción de tiempo .

La iteración de construcción y diseño . los prototipos que vayan surgiendo de la fase de construcción y diseño. aunque se pueden realizar con más frecuencia. se iran colocando en ambientes operativos(prototipos adicionales). se recomienda quitar alguna otra cosa Iteraciones de 30 días. Implementación. Montaje: El propósito es identificar mas requerimientos y priorizar las tareas para la primera iteración. MELE Es un modelo ágil de proceso desarrollado por Jeff Sutherland y su equipo a los comienzos de la década de los 90(la palabra melé proviene de una palabra).las actividades son planificación . a través de la construcción de prototipos durante la iteración del modelo funcional. Posee los siguientes principios que van en concordancia con los métodos de desarrollo agiles: - Equipos auto-dirigidos Una vez elegida una tarea . el registro de acumulación o retraso del producto inicial y los ítems estimados . contribuye a agregar el valor operativo del negocio para los usuarios.Tambien es conocido con el nombre de Scrum. las actividades son la escritura de la visión. el diseño exploratorio y los prototipos. así como la arquitectura de alto nivel. planeamiento adaptativo guiado por el cliente EL CICLO DE VIDA DEL MELÉ Planeamiento:El propósito es establecer la visión. el presupuesto. definir expectativas y asegurarse la financiación. En caso que se agregue algo. no se agrega trabajo extra. diseño exploratorio y prototipos. Demostración a participantes externos una vez culminada cada iteración Al principio de cada iteración . .

También se conoce por este nombre al software desarrollado por Rational.Desarrollo : El propósito es implementar un sistema listo para entrega en una seria de iteraciones de treinta días llamadas “corridas”. mercadeo y venta METODOLOGÍA RUP El Proceso Unificado de Racional (Rational Unified Process en inglés. el Rational Unified Process. POLITICA El RUP está basado en 6 principios clave que son: Adaptar el proces El proceso deberá adaptarse a las características propias del proyecto u organización. habitualmente resumido como RUP) es un proceso de desarrollo de software y junto con el Lenguaje Unificado de Modelado UML. Debe encontrarse un equilibrio que satisfaga los deseos . que se vendiera como producto independiente. que permite la personalización de acuerdo a necesidades. Originalmente se diseñó un proceso genérico y de dominio público. las actividades .Las actividades son un encuentro de planeamiento de corridas de cada iteración. documentación. sino un conjunto de metodologías adaptables al contexto y necesidades de cada organización. influirán en su diseño específico. la definición de registro de acumulación de corridas y los estimados y encuentros diarios. contradictorios o disputarse recursos limitados. Está incluido en el Rational Method Composer (RMC). así como su tipo o las regulaciones que lo condicionen. el cual incluye información entrelazada de diversos artefactos y descripciones de las diversas actividades. y una especificación más detallada. enfrentamiento . También se deberá tener en cuenta el alcance del proyecto en un area subformal. el Proceso Unificado. implementación y documentación de sistemas orientados a objetos. hoy propiedad de IBM. El tamaño del mismo. El RUP no es un sistema con pasos firmemente establecidos. Equilibrar prioridades Los requerimientos de los diversos participantes pueden ser diferentes. Liberación:El propósito es el despliegue operacional . constituye la metodología estándar más utilizada para el análisis.

de todos. Gracias a este equilibrio se podrán corregir desacuerdos que surjan en el futuro. Éstas se pueden acompañar por las representaciones visuales de la arquitectura. . Un alto nivel de abstracción también permite discusiones sobre diversos niveles y soluciones arquitectónicas. la estabilidad y calidad del producto. evaluaciones. desarrollo. resultados. por ejemplo con el lenguaje UML. Enfocarse en la calidad El control de calidad no debe realizarse al final de cada iteración. en etapas iteradas. En cada iteración se analiza la opinión de los inversores. Elevar el nivel de abstracción Este principio dominante motiva el uso de conceptos reutilizables tales como patrón del software. y se refina la dirección del proyecto así como también los riesgos involucrados Colaboración entre equipos El desarrollo de software no lo hace una única persona sino múltiples equipos.etc. planes. aunque sea de un modo interno. lenguajes 4GL o marcos de referencia (frameworks) por nombrar algunos. Esto evita que los ingenieros de software vayan directamente de los requisitos a la codificación de software a la medida del cliente. sin saber con certeza qué codificar para satisfacer de la mejor manera los requerimientos y sin comenzar desde un principio pensando en la reutilización del código. El aseguramiento de la calidad forma parte del proceso de desarrollo y no de un grupo independiente. Debe haber una comunicación fluida para coordinar requerimientos. sino en todos los aspectos de la producción. Demostrar valor iterativamente Los proyectos se entregan.

Sign up to vote on this title
UsefulNot useful