Arquitectura de software
Dr, Alfredo de Jesús Gutiérrez Gómez
Contenido
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?
Presentación
- Unidad I: Fundamentos de Arquitectura de software
- Unidad 2: Modelado de Arquitectura de software
- Unidad 3: Patrones de diseño
Temas
- Introducción a las arquitecturas de software
- Framework de las arquitecturas de software
- Estilos de arquitectura de software
Unidad I: Fundamentos de Arquitectura de Software
- Modelos y lenguajes de descripción de arquitectura
- Diagramas y herramientas de diseño arquitectónico de software
Unidad II: Modelado de Arquitectura de software
- Introducción a los patrones de diseño
- Patrones de diseño GoF
- Patrones de diseño emergentes
Unidad III: Patrones de diseño
- Teléfono móvil en modo silencio.
- Las llamadas urgentes /prio se contestan fuera del salón.
- Turnos de una sola persona para ir al WC.
- Dos faltas a la semana sin justificante perderían derecho a las cuestiones de aprendizaje.
- Levantar la mano para participar.
- Respetar la participación de cada alumno.
- No hay retardos
Políticas de clase
- Mantenerse informado acerca de las lecturas, actividades y tareas del curso asistiendo por lo menos dos veces por semana, durante la duración del curso.
- Cumplir dentro del aula virtual con todas las tareas, foros y actividades detalladas por el programa académico y el profesor, en el tiempo y forma establecidos.
- El incumplimiento de las tareas en tiempo y forma llevarán a una no aprobación del curso
Lineamiento de clase
- Realizar el seguimiento personal desde el Aula Virtual.
- Estar pendiente de los resultados de las evaluación/es parcial/es y final/es.
- Notificar al tutor por escrito, con copia a la coordinación académica, si, por alguna razón excepcional, se encontrara en una circunstancia especial que le impidiera continuar con el curso y recibir así indicaciones de cómo proceder a partir de ese momento.
Lineamiento de clase
- Cuestionario de aprendizaje
- Caso de estudio
Descripción de las actividades
Unidad I
Fundamentos de arquitectura de software
- Cuestionario de aprendizaje
- Caso de estudio
Descripción de las actividades
Unidad II
Modelado de arquitectura de software
- Cuestionario de aprendizaje
- Caso de estudio
Descripción de las actividades
Unidad III
Patrones de diseño
Instrucciones
- En una hoja escribe la respuesta a las siguientes preguntas
- ¿Qué esperas que se enseñe en este curso?
- ¿A qué te comprometes en este curso?
- ¿Qué deseas aprender en este curso?
Actividad de encuadre
Instrucciones
- Una vez contestadas las preguntas pulsa aquí para unirte al grupo
- Toma una foto de las respuestas.
- En la sección de tareas busca la que dice: "actividad de encuadre" ahí sube la foto que tomaste.
Actividad de encuadre
Recomendaciónpara la entrega de trabajos / actividades
Recomendaciones
- Portada
- Presentación
- Introducción
- Conclusión
Trabajo
- Mayores a tres líneas
- Menores a ocho líneas
- Coherencia entre párrafos
Párrafos
- Acentuación.
- Evitar redundancia.
- Pleonasmos.
- Mínimo tres errores.
Ortografía - Gramática
- Al menos tres citas dentro del trabajo.
- En formato APA 7ma edición.
Referencia bibliográfica
Recomendaciones
- Fuente Arial.
- Tamaño de título: 14 puntos.
- Tamaño de texto: 12 puntos.
- Interlineado 1.5
- Alineación justificada del texto.
- Los títulos alineados a la izquierda.
- En el encabezado del documento colocar el logotipo del instituto alineado a la derecha. Nombre de la carrera a la izquierda.
Formato del trabajo
Recomendaciones
- Hacerlos en día.
- Exportarlos a jpg / png
Diagramas
- Colocarlos en github.
- En el documento a entregar, colocar el enlace al código.
Códigos fuentes
- Colocarle al pie de la tabla un nombre a la tabla, bajo el siguiente formato: <nombre_tabla numero consecutivo>. <nombre_tabla> <fuente:> <donde_fue_tomada> .
- Colocar un párrafo descriptivo
Tablas
Recomendaciones
- Al menos tres párrafos.
Introducción - conclusión
- Al menos tres fuentes de diversos autores.
- Con sangría francesa al inicio de cuatro espacios.
- Fuente Times New Roman.
- 12 puntos.
- Sin enlaces activos.
Lista de referencias bibliográficas
Recomendaciones
- Colocarle al pie de la imagen / diagrama / gráfica un nombre, bajo el siguiente formato: <nombre_objeto numero consecutivo>. <nombre_objeto> <fuente:> <donde_fue_tomada> .
- Colocar un párrafo donde se describa la imagen / diagrama / gráfica
Imágenes / diagramas / gráficas
¿Dudas?
Comentarios
Unidad I
Fundamentos de arquitectura de software
- Es la estructura fundamental de un sistema, compuesta por sus componentes, las relaciones entre ellos y los principios y guías que gobiernan su diseño y evolución.
- Define cómo se organizan y comunican los diferentes módulos o elementos para cumplir los requisitos del sistema, incluyendo sus atributos de calidad.
¿Qué es la Arq. 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
¿Qué es la Arq. de software?
Componentes
Arq. software > Elementos Claves
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
Arq. software > Elementos Claves
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
Arq. software > Principios de diseño
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
Arq. software > Principios de diseño
Asignar funciones específicas a diferentes módulos para mejorar la organización.
Bajo acoplamiento
Reducir las dependencias entre componentes para mejorar la flexibilidad.
Arq. software > Actividad de aprendizaje
- Pulsa aquí o escanea el qr.
- Resuelve

