Sie sind auf Seite 1von 37

Diseo de Sistemas

Diseo de la Arquitectura

Qu es? (1/2)
El

diseo arquitectnico representa la


estructura de los datos y de los componentes
del programa que se requieren para construir
un sistema.
La arquitectura del sw es la estructura o
estructuras del sistema, lo que comprende a
los componentes del sw, sus propiedades
externas visibles y las relaciones entre ellas.

Copyright Jorge Alvarado Tabacchi

Qu es? (2/2)
Es

una representacin que permite 1) analizar la


efectividad del diseo para cumplir los
requerimientos establecidos, 2) considerar
alternativas arquitectnicas en una etapa en la
que hacer cambios en el diseo es relativamente
fcil y 3) reducir los riesgos asociados con la
construccin del software.
Pone nfasis en el papel de los componentes del
software en cualquier representacin
arquitectnica.

Copyright Jorge Alvarado Tabacchi

Porqu es importante la
arquitectura?

Las representaciones de la arquitectura del software


permiten la comunicacin entre todas las partes
(participantes) interesadas en el desarrollo de un
sistema.
La arquitectura resalta las primeras decisiones que
tendrn un efecto profundo en todo el trabajo de
ingeniera de software.
La arquitectura constituye un modelo relativamente
pequeo y asequible por la va intelectual sobre cmo
est estructurado el sistema y la forma en que sus
componentes trabajan juntos.

Copyright Jorge Alvarado Tabacchi

Gneros Arquitectnicos (1/3)

El gnero arquitectnico es el que dicta el enfoque


especfico para la estructura que deba construirse.
Implica una categora especfica dentro del dominio
general del software. Dentro de cada categora hay varias
subcategoras.
A continuacin algunos de los gneros arquitectnicos
para sistemas basados en software:
Inteligencia artificial: Sistemas que simulan el conocimiento
humano.
Comerciales y no lucrativos. Para la operacin de una empresa
Comunicaciones: Proveen la infraestructura para transferir y
manejar datos

Copyright Jorge Alvarado Tabacchi

Gneros Arquitectnicos (2/3)


Contenido de autor: Crean o manipulan artefactos de texto o
multimedia.
Dispositivos: Interactan con el mundo fsico a fin de brindar
algn servicio puntual a un individuo.
Entretenimiento y deportes: Administran eventos pblicos que
proveen una experiencia grupal de entretenimiento.
Financieros: Proporcionan la infraestructura para transferir y
manejar dinero y otros ttulos.
Juegos: Dan una experiencia de entretenimiento a individuos
o grupos.
Gobierno: Dan apoyo a la conduccin y operaciones de uns
institucin pblica.

Copyright Jorge Alvarado Tabacchi

Gneros Arquitectnicos (3/3)


Industrial: Simulan o controlan procesos fsicos.
Legal: Sistemas que dan apoyo a la industria jurdica.
Mdicos: Diagnostican, curan o contribuyen a la investigacin
mdica.
Militares: Consulta, comunicaciones, comando, control e
inteligencia as como de armas ofensivas y defensivas.
Sistemas operativos: Estn inmediatamente instalados en el
hardware para dar servicios de software bsico.
Plataformas; Se encuentran el los sistemas operativos para
brindar servicios avanzados.
Cientficos. Para hacer investigacin cientfica y aplicada.
Herramientas: Se utilizan para desarrollar otros sistemas.
Transporte: Controlan vehculos acuticos, terrestres, etc.
Utilidades: Sistemas que interactan con otro software para
brindar algn servicio.

Copyright Jorge Alvarado Tabacchi

Estilos de Arquitectura (1/9)

Arquitecturas centrada en los datos: En el centro


de esta arquitectura se halla un almacenamiento de
datos al que acceden con frecuencia otros
componentes que actualizan, agregan o eliminan los
datos. El software cliente suele acceder a los datos
en forma independiente de cualquier cambio que
stos sufren o de las acciones del software de otro
cliente. Una variante de este enfoque transforma el
depsito en un pizarrn que enva notificaciones al
software cliente cuando hay un cambio en datos de
inters del cliente.

