|
Interface
de Usuário para Múltiplos Dispositivos:
Questões
de Desenvolvimento e Tendências de Pesquisa
O computador
tem ao longo dos anos deixado de ser um instrumento de trabalho
exclusivo dos especialistas de Informática e tornado-se em
ferramenta de apoio a diversos profissionais nas mais variadas
atividades de trabalho. A variedade de perfis de usuários e tarefas
impõe desafios para o projeto de sistemas computacionais e, mais
especificamente, para os sistemas interativos. Melhorar a
usabilidade de sistemas interativos é uma das principais metas dos
projetistas de interface de usuário. A usabilidade de um sistema é
determinada pela facilidade de aprendizado e uso deste. Contudo,
alcançar esta meta não é tarefa fácil.
Note que usuários de sistemas
computacionais, comumente, buscam aplicações que possuam interfaces
ditas amigáveis, isto é, que sejam fáceis de aprender e usar,
independente dos recursos funcionais oferecidos pelo sistema.
Entretanto, o desenvolvimento de sistemas interativos exigem que
aproximadamente 50% do tempo e dos recursos sejam alocados ao
desenvolvimento do software da interface de usuário. Assim,
concomitante com a meta de melhorar a usabilidade dos sistemas
interativos, há ainda a necessidade de minimizar o custo de
desenvolvimento.
Aliado às questões acima, tem-se
observado que a crescente produção de dispositivos eletrônicos nas
últimas décadas tem demandado esforços, cada vez maiores, visando o
desenvolvimento de softwares adequados a esses dispositivos. Isto
ocorre porque tais dispositivos estão cada vez mais presentes na
vida das pessoas e também das organizações. Eles compreendem
computadores pessoais, telefones celulares e pequenos computadores
portáteis como os PDAs (Personal Digital Assistant ou
assistente pessoal digital). Estes dispositivos apresentam
funcionalidades similares de uso como, por exemplo, calculadoras,
editores de texto, correio eletrônico, agendas, browsers e
jogos. Entretanto, eles possuem diversas características que
diferenciam uns dos outros tais como dispositivos de entrada e
saída, capacidade de processamento e armazenamento, largura de banda
de transmissão e interface de usuário.
Nesse sentido, vale observar que quando
uma aplicação é desenvolvida para um dispositivo específico como,
por exemplo, um computador pessoal, esta mesma aplicação pode ser
projetada para uso em PDAs e também em telefones celulares.
Entretanto, no desenvolvimento de uma aplicação para um dispositivo
específico, todas as M interfaces de usuário devem ser projetadas.
Agora, se considerarmos o desenvolvimento de uma aplicação para N
dispositivos usando as M (possíveis) interfaces de usuário (para
cada um dos dispositivos), então isto terá como conseqüência a
necessidade de realizar NxM projetos distintos. Como resultado,
ter-se-á um maior esforço de desenvolvimento das interfaces de
usuário para múltiplos dispositivos, requerendo um custo maior para
atender essa demanda. Concomitante a este fator, outras questões a
serem consideradas envolvem:
-
tempo necessário para o projeto da
aplicação
-
compatibilidade entre as diferentes
plataformas
-
conhecimento necessário para a
implementação das aplicações em N dispositivos
-
necessidade de projetos distintos de
apresentação e navegação para as interfaces de usuário.
Vale ainda ressaltar que o termo
Interfaces de Usuário para Múltiplos Dispositivos ou Multiple
User Interfaces (MUI) se refere às interfaces que fornecem
informações a serem exibidas através de múltiplas visões, oferecendo
suporte à coordenação dos serviços que são fornecidos a um ou mais
usuários, além de fazer uso de diferentes plataformas
computacionais. É importante destacar que as visões suportadas devem
ser adaptada às capacidades e restrições específicas de cada
dispositivo, enquanto busca-se manter o padrão de usabilidade e
consistência entre as plataformas.
Adicionalmente, uma interface de usuário
para múltiplos dispositivos provê suporte aos usuários para
interação com serviços e informações, possibilitando o uso de
diferentes estilos de interação e interfaces. Além disso, ela deve
preservar o comportamento nas diferentes plataformas, mesmo quando
estas utilizam diferentes estilos de interação e apresentação.
Dentre as principais características das interfaces de usuários para
múltiplos dispositivos, pode-se destacar:
-
Abstração de dados: a abstração
se refere a todas as informações ou serviços que devem ser
mantidos entre os diferentes dispositivos;
-
Consistência entre plataformas:
a consistência entre plataformas consiste nos diferentes look
and feel mantendo-se o mesmo comportamento;
-
Uniformidade: a uniformidade
deve oferecer as mesmas funcionalidades e feedback mesmo se
algumas características ou variações não estejam presentes nas
plataformas;
-
Consciência do usuário sobre
mudança de contexto: capacidade de se adaptar as versões mais
avançadas ou simplificadas dos sistemas;
-
Padronização da interface:
Características que não precisam estar disponíveis em todos os
dispositivos e/ou mecanismos de acesso.
Exemplos de estilos de interação para as
plataformas computacionais comprendem GUI, WUI e HUI. O estilo GUI (Graphical
User Interface) ou interfaces WIMP (Window, Icon, Menu,
Pointer) é o estilo mais popular, empregando os quatro elementos
essenciais numa interface, isto é, janelas, ícones, menus e
ponteiros. O estilo WUI (Web User Interface) é composto de
marcações XML, folhas de estilo, linguagens de scripting,
objetos embutidos e plug-ins. Este tipo de interface é
exibido em janelas GUI, conhecidas como browsers, onde
várias janelas podem ser utilizadas para exibir informações. Já o
estilo HUI (Handheld User Interface) é utilizado pelos
telefones móveis e dispositivos portáteis como PDA. Este estilo faz
uso de um subconjunto de recursos fornecidos pelas GUI e WUI, além
de possuir suporte a interação através de gestos bem como telas
sensíveis ao toque.
Em adição ao exposto acima, o
desenvolvimento de interfaces de usuário para múltiplos dispositivos
tem-se concentrado esforços na investigação das questões sumarizadas
abaixo. Essas questões têm norteado pesquisas, atualmente, em
desenvolvimento.
Desenvolvimento de interfaces de
usuários baseada no contexto
Engloba interfaces de usuário que podem
se adaptar ao comportamento do contexto. Ocorre quando um
dispositivo computacional possui a habilidade de detectar,
interpretar e responder aos aspectos do ambiente do usuário e aos
próprios dispositivos computacionais utilizados. As técnicas
adaptativas são baseadas na adaptação a uma variedade de tecnologias
(identificação do tamanho de telas, dispositivos de entrada e
resoluções gráficas) e adaptação ao contexto de uso diverso.
Sistemas baseados em modelos
Estes sistemas tentam produzir
automaticamente projetos de interfaces concretas (apresentações
concretas e diálogo numa plataforma específica) a partir das
representações genéricas abstratas da interface (tarefas genéricas,
domínio e modelo de diálogo). A produção é feita através de um
mapeamento dos elementos abstratos em elementos concretos para a
interface.
Desenvolvimento de padrões
orientados a usabilidade
Trata-se de uma perspectiva que visa
facilitar o desenvolvimento e a validação de interfaces de usuário
para múltiplos dispositivos. O desenvolvimento de padrões para
diferentes tipos de interfaces serve como uma ferramenta de alto
nível para agrupar experiências obtidas com os usuários finais, além
de transmitir os conhecimentos obtidos dos especialistas em
usabilidade para os engenheiros de softwares através das ferramentas
de softwares.
Linguagens de marcação
independentes de dispositivos
Essas linguagens descrevem uma interface
de usuário de maneira abstrata, podendo ser empregada para
diferentes dispositivos. Estas linguagens devem possibilitar um
mapeamento da descrição abstrata para linguagens de programação ou
fazer uso de folhas de estilos. Um exemplo de proposta dessa
natureza são as linguagens derivadas da XML.
Modelos arquiteturais para
interfaces de usuário
Uma outro aspecto necessário e
complementar ao desenvolvimento de interfaces de usuário para
múltiplos dispositivos é o modelo arquitetural empregado. Durante o
desenvolvimento de sistemas, os projetistas fazem uso de uma
arquitetura de software para estruturar o sistema em termos de seus
componentes (entidades computacionais com funcionalidade
específica). Os sistemas interativos tem feito uso de arquiteturas
que podem ser classificadas como modulares ou baseada em agentes.
Nas arquiteturas modulares, os componentes de software são
constituídos de um conjunto de funções para realizar uma tarefa
(partição funcional) e nas arquiteturas baseada em agentes,
o sistema interativo é organizado através de entidades
computacionais denominadas de agentes. Em arquiteturas baseadas em
agentes, as funções são descentralizadas, os agentes possuem um
estado próprio e são capazes de iniciar e reagir a eventos. Uma
discussão mais detalhada sobre esse tópico é apresentada no capítulo
7 do livro intitulado Arquitetura de Software de minha autoria pela
Editora Campus.
Dentro do contexto apresentado acima,
observa-se que as tendências nas pesquisas de questões relacionadas
ao desenvolvimento de interfaces de usuário para múltiplos
dispositivos têm como objetivo principal a minimização do esforço de
desenvolvimento destas aliado ao suporte um dos principais atributos
da qualidade, a usabilidade.
Aos leitores interessados neste tópico,
recomendo consultar o livro Multiple User Interfaces:
Cross-Platform Applications and Context-Aware Interfaces, A.
SEFFAH and H. JAVAHERY, John Wiley & Sons, 2004. |