Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Arquitectura Software
Arquitectura Software
octubre de 2007
Desarrollo Iterativo
Administrar Requerimientos
Proyeccin
de la organizacin y
Centrado en
la
Arquitectura
estructura de un sistema enfocndose
en aspectos particulares
Qu es la Arquitectura de un Sistema?
La descripcin del Sistema a travs de vistas
utilizando diagramas y modelos
Con qu notacin?
Centrado en la Arquitectura
Por qu es importante?
Arquitectura : Vistas
Proceso Unificado
1999
Arquitectura : Vistas
(RUP)
Krutchen 2000
Vista de los Casos de Uso
Vista Lgica
Vista de Procesos
Vista de Implementacin
Vista de Entrega.
Vista Lgica
Analistas/Diseadores
Estructura
Vista de
Implementacin
Programadores
Administradores
de Software
Usuario Final
Funcionalidad
Vista de Procesos
Integradores del Sistema
Rendimiento
Escalabilidad
Throughput
Vista de Despliegue
Ingeniera del Sistema
Topologa del Sistema
Entrega, Instalacin
Arquitectura: Vistas
Para modelar un sistema desde diferentes
vistas se debe responder:
Qu vistas se requiere?
Para cada vista:
Qu artefactos producir?
Arquitectura: Vistas
Vista de los Casos de Uso:
Esta vista contiene los escenarios o casos de
uso claves, para cada uno de los cuales se
describen las secuencias de interaccin entre
objetos y procesos.
Diagramas de Casos de Uso
Se complementa con vistas del rea Dinmica
Diagramas de Actividad,
Diagramas de Interaccin,
Diagramas de Estado.
Depositar
Modelo de Diseo
Caso de Uso
Diagramas de
Secuencia
Diagramas de
Colaboracin
Caso de Uso
Diagramas de Clase
Arquitectura: Vistas
Vista Lgica o de Diseo:
Es una abstraccin del modelo de diseo e
identificacin a gran escala del diseo de
paquetes, subsistemas y clases
Diagramas de Clases y Objetos
Diagramas ER
Se complementa con vistas del rea Dinmica
Diagramas de Actividad,
Diagramas de Interaccin,
Diagramas de Estado.
Arquitectura: Vistas
Vista de Procesos:
Toma en cuenta algunos requerimientos
no-funcionales: Rendimiento,
disponibilidad, integridad del sistema,
tolerancia a fallas.
Captura aspectos de Sincronizacin y
Concurrencia del diseo.
Control de los procesos concurrentes.
Arquitectura: Vistas
Vista de Implementacin o Desarrollo:
La vista de Implementacin se enfoca en la
organizacin de los mdulos del software actual
en el ambiente de desarrollo de software.
Diagramas de Componentes
Se complementa con vistas del rea Dinmica
Diagramas de Actividad,
Diagramas de Interaccin,
Diagramas de Estado.
Arquitectura: Vistas de
Implementacin
Diagrama de componentes
Arquitectura: Vistas
Vista Fsica o de Despliegue:
Describe mapping del SW al HW y refleja
su aspecto distribuido.
Diagramas de Despliegue
Se complementa con vistas del rea Dinmica
Diagramas de Actividad,
Diagramas de Interaccin,
Diagramas de Estado.
Arquitectura: Vista de
Despliegue
Diagrama de Despliegue
Arquitectura de Software
Es la organizacin o estructura de los
componentes significativos dentro del
sistema, lo cuales interactan,
an a travs de
interfaces. Los componentes pueden ser
usados para formar componentes ms
grandes
Cules son las partes principales?
Cmo colaboran?
Se tiene un marco en el cual el resto de los
componentes puede ser agregado?.
Arquitectura de Software
La Arquitectura del Software es la
organizacin fundamental de un sistema
formada por sus componentes, las
relaciones entre ellos y el contexto en el
que se implantarn, y los principios que
orientan su diseo y evolucin. IEEE
Std 1471-2000
Arquitectura de Software
Cmo disearla?
9 A partir de los escenarios significativos del proyecto
9 Considerando la plataforma sobre la cual se construir
el sistema:
Una secuencia
9 sistema operativo,
especfica de
9 manejador de bases de datos,
acciones que
9 sistemas existentes,
Una solucin
ilustra a
los
9 etc
uncomportamientos
problema
9 Utilizando la experiencia
comn en un
9 arquitecturas previas
contexto dado
9 patrones de diseo.
Arquitectura de Software
Cmo especificarla?
En dos etapas:
Nivel General: se especifican los aspectos generales del
sistema a construir (middleware, sistemas existentes, etc.)
Nivel Especfico: a travs de diferentes vistas de los
modelos:
casos de uso
clases y componentes
subsistemas
colaboraciones
interfaces
nodos
Arquitectura de Software
conjunto de
Nivel general (arquitectura por niveles)
subsistemas
que comparten
el mismo grado
de generalidad
Evolucin de Arquitecturas
Aplicaciones
Monolticas
Arquitectura ClienteServidor
Evolucin de Arquitecturas
Arquitectura C/S
Mejorada
Arquitectura de 3 niveles
Lgica de negocios en BD
Clientes pesados, no estndar.
Conexiones dedicadas a la BD.
Mejora en rendimiento
Alta administracin
Baja escalabilidad
Baja flexibilidad
Baja portabilidad
Arquitecto de Software
Arquitecto es un rol en un proyecto de
desarrollo de software el cual es
responsable de:
Liderar el proceso de arquitectura.
Producir los artefactos necesarios:
Documento de descripcin de arquitectura
Modelos y prototipos de arquitectura.
subsistemas
El estilo arquitectnico que gua su
organizacin, sus elementos e interfaces y su
composicin
Grady Booch, Philippe Kruchten, Rich Reitman, Kurt Bittner; Rational Software
(derived from Mary Shaw)
Diseo
Nivel de
Abstraccin
Alto nivel
Entregables
Diseo detallado
componentes.
Seleccin de tecnologas,
Requerimientos no funcionales
(QoS),
Manejo de riesgos
Requerimientos
funcionales
reas de
Enfoque
Especificaciones de
codificacin
Cdigo
Implementacin
Diseo
Arquitectura
Las decisiones
de arquitectura
causan un alto
impacto en los
proyectos de IT
Definicin de Arquitectura en
RUP
Fase de Inicio
Con respecto a la
arquitectura, en la fase de
inicio de los proyectos se
establece:
Requerimientos nofuncionales
Lista de riesgos y
restricciones
Arquitectura inicial
Definicin de Arquitectura en
RUP
Fase de Elaboracin
Con respecto a la arquitectura,
en la fase de elaboracin se
establece:
Arquitectura lnea base.
Entregables:
Documento de Definicin de
Arquitectura.
Prototipo evolutivo de arquitectura.
Guas y Estndares de Diseo.
RUP en 10 Pasos
Rushton Prince. Implementing RUP in 10
steps . (2005):
9 Definir un Caso de Desarrollo para el proyecto.
9 Identificar los casos de uso o funcionalidades para
el proyecto.
9 Clasificar los casos de uso segn los niveles de
riesgo.
9 Clasificar los artefactos por disciplinas.
9 Iterar a travs de las disciplinas de RUP para crear
los artefactos necesarios para recopilar la
informacin necesaria para el desarrollo del proyecto.
RUP en 10 Pasos
Rushton Prince. Implementing RUP in 10
steps . (2005):
9 Iterar a travs de las disciplinas de RUP para
detallar cada uno de estos artefactos.
9 Cumplir el objetivo de la Fase de Inicio: Alcance del
proyecto.
9 Cumplir el objetivo de la Fase de Elaboracin: Lnea
Base de la Arquitectura.
9 Cumplir el objetivo de la Fase de Construccin:
Primer release del Producto.
9 Cumplir el objetivo de la Fase de Transicin: Integrar
el producto a la realidad del negocio.