Copyright Jorge Alvarado Tabacchi

Estilos de Arquitectura (2/9)

Figura 1. Arquitectura centrada en los datos

Copyright Jorge Alvarado Tabacchi

Estilos de Arquitectura (3/9)

Las arquitecturas centradas en los datos promueven


la integralidad. Es decir, los componentes del
software pueden ser cambiados y agregarse otros
nuevos, del cliente, a la arquitectura sin problemas
con otros clientes (porque los componentes del
cliente operan en forma independiente).

Copyright Jorge Alvarado Tabacchi

Estilos de Arquitectura (4/9)

Arquitecturas de flujo de datos: Se aplica cuando


los datos de entrada van a transformarse en datos de
salida a travs de una serie de componentes
computacionales o manipuladores. Un patrn de tubo
y filtro tiene un conjunto de componentes llamados
filtros, conectados por tubos que transmiten datos de
un componente al siguiente. Cada filtro trabaja en
forma independiente de aquellos componentes que
se localizan arriba o abajo del flujo: se disea para
esperar una entrada de datos de cierta forma y
produce datos de salida.

Copyright Jorge Alvarado Tabacchi

Estilos de Arquitectura (5/9)

Figura 2. Arquitectura de flujo de datos

Copyright Jorge Alvarado Tabacchi

Estilos de Arquitectura (6/9)

Arquitecturas de llamar y regresar: Permite obtener


una estructura de programa que es relativamente fcil
de modificar y escalar. Dentro de esta categora existen
varios subestilos:
Arquitecturas de programa principal/subprograma. Esta
estructura clsica de programa descompone una jerarqua de
control en la que un programa principal invoca cierto nmero
de componentes de programa que a su vez invocan a otros. Ver
figura
Arquitecturas de llamada de procedimiento remoto. Los
componentes de una arquitectura de programa
principal/subprograma estn distribuidos a travs de
computadoras mltiples de una red.

Copyright Jorge Alvarado Tabacchi

Estilos de Arquitectura (7/9)

Figura 3. Arquitectura de programa principal/subprograma

Copyright Jorge Alvarado Tabacchi

Estilos de Arquitectura (8/9)

Arquitecturas orientada a objetos: Los


componentes de un sistema incluyen datos y las
operaciones que deben aplicarse para manipularlos.
La comunicacin y coordinacin entres los
componentes se consigue mediante la transmisin
de mensajes.
Arquitecturas en capas. Se define un nmero de
capas diferentes. En la capa externa, los
componentes atienden las operaciones de la interfaz
de usuario. En la interna, los componentes realizan
la interfaz con el sistema operativo. Las capas
intermedias proveen servicios de utileras y funciones
de software de aplicacin.

Copyright Jorge Alvarado Tabacchi

Estilos de Arquitectura (9/9)

Figura 4. Arquitectura en capas

Copyright Jorge Alvarado Tabacchi

Patrones arquitectnicos

Los patrones arquitectnicos se abocan a un


problema de aplicacin especfica dentro de un
contexto dado y sujeto a limitaciones y restricciones .
El patrn propone una solucin arquitectnica que
sirve como base para el diseo de la arquitectura.
La mayora de las aplicaciones caen dentro de un
gnero especfico y para stas son apropiados uno
o ms estilos de arquitectura, pero dentro de estos
estilos se encontrarn una serie de problemas
comunes que se abordan mejor con patrones
arquitectnicos especficos.

Copyright Jorge Alvarado Tabacchi

Diseo Arquitectnico

Cuando comienza el diseo arquitectnico, el


software que se va a desarrollar debe situarse en
contexto, es decir, el diseo debe definir las
entidades externas (otros sistemas, dispositivos,
personas, etc.) con las que interacta el software y la
naturaleza de dicha interaccin.
Una vez que se ha modelado el contexto y descrito
todas las interfaces externas del software se
identifica un conjunto de arquetipos de arquitectura.
Un arquetipo es una abstraccin (similar a una clase)
que representa un elemento de comportamiento del
sistema.

Copyright Jorge Alvarado Tabacchi

Diseo Arquitectnico
Representacin del sistema en contexto (1/4)

