Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Estilos Arquitectnicos
Juan Carlos Ramos Natalia Depetris UTN - FRSF 200 -20!2
Esti os Arquitect!nicos
"
"
Un estilo arquitectnico# en so$t%are es an&lo'o al concepto en construccin (e e(i$icios) Consiste (e al'unas caracter*sticas cla+es , re'las para com-inar estas caracter*sticas)
Esti os Arquitect!nicos
Un con/unto (e tipos de componentes 0proceso1 repositorio1 etc)2 que reali3a al'una $uncin en tiempo (e e/ecucin) Una distribucin topolgica (e las componentes que in(ica su interrelacin en tiempo (e e/ecucin) Un con/unto (e restricciones semnticas) Un con/unto (e conectores que permiten la comunicacin1 coor(inacin o cooperacin entre los componentes)
Diseo de SWBA - ISI - UTN - FRSF "
Esti os Arquitect!nicos
Un estilo N4 es una arquitectura) Un estilo (e$ine una clase de arquitecturas) Son am-i'uos so-re.
5a canti(a( (e componentes 5os mecanismos utili3a(os para la interaccin 5a $uncin (el sistema)
Esti os Arquitect!nicos
Centra(os en Datos
Repositorio 9lac;-oar( 6nt>rprete Sistemas 9asa(os en Re'las 7ro'rama 7rincipal , Su-rutinas 4rienta(o a 4-/etos Capas
$
<&quinas =irtuales
5lama(a-Retorno
Esti os Arquitect!nicos
7ermiten (e$inir. ?Cu&l es el +oca-ulario (e (ise@oA ?Cu&les son los patrones estructurales (isponi-lesA ?Cu&l es el mo(elo computacional su-,acenteA ?Cu&les son las in+ariantes esenciales (el estiloA ?Cu&les son al'unos e/emplos (e su usoA ?Cu&les son las +enta/as , (es+enta/as (e usar el estiloA ?Cu&les son al'unas (e las especiali3aciones comunesA
Esti os Arquitect!nicos
Flu/os (e Datos
&
Esti os Arquitect!nicos
Flujo de Datos
4-/eti+o. alcan3ar las cuali(a(es (e reuso , modificabilidad) Caracteri3a(o por +er al sistema como una serie (e transformaciones so-re pie3as sucesi+as (e entra(as (e (atos) 5os (atos in'resan al sistema , lue'o Bfluyen# a tra+>s (e las componentes :asta que son asi'na(os a al'Cn (estino $inal)
Diseo de SWBA - ISI - UTN - FRSF '
Ca(a componente tiene un con/unto (e entradas 0inputs2 , un con/unto (e salidas 0outputs2 Una componente lee $lu/o (e (atos en sus entradas , pro(uce $lu/os (e (atos so-re sus salidas) 5a trans$ormacin interna comien3a a pro(ucir sali(as antes (e que se consuma to(a la entra(a)
Diseo de SWBA - ISI - UTN - FRSF (
Pipes
,-
5os $iltros (e-en ser enti(a(es in(epen(ientes) No (e-en compartir esta(o con otros $iltros) 5os $iltros no conocen la i(enti(a( (e sus $iltros (e entra(a ni (e sali(a) 7ue(en restrin'ir qu> (e-e aparecer en las entra(as1 o 'aranti3ar qu> sal(r& por sus sali(as) 5a correctitu( (e la sali(a (e una re( pipe-an(-$ilter no (epen(e 0en 'eneral2 (el or(en en el cual los $iltros reali3an el procesamiento incremental)
Diseo de SWBA - ISI - UTN - FRSF ,,
Restrin'en la topolo'*a a una secuencia lineal Restrin'en la canti(a( (e (atos que pue(e resi(ir so-re un pipe Restrin'en que los (atos en los pipes sean (e un tipo -ien (e$ini(o
Diseo de SWBA - ISI - UTN - FRSF ,2
Pipe limitados
Pipes Tipados
Un $iltro procesa to(os sus (atos (e entra(a como una enti(a( simple)
,"
Anlisis Sintctico
Anlisis Semntico
7ermite compren(er el comportamiento (e entra(a F sali(a (e un sistema como la composicin (el comportamiento (e los $iltros in(i+i(uales) Soportan reuso Facilita el mantenimiento , crecimiento 7ermiten reali3ar an&lisis (e B(ea(loc;# , ren(imiento Soporte (e e/ecucin concurrente
,$
Frecuentemente tien(en a una or'ani3acin (e procesamiento -atc: No son -uenos para aplicaciones interacti+as) 7ue(en complicarse al tener que mantener (os $lu/os separa(os pero relaciona(os) 7ue(e ser necesario a're'ar a los $iltros con+ersin (e (atos (e entra(a , sali(a 7>r(i(a (e per$ormance e incremento (e comple/i(a( (e los $iltros)
Diseo de SWBA - ISI - UTN - FRSF ,%
Una solucin pipe-filter: Filtro Split: divide el stream de entrada. Filtros Upper y Lower: manipulan cada substring resultante en forma separada. Filtro erge: une nuevamente los substrings transformados.
Diseo de SWBA - ISI - UTN - FRSF ,&
Split
erge
Lower
,'
erge
Con!ig
Librer&as de "nput#Output
,(
Este (ia'rama $alla para capturar la composicin arquitectnica 6n(ica los m(ulos que est&n presentes en el sistema1 , qu> m(ulos se re$ieren a la implementacin) No muestra los Bpipes#
2-
5as relaciones (e interaccin est&n resalta(as) 5as (epen(encias (e implementacin son suprimi(as Claramente resalta el (ise@o arquitectnico
2,
22
Esti os Arquitect!nicos
5lama(a - Retorno
2"
Esti os Arquitect!nicos
"lamada#$etorno %&all#and#$eturn'
2#
7ara(i'ma (e pro'ramacin cl&sico) Objetivo. (escomponer un pro'rama en peque@as pie3as para alcan3ar la modificabilidad) 7ro'rama (escompuesto /er&rquicamente) Ia, un camino (e control simple. ca(a componente toma el control (e su pa(re , pasa este a sus :i/os)
Diseo de SWBA - ISI - UTN - FRSF 2$
Sub !
Sub "
Sub #
2%
Son sistemas Bpro'rama principal , su-rutinas# (escompuesto en partes que resi(en en computa(oras conecta(as por una re() Objetivo. incrementar la performance (istri-u,en(o la Bcomputacin# toman(o +enta/a (e mCltiples procesa(ores) 5a asi'nacin (e partes a procesa(ores es (i$eri(a :asta tiempo (e e/ecucin)
E/emplo
2'
5a representacin (e (atos , sus operaciones primiti+as est&n encapsuladas en un tipo (e (ato a-stracto u o-/eto) 4-/eti+o. alcan3ar la cali(a( (e modificabilidad) Componentes. 4-/etos o tipos (e (atos a-stractos Cone8in. 6nteractCan a tra+>s (e in+ocacin (e mensa/e o $unciones , proce(imientos 4-/etos (anager. responsa-le (e preser+ar la inte'ri(a( (e un recurso 0su representacin2)
Diseo de SWBA - ISI - UTN - FRSF "-
Objetos o anagers
4-/J
"n'ocacin a !unciones
4-/2 4-/
"2
"#
"$
4-/eti+o. modificabilidad , portabilidad) 4r'ani3a(o /er&rquicamente) 6n+ariante. Ca(a capa pro)ee un ser)icio a la capa superior , es cliente (e la capa in$erior) 5as capas internas (e-en estar +isi-les slo a las capas a(,acentes) 7ue(en e8portarse al'unas $unciones a capas no a(,acentes 5os conectores son (e$ini(os por los protocolos (e comunicacin entre capas)
Diseo de SWBA - ISI - UTN - FRSF "%
Siste.as de 4a+as
(asic Utilit$
Core
Diseo de SWBA - ISI - UTN - FRSF "&
Siste.as de 4a+as
9ene$icios. Soportan (ise@o -asa(o en ni+eles incrementales (e a-straccin) Soportan ampliaciones. los cam-ios en una capa solo a$ectan a las lin(antes) Soportan reuso. se pue(en cam-iar una capa mantenien(o el protocolo)
Diseo de SWBA - ISI - UTN - FRSF "'
Siste.as de 4a+as
Des+enta/as. *o todos los sistemas pueden ser estructurados como capas) 7ara me/or per$ormance pue(e requerirse (e alto acoplamiento entre las capas (e (i$erente ni+eles) 7ue(e ser mu, (i$*cil (eterminar los ni+eles correctos (e a-straccin)
Diseo de SWBA - ISI - UTN - FRSF "(
Siste.as de 4a+as
Llamadas a procedimientos
Usuarios
Diseo de SWBA - ISI - UTN - FRSF #-
Siste.as de 4a+as
E/emplos. 7rotocolos (e comunicacin (e capas 0mo(elo 4S62)
#,
)uman*computer inter!ace +xternal s$stems A,C !unctional areas- !lig.t manage* ment/sector management/ and so on0 Aeronautical classes A,C classes Support mec.anismscommunication/ time/ storage/ resource management/ and so on (indings Common utilities Low*le'el ser'ices
Diseo de SWBA - ISI - UTN - FRSF #2
Esti os Arquitect!nicos
Componentes 6n(epen(ientes
#"
Esti os Arquitect!nicos
&omponentes +ndependientes
4-/eti+o. alcan3ar modificabilidad (esacoplan(o porciones (e c&lculo) 7rocesos u o-/etos in(epen(ientes que se comunican a tra+>s (e mensa/es)
##
Idea. En +e3 (e in+ocar un proce(imiento (irectamente1 una componente pue(e anunciar 0o lan3ar2 uno o m&s e+entos 4tros componentes pue(en registrar inter,s so-re estos e+entos1 asocian(o un proce(imiento con el e+ento) Cuan(o un e+ento es anuncia(o1 el sistema in+oca to(os los proce(imientos re'istra(os para el e+ento) Un e+ento anuncia(o pro+oca la in)ocacin impl-cita (e proce(imientos)
Diseo de SWBA - ISI - UTN - FRSF #$
7u-lis:er
Suscri-er
Suscri-er
&omponentes. m(ulos con inter$aces a proce(imientos , e+entos) (dulos. re'istra proce(imientos con e+entos (el sistema 0Suscriben2) Estos proce(imientos son e/ecuta(os cuan(o se anuncian los e+entos en tiempo (e e/ecucin 0Publicitan2)
Diseo de SWBA - ISI - UTN - FRSF #&
Un entorno (e pro'ramacin) " .ditores , monitores de )ariables se re'istran para los e+entos (e brea/point (e un debbuger " Cuan(o un brea/point es alcan3a(o1 el debugger anuncia un e+ento) El sistema autom&ticamente in+oca los m>to(os (e las :erramientas re'istra(as) " 5os m>to(os pue(en u-icar la l*nea (e c(i'o $uente in+olucra(a 0e(itor21 o mostrar los +alores (e las +aria-les monitorea(as 0monitor2) " El (e--u'er simplemente anuncia un e+ento1 pero no sa-e que otras :erramientas est&n interesa(as en el e+ento1 o lo que :ar&n cuan(o el e+ento sea anuncia(o)
Diseo de SWBA - ISI - UTN - FRSF #'
#(
Entornos (e pro'ramacin para inte'rar :erramientas) Sistemas (e 9D para ase'urar restricciones (e inte'ri(a( 09D Acti+as1 tri''ers2) En U6 para separar presentacin (e (atos (e mane/o (e (atos) E(itores orienta(os a la sinta8is para soportar c:equeo (e sinta8is incremental)
Diseo de SWBA - ISI - UTN - FRSF $,
Cualquier componente pue(e ser intro(uci(a en un sistema simplemente re'istr&n(ola para e+entos (el sistema) 5os componentes pue(en ser cam-ia(os sin a$ectar la inter$ace para otros componentes)
Diseo de SWBA - ISI - UTN - FRSF $2
*rocesos 4o.unicantes
Un ser+i(or (e (atos Uno o m&s clientes u-ica(os en una re( Sincrnicas. ser+i(or (e+uel+e control , (atos Asincrnicas. solo (atos) El cliente tiene su propio Bt:rea(# (e control
Diseo de SWBA - ISI - UTN - FRSF $#
Esti os - E)e.+ os
E/emplo (e Aplicacin (e Estilos Arquitectnicos - 7ro'rama 7rincipal E/emplo (e Aplicacin (e Estilos Arquitectnicos - 6nte'racin Reacti+a
$$
Esti os Arquitect!nicos
Centra(o en Datos
$%
Esti os Arquitect!nicos
4-/eti+o. alcan3ar la integrabilidad de los datos) Almacenamiento (e (atos centrali3a(o que se comunica con muc:os clientes)
$&
Re+ositorios
Componentes. .structura de datos central. esta(o actual) Con/unto (e componentes independientes que operan so-re los (atos) 5a interaccin entre el repositorio , las componentes e8ternas +ar*a)
$'
Re+ositorios
Cate'or*as 0(epen(ien(o (el tipo (e control2. BD tradicional. si el tipo (e transaccin en una entra(a (ispara la seleccin (e procesos a e/ecutar) &aja *egra. si el esta(o actual (el repositorio central es el principal (ispara(or (e procesos)
$(
Re+ositorios
:s3
:s2
%-
Re+ositorios
Usa(os para sistemas que requieren interpretacin comple/a (e procesamiento (e se@ales. reconocimiento (e patrones , +o3) Entornos (e pro'ramacin con coleccin (e :erramientas que comparten un repositorio (e pro'ramas , $ra'mentos (e pro'ramas) Sistemas con acceso a (atos comparti(os con a'entes (>-ilmente acopla(os) 6nte'racin (e sistemas pre-e8istentes)
Diseo de SWBA - ISI - UTN - FRSF %,
:;quinas <irtua es
L6nt>rpretesL
6nclu,e el pseu(o-pro'rama a ser interpreta(o , la m&quina (e interpretacin El pseu(o-pro'rama inclu,e el pro'rama a ser interpreta(o , el esta(o (e la e/ecucin) 5a m&quina (e interpretacin inclu,e la (e$inicin (el int>rprete , el esta(o actual (e su e/ecucin)
%2
:;quinas <irtua es
%"
:;quinas <irtua es
Una <= est& construi(a so-re un sistema e8istente , pro+ee una a-straccin +irtual1 un con/unto (e atri-utos1 , operaciones) En la ma,or*a (e los casos1 separa un len'ua/e (e pro'ramacin o entorno (e aplicacin (e una plata$orma (e e/ecucin) Una <= pue(e +erse como similar a un so$t%are (e emulacin)
Diseo de SWBA - ISI - UTN - FRSF %#
Unix
Common language runtime 7CL%9 o! icroso!t 06+,
<a'a ;irtual
ac.ine
Diseo de SWBA - ISI - UTN - FRSF %$
Esti os Arquitect!nicos
No se encuentran en el cat&lo'o ori'inal1 pero son e8tensiones o +ariantes (e al'uno (e estos1 o nue+os estilos)
%%
Una aplicacin Cliente FSer+i(or caracteri3a(a por la e8istencia (e m&s (e un Llu'arL para u-icar componentes (e so$t%are1 ca(a uno (e los cuales pue(e tener (i$erentes entornos 0so$t%are , :ar(%are2 (e tra-a/o) Tres componentes. <(ulo (e So$t%are (e Cliente1 <(ulo Ser+icios Compuestos1 , <(ulo (e Ser+i(ores (e Acceso a los (atos)
Diseo de SWBA - ISI - UTN - FRSF %&
Mdulo del Cliente. to(o el mane/o (e inter$a3 , las partes (e las acti+i(a(es simples que pue(en ser replica(asD Mdulo Servicios. responsa-le (e mantener la l'ica principal , que es comparti(a por to(os los clientesD Mdulo de Servidor de Accesos a los datos. encar'a(o (e acce(er a los (atos propiamente (ic:os)
Diseo de SWBA - ISI - UTN - FRSF %'
So!tware Cliente
Ser'icios Compuestos
%(
5os productores (e (atos , los consumidores (e estos interactCan a tra+>s (e sus respecti+os ser+i(ores , clientes) El pro(uctor u-ica conteni(o en el ser+i(or1 , este conteni(o es (escripto en un N$ormatoN comCn con el cliente (el consumi(or) El consumi(or (e (atos acce(e a los (atos a tra+>s (e un cliente que recono3ca e interprete el L$ormatoL (e los (atos1 , se los pue(a mostrar al consumi(or en $orma a(ecua(a)
Diseo de SWBA - ISI - UTN - FRSF &-
Cliente
&,
&2
Esti os @etero/Aneos
7ocos sistemas son construi(os a partir (e un Cnico estilo) 5a ma,or*a son me3clas :etero'>neas (e estilos)
&"
Esti os @etero/Aneos
locali3a(os
simult&neos
/er&rquicos
Una componente (e un estilo pue(e a su +e3 estar reali3a(a por otro estilo)
Diseo de SWBA - ISI - UTN - FRSF &#
Esti os @etero/Aneos
&$
1ecturas Reco.endadas
7aper. BAn Introduction to Software Architecture 0introOso$tarc:)p($2 4. Case Studies 2131 &ase Study 34 +nstrumentation Soft5are111111111111111111111111 33 2161 &ase 64 7 Fresh 8ie5 of &ompilers 1111111111111111111111111111111 39 2121 &ase 24 7 "ayered Design 5ith Different Styles for the "ayers 111111111111111111111111111 1111111111111111111111111111111111111111 3: 21;1 &ase ;4 7n +nterpreter sing Different +dioms for the &omponents 11111111111111111111111111111111111111111 6< 2191 &ase 94 7 Blac/board =lobally $ecast as +nterpreter 1111 66
&%
Bib io/raf8a
GSo$t%are Arc:itecture1 7erspecti+es on an Emer'in' DisciplineH1 <ar, S:a% - Da+i( Parlan1 7rentice-Ial 0!QQR2) Cap) 2 M Arc:itectural St,les GSo$t%are Arc:itecture in 7racticeH1 5en 9ass1 7aul Clements1 Ric; Sa3man) A((ison-Tesle, 0!QQU2 GAn 6ntro(uction to So$t%are Arc:itectureH1 Da+i( Parlan1 <ar, S:a%1 Tec: Report1 !QQJ GSo$t%are Arc:itecture an( Desi'n 6lluminate(H1 Sai Vian1 C:on'%ei Wu1 Wian' Fu1 5i8in Tao1 Jones an( 9artlett 7u-lis:ers1 20!0
&&