Está en la página 1de 68

El proceso de ingeniera de software RUP

Agenda
Introduccin. El Proceso Unificado de desarrollo de Proyectos de Software (RUP). El Proceso Unificado Empresarial (EUP)

Introduccin

Qu es un proceso de desarrollo de software?


Es un marco de trabajo que permite la programacin de las tareas necesarias para construir un software de alta calidad.
Proceso de ingeniera de software

Requerimientos

Software

Cmo debe administrarse un proyecto de Ing. Software?


A menudo la administracin de proyectos se concentra en el cumplimiento de un cronograma de actividades.
Start 1/97 CCV 3/97 4/97 AB 5/97 COI 12/97 2/98

5/97
#1 ild Bu Bu ild #2

Qu caractersticas debe tener el proceso?


Marco comn de trabajo del proceso Actividades del marco del trabajo Conjunto de tareas
Tareas Hitos, Entregas Puntos SQA

Actividades de proteccin y administracin

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 organizacin, los procesos, los mtodos y las herramientas necesarias para la construccin del software. Importante El plan estratgico de sistemas no puede estar desalineado del plan estratgico de la organizacin.

RUP

El Proceso Unificado de desarrollo de Software (RUP)

Que es el RUP?
Es un proceso de ingeniera 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 travs de un entorno WEB: Lineamientos, plantillas, workflows y herramientas, que guan una implementacin efectiva de las Mejores Prcticas de la industria del software. Se define como una Base de Conocimiento

Estructura del Proceso Unificado


Fases Disciplinas del Proceso
Modelo del negocio Requerimientos Anlisis y diseo Implementacin Prueba Despliegue
ConcepcinElaboracin Construccin Transicin

Disciplinas de Soporte
Adm. configuracin y cambios Adm. del proyecto Medio ambiente
Iteracion(es) Preliminar(es) Iter. #1 Iter. #2 Iter. Iter. Iter. #n #n+1 #n+2 Iter. Iter. #m #m+1

Iteraciones

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 dinmico (iteraciones).

El eje vertical representa los flujos de trabajo (workflows) nucleares, que agrupan actividades por su naturaleza o disciplina.
Representa el aspecto esttico

Estructura Esttica
Fases e iteraciones Flujos del Proceso
Actividades, pasos Cundo ocurre el proceso? Cmo ocurre el proceso y sus detalles? Qu se produce u obtiene? Quin lo hace o se responsabiliza?

Modelos, reportes y/o documentos

Artefactos

Trabajadores

Estructura Esttica
Es un rol asumido por un empleado

Actividad Trabajador
Analista Es responsable por Descripcin de un caso de Uso Artefacto

Es una unidad de trabajo

Caso de Uso Paquete de Caso de Uso

Es una pieza de informacin producida, modificada o usada por un proceso

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 iteracin

Workflows del proceso


Los workflows del proceso agrupan las actividades propias de las disciplinas de ingeniera de software. Hay seis workflows para las disciplinas del proceso:
Modelo del negocio Requerimientos Anlisis y Diseo Implementacin Prueba Distribucin

Y tres para soporte

Configuracin y administracin de Cambios Administracin del proyecto Definicin del ambiente

Workflow del modelado del negocio

Modelos y Workflows
Business Modeling
Business Model

Cada workflow describe cmo crear y mantener un modelo en particular

Requirements Workflow Analysis /Design Workflow Implementation Workflow Test Workflow


Use-Case Model

realized by

implemented by Design Model verified by Implementation Model Test Model

Estructura dinmica
Concepcin Elaboracin Construccin Transicin

Tiempo Concepcin Elaboracin Define el alcance del proyecto y el desarrollo de los casos del negocio Planifica el proyecto, especifica las caractersticas, focaliza los detalles del anlisis del dominio del problema y define los cimientos de la arquitectura

Construccin Construye el producto, desarrollando a detalle el diseo y produciendo el cdigo Transicin Implementa el producto a su comunidad de usuarios

Principales hitos de control


Concepcin Elaboracin Construccin Transicin

Tiempo
Visin Soporte base de la Arquitectura Capacidad Inicial Versin del Producto

