UNIDAD III APLICACIONES Y SERVICIOS 3.1 TECNOLOGÍAS DEL CLIENTE Las tecnologías del lado del cliente, es decir, las que se ejecutan en el navegador del usuario son las páginas dinámicas que se procesan en el cliente. En estas páginas toda la carga de procesamiento de los efectos y funcionalidades la soporta el navegador. Usos típicos de las páginas de cliente son efectos especiales para webs como rollovers o control de ventanas, presentaciones en las que se pueden mover objetos por la página, control y validación de formularios, cálculos, etc. El código necesario para crear los efectos y funcionalidades se incluye dentro del mismo archivo HTML y generalmente son scripts, activex o plugins. Cuando una página HTML contiene alguna de las tecnologías de cliente, el navegador se encarga de interpretarlas y ejecutarlas para realizar los efectos y funcionalidades. Las páginas del cliente son muy dependientes del sistema donde se están ejecutando y esa es su principal desventaja, ya que cada navegador tiene sus propias características, incluso cada versión, y lo que puede funcionar en un navegador puede no funcionar en otro. Como ventaja se puede decir que estas páginas descargan al servidor algunos trabajos, ofrecen respuestas inmediatas a las acciones del usuario y permiten la utilización de algunos recursos de la máquina local. Las páginas dinámicas de cliente principalmente se escriben en dos lenguajes de programación: Javascript y Visual Basic Script (VBScript). También se puede hacer uso de las CSS o XML para tecnologías como DHTML o AJAX. Existen tecnologías de cliente que se ejecutan a través plugins instalados en el navegador. Algunas de las más conocidas son Flash y los Applet de Java. 3.2 TECNOLOGÍAS DEL SERVIDOR Los primeros servidores web permitían visualizar exclusivamente información estática. Esto presentó pronto una limitación; sobre todo desde el momento en el que la actividad publicitaria y comercial comenzó a concentrarse también en Internet. La primera solución técnica realizada fue la posibilidad de que el servidor web ejecutase programas residentes en la máquina de servicio. Esta tecnología, conocida como Common Gateway Interface (CGI) permitía lanzar programas escritos principalmente en C o Perl. Si bien la tecnología CGI resolvía el problema de la presentación exclusiva de información estática, al mismo tiempo presentaba dos limitaciones importantes: el problema de seguridad que podía representar el hecho de que mediante una petición se pudiesen ejecutar programas indeseados en el servidor y la carga del servidor (si una página que lanzaba un programa era llamada desde 100 clientes simultáneamente, el servidor ejecutaba 100 procesos, uno por cada cliente que solicitaba dicha página). Para resolver estos problemas, se buscó desarrollar una tecnología que permitiera ejecutar, en un único proceso del servidor, todos los pedidos de ejecución de código sin importar la cantidad de clientes que se conectaban concurrentemente. Así surgieron los denominados servlets, basados en la tecnología Java de Sun Microsystems, y los filtros ISAPI de Microsoft. Éstos permitían ejecutar código en un único proceso externo que gestionaba todas las llamadas realizadas por el servidor web, impidiendo al mismo tiempo que el servidor web pueda ejecutar programas del sistema operativo. No obstante, de este modo se limitaron los problemas de prestación y seguridad de la tecnología CGI, y no se resolvió el problema representado por un desarrollo demasiado costoso en términos de tiempo. Asimismo, se hizo necesario que dos figuras profesionales distintas trabajen en un único proyecto: el programador (que conoce el lenguaje de programación utilizado del lado del servidor) y el diseñador web (que conoce la parte gráfica y el lenguaje HTML). Para resolver estas limitaciones, fueron desarrollados lenguajes que pueden ser incluidos al interno de archivos HTML. Estos comandos pueden ser interpretados (como por ejemplo las páginas ASP o PHP) o precompilados (como en las páginas JSP o ASP.NET). Lenguajes de scrip de servidor son los lenguajes que se ejecutan en el lado del servidor, como PHP, ASP, etc. Estos lenguajes se utilizan para generar páginas dinamicas, facilitando el acceso a las bases de datos. Con la utilización de esta tecnología se buscaba, también, desarrollar aptitudes de diseñador web en los programadores y de programador en los diseñadores (se esperaba con ello el hacer más fácil y veloz el desarrollo de scripts del lado del servidor). EJEMPLOS DE TECNOLOGÍAS Y CARACTERÍSTICAS TECNOLOGÍAS WEB DE CLIENTE Y SERVIDOR Necesidad de complementar HTML Contenido dinámico: Personalizar el contenido. Acceder a bases de datos. Interaccionar con aplicaciones. 1 Mejorar la presentación. Mejorar la interactividad. Multimedia. Soporte para nuevos tipos de datos. Soporte para nuevos protocolos. Alternativa cliente / servidor Ejecución en el cliente: El navegador descarga el código del servidor. El navegador ejecuta en código en la máquina cliente. Ejecución en el servidor: El código se ejecuta en el entorno del servidor. Genera dinámicamente los datos que se envían al cliente. Soluciones híbridas: Parte del código se ejecuta en el servidor, y parte del código en el cliente. Comparativa cliente / servidor (I) Escalabilidad: La ejecución en cliente es más escalable, porque distribuye en uso de recursos (CPU, memoria) entre todos los clientes. Seguridad: La ejecución en el cliente proporciona menor seguridad para el cliente, porque debe ejecutar código potencialmente malicioso o defectuoso. Comparativa cliente / servidor (II) Compatibilidad / accesibilidad: La ejecución en el cliente impide el uso de navegadores no compatibles con el código, especialmente desde dispositivos de capacidad limitada. Comportamiento distinto, ocasionalmente, del mismo programa en distintos navegadores. 2 TECNOLOGÍAS DE EJECUCIÓN EN EL CLIENTE ECMAScript / JavaScript. Applets Java. Plug--ins. Controles ActiveX. Adobe Flash. AJAX. JavaScript Características: Sintaxis semejante a C y Java, tipado débil sin clases ni herencia. Ejecución interpretada por el navegador. Sometido a restricciones de seguridad. Facilidad para modificar dinámicamente el documento HTML mediante DOM. Algunos usos habituales: Responder a eventos. Comprobar datos de un formulario antes de enviarlos. ECMAScript / JavaScript Limitaciones: Lenguaje de programación no estructurado, no apto para aplicaciones demasiado grandes. Comportamiento dependiente del navegador. Algunos navegadores no lo ejecutan. Código fuente disponible para el cliente. Applets Java Programas Java que se ejecutan en el navegador: El cliente descarga las clases (bytecodes). El cliente ejecuta el código en una JVM. Se ejecuta con restricciones de seguridad. Incrustado en navegador o en ventana propia. 3 Algunos usos habituales: Aplicaciones gráficas interactivas. Animaciones. Gestión de formularios complejos. Applets Java Algunos usos habituales (más): Implementación de protocolos desconocidos por el navegador. Comunicación con aplicaciones y bases de datos: HTTP,sockets, RMI, CORBA, etc. Limitaciones: Navegadores sin JVM o con distintas versiones. Menor interacción con el documento HTML que JavaScript. Plug--ins Programas en código nativo que extienden la funcionalidad del navegador. Usos habituales: Visualizar o interaccionar con nuevos tipos de datos. Acceder a funcionalidades básicas del navegador (carga de URLs, etc.) Implementar nuevos protocolos de comunicación (por ejemplo, streaming multimedia). Audio, vídeo, juegos, animaciones, 3D, etc. Ejemplos: Java, Flash, RealPlayer. Limitaciones: Dependencia con navegador, sistema operativo y arquitectura de la plataforma. Seguridad: acceso libre a los recursos de la máquina. Necesidad de instalar el plug-in previamente. Programación compleja. AJAX 4 Acrónimo de Asynchronous JavaScript and XML. Aplicaciones Web ejecutadas en el cliente con comunicación asíncrona con el servidor en segundo plano, basadas en XML. Aumenta significativamente la interactividad y velocidad de la aplicación. Puede reducir la usabilidad y accesibilidad. Combinación de tecnologías existentes previamente: XHTML y CSS para presentación. JavaScript para ejecución en cliente. Modifica el documento XHTML mediante DOM. Comunicación asíncrona con el servidor mediante XMLHttpRequest. La comunicación asíncrona suele basarse en intercambio de documentos XML. Otras tecnologías de cliente ActiveX (Microsoft) Controles incrustables en páginas Web. Requiere instalación. Riesgos de seguridad elevados. Sólo para MS--Windows. Adobe Flash: Multimedia, animaciones, juegos, 3D, etc. Lenguaje de programación ActionScript. TECNOLOGÍAS DE EJECUCIÓN EN EL SERVIDOR Common Gateway Interface (CGI). ColdFusion. Active Server Pages (ASP / ASP.NET). Server--Side JavaScript (SSJS). 5 PHP. JSP. Servlets. Python. Common Gateway Interface (CGI) Interfaz común entre servidor Web y programas externos. Funcionamiento: El servidor recibe petición y detecta si se corresponde a un programa externo (CGI). El servidor crea un nuevo proceso para el programa; le pasa los datos de la petición en variables de entorno y entrada estándar. El programa procesa la petición y devuelve la respuesta por salida estándar. El servidor reenvía la respuesta al cliente. Limitaciones: Poco escalable / eficiente: Nuevo proceso y entorno de ejecución para cada petición; datos de sesión en BD o disco. Cálculo de todas las variables de entorno, aunque no las use el programa. Para lenguajes interpretados, tiempo de carga del intérprete. Código de programación entremezclado con código HTML. Ejemplo (código): #!/usr/local/bin/perl use CGI; $query = new CGI; $nombre= $query->param('nombre'); if ($nombre eq " ") {$nombre="Mundo";} print "Content-type: text/html\n\n"; print <<"EOF"; <html> <head> <title>Hola Mundo CGI (Perl)</title> </head> <body> <h1>Hola, $nombre</h1> 6 </body> </html> ASP / ASP.NET (Microsoft) ASP nace como sistema de plantillas. ASP.NET evoluciona hacia: Entornos orientados a eventos. Programación en cualquier lenguaje integrable en .NET. Mayor eficiencia (DLLs cargadas en el servidor Web). Otras características: Acceso a componentes ActiveX. Integración fácil con productos Microsoft. ASP / ASP.NET (Microsoft) Ejemplo (código): <script runat="server"> Sub Page_Load(Sender As Object, E As EventArgs) HelloWorld.Text = "Hello World!" End Sub </script> <html> <head> <title>ASP.NET Hello World</title> </head> <body bgcolor="#FFFFFF"> <p><asp:label id="HelloWorld" runat="server" /></p> </body> </html> PHP Código libre. Lenguaje de scripting con sintaxis basada en C. Portado a las plataformas más extendidas. Integrable con los servidores más utilizados. Acceso potente a bases de datos. Comunicación por red con otros recursos: correo electrónico, servidores de directorio, etc. 7 Eficiente. Ejemplo (código): <html> <head> <title>Hola Mundo PHP</title> </head> <body> <p> <? // Hello world in PHP print("Hello World"); ?> </body> </html> Servlets (Java) Programas Java que añaden funcionalidad en servidores. Modelo de ejecución: El servidor carga al inicio una JVM. Se instancia un objeto por cada Servlet. Para cada petición se crea / reutiliza un hilo y se invoca un método la instancia cargada del Servlet asociado. Cuando se para el servidor se destruyen los objetos. Servlets (Java) Principales características: Funcionalidad semejante a CGI: Recibe una petición a través del servidor y genera la respuesta adecuada. Comunicación con el servidor HTTP mediante Servlet API Respuesta mediante PrintWriter. Ventajas: Portabilidad: arquitecturas, sistemas operativos y servidores HTTP. Potencia: disponibles todos los recursos Java: 8 APIs, bases de datos, comunicaciones, etc. Elegancia: código fuente limpio, simple y orientado a objetos. Integración: el servlet está integrado con el servidor, colaborando con éste más fácilmente que CGI. Extensibilidad y flexibilidad. Servlets (Java) Más ventajas: Eficiencia: Máquina virtual permanentemente cargada en el servidor. El servlet se instancia sólo una vez durante el tiempo de vida del servidor. Creación de hilos más eficiente que procesos. Acceso a recursos compartido. Mantenimiento de sesión en memoria. Desventajas: Concurrencia: por ser un único objeto ejecutado desde varios hilos, es necesario gestionar la concurrencia. Código del programa mezclado con código HTML del documento. Cualquier cambio requiere recompilar el servlet. Bastante limitado a lenguaje Java. Ejemplo (código): import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException res.setContentType("text/html"); PrintWriter out = res.getWriter(); out.println("<html>"); out.println("<head><title>Hola Mundo Servlet</title></head>"); out.println("<body>"); out.println("<p>Hello World</p>"); out.println("</body></html>"); 9 Java Server Pages (JSP) Código insertado en el documento HTML en marcas especiales: Directivas. Elementos de scripting: declaraciones, expresiones, scriplets. Comentarios. Acciones. Objetos implícitos: petición, respuesta, sesiones, etc. Utilización de JavaBeans. Normalmente compilado a servlets. Java Server Pages (JSP) Misma portabilidad, eficiencia y potencia que Servlets. Elegancia: separación del código del documento del código de la aplicación (JavaBeans). Facilidad de programación: gestiona automáticamente sesiones, atributos de peticiones y respuestas, redirecciones, ciclo de vida de JavaBeans, etc. Integrable con Servlets. Java Server Pages (JSP) Ejemplo (código): <html> <head> <title>Hola Mundo JSP</title> </head> <body> <p> <% String visitor = request.getParameter(“name”); if (visitor == null) visitor = "World"; %> Hola, <%= visitor %>! </p> </body> </html> Envío de datos de formularios Envío de datos de formularios Métodos y codificaciones de envío: Método GET con codificación application/x--www--form--urlencoded. Método POST con codificación application/x--www--form--urlencoded. 10 Método POST con codificación multipart/form--data. Método GET Los parámetros se envían en la línea de petición del mensaje HTTP, concatenados a la cadena de ruta (path). Parámetros visibles para el usuario en el navegador. Permite enviar datos tanto desde formularios como desde hiperenlaces. No adecuado para operaciones idempotentes. No adecuado para el envío de ficheros. Método POST con URL--encoded Los parámetros se envían en el cuerpo de la petición HTTP. Parámetros no visibles en la URL. Únicamente se pueden enviar desde formularios. No adecuado para el envío de ficheros. Método POST con multipart Los parámetros se envían en el cuerpo de la petición HTTP al estilo de MIME. Parámetros no visibles en la URL. Cada parámetro es una parte del cuerpo, separado del resto por cadenas de frontera. Únicamente se pueden enviar desde formularios. Adecuado para el envío de ficheros. Gestión de sesiones Sesiones. HTTP no tiene estado. Necesidad de relacionar peticiones entre sí. Concepto de sesión. Mecanismos de gestión de sesiones Campos ocultos de formularios. Reescritura de URL: Cadena de ruta (path) añadida. Parámetro añadido. 11 A medida. Cookies 3.3 COMUNICACIÓN CLIENTE-SERVIDOR La arquitectura cliente-servidor es un modelo de aplicación distribuida en el que las tareas se reparten entre los proveedores de recursos o servicios, llamados servidores, y los demandantes, llamados clientes. Un cliente realiza peticiones a otro programa, el servidor, que le da respuesta. Esta idea también se puede aplicar a programas que se ejecutan sobre una sola computadora, aunque es más ventajosa en un sistema operativo multiusuario distribuido a través de una red de computadoras. En esta arquitectura la capacidad de proceso está repartida entre los clientes y los servidores, aunque son más importantes las ventajas de tipo organizativo debidas a la centralización de la gestión de la información y la separación de responsabilidades, lo que facilita y clarifica el diseño del sistema. La separación entre cliente y servidor es una separación de tipo lógico, donde el servidor no se ejecuta necesariamente sobre una sola máquina ni es necesariamente un sólo programa. Los tipos específicos de servidores incluyen los servidores web, los servidores de archivo, los servidores del correo, etc. Mientras que sus propósitos varían de unos servicios a otros, la arquitectura básica seguirá siendo la misma. Una disposición muy común son los sistemas multicapa en los que el servidor se descompone en diferentes programas que pueden ser ejecutados por diferentes computadoras aumentando así el grado de distribución del sistema. La arquitectura cliente-servidor sustituye a la arquitectura monolítica en la que no hay distribución, tanto a nivel físico como a nivel lógico. La red cliente-servidor es aquella red de comunicaciones en la que todos los clientes están conectados a un servidor, en el que se centralizan los diversos recursos y aplicaciones con que se cuenta; y que los pone a disposición de los clientes cada vez que estos son solicitados. Esto significa que todas las gestiones que se realizan se concentran en el servidor, de manera que en él se disponen los requerimientos provenientes de los clientes que tienen prioridad, los archivos que son de uso público y los que son de uso restringido, los archivos que son de sólo lectura y los que, por el contrario, pueden ser modificados, etc. Este tipo de red puede utilizarse conjuntamente en caso de que se este utilizando en una red mixta. 12 CARACTERÍSTICAS En la arquitectura C/S el remitente de una solicitud es conocido como cliente. Sus características son: Es quien inicia solicitudes o peticiones, tienen por tanto un papel activo en la comunicación (dispositivo maestro o amo). Espera y recibe las respuestas del servidor. Por lo general, puede conectarse a varios servidores a la vez. Normalmente interactúa directamente con los usuarios finales mediante una interfaz gráfica de usuario. Al contratar un servicio de redes , se tiene que tener en la velocidad de conexión que le otorga al cliente y el tipo de cable que utiliza , por ejemplo : cable de cobre ronda entre 1 ms y 50 ms. Al receptor de la solicitud enviada por el cliente se conoce como servidor. Sus características son: Al iniciarse esperan a que lleguen las solicitudes de los clientes, desempeñan entonces un papel pasivo en la comunicación (dispositivo esclavo). Tras la recepción de una solicitud, la procesan y luego envían la respuesta al cliente. Por lo general, aceptan conexiones desde un gran número de clientes (en ciertos casos el número máximo de peticiones puede estar limitado). No es frecuente que interactúen directamente con los usuarios finales. COMPARACIÓN DE LA ARQUITECTURA C/S CON OTRAS ARQUITECTURAS DE RED COMPARACIÓN CON LAS REDES DE PARES Las redes de pares, también conocidas como redes par-a-par o peer-to-peer (abreviado con las siglas P2PM) son otro tipo de arquitectura de red. COMPARACIÓN CON LA ARQUITECTURA CLIENTE-COLA-CLIENTE Si bien la clásica arquitectura C/S requiere uno de los puntos terminales de comunicación para actuar como un servidor, que puede ser algo más difícil de aplicar, la arquitectura Cliente-Cola-Cliente habilita a todos los nodos para actuar como clientes simples, mientras que el servidor actúa como una cola que va capturando las peticiones de los clientes (un proceso que debe pasar sus peticiones a otro, lo hace a través de una cola, por ejemplo, una consulta a una base de datos, entonces, el segundo proceso conecta con la base de datos, elabora la petición, la pasa a la base de datos, etc.). Esta arquitectura permite simplificar en gran medida la implementación de software. La arquitectura P2P originalmente se basó en el concepto "Cliente-Cola-Cliente". 13 ARQUITECTURAS MULTI-CAPAS La arquitectura cliente/servidor genérica tiene dos tipos de nodos en la red: clientes y servidores. Consecuentemente, estas arquitecturas genéricas se refieren a veces como arquitecturas de dos niveles o dos capas. Algunas redes disponen de tres tipos de nodos: Clientes que interactúan con los usuarios finales. Servidores de aplicación que procesan los datos para los clientes. Servidores de la base de datos que almacenan los datos para los servidores de aplicación. Esta configuración se llama una arquitectura de tres-capas. VENTAJAS Centralización del control: los accesos, recursos y la integridad de los datos son controlados por el servidor de forma que un programa cliente defectuoso o no autorizado no pueda dañar el sistema. Esta centralización también facilita la tarea de poner al día datos u otros recursos (mejor que en las redes P2P).. Escalabilidad: se puede aumentar la capacidad de clientes y servidores por separado. Cualquier elemento puede ser aumentado (o mejorado) en cualquier momento, o se pueden añadir nuevos nodos a la red (clientes y/o servidores). Fácil mantenimiento: al estar distribuidas las funciones y responsabilidades entre varios ordenadores independientes, es posible reemplazar, reparar, actualizar, o incluso trasladar un servidor, mientras que sus clientes no se verán afectados por ese cambio (o se afectarán mínimamente). Esta independencia de los cambios también se conoce como encapsulación. Existen tecnologías, suficientemente desarrolladas, diseñadas para el paradigma de C/S que aseguran la seguridad en las transacciones, la amigabilidad de la interfaz, y la facilidad de empleo. DESVENTAJAS La congestión del tráfico ha sido siempre un problema en el paradigma de C/S. Cuando una gran cantidad de clientes envían peticiones simultaneas al mismo servidor, puede ser que cause muchos problemas para éste (a 14 mayor número de clientes, más problemas para el servidor). Al contrario, en las redes P2P como cada nodo en la red hace también de servidor, cuanto más nodos hay, mejor es el ancho de banda que se tiene. El paradigma de C/S clásico no tiene la robustez de una red P2P. Cuando un servidor está caído, las peticiones de los clientes no pueden ser satisfechas. En la mayor parte de redes P2P, los recursos están generalmente distribuidos en varios nodos de la red. Aunque algunos salgan o abandonen la descarga; otros pueden todavía acabar de descargar consiguiendo datos del resto de los nodos en la red. El software y el hardware de un servidor son generalmente muy determinantes. Un hardware regular de un ordenador personal puede no poder servir a cierta cantidad de clientes. Normalmente se necesita software y hardware específico, sobre todo en el lado del servidor, para satisfacer el trabajo. Por supuesto, esto aumentará el coste. El cliente no dispone de los recursos que puedan existir en el servidor. Por ejemplo, si la aplicación es una Web, no podemos escribir en el disco duro del cliente o imprimir directamente sobre las impresoras sin sacar antes la ventana previa de impresión de los navegadores. 15 3.4 PORTALES CENTRADOS EN EL USUARIO 1. INTRODUCCIÓN La consecución de los objetivos perseguidos a través de la puesta a disposición del público de cualquier aplicación web está condicionada por la satisfacción del usuario final. Los factores o atributos de calidad de una aplicación o sitio web que influirán en dicha satisfacción podemos clasificarlos en aquellos relacionados con: la calidad y utilidad de los contenidos; la calidad del servicio y asistencia del proveedor; y la calidad del diseño de la aplicación, atributo de calidad sobre el que versa el presente trabajo. La importancia del diseño de la aplicación se basa en que éste será el que modele la interacción entre usuario y aplicación, y por tanto posibilitará o no la consecución de los objetivos perseguidos por el usuario (encontrar información, comprar, comunicarse, aprender...). Tomemos como ejemplo el usuario que intenta completar una tarea de compra en un sitio web de comercio electrónico. Del correcto diseño del sitio dependerá que el usuario consiga finalmente su objetivo (y consecuentemente el proveedor también), o que por el contrario, frustrado por la dificultad de uso del sitio web, decida abandonarlo en busca de otro donde llevar a cabo la compra sea más fácil. Es fácil inferir que un buen diseño deberá ser comprensible, fácil de usar, amigable, claro, intuitivo y de fácil aprendizaje para el usuario. Para poder asegurar que un diseño cumple con estos requisitos no basta simplemente con una actitud empática del diseñador durante el desarrollo de la aplicación; es imprescindible la adopción por parte de éste de técnicas, procedimientos y métodos que aseguren empíricamente la adecuación del diseño a las necesidades, habilidades y objetivos del usuario. En este artículo abordaremos cómo diseñar aplicaciones web usables y accesibles a través de la aplicación del conjunto de técnicas y procedimientos englobados bajo el marco metodológico conocido como Diseño Centrado en el Usuario. La estructura seguida en el artículo será: (2) Definición y explicación de los conceptos de usabilidad y accesibilidad; (3) Introducción a la Arquitectura de la Información; (4) Propuesta de aplicación del Diseño Centrado en el Usuario en el contexto del desarrollo Web, detallando procedimientos, técnicas, métodos y recomendaciones de diseño; (5) Conclusiones y (6) Bibliografía. 16 2. USABILIDAD Y ACCESIBILIDAD La usabilidad - anglicismo que significa "facilidad de uso" - como indican Bevan, Kirakowski, y Maissel (1991) parece tener su origen en la expresión "user friendly", que es reemplazada por sus connotaciones vagas y subjetivas. Numerosos autores han propuesto diversas definiciones de usabilidad, normalmente a través de la enumeración de los diferentes atributos o factores mediante los que puede ser evaluada, dependiendo finalmente cada definición del enfoque con el que pretende ser medida (Folmer, Bosch; 2003). Tomaremos para este trabajo la definición más extendida, que es la ofrecida por la ISO , y que define usabilidad como el " grado de eficacia, eficiencia y satisfacción con la que usuarios específicos pueden lograr objetivos específicos, en contextos de uso específicos ". En la definición podemos observar que la usabilidad se compone de dos tipos de atributos: Atributos cuantificables de forma objetiva: como son la eficacia o número de errores cometidos por el usuario durante la realización de una tarea, y eficiencia o tiempo empleado por el usuario para la consecución de una tarea. Atributos cuantificables de forma subjetiva: como es la satisfacción de uso, medible a través de la interrogación al usuario, y que tiene una estrecha relación con el concepto de Usabilidad Percibida. Como se indica en la definición, la usabilidad de una aplicación debe ser entendida siempre en relación con la forma y condiciones de uso por parte de sus usuarios, así como con las características y necesidades propias de estos usuarios. Un diseño no es en sí mismo usable: " lo es para usuarios específicos en contextos de uso específicos ". Pretender que una aplicación web sea usable independientemente de quién y cómo la use se corresponde más con una visión o enfoque universalista de la usabilidad (en ocasiones necesaria), que con una visión realista y práctica. Esto es debido a que normalmente toda aplicación se diseña con la intención de satisfacer las necesidades de una audiencia concreta y determinada, por lo que será más usable cuanto más adaptado esté su diseño a esta audiencia específica, y por tanto menos lo esté para el resto de personas. El concepto de usabilidad puede ser definido, además de como atributo de calidad de una aplicación, consecuentemente, como disciplina o enfoque de diseño y evaluación. Se suele hablar entonces de Ingeniería de la Usabilidad - conjunto de fundamentos teóricos y metodológicos que aseguren el cumplimiento de los niveles de usabilidad requeridos para la aplicación-. Un concepto íntimamente ligado al de usabilidad es el de accesibilidad. Éste ya no se refiere a la facilidad de uso, sino a la posibilidad de acceso. En concreto a que el diseño, como prerrequisito imprescindible para ser usable, posibilite el acceso a todos sus potenciales usuarios, sin excluir a aquellos con limitaciones individuales discapacidades, dominio del idioma,... - o limitaciones derivadas del contexto de acceso - software y hardware empleado para acceder, ancho de banda de la conexión empleada, etc.- (Hassan Montero, Martín Fernández; 2003b) 17 Se da la paradoja de que mientras que un diseño usable requiere delimitar a su audiencia potencial con el fin de diseñar para lo concreto, un diseño accesible implica la necesidad de diseñar para la diversidad y heterogeneidad de necesidades de acceso presentadas por esta audiencia específica. Cuando la audiencia para la que se diseña es muy amplia y presenta necesidades de acceso muy diferentes, normalmente se hace necesaria la puesta a disposición de varias versiones del diseño o un diseño adaptable, como son las conocidas "versiones solo texto" o versiones en varios idiomas. 3. ARQUITECTURA DE L A INFORMACIÓN Aunque para la mayoría de los usuarios "la interfaz es la aplicación" puesto que es la parte que ven y a través de la cual interactúan (Hartson; 1998) , debemos entender que la usabilidad de la aplicación depende no sólo del diseño del interfaz, sino también de su arquitectura - estructura y organización -, en otras palabras, del componente no visible del diseño. Folmer y Bosch (2003) estudian este hecho en aplicaciones software concluyendo que el diseño a nivel de arquitectura tiene una gran influencia en la usabilidad del sistema. En el entorno Web, que es el que nos ocupa en este artículo, la Arquitectura de la Información (AI) es un enfoque de diseño que ha cobrado especial relevancia estos últimos años por esta misma razón. La AI es definida como el arte y la ciencia de organizar espacios de información con el fin de ayudar a los usuarios a satisfacer sus necesidades de información. La actividad de organizar comporta la estructuración, clasificación y rotulado de los contenidos del sitio web (Toub; 2000). Hay dos aspectos de la AI que merece la pena resaltar: La Recuperación de la Información : El objetivo principal de definir una correcta arquitectura de información es facilitar al usuario la recuperación de información. Esto se consigue por un lado posibilitando que el usuario pueda encontrar información - diseño y definición de índices, clasificaciones, taxonomías y sistemas de recuperación de información o sistemas de búsqueda en el sitio web -, y por otro lado posibilitando que cada elemento de información pueda ser encontrado - descripción a través de metadatos y optimización del sitio para buscadores-. Este segundo caso es lo que se denomina "findability", "encontrabilidad" o visibilidad. El diseño a nivel conceptual : Las técnicas propias de la AI, dentro del ciclo de vida del desarrollo del sitio, se ubican en fases de diseño conceptual. Las fases de diseño visual están, en cambio, copadas por técnicas de Ingeniería de la Usabilidad, Diseño de Interfaces y Diseño de Información. 18 4. DISEÑO WEB CENTRADO EN EL USUARIO Para asegurar empíricamente que un sitio cumple con los niveles de usabilidad requeridos, el diseñador necesita de una metodología, de técnicas y procedimientos ideados para tal fin. En este trabajo proponemos la aplicación del marco metodológico conocido como Diseño Centrado en el Usuario o User-Centered Design (Norman, Draper; 1986) adaptándolo a las características propias del desarrollo de aplicaciones web. El Diseño Web Centrado en el Usuario se caracteriza por asumir que todo el proceso de diseño y desarrollo del sitio web debe estar conducido por el usuario, sus necesidades, características y objetivos. Centrar el diseño en sus usuarios (en oposición a centrarlo en las posibilidades tecnológicas o en nosotros mismos como diseñadores) implica involucrar desde el comienzo a los usuarios en el proceso de desarrollo del sitio; conocer cómo son, qué necesitan, para qué usan el sitio; testar el sitio con los propios usuarios; investigar cómo reaccionan ante el diseño, cómo es su experiencia de uso; e innovar siempre con el objetivo claro de mejorar la experiencia del usuario. El proceso de Diseño Web Centrado en el Usuario propuesto en este trabajo se divide en varias fases o etapas, algunas de las cuales tienen carácter iterativo. Sirva como aproximación el siguiente esquema: Como indica el esquema, las fases de "diseño", "prototipado" y "evaluación" son cíclicas e iterativas. Esto quiere decir que todo lo que se diseñe debe ser constantemente evaluado a través de su prototipado, para así poder corregir errores de usabilidad desde los primeros momentos del desarrollo. Evaluar el sitio web únicamente una vez finalizado su desarrollo haría mucho más costosa la reparación de errores de usabilidad, ya que siempre es más económico reconducir un diseño que rediseñar completamente el sitio. Los siguientes apartados de este trabajo se estructuran siguiendo este mismo esquema del proceso de diseño. 5. PLANIFICACIÓN Todo proyecto debe comenzar por una correcta planificación. En esta etapa se identifican los objetivos del sitio, así como las necesidades, requerimientos y objetivos de la audiencia potencial. Confrontando esta información se definen los requerimientos del sitio web, entre los que podemos contar requerimientos técnicos (back-end y front-end), recursos humanos y perfiles profesionales necesarios, y adecuación del presupuesto disponible. Se trata, pues, de establecer un equilibrio entre lo que puede ofertar el proveedor y lo que necesita el usuario. El sitio web - sus contenidos y diseño - debe cumplir precisamente este cometido: servir de medio para la consecución de objetivos por parte de proveedor y usuario. 19 El diseñador debe obtener información precisa tanto de las necesidades y objetivos del proveedor como del usuario. En el primer caso, mediante entrevistas y reuniones con los responsables del sitio, será relativamente fácil obtener dicha información. Más dificultoso, pero al mismo tiempo más importante, es obtener esta información del usuario: Qué necesita, cuáles son sus objetivos, cómo se comporta y actúa, cuál será el contexto de uso y cómo afectará a la interacción, experiencia y conocimientos previos,... La respuesta a estas preguntas se resuelve estudiando a la audiencia a través de métodos de indagación. Éstos engloban métodos de aproximación contextual, estudios de campo o etnográficos, métodos de aproximación por grupos y métodos de aproximación individual (encuestas, cuestionarios y entrevistas). Cuanto más conozcamos a la audiencia, más adaptado será el diseño y más satisfactoria la experiencia del usuario final. Como se puede ver, la etapa de planificación se basa casi completamente en la recogida, análisis y ordenación de toda la información posible, con el objetivo de tener una base sólida sobre la que poder tomar decisiones de diseño en las siguientes etapas del proceso. 5.1. DISEÑO La etapa de Diseño es el momento del proceso de desarrollo para la toma de decisiones acerca de cómo diseñar o rediseñar, en base siempre al conocimiento obtenido en la etapa de planificación, así como a los problemas de usabilidad descubiertos en etapas de prototipado y evaluación. 5.1.1. MODELADO DEL USUARIO Toda la información obtenida de los estudios de usuarios realizados en la anterior fase de planificación debe servir como base para comenzar el diseño, pero para ello se debe resumir y sintetizar dicha información. Este paso se denomina modelado del usuario y consiste en la definición de clases o perfiles de usuarios en base a atributos comunes. Los atributos sobre los que se hará la clasificación dependen de la información que se tenga de la audiencia, pero normalmente se tratarán de atributos tales como necesidades de información, condiciones de acceso, experiencia y conocimientos. Mediante esta técnica, el diseñador tendrá en mente para quién diseña, qué espera encontrar el usuario y en qué forma. El diseño del sitio web debe estar orientado al usuario, organizando y estructurando la información según los modelos definidos de usuarios. El problema de esta técnica de modelado de usuario es que cuando la audiencia es demasiado extensa y heterogénea, la categorización total de la audiencia puede no ser viable. En estos casos es conveniente hacer uso del enfoque 'persona', ideado por Cooper (1999). Esta técnica de modelado del usuario se basa en la definición de arquetipos de usuarios que representan patrones de conducta, objetivos y necesidades. Estos arquetipos, llamados "personas", son descripciones en forma narrativa de usuarios, a los que se les da una identidad inventada: fotografía, nombre,... En cambio, todos los atributos, 20 características y necesidades del arquetipo deben estar basados en información real extraída de la audiencia objetiva del sitio web, ya que si éstos fueran datos inventados la técnica perdería toda su utilidad. Además se deben definir "scenarios" - descripciones de situaciones de uso del sitio - sobre los que poder contextualizar la interacción persona-aplicación web. Las "personas" definidas, al contrario de lo que se pretendía con la categorización de la audiencia, no pueden representar al total de los usuarios del sitio web, pero es que ésta no es su misión. La función de esta técnica es la de servir de soporte para la toma de decisiones en el diseño del sitio, permitiendo al desarrollador realizar un diseño centrado en el usuario, o más correctamente, en "algún" usuario. Este usuario podemos considerarlo 'real', ya que aunque no pertenece al mundo real, su descripción está basada sobre, y por tanto representa a, un nutrido grupo de usuarios reales. Es demasiado común que el diseñador se imagine a sí mismo usando el sitio y por tanto sea incapaz de comprender por qué a alguien le puede resultar difícil, incomodo y hasta frustrante su uso. Estos arquetipos de usuarios conseguirán precisamente que el diseñador tenga en mente a un usuario 'real', con limitaciones, habilidades y necesidades reales. 5.1.2. DISEÑO CONCEPTUAL El objetivo de la fase de Diseño Conceptual es definir el esquema de organización, funcionamiento y navegación del sitio. No se especifica qué apariencia va a tener el sitio, sino que se centra en el concepto mismo del sitio: su arquitectura de información. Los sitios web son sistemas hipermedia formados por conjuntos de páginas interrelacionadas por enlaces unidireccionales, pudiendo cada una de estas páginas contener sub-elementos con entidad propia, contenidos multimedia y herramientas interactivas. La "estructura" del sitio web se refiere precisamente a las conexiones y relaciones entre páginas, a la topología de la red de páginas, así como a la granularidad de los elementos de información contenidos en las páginas; y la "navegación" a las posibilidades y forma en que cada página presenta las opciones de desplazamiento hacia otras páginas. La definición de la estructura del sitio puede hacerse desde dos enfoques diferentes y complementarios: aproximación descendente y ascendente. En la descendente se trata de estructurar del "todo" a las "partes", dividir los contenidos en páginas y definir los enlaces entre páginas. En la Ascendente, por el contrario, se definen los bloques mínimos de información, estructuración que va más allá de la propia segmentación de información en páginas. Una vez definida la estructuración del sitio es necesario documentarla, para así tener un modelo de referencia sobre el que sustentar el desarrollo del sitio. La forma de documentar arquitecturas se suele hacer a través de grafos y esquemas, con el objetivo de que sean de fácil y rápida comprensión por todos los miembros del equipo de desarrollo. 21 Si la arquitectura es ascendente normalmente se documentará a través de diagramas entidad-relación. Por otro lado, cuando la arquitectura a documentar es la descendente, para sitios web proponemos el uso del vocabulario gráfico de Garret (2002). A través de unas sencillas convenciones gráficas para la diagramación de la arquitectura, podemos definir la estructura de la información así como la navegación del sitio. Otras tareas a llevar a cabo por el Arquitecto de Información o diseñador en la fase de Diseño Conceptual son: Definir sistemas de clasificación para los contenidos; Elaborar índices y mapas del sitio; Aplicar metadatos a cada una de las páginas y sub-elementos de información; y Definir el Sistema de Rotulado (Rosenfeld, Morville; 2002). Entre las técnicas de Diseño Centrado en el Usuario a aplicar en la etapa de Diseño Conceptual destacamos, por su utilidad y facilidad de ser llevada a cabo, la técnica de "card sorting" u ordenación de tarjetas. Ésta se basa en la observación de cómo los usuarios agrupan y asocian entre sí un número predeterminado de tarjetas etiquetadas con las diferentes categorías o secciones temáticas del sitio web. De esta forma, partiendo del comportamiento de los propios usuarios, es posible organizar y clasificar la información de un sitio web conforme a su modelo mental. (Hassan Montero et al.; 2004) 5.1.3. DISEÑO VISUAL Y DEFINICIÓN DEL ESTILO En esta fase se especifica el aspecto visual del sitio web: composición de cada tipo de página, aspecto y comportamiento de los elementos de interacción y presentación de elementos multimedia. Con el objetivo de evitar la sobrecara informativa, en el diseño de cada interfaz se debe tener en cuenta el comportamiento del usuario en el barrido visual de la página, distribuyendo los elementos de información y navegación según su importancia en zonas de mayor o menor jerarquía visual - por ejemplo, las zonas superiores del interfaz poseen más jerarquía visual que las inferiores-. Además de la posición de cada elemento en la interfaz, existen otras técnicas para jerarquizar información como son: uso del tamaño y espacio ocupado por cada elemento para otorgarle importancia en la jerarquía visual, utilización del contraste de color para discriminar y distribuir información, uso de efectos tipográficos para enfatizar contenidos, rotura de la simetría y uso de efectos de relieve / profundidad para resaltar elementos, etc. Además de evitar la sobrecarga informativa jerarquizando los contenidos mediante las técnicas descritas, para evitar la sobrecarga memorística se recomienda definir menús de navegación con un número de opciones reducido, normalmente no más de nueve diferentes. Otro aspecto importante en el diseño visual del sitio es la accesibilidad. En el uso de colores, por ejemplo, se debe ofrecer suficiente contraste entre texto y fondo para no dificultar la lectura, e igualmente seleccionar combinaciones de colores teniendo siempre en cuenta las discapacidades visuales en la percepción del color que pudieran presentar nuestros usuarios. Al utilizar imágenes en el diseño, por motivos de accesibilidad y comprensibilidad, se debe cuidar su resolución y tamaño, así como en fotografías la no pérdida de significación o contexto por recorte o minimización excesiva de la imagen. 22 Desde una perspectiva más amplia del diseño visual del sitio es importante mantener una coherencia y estilo común entre todas las páginas, proporcionando una consistencia visual a todo el sitio. Para asegurar que esta coherencia se cumple, es útil elaborar un libro o guía de estilo que sirva de documento referencia para todo el equipo de desarrollo. 5.1.4. DISEÑO DE CONTENIDOS En el diseño de contenidos hipermedia se debe mantener un equilibrio entre lo que serían contenidos que no aprovechasen las nuevas posibilidades hipertexto y multimedia, y lo que serían contenidos caóticos o desorientativos debido a un uso excesivo y no sosegado de las posibilidades hipermedia. Sin prescindir de las capacidades que ofrece el nuevo medio, de lo que se trata es de diseñar contenidos interrelacionados y vinculados, manteniendo cierta coherencia informativa, comunicacional y organizativa. La escritura hipertextual se debe realizar de forma diferente a la tradicional. El nuevo medio y sus características obligan a ser concisos, precisos, creativos y estructurados a la hora de redactar. Debemos conocer a quién nos dirigimos y adaptar el lenguaje, tono y vocabulario utilizado al usuario objetivo. Algunos consejos a seguir en el diseño y redacción de contenidos son: Seguir una estructura piramidal : La parte más importante del mensaje, el núcleo, debe ir al principio. Permitir una fácil exploración del contenido : El lector en entornos Web, antes de empezar a leer, suele explorar visualmente el contenido para comprobar si le interesa. Un párrafo = una idea : Cada párrafo es un objeto informativo. Se deben trasmitir ideas, mensajes... evitando párrafos vacíos o varios mensajes en un mismo párrafo. Ser conciso y preciso : Al lector no le gusta leer en pantalla. Vocabulario y lenguaje : Se debe utilizar el mismo lenguaje del usuario, no el de la empresa o institución. El vocabulario debe ser sencillo y fácilmente comprensible. Tono : Cuanto más familiar y cercano (sin llegar a ser irrespetuoso) sea el tono empleado, más fácil será que el lector preste atención. Confianza : La mejor forma de ganarse la confianza del lector es permitiéndole el diálogo, así como conocer cuanta más información posible acerca del autor. 5.2. PROTOTIPADO La evaluación de la usabilidad del sitio web se debe realizar desde las primeras etapas de diseño, pero ¿cómo evaluar un sitio web que no está implementado? A través de prototipos. 23 La etapa de prototipado se basa en la elaboración de modelos o prototipos de la interfaz del sitio. Su aspecto no se corresponde exactamente con el que tendrá el sitio una vez finalizado, pero pueden servir para evaluar la usabilidad del sitio sin necesidad de esperar a su implementación. Según Floría Cortés (2000) , podemos clasificar los tipos de prototipado según el nivel de funcionalidad reproducida: Prototipado horizontal: Se reproduce gran parte del aspecto visual del sitio, pero sin que esos modelos de interfaz estén respaldados por la funcionalidad real que tendrá finalmente el sitio. Prototipado vertical: Se reproduce únicamente el aspecto visual de una parte del sitio, pero la parte reproducida poseerá la misma funcionalidad que el sitio web una vez implementado. Según el grado de fidelidad o calidad del prototipo se distingue entre: Prototipado de alta fidelidad: El prototipo será muy parecido al sitio web una vez terminado. Prototipado de baja fidelidad: El aspecto del prototipo distará bastante del que tenga el sitio web final. En las primeras etapas de desarrollo del sitio web se puede hacer uso del prototipado en papel o de bajo coste, que consiste en reproducir los aspectos básicos de la interfaz del sitio en papel. Por ejemplo, podemos reproducir a través de bocetos cómo serán las diferentes páginas que conformarán el sitio a desarrollar, cada una en una página de papel diferente. La reproducción suele ser a mano (lápiz y tijeras), por lo que resulta una técnica de prototipado muy económica. Otra forma de realizar prototipos es mediante la reproducción del aspecto del sitio a través de herramientas software. Mediante el procesador de textos o un simple editor HTML podemos esbozar cómo será la interfaz del sitio. Hay que recordar que estos prototipos son reproducciones, no estados tempranos de implementación de la interfaz. Una vez que el prototipo se ha utilizado se tira, no es parte del sitio web. La utilidad real del prototipado se fundamenta en que no tendría sentido empezar a implementar una interfaz web si no nos hemos asegurado antes de que el diseño es usable. 5.3. EVALUACIÓN La evaluación de la usabilidad - la etapa más importante en el proceso de Diseño Centrado en el Usuario - se puede realizar a través de varios métodos o técnicas y sobre diferentes representaciones del sitio (prototipos en papel, prototipos software, sitio web implementado...). Existe una gran diversidad de métodos para evaluación de usabilidad, aunque en el presente trabajo únicamente se describirán aquellos que creemos de más utilidad y aplicabilidad real en el contexto del desarrollo de aplicaciones web. 24 5.3.1. MÉTODO POR INSPECCIÓN: EVALUACIÓN HEURÍSTICA Los métodos de inspección de la usabilidad de un sitio web son aquellos realizados por el experto en usabilidad, y que se basan en el recorrido y análisis del sitio identificando errores y problemas de diseño. La Evaluación Heurística es un tipo de método de inspección, que tiene como ventaja la facilidad y rapidez con la que se puede llevar a cabo. Este tipo de evaluación normalmente la lleva a cabo un grupo reducido de evaluadores que, en base a su propia experiencia, fundamentándose en reconocidos principios de usabilidad (heurísticos), y apoyándose en guías elaboradas para tal fin, evalúan de forma independiente el sitio web, contrastando finalmente los resultados con el resto de evaluadores. Diversos autores han propuesto diferentes conjuntos de heurísticos o principios de usabilidad a través de los cuales evaluar la usabilidad. Nielsen (1994a) propone los siguientes: Visibilidad del estado del sistema : El sistema (o sitio web) siempre debe informar al usuario acerca de lo que está sucediendo. Por ejemplo, cuando en una interfaz tipo webmail se adjuntan ficheros a un mensaje, el sistema debe informar del hecho mostrando un mensaje de espera. Lenguaje común entre sistema y usuario : El sistema debe hablar el lenguaje del usuario, huyendo de tecnicismos incomprensibles o mensajes crípticos. Libertad y control por parte del usuario : El usuario debe tener el control del sistema, no se puede limitar su actuación. Se debe ofrecer siempre al usuario una forma de "salida de emergencia", como por ejemplo la representada por la opción para "saltar" animaciones de introducción (normalmente Flash). Consistencia y estándares : La consistencia se refiere a, por ejemplo, no utilizar dos rótulos distintos para referirse a un mismo contenido, o no usar estilos diferentes dentro de un mismo sitio. Además el sitio web debe seguir estándares o convenciones de diseño ampliamente aceptados. Cuanto más se parezca un diseño y su funcionamiento al resto de sitios web, más familiar y fácil de usar resultará para el usuario. Prevención de errores : Mejor que un buen mensaje de error es un diseño que prevenga que ocurra el error. Es mejor reconocer que recordar : Este principio hace mención a la visibilidad de las diferentes opciones, enlaces y objetos. El usuario no tiene por qué recordar dónde se encontraba cierta información, o cómo se llegaba a determinada página. Flexibilidad y eficiencia de uso : El sitio debe ser fácil de usar para usuarios novatos, pero también proporcionar atajos o aceleradores para usuarios avanzados. Diseño minimalista : Cualquier tipo de información que no sea relevante para el usuario y que sobrecargue la interfaz debe ser eliminada. Permitir al usuario solucionar el error : Por ejemplo, cuando un usuario introduce una consulta en un buscador y no obtiene ningún resultado, se debe informar al usuario sobre cómo solucionar el problema, por ejemplo con mensajes del tipo "introduzca algún sinónimo" o "quiso Ud. decir...". Además no se debe borrar el contenido de la caja de búsqueda para que el usuario pueda rehacer la consulta. Ayuda y Documentación : Siempre es mejor que un sitio web se pueda utilizar sin necesidad de ayuda o documentación, aunque en sitios web extensos o en procesos de interacción complejos (como el rellenado de un formulario), se debe proporcionar información de ayuda al usuario. 25 Hassan Montero y Martín Fernández (2003a) proponen el siguiente modelo de evaluación heurística: Aspectos generales : Objetivos, look & feel, coherencia y nivel de actualización de contenidos. Identidad e Información : Identidad del sitio e información proporcionada sobre el proveedor y la autoría de los contenidos. Lenguaje y redacción : Calidad de los contenidos textuales. Rotulado : Significación y familiaridad del rotulado de los contenidos. Estructura y Navegación : Idoneidad de la arquitectura de información y navegación del sitio. Lay-out de la página : Distribución y aspecto de los elementos de navegación e información en la interfaz. Búsqueda : Buscador interno del sitio. Elementos multimedia : Grado de adecuación de los contenidos multimedia al medio web. Ayuda : Documentación y ayuda contextual ofrecida al usuario para la navegación. Accesibilidad : Cumplimiento de directrices de accesibilidad. Control y retroalimentación : Libertad del usuario en la navegación. 5.3.2. MÉTODO DE TEST CON USUARIOS El test con usuarios es una prueba de usabilidad que se basa en la observación y análisis de cómo un grupo de usuarios reales utiliza el sitio web, anotando los problemas de uso con los que se encuentran para poder solucionarlos posteriormente. Como toda evaluación de usabilidad, cuanto más esperamos para su realización, más costoso resultará la reparación de los errores de diseño descubiertos. Esto quiere decir que no sólo debemos realizar este tipo de pruebas sobre el sitio web una vez implementado, sino también, sobre los prototipos del sitio. Es una prueba complementaria a la evaluación heurística, pero un test con usuarios es más costoso, por lo que es recomendable realizarlo siempre después de una evaluación heurística, ya que sería desperdiciar tiempo y dinero utilizarlo para descubrir errores de diseño motivados por el no cumplimiento en el desarrollo de principios generales de usabilidad (heurísticos). La ventaja que ofrecen los test de usuarios frente a otro tipo de evaluaciones es que por un lado es una demostración con hechos, por lo que sus resultados son más fiables, y por otro porque posibilitan el descubrimiento de errores de diseño imposibles o difíciles de descubrir mediante la evaluación heurística. Llevar a cabo un test de usuarios formal obligaría a alquilar un local (laboratorio) adecuado, contratar a evaluadores especializados, así como a delegar en alguna empresa la selección y reclutamiento de los participantes de la prueba. Realmente sería bastante costoso y poco viable para la gran mayoría de casos. Existe otra forma de llevar a cabo un test con usuarios popularizada por Nielsen (1994b) , mucho más económica y fácil de realizar, con resultados y utilidad similares, que son las denominadas pruebas informales o test de 'guerrilla'. En (Hassan Montero, Martín Fernández; 2003c) se detalla cómo llevar a cabo este tipo de pruebas: reclutamiento de participantes, elección del local y materiales, realización de la prueba y elaboración del informe final. 26 5.4. IMPLEMENTACIÓN Y LANZAMIENTO En la implementación del sitio es recomendable utilizar estándares (HTML, XHTML...) para asegurar la futura compatibilidad y escalabilidad del sitio. Esto se debe a que, aunque puede ser tentador utilizar tecnologías propietarias, el panorama tecnológico puede hacerlas desaparecer o cambiar en poco tiempo. Igualmente es recomendable separar en la implementación contenido de estilo, mediante el uso de hojas de estilo (CSS) del lado del cliente y uso de bases de datos del lado del servidor. De esta forma se facilitará tanto el rediseño del sitio como la posibilidad de adaptación dinámica del diseño a las necesidades de acceso de cada tipo de usuario. En esta etapa del desarrollo se debe llevar, así mismo, un control de calidad de la implementación, supervisando que todo funcione y responda a cómo había sido planificado, ya que la usabilidad del sitio depende directamente de la funcionalidad. Si algo no funciona, sencillamente no se puede usar. Entre las técnicas para controlar la calidad de la implementación se pueden utilizar validadores automáticos de código como los proporcionados por el W3C ( http://www.w3c.org ), así como validadores para testar de forma semi-automática el cumplimiento de directrices de accesibilidad en el código, como el Test de Accesibilidad Web ( http://www.tawdis.net ). Una vez implementado el sitio y testada su funcionalidad se procede al lanzamiento del sitio, que consiste en su puesta a disposición para los usuarios. Se trata de un evento importante, muchas veces erróneamente apresurado debido a la necesidad de cumplir plazos de entrega. El primer encuentro entre usuario y el sitio web modelará en gran medida la percepción que el usuario tendrá del sitio en posteriores visitas. Por ello es necesario que durante los primeros meses a partir del lanzamiento, el sitio tenga un diseño y contenidos adaptados a este importante momento de su ciclo de vida. Es el momento de explicar a los usuarios el sitio, de enseñarles a usarlo, darles la bienvenida, "vendérselo"... Después de esos primeros meses de vida la audiencia del sitio habrá cambiado. Seguirá habiendo usuarios que accedan por primera vez al sitio, pero ya no representarán a la mayoría de la audiencia. A los usuarios habituales no se les puede seguir haciendo perder el tiempo dándoles la bienvenida o explicándoles qué es y en qué consiste el sitio web. Para asegurar que el sito llega a su audiencia potencial se hace uso de la promoción. La forma de llevar a cabo una campaña de publicidad o promoción dependerá de la naturaleza y características del sitio web. Se debe crear expectación, un conocimiento previo del sitio en los potenciales usuarios. Para ello es recomendable que antes del lanzamiento, desde la misma URL que tendrá finalmente el sitio, se ofrezca una página web explicativa de lo que será el sitio, cuándo estará disponible, así como información de contacto. Una vez realizado el lanzamiento se deben utilizar técnicas de promoción para atraer a los usuarios hacia el sitio: Banners publicitarios : Ya sea desde sitios web externos pero relacionados temáticamente con el sitio a promocionar, o desde el mismo sitio web cuando lo que se promociona es un sub-sitio o sección interna. Inclusión en buscadores y directorios : La inclusión del sitio web en índices y motores de búsqueda es la técnica más eficiente para atraer usuarios. Si el sitio web es público (de acceso no limitado o controlado) 27 se debe haber diseñado de tal forma que facilite su indización automática. Si el sitio web no es público (por ejemplo un master virtual), y los contenidos no son accesibles, se debe crear un mini-sitio público que explique toda la información posible acerca del sitio, para que este sea indizado por los buscadores. Campañas de correo electrónico : Si se posee una base de datos con correos electrónicos de usuarios potenciales (y es legal la posesión y uso de esta información), se puede informar directamente a estos usuarios del lanzamiento del sitio. Otro mecanismo muy útil es la promoción a través del envío de mensajes a listas de correo relacionadas temáticamente con el sitio web. 5.5. MANTENIMIENTO Y SEGUIMIENTO Un sitio web no es una entidad estática, es un objeto vivo cuyos contenidos cambian; cuya audiencia, necesidades y perfiles cambian, y que por lo tanto requiere de continuos rediseños y mejoras. Estos rediseños deben ser muy sutiles, no se puede cambiar el aspecto y diseño de forma drástica de un día para otro, pues aunque estos cambios estén fundamentados en problemas de usabilidad descubiertos postlanzamiento, los cambios pueden resultar dramáticos para los actuales usuarios que ya estaban acostumbrados y familiarizados con el actual diseño. Los problemas de uso no detectados durante el proceso de desarrollo pueden descubrirse a través de varios métodos, principalmente a través de los mensajes y opiniones de los usuarios, y su comportamiento y uso del sitio. 5.5.1. OPINIONES DE LOS USUARIOS Esta información puede ser obtenida de forma pasiva - a través de los mensajes enviados por los usuarios acerca de problemas que han tenido con el uso del sitio - o de forma activa - por medio de cuestionarios y encuestas realizadas sobre la audiencia -. Las opiniones expresadas por los usuarios indican posibles problemas de usabilidad, pero no son en sí mismas la respuesta a estos problemas. Por ejemplo, si un usuario envía un email preguntando por qué desde la home page no encuentra un enlace al recurso X, no significa que debamos implementar este enlace, sino que posiblemente el recurso X sea poco visible o de difícil localización. Igualmente, en los cuestionarios no se deben hacer preguntas del tipo "¿Preferiría que el diseño fuera de tal forma?", sino del tipo "¿Ha tenido algún problema para localizar el recurso X?" ó "¿Le ha resultado fácil el uso de la herramienta X?". Los resultados de los cuestionarios no indican la usabilidad del sitio, sino la satisfacción del usuario. Si la satisfacción es baja, habrá que mejorar la usabilidad. 28 5.5.2. COMPORTAMIENTO DEL USUARIO Y USO DEL SITIO Una vez que el sitio web ha sido lanzado y es usado diariamente, tenemos a nuestra disposición una nueva fuente de información sobre el comportamiento del usuario: Los ficheros "log". Estos, son extensos ficheros de texto plano que genera el servidor web, y en los que se registra cada una de las peticiones de páginas realizadas por los clientes al servidor. Por cada petición del cliente al servidor se suele registrar la siguiente información: Dirección IP del cliente Identidad del usuario (para sitios con identificación) Password de acceso (para sitios con identificación) Fecha y hora de la petición Método Path o directorio de la página en el servidor Código que indica si la petición ha sido resuelta correctamente o no Número de bytes trasferidos entre cliente y servidor Página desde la que se pide el archivo al servidor (puede ser una URL interna si a la página se llega por un enlace del mismo sitio web, o externa, en el caso de que sea a través de otro sitio web) Información sobre el agente software (navegador) del cliente A través del análisis de los ficheros logs se pueden responder preguntas como: ¿quién usa el sitio? ¿cuándo lo usa? ¿qué páginas suelen ser las más visitadas? ¿desde qué páginas se llega? ¿qué términos utiliza el usuario para interrogar al buscador interno?... Se trata realmente de una información muy valiosa que correctamente analizada (normalmente ayudándonos de software específico), puede servirnos para la toma de decisiones sobre el rediseño en sitios web implementados. 6. CONCLUSIONES En este trabajo se ha descrito, a grandes rasgos, cómo diseñar sitios web usables a través de la aplicación de técnicas, recomendaciones de diseño, métodos y procedimientos de Diseño Centrado en el Usuario. El Diseño Web Centrado en el Usuario es un marco metodológico y una filosofía de diseño claramente multidisciplinar, por lo que en la práctica debería ser aplicado idealmente por equipos de desarrollo interdisciplinares. En el contexto de estos equipos de desarrollo, el perfil del profesional de la documentación se adecua especialmente con las tareas de Arquitectura de Información. Es de esperar que ante la posibilidad de conquista de nuevos nichos de trabajo, todos estos nuevos conocimientos se vayan integrando en los actuales planes de estudio de Biblioteconomía y Documentación, así como la proliferación de cursos de formación especializada impartidos por investigadores de nuestra área. 29 3.5 DATA MINING La minería de datos (DM, Data Mining) consiste en la extracción no trivial de información que reside de manera implícita en los datos. Dicha información era previamente desconocida y podrá resultar útil para algún proceso. En otras palabras, la minería de datos prepara, sondea y explora los datos para sacar la información oculta en ellos. Bajo el nombre de minería de datos se engloba todo un conjunto de técnicas encaminadas a la extracción de conocimiento procesable, implícito en las bases de datos. Está fuertemente ligado con la supervisión de procesos industriales ya que resulta muy útil para aprovechar los datos almacenados en las bases de datos. Las bases de la minería de datos se encuentran en la inteligencia artificial y en el análisis estadístico. Mediante los modelos extraídos utilizando técnicas de minería de datos se aborda la solución a problemas de predicción, clasificación y segmentación. PROCESO Un proceso típico de minería de datos consta de los siguientes pasos generales: Selección del conjunto de datos, tanto en lo que se refiere a las variables objetivo (aquellas que se quiere predecir, calcular o inferir), como a las variables independientes (las que sirven para hacer el cálculo o proceso), como posiblemente al muestreo de los registros disponibles. Análisis de las propiedades de los datos, en especial los histogramas, diagramas de dispersión, presencia de valores atípicos y ausencia de datos (valores nulos). Transformación del conjunto de datos de entrada, se realizará de diversas formas en función del análisis previo, con el objetivo de prepararlo para aplicar la técnica de minería de datos que mejor se adapte a los datos y al problema, a este paso también se le conoce como preprocesamiento de los datos. Seleccionar y aplicar la técnica de minería de datos, se construye el modelo predictivo, de clasificación o segmentación. Extracción de conocimiento, mediante una técnica de minería de datos, se obtiene un modelo de conocimiento, que representa patrones de comportamiento observados en los valores de las variables del problema o relaciones de asociación entre dichas variables. También pueden usarse varias técnicas a la vez para generar distintos modelos, aunque generalmente cada técnica obliga a un preprocesado diferente de los datos. Interpretación y evaluación de datos, una vez obtenido el modelo, se debe proceder a su validación comprobando que las conclusiones que arroja son válidas y suficientemente satisfactorias. En el caso de haber obtenido varios modelos mediante el uso de distintas técnicas, se deben comparar los modelos en busca de aquel que se ajuste mejor al problema. Si ninguno de los modelos alcanza los resultados esperados, debe alterarse alguno de los pasos anteriores para generar nuevos modelos. 30 Si el modelo final no superara esta evaluación el proceso se podría repetir desde el principio o, si el experto lo considera oportuno, a partir de cualquiera de los pasos anteriores. Esta retroalimentación se podrá repetir cuantas veces se considere necesario hasta obtener un modelo válido. Una vez validado el modelo, si resulta ser aceptable (proporciona salidas adecuadas y/o con márgenes de error admisibles) éste ya está listo para su explotación. Los modelos obtenidos por técnicas de minería de datos se aplican incorporándolos en los sistemas de análisis de información de las organizaciones, e incluso, en los sistemas transaccionales. En este sentido cabe destacar los esfuerzos del Data Mining Group, que está estandarizando el lenguaje PMML (Predictive Model Markup Language), de manera que los modelos de minería de datos sean interoperables en distintas plataformas, con independencia del sistema con el que han sido construidos. Los principales fabricantes de sistemas de bases de datos y programas de análisis de la información hacen uso de este estándar. Tradicionalmente, las técnicas de minería de datos se aplicaban sobre información contenida en almacenes de datos. De hecho, muchas grandes empresas e instituciones han creado y alimentan bases de datos especialmente diseñadas para proyectos de minería de datos en las que centralizan información potencialmente útil de todas sus áreas de negocio. No obstante, actualmente está cobrando una importancia cada vez mayor la minería de datos desestructurados como información contenida en ficheros de texto, en Internet, etc. PROTOCOLO DE UN PROYECTO DE MINERÍA DE DATOS Un proyecto de minería de datos tiene varias fases necesarias que son, esencialmente: Comprensión del negocio y del problema que se quiere resolver. Determinación, obtención y limpieza de los datos necesarios. Creación de modelos matemáticos. Validación, comunicación, etc. de los resultados obtenidos. Integración, si procede, de los resultados en un sistema transaccional o similar. La relación entre todas estas fases sólo es lineal sobre el papel. En realidad, es mucho más compleja y esconde toda una jerarquía de subfases. A través de la experiencia acumulada en proyectos de minería de datos se han ido desarrollando metodologías que permiten gestionar esta complejidad de una manera más o menos uniforme. TÉCNICAS DE MINERÍA DE DATOS Como ya se ha comentado, las técnicas de la minería de datos provienen de la Inteligencia artificial y de la estadística, dichas técnicas, no son más que algoritmos, más o menos sofisticados que se aplican sobre un conjunto de datos para obtener unos resultados. LAS TÉCNICAS MÁS REPRESENTATIVAS SON: 31 Redes neuronales.- Son un paradigma de aprendizaje y procesamiento automático inspirado en la forma en que funciona el sistema nervioso de los animales. Se trata de un sistema de interconexión de neuronas en una red que colabora para producir un estímulo de salida. Algunos ejemplos de red neuronal son: El Perceptrón. El Perceptrón multicapa. Los Mapas Autoorganizados, también conocidos como redes de Kohonen. Regresión lineal.- Es la más utilizada para formar relaciones entre datos. Rápida y eficaz pero insuficiente en espacios multidimensionales donde puedan relacionarse más de 2 variables. Árboles de decisión.- Un árbol de decisión es un modelo de predicción utilizado en el ámbito de la inteligencia artificial, dada una base de datos se construyen estos diagramas de construcciones lógicas, muy similares a los sistemas de predicción basados en reglas, que sirven para representar y categorizar una serie de condiciones que suceden de forma sucesiva, para la resolución de un problema. Ejemplos: Algoritmo ID3. Algoritmo C4.5. Modelos estadísticos.- Es una expresión simbólica en forma de igualdad o ecuación que se emplea en todos los diseños experimentales y en la regresión para indicar los diferentes factores que modifican la variable de respuesta. Agrupamiento o Clustering.- Es un procedimiento de agrupación de una serie de vectores según criterios habitualmente de distancia; se tratará de disponer los vectores de entrada de forma que estén más cercanos aquellos que tengan características comunes. Ejemplos: Algoritmo K-means. Algoritmo K-medoids. Según el objetivo del análisis de los datos, los algoritmos utilizados se clasifican en supervisados y no supervisados (Weiss y Indurkhya, 1998): Algoritmos supervisados (o predictivos): predicen un dato (o un conjunto de ellos) desconocido a priori, a partir de otros conocidos. Algoritmos no supervisados (o del descubrimiento del conocimiento): se descubren patrones y tendencias en los datos. EJEMPLOS DE USO DE LA MINERÍA DE DATOS NEGOCIOS 32 La minería de datos puede contribuir significativamente en las aplicaciones de administración empresarial basada en la relación con el cliente. En lugar de contactar con el cliente de forma indiscriminada a través de un centro de llamadas o enviando cartas, sólo se contactará con aquellos que se perciba que tienen una mayor probabilidad de responder positivamente a una determinada oferta o promoción. Por lo general, las empresas que emplean minería de datos ven rápidamente el retorno de la inversión, pero también reconocen que el número de modelos predictivos desarrollados puede crecer muy rápidamente. En lugar de crear modelos para predecir qué clientes pueden cambiar, la empresa podría construir modelos separados para cada región y/o para cada tipo de cliente. También puede querer determinar qué clientes van a ser rentables durante una ventana de tiempo (una quincena, un mes, ...) y sólo enviar las ofertas a las personas que es probable que sean rentables. Para mantener esta cantidad de modelos, es necesario gestionar las versiones de cada modelo y pasar a una minería de datos lo más automatizada posible. HÁBITOS DE COMPRA EN SUPERMERCADOS El ejemplo clásico de aplicación de la minería de datos tiene que ver con la detección de hábitos de compra en supermercados. Un estudio muy citado detectó que los viernes había una cantidad inusualmente elevada de clientes que adquirían a la vez pañales y cerveza. Se detectó que se debía a que dicho día solían acudir al supermercado padres jóvenes cuya perspectiva para el fin de semana consistía en quedarse en casa cuidando de su hijo y viendo la televisión con una cerveza en la mano. El supermercado pudo incrementar sus ventas de cerveza colocándolas próximas a los pañales para fomentar las ventas compulsivas. PATRONES DE FUGA Un ejemplo más habitual es el de la detección de patrones de fuga. En muchas industrias —como la banca, las telecomunicaciones, etc.— existe un comprensible interés en detectar cuanto antes aquellos clientes que puedan estar pensando en rescindir sus contratos para, posiblemente, pasarse a la competencia. A estos clientes —y en función de su valor— se les podrían hacer ofertas personalizadas, ofrecer promociones especiales, etc., con el objetivo último de retenerlos. La minería de datos ayuda a determinar qué clientes son los más proclives a darse de baja estudiando sus patrones de comportamiento y comparándolos con muestras de clientes que, efectivamente, se dieron de baja en el pasado. FRAUDES Un caso análogo es el de la detección de transacciones de lavado de dinero o de fraude en el uso de tarjetas de crédito o de servicios de telefonía móvil e, incluso, en la relación de los contribuyentes con el fisco. Generalmente, estas operaciones fraudulentas o ilegales suelen seguir patrones característicos que permiten, con cierto grado de probabilidad, distinguirlas de las legítimas y desarrollar así mecanismos para tomar medidas rápidas frente a ellas. 33 RECURSOS HUMANOS La minería de datos también puede ser útil para los departamentos de recursos humanos en la identificación de las características de sus empleados de mayor éxito. La información obtenida puede ayudar a la contratación de personal, centrándose en los esfuerzos de sus empleados y los resultados obtenidos por éstos. Además, la ayuda ofrecida por las aplicaciones para Dirección estratégica en una empresa se traducen en la obtención de ventajas a nivel corporativo, tales como mejorar el margen de beneficios o compartir objetivos; y en la mejora de las decisiones operativas, tales como desarrollo de planes de producción o gestión de mano de obra. COMPORTAMIENTO EN INTERNET También es un área en boga el del análisis del comportamiento de los visitantes —sobre todo, cuando son clientes potenciales— en una página de Internet. O la utilización de la información —obtenida por medios más o menos legítimos— sobre ellos para ofrecerles propaganda adaptada específicamente a su perfil. O para, una vez que adquieren un determinado producto, saber inmediatamente qué otro ofrecerle teniendo en cuenta la información histórica disponible acerca de los clientes que han comprado el primero. TERRORISMO La minería de datos ha sido citada como el método por el cual la unidad Able Danger del Ejército de los EE. UU. había identificado al líder de los atentados del 11 de septiembre de 2001, Mohammed Atta, y a otros tres secuestradores del "11-S" como posibles miembros de una célula de Al Qaeda que operan en los EE. UU. más de un año antes del ataque. Se ha sugerido que tanto la Agencia Central de Inteligencia y sus homóloga canadiense, Servicio de Inteligencia y Seguridad Canadiense, también han empleado este método.1 JUEGOS Desde comienzos de la década de 1960, con la disponibilidad de oráculos para determinados juegos combinacionales, también llamados finales de juego de tablero (por ejemplo, para las tres en raya o en finales de ajedrez) con cualquier configuración de inicio, se ha abierto una nueva área en la minería de datos que consiste en la extracción de estrategias utilizadas por personas para estos oráculos. Los planteamientos actuales sobre reconocimiento de patrones, no parecen poder aplicarse con éxito al funcionamiento de estos oráculos. En su lugar, la producción de patrones perspicaces se basa en una amplia experimentación con bases de datos sobre esos finales de juego, combinado con un estudio intensivo de los propios finales de juego en problemas bien diseñados y con conocimiento de la técnica (datos previos sobre el final del juego). Ejemplos notables de investigadores que trabajan en este campo son Berlekamp en el juego de puntos-y-cajas (o Timbiriche) y John Nunn en finales de ajedrez. CIENCIA E INGENIERÍA 34 En los últimos años la minería de datos se está utilizando ampliamente en diversas áreas relacionadas con la ciencia y la ingeniería. Algunos ejemplos de aplicación en estos campos son: GENÉTICA En el estudio de la genética humana, el objetivo principal es entender la relación cartográfica entre las partes y la variación individual en las secuencias del ADN humano y la variabilidad en la susceptibilidad a las enfermedades. En términos más llanos, se trata de saber cómo los cambios en la secuencia de ADN de un individuo afectan al riesgo de desarrollar enfermedades comunes (como por ejemplo el cáncer). Esto es muy importante para ayudar a mejorar el diagnóstico, prevención y tratamiento de las enfermedades. La técnica de minería de datos que se utiliza para realizar esta tarea se conoce como "reducción de dimensionalidad multifactorial". INGENIERÍA ELÉCTRICA En el ámbito de la ingeniería eléctrica, las técnicas minería de datos han sido ampliamente utilizadas para monitorizar las condiciones de las instalaciones de alta tensión. La finalidad de esta monitorización es obtener información valiosa sobre el estado del aislamiento de los equipos. Para la vigilancia de las vibraciones o el análisis de los cambios de carga en transformadores se utilizan ciertas técnicas para agrupación de datos (clustering) tales como los Mapas Auto-Organizativos (SOM, Self-organizing map). Estos mapas sirven para detectar condiciones anormales y para estimar la naturaleza de dichas anomalías ANÁLISIS DE GASES También se han aplicado técnicas de minería de datos para el análisis de gases disueltos (DGA, Dissolved gas analysis) en transformadores eléctricos. El análisis de gases disueltos se conoce desde hace mucho tiempo como herramienta para diagnosticar transformadores. Los Mapas Auto-Organizativos (SOM) se utilizan para analizar datos y determinar tendencias que podrían pasarse por alto utilizando las técnicas clásicas DGA. MINERÍA DE DATOS Y OTRAS DISCIPLINAS ANÁLOGAS Suscita cierta polémica el definir las fronteras existentes entre la minería de datos y disciplinas análogas, como pueden serlo la estadística, la inteligencia artificial, etc. Hay quienes sostienen que la minería de datos no es sino 35 estadística envuelta en una jerga de negocios que la conviertan en un producto vendible. Otros, en cambio, encuentran en ella una serie de problemas y métodos específicos que la hacen distinta de otras disciplinas. El hecho es, que en la práctica la totalidad de los modelos y algoritmos de uso general en minería de datos —redes neuronales, árboles de regresión y clasificación, modelos logísticos, análisis de componentes principales, etc.— gozan de una tradición relativamente larga en otros campos. Ciertamente, la minería de datos bebe de la estadística, de la que toma las siguientes técnicas: Análisis de varianza, mediante el cual se evalúa la existencia de diferencias significativas entre las medias de una o más variables continuas en poblaciones distintos. Regresión: define la relación entre una o más variables y un conjunto de variables predictoras de las primeras. Prueba chi-cuadrado: por medio de la cual se realiza el contraste la hipótesis de dependencia entre variables. Análisis de agrupamiento o clustering: permite la clasificación de una población de individuos caracterizados por múltiples atributos (binarios, cualitativos o cuantitativos) en un número determinado de grupos, con base en las semejanzas o diferencias de los individuos. Análisis discriminante: permite la clasificación de individuos en grupos que previamente se han establecido, permite encontrar la regla de clasificación de los elementos de estos grupos, y por tanto una mejor identificación de cuáles son las variables que definan la pertenencia al grupo. Series de tiempo: permite el estudio de la evolución de una variable a través del tiempo para poder realizar predicciones, a partir de ese conocimiento y bajo el supuesto de que no van a producirse cambios estructurales. De la informática toma las siguientes técnicas: Algoritmos genéticos: Son métodos numéricos de optimización, en los que aquella variable o variables que se pretenden optimizar junto con las variables de estudio constituyen un segmento de información. Aquellas configuraciones de las variables de análisis que obtengan mejores valores para la variable de respuesta, corresponderán a segmentos con mayor capacidad reproductiva. A través de la reproducción, los mejores segmentos perduran y su proporción crece de generación en generación. Se puede además introducir elementos aleatorios para la modificación de las variables (mutaciones). Al cabo de cierto número de iteraciones, la población estará constituida por buenas soluciones al problema de optimización, pues las malas soluciones han ido descartándose, iteración tras iteración. Inteligencia Artificial: Mediante un sistema informático que simula un sistema inteligente, se procede al análisis de los datos disponibles. Entre los sistemas de Inteligencia Artificial se encuadrarían los Sistemas Expertos y las Redes Neuronales. Sistemas Expertos: Son sistemas que han sido creados a partir de reglas prácticas extraídas del conocimiento de expertos. Principalmente a base de inferencias o de causa-efecto. Sistemas Inteligentes: Son similares a los sistemas expertos, pero con mayor ventaja ante nuevas situaciones desconocidas para el experto. Redes neuronales: Genéricamente, son métodos de proceso numérico en paralelo, en el que las variables interactúan mediante transformaciones lineales o no lineales, hasta obtener unas salidas. Estas salidas se 36 contrastan con los que tenían que haber salido, basándose en unos datos de prueba, dando lugar a un proceso de retroalimentación mediante el cual la red se reconfigura, hasta obtener un modelo adecuado. MINERÍA DE DATOS BASADA EN TEORÍA DE LA INFORMACIÓN Todas las herramientas tradicionales de minería de datos asumen que los datos que usarán para construir los modelos contienen la información necesaria para lograr el propósito buscado: obtener suficiente conocimiento que pueda ser aplicado al negocio (o problema) para obtener un beneficio (o solución). El inconveniente es que esto no es necesariamente cierto. Además, existe otro problema mayor aún. Una vez construido el modelo no es posible conocer si el mismo ha capturado toda la información disponible en los datos. Por esta razón la práctica común es realizar varios modelos con distintos parámetros para ver si alguno logra mejores resultados. Un enfoque relativamente nuevo al análisis de datos soluciona estos problemas haciendo que la práctica de la minería de datos se parezca más a una ciencia que a un arte. En 1948 Claude Shannon publicó un trabajo llamado “Una Teoría Matemática de la Comunicación”. Posteriormente esta pasó a llamarse Teoría de la información y sentó las bases de la comunicación y la codificación de la información. Shannon propuso una manera de medir la cantidad de información a ser expresada en bits. En 1999 Dorian Pyle publicó un libro llamado “Data Preparation for Data Mining” en el que propone una manera de usar la Teoría de la Información para analizar datos. En este nuevo enfoque, una base de datos es un canal que transmite información. Por un lado está el mundo real que captura datos generados por el negocio. Por el otro están todas las situaciones y problemas importantes del negocio. Y la información fluye desde el mundo real y a través de los datos, hasta la problemática del negocio. Con esta perspectiva y usando la Teoría de la información, es posible medir la cantidad de información disponible en los datos y qué porción de la misma podrá utilizarse para resolver la problemática del negocio. Como un ejemplo práctico, podría encontrarse que los datos contienen un 65% de la información necesaria para predecir qué cliente rescindirán sus contratos. De esta manera, si el modelo final es capaz de hacer predicciones con un 60% de acierto, se puede asegurar que la herramienta que generó el modelo hizo un buen trabajo capturando la información disponible. Ahora, si el modelo hubiese tenido un porcentaje de aciertos de solo el 10%, por ejemplo, entonces intentar otros modelos o incluso con otras herramientas podría valer la pena. La capacidad de medir información contenida en los datos tiene otras ventajas importantes. Al analizar los datos desde esta nueva perspectiva se genera un mapa de información que hace innecesario la preparación previa de los datos, una tarea absolutamente imprescindible si se desea buenos resultados, pero que lleva enorme cantidad de tiempo. Es posible seleccionar un grupo de variables óptimo que contenga la información necesaria para realizar un modelo de predicción. 37 Una vez que las variables son procesadas con el fin de crear el mapa de información y luego seleccionadas aquellas que aportan la mayor información, la elección de la herramienta que se usará para crear el modelo deja de tener importancia, ya que el mayor trabajo fue realizado en los pasos previos. TENDENCIAS La Minería de Datos ha sufrido transformaciones en los últimos años de acuerdo con cambios tecnológicos, de estrategias de marketing, la extensión de los modelos de compra en línea, etc. Los más importantes de ellos son: La importancia que han cobrado los datos no estructurados (texto, páginas de Internet, etc.). La necesidad de integrar los algoritmos y resultados obtenidos en sistemas operacionales, portales de Internet, etc. La exigencia de que los procesos funcionen prácticamente en línea (por ejemplo, que frente a un fraude con una tarjeta de crédito). Los tiempos de respuesta. El gran volumen de datos que hay que procesar en muchos casos para obtener un modelo válido es un inconveniente; esto implica grandes cantidades de tiempo de proceso y hay problemas que requieren una respuesta en tiempo real. 38