Modelo C4 y Diagramas de Arquitectura

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

¿Cuál de los siguientes patrones de diseño permite la comunicación entre dos interfaces incompatibles?

  • Facade
  • Bridge
  • Composite
  • Adapter (correct)

El patrón Composite permite la creación de estructuras de tipo árbol y trata a los objetos de estas estructuras como objetos individuales.

True (A)

¿Qué es el modelo C4 y cuál es su propósito?

Es un modelo de diseño arquitectónico que ayuda a representar la estructura y relaciones entre los componentes de un sistema.

El patrón __________ permite separar una abstracción de una implementación, optimizando el crecimiento del sistema.

<p>Bridge</p> Signup and view all the answers

Relaciona los patrones de diseño con su descripción:

<p>Adapter = Permite la comunicación entre interfaces incompatibles Bridge = Separa una abstracción de una implementación Composite = Permite estructurar objetos en una jerarquía tipo árbol C4 = Modelo para representar arquitecturas de software</p> Signup and view all the answers

¿Cuál es el primer paso en el trabajo del bloque 2?

<p>Realizar un diseño de solución aplicando el modelo C4 (A)</p> Signup and view all the answers

Los patrones estructurales mejoran la eficiencia del sistema afectando a su parte funcional.

<p>False (B)</p> Signup and view all the answers

¿Qué se debe entregar el día viernes 26/01/2024?

<p>Un diseño de solución que aplica el modelo C4 en formato PDF.</p> Signup and view all the answers

¿Cuál de los siguientes diagramas permite la visualización general del sistema?

<p>Diagrama de Contexto (C)</p> Signup and view all the answers

El Diagrama de Componentes muestra todos los contenedores del sistema.

<p>False (B)</p> Signup and view all the answers

¿Qué ventaja ofrece el Modelo C4 en términos de comunicación?

<p>Permite mantener una excelente fluidez de la comunicación entre la parte técnica y no técnica.</p> Signup and view all the answers

El Diagrama de __________ es un diagrama de lujo de datos que identifica los límites del sistema.

<p>Contexto</p> Signup and view all the answers

Empareja los siguientes tipos de diagramas con su descripción:

<p>Diagrama de Contenedores = Muestra interacciones entre altos niveles de componentes. Diagrama de Contexto = Proporciona una visión general del sistema. Diagrama de Componentes = Describe el funcionamiento interno de un contenedor. Diagrama de Despliegue = Representa la distribución física de los componentes del sistema.</p> Signup and view all the answers

¿Cuál de las siguientes afirmaciones es correcta sobre el Modelo C4?

<p>Facilita la toma de decisiones basada en cambios de arquitectura. (B)</p> Signup and view all the answers

Los diagramas de alto nivel incluyen detalles específicos de cada función dentro del sistema.

<p>False (B)</p> Signup and view all the answers

Los diagramas de __________ permiten obtener un panorama general del sistema que se va a desarrollar.

<p>alto nivel</p> Signup and view all the answers

¿Cuál de los siguientes patrones permite agregar funcionalidades a objetos sin usar la herencia?

<p>Decorator (D)</p> Signup and view all the answers

El patrón Flyweight se utiliza para crear objetos pesados y consume mucha memoria.

<p>False (B)</p> Signup and view all the answers

¿Qué patrón proporciona una interfaz simplificada a un grupo de interfaces en un sistema?

<p>Facade</p> Signup and view all the answers

El patrón ______ permite guardar y restaurar el estado previo de un objeto.

<p>Memento</p> Signup and view all the answers

Relaciona cada patrón con su descripción correspondiente:

<p>Proxy = Controla el acceso al objeto original. Facade = Interfaz simplificada a un grupo de interfaces. Flyweight = Creación de objetos ligeros. Memento = Guardar y restaurar el estado de un objeto.</p> Signup and view all the answers

¿Qué debe hacerse antes de aplicar el patrón Flyweight?

<p>Identificar problemas de rendimiento en memoria. (A)</p> Signup and view all the answers

El patrón Proxy permite realizar acciones antes y después de la ejecución del objeto original.

<p>True (A)</p> Signup and view all the answers

¿Qué rol desempeña el Caretaker en el patrón Memento?

<p>Guardar el Memento.</p> Signup and view all the answers

