Está en la página 1de 5

Examen Final

Capitulo 12 Pressman

David castro Hernández

92020029

1. Qué es un patrón de diseño

R//.Un patrón de diseño se caracteriza como “una regla de tres partes que expresa una
relación
entre cierto contexto, un problema y una solución” [Ale79]. Para el diseño de software, el
contexto permite al lector entender el ambiente en el que reside el problema y qué
solución sería
apropiada en dicho ambiente. Un conjunto de requerimientos, incluidas limitaciones y
restricciones, actúan como sistema de fuerzas que influyen en la manera en la que puede
interpretarse el problema en este contexto y en cómo podría aplicarse con eficacia la
solución.

2. Cuáles son las características de un patrón de diseño.

Resuelve un problema: los patrones entrañan soluciones, no sólo principios o


estrategias abstractas.
• Es un concepto probado: los patrones incluyen soluciones con un historial, no
teorías o especulaciones.
• La solución no es obvia: muchas técnicas de solución de problemas (como los
paradigmas o métodos de diseño de software) tratan de obtener soluciones a
partir de sus principios originales. Los mejores patrones generan indirectamente
una solución a un problema, enfoque necesario para los problemas más difíciles
del diseño.
• Describe una relación: los patrones no sólo describen módulos, sino estructuras y
mecanismos más profundos del sistema.
• El patrón tiene un componente humano significativo (minimiza la intervención
humana). Todo el software sirve para el confort humano o la calidad de vida; los
mejores patrones recurren explícitamente a la estética y a la utilidad.

3. Que son los patrones arquitectónicos, de datos, de diseño y de webapps.

Patrones arquitectónicos: describen problemas de diseño de base amplia que se


resuelven con el empleo de un enfoque estructural. Los patrones de datos describen
problemas recurrentes orientados a datos y las soluciones de modelado de datos que
pueden emplearse para resolverlos.
• Patrones de datos describen problemas recurrentes orientados a datos y las soluciones
de
modelado de datos que pueden emplearse para resolverlos. Los patrones de componentes
(también llamados patrones de diseño) 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.
• Patrones de diseño: Los patrones de componentes (también llamados patrones de
diseño)
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.
• Patrones de webapp: 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. En un nivel de abstracción más bajo, los idiomas describen la
forma de implementar todo un algoritmo específico o una parte de él, o bien una
estructura de datos, para un componente de software en el contexto de un lenguaje de
programación específico.

4. Cuáles son los patrones de diseño de relevancia para el diseño orientado a objetos

Los patrones creacionales: se centran en la “creación, composición y


representación” de objetos. hacen la observación de que los patrones
creacionales “encierran conocimiento acerca de cuáles son las clases concretas
que usa el sistema”, pero al mismo tiempo “ocultan la forma en la que las
instancias de dichas clases se crean y agrupan”. Los patrones creacionales ofrecen
mecanismos que hacen más fácil la formación de las instancias de los objetos
dentro de un sistema y establecen “restricciones en el tipo y número de objetos
que es posible crear dentro de un sistema”
Los patrones estructurales: se centran en problemas y soluciones asociados con la
manera en la que se organizan e integran las clases y objetos para construir una
estructura más grande. En esencia, ayudan a establecer relaciones entre entidades
dentro de un sistema. Por ejemplo, los patrones estructurales que se centran en
aspectos orientados a clases proporcionan mecanismos de herencia que conducen
a interfaces de programa más eficaces. Los patrones estructurales que se centran
en objetos sugieren técnicas para combinar objetos dentro de otros objetos o para
integrarlos en una estructura más amplia.
Los patrones conductuales: se enfocan a problemas asociados con la asignación
de responsabilidad entre los objetos y a la manera en la que se efectúa la
comunicación entre ellos.

5. Defina los siguientes patrones:

a. De fábrica abstracta: centraliza la decisión acerca de para qué fábrica


deben hacerse instancias
b. Adaptador: “adapta” una interfaz para una clase en otra que espera un
cliente.
c. Iterador: los iteradores se utilizan para acceder en forma secuencial a los
elementos de un agregado sin exponer su representación subyacente.
d. Prototipo: se usa cuando el costo inherente que implica crear un nuevo
objeto en la forma estándar (como con el empleo de una “nueva” clave)
es prohibitivo para una aplicación dada.
e. Tubos y filtros: cadena de procesos en los que la salida de cada uno es la
entrada del siguiente.
f. De comando: objetos de comando que encierran una acción y sus
parámetros.

