Rup

68
El proceso de ingeniería de software RUP

Transcript of Rup

El proceso de ingeniería de software RUP

Agenda• Introducción.• El Proceso Unificado de desarrollo

de Proyectos de Software (RUP).• El Proceso Unificado Empresarial

(EUP)

Introducción

¿Qué es un proceso de desarrollo de software?

• Es un marco de trabajo que permite la programación de las tareas necesarias para construir un software de alta calidad.

Proceso de ingeniería de

softwareRequerimientos Software

¿Cómo debe administrarse un proyecto de Ing. Software?• A menudo la

administración de proyectos se concentra en el cumplimiento de un cronograma de actividades….

Start1/97

CCV3/97

Build

#1

Build

#2

5/97

AB5/97

COI12/97

2/984/97

¿Qué características debe tener el proceso?Marco común de trabajo del proceso

Actividades de protección y administración

Actividades del marco del trabajoConjunto de tareas

Tareas

Hitos, Entregas

Puntos SQA

Estrategias• Para resolver los problemas reales de las

organizaciones, los responsables de los sistemas, deben incorporar una estrategia de desarrollo que integre las estrategias de la organización, los procesos, los métodos y las herramientas necesarias para la construcción del software.

• Importante … El plan estratégico de sistemas no puede estar desalineado del plan estratégico de la organización.

El Proceso Unificado de desarrollo de Software (RUP)

RUP

¿Que es el RUP?

• Es un proceso de ingeniería de software.• Se describe entre otras cosas como:

– Centrado en una arquitectura.– Guiado por casos de uso (requerimientos).– Iterativo e incremental.– Enfrenta riesgos.– Controla cambios.– Soportado por varias herramientas.

….¿Que es el RUP?• Fue concebido por los tres “amigos”:

Booch, Rumbaugh y Jacobson.• Provee a través de un entorno WEB:

Lineamientos, plantillas, workflows y herramientas, que guían una implementación efectiva de lasMejores Prácticas de la industria del software.

• Se define como una “Base de Conocimiento”

Estructura del Proceso Unificado

Adm. del proyectoMedio ambiente

Modelo del negocio

ImplementaciónPrueba

Análisis y diseño

Iter.#1

FasesDisciplinas del Proceso

Iteraciones

Disciplinas de Soporte

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Despliegue

Adm. configuración y cambios

Requerimientos

Elaboración TransiciónConcepción Construcción

Iteracion(es)Preliminar(es)

Fases del Proyecto

Estructura del proceso unificado• Dimensiones

– El eje horizontal representa el tiempo y muestra el ciclo de vida del proceso tal y como se desenvuelve.

• Muestra el aspecto dinámico (iteraciones).– El eje vertical representa los flujos de trabajo

(workflows) nucleares, que agrupan actividades por su naturaleza o disciplina.

• Representa el aspecto estático

Estructura Estática

¿Cómo ocurre el proceso y sus detalles?

¿Qué se produce u obtiene?

¿Quién lo hace o se responsabiliza?

¿Cuándo ocurre el proceso?Fases e iteraciones

Flujos del ProcesoActividades, pasos

ArtefactosModelos, reportes y/o

documentos

Trabajadores

Estructura Estática

Artefacto

Es una pieza de información producida, modificada o usada por un proceso

Trabajador

Es un rol asumido por un empleado Es una unidad

de trabajoActividad

Descripción de un caso de Uso

Analista

Paquete de Caso de Uso

Caso de Uso

Es responsable por

Workflow• Es una secuencia de actividades que

produce un resultado de valor observable. – RUP usa un diagrama de actividades para

representar el workflow.• El RUP organiza el conjunto de

actividades usando:– Workflows del proceso– Workflows de iteración

Workflows del proceso• Los workflows del proceso agrupan las

actividades propias de las disciplinas de ingeniería de software.

• Hay seis workflows para las disciplinas del proceso:– Modelo del negocio– Requerimientos – Análisis y Diseño – Implementación – Prueba– Distribución

• Y tres para soporte– Configuración y administración de Cambios – Administración del proyecto – Definición del ambiente

Workflow del modelado del negocio

Modelos y WorkflowsCada workflow describe cómo crear y mantener un “modelo” en particular

