técnicas arquitectura del software - github pages
Post on 31-Oct-2021
20 Views
Preview:
TRANSCRIPT
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
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
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
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
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
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
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
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
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
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). . .
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
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
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
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
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.
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
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
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
top related