Semana 8 Flashcards

1
Q

¿Cómo se caracteriza un patrón de diseño?

A

Como una regla de tres partes que expresa una relación entre cierto contexto, un problema y una solución.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Características de un patrón de diseño eficaz

A
  • Resuelve un problema
  • Es un concepto probado
  • La solución no es obvia
  • Describe una relación
  • Minimiza la intervención humana (tiene un componente humano significativo).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Patrón generativo

A

Produce resultados predecibles, describe un fenómeno.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Describe un contexto y un problema, pero no ofrece ninguna solución clara.

A

Patrón no generativo

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Describen problemas de diseño de base amplia que se resuelven con el empleo de un enfoque estructural.

A

Patrones arquitectónicos

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Patrones de datos

A

Describen problemas recurrentes orientados a datos y las soluciones de modelado de datos que pueden emplearse para resolverlos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Patrones de componentes (también llamados patrones de diseño)

A

Se enfocan a problemas asociados con el desarrollo de subsistemas y componentes, así como a la manera en la que se comunican entre sí y su ubicación dentro de una arquitectura mayor.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Patrones de diseño de la interfaz

A

Describen problemas comunes de interfaz de usuario y su solución con un sistema de fuerzas que incluye las características específicas de los usuarios finales.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Patrones de webapp

A

Enfrentan un conjunto de problemas que surgen cuando se elaboran webapps y es frecuente que
incorporen muchas de las otras categorías de patrones mencionadas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Se centran en la “creación, composición y representación” de objetos.

A

Patrones creacionales

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Entre los patrones creacionales se encuentran:

A