DesignModel

ImplementationModel

TestModel

realized by

implemented by

RequirementsWorkflow

Analysis /DesignWorkflow

ImplementationWorkflow

Test Workflow

Use-CaseModel

BusinessModeling

Business Model

verified by

Estructura dinámica

Tiempo

Concepción Elaboración Construcción Transición

Construye el producto, desarrollando a detalle el diseño y produciendo el código

Construcción

Planifica el proyecto, especifica las características, focaliza los detalles del análisis del dominio del problema y define los cimientos de la arquitectura

Elaboración

Define el alcance del proyecto y el desarrollo de los casos del negocio

Concepción

Implementa el producto a su comunidad de usuarios

Transición

Principales hitos de control

Tiempo

Visión Soportebase de la

Arquitectura

CapacidadInicial

Versióndel

Producto

Concepción Elaboración Construcción Transición

Fase de Concepción• Criterios de evaluación:

– Que los “Accionistas” aprueben la definición del proyecto y estimación de costos y plazos

– Que exista entendimiento de los requerimientos para los principales casos de uso

– Que el proyecto tenga credibilidad en las estimaciones, prioridades, riesgos, procesos de desarrollo, etc.

– La aprobación del prototipo de la arquitectura (opcional)

– Que sea viable; a través de un estudio de los costos reales vs. costos presupuestados de proyectos anteriores o similares.

Fase de Elaboración• Criterios de evaluación:

– La visión del producto es estable.– El entendimiento de los requerimientos (modelo

casos de uso completo >= 80% y especificaciones complementarias completas)

– La arquitectura básica es estable.– Los principales riesgos técnicos están controlados.– Existe un plan de desarrollo iterativo para la fase

de construcción.– Existe un acuerdo con los “accionistas” sobre que

plan y que arquitectura permitirá cumplir con la visión del proyecto.

– Se están cumpliendo los costos reales versus los planificados.

Fase de Construcción • Criterios de evaluación

– Disponibilidad del producto completo a un nivel de calidad adecuado.

– Plan de liberación completo:• Empaquetamiento• Precio• Instalación y Distribución• Soporte• Capacitación• Producción• Estrategia de Transición

– Documentación y manuales disponibles y al alcance de los usuarios.

Fase de Transición

• Criterios de evaluación:– Todos los productos y artefactos deben estar

adecuadamente actualizados.– Logro de la aceptación de clientes/usuarios

del producto liberado.– Análisis post-mortem del rendimiento de la

organización; beneficios adicionales, evolución potencial.

time

Ciclos de desarrollo• Un ciclo de desarrollo incluye una

ejecución completa de las cuatro fases y produce una generación de software

Inception Elaboration Construction Transition

Inception Elaboration Construction Transition

Inception Elab. . .

Ciclos de desarrollo• La mayoría de los sistemas requiere

múltiples ciclos.• Un ciclo de desarrollo inicial genera la

liberación inicial.• Ciclos posteriores sirven para mantener o

mejorar el sistema.• Los ciclos pueden ser secuenciales o

traslaparse.

Ciclo de Vida - Iteración

Una iteración es una secuencia de actividades con un plan establecido y criterios de evaluación, cuyo resultado es una versión o release.

Iteración ... Iteración Iteración ... Iteración ...

Release Release Release Release Release Release Release Release

Iteración ...

Concepción Elaboración Construcción Transición

Estrategias para el desarrollo iterativo¿Qué es un release?• Un release o versión del producto puede ser

interno o externo. Un release interno es usado únicamente por la organización o el equipo de desarrollo o a manera de demostración para los usuarios o consumidores.

• Un release externo (o entregable) es entregado a los usuarios finales.

• Un release no es necesariamente un producto terminado.

Estrategias para el desarrollo iterativo - PatronesCiclo de Vida “Incremental”• La estrategia incremental determina

las necesidades de los usuarios, define los requerimientos del sistema y como consecuencia realiza el resto del desarrollo en una secuencia de construcciones.

Estrategias para el desarrollo iterativo

Conceptual prototype

Architectural baseline

ReleaseDelivery

#1 #2 #n+1 # . . #m #m+1 #m+2 . . Iter. No.

Prel.Iteration