Fase de Concepcin
Criterios de evaluacin:
Que los Accionistas aprueben la definicin del proyecto y estimacin 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 aprobacin del prototipo de la arquitectura (opcional) Que sea viable; a travs de un estudio de los costos reales vs. costos presupuestados de proyectos anteriores o similares.

Fase de Elaboracin
Criterios de evaluacin:
La visin del producto es estable. El entendimiento de los requerimientos (modelo casos de uso completo >= 80% y especificaciones complementarias completas) La arquitectura bsica es estable. Los principales riesgos tcnicos estn controlados. Existe un plan de desarrollo iterativo para la fase de construccin. Existe un acuerdo con los accionistas sobre que plan y que arquitectura permitir cumplir con la visin del proyecto. Se estn cumpliendo los costos reales versus los planificados.

Fase de Construccin
Criterios de evaluacin
Disponibilidad del producto completo a un nivel de calidad adecuado. Plan de liberacin completo:
Empaquetamiento Precio Instalacin y Distribucin Soporte Capacitacin Produccin Estrategia de Transicin

Documentacin y manuales disponibles y al alcance de los usuarios.

Fase de Transicin
Criterios de evaluacin:
Todos los productos y artefactos deben estar adecuadamente actualizados. Logro de la aceptacin de clientes/usuarios del producto liberado. Anlisis post-mortem del rendimiento de la organizacin; beneficios adicionales, evolucin potencial.

Ciclos de desarrollo
Un ciclo de desarrollo incluye una ejecucin completa de las cuatro fases y produce una generacin de software
Inception Elaboration Construction Transition Transition Inception Elab. . .

Inception Elaboration Construction

time

Ciclos de desarrollo
La mayora de los sistemas requiere mltiples ciclos. Un ciclo de desarrollo inicial genera la liberacin inicial. Ciclos posteriores sirven para mantener o mejorar el sistema. Los ciclos pueden ser secuenciales o traslaparse.

Ciclo de Vida - Iteracin


Concepcin Elaboracin Construccin Transicin

Iteracin ...

Iteracin

...

Iteracin Iteracin

...

Iteracin

...

Release Release Release Release Release Release

Release

Release

Una iteracin es una secuencia de actividades con un plan establecido y criterios de evaluacin, cuyo resultado es una versin o release.

Estrategias para el desarrollo iterativo


Qu es un release? Un release o versin del producto puede ser interno o externo. Un release interno es usado nicamente por la organizacin o el equipo de desarrollo o a manera de demostracin 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 - Patrones


Ciclo 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


Inception Elaboration

Incremental (1)
Construction Transition

Prel. #1 #2 #n+1 Iteration Co Arc nc hit ep ec tua tur lp al rot ba oty se line pe

#..

#m

#m+1 #m+2 . . Iter. No. Re De live lea se ry

Estrategias para el desarrollo iterativo - Patrones


Ciclo de vida Incremental: Caractersticas
En la concepcin la iteracin es corta y establece el alcance, la visin y los casos de uso del negocio. En la elaboracin normalmente existe una nica iteracin donde se definen los requerimientos y se establece la arquitectura. En la construccin hay varias iteraciones donde se realizan los casos de uso y la arquitectura se completa. En la transicin 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


Evolutionary (2)
Construction

Inception

Elaboration

Transition

Prel. #1 Iteration Co nc ep tua

#2

#n+1

#..

lp rot oty pe

#m+1 #m+2 . . Iter. No. Ar Re De ch live lea ite se ry ctu ral ba se lin e #m

Estrategias para el desarrollo iterativo - Patrones


Ciclo de Vida Evolutivo Caractersticas
La concepcin tiene una iteracin corta y en ella se establecen: el alcance, la visin y los procesos de negocio. La elaboracin tiene varias iteraciones, durante las cuales los requerimientos son refinados. La construccin tiene una nica iteracin en donde los casos de uso se realizan y la arquitectura se va cimentando poco a poco. La transicin 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 - Patrones


Ciclo de Vida de Entregas Incrementales Esta estrategia es requerida cuando existen presiones de entrega-a-tiempo, donde la entrega rpida de ciertas caractersticas clave puede reportar beneficios significativos al negocio. En trminos de las fases; la transicin tiene el mayor nmero de iteraciones y debe comenzar mas temprano. Esta estrategia requiere una arquitectura estable que puede ser difcil de alcanzar en un ciclo de desarrollo inicial de un sistema sin precedentes.

