miércoles, 30 de octubre de 2013

Metodologia Aup (proceso unificado agil)



La UP es un software producto ingeniería marco de proceso que puede abordarse mediante tres perspectivas, incluyendo colaboraciones, contexto y las interacciones que se centran en un ciclo de vida de compuesto por fases, disciplinas y iteraciones.

Una colaboración implica una interacción dentro de un contexto. En la UP, una colaboración captura quién hace qué actividades (cómo) sobre lo que funcionan los productos. Por lo tanto, establece los elementos de un proyecto. Colaboraciones implican a trabajadores (funciones), actividades y productos (artefactos) de trabajo. En el AUP, colaboraciones se centrarán en colaboradores (colaboradores y confirmantes), metas y objetivos y resultados. Un contexto se hace hincapié en el aspecto estructural o estático de una colaboración, los elementos que colaboran y su conglomerado o las relaciones espaciales. En la UP, un contexto captura cuando y donde estas actividades deben ser hechas, trabajo, productos (artefactos) producidos y consumidos. Por lo tanto, establece el marco para un proyecto. Contextos implican ciclos de desarrollo y fases, iteraciones y disciplinas. Las fases de la UP incluyen principio, diseño, construcción y transición. Disciplinas de la UP incluyen Business Modeling, requisitos, análisis y diseño, prueba, implementación, configuración y administración de cambios, gestión de proyectos y medio ambiente. En el AUP, contextos centrarán en objetivos.

Una interacción enfatiza el aspecto de comportamiento o dinámica de una colaboración, los elementos que colaboran y en su cooperación o la comunicación temporal. En la UP, una interacción captura cuándo y por qué esas actividades se debe hacer y los productos de trabajo (artefactos) producidos y consumidos. Así, establece la ejecución de un proyecto. Interacciones implican requisitos o casos de uso, un sistema y su arquitectura, iteraciones, y el riesgo. En el AUP, las interacciones se centran en los objetivos.


El AUP define metas y objetivos donde las colaboraciones se utilizan para lograr resultados. Una colaboración puede ser el trabajo realizado por una persona que puede interactuar con otros usuarios. Una colaboración puede ser un taller en el que participaron varios individuos que interactúan entre sí y pueden interactuar con otros fuera del taller. Objetivos son similares a UP fases en las que se utilizan como puertas que implican las partes interesadas y los usuarios. Objetivos son similares a UP iteraciones en caja el tiempo que implican a los usuarios y dar como resultado un producto de la versión.

El objetivo de iniciar (Concepción) es establecer el producto visión, plan de proyecto, negocios y justificación tecnológica e identificar los riesgos y las oportunidades. Puede haber uno o más objetivos que deben lograrse en alcanzar este objetivo.


El objetivo de ejecutar (innovación) es evolucionar el visión de producto, plan de proyecto y justificación de negocio y tecnología; identificar y hacer frente a riesgos; identificar y aprovechar oportunidades mientras diseñar, desarrollar (aplicación y pruebas) y desplegar (integración, construcción y libertad) el producto. Normalmente hay muchos objetivos y metas, cada una resultante de la implementación del producto.

Justificación del Uso del Proceso Unificado Ágil como Modelo de Desarrollo:

Un modelo de ciclo de vida de software es una vista de las actividades que se llevan a cabo durante el desarrollo de éste, e intenta determinar el orden de las etapas involucradas y proporcionar unos criterios para avanzar de unas a otras. Por tanto, definir un ciclo de vida permite llevar un mayor control sobre las tareas, evitando que estas se vayan eligiendo y realizando de manera desordenada, según parezca que van surgiendo necesidades, que podrían ser puntuales y fácilmente evitables.


Uso del Proceso Unificado de Desarrollo:



Debido al carácter relativamente investigador de este proyecto, y a la necesidad de modificar los requisitos que surgirían según se fueran evaluando y probando las distintas posibilidades con las que se cuenta para desarrollarlo, un modelo pesado no se ajusta de manera adecuada.

Sin embargo, un modelo puramente ágil necesita de un equipo de desarrollo con experiencia para ser llevado a cabo de manera satisfactoria, por lo que éste tampoco es el caso más adecuado para su aplicación. Es por ello que se ha optado por un modelo que combina características de ambas orientaciones, proporcionando un enfoque iterativo e incremental: el Proceso Unificado de Desarrollo propuesto por Rumbaugh, Booch y Jacobson.

Características del Proceso Unificado de Desarrollo:



Al igual que con cualquier otro modelo de desarrollo, del Proceso Unificado también se pueden destacar ciertas características.

  • Iterativo e incremental:


El Proceso Unificado es un marco de desarrollo compuesto de cuatro fases:

o Inicio.

o Elaboración.

o Construcción.

o Transición.



Cada una de ellas es, a su vez, dividida en una serie de iteraciones que ofrecen como resultado un incremento del producto desarrollado, que añade o mejora las funcionalidades del sistema en desarrollo. Es decir, un “incremento” no implica necesariamente una ampliación de dicho sistema.

