You are on page 1of 48

Rational Unified Process

Daniel Perovich
dperovic@dcc.uchile.cl

Auxiliar 1 y 2 18/0325/03

Fuente: Contenido basado en el curso Arquitectura de Software, Daniel Perovich y Andrs Vignaga, Instituto de Computacin, Facultad de Ingeniera, Universidad de la Repblica, Uruguay, 2004.

Agenda
  

Presentacin Conceptos Arquitectura de Software en RUP

Arquitectura de Software | Rational Unified Process

Otoo 2008 | DCC - UdeChile | 2

Presentacin

Qu es RUP?


Elementos centrales


Conjunto de principios y prcticas para el desarrollo exitoso de software Un modelo de proceso con una biblioteca de contenido asociada Un lenguaje de definicin de procesos Sitio web y herramientas de navegacin Provee herramientas de configuracin y extensin
Otoo 2008 | DCC - UdeChile | 3

Plataforma
 

Arquitectura de Software | Rational Unified Process

Presentacin

Para quin es RUP?




Diseado para


 

Profesionales en el desarrollo de software Interesados en productos de software Profesionales en la ingeniera y administracin de procesos de software

Estos participantes se involucran con RUP cumpliendo roles


Otoo 2008 | DCC - UdeChile | 4

Arquitectura de Software | Rational Unified Process

Presentacin

Por qu usar RUP?




Porque


Provee un entorno de proceso de desarrollo configurable, basado en estndares Permite tener claro y accesible el proceso de desarrollo que se sigue Permite ser configurado a las necesidades de la organizacin y del proyecto Provee a cada participante con la parte del proceso que le compete directamente, filtrando el resto

Arquitectura de Software | Rational Unified Process

Otoo 2008 | DCC - UdeChile | 5

Presentacin

Cundo usar RUP?


Alta complejidad tcnica
- embebidos, tiempo real, distribuidos, tolerancia a fallas - alta performance - personalizado, sin precedentes, re-ingeniera arquitectnica

Mayor necesidad de seguir un proceso definido

Baja complejidad gerencial


- pequea escala - informal - pocos stakeholders

Alta complejidad gerencial


- gran escala - contractual - muchos stakeholders

Baja complejidad tcnica


- 4GL, basado en componentes - re-ingeniera de aplicaciones
Arquitectura de Software | Rational Unified Process Otoo 2008 | DCC - UdeChile | 6

Presentacin

Cundo usar RUP? (2)




RUP puede utilizarse




En proyectos de nuevos productos de software En ciclos de desarrollo subsecuentes

Consideraciones que alteran cundo y cmo usar partes de RUP


 

El ciclo de vida del proyecto Los objetivos del negocio, la visin, el alcance y los riesgos El tamao del esfuerzo de desarrollo
Otoo 2008 | DCC - UdeChile | 7

Arquitectura de Software | Rational Unified Process

Presentacin

Conclusiones


Es un modelo de proceso de desarrollo de software




Es una base para procesos particulares

El objetivo es asegurar el desarrollo




 

De productos de software de alta calidad Que satisfagan los requerimientos En tiempo y presupuesto predecible

Permite un vocabulario comn entre equipos de desarrollo


Otoo 2008 | DCC - UdeChile | 8

Arquitectura de Software | Rational Unified Process

Presentacin

Historia

Arquitectura de Software | Rational Unified Process

Otoo 2008 | DCC - UdeChile | 9

Presentacin

Caractersticas


Dirigido por Casos de Uso




Los casos de uso son los artefactos primarios para establecer el comportamiento deseado del sistema La arquitectura es utilizada para conceptualizar, construir, administrar y evolucionar el sistema en desarrollo Maneja una serie de entregas ejecutables Integra continuamente la arquitectura para producir nuevas versiones mejoradas

Centrado en la Arquitectura


Iterativo e Incremental
 

Arquitectura de Software | Rational Unified Process

Otoo 2008 | DCC - UdeChile | 10

Presentacin

Caractersticas (2)
     

Conceptualmente amplio y diverso Enfoque orientado a objetos En evolucin continua Adaptable Repetible Permite mediciones


Estimacin de costos y tiempo, nivel de avance, etc.


Otoo 2008 | DCC - UdeChile | 11

Arquitectura de Software | Rational Unified Process

Conceptos

Arquitectura de Software | Rational Unified Process

Otoo 2008 | DCC - UdeChile | 12

Conceptos

Ciclo de vida

Arquitectura de Software | Rational Unified Process

Otoo 2008 | DCC - UdeChile | 13

Conceptos

Disciplinas y fases

Arquitectura de Software | Rational Unified Process