Estrategias para el desarrollo iterativo


Incremental delivery (3)
Inception Elaboration Construction Transition

Prel. #1 #2 #n+1 Iteration Co Ar Re ch nc lea ite ep se ctu tua ral lp ba rot se oty lin pe e

#..

#m

#m+1 #m+2 . . Iter. No. De live ry

Estrategias para el desarrollo iterativo - Patrones


Ciclo de Vida Entregas Incrementales Caractersticas La concepcin tiene una iteracin corta y en ella se establecen: el alcance, la visin y los procesos de negocio. La elaboracin tiene una nica iteracin, donde se establece la lnea base de una arquitectura estable. La construccin tambin tiene una iteracin, durante la cual los casos de uso son realizados y la arquitectura se va edificando. La transicin 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 Diseo
La tradicional cascada se puede ver en un caso especial en donde solo se requiere de una gran iteracin en la fase de construccin. En la prctica es muy difcil suprimir iteraciones en la fase de transicin.

Estrategias para el desarrollo iterativo


Grand design (4)
ElaboInception ration Construction Transition

#1
Co Ar ch nc ite ep ctu tua ral lp rot ba oty se lin pe e

#2
Re lea se

#3 . .

De live ry

Iter. No.

Estrategias para el desarrollo iterativo - Patrones


Ciclo de Vida del Gran Diseo Caractersticas: La concepcin puede tener una iteracin corta y en ella se establecen: el alcance, la visin y los procesos de negocio. La Construccin tiene una larga y nica iteracin, durante la cual los casos de uso son realizados y la arquitectura se va edificando La transicin tiene varias iteraciones para migrar el producto a la comunidad de usuarios.

Estrategias para el desarrollo iterativo - Patrones


Ciclo de Vida del Gran Diseo Es apropiada cuando
Solamente se est efectuando un pequeo 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 - Patrones


Estrategias Hbridas:
En la prctica muy pocos productos siguen una nica estrategia. Con frecuencia se adopta una estrategia hbrida. Se recomienda:

Para dominios de problema complejos y desconocidos, donde se necesita un alto grado de exploracin: incrementar el nmero de iteraciones en la elaboracin y su amplitud. Para problemas de desarrollo complejos, donde es difcil trasladar el diseo a cdigo: incrementar el nmero de iteraciones en la construccin y su duracin. Para entregar software en una serie de versiones incrementales: aumentar el nmero de iteraciones en la transicin y el tiempo de la misma.

Ciclo de Retroalimentacin
Evaluacin de Iteracin N
Costos y Plazos Reales Iteracin N Compare costos y plazos reales con los del plan de iteracin Determine si hay trabajo a rehacer - Asignelo a futura(s) iteracin(es) Determine que riesgos han sido reducidos, eliminados o cuales identificados Actualice el plan del proyecto Prepare el plan prxima iteracin - Use lista de riesgos revisada y seleccione Casos de Uso Lista de riesgos revisada

Plan Proy. revisado Costo Total Programac. Gral. mbito

Evaluacin de Calidad de la Iteracin N Resultado de Tests Densidad de Defectos Estabilidad Arquitectura Otras mtricas

Plan Iteracin N+1 Costo Programacin Contenido

Controlando el ciclo de vida iterativo


La evaluacin de la iteracin provee el feedback necesario para controlar el proceso
Desarrolle Business Case Identique Riesgos Desarrolle Plan Proy. Asigne Personal Analice lista de Riesgos Desarrolle Plan de Iteracin Ejecute Plan de Iteracin

Evalue Iteracin

Lider de Proyecto

La Planificacin es incremental
Plan de Proyecto Plan de Iteracin Prxima

Fases e hitos principales Qu y Cundo Iteraciones para cada fase Nmero de iteraciones Objetivos Duracin Asignacin Personal

Actual

Tareas Asignacin a personas/equipos Principales resultados

Plan Macro

Planes Detallados

Workflows de iteracin Fases


Disciplinas del Proceso
Inception Elaboration Construction Transition

