You are on page 1of 35

Arquitectura de Software

octubre de 2007

Seis mejores Prcticas


Desarrollo Iterativo Administrar Requerimientos

Usar Arquitecturas basadas en Componentes


Modelado Visual (UML) Verificar Continuamente la Calidad Administrar el Cambio

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?

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.

Arquitectura de Software: Modelo de las 4+1 Vistas

Vista Lgica

Vista de Implementacin
Programadores Administradores de Software

Analistas/Diseadores Estructura

Usuario Final Funcionalidad

Vista de Casos de Uso

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.

Review: Analysis and Design is Use-Case Driven


Los Casos de Uso definidos para un sistema son la base para el proceso entero de desarrollo. Beneficio de los Casos de Uso:
Concisos, simples y comprensibles para la gran variedad de involucrados. Ayudan a sincronizar el contenido de los diferentes modelos.
Verificar Balance Cliente

Depositar

Concepto: Realizacin de Casos de Uso


Modelo de Casos de Uso Modelo de Diseo

Caso de Uso

Realizacin de 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: Vista Lgica


Diagrama de Clases

Arquitectura: Vista Lgica

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: Vista de Procesos

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, 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

Arquitectura de Software de conjunto


Nivel general (arquitectura por niveles)
subsistemas que comparten el mismo grado de generalidad

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

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)

Arquitectura Vs. Diseo


La arquitectura y el diseo difieren en tres reas:
Arquitectura Nivel de Abstraccin Entregables Alto nivel Planear subsistemas, interfaces con sistemas externos, servicios horizontales, frameworks, componentes reutilizables, prototipo arquitectnico Seleccin de tecnologas, Requerimientos no funcionales (QoS), Manejo de riesgos Diseo Bajo nivel. Enfoque especfico en detalles Diseo detallado componentes. Especificaciones de codificacin Requerimientos funcionales

reas de Enfoque

Arquitectura Vs. Diseo


La arquitectura envuelve un conjunto de decisiones estratgicas de diseo, lineamientos, reglas y patrones que restringen el diseo y la implementacin de un software.
Las decisiones de arquitectura causan un alto impacto en los proyectos de IT

Cdigo Implementacin Diseo

Arquitectura

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):
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.

You might also like