Elabo-ration Construction TransitionInception

Incremental (1)

Estrategias para el desarrollo iterativo - Patrones

Ciclo de vida Incremental: Características• En la concepción la iteración es corta y

establece el alcance, la visión y los casos de uso del negocio.

• En la elaboración normalmente existe una única iteración donde se definen los requerimientos y se establece la arquitectura.

• En la construcción hay varias iteraciones donde se realizan los casos de uso y la arquitectura se completa.

• En la transición existen varias iteraciones para migrar el producto a la comunidad de usuarios.

Estrategias para el desarrollo iterativo - Patrones

Ciclo de Vida Incremental:• Apropiado para cuando....

– El dominio del problema es familiar. – Los Riesgos se conocen bien. – El equipo de proyecto tiene

experiencia.

Estrategias para el desarrollo iterativo - Patrones

Ciclo de Vida “Evolutivo”• Esta estrategia difiere de la

incremental en que no se tiene el total conocimiento de lo que el usuario necesita y en que no todos los requerimientos se conocen desde el inicio sino mas bien, se refinan en sucesivas iteraciones.

Estrategias para el desarrollo iterativo

Conceptual prototype

Architectural baseline

ReleaseDelivery

#1 #2 #n+1 # . . #m #m+1 #m+2 . . Iter.No.

Prel.Iteration

Elaboration

Cons-truc-tion TransitionInception

Evolutionary (2)

Estrategias para el desarrollo iterativo - PatronesCiclo de Vida Evolutivo – Características• La concepción tiene una iteración corta y en ella

se establecen: el alcance, la visión y los procesos de negocio.

• La elaboración tiene varias iteraciones, durante las cuales los requerimientos son refinados.

• La construcción tiene una única iteración en donde los casos de uso se realizan y la arquitectura se va cimentando poco a poco.

• La transición tiene varias iteraciones para migrar el producto a la comunidad de usuarios.

Estrategias para el desarrollo iterativo - Patrones

Ciclo de Vida Evolutivo• Es apropiado para cuando:

– El dominio del problema es nuevo o poco familiar.

– El equipo es inexperto.

Estrategias para el desarrollo iterativo - PatronesCiclo de Vida de “Entregas Incrementales”• Esta estrategia es requerida cuando existen

presiones de entrega-a-tiempo, donde la entrega rápida de ciertas características clave puede reportar beneficios significativos al negocio. En términos de las fases; la transición tiene el mayor número de iteraciones y debe comenzar mas temprano.

• Esta estrategia requiere una arquitectura estable que puede ser difícil de alcanzar en un ciclo de desarrollo inicial de un sistema “sin precedentes”.

Estrategias para el desarrollo iterativo

Conceptual prototype

Architectural baseline

ReleaseDelivery

#1 #2 #n+1 # . . #m #m+1 #m+2 . . Iter.No.

Prel.Iteration

Elabo-ration

Cons-truc-tion TransitionInception

Incremental delivery (3)

Estrategias para el desarrollo iterativo - PatronesCiclo de Vida Entregas Incrementales -

Características• La concepción tiene una iteración corta y en ella

se establecen: el alcance, la visión y los procesos de negocio.

• La elaboración tiene una única iteración, donde se establece la línea base de una arquitectura estable.

• La construcción también tiene una iteración, durante la cual los casos de uso son realizados y la arquitectura se va edificando.

• La transición tiene varias iteraciones para migrar el producto a la comunidad de usuarios.

Estrategias para el desarrollo iterativo - Patrones

Ciclo de Vida Entregas Incrementales• Es apropiado cuando:

– El dominio del problema es familiar• La arquitectura y los requerimientos se pueden estabilizar

tempranamente en el ciclo de desarrollo.• Existe un bajo grado de novedad en el problema.

– El equipo es experimentado.– Las versiones de la funcionalidad del producto

tienen un alto valor para el cliente.

Estrategias para el desarrollo iterativo - Patrones

Ciclo de Vida del “Gran Diseño”– “La tradicional cascada se puede ver en

un caso especial en donde solo se requiere de una gran iteración en la fase de construcción”.

– En la práctica es muy difícil suprimir iteraciones en la fase de transición.

