Sunteți pe pagina 1din 6

Consideraciones para el diseño de

interfaces de usuario en sistemas operativos

Eugenio Jacobo Hernández Valdelamar

Fundación Arturo Rosenblueth. Insurgentes Sur 670-3. Colonia del Valle.


CP 03100. México, D.F., México.
jack@mail.rosenblueth.mx , jack_hv@yahoo.com

Resumen. La manera en que los usuarios de computadoras interactúan con sus


aplicaciones es uno de los tópicos más interesantes en el área de computación.
Muchos de los avances podemos verlos plasmados en los sistemas operativos
que usamos a diario, pero aún 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 diseño de estos subsistemas de los
sistemas operativos.

Palabras clave: sistemas operativos, interacción hombre-máquina, interfaz de


usuario, interfaz gráfica de usuario.

1. Diseño de sistemas operativos: la interacción con el usuario

Aunque el uso de los recursos del hardware de la computadora sea el objetivo principal
del diseño de un sistema operativo, no se puede dejar de pensar en como los usuarios
interactuarán 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 periféricos. En un
principio los operadores expertos tenían que recurrir a teclados especiales para perforar
tarjetas que alimentaban a la máquina, y debían consultar sus resultados en manojos de
hojas que salían de las impresoras. Poco a poco, la mejora en interfaces con el usuario
ha permitido que pueda disminuirse la complejidad de interacción entre las
computadoras y usuarios.
Tareas como reconocer información del teclado o el ratón, desplegar información en
un monitor, o controlar la impresión de un documento, son faenas básicas que un
sistema operativo debe realizar actualmente. Además de esto, el SO debe ofrecer una
serie de servicios y recursos que puedan ser aprovechados por el software de aplicación.
En este trabajo se exponen algunas consideraciones de diseño útiles para su
implantación.

2. Interacción humano-computadora

La interacción humano-computadora (HCI) es la disciplina relacionada con el estudio,


diseño, construcción e implementación de sistemas de cómputo interactivos centrados
en el usuario. HCI va más allá de diseñar pantallas o menús que sean más fáciles 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 técnicas de graficación por computadora y técnicas de
diálogo [1].
Una interfaz de usuario es un medio para que el usuario interactúe 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
información de la máquina al usuario y comunicar información del usuario a la
máquina. Douglas Engelbart fue el pionero en esta área, pues planteó una visión en la
que “las computadoras fueran extensiones de las capacidades de comunicación del ser
humano y fueran un recurso para aumentar el intelecto humano” [2]. Él, junto con un
grupo de jóvenes investigadores en el Instituto de Investigación de Stanford (SRI)
desarrollaron el ratón, 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 tecnología
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 códigos 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 gráficos
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 consistían de un conjunto de comando que el usuario debía
memorizar y a los que la computadora respondía .
Así que por una parte está el manejo del modo gráfico 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 gramática. Este programa por lo general es
un interprete que puede basar su codificación en el patrón Interpreter.
Un paso intermedio entre la interfaz de línea de comando y las interfaces gráficas, fue
el uso de interfaces basadas en menús en modo texto, donde se podía interactuar por
medio de un ratón en lugar de escribir el comando correspondiente en el teclado. Esto
demandaba un esfuerzo considerable de programación, y por lo general no había una
manera estandarizada de programar este tipo de interfaces.
En este punto, muchas librerías para interfaces de usuario aparecieron prometiendo
disminuir los tiempos de desarrollo, pero con el advenimiento de las interfaces gráficas
integradas en el sistema operativo, mucho de este trabajo fue efímero.

4. Interfaz gráfica de usuario

