Técnicas arquitectura del software - GitHub Pages
Transcript of Técnicas arquitectura del software - GitHub Pages
![Page 1: Técnicas arquitectura del software - GitHub Pages](https://reader031.fdocuments.net/reader031/viewer/2022012503/617daab9a62a28350400ae56/html5/thumbnails/1.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Técnicas arquitectura del software
Jose Emilio Labra GayoCurso 2020/2021
![Page 2: Técnicas arquitectura del software - GitHub Pages](https://reader031.fdocuments.net/reader031/viewer/2022012503/617daab9a62a28350400ae56/html5/thumbnails/2.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Arquitecto del softwareLa disciplina evolucionaArquitecto debe conocer:
Avances en técnicas de construcciónEstilos y patrones
Mejor herramienta = experiencia (no silver bullet)Experiencia propiaExperiencia de la comunidad
Arquitecto
![Page 3: Técnicas arquitectura del software - GitHub Pages](https://reader031.fdocuments.net/reader031/viewer/2022012503/617daab9a62a28350400ae56/html5/thumbnails/3.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Papel del arquitecto de software
TácticasEstilos
PatronesAnti-patrones
Arquitectode SoftwareExperiencia
de la comunidad
Stakeholders
Tecnología
Arquitectura
ObjectivosRequisitos funcionales
Atributos de calidad
RestriccionesPreocupaciones
![Page 4: Técnicas arquitectura del software - GitHub Pages](https://reader031.fdocuments.net/reader031/viewer/2022012503/617daab9a62a28350400ae56/html5/thumbnails/4.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Tácticas
Técnicas de diseño para alcanzar una respuesta a algunos atributos de calidad
Las tácticas se enfocan en la respuesta a un Atributode calidadPueden chocar con otros atributos de calidad
Las tácticas intentan controlar respuestas a estímulos
Táctica para controlarrespuestaEstímulo Respuesta
![Page 5: Técnicas arquitectura del software - GitHub Pages](https://reader031.fdocuments.net/reader031/viewer/2022012503/617daab9a62a28350400ae56/html5/thumbnails/5.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Tácticas dependen del atributo de calidad Disponibilidad
FalloFallo enmascarado o reparación realizada
ModificabilidadLlegan cambios Cambios realizados, testeados, y
desplegados en tiempo y presupuesto
RendimientoLlegan eventos Respuesta generada dentro de las
restricciones temporales
SeguridadAtaque El Sistema detecta, resite o se
recupera del ataque
TestabilidadFallos detectadosSe finaliza un
incremento
UsabilidadEl usuario recibe feedback y
asistencia apropiadosPetición del
usuario
![Page 6: Técnicas arquitectura del software - GitHub Pages](https://reader031.fdocuments.net/reader031/viewer/2022012503/617daab9a62a28350400ae56/html5/thumbnails/6.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
¿Dónde podemos encontrar tácticas?Propia experiencia del arquitectoExperiencia documentada de la comunidad
Libros, conferencias, blogs,...Las tácticas evolucionan con tiempo y tendencias
Libro "Software architecture in practice" contiene unalista de varias tácticas
http://www.ece.ubc.ca/~matei/EECE417/BASS/ch05lev1sec1.htmlhttps://www.cs.unb.ca/~wdu/cs6075w10/sa2.htm
![Page 7: Técnicas arquitectura del software - GitHub Pages](https://reader031.fdocuments.net/reader031/viewer/2022012503/617daab9a62a28350400ae56/html5/thumbnails/7.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Estilos arquitectónicos
Definen la forma general del sistemaContienen:
Elementos: Componentes que contienen funcionalidadRelaciones: Relaciones entre los elementosRestricciones: Limitan la integración entre elementosLista de atributos:
Ventajas/desventajas de un estilo
![Page 8: Técnicas arquitectura del software - GitHub Pages](https://reader031.fdocuments.net/reader031/viewer/2022012503/617daab9a62a28350400ae56/html5/thumbnails/8.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
¿Existen estilos puros?Estilos puros = idealizaciónEn práctica, los estilos puros se dan pocas vecesNormalmente, los sistemas se desvían de estilos
puros......o combinan varios estilos arquitectónicosEs importante comprender los estilos puros para:
Comprender pros/cons de un estiloValorar las consecuencias de desviarse del estilo
![Page 9: Técnicas arquitectura del software - GitHub Pages](https://reader031.fdocuments.net/reader031/viewer/2022012503/617daab9a62a28350400ae56/html5/thumbnails/9.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Patrón arquitectónicoSolución general y reutilizable a algún problema
recurrente que aparece en un contextoParámetro importante: problema
3 tipos:Estructurales: Tiempo de construcción
Ejemplo: LayersRuntime (comportamiento)
Ejemplo: Pipes & filtersDespliegue
Ejemplo: Cluster de balanceo de carga
![Page 10: Técnicas arquitectura del software - GitHub Pages](https://reader031.fdocuments.net/reader031/viewer/2022012503/617daab9a62a28350400ae56/html5/thumbnails/10.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Patrón vs EstiloPatrón = solución a un problema
Estilo = genéricoNo tiene que estar asociado a un problema
Estilo define la arquitectura general de unaaplicaciónNormalmente, una aplicación tiene un estilo
...pero puede tener varios patronesLos patrones aparecen en escalas diferentes
Alto nivel (patrones arquitectónicos)Diseño (patrones de diseño)Implementación (idiomas). . .
![Page 11: Técnicas arquitectura del software - GitHub Pages](https://reader031.fdocuments.net/reader031/viewer/2022012503/617daab9a62a28350400ae56/html5/thumbnails/11.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Patrón vs EstiloLos estilos, en general, son independientes entre síUn patrón puede relacionarse con otros patrones
Un patrón puede estar compuesto de varios patronesPueden crearse interacciones entre patrones
![Page 12: Técnicas arquitectura del software - GitHub Pages](https://reader031.fdocuments.net/reader031/viewer/2022012503/617daab9a62a28350400ae56/html5/thumbnails/12.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Lenguajes y catálogos de patrones
Catálogo de patronesUn conjunto de patrones sobre un asunto
No tiene porqué ser exhaustivoLenguaje de patrones
Un catálogo de patrones completo sobre un temaObjetivo: documentar todas las posibilidadesNormalmente incluyen relaciones entre patrones
Mapa gráfico
![Page 13: Técnicas arquitectura del software - GitHub Pages](https://reader031.fdocuments.net/reader031/viewer/2022012503/617daab9a62a28350400ae56/html5/thumbnails/13.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Ejemplo de lenguaje de patrones
Source: "SOA with REST" book
![Page 14: Técnicas arquitectura del software - GitHub Pages](https://reader031.fdocuments.net/reader031/viewer/2022012503/617daab9a62a28350400ae56/html5/thumbnails/14.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Construir vs reutilizarEn algunos dominios, reutilizar arquitecturas
existentes puede ser más eficienteArquitecturas de referenciaComponentes desarrollados externamente
Calidad/ámbito
Esfuerzo/Coste Tiempo
Producto
![Page 15: Técnicas arquitectura del software - GitHub Pages](https://reader031.fdocuments.net/reader031/viewer/2022012503/617daab9a62a28350400ae56/html5/thumbnails/15.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o Arquitecturas de referenciaPlanos que proporcionan
una estructura general para ciertos tipos de aplicacionesPueden contener varios
patronesPueden ser un estándar
de-facto en algunos dominios
Fuente: Microsoft Application Architecture Guide, 2nd Ed.
![Page 16: Técnicas arquitectura del software - GitHub Pages](https://reader031.fdocuments.net/reader031/viewer/2022012503/617daab9a62a28350400ae56/html5/thumbnails/16.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o Arquitecturas de software de dominios específicosCombinación de:
• Arquitectura de referencia para un dominio• Librería de componentes para dicha arquitectura• Método para elegir y configurar componentes
para trabajar dentro de una instancia de dicha arquitectura de referencia
Especializados para un dominio concretoEjemplos:
ADAGE, MetaH
![Page 17: Técnicas arquitectura del software - GitHub Pages](https://reader031.fdocuments.net/reader031/viewer/2022012503/617daab9a62a28350400ae56/html5/thumbnails/17.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Componentes desarrollados externamentePilas tecnológicas o familias
MEAN (Mongo,Express,Angular,Node), LAMP (Linux,Apache,MySQL,PHP), ...Productos
COTS: Commercial Off The SelfFOSS: Free Open Source Software
¡Cuidado con las licencias!Marcos de aplicación
Componentes de software reutilizablesPlataformas
Proporcionan infraestructura completa para construir y ejecutar aplicacionesExample: JEE, Google Cloud
![Page 18: Técnicas arquitectura del software - GitHub Pages](https://reader031.fdocuments.net/reader031/viewer/2022012503/617daab9a62a28350400ae56/html5/thumbnails/18.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o