Está en la página 1de 6

Consideraciones para el diseo de interfaces de usuario en sistemas operativos

Eugenio Jacobo Hernndez Valdelamar Fundacin Arturo Rosenblueth. Insurgentes Sur 670-3. Colonia del Valle. CP 03100. Mxico, D.F., Mxico. jack@mail.rosenblueth.mx , jack_hv@yahoo.com

Resumen. La manera en que los usuarios de computadoras interactan con sus aplicaciones es uno de los tpicos ms interesantes en el rea de computacin. Muchos de los avances podemos verlos plasmados en los sistemas operativos que usamos a diario, pero an queda mucho por hacer, por lo que se plantean en este trabajo los antecedentes de las interfaces de usuario existentes y se presentan algunas consideraciones para el diseo de estos subsistemas de los sistemas operativos. Palabras clave: sistemas operativos, interaccin hombre-mquina, interfaz de usuario, interfaz grfica de usuario.

1. Diseo de sistemas operativos: la interaccin con el usuario


Aunque el uso de los recursos del hardware de la computadora sea el objetivo principal del diseo de un sistema operativo, no se puede dejar de pensar en como los usuarios interactuarn con la computadora, pues hay que recordar que por lo menos en la arena de las computadoras personales, esto ha sido el factor principal para el xito de cualquier producto, ya sea una computadora o alguno de sus perifricos. En un principio los operadores expertos tenan que recurrir a teclados especiales para perforar tarjetas que alimentaban a la mquina, y deban consultar sus resultados en manojos de hojas que salan de las impresoras. Poco a poco, la mejora en interfaces con el usuario ha permitido que pueda disminuirse la complejidad de interaccin entre las computadoras y usuarios. Tareas como reconocer informacin del teclado o el ratn, desplegar informacin en un monitor, o controlar la impresin de un documento, son faenas bsicas que un sistema operativo debe realizar actualmente. Adems de esto, el SO debe ofrecer una serie de servicios y recursos que puedan ser aprovechados por el software de aplicacin. En este trabajo se exponen algunas consideraciones de diseo tiles para su implantacin.

2. Interaccin humano-computadora
La interaccin humano-computadora (HCI) es la disciplina relacionada con el estudio, diseo, construccin e implementacin de sistemas de cmputo interactivos centrados en el usuario. HCI va ms all de disear pantallas o mens que sean ms fciles de usar (usabilidad), pues estudia el razonamiento que implica construir determinada funcionalidad en las computadoras y sus efectos a largo plazo que estos sistemas tienen

en los humanos. Una de las principales actividades en esta rea, es el desarrollo de nuevos sistemas de interfaz para el usuario, lo que implica desarrollar nuevos dispositivos de interfaz, nuevas tcnicas de graficacin por computadora y tcnicas de dilogo [1]. Una interfaz de usuario es un medio para que el usuario interacte con la computadora. Este medio se constituye tanto de software como de hardware. Aunque las interfaces de usuario pueden adoptar diversas formas, sus objetivos fundamentales son: comunicar informacin de la mquina al usuario y comunicar informacin del usuario a la mquina. Douglas Engelbart fue el pionero en esta rea, pues plante una visin en la que las computadoras fueran extensiones de las capacidades de comunicacin del ser humano y fueran un recurso para aumentar el intelecto humano [2]. l, junto con un grupo de jvenes investigadores en el Instituto de Investigacin de Stanford (SRI) desarrollaron el ratn, el concepto de hipermedia, la interfaz de ventanas y la teleconferencia. La importancia de las interfaces de usuario es muy trascendente no solo para el usuario convencional, sino para los usuarios con discapacidades, pues para hacer la tecnologa accesible para ellos, deben contemplarse nuevos dispositivos y aplicaciones que les permitan usar la computadora.

3. Interfaz basada en texto


