3
METODOLOGIA XP La programación extrema o eXtreme Programming (XP) es un enfoque de la ingeniería de software formulado por Kent Beck y De Jean, Extreme Programming Explained: Embrace Change (1999). Es la más destacada de los procesos ágiles de desarrollo de software. Al igual que éstos, 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 natural, inevitable e incluso deseable del desarrollo de proyectos. Creen que ser capaz de 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 al comienzo del proyecto e invertir esfuerzos después en controlar los cambios en los requisitos. 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. Caracteristicas De La Metodologia XP Desarrollo iterativo e incremental: pequeñas mejoras, unas tras otras. Pruebas unitarias continuas, frecuentemente repetidas y automatizadas, incluyendo pruebas de regresión. Se aconseja escribir el código de la prueba antes de la codificación. Véase, por ejemplo, las herramientas de prueba JUnit orientada a Java, DUnit orientada a Delphi y NUnit para la plataforma.NET. Estas dos últimas inspiradas en JUnit. Programación en parejas: se recomienda que las tareas de desarrollo se lleven a cabo por dos personas en un mismo puesto. Se supone que la mayor calidad del código escrito de esta manera -el código es revisado y discutido mientras se escribe- es más importante que la posible pérdida de productividad inmediata. Frecuente integración del equipo de programación con el cliente o usuario. Se recomienda que un representante del cliente trabaje junto al equipo de desarrollo. Corrección de todos los errores antes de añadir nueva funcionalidad. Hacer entregas frecuentes. Refactorización del código, es decir, reescribir ciertas partes del código para aumentar su legibilidad y mantenibilidad pero sin modificar su comportamiento. Las pruebas han de garantizar que en la refactorización no se ha introducido ningún fallo. Propiedad del código compartida: en vez de dividir la responsabilidad en el desarrollo de cada módulo en grupos de trabajo distintos, este método promueve el que todo el personal pueda corregir y extender cualquier parte del proyecto. Las frecuentes pruebas de regresión garantizan que los posibles errores serán detectados. Simplicidad en el código: es la mejor manera de que las cosas funcionen. Cuando todo funcione se podrá añadir funcionalidad si es necesario. La programación extrema apuesta que es más sencillo hacer algo simple y tener un poco de trabajo extra para cambiarlo si se requiere, que realizar algo complicado y quizás nunca utilizarlo. La simplicidad y la comunicación son

rup vs xp

Embed Size (px)

DESCRIPTION

metodologia de software

