Professional Documents
Culture Documents
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
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
Presentacin
Diseado para
Profesionales en el desarrollo de software Interesados en productos de software Profesionales en la ingeniera y administracin de procesos de software
Presentacin
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
Presentacin
Presentacin
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
Presentacin
Conclusiones
De productos de software de alta calidad Que satisfagan los requerimientos En tiempo y presupuesto predecible
Presentacin
Historia
Presentacin
Caractersticas
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
Presentacin
Caractersticas (2)
Conceptualmente amplio y diverso Enfoque orientado a objetos En evolucin continua Adaptable Repetible Permite mediciones
Conceptos
Conceptos
Ciclo de vida
Conceptos
Disciplinas y fases
Conceptos
Fases
recursos Construction Transition Elaboration Inception
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
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
Conceptos
Fase Construction
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
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
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
Conceptos
Disciplinas (2)
Workflow
Conceptos
Roles
Un individuo puede jugar ms de un rol Conjuntos de actividades realizadas Responsabilidad sobre artefactos Software Architect Architecture Reviewer
Otoo 2008 | DCC - UdeChile | 22
Ejemplos de roles
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
Conceptos
Artefactos
Arquitectura de Software
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
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
4.
Arquitectura de Software
1) Arquitectura Candidata
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
1) Arquitectura Candidata
Cliente Usuario
Casos de Uso
Req. no funcionales Arquitecturas previas Patrones de arquitectura
Arquitectura
Arquitectura de Software
2) Aspectos Generales
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
2) Aspectos Generales
Cliente Usuario
Casos de Uso
Req. no funcionales Arquitecturas previas Patrones de arquitectura
Arquitectura
Arquitectura de Software
3) Aspectos Especficos
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
3) Aspectos Especficos
Cliente Usuario
Casos de Uso
Req. no funcionales Arquitecturas previas Patrones de arquitectura
Arquitectura
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
4) Aspectos Especficos
Cliente Usuario
Casos de Uso
Req. no funcionales Arquitecturas previas Patrones de arquitectura
Arquitectura
Arquitectura de Software
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
Arquitectura de Software
Arquitectura
Arquitectura de Software
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
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
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
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
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
Descripcin de la arquitectura
Use-Case View
Arquitectura de Software | Rational Unified Process
Logical View
Implem. View
Deploy. View
Process View
Arquitectura de Software
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
Arquitectura de Software
Descripcin de la arquitectura
Use-Case View
Arquitectura de Software | Rational Unified Process
Logical View
Implem. View
Deploy. View
Process View
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
Arquitectura de Software
La importancia de una arquitectura estable debe ser tomada en serio Estar cerca de conseguirla no es suficiente
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
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
Arquitectura de Software
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