patrones de diseño web

22
UNIVERSIDAD GERARDO BARRIOS USULUTAN ASIGNATURA: INGENIERÍA DE SOFTWARE II DOCENTE: LICDA. CARLA MILAGRO LÓPEZ VÁSQUEZ CICLO III TEMA: PATRONES DE DISEÑO WEB INTEGRANTES: HUGO ALEXANDER MARTINEZ GAITAN USTS021214

Upload: hugo-alexander-martinez

Post on 08-Apr-2016

217 views

Category:

Documents


2 download

DESCRIPTION

Investigación sobre el tema Patrones de Diseño Web y subtemas 1 Principios de usabilidad web. 4.2 Diseño web líquido o fluido. 4.3 Diseño web hibrido. 4.4 Diseño web para móviles. 4.5 Patrones creacionales. 4.6 Patrones de comportamiento. 4.7 Patrones estructurales.

TRANSCRIPT

Page 1: Patrones de Diseño Web

UNIVERSIDAD GERARDO BARRIOS

USULUTAN

ASIGNATURA:

INGENIERÍA DE SOFTWARE II

DOCENTE:

LICDA. CARLA MILAGRO LÓPEZ VÁSQUEZ

CICLO III

TEMA:

PATRONES DE DISEÑO WEB

INTEGRANTES:

HUGO ALEXANDER MARTINEZ GAITAN USTS021214

Page 2: Patrones de Diseño Web

Unidad 04 Patrones de Diseño Web.

4.1 Principios de usabilidad web.

¿Qué es un Patrón de Diseño?

“Los patrones de diseño son el esqueleto de las soluciones a problemas comunes en el

desarrollo de software.”

Es decir, brindan una solución ya probada y documentada a problemas de desarrollo

de software que están sujetos a contextos similares. Debemos tener presente los

siguientes elementos de un patrón: su nombre, el problema (cuando aplicar un patrón),

