Professional Documents
Culture Documents
octubre de 2007
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?
Permite una comunicacin efectiva entre las personas involucradas (diseador, desarrollador). Promueve el reuso del software. Permite la prueba individual e integracin gradual de los componentes. Permite crear sistemas flexibles y tolerantes a cambios.
Arquitectura : Vistas
Proceso Unificado 1999
Vista de Modelo de Casos de Uso Vista de Modelo de Anlisis Vista de Modelo de Diseo Vista de Modelo de Despliegue Vista de Modelo de Implementacin
Arquitectura : Vistas
(RUP) Krutchen 2000
Vista de los Casos de Uso Vista Lgica Vista de Procesos Vista de Implementacin Vista de Entrega.
Vista Lgica
Vista de Implementacin
Programadores Administradores de Software
Analistas/Diseadores Estructura
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
Depositar
Caso de Uso
Diagramas de Secuencia
Diagramas de Colaboracin
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
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 de Software
Es la organizacin o estructura de los componentes significativos dentro del sistema, lo cuales interactan, a travs de an 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?
A partir de los escenarios significativos del proyecto Considerando la plataforma sobre la cual se construir el sistema: Una secuencia sistema operativo, especfica de manejador de bases de datos, acciones que sistemas existentes, Una solucin a ilustra los etc un problema comportamientos Utilizando la experiencia comn en un arquitecturas previas contexto dado
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
El sistema es descrito en trminos de varios niveles, niveles donde los subsistemas pertenecientes a un nivel dado, slo pueden referenciar a los componentes del nivel inmediatamente inferior Los subsistemas de los niveles superiores son construidos a partir de los subsistemas de los niveles inferiores.
Evolucin de Arquitecturas
Aplicaciones Monolticas
Interfaces grficas de usuario (GUI). Servicios de presentacin, negocios y persistencia en la misma mquina. No hay concurrencia de usuarios. Alto acoplamiento entre tiers.
Arquitectura ClienteServidor
Clientes pesados, no estndar Conexiones dedicadas a BD Protocolos pesados Ejecucin remota de SQLs Alta administracin Bajo rendimiento Alto trfico de red Baja accesibilidad
Evolucin de Arquitecturas
Arquitectura C/S Mejorada
Arquitectura de 3 niveles
Reutilizacin de lgica de negocio para diferentes clientes o sistemas. Mejora la escalabilidad. Mejora la flexibilidad. Independencia de la base de datos.
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.
La Arquitectura de Software abarca las decisiones ms significativas acerca de la organizacin de un sistema de software La seleccin de los elementos estructurales
que componen un sistema y sus interfaces El comportamiento expresado en trminos de colaboracin entre estos elementos La composicin de estos elementos en
reas de Enfoque
Arquitectura
RUP en 10 Pasos
Rushton Prince. Implementing RUP in 10 steps . (2005):
Definir un Caso de Desarrollo para el proyecto. Identificar los casos de uso o funcionalidades para el proyecto. Clasificar los casos de uso segn los niveles de riesgo. Clasificar los artefactos por disciplinas. 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):
Iterar a travs de las disciplinas de RUP para detallar cada uno de estos artefactos. Cumplir el objetivo de la Fase de Inicio: Alcance del proyecto. Cumplir el objetivo de la Fase de Elaboracin: Lnea Base de la Arquitectura. Cumplir el objetivo de la Fase de Construccin: Primer release del Producto. Cumplir el objetivo de la Fase de Transicin: Integrar el producto a la realidad del negocio.