patrón de fábrica abstracta (, patrón de método de fabricación, patrón constructor

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

centraliza la decisión acerca
de para qué fábrica deben hacerse instancias.

A

Patrón de fábrica abstracta:

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

centraliza la creación de
un objeto de tipo específico para elegir una entre varias implementaciones.

A

Patrón de método de fabricación:

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

separa la construcción de un objeto complejo a partir de su representación, de modo que el mismo proceso
de construcción pueda crear representaciones distintas.

A

Patrón constructor

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Entre los patrones estructurales se encuentran:

A

Patrón adaptador, patrón agregado, patrón de puente

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Patrón adaptador

A

adapta una interfaz para una clase en otra que espera un cliente.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Patrón agregado

A

es una versión del patrón compuesto con métodos para agregar hijos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Patrón de puente

A

desacopla una abstracción de su implementación, de modo que las dos puedan variar en forma independiente.

19
Q

Entre los patrones conductutales se encuentran:

A
  • Cadena de patrones de responsabilidad, patrón de comando, escucha de eventos.
20
Q

objetos de comando que son manejados o pasados a otros objetos por medio de otros que contienen procesamiento lógico.

A

Cadena de patrones de responsabilidad

21
Q

Objetos de comando que encierran una
acción y sus parámetros.

A

Patrón de comando

22
Q

Se distribuyen datos a objetos registrados
para recibirlos.

A

Escucha de eventos

23
Q

Esqueleto de una infraestructura específica para la
implementación o “miniarquitectura reutilizable”

A

Estructura

24
Q

Diferencias entre estructuras y patrones

A
  • Los patrones de diseño son más abstractos que las estructuras. Las estructuras están incrustadas en
    el código, pero en éste sólo es posible incrustar ejemplos de patrones.
  • Los patrones de diseño son elementos arquitectónicos más pequeños que las estructuras. Una estructura normal contiene varios patrones de diseño, pero lo contrario nunca se cumple.
  • Los patrones de diseño están menos especializados que las estructuras. Las estructuras siempre tienen un dominio particular de aplicación.
25
Q

agrupa un conjunto de patrones, cada uno
de los cuales se describe con el uso de un formato estandarizado e interrelacionado para mostrar cómo colaboran los patrones para resolver problemas en un dominio de aplicación.

A

Lenguaje

26
Q

¿Quién originalmente propuso lenguajes de patrón para construir arquitecturas y hacer planeación urbana?

A

Christopher Alexander

27
Q

“El buen diseño de software no se logra sólo poniendo juntas las partes ejecutoras”.

A

El buen diseño comienza con la consideración del panorama. Cuando se evalúa panorama , se extrae una jerarquía de problemas que deben resolverse. Todo será afectado por las fuerzas del sistema que influirán en la naturaleza de la solución propuesta.

28
Q

Enfoque que permite que un diseñador
piense en patrones según Shalloway y Trott [Sha05]:

A
  1. Asegurarse de entender el panorama.
  2. Estudiar el panorama.
  3. Comenzar el diseño con patrones del “panorama” que establezcan un contexto o esqueleto para el trabajo de diseño adicional.
  4. “Trabajar dentro del contexto” [Sha05] en busca de patrones en niveles más bajos de
    abstracción que contribuyan a la solución del diseño.
  5. Repetir los pasos 1 a 4 hasta que el diseño esté completo.
  6. Mejorar el diseño.
29
Q

¿Cuáles son las tareas de diseño?

A
  1. Examinar el modelo de requerimientos y desarrollar una jerarquía del problema.
  2. Determinar si se ha desarrollado un lenguaje del patrón confiable para el dominio del problema.
  3. A partir de un problema amplio, determinar si para el mismo se dispone de uno o más patrones arquitectónicos.
  4. Con el uso de colaboraciones provistas para el patrón arquitectónico, deben estudiarse los problemas en el nivel de subsistema o componente, y buscar
    los patrones más apropiados para enfrentarlos.
  5. Repetir los pasos 2 a 5 hasta que se hayan resuelto todos los problemas amplios.
  6. Si los problemas de diseño de la interfaz de usuario han sido aislados (éste es el caso casi siempre), buscar los muchos depósitos de patrones de diseño de
    la interfaz de usuario para encontrar patrones apropiados.
  7. Sin importar su nivel de abstracción, si resulta promisorio un lenguaje de patrón o un depósito de patrones o un patrón individual, hay que comparar el
    problema por resolver con el patrón o patrones presentados.
  8. Asegurarse de refinar el diseño a medida que se obtiene de los patrones, con el empleo de criterios de calidad como guía.
30
Q

Errores comunes en el diseño

A
  • no se dedica el tiempo suficiente a entender el problema subyacente, su contexto y fuerzas, y en consecuencia se elige un patrón que parece correcto, pero es inapropiado para llegar a la solución que se requiere.
  • Forzar el patrón para que se ajuste.
  • el problema tiene fuerzas que no son consideradas por el patrón escogido, lo que da como resultado un ajuste deficiente o erróneo.
  • Se aplica literalmente y no se implementan las adapataciones requeridas para el espacio del problema.
31
Q

PATRONES DE DISEÑO EN EL NIVEL DE COMPONENTES

A

Brindan soluciones comprobadas que se
abocan a uno o más subproblemas extraídos del modelo de requerimientos. En muchos casos,
los patrones de diseño de este tipo se centran en algún elemento funcional de un sistema.

32
Q

Cuando se consideran los problemas de diseño que deben resolverse para construir una webapp, es bueno considerar categorías de patrones en dos dimensiones:

A

Centrarse en el diseño del patrón y en el nivel de granularidad.

33
Q

Los patrones de webapps se clasifican con el empleo de los siguientes niveles de atención en el
diseño:

A
  • Patrones de arquitectura de la información
  • Patrones de navegación
  • Patrones de interacción
  • Patrones de presentación
  • Patrones funcionales
34
Q

se relacionan con la estructura general
del espacio de información y con las formas en las que los usuarios interactúan con
ésta.

A
  • Patrones de arquitectura de la información
35
Q

Definen estructuras de los vínculos de navegación, tales
como jerarquías, anillos, recorridos, etcétera.

A

Patrones de navegación

36
Q

Patrones de interacción

A

Se enfrentan al modo en el que la interfaz informa al usuario de las consecuencias de una acción específica, cómo expande el usuario el contenido con base
en el empleo del contexto y sus deseos, la mejor manera de describir el destino implícito por un vínculo, la manera de informar al usuario acerca del estado de una interacción en curso y aspectos relacionados con la interfaz.

37
Q

Ayudan a presentar el contenido al usuario a través de la interfaz.

A
  • Patrones de presentación:
38
Q

Definen los flujos de trabajo, comportamientos, procesamiento, comunicación y otros elementos algorítmicos dentro de una webapp

A

Patrones funcionales

39
Q

En términos del nivel de granularidad, los patrones se describen en los niveles siguientes:

A

Patrones arquitectónicos, patrones de diseño y patrones de componentes.

40
Q

¿Con qué se relaciona el nivel de abstracción * Patrones arquitectónicos?

A

Con patrones que definen la estructura general de la webapp, que indican las relaciones entre
diferentes componentes o incrementos y que definen las reglas para especificar las relaciones entre los elementos (páginas, paquetes, componentes y subsistemas) de la arquitectura.

41
Q

Éstos se abocan a un elemento específico del diseño, como un agrupamiento de componentes, a fin de resolver algún problema de diseño, relaciones
entre los elementos de una página, o mecanismos para efectuar la comunicación entre componentes

A

Patrones de diseño

42
Q

Este nivel de abstracción se relaciona con elementos individuales de pequeña escala de una webapp. Algunos ejemplos son los elementos de
interacción individual (botones de radio), de navegación (¿cómo dar formato a los
vínculos?) o funcionales (algoritmos específicos).

A

Patrones de componentes

43
Q

RESUMEN de los patrones de diseño

A

Dan un mecanismo codificado para describir problemas y su solución en forma tal que permiten que la comunidad de ingeniería de software diseñe el conocimiento para que sea reutilizado.

44
Q

¿Cuál es la función final de un patrón de diseño?

A

Describir un problema, indicar el contexto y permitir que el usuario entienda el ambiente en el que sucede el problema enlistando un sistema de fuerzas que indican cómo puede interpretarse el problema en su contexto, y el modo en el que se aplica la solución.