Un diagrama de contexto arquitectnico (DCA) se


usa para modelar la manera en la que el software
interacta con entidades ms all de su frontera.
En la figura se ilustra la estructura general de un
DCA. En ella los sistemas que interactan con el
sistema objetivo (aquel para el que se va a
desarrollar un diseo arquitectnico) estn
representados como sigue:
Sistemas superiores: aquellos que utilizan al sistema
objetivo como parte de algn esquema de procesamiento de
alto nivel.

Copyright Jorge Alvarado Tabacchi

Diseo Arquitectnico
Representacin del sistema en contexto (2/4)

Figura 5

Copyright Jorge Alvarado Tabacchi

Diseo Arquitectnico
Representacin del sistema en contexto (3/4)
Sistemas subordinados: los que son usados por el sistema
objetivo y proveen datos o procesamiento que son
necesarios para completar las funciones del sistema objetivo
Sistemas entre iguales (pares): son los que interactan
sobre una base de igualdad (por ejemplo la informacin se
produce o consume por los iguales y por el sistema objetivo)
Actores: entidades (personas, dispositivos, etc.) que
interactan con el sistema objetivo mediante la produccin o
consumo de informacin que es necesaria para el
procesamiento de los requerimientos.

Cada una de estas entidades externas se comunica


con el sistema objetivo a travs de una interfaz
(rectngulos pequeos sombreados).

Copyright Jorge Alvarado Tabacchi

Diseo Arquitectnico
Representacin del sistema en contexto (4/4)

Figura 6. Ejemplo de DCA para la funcin de


seguridad de un sistema CasaSegura

Copyright Jorge Alvarado Tabacchi

Diseo Arquitectnico
Definicin de arquetipos (1/3)

Un arquetipo es una clase o un patrn que


representa una abstraccin fundamental de
importancia crtica para el diseo de una arquitectura
para el sistema objetivo.
La arquitectura del sistema objetivo est compuesta
de estos arquetipos, que representan elementos
estables de la arquitectura.
En muchos casos los arquetipos se obtienen con el
estudio de las clases de anlisis.

Copyright Jorge Alvarado Tabacchi

Diseo Arquitectnico
Definicin de arquetipos (2/3)

Figura 7. Relaciones de UML para los arquetipos de la


funcin de seguridad de CasaSegura

Copyright Jorge Alvarado Tabacchi

Diseo Arquitectnico
Definicin de arquetipos (3/3)

Nodo. Representa una coleccin cohesiva de elementos


de entrada y salida de la funcin de seguridad del hogar.
Por ejemplo, un nodo podra comprender 1) varios
sensores y 2) varios indicadores de alarma (salida)
Detector. Abstraccin que incluye todos los equipos de
deteccin que alimentan con informacin el sistema
objetivo.
Indicador. Abstraccin que representa todos los
mecanismos (sirena, alarma, luces, etc.) que indican que
est ocurriendo una condicin de alarma.
Controlador. Abstraccin que ilustra el mecanismo que
permite armar o desarmar un nodo. Si residen en una red
tienen la capacidad de comunicarse entre s.

Copyright Jorge Alvarado Tabacchi

Diseo Arquitectnico
Refinamiento hacia los componentes

Conforme la arquitectura se refina hacia los


componentes, comienza a emerger la estructura del
sistema. Para elegir los componentes se empieza
con las clases descritas en el modelo de
requerimientos, que representan entidades dentro del
dominio de aplicacin (negocio). Otra fuente de
obtencin y refinamiento de componentes es el
dominio de la infraestructura. La arquitectura debe
albergar muchas componentes de la infraestructura
que hagan posible los componentes de la aplicacin.
Por ejemplo, los componentes de administracin de
memoria, de comunicacin, de BD, con frecuencia
estn integrados a la arquitectura de software.

Copyright Jorge Alvarado Tabacchi

Diseo Arquitectnico
Refinamiento hacia los componentes

En el ejemplo de la funcin de seguridad de


