Vous êtes sur la page 1sur 49

Ingeniera en Sistemas de

Informacin
Diseo de Sistemas
(3K1)
Contenidos de la Unidad 2
Diseo Arquitectnico
A. Organizacin del Sistema
a. Arquitectura centrada en datos
b. Arquitectura en capas
c. Arquitectura de sistemas distribuidos
c.1. Multiprocesador
c.2. Cliente/Servidor
c.3. Objetos distribuidos
c.4. Peer-to-peer
c.5. Orientada a servidos
d. Arquitecturas de Aplicaciones
Modelos de dominio especfico

Sommerville. Cap. 11


Sommerville. Cap. 12






Sommerville. Cap. 13
B. Descomposicin modular y estilos de control
a. Orientada a Objetos
b. Orientada a flujos de funciones
c. Control centralizado
d. Control basado en eventos

Sommerville. Seccin 11.3
Diseo Arquitectnico
(Organizacin del Sistema

Ian Sommerville, Cap. 11
Ingeniera en Sistemas de Informacin
Los grandes sistemas se descomponen en subsistemas
que proporcionan algn conjunto de servicios
relacionados.
El Proceso de Diseo que:
1) Identifica estos subsistemas y
2) establece un marco para el control y
comunicacin entre ellos
es el Diseo Arquitectnico.
El Proceso de Diseo Arquitectnico est relacionado
con establecer un marco estructural bsico para
identificar los principales componentes de un sistema y
las comunicaciones entre estos componentes.
Diseo Arquitectnico
Introduccin
Diseo Arquitectnico
Ventajas
Hay 3 ventajas al disear explcitamente y documentar la
arquitectura del software:
1. Comunicacin con los usuarios. La arquitectura es una
presentacin de alto nivel del sistema que puede usarse
como punto de discusin por varios usuarios.
2. Anlisis del sistema. Hacer explcita la arquitectura del
sistema, en una etapa temprana, requiere realizar algn
anlisis. Las decisiones de diseo arquitectnico tienen un
gran efecto sobre los requerimientos crticos del sistema:
rendimiento, fiabilidad y mantenibilidad.
3. Reutilizacin a gran escala. Un Modelo de
Arquitectura del Sistema es una descripcin compacta y
manejable de cmo se organiza un sistema y cmo
inter-operan sus componentes.
La arquitectura del sistema es a menudo la misma
para sistemas con requerimientos similares.
Por eso pueden soportar reutilizacin del software a
gran escala.
Es posible desarrollar arquitecturas en donde la
misma arquitectura se usa en varios sistemas
relacionados.


Diseo Arquitectnico
Ventajas
El Diseo Arquitectnico fuerza a los diseadores a
considerar aspectos de diseo claves en etapas tempranas
del proceso.
La Arquitectura del Software sirve como un Plan de Diseo
que se usa para negociar los requerimientos del sistema y
para estructurar las discusiones con los clientes,
desarrolladores y gestores.
Tambin es una herramienta esencial para la gestin de la
complejidad.
La Arquitectura del Software oculta detalles y permite a los
diseadores centrarse en las abstracciones clave del
sistema.
Diseo Arquitectnico
Otras Ventajas
La Arquitectura del Sistema afecta al rendimiento,
solidez, grado de distribucin y mantenibilidad de un
Sistema.
La estructura elegida para una aplicacin puede
depender de :
1. Rendimiento. Si el rendimiento es un requerimiento
crtico, la arquitectura debera identificar las
operaciones crticas en un pequeo nmero de
subsistemas, con tan poca comunicacin como sea
posible entre los mismos, para priorizar el rendimiento.

Diseo Arquitectnico
Criterios que lo determinan
2. Proteccin. Si la proteccin es un requerimiento
crtico, debera usarse una arquitectura estructurada en
capas, con los recursos ms crticos protegidos en las
capas ms internas y aplicando una validacin de
seguridad de alto nivel en tales capas.
3. Seguridad. Si la seguridad es un requerimiento crtico,
la arquitectura debe disearse para que las operaciones
de seguridad se localicen en un nico subsistema o en
un pequeo nmero de subsistemas. Esto reduce los
costos y los problemas de validacin de seguridad.
Diseo Arquitectnico
Criterios que lo determinan
4. Disponibilidad. Si la disponibilidad es un requerimiento
crtico, la arquitectura debera disearse para incluir
componentes redundantes y que se pueda reemplazar y
actualizar componentes, sin detener el sistema.
5. Mantenibilidad. Si la mantenibilidad es un requerimiento
crtico, la arquitectura del sistema debe disearse usando
componentes independientes que puedan modificarse con
facilidad.
Diseo Arquitectnico
Criterios que lo determinan
Pueden haber conflictos potenciales entre algunas de
estas arquitecturas.
Por ejemplo, hay componentes que mejoran el
rendimiento, y otros, que mejoran la mantenibilidad.
Si ambas propiedades son requerimientos importantes
del sistema, entonces debera encontrarse una solucin
intermedia.
Esto puede conseguirse usando diferentes estilos
arquitectnicos para diferentes partes del sistema.
Diseo Arquitectnico
Criterios que lo determinan
Ac se solapan los procesos de Anlisis y de Diseo
Arquitectnico.
Idealmente, el Anlisis del Sistema no debera incluir
ninguna informacin de Diseo.
En la prctica, esto no es as, salvo en sistemas muy
pequeos.
La descomposicin arquitectnica es necesaria para
estructurar y organizar la especificacin (Anlisis).