Otoo 2008 | DCC - UdeChile | 14

Conceptos

Fases
recursos Construction Transition Elaboration Inception

tiempo Objetivos Arquitectura Capacidad operacional inicial Liberacin del producto


Arquitectura de Software | Rational Unified Process Otoo 2008 | DCC - UdeChile | 15

Conceptos

Fase Inception


   

Establecer los lmites y el alcance del proyecto Estimar potenciales riesgos Determinar la factibilidad del proyecto Exhibir una arquitectura inicial Discriminar los principales escenarios de operacin que involucrarn importantes decisiones de diseo

Arquitectura de Software | Rational Unified Process

Otoo 2008 | DCC - UdeChile | 16

Conceptos

Fase Elaboration


Asegurar que la arquitectura, los requerimientos y los planes de desarrollo estn suficientemente estables Resolver los principales riesgos en la arquitectura Producir un prototipo evolutivo de componentes con calidad de produccin Conformar la lnea base de la arquitectura
Otoo 2008 | DCC - UdeChile | 17

Arquitectura de Software | Rational Unified Process

Conceptos

Fase Construction


Desarrollo iterativo incremental del producto completo


 

Minimizando costos y optimizando recursos Logrando cierto grado de paralelismo

Decidir si el software, la infraestructura y los usuarios estn listos para liberar el producto Completar anlisis, diseo, implementacin y testeo sobre la lnea base de la arquitectura Refinar la arquitectura
Otoo 2008 | DCC - UdeChile | 18

Arquitectura de Software | Rational Unified Process

Conceptos

Fase Transition
   

Beta-testing Operacin en paralelo relativo a sistemas legados que estn reemplazndose Conversin de bases de datos operacionales Entrenamiento de usuarios y de programadores que mantendrn el software Ajuste de bugs y afinado de la performance
Otoo 2008 | DCC - UdeChile | 19

Arquitectura de Software | Rational Unified Process

Conceptos

Disciplinas


Son un conjunto de actividades relacionadas con un rea especifica dentro del proyecto Estn inspiradas en las etapas de un proceso de desarrollo en cascada Es una secuencia parcialmente ordenada de actividades que son realizadas para lograr un resultado particular, representado en un conjunto de artefactos
Otoo 2008 | DCC - UdeChile | 20

Arquitectura de Software | Rational Unified Process

Conceptos

Disciplinas (2)


Workflow


Detalles del workflow

  

Actividades Artefactos Guas de aplicacin

Arquitectura de Software | Rational Unified Process

Otoo 2008 | DCC - UdeChile | 21

Conceptos

Roles


Definen el comportamiento y responsabilidades de individuos o grupos de individuos




Un individuo puede jugar ms de un rol Conjuntos de actividades realizadas Responsabilidad sobre artefactos Software Architect Architecture Reviewer
Otoo 2008 | DCC - UdeChile | 22

Son descripciones abstractas de


 

Ejemplos de roles
 

Arquitectura de Software | Rational Unified Process

Conceptos

Actividades


 

Una actividad es algo que un rol hace y que provee un resultado de inters en el contexto del proyecto Es una unidad de trabajo que individuos jugando cierto rol pueden ser llamados a realizar Son utilizadas para detallar los workflows Toman artefactos como entrada y producen artefactos (o nuevas versiones) como salida
Otoo 2008 | DCC - UdeChile | 23

Arquitectura de Software | Rational Unified Process

Conceptos

Artefactos


Unidades de informacin creadas, producidas, cambiadas o utilizadas en el proceso de desarrollo

Arquitectura de Software | Rational Unified Process

Otoo 2008 | DCC - UdeChile | 24

Arquitectura de Software


RUP est centrado en la Arquitectura




Es utilizada para conceptualizar, construir, administrar y evolucionar el sistema en desarrollo

Cmo conseguir que el sistema proporcione la funcionalidad deseada con los atributos de calidad esperados?


Construyendo una arquitectura que permita realizar la funcionalidad con los atributos esperados
Otoo 2008 | DCC - UdeChile | 25

Arquitectura de Software | Rational Unified Process

Arquitectura de Software

Desarrollo de la arquitectura


En lneas generales:
1. 2.

3.

Se elabora una arquitectura candidata Se trabaja sobre los aspectos generales de la aplicacin Se trabaja sobre algunos aspectos especficos de la aplicacin


Se repite este ltimo paso hasta llegar a una arquitectura estable

4.

Se trabaja sobre el resto de los aspectos especficos de la aplicacin


Otoo 2008 | DCC - UdeChile | 26

Arquitectura de Software | Rational Unified Process

Arquitectura de Software