Estrategias para el desarrollo iterativo

Conceptual prototype

Architectural baseline

ReleaseDelivery

#1 #2 #3 . . Iter.No.

Elabo-ration Construction TransitionInception

“Grand design” (4)

Estrategias para el desarrollo iterativo - PatronesCiclo de Vida del “Gran Diseño” -

Características: • La concepción puede tener una iteración

corta y en ella se establecen: el alcance, la visión y los procesos de negocio.

• La Construcción tiene una larga y única iteración, durante la cual los casos de uso son realizados y la arquitectura se va edificando

• La transición tiene varias iteraciones para migrar el producto a la comunidad de usuarios.

Estrategias para el desarrollo iterativo - PatronesCiclo de Vida del “Gran Diseño”• Es apropiada cuando

– Solamente se está efectuando un pequeño incremento en un producto que ya es estable y tiene una funcionalidad bien definida.

– La nueva funcionalidad a ser adicionada se definido y comprendido bien.

– El equipo tiene experiencia tanto en el dominio del problema como en el producto existente.

Estrategias para el desarrollo iterativo - PatronesEstrategias Híbridas:• En la práctica muy pocos productos siguen una

única estrategia. Con frecuencia se adopta una estrategia híbrida.

• Se recomienda:– Para dominios de problema complejos y desconocidos,

donde se necesita un alto grado de exploración: incrementar el número de iteraciones en la elaboración y su amplitud.

– Para problemas de desarrollo complejos, donde es difícil trasladar el diseño a código: incrementar el número de iteraciones en la construcción y su duración.

– Para entregar software en una serie de versionesincrementales: aumentar el número de iteraciones en la transición y el tiempo de la misma.

Evaluación de Cali-dad de la Iteración N

• Compare costos y plazos reales con los del plan de iteración

• Determine si hay trabajo a rehacer

- Asignelo a futura(s) iteración(es)

• Determine que riesgos han sido reducidos, eliminados o cuales identificados

• Actualice el plan del proyecto

• Prepare el plan próxima iteración

- Use lista de riesgos revisada y seleccione Casos de Uso

Evaluación de Iteración N

Costos y PlazosReales Iteración N

Ciclo de Retroalimentación

• Resultado de Tests

• Densidad de Defectos

• Estabilidad Arquitectura

• Otras métricas

Lista de riesgos revisada

Plan Proy. revisado

• Costo Total• Programac. Gral.• Ámbito

Plan Iteración N+1• Costo• Programación• Contenido

Controlando el ciclo de vida iterativo• La evaluación de la iteración provee el

feedback necesario para controlar el proceso

DesarrolleBusiness

Case

Lider deProyecto

DesarrollePlan

Proy.

Analice lista de Riesgos

AsignePersonal

EvalueIteración

EjecutePlan de

Iteración

DesarrollePlan de

Iteración

IdentiqueRiesgos

La Planificación es incremental

Actual

Plan de Iteración

Fases e hitos principales• Qué y Cuándo

Plan de Proyecto

Iteraciones para cada fase• Número de iteraciones• Objetivos• Duración•Asignación Personal

Planes DetalladosPlan Macro

Próxima

•Tareas•Asignación a personas/equipos•Principales resultados

Workflows de iteración

• Es otra forma de mostrar el proceso, describiéndolo desde la perspectiva de “lo que sucede en una iteración típica”.

• Estas actividades se establecen en un cronograma.

Disciplinas del Proceso

Disciplinas de Soporte

ManagementEnvironment

Business Modeling

ImplementationTest

Analysis & Design

PreliminaryIteration(s)

Iter.#1

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Deployment

Configuration Mgmt

Requirements

Elaboration TransitionInception Construction

Workflow de Iteración

Fases

Plan de Proyecto y Plan de Iteración

ct al cture

ct

Plan de Proyecto

Plan de Iteración

P roje

Appr

ov

Arch

iteRe

view

ß1 ß2 P rod

uRele

ase

it.1 it.2 it.3

Design

Revie

w

Build

#1

Build

#2

it.4 it.54/97

Start1/97

LCO3/97

5/97

LCA7/97

IOC12/97

2/984/97

Iteración 3 Iteración 4 Iteración 5