CasaSegura, debe definirse el conjunto de
componentes de alto nivel que se aboque a las
funciones siguientes:
Administracin de la comunicacin externa: coordina la
comunicacin de la funcin de seguridad con entidades
externas, tales como otros sistemas basados en internet y la
notificacin externa de una alarma.
Procesamiento del panel de control: administra toda la
funcionalidad del panel de control.
Administracin de detectores: coordina el acceso a todos
los detectores del sistema.
Procesamiento de alarmas: verifica y acta todas las
condiciones de alarma.

Copyright Jorge Alvarado Tabacchi

Diseo Arquitectnico
Refinamiento hacia los componentes

Figura 8. Estructura para los componentes de alto nivel

Copyright Jorge Alvarado Tabacchi

Diseo Arquitectnico
Descripcin
de
las
instancias
del
sistema
A pesar del refinamiento anterior aun est en un nivel

relativamente alto. Es necesario ms refinamiento


(diseo iterativo).
Para lograr ello se disean instancias de la
arquitectura. Esto significa que la arquitectura se aplica
a un problema especfico con objeto de demostrar que
tanto ella como sus componentes son apropiados.
La figura 9 ilustra instancias de la arquitectura
CasaSegura para el sistema de seguridad. Por
ejemplo, el componente administracin de detectores
interacta con un componente infraestructura
programador que implementa la prueba de cada objeto
sensor usado por el sistema

Copyright Jorge Alvarado Tabacchi

Diseo Arquitectnico
Descripcin de las instancias del sistema

Figura 9. Instancia de la funcin de seguridad

Copyright Jorge Alvarado Tabacchi

Mapeo de la Arquitectura con el uso


de Flujo de Datos

Una tcnica de mapeo llamada diseo estructurado se


caracteriza con frecuencia como mtodo de diseo
orientado al flujo porque provee una transicin
conveniente de un diagrama de flujo de datos (DFD) a la
arquitectura del software.
La transicin del flujo de informacin (DFD) a estructura
de programa se consigue como parte de un proceso de
seis pasos: 1) se establece el tipo de flujo de
informacin, 2) se indican las fronteras del flujo, 3) se
mapea el DFD en la estructura del programa, 4) se
define la jerarqua del control, 5) se refina la estructura
resultante, y 6) se mejora y elabora la descripcin
arquitectnica.

Copyright Jorge Alvarado Tabacchi

Mapeo de Transformacin

El mapeo de transformacin es un conjunto de pasos


que permite mapear un DFD con caractersticas de flujo
de transformacin en un estilo arquitectnico especfico.
Seguimos con el ejemplo de CasaSegura. Un elemento
del modelo de anlisis es un conjunto de DFD que
describen el flujo de informacin dentro de la funcin de
seguridad. Para mapear estos DFD es una arquitectura
de software deben darse los siguientes pasos de diseo:
Paso 1. Revisin del modelo del sistema fundamental. El
modelo del sistema fundamental o diagrama de contexto ilustra
la funcin de seguridad y representa a los productores y
consumidores externos de los datos que fluyen hacia dentro y
fuera de la funcin.

Copyright Jorge Alvarado Tabacchi

Mapeo de Transformacin

Figura 10. Diagrama de flujo de datos de contexto

Copyright Jorge Alvarado Tabacchi

Mapeo de Transformacin

Figura 11. Diagrama de flujo de datos de nivel 1

Copyright Jorge Alvarado Tabacchi

Mapeo de Transformacin
Paso 2. Revisar y mejorar los diagramas de flujos de datos
para el software. La informacin obtenida del modelo de
requerimientos se refina para producir ms detalles. En el
ejemplo se estudia el DFD de nivel 2 para vigilar sensores
(Figura 12) y se obtiene el DFD de nivel (Figura 13). En el
nivel 3 cada transformacin en el diagrama de flujo de datos
presenta una cohesin relativamente grande.

Copyright Jorge Alvarado Tabacchi

Mapeo de Transformacin

Figura 12. DFD en el nivel 2, Vigilar sensores

Copyright Jorge Alvarado Tabacchi

Mapeo de Transformacin

Figura 13. DFD en el nivel 3, Vigilar sensores

Copyright Jorge Alvarado Tabacchi

Das könnte Ihnen auch gefallen