Los programas orientados a caracteres solo eran capaces de desplegar cdigos ASCII en pantalla. Estos programas trataban al rea de despliegue como un arreglo de bloques, donde cada uno solo puede contener un caracter. En contraste los programas grficos tratan al monitor como un arreglo de puntos (pixeles). Las primeras interfaces de usuario con la computadora estaban orientadas al uso de texto proveniente de un teclado, y usualmente consistan de un conjunto de comando que el usuario deba memorizar y a los que la computadora responda . As que por una parte est el manejo del modo grfico correspondiente a la interfaz para desplegar sus resultados en el monitor, y por otro esta el programa encargado de captar y ejecutar los comandos correspondientes. Dichos comandos corresponden a un lenguaje que debe ser especificado por una gramtica. Este programa por lo general es un interprete que puede basar su codificacin en el patrn Interpreter. Un paso intermedio entre la interfaz de lnea de comando y las interfaces grficas, fue el uso de interfaces basadas en mens en modo texto, donde se poda interactuar por medio de un ratn en lugar de escribir el comando correspondiente en el teclado. Esto demandaba un esfuerzo considerable de programacin, y por lo general no haba una manera estandarizada de programar este tipo de interfaces. En este punto, muchas libreras para interfaces de usuario aparecieron prometiendo disminuir los tiempos de desarrollo, pero con el advenimiento de las interfaces grficas integradas en el sistema operativo, mucho de este trabajo fue efmero.

4. Interfaz grfica de usuario


Una interfaz grfica de usuario (GUI) es un programa de interfaz que aprovecha las capacidades de despliegue grfico de la computadora que permite hacer ms sencillo el uso de los programas [3]. Este cambio de paradigma en las interfaces de usuario se dio en el centro de investigacin de Xerox, cuando se construy la computadora Alto (1973). La metfora ms usada actualmente es la de un espacio de trabajo bidimensional, donde como en un escritorio se tienen los implementos que el usuario

usa en su trabajo diario. Este tipo de interfaz grfica de usuario usa iconos y mens para realizar comandos tales como abrir archivos o ejecutar aplicaciones. Algunos de los componentes grficos comunes en este tipo de interfaces son: Apuntador. Es un smbolo que aparece en la pantalla y que se desplaza para seleccionar objetos y comandos. Dispositivo apuntador. Un dispositivo como el ratn que permite seleccionar objetos de la pantalla. Iconos. Pequeas imgenes que representan comandos, archivos o ventanas. Mens. Opciones o comandos agrupados en forma de listas. Ventanas. Son reas que dividen la pantalla, y en cada una de ellas puede ejecutarse un programa o abrir un archivo diferente. Escritorio. Es el rea de la pantalla donde los iconos son agrupados. Adems de sus componentes grficos, la interfaz debe permitir mover datos de una aplicacin a otra. Una buena GUI debe incluir formatos estndar para representar texto y grficos, lo que permite que las aplicaciones puedan compartir sus contenidos (p.ej. llevar un grfico de una hoja de clculo a un procesador de palabras). Una arquitectura que es comnmente usada para el desarrollo de la GUI es el patrn modelo-vistacontrolador (MVC), que permite separar los componentes grficos, el control de los dispositivos perifricos y eventos, y sus efectos en el modelo (fig. 1).

Fig. 1. Patrn MVC como base de una GUI En este esquema las aplicaciones usan los elementos del GUI que proporciona el sistema operativo, y es posible agregar elementos grficos adicionales. Tmese como ejemplo el caso de Java donde se tiene un marco de trabajo llamado Swing que permite la programacin de interfaces de usuario. Cada sistema operativo tiene su propia arquitectura de GUI, pues sistemas como BeOS o el Mac OS X, orientados a diseadores y artistas grficos, hacen un uso intensivo de las capacidades grficas de la computadora, por lo que debe optimizar el uso de estos recursos. Una tendencia adicional es la personalizacin del diseo grfico de los elementos de la interfaz grfica. Para ello se ha introducido el concepto de tema, donde existe una separacin en el trabajo de los diseadores grficos y los programadores [4]. De esta manera, pueden cambiarse el diseo y distribucin de los controles sin tener que recompilar el cdigo encargado del GUI (fig. 2)