Una interfaz gráfica de usuario (GUI) es un programa de interfaz que aprovecha las
capacidades de despliegue gráfico de la computadora que permite hacer más sencillo el
uso de los programas [3]. Este cambio de paradigma en las interfaces de usuario se dio
en el centro de investigación de Xerox, cuando se construyó la computadora Alto
(1973). La metáfora más 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 gráfica de usuario usa iconos y menús para
realizar comandos tales como abrir archivos o ejecutar aplicaciones. Algunos de los
componentes gráficos comunes en este tipo de interfaces son:
¾ Apuntador. Es un símbolo que aparece en la pantalla y que se desplaza para
seleccionar objetos y comandos.
¾ Dispositivo apuntador. Un dispositivo como el ratón que permite seleccionar
objetos de la pantalla.
¾ Iconos. Pequeñas imágenes que representan comandos, archivos o ventanas.
¾ Menús. 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.
Además de sus componentes gráficos, la interfaz debe permitir mover datos de una
aplicación a otra. Una buena GUI debe incluir formatos estándar para representar texto
y gráficos, lo que permite que las aplicaciones puedan compartir sus contenidos (p.ej.
llevar un gráfico de una hoja de cálculo a un procesador de palabras). Una arquitectura
que es comúnmente usada para el desarrollo de la GUI es el patrón modelo-vista-
controlador (MVC), que permite separar los componentes gráficos, el control de los
dispositivos periféricos y eventos, y sus efectos en el modelo (fig. 1).

Fig. 1. Patrón 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 gráficos adicionales. Tómese como
ejemplo el caso de Java donde se tiene un marco de trabajo llamado Swing que permite
la programación de interfaces de usuario.
Cada sistema operativo tiene su propia arquitectura de GUI, pues sistemas como
BeOS o el Mac OS X, orientados a diseñadores y artistas gráficos, hacen un uso
intensivo de las capacidades gráficas de la computadora, por lo que debe optimizar el
uso de estos recursos. Una tendencia adicional es la personalización del diseño gráfico
de los elementos de la interfaz gráfica. Para ello se ha introducido el concepto de tema,
donde existe una separación en el trabajo de los diseñadores gráficos y los
programadores [4]. De esta manera, pueden cambiarse el diseño y distribución de los
controles sin tener que recompilar el código encargado del GUI (fig. 2)
Fig. 2. Arquitectura de una GUI que integra la metáfora de tema

5. Interfaces alternativas

En un futuro la forma de interacción de los humanos con las computadoras cambiará


de forma radical. Al aumentar el poder de cómputo, formas de interacción planteadas
como futuristas se están haciendo realidad. Algunos ejemplos de esto son:
• Una interfaz de usuario basada en el habla (speech user interface - SUI) es aquella
que soporta un diálogo interactivo entre el usuario y una aplicación de software,
ofreciendo una forma de interacción más natural para el usuario. Un escenario
propicio para este tipo de interfaces es el de dispositivos móviles, 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 señales eléctricas generadas por sus cuerpos para controlar
una computadora o dispositivos eléctricos conectados a ella. Las señales pueden
adquirirse de forma directa o indirecta. Los métodos directos implican implantes
quirúrgicos en el cuerpo del usuario. El implante puede localizarse en el cerebro o
en algún miembro amputado, dependiendo de la aplicación. Este tipo de tecnología
aún está en desarrollo. Los métodos indirectos de obtención de señales no
requieren cirugía. Estas señales neuronales indirectas pueden obtenerse de los
músculos (EMG), movimiento de los ojos (EOG) o de las ondas cerebrales (EEG).
Después de que las señales eléctricas se obtienen del cuerpo se amplifican, y se
traducen en su equivalente digital para que el software pueda interpretar las señales.
Dicho software permite a los usuarios controlar un cursor, jugar videojuegos
especialmente diseñados o controlar otros dispositivos conectados a la
computadora.

6. Diseño de interfaces de usuario

