Tema 1 - Conceptros Básicos
Tema 1 - Conceptros Básicos
Tema 1 - Conceptros Básicos
Aplicación Web
Las Aplicaciones Web ya forman parte de nuestro qué hacer cotidiano. Si hasta hace poco
tiempo sólo se esperaba el recoger cierta cantidad de información de una página Web, hoy
no se concibe el no poder interactuar con ella. Se sigue buscando la información, pero sólo
aquella que el usuario considera interesante.
Y para alcanzar el objetivo propuesto sobre estas líneas, es necesario un modelado capaz
de recoger y mostrar todas las estructuras, formas y componentes presentes en el entorno
Web. A continuación, vamos a ver cómo hacerlo...
Aplicación web
En la ingeniería de software se denomina aplicación web a aquellas herramientas que los
usuarios pueden utilizar accediendo a un servidor web a través de Internet o de una
intranet mediante un navegador. En otras palabras, es una aplicación software que se
codifica en un lenguaje soportado por los navegadores web en la que se confía la
ejecución al navegador.
Las aplicaciones web son populares debido a lo práctico del navegador web como cliente
ligero, a la independencia del sistema operativo, así como a la facilidad para actualizar y
mantener aplicaciones web sin distribuir e instalar software a miles de usuarios
potenciales. Existen aplicaciones como los webmails, wikis, weblogs, tiendas en línea y la
propia Wikipedia que son ejemplos bastante conocidos de aplicaciones web.
Es importante mencionar que una página Web puede contener elementos que permiten
una comunicación activa entre el usuario y la información. Esto permite que el usuario
acceda a los datos de modo interactivo, gracias a que la página responderá a cada una de
sus acciones, como por ejemplo rellenar y enviar formularios, participar en juegos diversos
y acceder a gestores de base de datos de todo tipo.
Una Aplicación Web es un sitio donde la entrada de datos afecta al estado de la lógica. Es
decir, una Aplicación Web se sirve de un sitio o página como entrada a una verdadera
aplicación. Veamos primero la estructura de un sitio Web :
A veces la distinción entre una Aplicación Web y un sitio Web es muy sutil – por
ejemplo, un buscador forma parte de un sitio Web, mientras que si se acepta información
para registrar a un usuario, se trata de una Aplicación Web -. De todas maneras, lo que sí
es evidente es que la arquitectura global de una Aplicación Web es idéntica a la de un sitio
Web, aunque su desarrollo sea más elaborado.
Páginas
Los scripts pueden contener tanto variables como procedimientos y funciones, cuyo
objetivo final es actuar sobre el servidor de manera que:
Formas
Las formas más comunes de introducir información son las áreas de texto, listas de
selección o botones de radio, por ejemplo. Cada uno de estos elementos tiene un nombre
o ID asociado a una página de acción, y cuando el usuario introduce la información, el
servidor interpreta o ejecuta el código contenido en dicha página. El resultado, la
información introducida por el usuario puede ser procesada.
Componentes
Hay Aplicaciones Web que se sirven de una tercera capa de componentes, entre el
interfaz de usuario y el sistema permanente, que suele estar formado por objetos
compilados que funcionan en un servidor de aplicaciones. Esta capa sólo se utiliza cuando
la lógica necesaria para controlar la aplicación es muy extensa y el tiempo es un factor
crítico en las decisiones de diseño.
Las páginas formateadas en HTML también pueden tener referencias a
componentes en la máquina del cliente, como son los JavaApplets o los controles ActiveX.
Su presencia supone la extensión de la Aplicación Web al cliente y nuevas posibilidades
en cuanto a la interfaz con el usuario, puesto que aumentan la interacción que pueden
ofrecer las páginas preformateadas.
Frames
Las capacidades de la interfaz de usuario pueden ser incrementadas con el uso de frames,
que permiten tener varias páginas abiertas y activas al mismo tiempo.
Otros Componentes
Pero esta metodología falla a la hora de construir aplicaciones Web, en las que la
lógica de negocio es la parte central, ya que no las cubre adecuadamente.
Las aplicaciones Web pueden ser usadas como mecanismo servidor para aplicaciones
distribuidas, y además pueden crear múltiples instancias del mismo browser y frames en la
parte cliente que deben establecer y mantener su propio mecanismo de comunicación.
Todo esto debe ser modelizado también y RMM no es capaz de hacerlo.
En UML, los links representarían el path de navegación desde una página a otra.
Extendiendo esta forma de pensar las páginas serían clases en la vista lógica del modelo,
por lo tanto los scripsts de las página serían operaciones ( métodos ) de la clase, y las
variables de estos scripts cuyo ámbito sea la página, serían los atributos, pero esto no nos
ayuda cuando tenemos que saber que operaciones, atributos,etc están activos en el
servidor, por lo tanto es mejor modelizarlas como componentes del sistema.
UML no es perfecto para todas las situaciones, y es por ello que se definen
mecanismos de extensión como las Etiquetas, Estereotipos y Restricciones. Para resolver
el problema presentado anteriormente, se podrían definir los Estereotipos <<método de
cliente >> y << método de servidor >>, que nos permitirían hacer una distinción adecuada
en el diseño. Aún así, al representar las relaciones no se garantiza que sólo sean válidas
desde el lado del servidor o el del cliente…
Estereotipos de página
Una mejor solución al modelado de páginas pasa por la creación de dos clases con
estereotipo:
Página de servidor
Página de cliente
1. Hay una relación importante entre ambas páginas, definida unidireccional y descrita
bajo el estereotipo <<construye>>. Y es que una página de servidor se encarga de
construir una de cliente. Incluso podría darse el caso de que una página de servidor
construya varias de las páginas cliente.
4. Una relación que no se puede olvidar viene definida por el estereotipo <<enlace>>.
Y sabiendo lo que significa un hiperenlace, está claro que sólo tiene sentido definirlo
desde una página cliente hacia una página servidor – que generará una nueva
página cliente -, o desde la página cliente hacia otra de su misma clase. Si dicho
enlace contiene parámetros, se modelan fuera de la relación.
Componentes
Formas
Framesets
Otros estereotipos
Las extensiones Web para UML están a punto de finalizarse en su fase inicial. Sin
embargo, hay otros estereotipos que están bajo consideración como son <<xml>> o
<<scriplet>>...
Además, permite distribuir el trabajo de creación de una aplicación por niveles; de este
modo, cada grupo de trabajo está totalmente abstraído del resto de niveles, de forma que
basta con conocer la API que existe entre niveles.
En el diseño de sistemas informáticos actual se suelen usar las arquitecturas multinivel o
Programación por capas. En dichas arquitecturas a cada nivel se le confía una misión
simple, lo que permite el diseño de arquitecturas escalables (que pueden ampliarse con
facilidad en caso de que las necesidades aumenten).
El más utilizado actualmente es el diseño en tres niveles (o en tres capas).
Capas y niveles
Todas estas capas pueden residir en un único ordenador, si bien lo más usual es que haya
una multitud de ordenadores en donde reside la capa de presentación (son los clientes de
la arquitectura cliente/servidor). Las capas de negocio y de datos pueden residir en el
mismo ordenador, y si el crecimiento de las necesidades lo aconseja se pueden separar en
dos o más ordenadores. Así, si el tamaño o complejidad de la base de datos aumenta, se
puede separar en varios ordenadores los cuales recibirán las peticiones del ordenador en
que resida la capa de negocio.
Si, por el contrario, fuese la complejidad en la capa de negocio lo que obligase a la
separación, esta capa de negocio podría residir en uno o más ordenadores que realizarían
solicitudes a una única base de datos. En sistemas muy complejos se llega a tener una
serie de ordenadores sobre los cuales corre la capa de negocio, y otra serie de
ordenadores sobre los cuales corre la base de datos.
En una arquitectura de tres niveles, los términos "capas" y "niveles" no significan lo mismo
ni son similares.
El término "capa" hace referencia a la forma como una solución es segmentada desde el
punto de vista lógico:
Una solución de tres capas (presentación, lógica del negocio, datos) que residen en un
solo ordenador (Presentación+lógica+datos). Se dice que la arquitectura de la solución
es de tres capas y un nivel.
Una solución de tres capas (presentación, lógica del negocio, datos) que residen en
dos ordenadores (Presentación+lógica por un lado; lógica+datos por el otro lado). Se
dice que la arquitectura de la solución es de tres capas y dos niveles.
Ventajas y Desventajas
Ventajas
Inconvenientes
Procesamiento de imágenes
Captura de imágenes
Uso de webcam / Captura de video1
Diseño web
El diseño web es una actividad que consiste en la planificación, diseño, implementación y
mantenimiento de sitios web. No es simplemente la implementación del diseño
convencional ya que se abarcan diferentes aspectos como el diseño gráfico web; diseño
de interfaz y experiencia de usuario, como la navegabilidad, interactividad, usabilidad,
arquitectura de la información; interacción de medios, entre los que podemos
mencionar audio, texto, imagen, enlaces, video y la optimización de motores de búsqueda.
A menudo muchas personas trabajan en equipos que cubren los diferentes aspectos del
proceso de diseño, aunque existen algunos diseñadores independientes que trabajan
solos.
El diseñador web comprende perfectamente que el sitio online no es solo "no faltar en la
web", sino una herramienta que se alinea perfectamente con los lineamientos culturales de
la entidad que representa... La unión de un buen diseño con una jerarquía bien elaborada
de contenidos, aumenta la eficiencia de la web como canal de comunicación e intercambio
de datos, que brinda posibilidades como el contacto directo entre el productor y el
consumidor de contenidos.
El diseño web ha visto amplia aplicación en los sectores comerciales de Internet
especialmente en la World Wide Web. A menudo la web se utiliza como medio de
expresión plástica en sí. Artistas y creadores hacen de las páginas en Internet un medio
más para ofrecer sus producciones y utilizarlas como un canal más de difusión de su obra.
Creando archivos de texto en HTML, Asp, Aspx, JavaScript, JSP, Python, Ruby.
Utilizando un programa visual WYSIWYG o WYSIWYM de creación de páginas.
Utilizando lenguajes de programación del lado servidor, para generar la página web.
Etapas
Para el diseño de páginas web debemos tener en cuenta tres etapas:
El HTML consta de una serie de elementos que estructuran el texto y son presentados en
forma de hipertexto por agente de usuario o navegadores. Esto se puede hacer con un
simple editor de textos (debe guardarse como texto plano, sin ningún tipo de formato y con
extensión .html o .htm ). Aprender HTML es relativamente fácil, así que es sencillo crear
páginas web de este modo. Esta era la única manera de generarlas hasta que
aparecieron, a mediados de 1996, algunos editores visuales de HTML, como MS
FrontPage y Adobe Dreamweaver. Con estas herramientas no es necesario aprender
HTML (aunque sí aconsejable), con lo cual el desarrollador se concentra en lo más
importante, el diseño del documento.
Un buen diseño web es aquel que considera dentro de su desarrollo tanto los elementos
básicos del diseño gráfico (la diagramación, el color, los gráficos y las fuentes) como los
fundamentos técnicos (estructura, compatibilidad, funcionalidad e interactividad) para crear
tanto el impacto visual como la experiencia de usuario optima para la asimilación del
contenido.
Fundamentos
El diseño web implica conocer cómo se deben utilizar cada uno de los elementos
permitidos en el HTML, es decir, hacer un uso correcto de este lenguaje dentro de los
estándares establecidos por la W3C y en lo referente a la web semántica. Debido a la
permisibilidad de algunos navegadores web como Internet Explorer, esta premisa original
se ha perdido. Por ejemplo, este navegador permite que no sea necesario cerrar las
etiquetas del marcado, utiliza código propietario, etc. Esto impide que ese documento web
sea universal e independiente del medio que se utilice para ser mostrado.
La web semántica, por otra parte, aboga por un uso lógico de los elementos según el
significado para el que fueron concebidas. Por ejemplo se utilizará el elemento <P> para
marcar párrafos, y <TABLE> para tabular datos (nunca para disponer de manera visual los
diferentes elementos del documento). En su última instancia, esto ha supuesto una
auténtica revolución en el diseño web puesto que apuesta por separar totalmente el
contenido del documento de la visualización.
De esta forma se utiliza el documento HTML únicamente para contener, organizar y
estructurar la información y las hojas de estilo CSS para indicar como se mostrará dicha
información en los diferentes medios (como por ejemplo, una monitor de computadora, un
teléfono móvil, impreso en papel, leída por un sintetizador de voz, etc.). Por lógica, esta
metodología beneficia enormemente la accesibilidad del documento.
También existen páginas dinámicas, las cuales permiten interacción entre la web y el
visitante, proporcionándole herramientas tales como buscadores, chat, foros, sistemas de
encuestas, etc. y poseen de un panel de control de administración de contenidos. Este
permite crear, actualizar y administrar cantidades ilimitadas de contenido en la misma.
Accesibilidad
El diseño web debe seguir unos requerimientos mínimos de accesibilidad web que haga
que sus sitios web o aplicaciones puedan ser visitados por el mayor número de personas.
Para conseguir estos objetivos de accesibilidad se han desarrollado pautas como las
del W3C: Pautas de accesibilidad al contenido Web 1.0 WCAG.
HTML 5
La última versión de este lenguaje básico corresponde al HTML5, donde se introducen
nuevos elementos que mejoran la navegación y la usabilidad de los sitios web en los
distintos navegadores, como por ejemplo el uso de <canvas>, <video> o <footer>.
Esta nueva versión no se trata solamente de cambiar y eliminar etiquetas. Va mucho más
allá.
En todo sitio web hay elementos que se utilizan. El encabezado (header), barras laterales
(sidebars), el pie de página (footer), los menús de navegación, se utilizarán en esta nueva
versión como etiquetas ya establecidas, brindando una mejora en la intuición para el
desarrollo.
Así mismo una de las mayores mejoras es la utilización de "Canvas" o marcos de trabajo,
que sirven para utilizar animaciones sin necesidad de instalar plugins ni usar un
reproductor Adobe Flash para videos web, estándar considerado de facto. Esta opción es
un gran avance, ya que Flash tiene grandes desventajas en los gráficos web, como que los
motores de búsqueda no puedan leer el texto dentro, que pesan mucho y tardan en cargar.
Al implementarse con canvas, se usará únicamente código Javascript, aligerando el peso
de la página.
También quedan obsoletos algunos elementos del HTML 4, razón por la cual es
conveniente repasar acerca de las novedades que incluye HTML5, cuyo lenguaje es
regulado por W3C.
Accesibilidad web
La Organización Mundial de la Salud (OMS) recoge en sus informes un total de 600
millones de personas con discapacidad. El acceso de estas personas a la tecnología debe
tenerse en cuenta en la construcción de una sociedad igualitaria.
La misma Organización Mundial de la Salud, a través de la Clasificación Internacional del
Funcionamiento, de la Discapacidad y de la Salud (CIF) del año 2001, define la
discapacidad como "término genérico que incluye déficit, limitaciones en la actividad y
restricciones en la participación. Indica los aspectos negativos de la interacción entre un
individuo (con una condición de salud) y sus factores contextuales (factores ambientales y
personales). (Egea, 2006).
Cuando los sitios web están diseñados pensando en la accesibilidad, todos los usuarios
pueden acceder en condiciones de igualdad a los contenidos. Por ejemplo, cuando un sitio
tiene un código XHTML semánticamente correcto, se proporciona un texto equivalente
alternativo a las imágenes y a los enlaces se les da un nombre significativo, esto permite a
los usuarios ciegos utilizar lectores de pantalla o líneas Braille para acceder a los
contenidos. Cuando los vídeos disponen de subtítulos, los usuarios con dificultades
auditivas podrán entenderlos plenamente. Si los contenidos están escritos en un lenguaje
sencillo e ilustrados con diagramas y animaciones, los usuarios con dislexia o problemas
de aprendizaje están en mejores condiciones de entenderlos.
Si el tamaño del texto es lo suficientemente grande, los usuarios con problemas visuales
puedan leerlo sin dificultad. De igual modo, el tamaño de los botones o las áreas activas
adecuado puede facilitar su uso a los usuarios que no pueden controlar el ratón con
precisión. Si se evitan las acciones que dependan de un dispositivo concreto (pulsar una
tecla, hacer clic con el ratón) el usuario podrá escoger el dispositivo que más le convenga.
Lo mencionado en los párrafos anteriores se puede resumir en Pautas de Accesibilidad;
estas pautas explican cómo hacer accesibles los contenidos de la web a personas con
discapacidad. Las pautas están pensadas para todos los diseñadores de contenidos de la
web y para los diseñadores de herramientas de creación. El fin principal de estas pautas
en promover la accesibilidad.
Estas pautas son una especificación del W3C que proporciona una guía sobre la
accesibilidad de los sitios de la web para las personas con discapacidad. Han sido
desarrolladas por la Iniciativa de Accesibilidad en la Web (WAI) del W3C.
Limitaciones
Las limitaciones en la accesibilidad de los sitios Web pueden ser:1
Visuales: En sus distintos grados, desde la baja visión a la ceguera total, además de
problemas para distinguir colores (Daltonismo).
Motrices: Dificultad o la imposibilidad de usar las manos, incluidos temblores, lentitud
muscular, etc, debido a enfermedades como el Parkinson, distrofia muscular, parálisis
cerebral, amputaciones, entre otras.
Auditivas: Sordera o deficiencias auditivas.
Cognitivas: Dificultades de aprendizaje (dislexia, discalculia, etc) o discapacidades
cognitivas que afecten a la memoria, la atención, las habilidades lógicas, etc.
Problemas de accesibilidad
Las principales dificultades con las que se encuentra la persona con discapacidad suelen
ser de:
Ayudas técnicas
Las ayudas técnicas, también llamadas tecnologías de apoyo,2 son los dispositivos
empleados por las personas con discapacidad para prevenir, compensar, mitigar o
neutralizar la discapacidad que poseen.
Las siguientes son algunas de las tecnologías de apoyo que usan los usuarios
discapacitados para navegar de la web:
Un programa lector de pantalla, que puede leer usando síntesis de voz, los elementos
que se muestran en el monitor (de gran ayuda para los usuarios con dificultades de
aprendizaje o lectura), o que puede leer todo lo que está pasando en el PC (utilizado
por los usuarios ciegos y de visión reducida).
Líneas Braille, que consiste en dispositivo hardware que convierte el texto en
caracteres Braille.
Un programa magnificador de pantalla que amplía lo que se muestra en el monitor de
la computadora, haciéndolo más fácil de leer para los usuarios de visión reducida.
Eldy es un software que convierte cualquier computadora personal o PC estándar en
un equipo fácil de usar para las personas que nunca han usado una computadora
antes.
Están dirigidas a los webmasters e indican cómo hacer que los contenidos del sitio
web sean accesibles.
Están dirigidas a los desarrolladores del software que usan los webmasters, para
que estos programas faciliten la creación de sitios accesibles.
Legislación
España
Desde el año 2002, en España4 se han desarrollado varias leyes que definen los
niveles de accesibilidad y fechas de cumplimiento:5
Estados Unidos
Beneficios
Los principales beneficios que ofrece la accesibilidad web.