1) Arquitectura Candidata


Tiene como objetivo:




Mostrar que existe (o que probablemente existe) una solucin que satisfar los requerimientos significativos Mostrar que la visin que se tiene del sistema es factible

Arquitectura de Software | Rational Unified Process

Otoo 2008 | DCC - UdeChile | 27

Arquitectura de Software

1) Arquitectura Candidata
Cliente Usuario

Casos de Uso
Req. no funcionales Arquitecturas previas Patrones de arquitectura

Arquitectura

Tecnologa Sistemas legados Estndares y polticas Dominio

Arquitectura de Software | Rational Unified Process

Otoo 2008 | DCC - UdeChile | 28

Arquitectura de Software

2) Aspectos Generales


Aspectos generales de la aplicacin


 

Generales respecto al dominio No son especficas del sistema que se piensa desarrollar

Seleccin del software de infraestructura de la aplicacin Adopcin de sistemas legados, estndares y polticas de uso Abordaje de requerimientos no funcionales
Otoo 2008 | DCC - UdeChile | 29

Arquitectura de Software | Rational Unified Process

Arquitectura de Software

2) Aspectos Generales
Cliente Usuario

Casos de Uso
Req. no funcionales Arquitecturas previas Patrones de arquitectura

Arquitectura

Tecnologa Sistemas legados Estndares y polticas Dominio

Arquitectura de Software | Rational Unified Process

Otoo 2008 | DCC - UdeChile | 30

Arquitectura de Software

3) Aspectos Especficos


Sobre un conjunto de casos de uso ms relevantes




Se capturan, analizan, disean, implementan y testean

 

Como resultado tenemos la realizacin completa de los casos de uso ms relevantes La arquitectura se adapta para ajustarse mejor a los casos de uso Se repite hasta obtener una arquitectura estable
Otoo 2008 | DCC - UdeChile | 31

Arquitectura de Software | Rational Unified Process

Arquitectura de Software

3) Aspectos Especficos
Cliente Usuario

Casos de Uso
Req. no funcionales Arquitecturas previas Patrones de arquitectura

Arquitectura

Tecnologa Sistemas legados Estndares y polticas Dominio

Arquitectura de Software | Rational Unified Process

Otoo 2008 | DCC - UdeChile | 32

Arquitectura de Software

4) Aspectos Especficos


Se desarrolla el resto de las funcionalidades Los casos de uso estn influenciados tambin por la arquitectura elegida Se negocia con el cliente para ajustar los casos de uso y su realizacin a la arquitectura que se tiene Se pueden realizar casos de uso creando clases y subsistemas a partir del desarrollo existente
Otoo 2008 | DCC - UdeChile | 33

Arquitectura de Software | Rational Unified Process

Arquitectura de Software

4) Aspectos Especficos
Cliente Usuario

Casos de Uso
Req. no funcionales Arquitecturas previas Patrones de arquitectura

Arquitectura

Tecnologa Sistemas legados Estndares y polticas Dominio

Arquitectura de Software | Rational Unified Process

Otoo 2008 | DCC - UdeChile | 34

Arquitectura de Software

Casos de Uso y Arquitectura




Los casos de uso conducen la arquitectura




La arquitectura est influenciada por los casos de uso relevantes que queremos que el sistema soporte Los casos de uso a considerar y su realizacin dependern de la arquitectura definida
Otoo 2008 | DCC - UdeChile | 35

La arquitectura gua los casos de uso




Arquitectura de Software | Rational Unified Process

Arquitectura de Software

Casos de Uso y Arquitectura


Casos de Uso
conduce gua

Arquitectura

Arquitectura de Software | Rational Unified Process

Otoo 2008 | DCC - UdeChile | 36

Arquitectura de Software

Lnea base de la Arquitectura




A medida que avanza el desarrollo los modelos del sistema se van poblando Los primeros pobladores refieren a los requerimientos de mayor importancia y sus realizaciones As se obtiene una primera versin de los modelos Esta agregacin de modelos es la lnea base de la arquitectura
Otoo 2008 | DCC - UdeChile | 37

Arquitectura de Software | Rational Unified Process

Arquitectura de Software

Lnea base de la Arquitectura (2)


 

Es un sistema pequeo y flaco Es un esqueleto del sistema con pocos msculos de software
Use-Case Model Analysis Model Design Model Implem. Model Deploy. Model Test Model

Arquitectura de Software | Rational Unified Process

Otoo 2008 | DCC - UdeChile | 38

Arquitectura de Software

Lnea base de la Arquitectura (3)




Este sistema parcial se desarrollar y aumentar para convertirse en el sistema final




