Comprendiendo RUP

23
Por: Byron Quisquinay

description

Presentación sobre RUP

Transcript of Comprendiendo RUP

Page 1: Comprendiendo   RUP

Por: Byron Quisquinay

Page 2: Comprendiendo   RUP

¿Qué es?

Una vez más nos encontramos frente a un concepto, herramienta o moda en la

administración de IT.

El que ahora nos compete es RUP que viene del inglés: Rational Unified Process, que

es el Proceso Unificado «Rational» y ésta última sigla no traducible por ser un nombre propio, en

sí es una marca. Y se define como un Proceso de Ingeniería de Software.

Sus creadores y comercializadores indican que este Proceso Unificado, reúne las

mejores prácticas de la industria del Desarrollo de Software.

Hay que tener en cuenta que: Rational, el logo de Rational y Rational Unified Process

son marcas registradas de la Corporación de Software: Rational, en los Estados Unidos y en

otros países.

El objetivo según ellos indican de este «Proceso» es producir en un

calendario, presupuesto y alta calidad predecibles acorde a las necesidades de los usuarios.

Page 3: Comprendiendo   RUP

¡Conceptos, conceptos,

conceptos!¿Mejores prácticas? Cuando se evalúan las actividades (métodos, procedimientos)

«normados» que utiliza una empresa, institución, entidad o similar agrupación, que en

comparación con el resto, resultan ser las mejores en la producción o prestación de un bien o

servicio.

¿Cuáles son las mejores prácticas entonces que encierra RUP?

1. Develop software iteratively. Desarrollar Software de forma Iterativa.

2. Manage requirements. Administrar los requerimientos.

3. Use component-based architectures. Utilizar arquitecturas basadas en componentes.

4. Visually model software. Modelado visual del Software.

5. Continuously verify software quality. Verificación continua de la calidad del Software.

6. Control changes to software. Control del cambio de Software.

Page 4: Comprendiendo   RUP

Desarrollo en forma Iterativa

Iterativa significa que es de forma «repetida, reiterada, insistida, insistente o renovada», es

decir como en un «loop» o «bucle». Pero esta buena práctica está complementada con la

INCREMENTALIDAD de esas iteraciones.

Page 5: Comprendiendo   RUP

Desarrollo en forma Iterativa,

sus beneficiosLos beneficios adquiridos de una programación que no se hace de una sola vez, más bien, se hace en

varias fases presentables y comprobables, que van creciendo en madurez. Deberían ser:

1. Los malos entendidos son evidentes de forma temprana en el ciclo de vida iterativo e

incremental, cuándo aún es posible reaccionar a ellos.

2. Además alienta a la retroalimentación del usuario, con lo que se lograría llegar el desarrollo al ideal

esperado.

3. El equipo de trabajo es forzado a enfocarse en aquellos aspectos que son realmente importantes para

el proyecto. Y alejarse de aquellos que resultan en distractores que los alejan de los riesgos reales del

proyecto.

4. Las pruebas constantes permiten la definición asertiva del estatus del proyecto.

5. Las inconsistencias entre lo requerido, lo diseñado y lo implementado son detectadas de forma

temprana.

6. La carga de trabajo en especial del grupo de pruebas es distribuida a lo largo del ciclo de vida del

proyecto.

7. El equipo pude aplicar la experiencia adquirida e irlos implementando continuamente en el proceso.

8. Los participantes en el proyecto pueden obtener evidencia concreta del mismo avance a través del

ciclo de vida que recorre de forma iterativa e incremental.

Page 6: Comprendiendo   RUP
Page 7: Comprendiendo   RUP
Page 8: Comprendiendo   RUP

Administración de

RequerimientosLos beneficios adquiridos de una programación que no se hace de una sola vez, más bien, se hace en

varias fases presentables y comprobables, que van creciendo en madurez. Deberían ser:

1. Los malos entendidos son evidentes de forma temprana en el ciclo de vida iterativo e

incremental, cuándo aún es posible reaccionar a ellos.

2. Además alienta a la retroalimentación del usuario, con lo que se lograría llegar el desarrollo al ideal

esperado.

3. El equipo de trabajo es forzado a enfocarse en aquellos aspectos que son realmente importantes para

el proyecto. Y alejarse de aquellos que resultan en distractores que los alejan de los riesgos reales del

proyecto.

4. Las pruebas constantes permiten la definición asertiva del estatus del proyecto.

5. Las inconsistencias entre lo requerido, lo diseñado y lo implementado son detectadas de forma

temprana.

6. La carga de trabajo en especial del grupo de pruebas es distribuida a lo largo del ciclo de vida del

proyecto.

7. El equipo pude aplicar la experiencia adquirida e irlos implementando continuamente en el proceso.

8. Los participantes en el proyecto pueden obtener evidencia concreta del mismo avance a través del

ciclo de vida que recorre de forma iterativa e incremental.

Page 9: Comprendiendo   RUP

Arquitectura de Componentes(1)

Una solución de IT, tiene distintos puntos de vista basado en el participante o actor que lo evalúa, así pues,

un usuario tendrá una concepción de la solución informática, el programador tendrá otra y así

sucesivamente.

Indican pues, que la clave para conciliar estos puntos de vista de la solución, radica en la arquitectura que

se empleará para la construcción (de la solución informática) . Y unidos los puntos de vista o expectativas

(requisitos) de los participantes y/o actores con una programación iterativa e incremental son la mezcla

idónea que fijará los objetivos revisables en cada iteración. Es decir, el horizonte está fijado por las

definiciones funcionales que nacen de la fusión de las expectativas de cada participante del proyecto.

La definición de una arquitectura te permite pues tomar decisiones sobre los siguientes aspectos:

• Cómo está organizado el Sistema (o cómo se organizará).

• La selección de los elementos estructurales y sus interfaces por los cuales está compuesto el Sistema.

• El comportamiento, especificado por la colaboración de esos elementos.

• La composición de esos elementos estructurales y funcionales dentro de grandes y progresivos Sub

Sistemas.

• El estilo de arquitectura que guía la organización: esos elementos, sus interfaces, su colaboración y su

composición.

Page 10: Comprendiendo   RUP

Arquitectura de Componentes(2)

¿Qué arquitecturas están basadas en el? …Desarrollo basado en componentes

(CBD: Component-based development) …

• Component-based development (COM) , de Microsoft.

• The Object Management Group's (OMG).

• Common Object Request Broker Architecture (CORBA).

• Sun Micro-systems' Enterprise Java-Beans (EJB).

El valor de una arquitectura de componentes, es que los mismos pueden ser

reutilizados en distintas soluciones. Es decir, una solución puede estar disponible

como módulo para las siguientes solicitudes.

Page 11: Comprendiendo   RUP

Arquitectura de Componentes(2)

¿Qué arquitecturas están basadas en el? …Desarrollo basado en componentes

(CBD: Component-based development) …

• Component-based development (COM) , de Microsoft.

• The Object Management Group's (OMG).

• Common Object Request Broker Architecture (CORBA).

• Sun Micro-systems' Enterprise Java-Beans (EJB).

El valor de una arquitectura de componentes, es que los mismos pueden ser

reutilizados en distintas soluciones. Es decir, una solución puede estar disponible

como módulo para las siguientes solicitudes.

Page 12: Comprendiendo   RUP

Arquitectura de Componentes(3)

Page 13: Comprendiendo   RUP

Modelado Visual del Software

Modelar es importante puesto que esto permite a los desarrolladores, visualizar, especificar, construir y

documentar la estructura y el comportamiento de la arquitectura del software. Y esto constituye un medio

sin ambigüedad, que permitirá la comunicación hacia el resto del equipo.

El modelo es la simplificación de la realidad y que presenta al Sistema desde una perspectiva.

Construimos modelos de tal suerte que podamos entender mejor el Sistema que se está modelando y dado

que no podemos comprender de forma completa lo complejo de los Sistemas o los Sistemas complejos.

Page 14: Comprendiendo   RUP
Page 15: Comprendiendo   RUP

Verificación continua de la

Calidad del SoftwareEl no tener un programa de control de calidad del producto entregado, en este

caso, software, generará a través del tiempo un costo más alto que si se le

monitorease y corrigiese de forma iterativa. Los elementos que deberían

monitorearse deberían ser: funcionalidad, eficiencia de la aplicación (presta el

soporte que se supone al proceso del negocio) y eficiencia del Sistema (cómo la

aplicación impacta a la eficiencia de ejecución de su entorno de IT).

Esta verificación involucra el tener definidos Escenarios Clave (key scenario) que

representarán aspectos funcionales del Sistema y que evidenciarán que la

iteración y el desarrollar de forma incremental están cumpliendo con el objetivo de

un avance significativo y asertivo del proyecto.

Page 16: Comprendiendo   RUP

Control de Cambios

Uno de los retos claves al trabajar con equipos de desarrolladores que se

conforman en grupos que participan en distintas iteraciones del desarrollo, en

distintitas versiones, productos y plataformas, es realizarlo de forma

armónica, ordenada y disciplinada de manera que no reine el caos.

Entonces la coordinación permitirá el empleo eficiente de los recursos basado en

las prioridades y riesgos del proyecto. Entonces esta práctica de poder controlar

los cambios de la mano con la iteración, permitirá el manejo del impacto derivado

de los cambios y garantizar la trazabilidad de los mismos.

Para ello es necesario un control entre iteración y versión entregable del proyecto.

Page 17: Comprendiendo   RUP
Page 18: Comprendiendo   RUP

RUP, sus tres entidades

fundamentales.

Trabajadores

• ¿Quién?

Actividades

• ¿Cómo?

Artefactos

• ¿Hace qué?

Page 19: Comprendiendo   RUP
Page 20: Comprendiendo   RUP

RUP, sus tres entidades

fundamentales…

Artefactos

Actividades

Trabajadores

Que fundamentalmente es Quién hace qué y de qué manera…

Flujo

Y el Flujo de trabajo (workflow que identifica el ¿Cuándo?)

Page 21: Comprendiendo   RUP

RUP, en pocas líneas.

1. El Proceso Unificado de Rational, es el Proceso de Desarrollo de Software que cubre todo

el ciclo de vida del Software en sí.

2. El producto de este proceso, resulta en una riqueza en conocimiento, siempre actualizado.

3. Así pues trae consigo una guía basada en varias técnicas, un acercamiento a la tecnología

basada en objetos, en el desarrollo basado en componentes, el modelado bajo UML, la

definición de una arquitectura, desarrollo iterativo y así sucesivamente.

4. No es un producto estático o congelado, más bien, es algo vivo en constante actualización.

5. Está basado en un proceso sólido de arquitectura y permite a una organización de

desarrollo configurarlo y confeccionarlo justo a la medida de sus necesidades.

6. Además soporta las seis mejores prácticas en desarrollo de software:

1. Desarrollo iterativo.

2. Administración de requerimientos.

3. Arquitectura basada en componentes.

4. Modelado visual del software.

5. Verificación continua de la calidad del Software.

6. Control de Cambios.

7. Está respaldado por una paleta extensiva de herramientas desarrolladas por Rational

Software.

Page 22: Comprendiendo   RUP

Ciclo del Proceso

Page 23: Comprendiendo   RUP