Dr, Alfredo de Jesús Gutiérrez Gómez
1. Piense en el nombre de un animal que inicie con la primera letra de su nombre.
2. Este no deberá repetirse.
3. Al presentarse deberá completar la siguiente frase: Mi nombre es: _______ y he venido sobre un/a: _______ a la escuela desde _____
4. Dar respuesta a las preguntas:
4.1 ¿Porqué estudio está carrera?
4.2 ¿Qué me ha gustado de la carrera hasta ahora?
Unidad I
Fundamentos de arquitectura de software
Unidad II
Modelado de arquitectura de software
Unidad III
Patrones de diseño
Instrucciones
Instrucciones
Trabajo
Párrafos
Ortografía - Gramática
Referencia bibliográfica
Formato del trabajo
Diagramas
Códigos fuentes
Tablas
Introducción - conclusión
Lista de referencias bibliográficas
Imágenes / diagramas / gráficas
Fundamentos de arquitectura de software
Según la IEEE:
La descripción de las partes esenciales de un sistema y sus relaciones, junto con los principios que guían su diseño y evolución
Componentes
Partes funcionales del sistema que procesan datos o realizan tareas específicas.
Conectores
Mecanismos que permiten la comunicación e interacción entre componentes (como APIs, mensajes, o sockets).
Configuración
La disposición específica de los componentes y conectores para formar el sistema.
Estilos y Patrones
Soluciones reutilizables que proporcionan guías para diseñar arquitecturas.
Calidad del Software
Consideraciones como rendimiento, escalabilidad, y mantenibilidad.
Vistas de Arquitectura
Diferentes perspectivas como la vista lógica, física, y de despliegue.
Modularidad
División del sistema en componentes independientes para facilitar el mantenimiento y la evolución.
Encapsulamiento
Ocultar la implementación interna de los componentes para reducir el acoplamiento.
Cohesión
Los componentes deben tener una única responsabilidad clara.
Separación de responsabilidades
Asignar funciones específicas a diferentes módulos para mejorar la organización.
Bajo acoplamiento
Reducir las dependencias entre componentes para mejorar la flexibilidad.
Instrucciones
Instrucciones
Utilizada en aplicaciones web donde las capas separan las funciones de presentación, lógica de negocio y datos.
Arquitectura en Capas
Una de las más conocidas, donde un servidor centralizado proporciona servicios a múltiples clientes.
Arquitectura Cliente-Servidor
Cada servicio es independiente y se comunica mediante interfaces ligeras, ideal para sistemas escalables y flexibles.
Arquitectura de Microservicios
Instrucciones
Es un conjunto estandarizado de prácticas, principios, y herramientas que ayudan a diseñar, implementar y gestionar la estructura tecnológica de una solución o sistema.
Estos frameworks proporcionan un enfoque sistemático para resolver problemas complejos de diseño de software, sistemas empresariales o arquitecturas de tecnología de la información.
Seguimiento de estándares internacionales como TOGAF, ISO 42010, y Zachman.
Aspectos Claves
Escalabilidad
Capacidad de crecer o adaptarse a mayores cargas de trabajo.
Interoperabilidad
Habilidad para integrarse con otros sistemas o componentes.
Modularidad
División en componentes independientes que pueden ser reemplazados o actualizados sin afectar al sistema entero.
Estándares / Normativas
Ejemplos de Framework
TOGAF
(The Open Group Architecture Framework). Es uno de los frameworks más populares para arquitectura empresarial, proporcionando un método detallado y probado para desarrollar arquitecturas a gran escala.
Zachman Framework
Un enfoque más estructurado que define diferentes perspectivas de los interesados en la arquitectura.
Ejemplos de Framework
ARCADIA
Un framework desarrollado para sistemas complejos basado en ingeniería de modelos.
FEAF
(Federal Enterprise Architecture Framework). Utilizado por el gobierno de EE. UU. para gestionar la arquitectura de sistemas.
Software
Archimate (Archi)
Herramienta de modelado que soporta el lenguaje de modelado ArchiMate.
Modelio
Plataforma de modelado basada en UML y BPMN con soporte para arquitecturas TOGAF
Software
Essential Project
Software de arquitectura empresarial open-source.
Draw.io (ahora Diagrams.net)
Aplicación para crear diagramas de flujo y diagramas de arquitectura.
Software
Git
Sistema de control de versiones que permite gestionar proyectos arquitectónicos colaborativamente.
Software
Pulsa aquí o scanea el qr
Software
Principales
Apache HTTP Server, MySQL.
Cliente - Servidor
Descripción
Un modelo donde un cliente solicita servicios a un servidor, que los proporciona.
Ejemplo
Aplicaciones web como Gmail.
Software Open Source
Principales
Django (framework de Python), Spring (Java).
Capas (Layered Architecture)
Descripción
Divide el sistema en capas jerárquicas, donde cada capa tiene una responsabilidad específica.
Ejemplo
Aplicaciones web con capas de presentación, lógica de negocio y datos.
Software Open Source
Principales
Kubernetes, Docker, Spring Boot.
Arquitectura en Microservicios
Descripción
Consiste en pequeños servicios independientes que trabajan juntos.
Ejemplo
Netflix utiliza microservicios para sus múltiples funcionalidades.
Software Open Source
Principales
Kafka, RabbitMQ.
Arquitectura Orientada a Eventos
Descripción
Basado en la producción y consumo de eventos entre componentes.
Ejemplo
Sistemas de monitoreo como Prometheus
Software Open Source
Principales
Apache Camel, OSGi.
Arquitectura basada en Componentes
Descripción
El sistema se organiza como un conjunto de componentes reutilizables.
Ejemplo
IDEs como Eclipse.
Software Open Source
Principales
Logstash, ETL tools.
Pipe and Filter
Descripción
Los datos fluyen a través de una secuencia de filtros, cada uno con una función específica.
Ejemplo
Compiladores
Software Open Source
Principales
Flask, Express.js.
Arquitectura REST (Representational State Transfer)
Descripción
Un estilo para sistemas distribuidos que utiliza HTTP para intercambiar datos.
Ejemplo
APIs RESTful.
Software Open Source
Actividad de aprendizaje
Modelado de arquitecturas de software
para equipos de desarrollo y mantenimiento.
Importancia
Visualización clara
Del sistema antes de su implementación.
Facilita la toma de decisiones
Sobre tecnologías y estructura.
Detecta problemas
Antes del desarrollo
Sirve como documentación
Representa la distribución en hardware y servidores
modelo 4+1 de Kruchten
Vista Lógica
Define módulos y relaciones (usada para diagramas de clases en UML).
Vista de Desarrollo
Muestra la organización del código en módulos y paquetes.
Vista de Procesos
Define la concurrencia, comunicación y sincronización.
Vista Física
Explican cómo interactúan los usuarios con el sistema.
Casos de Uso
Diagramas UML (Unified Modeling Language)
Diagrama de Componentes
Representa los módulos y sus dependencias.
Diagrama de Clases
Muestra la estructura de datos y relaciones.
Diagrama de Despliegue
Esquematiza la distribución del sistema en hardware
Diagramas UML (Unified Modeling Language)
Diagrama de Componentes
Representa los módulos y sus dependencias.
Diagrama de Clases
Muestra la estructura de datos y relaciones.
Diagrama de Despliegue
Esquematiza la distribución del sistema en hardware
Actividad de Aprendizaje
Actividad de Reforzamiento
Pulsa aquí o escanea el qr