Diseo Arquitectnico
Criterios que lo determinan
Un Diseo de Subsistemas es una descomposicin
abstracta de un sistema en componentes, donde cada
uno puede ser un sistema importante.
Los Diagramas de Bloques se usan para describir
diseos de subsistemas, en donde cada caja, en el
diagrama, representa un subsistema.
Cajas dentro de otras cajas indican que el subsistema
se ha descompuesto, a su vez, en otros subsistemas.
Las flechas significan que los datos o seales de
control pasan de un subsistema a otro, en la direccin
de las flechas.
Diseo Arquitectnico
Diseo de Subsistemas
Los Diagramas de Bloques presentan un dibujo de alto nivel
de la estructura del sistema, que puede entenderse
fcilmente por personas de diferentes disciplinas, implicadas
en el proceso de desarrollo.
Los Diagramas de cajas y lneas no muestran la naturaleza
de las relaciones entre los componentes del sistema ni
tampoco las propiedades visibles de los componentes.
Sin embargo, es un modelo efectivo para la comunicacin
con los usuarios del sistema y para la Planificacin del
Proyecto, porque no muestran los detalles.

Diseo Arquitectnico
Diagramas de Bloques
Los usuarios pueden relacionarlo con el sistema y
tener una visin abstracta del mismo.
El modelo identifica los subsistemas clave, que deben
ser desarrollados de forma independiente, para poder
asignar personal al desarrollo de cada uno.
Los diagramas de cajas y lneas no deberan ser la
nica representacin arquitectnica usada; aunque
puedan resultar muy tiles.
Decidir cmo descomponer un sistema en
subsistemas es difcil.
Diseo Arquitectnico
Diagramas de Bloques
Los Requerimientos del Sistema son un factor
fundamental.
Debe disearse con una clara correspondencia entre
los requerimientos y los subsistemas.
Esto significa que, si los requerimientos cambian, este
cambio probablemente est localizado en un nico
sitio, en vez de estar distribuido entre varios
subsistemas.

Diseo Arquitectnico
Correspondencia de los
Subsistemas con los
Requerimientos
El Diseo Arquitectnico es un proceso creativo, que
organiza al sistema para satisfacer sus requerimientos
funcionales y no funcionales.
Como es un proceso creativo, las actividades del
proceso difieren, dependiendo del tipo de sistema a
desarrollar, el conocimiento y la experiencia del
arquitecto del sistema, y los requerimientos especficos
del mismo.
Por eso es mejor concebir al Proceso de Diseo
Arquitectnico desde una perspectiva de decisin en
lugar de una perspectiva de actividades.
Diseo Arquitectnico
Un Proceso Creativo
Durante el Proceso de Diseo Arquitectnico, los
diseadores deben tomar decisiones fundamentales que
afectan profundamente al sistema y a su proceso de
desarrollo.
Los Diseadores deben responder las siguientes
preguntas fundamentales:
1. Hay alguna arquitectura genrica que pueda sirva como
plantilla para el sistema que se est diseando?
2. Cmo se distribuir el sistema entre varios
procesadores?
Diseo Arquitectnico
Un Proceso Creativo
3. Qu estilo o estilos arquitectnicos son apropiados para
el sistema?
4. Cul ser la aproximacin fundamental para estructurar
el sistema?
5. Cmo se descompondrn en mdulos las unidades
estructurales del sistema?
6. Qu estrategia se usar para controlar el funcionamiento
de las unidades del sistema?
7. Cmo se evaluar el diseo arquitectnico?
8. Cmo debera documentarse la arquitectura del sistema?