Fig. 2. Arquitectura de una GUI que integra la metfora de tema

5. Interfaces alternativas
En un futuro la forma de interaccin de los humanos con las computadoras cambiar de forma radical. Al aumentar el poder de cmputo, formas de interaccin planteadas como futuristas se estn haciendo realidad. Algunos ejemplos de esto son: Una interfaz de usuario basada en el habla (speech user interface - SUI) es aquella que soporta un dilogo interactivo entre el usuario y una aplicacin de software, ofreciendo una forma de interaccin ms natural para el usuario. Un escenario propicio para este tipo de interfaces es el de dispositivos mviles, en especifico plataformas como el Auto-PC [8]. En donde se requiere que el usuario tenga desocupadas las manos para manejar. Los dispositivos de interfaz neuronal (Neural Interface Devices) [7] permiten a los usuarios aprovechar las seales elctricas generadas por sus cuerpos para controlar una computadora o dispositivos elctricos conectados a ella. Las seales pueden adquirirse de forma directa o indirecta. Los mtodos directos implican implantes quirrgicos en el cuerpo del usuario. El implante puede localizarse en el cerebro o en algn miembro amputado, dependiendo de la aplicacin. Este tipo de tecnologa an est en desarrollo. Los mtodos indirectos de obtencin de seales no requieren ciruga. Estas seales neuronales indirectas pueden obtenerse de los msculos (EMG), movimiento de los ojos (EOG) o de las ondas cerebrales (EEG). Despus de que las seales elctricas se obtienen del cuerpo se amplifican, y se traducen en su equivalente digital para que el software pueda interpretar las seales. Dicho software permite a los usuarios controlar un cursor, jugar videojuegos especialmente diseados o controlar otros dispositivos conectados a la computadora.

6. Diseo de interfaces de usuario


El principal objetivo del desarrollo de interfaces de usuario es el disear e implementar interfaces que sean eficientes efectivas al ser utilizadas por el usuario [5]. Este proceso debe estar contemplado en el proceso de desarrollo de software, y por lo general empieza en la fase de diseo, donde se plantean prototipos de interfaces donde se determinan que eventos ocurrirn y los procesos lgicos soportarn a dichos eventos; en otras palabras, se visualiza la funcionalidad del sistema y las interacciones con el usuario. Dichos prototipos servirn como referencia para codificar las interfaces de usuario con una tecnologa especfica, dependiendo de los requerimientos del sistema.

