Intoducción Arquitectura SW 1
-
Upload
carlos-mazo -
Category
Documents
-
view
221 -
download
0
Transcript of Intoducción Arquitectura SW 1
-
7/24/2019 Intoduccin Arquitectura SW 1
1/42
Arquitectura de SoftwareIngeniera de SistemasITM
Unidad 1. Introduccin
-
7/24/2019 Intoduccin Arquitectura SW 1
2/42
Introduccin
Es un conjunto de patrones que
proporcionan un marco de referencianecesario para guiar la construccin deun software.
Arquitectura de Software
a arquitectura del software
-
7/24/2019 Intoduccin Arquitectura SW 1
3/42
Introduccin
!ermite a los programadores" analistas # todo
el conjunto de desarrolladores del softwarecompartir una misma lnea de tra$ajo # cu$rirtodos los o$jeti%os # restricciones de laaplicacin.
Arquitectura de Software
a arquitectura del software
-
7/24/2019 Intoduccin Arquitectura SW 1
4/42
Introduccin
Es considerada el ni%el m&s alto en el dise'o
de la arquitectura de un sistema. !uesto queesta$lecen la estructura" funcionamiento einteraccin entre las partes del software.
Arquitectura de Software
a arquitectura del software
-
7/24/2019 Intoduccin Arquitectura SW 1
5/42
Introduccin
os patrones de dise'o de software
nacen de sus (omlogos patrones en laingeniera ci%il o arquitectura deedi)caciones.
*asado en este &m$ito presentare unejemplo" del que luego se desprender&con facilidad el concepto que
representa un patrn. Arquitectura de Software
!atrones en el proceso de dise'o del software
-
7/24/2019 Intoduccin Arquitectura SW 1
6/42
Introduccin
Si tenemos que construir una casa en
un lugar en el cual nie%a durante todoel a'o" una construccin tradicionaltendra el pro$lema de que el peso de lanie%e acumulada en el tec(o (ori+ontal
# paralelo al piso" sera tan grande quela derrum$ara.
Arquitectura de Software
Ejemplo de !atrn
-
7/24/2019 Intoduccin Arquitectura SW 1
7/42
Introduccin
E,isten %arias soluciones al pro$lema
pero la m&s optima # en la queseguramente estar&n pensando en estemomento es construir el tec(o de lacasa con una gran pendiente para que
la nie%e cada se deslice por la misma #termine en el piso de forma que nuncase acumule so$re nuestro tec(o.
Arquitectura de Software
Ejemplo de !atrn -continuacin/
-
7/24/2019 Intoduccin Arquitectura SW 1
8/42
Introduccin
Esa solucin en la que muc(os de ustedespensaron casi de forma autom&tica es unpatrn.
Arquitectura de Software
Ejemplo de !atrn -continuacin/
-
7/24/2019 Intoduccin Arquitectura SW 1
9/42
Introduccin
0$ser%emos adem&s que la solucin o
patrn se repite in)nidad de %eces sio$ser%amos un pue$lo donde nie%a" lo quenos dice que la solucin es reusa$le #compro$ada.
Arquitectura de Software
Ejemplo de !atrn -continuacin/
-
7/24/2019 Intoduccin Arquitectura SW 1
10/42
Introduccin
Un patrn de dise'o de software es unasolucin reusa$le # compro$ada a unpro$lema comn en el desarrollo desoftware.
Arquitectura de Software
23u4 es un patrn de dise'o del software5
-
7/24/2019 Intoduccin Arquitectura SW 1
11/42
Introduccin
En el desarrollo Software el patrn de
dise'o descri$e las clases # o$jetos que secomunicar&n entre s de manera quepuedan resol%er un pro$lema general dedise'o en un conte,to particular.
Arquitectura de Software
!atrones de dise'o en el desarrollo S6
-
7/24/2019 Intoduccin Arquitectura SW 1
12/42
Introduccin
En un conte,to inform&tico un patrn de
dise'o es similar a conceptos como$i$lioteca de clases" framewor7s" t4cnicas #(erramientas de refactori+acin oprogramacin e,trema.
Arquitectura de Software
!atrones de dise'o en el desarrollo S6
-
7/24/2019 Intoduccin Arquitectura SW 1
13/42
Introduccin
a clasi)cacin de los patrones de dise'o eneste conte,to atiende a dos caractersticascomo son8
Atendiendo a su propsito 9reacionales8 :esuel%en pro$lemas relati%os a la
creacin de o$jetos
Estructurales8 :esuel%en pro$lemas relati%os ala composicin de o$jetos
;e 9omportamiento8 :esuel%en pro$lemasrelati%os a la interaccin entre o$jetos
Arquitectura de Software
!atrones de dise'o en el desarrollo S6
-
7/24/2019 Intoduccin Arquitectura SW 1
14/42
Introduccin
a clasi)cacin de los patrones dedise'o en este conte,to atiende a dos
caractersticas como son8
Atendiendo a su &m$ito 9lases8 :elaciones est&ticas entre clases
0$jetos8 :elaciones din&micas entreo$jetos
Arquitectura de Software
!atrones de dise'o en el desarrollo S6
-
7/24/2019 Intoduccin Arquitectura SW 1
15/42
Introduccin
1. El nombre del patrn permite descri$ir"
en una o dos pala$ras" un pro$lema dedise'o junto con sus soluciones #consecuencias.
Al dar nom$re a un patrn inmediatamenteestamos incrementando nuestro %oca$ulariode dise'o" lo que nos permite dise'ar conma#or a$straccin.
Arquitectura de Software
Un patrn tiene cuatro elementos esenciales
-
7/24/2019 Intoduccin Arquitectura SW 1
16/42
Introduccin
-
7/24/2019 Intoduccin Arquitectura SW 1
17/42
Introduccin
>. a solucindescri$e los elementos que constitu#enel dise'o" sus relaciones" responsa$ilidades #
cola$oraciones. a solucin no descri$e un dise'o ouna implementacin en concreto" sino que unpatrn es m&s $ien como una plantilla que puedeaplicarse en muc(as situaciones diferentes.
El patrn proporciona una descripcin a$stracta de unpro$lema de dise'o # cmo lo resuel%e una disposicingeneral de elementos -en nuestro caso" clases #o$jetos/.
Arquitectura de Software
Un patrn tiene cuatro elementos esenciales
-
7/24/2019 Intoduccin Arquitectura SW 1
18/42
Introduccin
?. as consecuenciasson los resultados as comolas %entajas e incon%enientes de aplicar el
patrn. Aunque cuando se descri$en decisionesde dise'o muc(as %eces no re=ejan susconsecuencias" 4stas son fundamentales parae%aluar las alternati%as de dise'o # comprenderlos costes # $ene)cios de aplicar el patrn.
as consecuencias en el Software suelen referirse alequili$rio entre espacio # tiempo. Tam$i4n puedentratar cuestiones de lenguaje e implementacin.
Arquitectura de Software
Un patrn tiene cuatro elementos esenciales
-
7/24/2019 Intoduccin Arquitectura SW 1
19/42
Introduccin
Nombre: :etroalimentacin %isual de
na%egacin directa. Problema: El usuario tiene di)cultades
para acceder directamente a las %entanasdel sistema inform&tico # desconoce cual
de entre ellas es la %entana actual detra$ajo.
Principio de usabilidad:@uiar al usuario# dar el control de la interaccin al usuario.
Arquitectura de Software
Ejemplo de lo que podra construir un patrn de dise'o
-
7/24/2019 Intoduccin Arquitectura SW 1
20/42
Introduccin
Contexto: ;ada una gran cantidad deinformacin facilitar al usuario los medios parana%egar directamente entre las %entanas delsistema inform&tico.
Fuerza: El sistema de$e siempre mostrar lalista de %entanas na%ega$les.
Solucin: !ermitir al usuario seleccionardirectamente la %entana de la interfa+ #mostrar continuamente la %entana acti%a #desacti%as.
Arquitectura de Software
Ejemplo de lo que podra construir un patrn de dise'o
-
7/24/2019 Intoduccin Arquitectura SW 1
21/42
Introduccin
Consecuencias: El acceso directo a las
%entanas del sistema no solo $ene)cia lamanipulacin directa de ellas sino tam$i4nla manipulacin de los o$jetos que retienen#a que cada %entana es de)nida en t4rminosde sus o$jetos de interaccin -ejemplo8
iconos" tems de men" radio $otones/ loscuales permiten la adquisicin # larestitucin de informacin que requiere elusuario.
Arquitectura de Software
Ejemplo de lo que podra construir un patrn de dise'o
-
7/24/2019 Intoduccin Arquitectura SW 1
22/42
Introduccin
a indicacin del focus de una %entana es
una t4cnica frecuentemente utili+ada en laretroalimentacin de na%egacin directa.
Arquitectura de Software
Ejemplo de lo que podra construir un patrn de dise'o
-
7/24/2019 Intoduccin Arquitectura SW 1
23/42
Introduccin
;e esta peque'a introduccin %eamosun ejemplo real en el &m$ito del dise'ode software el patrn constructor o$uilder pattern.
Arquitectura de Software
Ejemplo de un patrn de dise'o del software
-
7/24/2019 Intoduccin Arquitectura SW 1
24/42
Introduccin
Problema que resuelve: 9omo (acer
para que un nico proceso deconstruccin sea capas de creardiferentes productos para que dic(oproceso nos a$straiga u oculte los
detalles constructi%os particulares decada producto.
Arquitectura de Software
!atrn *uilder !attern
-
7/24/2019 Intoduccin Arquitectura SW 1
25/42
Introduccin
;ado que las de)niciones a$stractasson m&s difciles de comprender"lle%aremos la de)nicin anterior a unejemplo concreto del mundo real para
lograr una ma#or claridad.
Arquitectura de Software
!atrn *uilder !attern
-
7/24/2019 Intoduccin Arquitectura SW 1
26/42
Introduccin
9omo (acer para que un nico proceso
de construccin" la secuencia deinstrucciones -*uildTope-/ *uildMedio-/*uild*ase-//" sea capas de creardiferentes productos como ser un
cuadro" un triangulo o un rect&ngulo"para que dic(o proceso nos a$straiga uoculte los detalles constructi%osparticulares de cada )gura geom4trica-producto/. Arquitectura de Software
!atrn *uilder !attern
-
7/24/2019 Intoduccin Arquitectura SW 1
27/42
Introduccin
Solucin: a solucin la ofrece el
patrn constructor o en ingles -$uilderpattern/" el mismo esta conformado poruna clase directora -;i$ujante;irector/que es el responsa$le del proceso de
construccin" es en ella donde seencuentra la secuencia de comandos*uildTope-/ *uildMedio-/ *uild*ase-/.
Arquitectura de Software
!atrn *uilder !attern
-
7/24/2019 Intoduccin Arquitectura SW 1
28/42
Introduccin
Esta clase directora -;i$ujante;irector/
opera utili+ando una clase a$stracta-@rap(ic*uilder/" en la cual seencuentran de)nidos los prototipos o)rmas de los m4todos *uildTope-/
*uildMedio-/ *uild*ase-/ pero no suimplementacin" dic(a implementacines responsa$ilidad de cada constructoro $uilder concreto.
Arquitectura de Software
!atrn *uilder !attern
-
7/24/2019 Intoduccin Arquitectura SW 1
29/42
Introduccin
!ara nuestro ejemplo" cada constructoro $uilder concreto" son las clases9uadrado*uilder" Triangulo*uilder #:ectangulo*uilder" estas clases
encapsulan los detalles deimplementacin particulares de cadaproducto.
Arquitectura de Software
!atrn *uilder !attern
-
7/24/2019 Intoduccin Arquitectura SW 1
30/42
Introduccin
El producto que queda construido
despu4s de la ejecucin del nicoproceso de construccin es un o$jeto dela clase @ra)co" podemos o$ser%ar unarelacin de agregacin que une las
clases @rap(ic*uilder # la clase @ra)co"esto se de$e a que la clase@rap(ic*uilder esta compuesta por uno$jeto del tipo @ra)co.
Arquitectura de Software
!atrn *uilder !attern
-
7/24/2019 Intoduccin Arquitectura SW 1
31/42
Introduccin
!ero como la destruccin del o$jeto deltipo @rap(ic*uilder no implicadestruccin del o$jeto @ra)co se tratade una relacin de agregacin # no de
composicin" esto se sim$oli+a con undiamante $lanco del lado de la claseagregada.
Arquitectura de Software
!atrn *uilder !attern
-
7/24/2019 Intoduccin Arquitectura SW 1
32/42
Introduccin
Arquitectura de Software
!atrn *uilder !attern B;iagrama de 9lases UMC
-
7/24/2019 Intoduccin Arquitectura SW 1
33/42
Introduccin
Se (an desarrollado diferentes formatos
segn las necesidades de cada dominio dedise'o" pero manteniendo su estructuraoriginal.
En la literatura podemos encontrardiferentes formatos para descri$ir un patrnsegn el ni%el de detalle con el que se quiera(acer la descripcin.
Arquitectura de Software
;ocumentacin de los patrones
-
7/24/2019 Intoduccin Arquitectura SW 1
34/42
Introduccin
a siguiente plantilla da una estructurauniforme a la informacin" (aciendo que lospatrones de dise'o sean m&s f&ciles deaprender" comparar # usar.
Arquitectura de Software
;ocumentacin de los patrones
-
7/24/2019 Intoduccin Arquitectura SW 1
35/42
Introduccin
Nombre del patrn y clasifcacin
El nom$re del patrn transmite sucintamentesu esencia. Un $uen nom$re es %ital" porquepasar& a formar parte de nuestro %oca$ulariode dise'o. a clasi)cacin del patrn re=eja el
esquema que %eremos en la siguiente unidadDos patrones de dise'o en el desarrollo desoftware.
Arquitectura de Software
;ocumentacin de los patrones
-
7/24/2019 Intoduccin Arquitectura SW 1
36/42
Introduccin
Propsito
Una frase $re%e que responde a las siguientescuestiones8
23u4 (ace este patrn de dise'o5
2En qu4 se $asa5
29u&l es el pro$lema concreto de dise'o queresuel%e5
Arquitectura de Software
;ocumentacin de los patrones
-
7/24/2019 Intoduccin Arquitectura SW 1
37/42
Introduccin
Tambin conocido como
0tros nom$res" si e,isten" por los que seconoce al patrn.
otivacin
Un escenario que ilustra un pro$lema de
dise'o # cmo las estructuras de clases #o$jetos del patrn resuel%en el pro$lema. Elescenario a#udar& a entender la descripcinque sigue.
Arquitectura de Software
;ocumentacin de los patrones
-
7/24/2019 Intoduccin Arquitectura SW 1
38/42
Introduccin
!plicabilidad
2En qu4 situaciones se puede aplicar el patrn de
dise'o5 23u4 ejemplos (a# de malos dise'os que elpatrn puede resol%er5 29mo se puede reconocerdic(as situaciones5
"structura
Una representacin gr&)ca de las clases del patrnusando una notacin $asada en la T4cnica deModelado de 0$jetos. Se (ace uso de diagramas deinteraccin para mostrar secuencias de peticiones #cola$oraciones entre o$jetos.
Arquitectura de Software
;ocumentacin de los patrones
-
7/24/2019 Intoduccin Arquitectura SW 1
39/42
Introduccin
Participantes
as clases # o$jetos participantes en el patrnde dise'o" junto con sus responsa$ilidades.
Colaboraciones
9mo cola$oran los participantes para lle%ar a
ca$o sus responsa$ilidades.
Arquitectura de Software
;ocumentacin de los patrones
-
7/24/2019 Intoduccin Arquitectura SW 1
40/42
Introduccin
Consecuencias
29mo consigue el patrn sus o$jeti%os529u&les son las %entajas e incon%enientes #los resultados de usar el patrn5 23u4aspectos de la estructura del sistema se
pueden modi)car de forma independiente5
Arquitectura de Software
;ocumentacin de los patrones
-
7/24/2019 Intoduccin Arquitectura SW 1
41/42
Introduccin
#mplementacin
29u&les son las di)cultades" trucos o t4cnicasque de$eramos tener en cuenta a la (ora deaplicar el patrn5 2Fa# cuestiones espec)casdel lenguaje5
Cdi$o de e%emploGragmentos de cdigo que muestran cmo sepuede implementar el patrn.
Arquitectura de Software
;ocumentacin de los patrones
-
7/24/2019 Intoduccin Arquitectura SW 1
42/42
Introduccin
&sos conocidos
Ejemplos del patrn en sistemas reales. Seinclu#en al menos dos ejemplos de diferentesdominios.
Patrones relacionados
23u4 patrones de dise'o est&n estrec(amenterelacionados con 4ste5 29u&les son lasprincipales diferencias5 29on qu4 otrospatrones de$era usarse5
;ocumentacin de los patrones