¿Cuál es la función principal del patrón Builder?

<p>Separar la construcción de un objeto complejo de su representación (A)</p> Signup and view all the answers

El patrón Prototype permite la creación de nuevos objetos basados en un objeto existente.

<p>True (A)</p> Signup and view all the answers

¿Qué objeto crea internamente el ObjectBuilder después de la primera llamada de creación?

<p>TargetObject</p> Signup and view all the answers

El patrón __________ permite la creación de nuevos objetos, pero partiendo de un prototipo.

<p>Prototype</p> Signup and view all the answers

Empareja los siguientes patrones de diseño con su descripción:

<p>Chain of Responsibility = Permite pasar solicitudes a lo largo de una cadena de objetos Command = Encapsula una solicitud como un objeto Observer = Define una dependencia uno a muchos entre objetos State = Permite a un objeto alterar su comportamiento cuando su estado interno cambia</p> Signup and view all the answers

¿Cuál es la función principal del patrón Singleton en programación?

<p>Asegurar que una clase tenga una única instancia. (B)</p> Signup and view all the answers

El patrón Memento permite restaurar el estado de un objeto sin exponer su implementación interna.

<p>True (A)</p> Signup and view all the answers

¿Qué método se utiliza para solicitar la instancia en un Singleton?

<p>getInstance</p> Signup and view all the answers

El __________ permite a los clientes acceder a la misma instancia de una conexión de la base de datos.

<p>Singleton</p> Signup and view all the answers

Empareja los conceptos de programación con su definición:

<p>Singleton = Asegura una única instancia de una clase Memento = Restaura el estado de un objeto CareTaker = Administra el estado de los Mementos Originator = Crea y guarda el estado que puede ser restaurado</p> Signup and view all the answers

¿Qué ocurre si se llama a getInstance cuando ya existe una instancia del Singleton?

<p>Se devuelve la instancia existente. (B)</p> Signup and view all the answers

El constructor de una clase Singleton debe ser público.

<p>False (B)</p> Signup and view all the answers

¿Cuál es el tipo de acceso que proporciona el Singleton a su instancia?

<p>Acceso global</p> Signup and view all the answers

¿Qué método se utiliza para realizar consultas a la base de datos en la clase Application?

<p>query() (A)</p> Signup and view all the answers

La clase Application crea diferentes instancias de Database al utilizar el método getInstance() varias veces.

<p>False (B)</p> Signup and view all the answers

¿Qué patrón de diseño permite la creación de familias de objetos relacionados sin especificar sus clases concretas?

<p>Fábrica Abstracta</p> Signup and view all the answers

El método de fábrica permite crear un objeto, pero deja que las __________ alteren el tipo de objeto a crear.

<p>subclases</p> Signup and view all the answers

Relaciona los siguientes conceptos con su descripción:

<p>Método de Fábrica = Crea un objeto y permite que las subclases alteren el tipo Fábrica Abstracta = Crea familias de objetos relacionados Singleton = Una única instancia de una clase Producto = Instancia creada por la fábrica</p> Signup and view all the answers

¿Qué se debe hacer primero cuando se usa el patrón de Fábrica Abstracta?

<p>Solicitar la creación de un ConcreteFactory (B)</p> Signup and view all the answers

El cliente puede solicitar productos de diferentes fábricas para asegurar compatibilidad.

<p>True (A)</p> Signup and view all the answers

¿Cuál es la función de la lógica de regulación (throttling) en el método query?

<p>Controlar la cantidad de consultas enviadas a la base de datos</p> Signup and view all the answers

Flashcards

Diagrama de Contexto

Diagrama de nivel superior que muestra la vista general del sistema y sus límites.

Contenedores (Modelo C4)

Componentes autónomos de un sistema, como bases de datos, servicios o aplicaciones.

Diagrama de Contenedores

Diagrama que describe los contenedores de un sistema, sus interacciones y estructura.

Diagrama de Componentes

Diagrama que muestra el funcionamiento interno de un contenedor, incluyendo sus componentes y comunicación.

Signup and view all the flashcards

Modelo C4

Un modelo de arquitectura de software que utiliza diagramas jerárquicos para visualizar el sistema.

Signup and view all the flashcards

Ventajas del Modelo C4

