You are on page 1of 8
Preguntas 12.1. Analice las tres “partes” de un patrén de diseiio y dé un ejemplo conereto de cada uno en algtin campo distinto del software Los patrones de diseito son soluciones probadas para problemas comunes en el desarrollo de software. Los patrones de disefio se dividen en tres partes: la estructura, el comportamiento y la creacién. A continuacién, se presentan ejemplos concretos de cada una de estas partes en campos distintos al del software: Estructura: La estructura se refiere a cémo los objetos se relacionan entre sf y cémo forman una estructura mds grande. Un ejemplo concreto de estructura en el campo de la moda es el patrén de disefio "tela a cuadros” (también conocido como patrén de tartén). Este patrén consiste en un disefio repetitivo de Iineas horizontales y verticales de diferentes colores que se cruzan entre sf para formar cuadros. Este patrén se utiliza comiinmente en la ropa escocesa y se asocia con la cultura escocesa. Comportamiento: El comportamiento se refiere a c6mo los objetos interactiian entre sf y cémo se coordinan para realizar una tarea. Un ejemplo concreto de comportamiento en el campo de la psicologia es el patron de disefto "condicionamiento clisico”. Este patrén se refiere al proceso mediante el cual un estimulo neutro se asocia con un estimulo que ya tiene una respuesta natural para producir una respuesta condicionada. Por ejemplo, si un perro aprende a asociar el sonido de una campana con la hora de la comida, comenzaré a salivar al ofr la campana, incluso si la comida no esté presente. Creacién: La creacién se refiere a c6mo se crean y se gestionan los objetos en un sistema, Un ejemplo concreto de creacién en el campo de la arquitectura es el patrén de disefio "estilo gético’ Este patrén se refiere a un estilo arquitect6nico que se desarroll6 en Europa en la Edad Media y se caracteriza por arcos apuntados, bévedas de cruceria y rosetones. Este estilo se cre6 en respuesta a las necesidades de la iglesia catdlica de construir edificios mas altos y més grandes para acomodar a sus congregaciones en crecimiento 12.2. ;Cuél es la diferencia entre un patrén no generativo y uno generativo? En el contexto de la programacién, un patrén de disefio es una solucién generalmente aplicable a un problema comtin en el desarrollo de software. Existen dos tipos principales de patrones de disefio: patrones generativos y patrones no generativos. Un patrén no generativo es aquel que se utiliza para proporcionar una solucién especifica a tun problema concreto en un programa. Es decir, es una solucién a un problema particular que no se puede aplicar a otros problemas similares. Este tipo de patrdn se utiliza para solucionar problemas especificos y no se enfoca en crear nuevas estructuras o elementos Por otro lado, un patrén generativo es aquel que se utiliza para crear objetos o estructuras de objetos. Estos patrones proporcionan una forma de crear objetos complejos mediante la combinacién de objetos més simples. En otras palabras, estos patrones son capaces de generar nuevos objetos a partir de otros ya existentes. En resumen, la principal diferencia entre un patrén no generativo y uno generativo es que el primero se enfoca en solucionar problemas especificos mientras que el segundo se enfoca en crear nuevas estructuras y objetos a partir de elementos més simples. 12.3. ;En qué difieren los patrones arquitect6nicos de los patrones de componentes? Los patrones arquitecténicos y los patrones de componentes son dos tipos diferentes de patrones de disefio utilizados en el desarrollo de software. A continuacién se detallan algunas de las principales diferencias entre ellos: Prop6sito: los patrones arquitecténicos se utilizan para describir la estructura general de un sistema de software, incluyendo su organizaci6n, comunicacién y comportamiento, Por otro lado, los patrones de componentes se utilizan para describir cémo se pueden estructurar y organizar los componentes de un sistema de software. Escala: los patrones arquitecténicos son de mayor escala y se enfocan en el diseiio de sistemas grandes y complejos. En cambio, los patrones de componentes se centran en el disefio de componentes individuales y su interacci6n dentro de un sistema, Abstraccién: los patrones arquitecténicos son més abstractos y proporcionan un marco general para la organizacién y el disefio de un sistema. Los patrones de componentes son mis concretos y se enfocan en Ia estructura interna de los componentes individuales. Relacién: los patrones de componentes son a menudo utilizados dentro de los patrones arquitect6nicos para describir la estructura interna de los componentes y cémo se relacionan entre si En resumen, los patrones arquitect6nicos y los patrones de componentes se utilizan para diferentes propdsitos y en diferentes escalas de disefto de software. Los patrones arquitect6nicos describen la estructura general de un sistema, mientras que los patrones de Componentes describen cémo se pueden estructurar y organizar los componentes duales dentro de un sistema. 12.4. ,Quées estructura y en qué difiere de un patrén? ;Qué es un idioma y en qué se diferencia de un patrén? En el contexto del disefio de software, los términos “estructura”, “patrén” e “idioma” se refieren a conceptos relacionados pero diferentes: Estructura: se refiere a la organizaci6n o disposicién de los elementos de un sistema de software. La estructura de un sistema puede incluir componentes, médulos, clases, funciones, ete. La estructura se enfoca en cémo los elementos estén organizados y relacionados entre sf Patrén: se refiere a una solucién generalmente aplicable a un problema comin en el desarrollo de software, Un patrén describe un conjunto de componentes, relaciones y comportamientos que se pueden utilizar para resolver un problema especifico. Los patrones se enfocan en cémo los elementos deben estar organizados y cémo se relacionan para solucionar un problema Idioma: se refiere a un conjunto completo de patrones y précticas de disefio que se utilizan en un dominio especifico de software. Un idioma proporciona una forma coherente y sistemdtica de organizar y diseftar software en un érea particular. Un idioma se enfoca en cémo se deben estructurar y organizar los elementos en un dominio particular. Entonces, la principal diferencia entre estructura y patrén es que la estructura se enfoca en c6mo se organizan los elementos en un sistema, mientras que un patrén se enfoca en c6mo los elementos deben estar organizados para resolver un problema especifico. Por otro lado, la principal diferencia entre un patron y un idioma es que un patrén es una solucién generalmente aplicable a un problema comin en el desarrollo de software, mientras que un idioma es un conjunto completo de patrones y pricticas de diseiio que se utilizan en un dominio especifico de software. En otras palabras, un idioma es un conjunto de patrones y précticas de disefio que se utilizan juntos para resolver problemas en un érea particular, mientras que un patrén es una solucién especifica para un problema en particular. 12.6. Desarrolle un lenguaje de esqueleto de patrén para un deporte con el que esté familiarizado. Comience por abordar el contexto, el sistema de fuerzas y los problemas amplios que deban resolver un entrenador y su equipo. Sélo necesita especificar los nombres de los patrones y hacer la descripeién frase por frase de cada uno. Los jugadores del equipo: once jugadores en el campo de juego, cada uno con habilidades y roles especificos. Los oponentes: otro equipo de once jugadores, que intentan ganar el partido. El balén: objeto central del juego, que debe ser controlado y movido hacia la porterfa del oponente. Las reglas: conjunto de normas que rigen el juego y definen lo que es legal e ilegal. Problemas Amplios que debe Resolver el Entrenador y su Equipo: Definir la formacién y el estilo de juego del equipo. Identificar fortalezas y debilidades de los jugadores individuales y del equipo en general. Desarrollar estrategias para atacar y defender. Mantener la motivacién y el compromiso de los jugadores. Lenguaje de Esqueleto de Patrén: Patrén de Formaci6n: Define la disposicisn tictica de los jugadores en el campo de juego. Descripcién: Este patrén establece la formacién que el equipo usaré para cada partido. La formacién debe considerar la habilidad y las caracterfsticas de los jugadores, asf como las fortalezas y debilidades del equipo y del oponente. Ejemplo: El equipo jugaré en una formacién 4-4-2, con cuatro defensores, cuatro mediocampistas y dos delanteros. Patrén de Estrategia de Ataque: Define cémo el equipo atacaré al oponente para marcar goles. Descripcién: Este patrén establece las estrategias y técticas que el equipo utilizaré para atacar al oponente. Las estrategias deben tener en cuenta la formacién del equipo y del oponente, asi como las fortalezas y debilidades del equipo y del oponente. Ejemplo: El equipo utilizara una estrategia de ataque de posesién de balén, con pases cortos y r§pidos para crear oportunidades de gol. Patrén de Estrategia de Defensa: Define como el equipo se defendera del oponente para evitar que marque goles. Descripcién: Este patrén establece las estrategias y técticas que el equipo utilizaré para defenderse del oponente. Las estrategias deben tener en cuenta la formacién del equipo y del oponente, asf como las fortalezas y debilidades del equipo y del oponente. Ejemplo: El equipo utilizard una estrategia de defensa de presién alta, con los defensores avanzando para presionar al oponente y recuperar el balén. Patrén de Roles de los Jugadores: Define los roles y responsabilidades de cada jugador en el equipo. Descripcién: Este patrén establece los roles y responsabilidades de cada jugador en el equipo. Los roles deben considerar las habilidades y caracteristicas de cada jugador, asi como las necesidades del equipo en términos de formacién y estrategia Ejemplo: El portero es responsable de proteger la porteria y organizar la defensa, los defensores son responsables de proteger la porterfa y evitar que el oponente marque goles, Jos mediocampistas son responsables de crear oportunidades de gol y apoyar tanto en defensa como en at 12.7. Encuentre cinco repositorios de patrones y presente la descripcién abreviada de los tipos de patrones que contenga cada uno. The Gang of Four (GoF) Design Patterns: Este es un clasico repositorio de patrones de disefio de software escrito por Erich Gamma, Richard Helm, Ralph Johnson y John Vlissides, Contiene 23 patrones de disefio categorizados en tres grupos: patrones de creacién, patrones de estructura y patrones de comportamiento, POSA (Pattern-Oriented Software Architecture): Este es un repositorio de patrones de arquitectura de software compilado por Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad y Michael Stal. Contiene 5 voltimenes y mds de 50 patrones, que cubren temas como sistemas distribuidos, sistemas de informacién empresarial y sistemas de tiempo real. Security Patterns: Este es un repositorio de patrones de seguridad de software desarrollado por Markus Schumacher, Frank Buschmann y Stefan Rass. Contiene 16 patrones, que cubren temas como autenticacién, autorizacién, criptografia y deteccién de intrusiones. UI Patterns: Este es un repositorio de patrones de disefio de interfaces de usuario creado por Jan Jursa, Contiene més de 100 patrones, que cubren temas como navegacién, basqueda, formularios y listas. Game Programming Patterns: Este es un repositorio de patrones de programacién de videojuegos creado por Bob Nystrom. Contiene 18 patrones, que cubren temas como el bucle de juego, el control de estado y Ia programacién de TA. 12.8. Cuando Christopher Alexander afirma que “un buen disefio no se logra con s6lo reunir las partes ejecutantes”, ,qué eree usted que quiere decir? Cuando Christopher Alexander afirma que "un buen disefio no se logra con s6lo reunir las partes ejecutantes", se refiere a la idea de que el diseiio no se trata simplemente de ensamblar los componentes individuales de un sistema, sino de comprender la rek entre ellos y cémo trabajan juntos para crear un todo coherente y funcional. En otras palabras, no se trata solo de agregar componentes y caracterfsticas a un sistema, sino de considerar c6mo esos componentes interactiian entre sf y cémo se integran para lograr los objetivos del sistema en su conjunto. Un buen disefio se basa en una comprensién profunda de cémo funciona el sistema en su totalidad, y no solo en una coleccién de partes independientes. En el contexto del disefio de software, esto significa que no se puede simplemente agregar caracteristicas y funcionalidades a una aplicacién sin tener en cuenta cémo interactéan con el resto del sistema y cémo afectan la experiencia del usuario, Se necesita una comprensi6n completa del sistema para crear un diseiio efectivo y funcional, 12.12. La banda de los cuatro [Gam95] ha propuesto varios patrones de componentes aplicables a sistemas orientados a objetos. Seleccione uno de ellos (disponibles en web) y analicelo, Uno de los patrones de componentes propuestos por la Banda de los Cuatro (GoF) es el patrén Decorator. El patrén Decorator se utiliza para afiadir funcionalidad a un objeto dindmicamente, sin modificar su estructura interna, EI patrén se compone de dos elementos principales: un componente abstracto y uno 0 mis componentes decoradores. El componente abstracto define la interfaz basica para el objeto que se va a decorar, mientras que los componentes decoradores afiaden funcionalidad adicional al objeto. Los componentes decoradores tienen la misma interfaz que el componente abstracto, lo que les permite ser utilizados de manera intercambiable con el objeto original, ando la En términos de implementacién, el patrén Decorator se implementa uti composicién. El componente abstracto y los componentes decoradores implementan la ‘misma interfaz, Io que permite que los componentes decoradores envuelvan el componente abstracto. Cada componente decorador agrega una funcionalidad especifica al objeto envuelto, y el objeto decorado puede tener miltiples decoradores. Por ejemplo, en un sistema de venta de cafeterias, el objeto “café” puede ser el componente abstracto, mientras que los componentes decoradores pueden ser "leche", "azticar", "nata", etc. Los clientes pueden entonces agregar componentes decoradores adicionales para personalizar su caf6.E! patrén Decorator es util cuando se quiere aftadir funcionalidad a un objeto sin modificar su estructura interna o crear subclases excesivas. Permite la extensién dinémica de la funcionalidad, y también permite la combinacién de diferentes funcionalidades de manera flexible. 12.13. Encuentre tres repositorios de patrones de interfaz de usuario. Seleccione uno de cada repositorio y haga una descripcién breve de él. composicién. El componente abstracto y Ios componentes decoradores implementan la misma interfaz, lo que permite que los componentes decoradores envuelvan el componente abstracto. Cada componente decorador agrega una funcionalidad especifica al objeto envuelto, y el objeto decorado puede tener miltiples decoradores. Por ejemplo, en un sistema de venta de cafeterias, el objeto "café" puede ser el componente abstracto, mientras que los componentes decoradores pueden ser “leche”, etc. Los clientes pueden entonces agregar componentes decoradores adicionales para personalizar su café, El patrén Decorator es iitil cuando se quiere afiadir funcionalidad a un objeto sin modificar su estructura interna o crear subclases excesivas. Permite la extensién dinémica de la funcionalidad, y también permite la combinacién de diferentes fun flexible. Encuentre tres repositorios de patrones de interfaz de usuario. Seleccione uno de cada repositorio y haga una descripcién breve de él Repositorio 1: UF-Pattemns Patrén seleccionado: Empty state pattem Descripcién: El patrén Empty state se utiliza para mostrar una pantalla itil cuando no hay contenido disponible. En lugar de mostrar una pantalla en blanco, el patron muestra un mensaje claro y orientativo que indica por qué no hay contenido disponible. Ademis, el patrdn también puede proporcionar sugerencias y orientacién sobre cémo agregar contenido 6 c6mo navegar por la aplicacién. Repositorio 2: Material Design Patron seleccionado: Floating Action ButtonDescripcién: El patrén Floating Action Button se utiliza para proporcionar una accién principal en la interfaz de usuario. Se trata de un botén flotante y circular que se coloca en la parte inferior derecha de Ia pantalla, y que se utiliza para acciones de gran importancia o frecuencia, El botén flotante se coloca sobre el contenido existente, lo que Io hace faicilmente accesible sin interrumpir la experiencia del Repositorio 3: Mobile Patterns Patrén seleccionado: Swipe to Refresh Descripcién: El patrén Swipe to Refresh se utiliza para actualizar el contenido de una aplicacién mediante un gesto de desplazamiento hacia abajo en la pantalla. El patrén es itil para aplicaciones que requieren una actualizaci6n frecuente, como aplicaciones de noticias o redes sociales. Cuando el usuario desliza hacia abajo en la pantalla, la aplicaci6n muestra un indicador de carga y actualiza automaticamente el contenido cuando se completa la actualizacién. 12.14, Encuentre tres repositorios de patrones para webapps. Seleccione uno de cada repositorio y describalos brevemente. Repositorio 1: UL-Pattems for Web Apps Patrén seleccionado: Master Detail Descripeién: El patrén Master Detail se utiliza para mostrar una lista de elementos en una columna principal (master) y el detalle de cada elemento seleccionado en una columna secundaria (detail). Es til para aplicaciones con una gran cantidad de contenido que necesita ser organizado y presentado de manera jerérquica. Repositorio 2: Web Design Ledger Patron seleccionado: Infinite Scroll Descripcién: El patrén Infinite Scroll se utiliza para cargar contenido adicional autométicamente a medida que el usuario se desplaza hacia abajo en la pagina. Es ttil para sitios web con una gran cantidad de contenido, como redes sociales 0 sitios de noticias, ya que permite @ los usuarios explorar el contenido de manera continua sin tener que hacer clic en paginas adicionales. Repositorio 3: PatternFly Patrén seleccionado: Data Table Descripcién: El patrén Data Table se utiliza para mostrar datos tabulares en una interfaz de usuario, Es «til para aplicaciones con grandes conjuntos de datos que necesitan ser organizados y presentados de manera clara y concisa. El patron incluye caracteristicas como filtrado, ordenamiento y paginacién para facilitar la navegacién y la exploracién de los datos,

You might also like