UNIDAD 3
Section outline
-
-
Los patrones creacionales son soluciones reutilizables que abordan el problema de cómo crear objetos de manera flexible, eficiente y controlada, especialmente cuando la creación directa puede generar dependencia o rigidez en el código.
Estos patrones encapsulan el proceso de instanciación, permitiendo que el sistema sea más independiente de las clases concretas que utiliza y facilitando cambios, extensiones o mejoras sin alterar la estructura del software.
Entre los patrones creacionales más conocidos se encuentran:
Singleton: garantiza que una clase tenga una única instancia accesible globalmente.
Factory Method: delega la creación de objetos a subclases o métodos especializados.
Abstract Factory: proporciona una interfaz para crear familias de objetos relacionados sin especificar sus clases concretas.
Builder: separa la construcción de un objeto complejo de su representación, permitiendo diferentes configuraciones.
Prototype: crea nuevos objetos copiando una instancia existente, útil cuando la creación desde cero es costosa o compleja.
En esta unidad aprenderás a identificar cuándo y por qué aplicar cada uno de estos patrones, así como sus ventajas, desventajas y usos comunes en el desarrollo de software robusto, escalable y fácil de mantener.
-
Los patrones de comportamiento se enfocan en cómo interactúan los objetos entre sí y cómo se reparten las responsabilidades dentro del sistema, facilitando una comunicación más flexible, organizada y desacoplada.
Estos patrones ayudan a definir algoritmos, flujos de trabajo, y relaciones entre clases y objetos, promoviendo un diseño más claro y extensible. Son especialmente útiles cuando el sistema debe adaptarse fácilmente a cambios en el comportamiento o cuando se busca reducir dependencias rígidas.
Algunos de los patrones de comportamiento más utilizados son:
Observer: permite que múltiples objetos reaccionen automáticamente a cambios en otro objeto (muy usado en interfaces gráficas y sistemas de eventos).
Strategy: define una familia de algoritmos intercambiables, encapsulando cada uno y permitiendo cambiar su comportamiento en tiempo de ejecución.
Command: encapsula una solicitud como un objeto, permitiendo parametrizar acciones, deshacer operaciones o ejecutar comandos en diferentes momentos.
State: permite que un objeto altere su comportamiento cuando cambia su estado interno.
Mediator: centraliza la comunicación entre objetos para reducir las dependencias directas entre ellos.
En esta unidad aprenderás a aplicar estos patrones para mejorar la comunicación entre componentes, aumentar la reutilización de código y mantener un diseño limpio y escalable. Verás cómo estos patrones son clave en aplicaciones interactivas, sistemas de control, motores de reglas, y más.
-
Los patrones estructurales se centran en cómo se componen las clases y los objetos para formar estructuras más grandes y flexibles, sin comprometer la eficiencia o la claridad del sistema.
Estos patrones ayudan a organizar y optimizar las relaciones entre entidades, facilitando la reutilización de código, la reducción de dependencias directas y la adaptación de interfaces incompatibles. Son especialmente útiles cuando se busca mejorar la arquitectura del software sin alterar su comportamiento.
Entre los patrones estructurales más comunes se encuentran:
Adapter: permite que dos interfaces incompatibles trabajen juntas mediante una clase intermediaria.
Decorator: agrega responsabilidades adicionales a un objeto de forma dinámica, sin modificar su estructura.
Composite: compone objetos en estructuras jerárquicas (como árboles), permitiendo tratarlos de manera uniforme.
Facade: proporciona una interfaz simplificada para acceder a un conjunto complejo de clases o subsistemas.
Proxy: controla el acceso a un objeto, agregando funcionalidades como control de acceso, carga diferida o registro.
En esta unidad aprenderás a identificar cuándo aplicar cada patrón estructural, cómo integrarlos en el diseño de tus aplicaciones, y qué beneficios aportan en términos de organización, legibilidad y mantenimiento. Estos patrones son fundamentales en sistemas con arquitecturas complejas, interfaces múltiples o requisitos de extensibilidad.
-
Estos diagramas pertenecen a la vista estructural del sistema y son fundamentales para comprender cómo se organiza, distribuye y despliega una aplicación en el mundo real.
El Diagrama de Componentes permite representar la estructura modular del software, mostrando cómo se agrupan las clases y se relacionan entre sí a través de interfaces.
El Diagrama de Paquetes se utiliza para organizar y simplificar el modelo, agrupando elementos relacionados dentro de contenedores lógicos o “paquetes”, lo cual facilita la comprensión y el mantenimiento del sistema.
El Diagrama de Despliegue muestra cómo se distribuyen físicamente los componentes del sistema en el hardware, es decir, qué artefactos se ejecutan en qué nodos, permitiendo visualizar la arquitectura de ejecución.
En esta unidad aprenderás a identificar los componentes clave de un sistema, a organizarlos en paquetes coherentes, y a representar cómo se despliegan sobre una infraestructura física. Estos diagramas son especialmente útiles en proyectos de software empresarial, aplicaciones distribuidas, sistemas en red y entornos de producción reales.
-
Figma es una herramienta de diseño colaborativo basada en la web, utilizada ampliamente para la creación de interfaces de usuario (UI), experiencias de usuario (UX) y prototipos interactivos. Pertenece a la vista de diseño del sistema y es esencial para conceptualizar y validar visualmente cómo lucirá y funcionará una aplicación antes de ser desarrollada.
Figma permite diseñar pantallas, componentes reutilizables, flujos de navegación y prototipos interactivos, lo que facilita la comunicación entre diseñadores, desarrolladores y otros miembros del equipo. Su funcionalidad en la nube permite la colaboración en tiempo real, haciendo posible que múltiples usuarios trabajen sobre un mismo proyecto simultáneamente.
Además, Figma ofrece una estructura de trabajo basada en capas, marcos y componentes, lo cual fomenta la organización y reutilización eficiente del diseño. Esto es especialmente útil para mantener la coherencia visual y funcional en proyectos grandes y complejos.
En esta unidad aprenderás a utilizar Figma para diseñar interfaces intuitivas, a crear prototipos navegables que simulen el comportamiento real de la aplicación, y a colaborar efectivamente en entornos de desarrollo ágil. Esta herramienta resulta fundamental en etapas tempranas del desarrollo de software, así como en la validación de ideas y pruebas con usuarios finales.
-
Opened: Tuesday, 10 June 2025, 12:00 AMDue: Wednesday, 11 June 2025, 11:59 PM
Estimados Estudiantes
En este espacio se debe subir el taller "DISEÑO DE SISTEMA UTILIZANDO UML II" - Entrega Final
-