Durante cada una de estas iteraciones se realizarán a su vez las actividades definidas en el ciclo de vida clásico: requisitos, análisis, diseño, implementación, prueba e implantación. Aunque todas las iteraciones suelen incluir trabajo en casi todas estas actividades, el grado de esfuerzo dentro de cada una de ellas varía a lo largo del proyecto. Por ejemplo, en la fase de inicio se centrarán más en la definición de requisitos y en el análisis, y durante la de construcción quedarán relegadas en favor de la implementación y las pruebas.

Si una iteración cumple sus metas, publicando una nueva versión del producto que implemente ciertos casos de uso, el desarrollo continúa con la siguiente. Cuando no las cumple, los desarrolladores deben revisar sus decisiones previas y probar un nuevo enfoque.


  • Dirigido por los casos de uso:

Un sistema software se crea para servir a sus usuarios por lo que, para construir un sistema exitoso, se debe conocer qué es lo que quieren y necesitan. El término “usuario” no se refiere solamente a los usuarios humanos sino también a otros sistemas, es decir, representa a algo o alguien que interactúa con el sistema a desarrollar.

En el Proceso Unificado, los casos de uso se utilizan para capturar los requisitos funcionales y para definir los objetivos de las iteraciones. En cada una, los desarrolladores identifican y especifican los casos de uso relevantes, crean el diseño usando la arquitectura como guía, implementan el diseño en componentes y verifican que los componentes satisfacen los casos de uso.


  • Centrado en la arquitectura:
El concepto de arquitectura del software involucra los aspectos estáticos y dinámicos más significativos del sistema, y actúa como vista del diseño, dando una perspectiva completa y describiendo los elementos más importantes. La arquitectura surge de los propios casos de uso, sin embargo, también está influenciada por muchos otros factores, como la plataforma en la que se ejecutará, el uso de estándares, la existencia de sistemas heredados (aunque éste no sea el caso que nos ocupa) o los requisitos no funcionales.

Puesto que la arquitectura y los casos de uso están relacionados, por una parte, los casos de uso deben, cuando son realizados, acomodarse en la arquitectura, y ésta debe ser lo bastante flexible para realizar todos los casos de uso, hoy y en el futuro. De palabras de los propios creados del Proceso Unificado, es un problema semejante al del “huevo y la gallina”. En la realidad, arquitectura y casos de uso deben evolucionar en paralelo.

  • Enfocado en los riesgos:

Para disminuir la posibilidad de fallo en las iteraciones o incluso la de cancelación del proyecto, se deben llevar a cabo sucesivos análisis de riesgos durante todo el desarrollo. Por supuesto, los riesgos principales deben ser identificados en una etapa temprana del ciclo de vida, y además, los resultados de cada iteración deben seleccionarse en un orden que asegure que estos son considerados primero.


  • Bondades de AUP 

Entre las bondades de RUP se encuentran: 

- Se apoya en un proceso formalizado como es RUP por lo que evita la improvisación 
- Tiene bien establecidos los roles y las fases 

- Es ágil y por tanto se basa en un proceso iterativo evolutivo 

- Incrementa la productividad 

- Facilita el trabajo de proyectos de pequeño tamaño 

- Hay información disponible de forma libre Aplicación en la docencia de los métodos ágiles 

  • Entre las recomendaciones para la utilización de la docencia se puede mencionar: 

- Utilizar la descripción de las mejores prácticas sobre un proceso bien formalizado como puede ser RUP. 

- Utilizar un método ágil para el desarrollo de proyectos que defina los roles en el equipo, por ejemplo AUP. 

- Agregar técnicas de trabajo en equipo del estilo de las de Scrum 

- Definir equipos con un número de miembros entre cuatro y siete estudiantes 

- Realizar las iteraciones con un tiempo de duración fijo e inapelable. Se recomienda tomar 30 días como Scrum 


  • Conclusiones 
Todos los métodos ágiles abrazan el modo iterativo e incremental de desarrollo. Las iteraciones son mas pequeñas que en RUP y los entregables simplificados. La comunicación es mas fluida con el cliente a lo que ayudan las iteraciones cortas. 

El método XP logra compartir el código entre todos los desarrolladores al utilizar la programación por pares. Sin embargo, XP es orientado a la implementación, con pocos documentos y es costosa su implementación a nivel de empresa. 

SCRUM controla el caos de los conflictos de intereses y necesidades con la utilización de las reuniones diarias y la vinculación con los clientes. 

Sin embargo, los métodos ágiles requieren de un método formal sobre el cual apoyarse, en muchos casos se utiliza a RUP. Por estas razones, para el uso académico se recomienda un método como AUP mezclado con algunas de las técnicas de Scrum de manera de contar con las ventajas de la formalidad de RUP que se incluye en Agile UP junto al tratamiento de la comunicación suministrada por Scrum.











No hay comentarios:

Publicar un comentario