Quiz ocurrirn algunos cambios sin importancia en su estructura y comportamiento Pero son menores ya que se ha conseguido una arquitectura estable

 

Habr sucesivas versiones (internas) hasta llegar a la lnea base del cliente Cada versin se construye a partir de la anterior
Otoo 2008 | DCC - UdeChile | 39

Arquitectura de Software | Rational Unified Process

Arquitectura de Software

Lnea base de la Arquitectura (4)




Conseguir la lnea base de la arquitectura proporciona


 

Seguridad al arquitecto y al equipo Una demostracin de que funciona

La lnea base de la arquitectura se representa por algo ms que los modelos Se incluye una descripcin de la arquitectura


El papel de esta descripcin es guiar al equipo a travs del ciclo de vida del sistema
Otoo 2008 | DCC - UdeChile | 40

Arquitectura de Software | Rational Unified Process

Arquitectura de Software

Descripcin de la Arquitectura


La descripcin es un extracto de los modelos que estn en la lnea de base Muchos de los elementos en los modelos aparecen en la descripcin Sin embargo, no todos lo hacen


Para lograr la lnea base de la arquitectura puede ser necesario el desarrollo de algunos elementos, que no son arquitectnicamente relevantes, para lograr un ejecutable

Arquitectura de Software | Rational Unified Process

Otoo 2008 | DCC - UdeChile | 41

Arquitectura de Software

Descripcin de la Arquitectura (2)


Lnea base de la arquitectura
Use-Case Analysis Model Model Design Model Implem. Model Deploy. Model Test Model

Descripcin de la arquitectura

Use-Case View
Arquitectura de Software | Rational Unified Process

Logical View

Implem. View

Deploy. View

Process View

Otoo 2008 | DCC - UdeChile | 42

Arquitectura de Software

Descripcin de la Arquitectura (3)




La descripcin debe mantenerse actualizada debido a cambios secundarios como


 

La identificacin de nuevas clases abstractas La adicin de nueva funcionalidad a los subsistemas existentes La actualizacin a nuevas versiones de los componentes reutilizables La reordenacin de la estructura de procesos

La descripcin se actualiza, pero su tamao no debe crecer


Otoo 2008 | DCC - UdeChile | 43

Arquitectura de Software | Rational Unified Process

Arquitectura de Software

Descripcin de la Arquitectura (4)


Lnea base del cliente (versin final)
Use-Case Analysis Model Model Design Model Implem. Model Deploy. Model Test Model

Descripcin de la arquitectura

Use-Case View
Arquitectura de Software | Rational Unified Process

Logical View

Implem. View

Deploy. View

Process View

Otoo 2008 | DCC - UdeChile | 44

Arquitectura de Software

Arquitectura Estable


La necesidad de estabilidad es dictada por la naturaleza de la fase de Construction: en Construction el proyecto tpicamente se expande


Agregando desarrolladores que trabajarn en paralelo Trabajan prcticamente en forma autnoma

El grado de independencia y paralelismo necesario en Construction no es alcanzable si la arquitectura no es estable


Otoo 2008 | DCC - UdeChile | 45

Arquitectura de Software | Rational Unified Process

Arquitectura de Software

Arquitectura Estable (2)


 

La importancia de una arquitectura estable debe ser tomada en serio Estar cerca de conseguirla no es suficiente


Es preferible corregir la arquitectura y demorar el pasaje a Construction a que proceder

Los cambios en la arquitectura durante Construction tienden a ser costosos y problemticos (coordinacin)


Corregir la arquitectura mientras los desarrolladores estn trabajando sobre ella anula cualquier beneficio aparente que forzar el cronograma pueda prometer
Otoo 2008 | DCC - UdeChile | 46

Arquitectura de Software | Rational Unified Process

Arquitectura de Software

Arquitectura Estable (3)




La dificultad real de determinar la estabilidad de la arquitectura es que no se sabe lo que no se sabe La arquitectura se desarrolla considerando escenarios significativos Determinar la estabilidad de la arquitectura requiere asegurar que sta tiene una amplia cobertura


Para asegurar que no habrn sorpresas al avanzar


Otoo 2008 | DCC - UdeChile | 47

Arquitectura de Software | Rational Unified Process

Arquitectura de Software

Arquitectura Estable (4)




Experiencias anteriores pueden ser buenos indicadores Una baja tasa de cambios en la arquitectura sugiere estabilidad Cambios en la arquitectura a causa de nuevos escenarios es seal de inestabilidad


La lnea de base an no fue alcanzada


Otoo 2008 | DCC - UdeChile | 48

Arquitectura de Software | Rational Unified Process

You might also like