El principal objetivo del desarrollo de interfaces de usuario es el diseñar 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 diseño, donde se plantean prototipos de interfaces donde se
determinan que eventos ocurrirán y los procesos lógicos soportarán a dichos eventos; en
otras palabras, se visualiza la funcionalidad del sistema y las interacciones con el
usuario. Dichos prototipos servirán como referencia para codificar las interfaces de
usuario con una tecnología específica, dependiendo de los requerimientos del sistema.
Después de codificar la aplicación, se procede a la etapa de pruebas. Existe una técnica
específica llamada pruebas de usabilidad que puede validar el diseño de la interfaz y
revelar áreas que requieran refinamiento. La idea básica 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
podría narrar algo como lo siguiente: "Quiero encontrar un archive de texto con mis
notas. Veo un botón que dice “Archivos”, pero no se si es para crear o para buscar
archivos". Comprendiendo que es lo que están pensando los sujetos de prueba es posible
detectar problemas de comprensión 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 metáfora del espacio de trabajo y sus
correspondientes elementos de diseño, así como contemplar los dispositivos con que la
computadora podrá contar, lo que lleva al desarrollo de:
¾ Controladores para dispositivos de interfaz (Ratón, visores, tarjetas gráficas,
cámaras, etc.)
¾ APIs de interfaz de usuario (GUI, SUI, etc.)
¾ APIs de graficación (2D, 3D, etc.)
¾ Ambientes de trabajo (modo texto o gráficos)
¾ Herramientas para diseño 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 gráficos que integra 3 tecnologías [6]:
¾ Quartz, que es un servidor de ventanas y un motor de despliegue gráfico
bidimensional que define las formas en términos de sus componentes vectoriales, y
que usa como lenguaje gráfico de representación interna el estándar PDF (Portable
Document Format).
¾ OpenGL, que es el estándar para gráficos tridimensionales.
¾ QuickTime, que es una tecnología multimedia que permite la manipulación de
imágenes, sonidos, texto, música, animación y hasta realidad virtual.
Aqua es la interfaz gráfica de usuario de este sistema operativo, que integra la
apariencia y comportamiento de la interfaz, que basa mucha de su funcionalidad gráfica
en las capacidades de Quartz. Estas tecnologías de manipulación gráfica, en
combinación con las interfaces de programación Carbon, Cocoa (Java/Objective C),
Java y el soporte de UNIX, permiten el desarrollo de aplicaciones con interfaz gráfica
de usuario en diversas plataformas. Todo esto queda plasmado en el término definido
por Apple como experiencia del usuario (User Experience) el cuál 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 diseño del SO,
puede que su implementación no sea del gusto de los desarrolladores, o que por estar
implementada en un lenguaje estructurado, si se requiere desarrollar con orientación 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 generación de dispositivos está apareciendo en el mercado. Desde los dispositivos
móviles (PDAs y teléfonos celulares) que implican restricciones en las regiones de
despliegue rápido y uso racional del ancho de banda, aparatos electrodomésticos,
nuevos diseños de computadoras personales (p.ej. Tablet PC) y paradigmas como el
cómputo ubicuo, todos implican el desarrollo de nuevas formas de interacción.
Dichos desarrollos no solo dependen de nuevas librerías de manejo de gráficos, sino de
una nueva infraestructura de comunicaciones, conectividad y dispositivos de interfaz
que provocarán una ampliación en nuestras capacidades de comunicación y percepción.
Esto lo que implica es el desarrollo de nuevo hardware, software y además 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 . Common Front Group.
http://cfg.cit.cornell.edu/cfg/design/contents.html
[6] Mac OS X Update: Quartz & Aqua. John Siracusa.
http://www.arstechnica.com/reviews/1q00/macos-x-gui/macos-x-gui-1.html
[7] ATRC – Neural interface devices.
http://www.utoronto.ca/atrc/reference/tech/neuralinterface.html
[8] WCEfA. Using Automotive Speech Architecture.
http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/apcguide/htm/spc_overview_1.asp
[9] Diseño y simulación de sistemas operativos. Eugenio Jacobo Hernández Valdelamar. Tesis
MCC. Fundación Arturo Rosenblueth . 2003.

S-ar putea să vă placă și