Despus de codificar la aplicacin, se procede a la etapa de pruebas. Existe una tcnica especfica llamada pruebas de usabilidad que puede validar el diseo de la interfaz y revelar reas que requieran refinamiento. La idea bsica es observar a los usuarios mientras operan la interfaz. Previamente se les debe capacitar para que puedan verbalizar sus pensamientos y acciones mientras los realizan. Por ejemplo, un usuario podra narrar algo como lo siguiente: "Quiero encontrar un archive de texto con mis notas. Veo un botn que dice Archivos, pero no se si es para crear o para buscar archivos". Comprendiendo que es lo que estn pensando los sujetos de prueba es posible detectar problemas de comprensin o uso de la interfaz de usuario. En el contexto de los sistemas operativos, sobre todo de los de uso general, dichas interfaces deben implementar una metfora del espacio de trabajo y sus correspondientes elementos de diseo, as como contemplar los dispositivos con que la computadora podr contar, lo que lleva al desarrollo de: Controladores para dispositivos de interfaz (Ratn, visores, tarjetas grficas, cmaras, etc.) APIs de interfaz de usuario (GUI, SUI, etc.) APIs de graficacin (2D, 3D, etc.) Ambientes de trabajo (modo texto o grficos) Herramientas para diseo de aplicaciones con interfaz de usuario Un ejemplo palpable de este enfoque es la arquitectura del Mac OS X. Como soporte se tiene un microkernel muy potente (Darwin), sobre el que se monta la capa del sistema de grficos que integra 3 tecnologas [6]: Quartz, que es un servidor de ventanas y un motor de despliegue grfico bidimensional que define las formas en trminos de sus componentes vectoriales, y que usa como lenguaje grfico de representacin interna el estndar PDF (Portable Document Format). OpenGL, que es el estndar para grficos tridimensionales. QuickTime, que es una tecnologa multimedia que permite la manipulacin de imgenes, sonidos, texto, msica, animacin y hasta realidad virtual. Aqua es la interfaz grfica de usuario de este sistema operativo, que integra la apariencia y comportamiento de la interfaz, que basa mucha de su funcionalidad grfica en las capacidades de Quartz. Estas tecnologas de manipulacin grfica, en combinacin con las interfaces de programacin Carbon, Cocoa (Java/Objective C), Java y el soporte de UNIX, permiten el desarrollo de aplicaciones con interfaz grfica de usuario en diversas plataformas. Todo esto queda plasmado en el trmino definido por Apple como experiencia del usuario (User Experience) el cul abarca la apariencia visual, comportamiento interactivo, y capacidades asistivas del software. Todo este soporte debe ser considerado por quien desarrolle un sistema operativo, pues esta infraestructura representa una ventaja competitiva si se quiere que el SO sea adoptado por el mayor numero de usuarios posible, y sobre todo si se quiere que las comunidades de desarrolladores produzcan aplicaciones en la nueva plataforma. Incluso aunque la parte de interfaz de usuario este contemplada en el diseo del SO, puede que su implementacin no sea del gusto de los desarrolladores, o que por estar implementada en un lenguaje estructurado, si se requiere desarrollar con orientacin a objetos existan problemas de compatibilidad. Estos escenarios pueden provocar de nuevo que algunos desarrolladores prefieran programar sus propias APIs.

6. Conclusiones
La forma en que interactuamos con las computadoras est por cambiar, pues toda una nueva generacin de dispositivos est apareciendo en el mercado. Desde los dispositivos mviles (PDAs y telfonos celulares) que implican restricciones en las regiones de despliegue rpido y uso racional del ancho de banda, aparatos electrodomsticos, nuevos diseos de computadoras personales (p.ej. Tablet PC) y paradigmas como el cmputo ubicuo, todos implican el desarrollo de nuevas formas de interaccin. Dichos desarrollos no solo dependen de nuevas libreras de manejo de grficos, sino de una nueva infraestructura de comunicaciones, conectividad y dispositivos de interfaz que provocarn una ampliacin en nuestras capacidades de comunicacin y percepcin. Esto lo que implica es el desarrollo de nuevo hardware, software y adems probar intensivamente no solo el funcionamiento de las nuevas interfaces, sino de sus efectos en los usuarios [9].

Referencias
[1] ACM SIGCHI Curricula for Human-Computer Interaction. http://sigchi.org/cdg/index.html [2] Mouse Site. http://sloan.stanford.edu/MouseSite/ [3] GUI Webopedia.

http://www.webopedia.com/TERM/G/Graphical_User_Interface_GUI.html
[4] WCEfA. Using Automotive Graphical User Interface. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/apcguide/htm/acc_guide_1.asp [5] User Interface Design http://cfg.cit.cornell.edu/cfg/design/contents.html . Common Front John Group. Siracusa. devices.

[6] Mac OS X Update: Quartz & Aqua. http://www.arstechnica.com/reviews/1q00/macos-x-gui/macos-x-gui-1.html [7] ATRC Neural http://www.utoronto.ca/atrc/reference/tech/neuralinterface.html [8] WCEfA. Using Automotive Speech Architecture. http://msdn.microsoft.com/library/default.asp?url=/library/enus/apcguide/htm/spc_overview_1.asp interface

[9] Diseo y simulacin de sistemas operativos. Eugenio Jacobo Hernndez Valdelamar. Tesis MCC. Fundacin Arturo Rosenblueth . 2003.

También podría gustarte