Diseo Arquitectnico
Preguntas que debe formularse el
Diseador
Si bien cada sistema de software es nico, los
sistemas, en el mismo dominio de aplicacin, suelen
tener arquitecturas similares, que reflejan los
conceptos fundamentales del dominio.
Estas arquitecturas de las aplicaciones pueden ser
bastante genricas, tales como la arquitectura de los
sistemas de gestin de informacin, o pueden ser
mucho ms especficas.
Diseo Arquitectnico
Arquitecturas plantillas
Las aplicaciones son aplicaciones construidas sobre
una arquitectura base, con variantes que satisfacen
los requerimientos especficos del cliente.
Cuando se disea la arquitectura de un sistema, se
debe decidir qu tiene en comn ese sistema con
clases de aplicaciones ms amplias, y determinar en
qu medida se pueden reutilizar esas arquitecturas.

Diseo Arquitectnico
Arquitecturas plantillas
Para sistemas embebidos y sistemas diseados para
computadoras personales, se utiliza normalmente un
nico procesador.
All no ser preciso disear una arquitectura distribuida
para el sistema.
Sin embargo, la mayora de los sistemas grandes son
sistemas distribuidos, donde el software del sistema se
distribuye entre muchas computadoras diferentes.
La eleccin de la arquitectura de distribucin es una
decisin clave que afecta al rendimiento del sistema.
Diseo Arquitectnico
Distribuir el procesamiento
La Arquitectura de un Sistema puede basarse en un
Modelo o Estilo Arquitectnico particular.
El Estilo Arquitectnico es un patrn de organizacin
de un sistema, como ser: una organizacin cliente-
servidor o una arquitectura por capas.
Es importante conocer estos estilos, sus aplicaciones, y
sus ventajas e inconvenientes.
Sin embargo, las arquitecturas de la mayora de los
sistemas grandes no utilizan un nico estilo.

Diseo Arquitectnico
Estilos Arquitectnicos
Pueden disearse diferentes partes del sistema
utilizando distintos estilos arquitectnicos.
En algunos casos, toda la arquitectura del sistema
puede ser una arquitectura compuesta, creada
mediante la combinacin de diferentes estilos
arquitectnicos.
La nocin de un Estilo Arquitectnico incluye las
siguientes cuestiones de diseo:
Se debe elegir la estructura ms adecuada: sea
cliente-servidor, o por capas, que permita satisfacer
los requerimientos del sistema.

Diseo Arquitectnico
Estilos Arquitectnicos
Para descomponer las unidades del sistema
estructural en mdulos, hay que decidir la estrategia.
Igual para descomponer subsistemas en sus
componentes o mdulos.
En funcin de ello, podemos implementar diferentes
tipos de arquitecturas.

Diseo Arquitectnico
Descomposicin en Mdulos
La Evaluacin de un Diseo Arquitectnico es difcil.
La verdadera prueba de una arquitectura consiste en
averiguar el grado de satisfaccin de sus
requerimientos funcionales y no funcionales, lo que
ocurre despus de que se hubo desarrollado el
sistema.
Sin embargo, en algunos casos, se puede realizar
alguna evaluacin comparando el diseo elaborado,
con modelos arquitectnicos genricos o de
referencia.
Diseo Arquitectnico
Evaluacin
El resultado del Proceso de Diseo Arquitectnico es
un Documento de Diseo Arquitectnico.
ste puede incluir varias representaciones grficas del
sistema, junto con texto descriptivo asociado.
Debe describir cmo se estructura el sistema en
subsistemas, la aproximacin adoptada y cmo se
estructura cada subsistema en mdulos.
Una forma posible de documentacin es mediante la
utilizacin de Modelos Grficos del Sistema, que
presentan diferentes perspectivas de la Arquitectura.
Diseo Arquitectnico
Documentacin
Los modelos grficos del sistema pueden ser:
1. Modelo estructural esttico: muestra los subsistemas o
componentes que han sido desarrollados como unidades
separadas.
2. Modelo de proceso dinmico: muestra cmo se organiza el
sistema en procesos, en tiempo de ejecucin.
3. Modelo de interfaz: define los servicios ofrecidos por cada
subsistema a travs de su interfaz.
4. Modelos de relaciones: muestra las relaciones (flujo de
datos) entre los subsistemas.
5. Modelo de distribucin: muestra cmo se distribuyen los
subsistemas entre las computadoras.
Diseo Arquitectnico
Modelos Grficos del Sistema
La Organizacin de un Sistema refleja la estrategia usada
para estructurar dicho sistema.
Al principio del Proceso de Diseo Arquitectnico se
toman decisiones sobre todo el modelo organizacional
de un sistema.
La Organizacin del Sistema puede reflejarse en la
estructura de los subsistemas.
Estudiaremos tres estilos organizacionales: un estilo de
repositorio de datos, un estilo de servicios y servidores
compartidos y una mquina abstracta o estilo por capas,
en donde el sistema se organiza en un conjunto de capas
funcionales.
Estos estilos se pueden utilizar juntos o por separado.

