Arquitectura
MBAPilarStronguilLeturia
Agenda
Visinypropsitosdela
Arquitectura
Documentacinde
laArquitectura
Vistasdela
Arquitectura
1
21/11/2013
VISINYPROPSITOSDELA
ARQUITECTURA
Visindelaarquitectura
Dosrasgosencomnquetienenlosproyectos
exitososson:
Laexistenciadeunaconsistentevisindela
arquitectura.
Laaplicacindeunciclodevidaiterativoeincremental
bienadministrado.
Lavisindelaarquitecturaesquedebesersimple.
Lavisindelaarquitecturaesquedebesersimple
Elcomportamientocomndebellevarseacaboatravs
deabstraccionesymecanismoscomunes.
2
21/11/2013
Roldelaarquitectura
Propsitosdelaarquitectura
Desarrollarsoftwarequesatisfagaunconjuntodadode
requisitosfuncionales.
q
Alcanzarlosrequisitosnofuncionalesexplcitoso
implcitos(atributosdecalidad)paraeldesempeoyuso
derecursos.
Estarconformealaslimitacionesdelambiente.
Satisfacerrestriccionessobreelprocesodediseoensi
mismo(tiempo,costoydisponibilidaddeherramientas)
Balancearunconjuntoderequisitosque
compitenentresi
3
21/11/2013
Arquitecturayatributosdecalidad
Usabilidad
Disponibilidad
Desempeo
Seguridad
Facilidaddemodificacin
Facilidaddeprueba
Facilidaddeconstruccin
Extensibilidad
Facilidaddeentendimiento(Understandability)
Portabilidad
Escalabilidad
Medidasdeconfiabilidad
Arquitecturayatributosdecalidad
Sedeterminanculessonlosrelevantes
g
mediantepreguntas.
Eseldesempeocrtico?
Laarquitecturadebelocalizarlasoperacionescrticas
dentrodeunnmeroreducidodesubsistemascon
pocacomunicacin.
Eslaseguridadcrtica?
Sesugiereutilizarunaestructuradecapas,conlos
recursosmascrticosprotegidosporlascapasmas
internasyconaltoniveldevalidacindelaseguridad
aplicadoaestascapas.
4
21/11/2013
Arquitecturayatributosdecalidad
Esladisponibilidadcrtica?
Laarq
Laarquitecturadebetenercomponentesredundantes
itect radebetenercomponentesred ndantes
detalformaqueseaposiblereemplazaryactualizarlos
componentessindetenerelsistema.
Eslamantenibilidad crtica?
Laarquitecturadebetenercomponentesdegranofino
quepuedancambiarseconfacilidad.
Losproductoresdedatosdebenestarseparadosdelos
consumidores ylasestructurasdedatoscompartidas
debenevitarse.
Unmodelodecapassueleserideal
Arquitecturayatributosdecalidad
Laarquitecturaescrticaparamuchascualidadesde
intersdelsistema.
Esascualidadespuedenserdiseadasyevaluadasaniveldela
arquitectura.
Laarquitecturaporsimismanoescapazdealcanzaresas
cualidades.
Proveelasbasesparaalcanzarlacalidad,perohayqueconsiderar
losdetalles.
Ellogrodelosatributosdecalidadsedebenconsiderara
travsdeldiseo,implementacinyladistribucindel
sistema.
5
21/11/2013
Arquitecturayatributosdecalidad
Atributode
Aspecto Ejemplo
calidad
Dediseo Hacerquelainterfazseafcildeusar.
Usabilidad Hacerqueelusuarioseacapazdecancelar
Dearquitectura
operacionesorevertirlas.
Dediseo Estilodelcdigo
Modificabilidad
Dearquitectura Comoesdivididalafuncionalidad
Dediseo Seleccindealgoritmo
Desempeo Funcionalidadyrecursosasignadosacada
Dearquitectura
mdulo
Arquitecturayfuncionalidad
Lossistemassonfrecuentementerediseados
noporquelafuncionalidadseadeficiente,sino
porque:
Sondifcilesdemanteneroescalar
Nosonportables
Sonlentos
Nogarantizanlaseguridad
Funcionalidadyatributosdecalidadson
dospartesdeuntodo.
6
21/11/2013
Arquitecturaycapas
Lasbuenasarquitecturasdeaplicacionesde
negociosseconstruyenencapasdeabstraccin
definidascorrectamente:
Cadacaparepresentaunaabstraccincoherente.
Cadacapatieneunainterfazdefinidaycontrolada.
Cadacapaseconstruyesobrefacilidadesdefinidasy
controladasenbajosnivelesdeabstraccin.
j
Hayunaclaraseparacinentrelainterfazyla
implementacindecadacapa.
Loscambiosquesehaganenlaimplementacindela
capanodebenviolarlassuposicioneshechasporlos
clientesdelamisma.
Capas
Unacapa(layer)proporcionaunaparticin
l i d i t
lgicadeunsistema/subsistemaenun
/ b i t
nmerodeconjuntosdeelementoscon
ciertasreglasde:
Comodebendarselasrelacionesentrecapas
p
Dependencia
Conelresultadodequeelsistematienebajo
acoplamientoyporlotantoesmsfcilsu
mantenimiento.
7
21/11/2013
Capas
Relaciones
Usopermitido(Allowedtouse)
Estableceunajerarquadecapas.
Losmdulosdeunacapanopuedenutilizar
arbitrariamentelosdeunacapasuperior.
Reglasdeuso:nicamenteelnivelinmediatamente
inferior,ocualquiernivelinferior,etc.
Caractersticas
Reusabilidad,portabilidadytoleranciaafallas
Capasdeunabuenaarquitectura
8
21/11/2013
Capasdeunabuenaarquitectura
DOCUMENTACINDELA
ARQUITECTURA
9
21/11/2013
Utilidaddeladocumentacindela
arquitectura
Paratenerinformacin:
Los
Losuficientementeabstracta
ficientementeabstracta
paraquenuevosmiembros
delequipodedesarrollo(y
stakeholders)puedan
entenderlaconfacilidad.
Losuficientementedetallada,
amododebosquejo parala
amododebosquejo,parala
construccin.
Suficiente,comobasede
anlisis.
Usosconcretosdeladocumentacin
Paraeducacinyentrenamiento.
Sirveparaintroduciradistintaspersonasenlos
conceptosbsicosdelsistema.
Comovehculodecomunicacinentretodos
losstakeholders.
Sirvecomobasedeanlisisdelsistema.
Eldocumentodebeestarorientadoalos
diferentesgruposdeanlisis:rendimiento,
diseo,comunicacin.
10
21/11/2013
Elementosdeladocumentacin
Interfaces
Unainterfazesunlmiteatravs
delcualdoselementospueden
comunicarseeinteractuar.
Mdulo:
Esunaunidaddeimplementacin
nodetiempodeejecucin.
Loselementosdeunmduloestn
altamentecohesionados. Fuente:http://www.bredemeyer.com/
Componente:
Esunaunidaddetiempode
ejecucin.
Elementosdeladocumentacin
Tiposdevistas
Untipodevistadefinelostiposdeelementosy
tiposderelacionesusadasparadescribirla
arquitecturadesoftwaredesdeunaperspectiva
enparticular.
11
21/11/2013
Tiposdevistasarquitectnicas
Vistasmodulares
Muestralaestructurade
mdulos.
Vistasde
componentes&conectores
(C&C)
Muestralaestructuradelas
unidadesqueseestn
procesandoenunsistemaen
ejecucin
ejecucin.
Vistasdeasignaciones
Fuente:http://www.bredemeyer.com/howto.htm
Muestralasrelacionesentreel
softwareylosentornosde
desarrolloyejecucin
Elementosdeladocumentacin
Estilos
SSonesquemasespecializadospertenecientesa
i li d t i t
untipodevistaconcreto.
Definenunaseriederestriccionesalostiposde
elementosyrelacionesdeunavistaparticular.
Laarquitecturadeunsistemaesta
compuestaporvistasconcretas
pertenecientesamltiplesestilos.
12
21/11/2013
Tiposdevistasyestilos
Tipodevista Estilo
Descomposicin
Uso
Md l
Mdulo Generalizacin
Capas
CaerayFiltro(PipesFilters)
Tiposde Componentey Datoscompartidos
vistasy Conector Publicarsuscribir
estilos Clienteservidor
Peertopeer
P
Procesosquesecomunican
i
Despliegue
Asignacin Implementacin
Asignacindetareas
Arquitecturayvistas
Vistas
Unavistaesunarepresentacinfsicadeun
p
conjuntodeelementosdelsistemaylas
relacionesasociadasaellos
Fuente:CLEMENTS,Paul.DocumentingSoftwareArchitectures:ViewsandBeyond
13
21/11/2013
Cmosedocumentala
arquitectura?
Existeundocumentodelaarquitectura.
S
Seconsideraunaproximandode100pginaspara
id i d d i
sistemasgrandes.
Estedocumentoincluye:
Undescripcintextualdelafilosofadelaarquitectura
(lasvistas)ylasclavesdeconduccinatravsde
requerimientos.
Concesioneshechasoalternativasconsideradas.
Concesioneshechasoalternati asconsideradas
Vistasdealtoniveldediferentesaspectosdelsoftware.
Cmosedocumentala
arquitectura?
....Estedocumentoincluye:
Escenariosdearquitecturaespecfica.
Mecanismosclave.
Patronesdearquitectura
Unpatrndearquitecturadesoftwareesunesquemagenrico
probadoparasolucionarunproblemaparticularrecurrente
quesurgeenunciertocontexto.
Esteesquemaseespecificadescribiendolascomponentes,con
Esteesquemaseespecificadescribiendolascomponentes con
susresponsabilidades,relaciones,ylasformasenque
colaboran.
14
21/11/2013
Documentodearquitecturayvistas
Fuente:CLEMENTS,Paul.DocumentingSoftwareArchitectures:ViewsandBeyond
Quindesarrollaeldocumento?
Unpequeoeexperimentadoequipode
arquitectos conducidoporunjefe se
arquitectos,conducidoporunjefe,se
responsabilizapor:
Definirymantenerlaintegridaddelaarquitecturadel
sistema.
Aprobarloscambiossobrelospaquetesdeinterfaces.
g p y
Evaluarlosriesgosdelproyecto.
Proponerelordenycontenidodecadaiteracin.
15
21/11/2013
Quindesarrollaeldocumento?
Fase de
Fase de Construccin
El b
Elaboracin
i Team de la Arquitectura
Arquitecto
Team de la Grupo de soporte
Arquitectura
Team de desarrollo 1
Arquitecto Diseador gua
Diseadores guas. Ingenieros de aplicacin
Desarroladores de
Team de desarrollo 1
infraestructura Diseador gua
g
Ingenieros de aplicacin
p
.
En la elaboracin los miembros del equipo se dedican
. al
100% a disear la arquitectura. .
En la construccin los miembros se convierten en
diseadores guas para kis equipos de desarrollo y soporte a
la arquitectura a tiempo parcial.
Beneficios
Entregables
DocumentodelaArquitectura
q
Partesdeldiseodebajoniveldelos
diagramas.
Guasdeprogramacinydiseo.
Elementosdelplandeversiones.
Conunabuenaarquitecturaunequipopromedio
dedesarrolladorespuedetenerxito.
Conunaarquitecturadbil,nielgrupomas
expertodedesarrolladorespuedetenerxito.
16
21/11/2013
ELMODELO4+1
Elmodelo4+1
FuecreadoporPhilippeKrutchen
Elmodelo4+1describelaarquitecturadel
softwareusandocincovistasconcurrentes.
17
21/11/2013
LaVista4+1delModelo
Vista Lgica
g Vista de
Desarrollo
Funcionalidad Admin. de Software,
Reuso y Portabilidad
Vista de Ingenieros
Usuarios
Finales Casos de Uso de Software
Comprensin y Uso
Unaarquitecturarequierede
mltiplesvistas
DeacuerdoaKrutchen,paradescribiruna
arquitecturaserequierede4vistas+1:
Vista Descripcin
Lgica Proporcionaunafiguraestticadelasclasesprincipalesysus
relaciones.
Desarrollo Muestracomoelcdigoesorganizadoenpaquetes,librerasyel
usodesoftwarecomercial COTS(commercial offtheshelf).
Proceso Muestralosprocesosytareasdelsistemaenejecucin.Tambin se
lellamavistadeimplementacin
Despliegue Muestralosprocesadores,dispositivosyenlacesenelambiente
operativo.
18
21/11/2013
Unaarquitecturarequierede
mltiplesvistas
Yfinalmenteel+1eselescenariodelmodelo
decasosdeusoqueexplicacomolasotras
vistaspuedenfuncionarjuntas.
Vistasyperspectivas
Perspectivasdiferentesparadiferentes
funcionarios.
Usuarios:Finales,Clientes,AdministradordelProyecto.
Desarrolladores:Ingenierodesistemas,programador,
arquitectoytester.
Perspectivasmltiplesrequierendevistas
mltiples.
LLosdiagramasdeclasesnomuestrancomoelsistema
di g d l t l i t
sevinculaconelhardware.
19
21/11/2013
LAVISTALGICA
Vistalgica
LaVistalgica(logical view)delaarquitectura
di ig l
dirigelosrequerimientosfuncionalesdelsistema.
i i t f i l d l i t
Estoses,loqueelsistemadebeproporcionaren
trminosdeserviciosparasususuarios.
Proporcionaunafiguraestticadelasclases
principalesydesusrelaciones.
Secapturaenundiagramadepaquetesque
p g p q q
contieneclasesyrelacionesquerepresentanlas
abstraccionesclavedelsistema.
20
21/11/2013
Paquetesglobales
Sonpaquetesconfuncionesquesonusadas
p
porvariasdelasclasesendesarrollo.
Foundation classes
Conjutos (Sets),Listas(lists),Colas(queues),etc.
Clasesdesoporteaerrores(Errorhandling classes)
Foundation
Classes
global
Dependenciaentrepaquetes
Ladependenciaentrepaquetestienen
implicancias:
Cadavezquesehaceuncambioenelpaquetedel
proveedor,elpaquetedelclientedebeserrecompilado
yvueltoaprobar.
Elpaquetedelclientenopuedeserreusado
independientementeporquedependedelpaquetedel
proveedor.
Paquete Paquete
Cliente Proveedor
21
21/11/2013
Dependenciaentrepaquetes
Esdeseablequelajerarquadepaquetessea
acclica.
Estosignificaqueladependenciacirculardebeser
evitable
EstasedacuandounpaqueteAusaelBqueasuvez
usaalpaqueteA.
EstadependenciaimplicaqueelpaqueteAyelBdeben
sertratadoscomounpaquetenico.
sertratadoscomounpaquetenico
Crculosmasampliosdebenserigualmenteevitados.
Estasdependenciassepuedenromperdividiendo
unodelospaquetesendosmaspequeos.
Ejemplodedependenciacircular
Interfaces Business
Rules
Incoming Business
Interfaces Rules
Outgoing
Interfaces
22
21/11/2013
Vistalgica
Enlavistalgicava:
Eldiagramadecapas
Eldiagramade
subsistemas,siaplica
Mslasdescripcionesde
cadaunodeestos
elementos.
Fuente:http://www.bredemeyer.com/howto.htm
VISTADEDESARROLLO
23
21/11/2013
Vistadedesarrollo
Lavistadedesarrolloestrelacionadacon
l
laorganizacindelosmdulosdelsoftware
i i d l d l d l ft
dentrodelambientededesarrollo.
Vistadedesarrollo
Losdiagramasdedesarrollosediseanpara
mostrarlospaquetesycomponentesque
conformanelsistemaendesarrollo.
Muestralaasignacindeclasesacomponentes.
Muestralaasignacindecomponentesapaquetes.
Lospaquetesseorganizanencapasjerrquicas
dondecadacapatieneunainterfazbiendefinida
dondecadacapatieneunainterfazbiendefinida.
24
21/11/2013
Quesuncomponente?
Uncomponenteesunaunidaddecdigo
f
fuentequesirvecomounbloquede
t i bl d
construccinparalaestructurafsicadel
sistema.
Losestereotipossirvenparaespecificara
lasdiferentestiposdecomponentes.
p p
Ejemplos:exe,dll,main programs,headers,
modules,forms.
Estovaradependiendodelambientede
desarrollo.
Quesuncomponente?
Hayqueagruparclasesencomponentessi
ti
tienenunafuncincooperativaosi
f i ti i
necesitanestarmuyprximasparaquela
implementacinseaeficiente.
Notacindeuncomponente:
Nombre del
Componente
25
21/11/2013
Diagramadecomponentes
Undiagramadecomponentesmuestralaasignacinde
clasesyobjetosacomponentesdeimplementaciny
t bi d
tambinsusdependenciasdecompilacin.
d i d il i
Name 1 Name 2
Name 4
Name 5
Name 3
Diagramadecomponentes
Serequiereunnombreparacadacomponente;
p
estenombretpicamentedenotaunnombre
simpleparaelcorrespondientearchivofsicoenel
espaciodetrabajodedesarrollo.
Muestranelmapeodelasclasesconlos
componentesimplementados
Sonutilizadosporelresponsabledecompilarel
sistema
Describenenquordenhandesercompiladoslos
componentes.
26
21/11/2013
Paquetesenlavistadedesarrollo
Enlavistadedesarrollounpaqueteesuna
coleccindecomponentes,dondealgunos
l i d t d d l
sonvisiblesuocultosaotros.
Unpaqueteagrupacomponentesqueestn
lgicamenterelacionados.
Paquetesenlavistadedesarrollo
Cadacomponentedelsistemadebeviviren
unpaquetenicooenelnivelmasaltodel
t i l i l lt d l
sistema.
Notacin:
Nombre Paquete
27
21/11/2013
Diagramadedesarrolloprincipal
Undiagramadedesarrolloprincipalesunafamilia
depaquetesconectadosporenlacesdirectosque
p q p q
representandependencias.
Ejemplo:
MFC Interfaz
Usuario de
Matrcula
Sistema de
Matrcula
Correspondenciaconlavista
lgica
Engeneral,unpaquetedelavistalgica
correspondedirectamenteconunpaquetedela
vistadedesarrollo.
Noobstantelasestructuraslgicayfsicapueden
variardeacuerdoalassiguientesrazones:
Lospaquetesdelavistalgicasefusionanpara
conservaralosobjetosconunacomunicacinestrecha
paralaimplementacin.
Lospaquetesdelavistadedesarrollosonadicionados
paraimplementarfuncionalidaddebajonivel(no
representadaenelanlisis).
28
21/11/2013
Correspondenciaentrepaquetes
dediferentesvistas
Registration Registration
System System
VISTADELPROCESO
29
21/11/2013
Vistadelproceso
Lavistadelprocesoseconcentraenla
descomposicindelprocesoentiempode
ejecucin.
Eldiagramadecomponentesseactualizapara
mostrarlaasignacindecomponentesaprocesos.
Lavistadeprocesosimplicaelcumplimientode
ciertosatributosdecalidadcomo:disponibilidad,
fi bilid d di i
fiabilidad,rendimiento,administraciny
d i i i
sincronizacindelsistema.
Quesunproceso?
Unprocesoeslaejecucindeunhilode
controlenunprogramaOOosistema.
t l OO i t
Unsistemapuededescomponerseenmltiples
procesosohilosdecontrol.
30
21/11/2013
Componentesdelproceso
Losejecutablesysuslibrerasasociadascon
representadascomocomponentes.
Package specification (DLL)
Task specification (EXE)
EnalgunasimplementacionesdelUMLpueden
adoptardiferentesformas.
Package specification (DLL)
Task Specification (EXE)
Ejemplosdeprocesos
Curriculum.exe Registration.exe
31
21/11/2013
Diagramadecomponentes
orientadoalproceso
Conta.exe Matricula.exe
Sistema
Contabilidad
Usuarios
Cursos
Agentes.dll
Curso Oferta de
Cursos
Diagramadeimplementacin
Undiagramadeimplementacindebe
responderalapregunta:
d l t
Simaanadeboimplementarelsistemaen
uncliente,qupaquetesdebollevar?
Cadaelementodeldiagramadebeestar
descritodemaneraqueseentiendasu
relacinconlavistalgica.
32
21/11/2013
Diagramadeimplementacin
VISTAFSICAODEDESPLIEGUE
33
21/11/2013
Vistafsicaodedespliegue
Lavistadeldesplieguevinculacomponentesa
nodosdeprocesamiento
nodosdeprocesamiento.
Atributosdecalidadcomorendimientoy
toleranciaalasfallassontomadosencuenta.
Losdiagramasdedesplieguesoncreadospara
mostrarlosdiferentesnodos(procesadoresy
dispositivos)enelsistema.
dispositivos)enelsistema
Tambinmuestralaasignacindecomponentesa
dichosnodos
Tambinmuestralostiposdeenlacefsicosy
protocolosdecomunicacinusado.
Eldiagramadedespliegue
Muestraladistribucinfsicadelos
componentesennodoslocalesyremotos
delared
Presentalosdistintoscomponentesdeuna
arquitecturaentrescapasfsicas(3Tier)
Servidordedatos
Servidordeaplicaciones
Cliente
34
21/11/2013
Notacionesdeldiagramade
despliegue
Unnodoesunobjetofsicoentiempode
ejecucinquerepresentarecursosde
computacionales.
Unconexinindicacomunicacin,usualmente
significaenlacesdehardware.
etiqueta
nombre
nodo conexin
Diagramadedespliegue
Estediagramamuestradosnodosde
procesamientoydedispositivosquese
comunican.
Registration Database
System
Dorm Library
<<device>>
Main <<device>>
Building
<<device>>
35
21/11/2013
Desplieguedeloscomponentes
Losprocesosycomponentessonasignadosa
procesadores
Laasignacinpuedeserdinmica
Losprocesosdebenejecutarseenmquinas
Notacin:
Nombre
del
Procesador
Diagramadedespliegue
36
21/11/2013
Diagramadedespliegue
(vistadelared)
Diagramadedespliegue
37
21/11/2013
Diagramade
despliegue
Diagramadedespliegue
38
21/11/2013
Consideracionesespeciales
Alvincularpaquetesdedesarrolloconprocesos
ejecutableshayquetomarencuentaque:
Esteprocesoinvolucralacomprensindelatopologa
delsistemaysusprioridades:
Arquitecturadelprocesador,velocidadycapacidad.
Conservarlasasociacionesdeclasesjuntasparaminimizarla
comunicacininterprocesos(IPC)
EstrategiaIPC cliente/servidoruotra?
Tcnicasdedistribucindeprocesos.
Sedeberesolverpuntosrelacionadosconmltiples
procesadoresosistemasdistribuidosduranteeldiseo.
Consideracionesespeciales
Alvincularprocesosejecutablesalhardware
Losprocesosdebenserasignadosadispositi
Losprocesosdebenserasignadosadispositivosde
osde
hardwareparasuejecucin.
Hayquetomarencuentaaspectoscomo:
Tiempoderespuestaydepuestaenmarchadelsistema.
Anchodebandadecomunicacinysuscapacidad.
Medioambientedelhardwarerequerido.
Necesidadesdeprocesamientodistribuido.
N id d d i t di t ib id
Sobrecargaobalancedelprocesadorenunsistemadistribuido.
Toleranciaafallas.
...
39
21/11/2013
VISTADELOSCASOSDEUSO
Vistadecasosdeuso
Loscasosdeusosonlosconductoresdel
di d l
diseodelaarquitectura.
it t
Sonlasabstraccionesdelargosycomplejos
requerimientos.
Permitenidentificarinterfacescrticas.
Fuerzanalosdiseadoresaconcentrarseen
puntosconcretos.
40
21/11/2013
Lavista4+1ydiagramasdelUML
Logical View Component View
Class diagrams,
Component diagrams
Sequence diagrams
Use Case
View
Use Case diagrams,
Sequence diagrams
Conclusiones
Laarquitectura4+1esunesquemaquecubre
aspectosdeldesarrollodesoftwareatravsde4
vistasespecficasorientadasadistintosmiembros
deunteamdelproyectoyunavistamsque
conducetodoelproceso.
Buenasarquitecturaspropicianaplicaciones
exitosas.
41
21/11/2013
Referenciasbibliogrficas
CLEMENTS,Paul.DocumentingSoftware
A hit t
Architectures:ViewsandBeyond
Vi dB d
BREDEMEYERCONSULTING,Software
Architecting.Disponibleen:
http://www.bredemeyer.com/howto.htm
KRUCHTEN,Philippe.Planos
KRUCHTEN Philippe Planos
Arquitectnicos:ElModelode4+1Vistas
delaArquitecturadelSoftware.pdf
42