Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tutor
Julián Andres Ruiz Jaramillo, Profesión
Tabla de contenido
Resumen ........................................................................................................................................... 3
Abstract ............................................................................................................................................ 4
Introducción ..................................................................................................................................... 5
Justificación ...................................................................................................................................... 7
Objetivos .......................................................................................................................................... 9
PATRÓNES ESTRUCTURALES.......................................................................................... 16
Conclusiones .................................................................................................................................. 18
Bibliografía..................................................................................................................................... 19
3
Resumen
Abstract
Introducción
A lo largo de estas páginas, analizaremos los factores clave que influyen en la elección de
un patrón arquitectónico, como el costo, el tiempo de desarrollo, el alcance del proyecto y la
interoperabilidad. Además, presentaremos cuatro patrones arquitectónicos esenciales: Cliente-
Servidor, Capas, Maestro-Esclavo y Modelo-Vista-Controlador, cada uno con sus ventajas y
desventajas específicas.
Este documento pretende servir como un recurso valioso para ingenieros de software,
arquitectos de sistemas, profesionales relacionados o bien estudiantes como nosotros,
proporcionando una base sólida para la toma de decisiones informadas en el diseño de arquitecturas
de software efectivas y eficientes. A través de la comprensión de estos conceptos y patrones, los
6
equipos de desarrollo estarán mejor preparados para enfrentar los desafíos de un mundo digital en
constante evolución.
7
Justificación
Guía para la Toma de Decisiones: Este documento proporciona una guía sólida para la toma
de decisiones en el proceso de diseño de software. Ayuda a los ingenieros y arquitectos de software
a considerar factores clave, como el costo, el tiempo de desarrollo, el alcance y la interoperabilidad,
al elegir el patrón arquitectónico más adecuado para un proyecto específico.
comprensión de los roles y responsabilidades de cada componente del sistema, lo que mejora la
eficiencia y la calidad del trabajo en equipo.
Objetivos
Cada vez que se menciona la arquitectura, comúnmente se evoca una representación mental
relacionada con la disciplina encargada de la planificación y diseño de edificaciones y áreas de
recreación, como parques o monumentos. Sin embargo, la arquitectura adquiere un significado
diferente cuando se aplica al ámbito del software. En este contexto, se refiere a una estrategia de
planificación que se basa en modelos, patrones y abstracciones teóricas, y que precede a la fase de
implementación en la creación de software complejo.
En este contexto, el término "patrón" se utiliza para describir cualquier solución general y
reutilizable para problemas recurrentes en la ingeniería del software en un contexto particular.
Aunque se asemejan a los patrones utilizados en la programación, estos patrones arquitectónicos
están diseñados específicamente para abordar la estructura en un nivel superior y de manera más
genérica.
complejos y requerir una infraestructura más extensa, lo que puede influir en la inversión inicial
para el desarrollo de nuestra aplicación.
En ocasiones, una vez que hemos reflexionado y fundamentado estos aspectos, la elección
de un patrón arquitectónico también puede depender de la familiaridad, comodidad o preferencia
personal. Por esta razón, es recomendable realizar pruebas para familiarizarse con los patrones y
los flujos de trabajo que proponen.
Patrón Cliente-Servidor
Ventajas
Desventajas
Patrón de Capas
Ventajas
Facilidad de Pruebas: Dado que cada capa funciona de manera independiente, este patrón
facilita la implementación de pruebas, ya que es posible realizar pruebas separadas para cada capa.
Facilidad de Desarrollo: La alta distribución de responsabilidades simplifica la
coordinación de equipos de desarrollo, ya que cada miembro o equipo comprende claramente el
propósito de cada capa. Solo se necesita crear una interfaz de comunicación clara entre ellas.
Desventajas
Rendimiento: Dado que cada funcionalidad se encuentra en capas diferentes, este patrón a
menudo sufre de un rendimiento inferior en comparación con otros, ya que cada solicitud debe
atravesar individualmente cada capa de diseño.
Escalabilidad: Modificar un software que utiliza este patrón puede ser complicado y
costoso, ya que cada capa depende de las anteriores y de sus interfaces. Realizar cambios en una
capa implica modificar todas las capas anteriores. Aunque esto puede abordarse subdividiendo las
capas en módulos, sigue requiriendo más esfuerzo en comparación con otros patrones.
Patrón Maestro-Esclavo
Ventajas
Gestión Centralizada: Este patrón es eficaz en el diseño de tareas multitarea, ya que permite
dividir las tareas en módulos que pueden ejecutarse de manera independiente.
14
Control: Al iniciar todas las tareas desde un nodo orquestador único, se mantiene un mayor
control, ya que las tareas se ejecutan de manera autónoma y reciben contexto y procesamiento final
desde un solo punto de ejecución.
Escalabilidad: Dado que las tareas son independientes entre sí, es fácil escalar el sistema al
agregar nuevos nodos esclavos, lo que suele traducirse en un aumento significativo del
rendimiento.
Desventajas
Ventajas
Desventajas
Patrón Broker
Ventajas
Desventajas
Costos: Implementar este sistema requiere una gran cantidad de servidores, que deben ser
mantenidos de forma independiente, con diversas piezas de software distribuidas entre ellos, lo que
conlleva costos significativos.
Mantenimiento: A diferencia de un sistema centralizado, este sistema distribuido implica
que cualquier fallo puede deberse a cualquier componente, y realizar tareas de mantenimiento en
la máquina broker, por ejemplo, puede provocar periodos de indisponibilidad del servicio.
Patrones de Diseño
PATRONES DE CREACION
Los patrones de creación son una forma de crear objetos de forma flexible y reutilizable.
Pueden ayudar a los desarrolladores a crear código más fácil de mantener y adaptar a los cambios.
PATRÓNES ESTRUCTURALES
Los patrones estructurales son un tipo de patrón de diseño de software que se utilizan para
describir cómo se combinan los objetos y las clases para formar estructuras más grandes. Estos
patrones proporcionan un enfoque estructurado y reutilizable para diseñar sistemas de software.
17
PATRÓNES DE COMPORTAMIENTO
Los patrones de comportamiento son un tipo de patrón de diseño de software que se utilizan
para describir cómo los objetos interactúan entre sí. Estos patrones proporcionan un enfoque
estructurado y reutilizable para diseñar sistemas de software.
MODELADO ARQUITECTONICO
DIAGRAMAS UML
los diagramas UML son herramientas gráficas estándar utilizadas en ingeniería de software
para visualizar, especificar y documentar sistemas. Permiten representar el diseño y la estructura
de un sistema de manera clara y comprensible, facilitando la comunicación entre los diferentes
involucrados en un proyecto de desarrollo de software.
Los diagramas de flujo de datos (DFD) son representaciones visuales que muestran cómo
fluyen los datos en un sistema. Ayudan a entender y mejorar procesos, mostrando cómo los datos
se mueven desde las entradas hasta las salidas en un sistema.
Los modelos entidad-relación (ER) son herramientas para diseñar bases de datos.
Representan entidades, relaciones y atributos de un sistema, ayudando a visualizar cómo se
organizan y relacionan los datos. Esencial para el diseño de bases de datos.
18
Conclusiones
Bibliografía