Diseo Arquitectnico
Organizacin del Sistema
Diseo Arquitectnico
El Modelo de Repositorio
Los subsistemas que forman un sistema deben
intercambiar informacin para poder trabajar,
conjuntamente, de forma efectiva.
Esto es puede conseguir de dos formas:
1. Todos los datos compartidos se almacenan en una
base de datos central a la que puede acceder por
todos los subsistemas.
Este modelo basado en una base de datos
compartida se denomina Modelo de Repositorio.
2. Cada subsistema mantiene su propia base de datos.
Los datos se intercambian con otros subsistemas,
pasando mensajes entre ellos.
Este modelo es adecuado para aplicaciones donde los
datos son generados por un subsistema y utilizados por
otro.
Ejemplos: los sistemas de gestin de informacin, CAD
y herramientas CASE.
La mayora de los sistemas que usan grandes
cantidades de datos se organizan alrededor de una
base de datos compartida o repositorio.
Diseo Arquitectnico
El Modelo de Repositorio
Ventajas y Desventajas del Modelo Repositorio:
1. Forma eficiente de compartir grandes cantidades de
datos.
No hay necesidad de transmitir datos explcitamente de
un subsistema a otro.
2. Los subsistemas deben estar acordes (compatibilidad)
con el modelo de datos del repositorio.
Puede ser difcil o imposible integrar nuevos subsistemas
si sus modelos de datos no se ajustan al esquema
acordado.
Diseo Arquitectnico
El Modelo de Repositorio
3. Los subsistemas que producen datos no necesitan
conocer cmo los otros subsistemas emplean sus datos.
4. La evolucin puede ser difcil a medida que se genera
mayor volumen de informacin.
Llevar el Repositorio a un nuevo modelo tendr un costo
elevado; puede ser difcil o an imposible.
La Figura siguiente muestra una arquitectura de
herramientas CASE, basada en un Repositorio
Compartido:

Diseo Arquitectnico
Repositorio: Ventajas y
Desventajas
5. Las actividades tales como: copias de seguridad,
proteccin, control de acceso y recuperacin de
errores estn centralizadas.
Se gestionan a nivel del Repositorio.
6. Sin embargo, diferentes subsistemas pueden tener
distintos requerimientos de proteccin, recuperacin y
polticas de seguridad.
El modelo de repositorio impone una misma poltica
para todos los subsistemas.
Diseo Arquitectnico
Repositorio: Ventajas y
Desventajas
7. El Repositorio facilita compartir recursos.
Las nuevas herramientas se integran directamente, ya
que son compatibles con el modelo de datos.
8. Es difcil distribuir el Repositorio sobre varias
mquinas.
Si bien es posible un Repositorio Centralizado
Lgicamente, puede haber problemas con la
redundancia de datos y las inconsistencias.

Diseo Arquitectnico
Repositorio: Ventajas y
Desventajas
Arquitectura de un conjunto de herramientas Case
integradas
Diseo Arquitectnico
El Modelo de Repositorio
El Modelo Arquitectnico Cliente-Servidor es un Modelo
de Sistema, que se organiza como un conjunto de servicios
y servidores asociados, ms unos clientes que acceden y
usan los servicios.
Componentes de este modelo:
1. Un conjunto de servidores que ofrecen servicios a otros
subsistemas.
Ejemplos: Servidores de Impresoras, que ofrecen servicios
de impresin: Servidores de Archivos que ofrecen servicios
de gestin de ficheros; y Servidores de Compilacin: que
ofrecen servicios de compilacin de lenguajes de
programacin, etc.
Diseo Arquitectnico
Modelo Cliente Servidor
2. Un conjunto de clientes que llaman a los servicios
ofrecidos por los servidores.
Son normalmente subsistemas.
Pueden haber varias instancias de un programa cliente
ejecutndose concurrentemente.
3. Una red que permite a los clientes acceder a estos
servicios.
Esto no es estrictamente necesario, cuando clientes y
servidores se ejecutan sobre una nica mquina.
En la prctica, la mayora de los sistemas cliente-servidor se
implementan como sistemas distribuidos.