Proporciona una estructura clara, facilita la comunicación, se centra en la esencia, es escalable y ayuda a la toma de decisiones.

Signup and view all the flashcards

Diagrama de Alto Nivel

Diagrama que proporciona una vista general del sistema, incluyendo diagramas de despliegue, servicios y componentes.

Signup and view all the flashcards

Diagrama de Bajo Nivel

Un diagrama que proporciona información específica sobre el funcionamiento interno de un componente.

Signup and view all the flashcards

Diagramas de arquitectura de bajo nivel

Diagramas más específicos que muestran la funcionalidad y jerarquía de la interacción entre servicios de una arquitectura de software.

Signup and view all the flashcards

Patrones de diseño estructurales

Patrones que se enfocan en la composición de clases y objetos para crear estructuras más complejas y escalables.

Signup and view all the flashcards

Patrón Adapter (Adaptador)

Permite la comunicación entre interfaces o clases incompatibles convirtiendo una entrada en otra.

Signup and view all the flashcards

Patrón Bridge (Puente)

Separa una abstracción de su implementación, permitiendo un crecimiento independiente y optimizado.

Signup and view all the flashcards

Patrón Composite (Compuesto)

Permite la composición de objetos en estructuras de árbol, tratándolos como objetos individuales.

Signup and view all the flashcards

Diagramas de Secuencia

Diagramas que muestran el flujo de la interacción entre objetos de un sistema.

Signup and view all the flashcards

Diagramas de Clase

Diagramas que describen la estructura estática de un sistema mostrando clases, atributos y métodos.

Signup and view all the flashcards

Decorator (Decorator)

Agrega funcionalidades a objetos existentes, colocándolos dentro de objetos encapsulados que contienen esas funcionalidades, ofreciendo una alternativa a la herencia.

Signup and view all the flashcards

Facade (Fachada)

Proporciona una interfaz simplificada a un grupo de interfaces en un sistema, ocultando la complejidad a los clientes.

Signup and view all the flashcards

Flyweight (Peso Ligero)

Crea objetos ligeros reutilizando partes compartidas. Reduce memoria al reutilizar objetos existentes.

Signup and view all the flashcards

Proxy (Representante)

Controla el acceso a un objeto original, permitiendo acciones antes o después de la solicitud al objeto original.

Signup and view all the flashcards

Memento (Recuerdo)

Guarda y restaura el estado previo de un objeto sin revelar su implementación.

Signup and view all the flashcards

Pedidos en una tienda

Ejemplo de Fachada: un operador actúa como interfaz entre el cliente y los diferentes departamentos de la tienda.

Signup and view all the flashcards

Objeto ligero

Objeto que utiliza partes compartidas con otros objetos.

Signup and view all the flashcards

Proceso de un pedido

Ejemplo de Proxy: El sistema solicita un objeto al Factory, el cual crea un Proxy para controlar el objeto original, realizando acciones adicionales antes y después de ejecutarlo.

Signup and view all the flashcards

¿Qué es el patrón Singleton?

El patrón Singleton garantiza que una clase solo tenga una instancia y proporciona un punto de acceso global a ella.

Signup and view all the flashcards

¿Cómo funciona Singleton?

El cliente solicita la instancia a través de un método estático. Si la instancia ya existe, se devuelve. De lo contrario, se crea una nueva.

Signup and view all the flashcards

Método estático getInstance()

Este método permite a los clientes obtener la instancia Singleton.

Signup and view all the flashcards

Campo estático 'instance'

Almacena la única instancia de la clase Singleton.

Signup and view all the flashcards

Constructor privado

Previene la creación de instancias directas de la clase Singleton.

Signup and view all the flashcards

Bloqueo de hilos

Evita que varios hilos creen simultáneamente instancias del Singleton.

Signup and view all the flashcards

Lógica de negocio

El Singleton puede definir operaciones específicas para su única instancia.

Signup and view all the flashcards

Ejemplo: Base de datos

Una única instancia de una conexión de base de datos para todo el programa.

Signup and view all the flashcards

Builder (Constructor)

Un patrón de diseño que separa la construcción de un objeto complejo en pasos individuales, permitiendo crear diferentes representaciones del mismo objeto.

Signup and view all the flashcards

Prototype (Prototipo)