Citation preview

  • METODOLOGIA XP

    La programacin extrema o eXtreme Programming (XP) es un enfoque de la ingeniera de

    software formulado por Kent Beck y De Jean, Extreme Programming Explained: Embrace

    Change (1999). Es la ms destacada de los procesos giles de desarrollo de software. Al

    igual que stos, la programacin extrema se diferencia de las metodologas tradicionales

    principalmente en que pone ms nfasis en la adaptabilidad que en la previsibilidad. Los

    defensores de XP consideran que los cambios de requisitos sobre la marcha son un aspecto

    natural, inevitable e incluso deseable del desarrollo de proyectos. Creen que ser capaz de

    adaptarse a los cambios de requisitos en cualquier punto de la vida del proyecto es una

    aproximacin mejor y ms realista que intentar definir todos los requisitos al comienzo del

    proyecto e invertir esfuerzos despus en controlar los cambios en los requisitos. Se puede

    considerar la programacin extrema como la adopcin de las mejores metodologas de

    desarrollo de acuerdo a lo que se pretende llevar a cabo con el proyecto, y aplicarlo de

    manera dinmica durante el ciclo de vida del software.

    Caracteristicas De La Metodologia XP

    Desarrollo iterativo e incremental: pequeas mejoras, unas tras otras. Pruebas unitarias continuas, frecuentemente repetidas y automatizadas,

    incluyendo pruebas de regresin. Se aconseja escribir el cdigo de la prueba

    antes de la codificacin. Vase, por ejemplo, las herramientas de prueba JUnit

    orientada a Java, DUnit orientada a Delphi y NUnit para la plataforma.NET.

    Estas dos ltimas inspiradas en JUnit.

    Programacin en parejas: se recomienda que las tareas de desarrollo se lleven a cabo por dos personas en un mismo puesto. Se supone que la mayor calidad del

    cdigo escrito de esta manera -el cdigo es revisado y discutido mientras se

    escribe- es ms importante que la posible prdida de productividad inmediata.

    Frecuente integracin del equipo de programacin con el cliente o usuario. Se recomienda que un representante del cliente trabaje junto al equipo de

    desarrollo.

    Correccin de todos los errores antes de aadir nueva funcionalidad. Hacer entregas frecuentes.

    Refactorizacin del cdigo, es decir, reescribir ciertas partes del cdigo para aumentar su legibilidad y mantenibilidad pero sin modificar su comportamiento.

    Las pruebas han de garantizar que en la refactorizacin no se ha introducido

    ningn fallo.

    Propiedad del cdigo compartida: en vez de dividir la responsabilidad en el desarrollo de cada mdulo en grupos de trabajo distintos, este mtodo promueve

    el que todo el personal pueda corregir y extender cualquier parte del proyecto.

    Las frecuentes pruebas de regresin garantizan que los posibles errores sern

    detectados.

    Simplicidad en el cdigo: es la mejor manera de que las cosas funcionen. Cuando todo funcione se podr aadir funcionalidad si es necesario. La

    programacin extrema apuesta que es ms sencillo hacer algo simple y tener un

    poco de trabajo extra para cambiarlo si se requiere, que realizar algo complicado

    y quizs nunca utilizarlo. La simplicidad y la comunicacin son

  • extraordinariamente complementarias. Con ms comunicacin resulta ms fcil

    identificar qu se debe y qu no se debe hacer. Mientras ms simple es el

    sistema, menos tendr que comunicar sobre este, lo que lleva a una

    comunicacin ms completa, especialmente si se puede reducir el equipo de

    programadores

    METODOLOGIA RUP

    El Proceso Unificado Racional (Rational Unified Process en ingls, habitualmente

    resumido como RUP) es un proceso de desarrollo de software y junto con el Lenguaje

    Unificado de Modelado UML, constituye la metodologa estndar ms utilizada para el

    anlisis, implementacin y documentacin de sistemas orientados a objetos.

    El RUP no es un sistema con pasos firmemente establecidos, sino un conjunto de

    metodologas adaptables al contexto y necesidades de cada organizacin.

    Tambin se conoce por este nombre al software desarrollado por Rational, hoy propiedad

    de IBM, el cual incluye informacin entrelazada de diversos artefactos y descripciones de

    las diversas actividades. Est incluido en el Rational Method Composer (RMC), que

    permite la personalizacin de acuerdo a necesidades.

    Originalmente se dise un proceso genrico y de dominio pblico, el Proceso Unificado, y

    una especificacin ms detallada, el Rational Unified Process, que se vendiera como

    producto independiente

    Principios de desarrollo en Metodologia RUP

    El RUP est basado en 5 principios clave que son:

    Adaptar el proceso El proceso deber adaptarse a las caractersticas propias del proyecto u

    organizacin. El tamao del mismo, as como su tipo o las regulaciones que lo condicionen,

    influirn en su diseo especfico. Tambin se deber tener en cuenta el alcance del

    proyecto.

    Balancear prioridades Los requerimientos de los diversos inversores pueden ser

    diferentes, contradictorios o disputarse recursos limitados. Debe encontrarse un balance que

    satisfaga los deseos de todos.

    Demostrar valor iterativamente Los proyectos se entregan, aunque sea de un modo

    interno, en etapas iteradas. En cada iteracin se analiza la opinin de los inversores, la

    estabilidad y calidad del producto, y se refina la direccin del proyecto as como tambin

    los riesgos involucrados

    Elevar el nivel de abstraccin Este principio dominante motiva el uso de conceptos

    reutilizables tales como patrn del software, lenguajes 4GL o esquemas (frameworks) por

    nombrar algunos. Esto previene a los ingenieros de software ir directamente de los

    requisitos a la codificacin de software a la medida del cliente. Un nivel alto de abstraccin

    tambin permite discusiones sobre diversos niveles arquitectnicos. stos se pueden

    acompaar por las representaciones visuales de la arquitectura, por ejemplo con UML.

    Enfocarse en la calidad El control de calidad no debe realizarse al final de cada iteracin,

    sino en todos los aspectos de la produccin. El aseguramiento de la calidad forma parte del

    proceso de desarrollo y no de un grupo independiente.

    Ciclo de vida en Metodologia Rup

  • Un tpico perfil de proyecto mostrando el tamao relativo de las cuatro fasesEl ciclo de

    vida RUP es una implementacin del Desarrollo en espiral. Fue creado ensamblando los

    elementos en secuencias semi-ordenadas. El ciclo de vida organiza las tareas en fases e

    iteraciones.El RUP divide el proceso de desarrollo en ciclos, teniendo un producto final al

    culminar cada una de ellos, estos a la vez se dividen en fases que finalizan con un hito

    donde se debe tomar una decisin importante:

    Concepcin: se hace un plan de fases, se identifican los principales casos de uso y se identifican los riesgos

    Elaboracin: se hace un plan de proyecto, se completan los casos de uso y se eliminan los riesgos

    Construccin: se concentra en la elaboracin de un producto totalmente operativo y eficiente y el manual de usuario

    Transicin: se Instala el producto en el cliente y se entrena a los usuarios. Como consecuencia de esto suelen surgir nuevos requisitos a ser analizados.

    Mantenimiento: una vez instalado el producto, el usuario realiza requerimientos de ajuste, esto se hace de acuerdo a solicitudes generadas como consecuencia

    del interactuar con el producto.

    Caractersticas Metodologia RUP

    Forma disciplinada de asignar tareas y responsabilidades (quin hace qu, cundo y cmo)

    Pretende implementar las mejores prcticas en Ingeniera de Software Desarrollo iterativo Administracin de requisitos Uso de arquitectura basada en componentes Control de cambios Modelado visual del software Verificacin de la calidad del software El RUP es un producto de Rational

    (IBM). Se caracteriza por ser iterativo e incremental, estar centrado en la

    arquitectura y guiado por los casos de uso. Incluye artefactos (que son los

    productos tangibles del proceso como por ejemplo, el modelo de casos de uso, el

    cdigo fuente, etc.) y roles (papel que desempea una persona en un

    determinado momento, una persona puede desempear distintos roles a lo largo

    del proceso).