Chequeo depreparación parala iteración

Evaluación dela Iteración

Plan de Iteración

Requerimientos

Análisis & Diseño

Implementación

Test

Prepara Versión

Cada Iteración consiste en una “Mini Cascada”

Plan de Iteración• Definir criterios de evaluación objetivo. • Identificar que artefactos concretos y medibles

serán desarrollados o actualizados y las actividades necesarias para lograrlo.

• Descomponer actividades hasta llegar a sub-actividades con una asignación y responsabilidad clara y una duración controlable.

• Usar estimaciones para asignar duración y esfuerzo de cada actividad.

• Hacer los ajustes necesarios de acuerdo a las restricciones de recursos.

¿Cuántas y de qué largo?• ¿Cuántas iteraciones deben hacerse

en cada proyecto?

Bajo 3 0 1 1 1

Típico 6 1 2 2 1

Alto 9 1 3 3 2

Total I E C T

¿Cuántas y de qué largo?• ¿Cuánto debe durar cada iteración?

– Depende de un número de consideraciones:

• Tamaño del sistema: Mientras mayor el sistema, más larga la duración

• Número de personas: Mientras más gente, más larga la duración

Ciclo de Vida-Dos perspectivas

RUP es la armazón de un proceso

No existe un proceso universal • RUP está diseñado para la flexibilidad y la extensión.

» Permite una variedad de estrategias de ciclos de vida.» Selecciona que artefactos producir y cuando. » Define actividades y roles.» Aplica los conceptos de modelamiento (UML)

Debilidades del RUP

• Es tan solo un proceso para el desarrollo. El modelo actual del RUP no incluye el proceso total del software.

• Tampoco tiene un soporte explícito a una infraestructura multi-sistemas. No cubre los aspectos de arquitectura empresarial, perdiendo así la posibilidad del reuso a gran escala dentro de una organización.

El Proceso Unificado Empresarial (EUP)

¿Qué es el Proceso Unificado Empresarial (EUP)?• Es un proceso que expande el alcance del

RUP para:– Alcanzar las necesidades del mundo real de

organizaciones típicas. – Permitir la gestión de varios proyectos de

software.– Permitir la gestión de los sistemas en producción

que se encuentran en operación y bajo soporte.• Fue propuesto por Scott W. Ambler y otros

colaboradores.– La última versión se publicó en el 2004.

Estructura del EUP

Nuevas fases en el ciclo de vida del EUP• La extensión del RUP propuesta por el

EUP supone tres nuevas fases en el ciclo de vida:– Pre-Concepción– Producción– Retiro

Pre-Concepción• Es una etapa donde se conciben las

actividades empresariales previas al proyecto.

• Incluye las siguientes disciplinas:– Comenzar el modelo de negocios empresarial. – Planificar el portafolio de los proyectos de TIC. – Modelar la arquitectura empresarial.– Identificar los activos reusables.– Asignar el staff del equipo del proyecto.– Definir el proceso de desarrollo de software.

Nuevas fases en el ciclo de vida del EUP

Hito de control: Objetivos para el retiro del producto.

El objetivo de esta etapa es mantener el sistema en ejecución y ayudar a los usuarios a operarlo. Esta fase termina cuando se ha previsto un cambio en la versión del software.

Producción

Su objetivo es remover satisfactoriamente un sistema en producción.

RetiroHito de control: El retiro satisfactorio del producto.

Nuevo ciclo de vida

Modelo del negocio empresarial

Las mejores prácticas del EUP• Desarrollo iterativo.• Administración de los requerimientos.• Arquitectura probada y adecuada.• Modelamiento.• Verificación continua de la calidad.• Administración del cambio.• Desarrollo cooperativo.• Seguimiento después del desarrollo.• Entrega regular de productos de software.• Administración del riesgo.

Conclusiones• Es necesario un proceso de ingeniería de software

que proporcione el marco adecuado para la creación de modelos que permitan el desarrollo de software de alta calidad.

• El proceso de desarrollo de software debe integrar a los conceptos tradicionales de producción y retiro para completar el ciclo real de vida de un producto.

• El RUP debe acoplarse a las estrategias de la organización referidas a la mejora de procesos de la empresa y al reuso de los recursos existentes.