Instrucciones
Arq. software > Actividad de aprendizaje
- Pulsa aquí o escanea el qr.
- Resuelve

Instrucciones
Arq. software > Ejemplos de arq. de software
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
Arq. software > Actividad de aprendizaje
Instrucciones
- Google Frexus
- Selecciona la opción Generando valor agregado.
- Pulsa en el menú Academia.
- Busca el nombre de la materia y has clic en el.
- Busca el recurso con el nombre de:Puente.
- Leelo y resuelve las preguntas
Arq. software > Framework de arq
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.
Arq. software > Framework de arq
- Estandarizar la creación de soluciones tecnológicas.
- Alinear las soluciones con los objetivos estratégicos de una organización.
- Mejorar la eficiencia y la reusabilidad de componentes.
Arq. software > Framework de arq
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
Arq. software > Framework de arq
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.
Arq. software > Framework de arq
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.
Arq. software > Framework de arq
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
Arq. software > Framework de arq
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.
Arq. software > Framework de arq
Software
Git
Sistema de control de versiones que permite gestionar proyectos arquitectónicos colaborativamente.
Arq. software > Framework de arq
Software
Pulsa aquí o scanea el qr

Arq. software > Estilos de arq.
Software
- Son patrones o soluciones generales que definen cómo los componentes de un sistema interactúan entre sí.
- Estos estilos ofrecen un marco conceptual para diseñar sistemas de software, permitiendo que los desarrolladores se enfoquen en la funcionalidad, rendimiento, mantenimiento y escalabilidad del sistema.
Arq. software > Estilos de arq.
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
Arq. software > Estilos de arq.
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
Arq. software > Estilos de arq.
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
Arq. software > Estilos de arq.
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
Arq. software > Estilos de arq.
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
Arq. software > Estilos de arq.
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
Arq. software > Estilos de arq.
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
Arq. software > Estilos de arq.
Actividad de aprendizaje
- Googlea Frexus.
- Selecciona la opción: Generando Valor Agregado.
- Ve a la sección de academia.
- Busca el nombre de la materia y has clic en ella
- En la sección de recursos lee el que tiene el nombre de: La evolución.
Unidad II
Modelado de arquitecturas de software
- Es el proceso de diseñar y representar visualmente la estructura de un sistema software, definiendo sus componentes, interacciones y principios fundamentales.
- El objetivo es facilitar la comprensión, comunicación y evolución del software.
Modelado de arquitecturas de software
para equipos de desarrollo y mantenimiento.
Modelado de arquitecturas de software
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
Modelado de arquitecturas de software
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
Modelado de arquitecturas de software
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
Modelado de arquitecturas de software
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
Modelado de arquitecturas de software

Vista Lógica (Diagrama de Clases - UML)
Modelado de arquitecturas de software

Vista de Desarrollo (Diagrama de Componentes - UML)
Modelado de arquitecturas de software

Vista de Procesos (Diagrama de Secuencia - UML)
Modelado de arquitecturas de software

Vista Física (Diagrama de Despliegue - UML)
Modelado de arquitecturas de software

Vista de Casos de Uso (Diagrama de Casos de Uso - UML)
Modelado de arquitecturas de software
Actividad de Aprendizaje
- Googlea Frexus.
- Selecciona la opción: Generando Valor Agregado.
- Ve a la sección de academia.
- Busca el nombre de la materia y has clic en ella
- En la sección de recursos lee el que tiene el nombre de: Modelando.
Modelado de arquitecturas de software
Actividad de Reforzamiento
Pulsa aquí o escanea el qr

Arquitectura de Software
By Alfredo de Jesús Gutiérrez Gómez
Arquitectura de Software
Presentación utilizada para la materia de Arquitectura de Software
- 219