6. Cuáles son las diferencias entre patrones de diseño y estructuras

1. 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. Una ventaja de las estructuras es que se escriben en lenguajes de
programación y no sólo son estudiadas, sino ejecutadas y reutilizadas
directamente
2. 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.
3. Los patrones de diseño están menos especializados que las estructuras. Las
estructuras siempre tienen un dominio particular de aplicación. En contraste, los
patrones de diseño se usan en casi
cualquier tipo de aplicación. Si bien es posible tener patrones de diseño más
especializados, incluso éstos no imponen la arquitectura de una aplicación

7. Que es un lenguajes de patrones

Un lenguaje de patrón 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.
En un lenguaje de patrón, los patrones de diseño están organizados en forma tal
que proporcionan un “método estructurado para describir las buenas prácticas de
diseño en un dominio particular”.
En cierta forma, un lenguaje de patrones es análogo a un manual de instrucciones
de hipertexto para resolver problemas en un dominio específico de aplicaciones.

8. Indique cuatro tareas de diseño basado en patrones

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.
• 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. Tal vez sea
necesario buscar en varios depósitos de patrones, así como en la lista de
aquellos que correspondan a la solución arquitectónica. Si se encuentra un
patrón apropiado, hay que adaptar la solución del diseño propuesta y
construir un elemento del modelo del diseño que lo represente de manera
adecuada.
• A partir de un problema amplio, determinar si para el mismo se dispone
de uno o más patrones arquitectónicos. Si existe un patrón arquitectónico,
hay que asegurarse de estudiar todos los patrones colaboradores. Si el
patrón es apropiado, debe adaptarse la solución del diseño propuesta y
elaborar un elemento del modelo del diseño que lo represente en forma
adecuada.
• Asegurarse de refinar el diseño a medida que se obtiene de los patrones,
con el empleo de criterios de calidad como guía.

9. Indique 4 categorías de patrones de interfaz de usuario

Patrón: IndicadordeAvance (ProgressIndicator)


Descripción breve: Proporciona una indicación del avance cuando una
operación dura más de n segundos.
Detalles: Se representa con un icono animado o cuadro de mensaje que
contiene alguna indicación visual (por ejemplo, una “barra de peluquero”,
barra de avance con indicador de porcentaje, etc.) de que el
procesamiento está en curso. También contiene una indicación de texto
acerca del estado del procesamiento.
Elementos de navegación: Es frecuente que contenga un botón que
permita al usuario hacer una pausa o cancelar el procesamiento.
• patrón MigajasdePan (BreadCrumbs) que se estudia más adelante.
Elementos de navegación: Cada nombre de función o contenido
representa un vínculo hacia la función o contenido apropiados.
Distribución de la página. Se aboca a la organización general de páginas
(para sitios web) o de distintas pantallas (para aplicaciones interactivas).

Capítulo 13

1. Describa el conjunto de metas para el diseño de aplicaciones web

Obtener la formación teórica y práctica necesaria para abordar el desarrollo de


aplicaciones que trabajan en Internet.
Comprender la problemática que se plantea en el desarrollo de software debido a
la existencia de Internet.
Conocer los principales elementos tecnológicos para trabajar con Internet.
2. Cuáles son los mecanismos empleados para implementar las opciones de
navegación de una aplicación web

Coherencia: Cumplir las expectativas del usuario.


Simplicidad: No hagas más de lo que necesites hacer.

3. Indique los elementos de la pirámide de diseño de las webapps.

La pirámide central representa el sitio web.

Todo web tiene una finalidad concreta, un vértice que debe estar muy bien
definido desde la planificación del proyecto.
En la base de todo sitio web existen dos vértices, la función (desarrollo) y la forma
(diseño). A mi entender una balanza al 50% donde debe existir un equilibrio perfecto entre
el aspecto y la funcionalidad. La función sin la forma resulta aburrida y es necesario
inspirar al usuario. Por el contrario, si un sitio web resulta atractivo pero su funcionalidad
es limitada, el usuario acabará por irse frustrado.

También podría gustarte