Introducción al curso
Introducción al curso de Profesional de Arquitectura de Software
Atributos de calidad
Definición
Atributos: Idoneidad funcional
Atributos: Eficiencia de ejecución
Atributos: Compatibilidad
Atributos: Usabilidad
Atributos: Confiabilidad
Atributos: Seguridad
Atributos: Mantenibilidad
Atributos: Portabilidad
Tensiones entre atributos
Analizando PlatziServicios
Patrones de arquitectura
Patrones monolíticos vs distribuidos
Patrones: Modelo Vista Controlador
Patrones: Capas
Patrones: Orientado a eventos / Provisión de eventos.
Patrones: Microkernel - Plug-ins
Patrones: Comparte-nada
Patrones: Microservicios
Patrones: CQRS
Patrones: Hexagonal - Puertos y adaptadores
Patrones: Diseño orientado al dominio
Combinando patrones de arquitectura
Analizando nuevamente PlatziServicios
Diseño de una arquitectura
Pararse en hombros de gigantes
Herramientas y partes de un diseño: Tipos de conectores
Conectores: Llamado asincrónico / sincrónico. Modelo Cliente servidor.
Conectores: Enrutador, difusión
Conectores: Pizarra, repositorio, colas, modelo PUBSUB
Escenarios y tácticas
Escenarios: Disponibilidad, detección, reparación
Escenarios: Reintroducción y prevención
Escenarios: Mantenibilidad
Escenarios: Prevenir efectos dominó y diferir enlace
Escenarios: Eficiencia de ejecución
Escenarios: Seguridad
Escenarios: Capacidad de prueba
Escenarios: Usabilidad
Validar las decisiones de diseño: Arquitectura en evolución
Último análisis a PlatziServicios
Modelado y documentación de arquitectura
Cómo comunicar la arquitectura: Vistas y Puntos de vista
Documentación vs implementación
Conclusiones del curso
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Aportes 8
Preguntas 2
Los Estilos de Arquitectura son Modelos, módulos, componentes conectores, restricciones, etc. Que nos permiten tener una guía de como aplicar el desarrollo del software y sobretodo como hacerlo a la hora de programar.
La fuente de la verdad siempre será el código Entonces queda a nuestro criterios basarnos en estrategias para poder mantener este equilibrio con nuestra arquitectura.
Modelodo Ad Hoc: Sabemos como es la arquitectura, sin embargo esta no se ha establecido programado.
Modelar solo arquitecturas de alto nivel: Modelar estar arquitectura tienden a ser mas permisivos durante el tiempo y son más baratos.
Actualizar el modelo a medida de que se programa.
“Esencialmente, todo modelo es incorrecto. Pero algunos son útiles.”
Empirical Model-Building and Response Surfaces (George Box, 1987)
El arquitecto va a trabajar con diferentes personas para garantizar que la arquitectura se ejecute correctamente:
La “fuente de la verdad” va a ser el código y no el documento de arquitectura. Se deben buscar estrategias para sincronizar el estado actual del código con el documento de arquitectura.
Las posibles estrategias son las siguientes:
Modelo de Arquitectura:
⭐️⭐️⭐️
Se compone de elementos tales como módulos, componentes, conetores, restricciones, estilo, patrones, atributos de calidad.
🤖
Código fuente:
Hace referencia a paquetes, clases, interfaces, métodos, funciones, parámetros, tipos.
🤖
La “fuente de la verdad” va a ser el código y no el documento de arquitectura. Se deben buscar estrategias para sincronizar el estado actual del código con el documento de arquitectura.
🤖
Las posibles estrategias son las siguientes:
-Ignorar la divergencia:
Aplica cuando el equipo de trabajo es pequeño y mientras todos conozcan la difernecia entre el modelo de la arquitecura y la implementación consiste en mantener el documento de arquitectura tal y como se encuentra concebido, sabiendo que es lo que hace falta completar y que está en el código fuente.
-Modelado Ad-hoc:
Se tiene una idea de la diferencia entre el modelado y el código fuente, de tal forma que se puede enunciar el modelo de arquitectura a pesar de que no se encuentra en el documento.
-Modelos de alto nivel:
Se puede seguir modelando la arquitectura con modelos de alto nivel que tienden a cambiar menos y por ende, son más baratos.
-Sincronización en hitos del ciclo de vida:
Consiste en actualizar el modelo de arquitectura en algún punto del ciclo de vida de la aplicación. Permite versionar el modelo de arquitectura y saber en cada momento del proyecto cual era el estado del modelo de arquitectura.
-Sincronizar en una crisis:
Actualizar el modelo de arquitectura cuando dentro del desarrollo, el codigo fuente riñe contra alguna definición plasmada en el modelo arquitectónico.
-Sincronización constante:
Es la estrategia mas obvia, pero la menos eficiente de todas porque es la mas costosa y mas complicada de ejecutar porque es bastante complicado tener el modelo actualizado contra el código fuente.
La documentación de software es uno de los aspectos fundamentales del proceso de desarrollo de software.
Una sólida herramienta de documentación de software le permite realizar las modificaciones necesarias en su software sin grandes complicaciones.
La implementación es parte del proceso en el que los ingenieros de software programan el código para el proyecto de trabajo que está en relación de las demandas del software, en esta etapa se realizan las pruebas de caja blanca y caja negra.
Antes del examen es muy útil este tutorial sobre el Modelo de Arquitectura “4+1”, salen preguntas de dicho tema.
https://platzi.com/tutoriales/1248-pro-arquitectura/4142-modelo-de-arquitectura-41/
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.