Business Modeling Requirements Analysis & Design Implementation Test Deployment

Disciplinas de Soporte
Configuration Mgmt Management Environment

Workflow de Iteracin

Iteration(s)

Preliminary

Iter. #1

Iter. #2

Iter. #n

Iter. Iter. #n+1 #n+2

Iter. #m

Iter. #m+1

Es otra forma de mostrar el proceso, describindolo desde la perspectiva de lo que sucede en una iteracin tpica. Estas actividades se establecen en un cronograma.

Start 1/97 LCO 3/97

4/97 4/97
it.1 it. 2

P A p roje pr ct ov al

LCA 7/97

D R e e s ig v ie n w

it.3 it.4

Ar ch R e itec vie tu w re it. 5

IOC 12/97

Plan de Proyecto y Plan de Iteracin

Plan de Iteracin
Bu ild #1 Bu ild #2

Plan de Proyecto
2/98

P R e ro d l e uc t as e

5/97

Cada Iteracin consiste en una Mini Cascada


Plan de Iteracin Requerimientos Anlisis & Diseo Implementacin Test Prepara Versin
Iteracin 3 Iteracin 4 Iteracin 5

Chequeo de preparacin para la iteracin

Evaluacin de la Iteracin

Plan de Iteracin
Definir criterios de evaluacin objetivo. Identificar que artefactos concretos y medibles sern desarrollados o actualizados y las actividades necesarias para lograrlo. Descomponer actividades hasta llegar a subactividades con una asignacin y responsabilidad clara y una duracin controlable. Usar estimaciones para asignar duracin y esfuerzo de cada actividad. Hacer los ajustes necesarios de acuerdo a las restricciones de recursos.

Cuntas y de qu largo?
Cuntas iteraciones deben hacerse en cada proyecto?
Total Bajo Tpico Alto 3 6 9 I 0 1 1 E 1 2 3 C 1 2 3 T 1 1 2

Cuntas y de qu largo?
Cunto debe durar cada iteracin?
Depende de un nmero de consideraciones:
Tamao del sistema: Mientras mayor el sistema, ms larga la duracin Nmero de personas: Mientras ms gente, ms larga la duracin

Ciclo de Vida-Dos perspectivas

RUP es la armazn de un proceso

No existe un proceso universal RUP est diseado para la flexibilidad y la extensin. 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 explcito a una infraestructura multi-sistemas. No cubre los aspectos de arquitectura empresarial, perdiendo as la posibilidad del reuso a gran escala dentro de una organizacin.

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 tpicas. Permitir la gestin de varios proyectos de software. Permitir la gestin de los sistemas en produccin que se encuentran en operacin y bajo soporte. La ltima versin se public en el 2004.

Fue propuesto por Scott W. Ambler y otros colaboradores.

Estructura del EUP

Nuevas fases en el ciclo de vida del EUP


La extensin del RUP propuesta por el EUP supone tres nuevas fases en el ciclo de vida:
Pre-Concepcin Produccin Retiro

Pre-Concepcin
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


El objetivo de esta etapa es mantener el sistema en ejecucin y ayudar a los usuarios a operarlo. Esta fase termina cuando se ha previsto un cambio en la versin del software. Hito de control: Objetivos para el retiro del producto.

Produccin

Retiro

Su objetivo es remover satisfactoriamente un sistema en produccin. Hito de control: El retiro satisfactorio del producto.

Nuevo ciclo de vida

Modelo del negocio empresarial

Las mejores prcticas del EUP


Desarrollo iterativo. Administracin de los requerimientos. Arquitectura probada y adecuada. Modelamiento. Verificacin continua de la calidad. Administracin del cambio. Desarrollo cooperativo. Seguimiento despus del desarrollo. Entrega regular de productos de software. Administracin del riesgo.

Conclusiones
Es necesario un proceso de ingeniera de software que proporcione el marco adecuado para la creacin de modelos que permitan el desarrollo de software de alta calidad. El proceso de desarrollo de software debe integrar a los conceptos tradicionales de produccin y retiro para completar el ciclo real de vida de un producto. El RUP debe acoplarse a las estrategias de la organizacin referidas a la mejora de procesos de la empresa y al reuso de los recursos existentes.

También podría gustarte