Diseo Arquitectnico
Cliente Servidor. Componentes
Los clientes pueden conocer los nombres de los
servidores disponibles y los servicios que stos
proporcionan.
Sin embargo, los servidores no necesitan conocer la
identidad de los clientes o cuntos clientes tienen.
Los clientes acceden a los servicios proporcionados
por un servidor, a travs de llamadas a
procedimientos remotos usando un protocolo de
peticin-respuesta.
Bsicamente, un cliente realiza una peticin a un
servidor y espera hasta que recibe una respuesta.
Diseo Arquitectnico
Modelo Cliente Servidor
Arquitectura de un sistema de biblioteca de pelculas
y fotografas:
Diseo Arquitectnico
Modelo Cliente Servidor
La Figura anterior muestra un ejemplo de un sistema
basado en el Modelo Cliente-Servidor.
Es un sistema multiusuario, basado en web, para
proporcionar una biblioteca de pelculas y fotografas.
Aqu, varios servidores gestionan diferentes tipos de
dispositivos.
Las secuencias de video deben ser transmitidas
rpidamente y en sincrona, pero con baja resolucin.
stas pueden comprimirse en un almacn para que el
servidor de vdeo gestione la compresin y
descompresin de video en diferentes formatos.
Diseo Arquitectnico
Modelo Cliente Servidor
Sin embargo, las fotografas deben mantenerse con
una alta resolucin, por lo que es adecuado
mantenerlas en un servidor separado.
El catlogo debe manejar gran variedad de
peticiones y proporcionar enlaces al sistema de
informacin, con datos sobre las pelculas y las
fotografas.
Tambin debe contemplar un sistema de comercio
electrnico, para la venta de pelculas y fotografas.
El programa Cliente es simplemente una interfaz de
usuario integrada con estos servicios y construida
sobre un navegador web.

Diseo Arquitectnico
Modelo Cliente Servidor
La ventaja ms importante del modelo Cliente-
Servidor es que es una arquitectura distribuida.
Se puede hacer un uso efectivo de los sistemas en
red, con muchos procesadores distribuidos.
Es fcil aadir un nuevo servidor e integrarlo con el
resto del sistema o actualizar los servidores de forma
transparente, sin afectar al resto del sistema.
Diseo Arquitectnico
Modelo Cliente Servidor
El Modelo de Capas (o de Mquina Abstracta)
organiza el sistema en capas, cada una de las cuales
proporciona un conjunto de servicios.
La aproximacin por capas soporta el desarrollo
incremental de sistemas.
A medida que se desarrolla una capa, algunos de los
servicios proporcionados por esa capa pueden estar
disponibles para los usuarios.
Esta arquitectura soporta bien los cambios y es
portable.
Diseo Arquitectnico
Modelo de Capas
Mientras su interfaz permanezca sin cambios, una
capa puede reemplazarse por otra capa equivalente.
Cuando las interfaces de la capa cambian o se aaden
nuevas facilidades a una capa, solamente se ve
afectada la capa adyacente.
nicamente las capas ms internas deben ser
reimplementadas para incorporar las facilidades de un
sistema operativo o base de datos diferente.

Diseo Arquitectnico
Modelo de Capas
Ejemplo de un Modelo de Capas:
Diseo Arquitectnico
Modelo de Capas
La Capa de Gestin de Configuraciones es similar a la
Capa de Presentacin que nos enseaba Craig Larman.
La Capa de Gestin de Objetos almacena informacin y
servicios de gestin (anloga a la Capa de Lgica de
Larman).
El sistema se construye sobre una Capa de Base de
Datos, para almacenamiento bsico de datos y
servicios (gestin de transacciones, recuperacin de
actualizaciones y control de acceso).
La Base de Datos usa las facilidades del Sistema
Operativo subyacente.
Diseo Arquitectnico
Modelo de Capas
Desventaja de este modelo: la estructuracin de los
sistemas puede resultar difcil.
Las capas internas pueden proporcionar facilidades
bsicas, tales como gestin de archivos, que son
requeridas por todos los niveles.
Por lo tanto: los servicios requeridos por un usuario
del nivel superior pueden tener que atravesar las
capas adyacentes para acceder a los servicios
proporcionados por los niveles inferiores.
Esto trastoca el modelo, ya que implica que la capa
ms externa del sistema no solamente depende de
su predecesora inmediata.
Diseo Arquitectnico
Modelo de Capas
El rendimiento puede tambin ser un problema.
Si hay muchas capas, un servicio solicitado desde la
capa superior puede tener que ser interpretado varias
veces en diferentes capas, antes de ser procesado.
Para evitar estos problemas, las aplicaciones tienen
que comunicarse directamente con las capas
interiores en vez de usar los servicios proporcionados
por las capas adyacentes.
Diseo Arquitectnico
Modelo de Capas

Vous aimerez peut-être aussi