Un patrón de diseño que permite crear nuevos objetos a partir de un prototipo existente, sin tener que reescribir todo el código.

Signup and view all the flashcards

Chain of responsibility (Cadena de responsabilidad)

Un patrón de diseño que permite que una solicitud se procese por una cadena de objetos, pasando la solicitud al siguiente objeto en la cadena hasta que se encuentre un objeto que la maneje.

Signup and view all the flashcards

Comand (Comando)

Un patrón de diseño que encapsula una solicitud como un objeto, permitiendo parametrizar clientes con diferentes solicitudes, programar o registrar solicitudes, y soportar operaciones deshacer.

Signup and view all the flashcards

Iterator (Iterador)

Un patrón de diseño que proporciona una forma de acceder secuencialmente a los elementos de un objeto agregado sin exponer su representación interna.

Signup and view all the flashcards

Método de Fábrica

Un patrón de diseño que define una interfaz para crear objetos, pero permite a las subclases decidir qué tipo de objeto crear. Es ideal cuando una clase no puede predecir el tipo de objetos que debe crear.

Signup and view all the flashcards

Fábrica Abstracta

Un patrón de diseño para crear familias de objetos relacionados sin especificar sus clases concretas. Garantiza que los objetos creados sean compatibles entre sí.

Signup and view all the flashcards

Qué hace el patrón Factory Method?

El patrón Factory Method define una creación de un objeto, pero la clase concreta del objeto que se creará dependerá de la subclase que implemente el método.

Signup and view all the flashcards

Cuándo usar el patrón Factory Method?

El patrón Factory Method es útil cuando una clase no puede predecir el tipo de objetos que debe crear.

Signup and view all the flashcards

Qué hace el patrón Abstract Factory?

Abstract Factory se usa para crear familias de objetos relacionados sin especificar sus clases concretas.

Signup and view all the flashcards

Cuándo usar el patrón Abstract Factory?

Abstract Factory se usa cuando una clase no puede predecir qué tipo de objetos de una familia debe crear.

Signup and view all the flashcards

¿Qué diferencia hay entre Factory Method y Abstract Factory?

Factory Method crea un solo tipo de objeto, mientras que Abstract Factory crea una familia de objetos relacionados.

Signup and view all the flashcards

¿Cuándo elegir Factory Method sobre Abstract Factory?

Elija Factory Method cuando necesite crear objetos de un solo tipo, y Abstract Factory cuando necesite crear objetos de una familia de tipos relacionados, aunque no se necesite crear todos los tipos dentro de la familia.

Signup and view all the flashcards

Study Notes

Modelo C4

  • Modelo de arquitectura de software, con diagramas de alto nivel para describir el sistema.
  • Incluye diagramas de contexto, contenedores, componentes y código.

Diagrama de Contexto

  • Visualiza un panorama general del sistema.
  • Es un diagrama de flujo de datos (DFD) de alto nivel.
  • Identifica los alcances y límites del sistema.
  • Ejemplo: Sistema de cajeros automáticos, mostrando los sistemas de contabilidad, seguridad y mantenimiento, y las bases de datos de cuentas y de utilización, así como los usuarios.

Diagrama de Contenedores

  • Especifica cada contenedor de alto nivel (bases de datos, servicios, aplicaciones).
  • Muestra las interacciones entre los mismos.
  • Representa el flujo y estructura del sistema.
  • Ejemplo: Diagrama de contenedores para un sistema bancario en línea, mostrando las interacciones entre la aplicación web, la aplicación móvil, el sistema de correo electrónico, las bases de datos, y sistemas adicionales como la banca principal.

Diagrama de Componentes

  • Amplía la forma de trabajo de un contenedor, describiendo su funcionamiento interno.
  • No muestra todos los contenedores, solo uno con detalle de comunicación.
  • Ejemplo: Diagrama de componentes para la aplicación de API de un sistema bancario en línea, mostrando la comunicación entre el controlador, otros componentes para acceder a la base de datos, y los componentes relacionados con la aplicación web y la aplicación móvil.

Código

  • Diagramas de clases del código fuente desarrollado.
  • Diagramas de paquetes.
  • Relaciones entre clases.
  • Se recomienda la generación de diagramas desde el IDE.