la solución (descripción abstracta del problema) y las consecuencias (costos y bene

Existen varios patrones de diseño popularmente conocidos, los cuales se clasifican de

la siguiente manera:

Patrones Creacionales: Inicialización y configuración de objetos.

Patrones Estructurales: Separan la interfaz de la implementación. Se ocupan de cómo

las clases y objetos se agrupan, para formar estructuras más grandes.

Patrones de Comportamiento: Más que describir objetos o clases, describen la

comunicación entre ellos.

Veamos un poco en qué consisten los distintos tipos de patrones, cuáles son sus fines

y qué beneficios nos aportan.

Page 3: Patrones de Diseño Web

Principios de usabilidad

Al cliente interesa dejarle las cosas de la forma más sencilla

Cuantos menos pasos tenga que dar un usuario para acceder a lo que busca es mejor.

Principios de usabilidad e imágenes

Una imagen vale más que mil palabras, con lo que tenemos que apoyarnos en ellas

para explicar cualquier mensje.

La perfecta sintonía de los textos, en mensaje de voz y las imágenes hacen que

cualquier aplicación sea más usada,

Principios de usabilidad y los colores, Los colores han de adaptarse a cada mensaje y

contexto.

Índice de principios de usabilidad

SN Principio de usabilidad Relevancia Obligado

1. Rapidez Media Si

2. Diseño Media SI

3. Claridad Alta Si

4. Facilidad Alta SI

Page 4: Patrones de Diseño Web

4.2 Diseño web líquido o fluido.

Cada día accedemos más a internet a través de teléfonos y tabletas. Cuando

analizamos las métricas de nuestros clientes del sector de la hostelería nos

encontramos (mayo 2012) que aproximadamente el 40% de las visitas a sus webs se

realizan a través de teléfonos móviles. En clientes más tradicionales observamos

(octubre 2012) incrementos mensuales del 19% en el acceso a su web con dispositivos

móviles.

En España el 56% de los teléfonos móviles son smartphones (somos el segundo país

del mundo con un porcentaje tan alto). En 2015 seremos uno de los primeros países

del mundo en donde habrá más accesos a internet desde dispositivos móviles

(smartphones y tablets) que desde ordenadores de escritorio. Adaptar nuestras webs a

las pantallas de los dispositivos móviles resulta ya más que necesario.

Diseño líquido o fluido (liquid or fluid layout). Una web tiene diseño líquido o fluido

cuando su tamaño se ajusta a la dimensión horizontal de la pantalla de forma

automática y sin necesidad de una barra de desplazamiento horizontal (scroll).

Page 5: Patrones de Diseño Web

El diseño se expande al ancho disponible de la pantalla porque el tamaño de los

distintos elementos (div) es un porcentaje del total disponible (100%) de la pantalla.

El problema surge en pantallas muy grandes como por ejemplo una TV Full HD de

1.920 x 1080 px porque el diseño se desajusta y aparecen grandes espacios en blanco.

Pero también sufren problemas las pantallas con resoluciones inferiores a 1.024 px de

ancho (tablets en posición portrait y móviles en posición landscape) porque las

imágenes se miniaturizan y los textos se vuelven ilegibles. Si para evitar estos

problemas se fija un ancho mínimo aparecen las barras de scroll de desplazamiento

horizontal.

Como muestra la imagen, para obviar estos problemas los diseñadores crean versiones

de layouts según la pantalla donde se vaya a visualizar la web: pantalla de televisión,

ordenador de escritorio, tablet, móvil.

Layout con un ancho mínimo de 1.420 px para pantallas Full HD TV hasta 1.980 px

Layout con un ancho mínimo de 1.236 px y un máximo de 1.420 px para ordenadores

de escritorio con una alta resolución de pantalla (por ejemplo un iMac)

Page 6: Patrones de Diseño Web

Layout con un ancho mínimo de 986 px y un máximo de 1.235 px para ordenadores de

escritorio normales

Layout para tablets con un ancho mínimo de 720 px en posicion vertical (portrait) y un

máximo de 985 px para tablets en posición horizontal (landscape)

El principal problema de un diseño líquido es el mantenimiento de diferentes versiones

de CSS. En una web con 16 páginas es más o menos fácil. Pero un site de ecommerce

con más de 5.600 referencias vivas en permanente actualización (alta y baja de

productos, versiones de color, tamaño, etc) es realmente un suplicio.

Diseño responsive. Se basa en la retícula (normalmente de 960 px de ancho) que se

divide en un número igual de columnas ya sean pares o impares. Estas columnas

pueden ser también elásticas (un porcentaje del ancho total) que hacen un ajuste aún

más fino al dispositivo. La hoja de estilos CSS3 define por medio de media queries en

qué pantalla se visualizará la página en función de una serie de parámetros como:

Ancho y alto de la ventana del navegador (width, high)

Orientación del dispositivo (puede ser portrait o landscape, es decir vertical u

horizontal)

Aspect-ratio (proporción entre el ancho y el alto de la pantalla por ejemplo 16:9)

Grid (número de columnas que muestra)

Resolución del dispositivo (densidad de píxeles que muestra la pantalla)

Color (número de colores que representa la pantalla)

Page 7: Patrones de Diseño Web

Hay cuatro parámetros mas (monochrome, device aspect-ratio, color-index, scan) que

ayudan a definir con mayor exactitud el dispositivo

En función del ancho de la pantalla del

dispositivo los bloques div se ordenan y

jerarquizan, de tal manera que los

elementos que estamos viendo en la

imagen superior se verían en un

dispositivo móvil en una columna

ordenada en la que todos los elementos

tendrían el mismo ancho.

Las ventajas del diseño responsive son:

Con una misma web (un sólo HTML y CSS) se cubren todas las resoluciones de

pantalla Se reducen los costes de creación y mantenimiento de una web, se acorta el

Page 8: Patrones de Diseño Web

desarrollo Optimización SEO, sólo hay una URL, se ahorran las redirecciones a otros

layouts (mobile.dominio.com)

Todos los usuarios disfrutan del mismo contenido (suele ser frustrante obtener

versiones light de las webs)

De esta manera el diseño responsive nos proporciona una visualización controlada de

la página, muy similar a la que nos ofrece el diseño de ancho fijo.

4.3 Diseño web hibrido.

La maquetación de una página web utilizando hojas de estilo en cascada (css) puede

hacerse mediante diseños híbridos, es decir, combinando las diferentes opciones de

maquetación con css:

Diseños de ancho fijo (utilizan píxeles).

Diseños de ancho variable, llamados diseños «líquidos» o «fluidos» (utilizan

porcentajes).

Diseños elásticos (utilizan «em»).

Los diseños híbridos combinan las tres opciones anteriores y representan la mejor

opción para que nuestros diseños sean compatibles tanto con cualquier resolución

(tamaño) de pantalla como con cualquier tamaño de letra. Al utilizar «em» y

«porcentajes», ambas unidades relativas, para las medidas de fuentes y cajas, cuando

aumentamos o disminuimos el tamaño de fuente en el navegador, o el tamaño de

pantalla se redimensiona automáticamente el tamaño de todos los elementos de la

página y se respeta nuestro diseño original.

Por tanto, este diseño es el ideal si pretendemos que nuestra «web» se visualice

correctamente en todo tipo de plataformas y/o dispositivos (teléfonos móviles,

celulares, ordenadores portátiles, ordenadores de sobremesa, tabletas, etc.).

Por ejemplo, en un diseño híbrido con dos columnas, una de ellas se expresará en

Page 9: Patrones de Diseño Web

porcentajes (%) para que se adapte al tamaño de la ventana del navegador y la otra se

expresará en «em» para que se adapte al tamaño del texto.

La clave en todos los diseños de Híbrida es siempre la atención al detalle para

proporcionar resultados de diseño gráfico de máxima calidad.

He aquí algunos ejemplos representativos de diseño gráfico de la agencia Híbrida, en

su faceta de agencia de diseño gráfico y publicitario: desde la creación de catálogos de

productos o de exposiciones artísticas internacionales hasta la definición de la

identidad corporativa de empresas.

CD Fundación Joan Miró: presentación de las obras de la exposición Espacios

Fronterizos a través de un CD-ROM interactivo.

Catálogo de muebles de cocina: diseño del catálogo de productos de Artificio, muebles

de cocina de gama alta.

Catálogo de Picasso: diseño de un catálogo de la exposición del Museo Picasso de

Málaga Dibujando con Picasso.

Catálogo de El Instituto Cervantes: creación de un catálogo para el Instituto Cervantes

de Roma acerca de una exposición internacional de arte.

Seri grafiado de CD: impresión y diseño de portadas y carátulas de Compact Disc y

DVD.

Diseño de Identidad Corporativa: diseño de todos los componentes de la imagen

corporativa para iniciar la identidad de medianas y pequeñas empresas.

Diseño en 3D: creación de objetos y escenario virtuales en 3-D.

Page 10: Patrones de Diseño Web

4.4 Diseño web para móviles.

Cuando se empieza en el mundo del diseño web,

tarde o temprano se encuentran con la necesidad

de adaptar páginas web a los dispositivos móviles.

Actualmente cuando el número de usuarios que

navegan por internet a través de su Smartphone ha

crecido considerablemente respecto hace unos

pocos años, es muy posible que un cliente pida

adaptar su web para las pantallas móviles.

Esas capas de contenido e imágenes que se

diseñaron en una última web y que desde el

navegador del ordenador se ve a las mil maravillas,

se descuadran o carecen de sentido en una pantalla

de 320 pixeles.

Toca darle un repaso a tus hojas de estilo, a continuación algunos consejos y trucos

útiles para subsanar esos posibles problemas y adaptar el diseño de tu web:

Media Queries

Las media queries incluidas en CSS3, permiten filtrar estilos según rangos de

resolución de pantalla en pixeles, pudiendo utilizar una media query para los estilos

específicos de tu web en la versión móvil.

Por ejemplo, dentro de un archivo.css podrías tener:

@media screen and (max-width:490px) {

/*Estilos CSS que adaptan el diseño de tu web a dispositivos con pantallas de un

máximo De 490 pixeles de ancho */

}

Page 11: Patrones de Diseño Web

De esta forma, estos estilos serian aplicados exclusivamente a los dispositivos

móviles sin la necesidad de cargar una hoja de estilo adicional.

También podría utilizarse una media query para cargar un archivo css solo para

determinadas resoluciones, basta con añadir entre las etiquetas <head></head>:

<link rel="stylesheet" type="text/css" media="only screen and (min-device-width: 300px)

and (max-device-width: 480px)" href="movil.css" />

En este ejemplo, el archivo movil.css solo será utilizado si el dispositivo que se conecta

a la web tiene una resolución a lo ancho de entre 300 y 480 pixeles.

Utilizar medidas de tamaño relativas

Cuando colocas una imagen o cualquier otro elemento puede ser tentador usar una

medida en pixeles. Estas visualizando la web en tu navegador de escritorio y defines un

imagen con una anchura de 700px, se ve perfectamente, pero puedes no ser

consciente de que con ese ancho la imagen se descuadra en la versión adaptada para

móviles de tu web, debido al menor ancho de pantalla.

Siempre que te sea posible, utiliza una medida relativa, en vez de la propiedad width:

700px, utiliza porcentajes. Si utilizas width: 50%, la imagen utilizará para desplegarse el

50% del espacio disponible dentro de la capa en que se encuentre, reduciéndose o

adaptándose el tamaño de la imagen automáticamente según el tamaño de la pantalla

en la que se visualice. Es una de las técnicas a seguir dentro de lo que se conoce

como responsive design.

Otra medida útil para definir el ancho y el alto es em, pues es proporcional al tamaño

de la fuente tipográfica que ve el usuario.

Herramientas para visualizar tu web en distintos dispositivos

Page 12: Patrones de Diseño Web

Para poder validar y visualizar el diseño de la web

adaptado para distintas resoluciones de pantalla

existen herramientas como screenfly.

Introduciendo la URL de tu página podrás comprobar

cómo se ve tu web en multitud de dispositivos,

distintas marcas de smartphones y tablets. Junto con

el siempre imprescindible Firebug podrás editar los

estilos y comprobar en vivo cómo va quedando el

diseño de la versión móvil de tu sitio web.

Llevo un tiempo utilizando screenfly y el resultado ha

sido satisfactorio, pero existen otras alternativas

interesantes como responsinator.

Crear una web especial para móviles y tablets

Programar una web con versión específica para móviles y/o tablets es una nueva

estrategia de marketing que beneficia a las empresas, atrayendo tráfico adicional de

usuarios móviles. Es por esto que los negocios online han comenzado a fijar sus

objetivos en el comercio móvil o M-commerce como otra opción rentable. Sin embargo

tanto las webs corporativas, como catálogos y tiendas on line, deben centrarse en las

preferencias particulares de los usuarios móviles y el tamaño reducido que supone este

tipo de pantallas. Hay diversos factores importantes a considerar a la hora de diseñar y

desarrollar una web para M-commerce (comercio móvil):

- Los usuarios móviles generalmente tienen prisa o poco tiempo y aprovechan breves

espacios de tiempo para navegar por el móvil, por tanto el proceso de compra y

navegación lo hemos estudiado para que sea realmente sencillo y breve, de tal forma

que puede comprar rápidamente o contactar con ustedes.

Page 13: Patrones de Diseño Web

- Se debe mostrar un diseño y metodología similar al sitio general, sin olvidar las

dimensiones reducidas de los dispositivos móviles, podrán tener los mismos contenidos

pero con una grata experiencia de navegación y compra.

- El cliente no tiene desventajas al usar la

versión móvil, si un producto o servicio se

encuentra en la versión general también se

encontrará en la versión móvil, es más la

versión móvil, para añadir satisfacción, se

les puede ofrecer otras ventajas como

información exclusiva, imágenes de

calidad, etc.

- Que sea compatible con diferentes tamaños de pantalla y formatos, lo que se conoce

como Responsive Web Design, donde el diseño de la web se adapta dinámicamente

segun el tamaño de pantalla o bien la orientación de la misma (verticual/horizontal).

Diseño Web Adaptativo en inglés, Responsive Web Design (RWD)

Este diseño es un ejemplo de las mejores prácticas en cuanto a diseño de web móviles.

En vez de crear una web distinta para un tamaño de pantalla específico, un Diseño

Web Adaptativo, ofrece una única web que se adapta interactivamente ajustando sus

capas para acomodarse a cualquier tamaño de pantalla. Esto permite que el proceso

de actualización y mantenimiento de la página sea más eficiente en cuanto a costes y

resulta una experiencia para sus visitantes más atractiva.

De forma adicional, permite añadir elementos que solo verán los visitantes móviles, o

desactivar ciertos componentes que no necesitan ver.

Page 14: Patrones de Diseño Web

Para web móviles con un propósito más específico, también es posible proveer al

usuario de una web móvil completamente diferenciada e incluso una App (aplicación)

móvil para IPhone, IPad, Android, etc. si tiene un número significativo de clientes en

dispositivos móviles.

¿Qué son los patrones de diseño?

Los patrones de diseño son soluciones para problemas típicos y recurrentes que nos

podemos encontrar a la hora de desarrollar una aplicación.

Aunque nuestra aplicación sea única, tendrá partes comunes con otras aplicaciones:

acceso a datos, creación de objetos, operaciones entre sistemas etc. En lugar de

reinventar la rueda, podemos solucionar problemas utilizando algún patrón, ya que son

soluciones probadas y documentadas por multitud de programadores.

¿Por qué usar patrones de diseño?

Como ya vimos en el artículo sobre principios de diseño, si queremos desarrollar

aplicaciones robustas y fáciles de mantener, debemos cumplir ciertas "reglas". Lo

pongo entre comillas porque aunque estas reglas de diseño son recomendables (muy

recomendables), no son obligatorias. Siempre podemos decidir no aplicarlas. Aunque si

no lo hacemos, hay que ser conscientes de la razón de no aplicarlas y de sus

consecuencias.

Los patrones de diseño nos ayudan a cumplir muchos de estos principios o reglas de

diseño. Programación SOLID, control de cohesión y acoplamiento o reutilización de

código son algunos de los beneficios que podemos conseguir al utilizar patrones.

Page 15: Patrones de Diseño Web

¿Cuántos patrones de diseño existen?

Patrones de diseño hay muchos. Muchísimos. Y siguen apareciendo patrones nuevos

cada poco tiempo. El desarrollo de aplicaciones es una disciplina en constante cambio.

Por tanto los problemas a los que nos enfrentamos los desarrolladores también

cambian. Así que las herramientas utilizadas, también se van actualizando y

mejorando.

Es imposible conocer todos los patrones de diseño. Lo más útil es tener un catálogo de

patrones que podamos consultar. A la hora de desarrollar una aplicación, podremos

consultar nuestro catálogo buscando patrones que nos ayuden a solucionar problemas

de diseño concretos.

¿Qué tipos de patrones existen?

Existen diversas maneras de agrupar los patrones de diseño. Quizá la más extendida

es agruparlos según su propósito. En este caso tenemos las siguientes categorías:

Patrones creacionales: utilizados para instanciar objetos, y así separar la

implementación del cliente de la de los objetos que se utilizan. Con ellos

intentamos separar la lógica de creación de objetos y encapsularla.

Patrones de comportamiento: se utilizan a la hora de definir como las clases y objetos

interaccionan entre ellos.

Patrones estructurales: utilizados para crear clases u objetos que incluidos dentro de

estructuras más complejas.

Page 16: Patrones de Diseño Web

¿Puedo desarrollar nuevos Patrones?

Cada tiempo aparecen nuevos patrones o revisiones de los ya existentes. Es algo

lógico si tenemos en cuenta que nuestra forma de programar está evolucionando

continuamente. Nuevos Frameworks, nuevas plataformas, nuevos tipos de acceso a

datos etc.

Por tanto, es factible que cualquiera pueda "descubrir" un nuevo patrón. Lógicamente el

supuesto patrón deberá ser puesto a prueba por la comunidad de desarrolladores. Para

ello deberá demostrar que es nuevo, que es correcto y que es útil para solucionar

problemas comunes de desarrollo. Un patrón no será tal si solo sirve para solucionar un

problema específico de nuestra aplicación.

Page 17: Patrones de Diseño Web

4.5 Patrones Creacionales.

Patrones Creacionales

Fábrica Abstracta ( Abstract Factory )

El problema a solucionar por este patrón es el de crear diferentes familias de objetos,

como por ejemplo la creación de interfaces gráficas de distintos tipos (ventana, menú,

botón, etc.).

Método de Fabricación ( Factory Method )

Parte del principio de que las subclases determinan la clase a implementar.

public class ConcreteCreator extends Creator

{

protected Product FactoryMethod()

{

return new ConcreteProduct();

}

}

public interface Product{}

public class ConcreteProduct implements Product{}

public class Client

{

public static void main(String args[])

Page 18: Patrones de Diseño Web

{

Creator UnCreator;

UnCreator = new ConcreteCreator();

UnCreator.AnOperations();

}

}

Prototipado ( Prototype )

Se basa en la clonación de ejemplares copiándolos de un prototipo.

Singleton

Restringe la instanciación de una clase o valor de un tipo a un solo objeto.

public sealed class Singleton

{

private static volatile Singleton instance;

private static object syncRoot = new Object();

private Singleton()

{

System.Windows.Forms.MessageBox.Show("Nuevo Singleton");

}

public static Singleton GetInstance

{

get

{

if (instance == null)

{

lock(syncRoot)

{

if (instance == null)

instance = new Singleton();

Page 19: Patrones de Diseño Web

}

}

return instance;

}

}

}

MVC ( Model View Controler )

Este patrón plantea la separación del problema en tres capas: la capa model, que

representa la realidad; la capa controler , que conoce los métodos y atributos del

modelo, recibe y realiza lo que el usuario quiere hacer; y la capa vista, que muestra un

aspecto del modelo y es utilizada por la capa anterior para interaccionar con el usuario.

Page 20: Patrones de Diseño Web

4.6 Patrones de comportamiento.

Patrones de Comportamiento

Cadena de responsabilidad (Chain of responsibility): La base es permitir que más de un

objeto tenga la posibilidad de atender una petición.

Orden (Command): Encapsula una petición como un objeto dando la posibilidad de

“deshacer” la petición.

Intérprete (Interpreter): Intérprete de lenguaje para una gramática simple y sencilla.

Iterador (Iterator): Define una interfaz que declara los métodos necesarios para acceder

secuencialmente a una colección de objetos sin exponer su estructura interna.

Mediador (Mediator): Coordina las relaciones entre sus asociados. Permite la

interacción de varios objetos, sin generar acoples fuertes en esas relaciones.

Recuerdo (Memento): Almacena el estado de un objeto y lo restaura posteriormente.

Observador (Observer): Notificaciones de cambios de estado de un objeto.

Public Class Articulo

Delegate Sub DelegadoCambiaPrecio(ByVal unPrecio As Object)

Public Event CambiaPrecio As DelegadoCambiaPrecio

Dim _cambiaPrecio As Object

Public WriteOnly Property Precio()

Set(ByVal value As Object)

_cambiaPrecio = value

RaiseEvent CambiaPrecio(_cambiaPrecio)

End Set

End Property

End Class

Page 21: Patrones de Diseño Web

Public Class ArticuloObservador

Public Sub Notify(ByVal unObjecto As Object)

Console.WriteLine("El nuevo precio es:" & unObjecto)

End Sub

End Class

Estado (Server): Se utiliza cuando el comportamiento de un objeto cambia

dependiendo del estado del mismo.

Estrategia (Strategy): Utilizado para manejar la selección de un algoritmo.

Método plantilla (Template Method): Algoritmo con varios pasos suministrados por una

clase derivada.

Visitante (Visitor): Operaciones aplicadas a elementos de una estructura de objetos

heterogénea.

Page 22: Patrones de Diseño Web

4.7 Patrones estructurales.

Patrones Estructurales

Adaptador (Adapter): Convierte una interfaz en otra.

Puente (Bridge): Desacopla una abstracción de su implementación permitiendo

modificarlas independientemente.

Objeto Compuesto (Composite): Utilizado para construir objetos complejos a partir de

otros más simples, utilizando para ello la composición recursiva y una estructura de

árbol.

Envoltorio (Decorator): Permite añadir dinámicamente funcionalidad a una clase

existente, evitando heredar sucesivas clases para incorporar la nueva funcionalidad.

Fachada (Facade): Permite simplificar la interfaz para un subsistema.

Peso Ligero (Flyweight): Elimina la redundancia o la reduce cuando tenemos gran

cantidad de objetos con información idéntica.

Apoderado (Proxy): Un objeto se aproxima a otro.