Ventajas del Modelo C4

  • Jerarquía de abstracción clara y jerárquica para cada uno de los diagramas.
  • Comunicación efectiva entre la parte técnica y no técnica.
  • Enfoque en los aspectos claves de la arquitectura de software.
  • Escalable a cualquier tipo de sistema.
  • Facilita la toma de decisiones sobre el diseño y cambios en la arquitectura.

Actividad en Clase

  • Grupos de 1-2 para investigar diagramas de alto nivel y plantear ejemplos.
  • Grupos de 3-4 para investigar diagramas de bajo nivel y plantear ejemplos.

Diagramas de Arquitectura de Alto Nivel

  • Permiten obtener un panorama general del sistema a desarrollar.
  • Se utilizan diagramas de despliegue, servicios y componentes.

Diagramas de Arquitectura de Bajo Nivel

  • Más específicos en cuanto a la funcionalidad y jerarquía de la interacción de los servicios del software.
  • Se utilizan diagramas de secuencia, clases y despliegue detallado.

Patrones de Diseño Estructurales

  • Describen la estructura de clases y objetos.
  • Permiten crear estructuras más complejas y grandes.
  • Mejoran la flexibilidad y eficiencia del sistema.

Adapter (Adaptador)

  • Se utiliza para comunicar interfaces o clases incompatibles.
  • Convierte una entrada de datos de un tipo a otro.
  • Ejemplo: Un adaptador entre un proveedor de información de Bolsa (XML) y un sistema de aplicación (JSON).

Bridge (Puente)

  • Separa la abstracción de una implementación.
  • Permite un crecimiento independiente y óptimo.
  • Ejemplo: Separación de la forma (círculo, cuadrado) de su color (rojo, azul).

Composite (Compuesto)

  • Crea estructuras de tipo árbol.
  • Los componentes se tratan como objetos individuales.
  • Ejemplo: Un pedido complejo con varios artículos (martillo, teléfono, auriculares).

Decorator (Decorator)

  • Agrega funcionalidad a los objetos.
  • Extensión flexible a la herencia.
  • Ejemplo: Agregar funcionalidades de envío por SMS, Facebook o Slack a un sistema de notificaciones.

Facade (Fachada)

  • Proporciona una interfaz simplificada a un grupo de interfaces.
  • Ejemplo: Interfaz para realizar un pedido en una tienda, que se comunica con varios departamentos (almacén, pagos, envío).

Flyweight (Peso Ligero)

  • Crea objetos ligeros, reutilizando partes.
  • Mejora el rendimiento de la memoria.
  • Ejemplo: Objetos que comparten atributos o recursos.

Proxy (Proxy)

  • Controla el acceso a objetos originales.
  • Permite ejecutar acciones antes o después de la solicitud.

Memento (Recuerdo)

  • Permite guardar y restaurar el estado previo de un objeto.

Patrones de Diseño Creacionales

  • Proporcionan mecanismos para la creación de objetos.
  • Mejoran la reutilización de código.

Singleton

  • Se asegura que una clase tenga una sola instancia.
  • Proporciona un punto de acceso global.

Factory Method (Método de Fábrica)

  • Define una interfaz para crear objetos.
  • Deja que las subclases decidan qué tipo de objeto crear.

Abstract Factory (Fábrica Abstracta)

  • Crea familias de objetos relacionados.
  • Garantiza la compatibilidad entre objetos.

Builder (Constructor)

  • Separa la construcción de un objeto complejo.
  • Permite crear diferentes representaciones del objeto.

Prototype (Prototipo)

  • Crea nuevos objetos partiendo de un prototipo.

Patrones de Diseño de Comportamiento

  • Relacionados con la manera en que los objetos interactúan e intercambian información.
  • Incluyen Cadena de responsabilidad, Comando, Iterator, Mediador, Memento, Observer, Estado, Strategy, Template method, Visitor.

Actividad En Clase

  • Investigar sobre patrones y ejemplos.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

Modelo C4 PDF

More Like This

API Methods and C4 Architecture Quiz
29 questions
C4- synapses
43 questions

C4- synapses

SplendidNovaculite8819 avatar
SplendidNovaculite8819
IcePanel app container and C4 model
10 questions
Modeling - IcePanel and the C4 Model
10 questions
Use Quizgecko on...
Browser
Browser