Prévia do material em texto
INTERFACE DE INTERAÇÃO COM USUÁRIO 1 WWW.DOMINACONCURSOS.COM.BR Interface de Interação com Usuário Interfaces homem-máquina (HMI) Uma interface apoiada por computador - na verdade, uma interface de uso - também conhecida como interface homem-máquina (IHM) (human machine interface - HMI), é a parte de um programa de com- putador que se comunica com o usuário. Na ISO 9241-110, o termo interface de usuário é definido como "todas as partes de um sistema inte- rativo (de software ou hardware) que fornecem informações e controle necessários para que o usuá- rio realize uma determinada tarefa com o sistema interativo." A interface de usuário / interface ho- mem-máquina (HMI) é o ponto de ação no qual o ser humano está em contato com a máquina. O exemplo mais simples é um interruptor de luz: Não se trata de um humano ou de uma "máquina" (a lâmpada), mas de uma interface entre os dois. Para que uma interface homem-máquina (HMI) seja utilizável e faça sentido para as pessoas, deve ser adaptada a suas necessidades e habilidades. Por exemplo, programar um robô para acender a luz seria complicado demais, e um interruptor no telhado não seria prático para uma luz no porão. Classificação Da Interface De um ponto de vista sistemático, a interface de usuário é uma das interfaces homem-máquina (HMI). Humano ↔ interface homem-máquina ↔ máquina. São diversas as ciências que se dedicam a esse assunto, tais como TI, pesquisa cognitiva e psicologia. Os conhecimentos básicos para o projeto de uma interface de utilização simples estão concentrados na área científica da ergonomia. As áreas de atividade de fato são ergonomia cognitiva, ergonomia sistêmica e ergonomia de software (enge- nharia da usabilidade). Operação e Observação Além da denominação "human machine interface" (HMI), a interface de usuário também possui a de- nominação de "man machine interface" (MMI) e permite ao operador, em determinadas circunstân- cias, ir além da operação da máquina e observar o estado do equipamento, bem como interferir no processo. As informações ("feedback") são fornecidas por meio de painéis de controle, com luzes sinalizadoras, campos de indicação ou botões, ou através de software, utilizando um sistema de visualização execu- tado em um terminal, por exemplo. No caso de um interruptor de luz, o feedback visual vem da impressão de luz com o interruptor ligado e escuridão com o interruptor desligado. A cabine do motorista em um carro também exibe inúmeras interfaces de usuário: dos controles (pedais, volante, botões e hastes indicadoras, etc.) às informa- ções visuais sobre a "máquina", no caso o carro (indicação de velocidade, distância, estação de rádio, sistema de navegação, etc.). Facilidade de Uso da Interface Homem-Máquina O sucesso de um produto técnico depende de vários produtos, como preço, confiabilidade e ciclo de vida. Da mesma forma, depende de fatores como a manuseabilidade e a facilidade de uso (usabili- dade). O ideal é que a interface homem-máquina (HMI) seja intuitivamente autoexplicativa, sem exigir treinamento. Apesar de sua popularidade e simplicidade, o interruptor de luz não é uma interface de usuário ideal, mas um consenso entre dois objetivos contraditórios. O interruptor deve estar próximo ao dispositivo a ser ligado, a própria lâmpada por exemplo (para que não seja necessário procurá-lo). Por outro lado, deve estar próximo à porta (que é onde ele geral- mente se encontra), para que não seja necessário procurar por ele no escuro. Outra interface também popular, mas não ideal, é a tela sensível ao toque: aqui, para acessar um programa que recebe e-mails, você toca o símbolo de e-mail na tela. Contudo, ao pressionar o ícone, o dedo cobre o mesmo. Isso geralmente não cria nenhum problema, contudo, não é possível dese- nhar ou escrever de forma precisa na tela utilizando os dedos. INTERFACE DE INTERAÇÃO COM USUÁRIO 2 WWW.DOMINACONCURSOS.COM.BR Evolução das Interfaces Homem-Máquina (HMI) Nos produtos com ciclo de vida longo, as interfaces homem-máquina (HMI) tem sido otimizada ao longo dos anos. Hoje em dia, não temos nos aparelhos de reprodução de áudio e vídeo dois botões, botões que eram comuns nos anos 80. A função de saltar para a faixa anterior ou para a faixa se- guinte foi integrada nos botões de avanço rápido e retrocesso. Para fazer isso, a interface de usuário tornou-se mais complexa, uma vez que cada um dos botões agora tem duas funções. Para os desenvolvedores das interfaces de usuário, tais reduções têm uma função fundamental: o acesso a uma máquina complexa através de poucos controles pode tornar mais simples a operação básica. Contudo, geralmente não atende às necessidades mais complexas. Nos sistemas operacionais alta- mente complexos dos computadores modernos, esses objetivos divergentes são atendidos por meio da utilização de duas categorias de interfaces de usuário / interfaces homem-máquina (HMI): A pri- meira mostra ao usuário os ícones rotineiros, como a lixeira, as pastas, etc. Estes podem ser compre- endidos e operados imediatamente, sem necessidade de treinamento. Por exemplo: clicar em um link abre um website. A segunda permite utilizar a interface de linhas de comando para acessar o sistema de computador em um nível mais profundo. Porém, exige uma grande quantidade de aprendizado. Por exemplo, taskkill /F /IM iexplore.exe encerra todos os proces- sos relacionados ao Internet Explorer em um sistema Windows. Interface e Interação São Coisas Diferentes Em determinado momento da história chegou-se a conclusão que a Interação é um termo mais amplo em conceitos do que a Interface. Imagine um grande conjunto chamado interação que, para existir, necessita de um elemento que permita a comunicação – a interface. O resultado disso é que, enten- dendo a interação, será mais fácil projetar a interface (Figura 1). A interface é responsável por promover estímulos de interação para que o usuário obtenha respostas relacionadas às suas atividades. De um lado ela funciona como dispositivo de entrada de dados e de outro ela é responsável por enviar as respostas aos usuários. Ou seja, o estímulo promovido fará com que o usuário desenvolva um processo de interação que significa a execução de ações para a reali- zação das tarefas. Para cada ação uma nova resposta é esperada por ambos os lados: sistema e usuário. “Vemos, pois, que a interface é tanto um meio para a interação usuário-sistema, quanto uma ferra- menta que oferece os instrumentos para este processo comunicativo. Desta forma a interface é um sistema de comunicação. ”(de Souza, 1999) Em um sistema computacional a interface com o usuário é o conjunto completo de aspectos que torna explícito o processo de interação e inclui de forma resumida os seguintes elementos: INTERFACE DE INTERAÇÃO COM USUÁRIO 3 WWW.DOMINACONCURSOS.COM.BR Dispositivos de entrada e saída de dados; Informação apresentada ao usuário ou enviada pelo usuário; Retorno oferecido pelo sistema ao usuário; Comportamento do sistema; e Ações do usuário com respeito a todos estes aspectos. Os componentes de interface possibilitam a comunicação entre usuário e equipamentos ou dispositi- vos; eles permitem elaborar os processos de entrada e saída de dados. Em sistemas computacionais e afins (estações de jogos, celulares, DVDs, etc) estes componentes de interface servem para identi- ficar objetos virtuais como caixas de checagem, barras de rolagem, botões, etc., mas também exis- tem os componentes físicos de interface como mouse, teclado, controle remoto entre muitos outros (Figura 2). Interação é, portanto, a troca que ocorre entre usuários e equipamentos, a exemplo dos sistemas computacionais. Isso acontece por meio de ações básicas e habituais, que são as tarefas de intera- ção. Diferentes estilos de interação podem enriquecer o processo de comunicação, mas esta decisão de especificação do comportamento da interface pode aumentar o graude dificuldade de interação. Em sistemas computacionais a configuração dos processos de interação com especificações personaliza- das pode oferecer ao usuário experientes flexibilidade durante a interação. Há quem diga que o conceito de interação teria vindo da física, incorporado pela sociologia, psicolo- gia social e só então passa a fazer parte da informática transformando-se em interatividade (Silva, 1998). É comum encontrar, também, definição de interação como sendo a comunicação que ocorre entre duas pessoas quando mediado por algum tipo de sistema, como bate papo (chat) ou fórum, por exemplo. Ou ainda um blog que permite que visitantes insiram comentários e que a interação tenha acontecido entre dois humanos. Embora isso represente um conjunto mais complexo de interação esta apostila manterá seu foco no cenário que representa o diálogo entre máquina e ser humano e suas relações com as condições de projeto que envolvem outros seres humanos. METÁFORAS E MODELOS MENTAIS: Seja qual for a atividade a ser desempenhada no processo de interação, a facilidade de comunicação dependerá da utilização conceitos baseados em metáfora e modelos mentais adquiridos pelos usuários. Metáforas são semelhança ou analogias que podem ser utilizadas no projeto de interação sugerindo um relacionamento entre objetos ou processos reais conhecidos pelo usuário. As metáforas na intera- ção são muito estudadas em sistemas de realidade virtual onde a interação pode definir o grau de re- alismo de um sistema. A metáfora é utilizada para que o usuário compreenda, com mais facilidade, a relação dos componen- tes de interface e as atividades a serem desempenhadas. Um exemplo simples é a utilização de ce- nários para a apresentação do conteúdo caracterizando um domínio familiar de processos e elemen- tos como se fossem no mundo real. Modelos mentais são suposições criadas pelas pessoas para de- sempenhar atividades que tenham relação com algo que ela já tenha tido contato, mesmo que o pro- cedimento imaginado não seja o mais adequado. INTERFACE DE INTERAÇÃO COM USUÁRIO 4 WWW.DOMINACONCURSOS.COM.BR Recursos de Interação Os muitos recursos de interação permitem combinação diversas de interfaces e ações. Teclado, mo- nitor, elementos virtuais, entre outros motivam pesquisas de todo tipo. A interface gráfica com o usuá- rio GUIs (Graphical User Interface) oferece soluções para o uso de elementos gráficos como menus, janelas, paletas, ícones, etc. As pesquisas sobre o projeto do produto tecnológico envolvem conceitos de ergonomia – que sugere capacidades humanas para a utilização de interfaces físicas – processo de projeto, testes entre ou- tros. Na década de 1980 e 1990 novos recursos surgiam e o mercado para a pesquisa multidisciplinar am- pliava com descobertas de interface e interativas como reconhecimento de voz, multimídia, reali- dade virtual, ambientes de aprendizagem (treinamento e educação) e rede sem fio. Interfaces e o projeto de interação O projeto de interação é a geração de soluções para implementar o uso prático de algo que permita um diálogo, seja um sistema ou equipamento. A interface, um dos elementos responsáveis pelo pro- cesso de interação, pode ser dividida em dois aspectos de comunicação: INTERFACE FÍSICA (ou de hardware) – meio de contato predominantemente físico empregando materiais como cabos, fios, placas, mouses, teclado. INTERFACE LÓGICA (ou de software) – meio de contato predominantemente cognitivo que faz uso de aspectos léxicos (funcionais), sintáticos (estruturais) e semânticos (conteúdo). Exemplos de comu- nicação entre máquina e máquina, software e software, homem e máquina e GUIs. Porque duas interfaces? São numerosos os dispositivos que dependem da junção de uma interface física pela qual o usuário alcança elementos gráficos de um sistema ou aplicativo. Estes elementos gráficos determinam a in- terface gráfica. Para a grande maioria das pessoas o mouse e o teclado representam parte importante do processo de interação – são exemplos de interface física. A ausência do mouse pode deixar qualquer um apa- vorado, mesmo que seja um usuário experiente. A utilização de programas para editar imagens, texto ou até mesmo o processo para desligar o computador são atividades que dificilmente são realizadas sem o mouse. Aí você diz; “mas é possível fazer estas atividades utilizando apenas o teclado!”. De fato, a condição de flexibilização do sistema operacional ou dos aplicativos permite que o usuário te- nha mais de um tipo de acesso ou formato de interação com muitas atividades no computador – são os atalhos. INTERFACE DE INTERAÇÃO COM USUÁRIO 5 WWW.DOMINACONCURSOS.COM.BR A interface lógica é mais conhecida pelos gráficos e suas regras determinadas pela GUIs – Graphical User Interface. Este tipo de interface faz parte de praticamente qualquer novo dispositivo tecnológico encontrado no mercado e deveremos conviver com eles ainda por muito tempo. Novas tecnologias tendem, inclusive, a minimizar o uso de interfaces física para a realização da co- municação, como já ocorre em equipamentos touchscreen. Mas ainda assim é possível identificar a interface física. A tela, o próprio dedo do usuários, um mouse de botão, a caneta, por exemplo, são meio de estabelecer contatos para entrada de dados. A tela gráfica e os auto-falantes comunicam a realização de tarefas. A combinação de interfaces física e gráfica ou lógica em celulares exige um projeto de interação que leve em conta uma relação compreensível entre o aplicativo do aparelho e seus botões e teclado. Em avaliações feitas por alunos da disciplina de TASI utilizando princípios de projeto, metas de usabili- dade, heurísticas entre outros conceitos foi possível verificar que o parelho Nokia é dos mais simples de operar, enquanto o Motorola está entre os mais complicados. O desenvolvimento de interfaces de qualidade pode consumir algo perto de 50% do tempo e dosre- cursos alocados para o projeto (Filho, 2005). O grau de dificuldade para implementar bons projetos pode aumentar conforme a quantidade de formatos e elementos de interação envolvidos no projeto Congruência de Interfaces Com a evolução de tecnologia por meio de estudos científicos que apontam novas soluções de inter- face e interação os novos produtos começam a combinar interfaces físicas e gráficas. Entre os vete- ranos e mais conhecido está o computador com aplicações que funcionam com saída gráfica (moni- tor) e sonora (caixas de som) + mouses, teclados, joysticks, dentre outros. Os telefones celulares também oferecem aplicação com saída gráfica na tela e som normalmente ma- nipulados por interfaces física na forma de teclado alfanumérico e botões diversos. Outras máquinas como de comprar refrigerante, salgadinhos, bilhetes de transporte possuem painel de comando com botões e tela com instruções. O que é importante entender a respeito da combinação de interfaces é a relação entre ambos os ele- mentos gráficos e físicos que precisa ser efetiva, clara e consistente para que, por meio dos dispositi- vos ou interfaces físicas, a interface gráfica reaja de acordo com as expectativas dos usuários. Em resumo, qualquer coisa que seja projetada precisa considerar os seguintes aspectos: Atender o tipo de atividade esperada pelo usuário; Estudar a interface mais apropriada para entrada e saída de dados; e Oferecer funcionalidades complementares como forma de flexibilizar o processo de interação. Os elementos de interface mais comuns e conhecidos que permitem a interação em sistemas compu- tacionais são menus, comandos, formulários, ícones, botões e combinações de dispositivos físicos. Áreas relacionadas à IHC Esta área do conhecimento é definida pela multidisciplinaridade que envolve especialista e profissio- nais de diversas áreas como: Psicologia; Sociologia; Antropologia; Sistemas de informação; Ciências da computação; Design gráfico; INTERFACEDE INTERAÇÃO COM USUÁRIO 6 WWW.DOMINACONCURSOS.COM.BR Ergonomia. Como assim? Considerando que os primeiros sistemas computacionais tenham sido desenvolvidos por engenheiros de hardware, que tipo de experiências eles poderiam ter sobre as condições huma- nas como habilidades e limitações para utilizarem o primeiro sistema desenvolvidos por eles? Como o processo de interação seria visto pelo usuário? Com o advento do monitor na década 1970 profissionais curiosos com as novidades tecnológicas e buscavam soluções para a realização de tarefas envolvendo a cognição humana. Isso mobilizou cien- tistas da computação e psicólogos. Depois disso novos desafios levam ao desenvolvimento de novas soluções. Com isso nasce o profissional que desafia as novas tecnologias em busca de soluções para o usuá- rio. O projetista de interação – ou designer de interação – passa então a ser responsável pela gera- ção de idéias que ofereçam o máximo de conforto ao usuário durante a realização das atividades de interação. O Projetista de Interação Para entender melhor a atuação do profissional responsável pela geração de projetos de interação é interessante utilizar a analogia proposta por Preece (2005) sugerindo um contraste entre áreas. A preocupação do arquiteto em seus projetos é com a pessoa que utilizará o espaço construído pre- vendo conforto para morar, trabalhar, formulando circulações adequadas, janelas que permita a en- trada de luz natural e ventilação… em resumo: PREOCUPAÇÃO COM O USUÁRIO DA EDIFICAÇÃO OU DO SISTEMA! A preocupação do engenheiro civil em seus projetos é que a estrutura seja resistente para suportar pessoas, equipamentos, intempéries… em resumo: PREOCUPAÇÃO COM A EDIFICAÇÃO OU CÓ- DIGO! O engenheiro de software se preocupa com a produção de soluções robustas para os sistemas que projeta e desenvolve. Em resumo: PREOCUPAÇÃO COM A EDIFICAÇÃO OU CÓDIGO! Os projetistas de interação se preocupa com o processo de utilização do sistema e o desempenho das atividades realizadas pelo usuário. Em resumo: PREOCUPAÇÃO COM O USUÁRIO DA EDIFI- CAÇÃO OU DO SISTEMA! As Profissões Decorrentes da Área de IHC Esta área incentivou o aparecimento de uma série de novos profissionais que tentam se estabelecer em um mercado ainda em implantação, ou mesmo em definição, que tentam acompanhar uma área INTERFACE DE INTERAÇÃO COM USUÁRIO 7 WWW.DOMINACONCURSOS.COM.BR que ainda está em fase de estabelecer atividades e competências. Dentre elas destacam-se os se- guintes profissionais com suas atividades: Analista com especialidade em projeto centrado no usuário: Ele saberá conduzir as primeiras ativi- dades de entrevista com os usuários e clientes.Fará a identificação das necessidades e as transfor- mará em requisitos. Arquiteto de informação: Trabalha junto com analistas ou imediatamente após finalização destas ati- vidades de levantamento de requisitos para entender as regras de negócio e estruturar informações necessárias. Com os requisitos levantados ele se encarrega de definir processos para a estruturação, organiza- ção e distribuição de informações e atividades do sistema ou do site em estruturas que possam ser compreendidas para a realização de tarefas interativas. Ele poderá desenvolver wireframespara a identificação dos espaços destinados aos blocos de ele- mentos. Este profissional pode, ainda, trabalhar na elaboração de textos objetivos e definição de rótu- los (webwriting). WebDesigner: Ele dará continuidade às atividades do arquiteto de informação elaborando, a par- tir dos wireframes e mock upIs, detalhes que darão identidade ao produto. São definidos elementos como tipo e tamanhos de fontes, paletas de cores, logomarcas, ícones entre outros. A alocação dos componentes de interface pode ser reestruturada caso sejam identificadas tais necessidades. O web- designer tem a responsabilidade, também, de tomar decisões de apresentação das informações quando existe a necessidade de estimular os sentidos do usuário para a realização das interações (como são apresentados links, por exemplo). Especialista em usabilidade: possui competências e conhecimento de conceitos para elaborar análi- ses de sistemas que devam sofrer melhorias, de protótipos, de produtos concorrentes para entender pontos fracos e fortes e realizar avaliações heurísticas. Testador/Avaliador: o profissional de testes possui conhecimento de processos que ajudam na utili- zação de sistemas em produção para verificação de problemas como erros de lógica, de implementa- ção, cosméticos. Os resultados são descritos em relatórios utilizados ao longo do processo de testes. Possui conheci- mento, também, para planejar outros meios de avaliação com a utilização de usuários representativos – atividade que também pode ser dominada pelo especialista em usabilidade. O testador possui co- nhecimento de técnicas e processos de avaliação mais elaborados para as várias fases de desenvol- vimento. Encontram-se muitas outras funções e denominações de profissionais nesta área que ainda tentam se adequar ao mercado. O fato é que alguns deles são mais necessários que outros, ou mais “utiliza- dos” que outros. Alguns profissionais aparecem com foco tão específico que dificilmente seriam con- tratados para fazer parte de equipes de desenvolvimento. O profissional de usabilidade, por conta da notoriedade que o nome vem ganhando, chama a atenção de alguns gerentes de projeto que passam a contratar este profissional para integrar suas equipes de desenvolvimento. O motivo desta procura decorre da necessidade que o mercado e seus exigentes usuários vêm im- pondo. Ainda assim, embora as atividades deste profissional sejam específicas, em algumas equipes este profissional pode passa a desempenhar atividades diversas. Interface Gráfica A forma como os humanos interagem com os computadores sempre foi uma preocupação da indús- tria da informática. Durante algumas décadas, essa interação passou da linha de comando, em modo texto, para desktops em três dimensões e softwares que aceitam comandos por voz ou gestos com o propósito de facilitar e tornar mais intuitiva a utilização das máquinas. INTERFACE DE INTERAÇÃO COM USUÁRIO 8 WWW.DOMINACONCURSOS.COM.BR Como boa parte das tecnologias existentes, a ideia de uma Interface Gráfica do Usuário (GUI) come- çou muito tempo antes de possuirmos a tecnologia necessária para implementá-la. Uma das primei- ras pessoas a pensar nessa possibilidade foi o engenheiro, inventor e político Vannevar Bush. O que transformou Bush em um pioneiro da área foi a percepção de que os meios de armazena- mento de informações não estavam mais comportando tantos dados. A máquina imaginada por Bush, chamada de Memex, era capaz não apenas de armazenar tanta informação, como também de relaci- oná-las e oferecer uma maneira fácil de procurá-las em meio a tantos dados O Pai do Mouse e da Interface Gráfica Inspirado pelo trabalho de Vannevar Bush, o engenheiro elétrico Douglas Engelbart visualizou a pos- sibilidade de usar computadores para aumentar o intelecto humano, em vez de substituí-lo. Ele acre- ditava que, com informações dispostas em uma tela, o usuário poderia se organizar de maneira grá- fica e pular de uma informação para outra, sempre que necessário. Como no caso do Memex, as ideias de Engelbart estavam muito à frente de sua época. Em 1962, até mesmo interfaces em modo texto, com comandos sendo executados em tempo real, eram considera- das como “de outro mundo”, já que os mainframes da época eram operados com cartões perfurados e demoravam horas ou dias para entregarem o resultado do processamento. Em 1968, depois de conseguir um financiamento para suas pesquisas, Engelbart e sua equipe de- monstraram o potencial dos computadores e de alguns dispositivos de entrada. Entre os “periféricos”, estava uma caixa retangular, com três botões na parte de cima e conectada ao computador por um cabo: era um dos primeiros modelos demouse da história, inventado pelo próprio Engelbart e cons- truído por um dos engenheiros da equipe. Mas o mouse foi apenas uma das muitas inovações demonstradas naquele dia, que incluíam o hiper- texto, comunicação por rede e uma tela compartilhada por duas pessoas que estavam em locais dife- rentes, mas que podiam trabalhar em conjunto: a primeira videoconferência da história. Os softwares desenvolvidos para esse computador ainda não trabalhavam com o conceito de janelas, como nas interfaces atuais. Janelas: cada um no seu quadrado Com o surgimento da Smalltalk, linguagem de programação e ambiente de desenvolvimento que pos- suía uma interface gráfica diferenciada, a GUI começou a ganhar aspectos mais modernos, em 1974. A grande inovação foram as janelas, que possuíam bordas e barras de títulos que permitiam a identi- ficação e o reposicionamento delas. O conceito de ícones também surgiu na mesma época, assim como o menu de contexto. No mesmo período, também foram apresentadas as barras de rolagem, as caixas de diálogo e os botões de opções (radio buttons). A chegada da Apple Outro passo importante na história das interfaces gráficas foi dada pela startup criada por Steve Jobs e Steve Wozniak, em 1976. Com a contratação de ex-funcionários da Xerox, a Apple pode iniciar o desenvolvimento do computador pessoal Lisa, em 1978. A equipe de desenvolvedores trabalhou em uma interface baseada em ícones, em que cada um deles indicava um documento ou uma aplicação. Além disso, a equipe criou a primeira barra de menu des- dobrável (pull-down), que hospedava todos os menus logo nas primeiras linhas da tela. Outras inovações do mesmo produto ficaram a cargo das marcas de verificação (checkmarks), que ajudam a destacar os itens do menu que estejam ativados, e também o conceito de atalhos de te- clado para os comandos mais comuns. Mais uma novidade foi a aparição do ícone da Lixeira, para onde o usuário podia arrastar arquivos para removê-los posteriormente. O mouse, que havia se consagrado com três botões, passou a ter apenas um no Lisa e, como a inter- face exigia pelo menos duas ações para cada ícone, uma para selecionar e outra para executar o programa ou arquivo, foi criado o conceito de duplo clique. INTERFACE DE INTERAÇÃO COM USUÁRIO 9 WWW.DOMINACONCURSOS.COM.BR Outras Interfaces da Época A VisiCorp era uma das empresas que também estava trabalhando em interfaces gráficas para com- putadores pessoais. Responsável pela planilha eletrônica VisiCalc, a empresa lançou uma interface para PCs, em 1983, mas que não chegou a fazer muito sucesso. Além do preço alto e de exigir muito recurso de hardware, a VisiOn, como era chamada, também teve alguns retrocessos, como deixar de usar ícones e eliminar o cursor do mouse. Outra interface que surgiu na década de 80 foi a Tandy DeskMate, da Tandy Computers, e a GEM, que fornecia uma interface gráfica para o DOS e era tão parecida com a interface do computador Lisa que a Apple chegou a processar os fabricantes. Os computadores Amiga, da Commodore, também introduziram uma nova GUI, a Workbench, que trouxe algumas inovações ao mundo dos computadores pessoais, como a possibilidade de redimensi- onar ou mover uma janela sem trazê-la para o foco principal. Em 1986, a Berkeley Softworks lançou a GEOS, interface para computadores Commodore 64 e Ap- ple, que tinha uma aparência parecida com a da GEM. Mais tarde, essa GUI foi portada para PCs e, com isso, acabou se tornando uma concorrente para a Microsoft, que havia anunciado a primeira ver- são do Windows em1983. Uma das mudanças radicais da interface gráfica do Windows foi o fato de que cada janela tinha a sua própria barra de menus, diferentemente do Lisa e dos Macintosh, que tinham uma barra única no topo da área de trabalho. Outro diferencial, que não sobreviveu até a versão 2.0 do Windows, em 1987, foi a disposição lado a lado das janelas. Vale a pena lembrar que, no começo, a Microsoft trabalhava como uma empresa terceirizada para a Apple e, por isso, testou os modelos em fase Beta dos Macs. Isso serviu de inspiração para a criação da sua interface gráfica e, durante o lançamento do Windows 2.0, a empresa chegou até a ser pro- cessada pela Apple. Em 1987, também surgiu um novo conceito no mundo das GUIs: o Dock. A responsável pela criação foi a empresa Acorn Computers, que desenvolveu a Arthur, interface que também foi a primeira a usar fontes com anti-aliasing, mesmo em modo de 16 cores. Já a NeXTSTEP, em 1988, foi a interface que introduziu uma aparência 3D aos seus componentes, além de ter sido a primeira a usar o botão em forma de “X” para fechar janelas. Na mesma época, também surgiu a primeira versão gráfica do OS/2, projeto colaborativo entre Micro- soft e IBM para desenvolver um sistema que pudesse substituir o MS-DOS. A interface da versão 1.1 era muito similar à do Windows 2.0. No fim dos anos 80, muitas interfaces gráficas começavam a surgir para as estações Unix. Essas GUIs eram executadas sobre um sistema gráfico e com suporte à rede, conhecido como X. Mais tarde, esse sistema também se tornou a base dos ambientes gráficos do Linux. Uma das novidades do X Window System foi o fato de poder habilitar o foco em uma janela apenas posicionando o mouse sobre ela, sem clicar. Atualmente, muitos projetos gráficos ainda fazem uso do X, com o KDE e o GNOME, que teve sua terceira versão lançada nesta semana. As Interfaces Mais Recentes Durante os anos 90, apenas duas empresas resistiram à “peneira” do mercado: a Microsoft e a Apple. As demais entraram em falência ou foram adquiridas por outras companhias. O Windows ganhou muita popularidade com as versões 3.0, em 1990, e 3.1, em 1992. Apesar de ainda não ter alguns recursos simples, que já estavam implementados no Macintosh, foram vendidas milhões de cópias dessas versões do sistema da Microsoft. Mais tarde, com a chegada do Windows 95, a empresa de Bill Gates se consolidou como a líder do mercado e detentora de um dos softwares mais famosos até hoje. INTERFACE DE INTERAÇÃO COM USUÁRIO 10 WWW.DOMINACONCURSOS.COM.BR Quando o cenário já parecia ter se estabilizado, eis que surge uma novidade: o BeOS, sistema opera- cional da Be Incorporated, com uma interface em que a barra de título lembrava a do Smalltalk, ocu- pando apenas parte de toda a extensão das janelas. Uma versão open source do BeOS continua em desenvolvimento, sob o nome de Haiku. A Apple também continuou inovando e lançou a interface Aqua, para o novo sistema operacional da empresa, o Mac OS X. Além da aparência nova, uma das principais novidades da Aqua era o fato de que as janelas podiam ser redesenhadas rapidamente, de maneira imperceptível aos olhos, quando movidas ou redimensionadas. Outras inovações ficaram por conta dos efeitos de animação executados durante o ato de minimizar programas. Em versões mais recentes, a empresa também adicionou o conceito de Exposé, que mu- dou a forma como as pessoas alternavam entre os softwares abertos na área de trabalho. A Microsoft também continuou inovando. Com o lançamento do Windows Vista, pudemos ver a es- treia do Aero, responsável pelos efeitos visuais de sombra e transparência da Área de trabalho. Com o Windows 7, a interface foi aprimorada, ganhando suporte a telas touchscreen e multitouch, além de apresentar uma barra de ferramentas totalmente reformulada e o Aero Shake, que permite interação com as janelas ao sacudi-las. O Windows 7 também ganhou efeitos 3D, semelhantes aos proporcionados pelo Compiz, no Linux. O próprio Compiz acabou se inspirando no Exposé, da Apple, para fornecer um efeito semelhante sobre o X Window System. Os recursos 3D parecem ser a última cartada das interfaces gráficas, que agora começam a se adap- tar aos novos dispositivos portáteis e operados por toques na tela, com os dedos. Outro recurso que está ganhando força é o chamado Desktop Semântico, que trabalhará não apenas com os arquivos, mas tambémcom o conteúdo e a informação contextual ao manipular esses arquivos. Interfaces Gráficas Os produtos de software atuais são muito mais complexos do que eram há apenas alguns anos atrás. Paralelamente, nos útimos 10 anos o computador passou a ser utilizado por usuários leigos em com- putação, e a experiência desses usuários com produtos como pl anilhas, editores de texto, e progra- mas de apresentação os convenceu que um programa de computador pode ser fácil de usar. Parte dessa facilidade foi proveniente da utilização de interfaces gráficas homem-computador com elemen- tos do tipo janelas, menus, m ouse e ícones, que representam um grande avanço em tornar os com- putadores pessoais mais amigáveis. Embora fáceis de usar, aplicativos com interfaces gráficas são difíceis de desenvolver, envolvendo paradigmas não familiares para grande parte dos projetistas de software tais como orientação a obje- tos e processamento dirigido por eventos. Estão disponíveis no mercado várias ferramentas para desenvolvimento de interfaces gráficas que oferecem uma gama de funcionalidade bastante variável, e a escolha da ferramenta para um projeto pode ter conseqüências não somente em sua fase de desenvolvime nto mas também na sua evolu- ção, uma vez que algumas ferramentas permitem o desenvolvimento de código fonte portátil, isto é, que pode ser transportado para vários ambientes sem necessidade de modificações. Por sua vez, o teste de aplicativos com interfaces gráficas também não é uma tarefa simples, e reali- zar tais testes manualmente é uma tarefa tediosa e pouco confiável. Encontram-se disponíveis no mercado algumas ferramentas que permitem automatizar a fase de testes, mas que apresentam preço e funcionalidade bastante díspares, não sendo fácil a escolha de uma delas. Embora o uso do ambiente ms-windows já esteja consolidado no brasil, a indústria nacional de sof- tware somente agora começa a produzir produtos de modo sistemático para esse ambiente. É dentro desse contexto que o cti, através do programa de qualidade e produtividade em software, decidiu montar um grupo com o objetivo de absorver tecnologia avançada para a produção de interfa- ces gráficas portáteis de alta qualidade e repassar essa tecn ologia para a indústria nacional de sof- tware. INTERFACE DE INTERAÇÃO COM USUÁRIO 11 WWW.DOMINACONCURSOS.COM.BR Neste documento procuramos, de forma simplificada, apresentar a experiência adquirida e as pers- pectivas atuais do nosso grupo, abordando o trabalho realizado nas áreas de portabilidade, testes de aplicativos e metodologia para desenvolvimento de interface s gráficas. Atualmente a microsoft detém a maior parcela da base de sistemas operacionais instalados com a dupla ms-dos e ms-windows. Este fato faz com que as plataformas da microsoft sejam o principal alvo dos desenvolvedores de software, acarretando uma grande conc orrência. Embora uma pequena fra- ção da base instalada de sistemas operacionais não seja microsoft, o tamanho do mercado mundial de software (aproximadamente 200 bilhões de dólares/ano) torna não desprezível o oferecimento de aplicativos para outras plataf ormas. Uma empresa que domine uma tecnologia que permita desen- volver produtos para o ambiente microsoft sem abandonar as outras fatias do mercado, passa a ter uma importante vantagem competitiva em suas mãos e, portanto, portabilidade torna-se uma palavra -chave nesse contexto. A questão portabilidade encontra-se razoavelmente equacionada nas áreas de linguagens de progra- mação, acesso a dados e comunicações através dos padrões ansi c, sql e tcp/ip ou osi/iso, entre ou- tros. O mesmo não se pode afirmar no caso de interfaces gráficas pois cada ambiente (ms-windows ou os/2, por exemplo) possui um conjunto de recursos básicos, o toolkit, para a implementação de inter- faces gráficas, todos desenvolvidos de forma independente e não padronizada. A falta de padroniza- ção acarreta a necessidade de se reprogramar totalmente os módulos de controle da interface gráfica quando se transporta um aplicativo para um ambiente distinto de seu ambiente alvo inicial. Essa re- programação pode ser ex tremamente cara pelo fato de, em geral, a maior parte do código de um aplicativo tratar sua interface gráfica. Quando se consideram os diversos ambientes gráficos percebe-se que a funcionalidade básica ofere- cida é, em grande parte, idêntica, sendo que as principais diferenças estão relacionadas com a forma pela qual elementos da interface como barras de rolagem, b otões e janelas são representados grafi- camente. Uma vez que a maior parte dos ambientes gráficos apresenta um conjunto comum de objetos com funcionalidades idênticas, uma das soluções para o problema de portabilidade de interfaces gráficas é a definição e implementação de uma interface de programação ( api) padronizada que suporte esse conjunto comum e que o mapeie nos toolkits originais (figura 1). Dessa forma, um aplicativo desenvol- vido com a interface de programação padronizada pode ser facilmente transportado para diversas plataformas, preservando s empre a aparência e funcionalidade, o look-and-feel, da plataforma na qual é executado. Várias empresas desenvolveram ferramentas baseadas em toolkits portáteis tais como zinc, zapp e xvt. Após ter realizado um levantamento das ferramentas disponíveis no mercado, o grupo escolheu o xvt para ganhar experiência no uso de tecnologia para a produção de interfaces gráficas portáteis. Essa ferramenta fornece uma api padrão que permite a implement ação de tais interfaces e seu transporte entre os principais ambientes gráficos atuais (ms-windows, ms-windows nt, presentation manager os/2, osf/motif e macintosh). A ferramenta apresenta características de prototipação rápida, permitindo que seus usuários simu- lem, na fase inicial do desenvolvimento, a execução da interface do aplicativo, possibilitando o reco- nhecimento de possíveis problemas de projeto [argollo 1995 ]. O xvt é composto por dois módulos principais: um editor de interfaces gráficas e uma biblioteca de funções multi-plataforma. O editor de interfaces gráficas permite a criação dos objetos da interface de modo interativo e gera um arcabouço da aplicação na linguagem c/c++ com o código necessário para o controle da interface [xvt 1994]. A biblioteca multi-plataforma dispõe de primitivas para a manipula- ção dos objetos básicos de interfaces gráficas: janelas, menus, controles (botões de rádio, campos de edição , tabelas, planilhas, etc.), e funções para operações gráficas, de impressão, manipulação do clipboard e de fontes de caracteres, etc. Após ter utilizado o xvt para desenvolver várias aplicações e de tê-las transportado da plataforma ms- windows para a plataforma osf/motif e vice-versa podemos afirmar o seguinte: INTERFACE DE INTERAÇÃO COM USUÁRIO 12 WWW.DOMINACONCURSOS.COM.BR é possível desenvolver interfaces gráficas portáteis com a tecnologia existente desde que seja utili- zada uma metodologia voltada para a obtenção de portabilidade; Normalmente as ferramentas não são orientadas para domínios específicos e, por isso, funcionalida- des do tipo acesso a base de dados ou geração automática de relatórios devem ser implementadas através de pacotes específicos; O código gerado pelas ferramentas não impacta o desempenho da aplicação final; As ferramentas não permitem abstrair todos os detalhes de cada plataforma; por exemplo, o ambiente osf/motif direciona saídas impressas para um arquivo postscript, enquanto o ms-windows as envia para o gerente de impressão. Embora as afirmações feitas acima tenham sido observadas a partir do uso de uma única ferramenta, o xvt, em apenas dois ambientes distintos (ms-windows e osf/motif), não existe razão técnica que as invalide quando consideradas outras ferramentas com as me smas características ou outros ambien- tes. O teste de aplicativos com interfaces gráficas homem-computador é uma atividade difícil de realizar porque a complexidadedesse componente de software, notada através de características como pro- cessamento multi-tarefa, manipulacão direta de objetos com re sposta ao usuário em tempo-real e processamento dirigido por eventos, é responsável por uma explosão combinatorial de cenários com as possíveis interações homem-computador que devem ser testadas. Embora existam poucas referências sobre métodos e estratégias para teste de interfaces gráficas na literatura técnica, diversas ferramentas cujo objetivo é a automação desses testes estão disponíveis no mercado. Essas ferramentas utilizam o método "gravar e repetir" para capturar tanto as ações do usuário sobre a interface quanto os resultados dessas ações. O conjunto de ações e resultados cap- turados são mapeados numa linguagem de programação e gravados em arquivos denominados scripts de teste. As ferrame ntas permitem a repetição das ações do usuário e a comparação dos re- sultados obtidos através da execução automática dos scripts de teste. Essa abordagem do problema exige que a interface gráfica a ser testada esteja operacional e execu- tando de modo confiável para que o usuário possa gravar suas ações nos diversos cenários de inte- ração. Essa é uma limitação importante porque a fase de testes fica relegada ao final do desenvolvi- mento, quando talvez já não haja tempo disponível para realizá-la de modo adequado. Apesar disso, o fato das ferramentas repetirem os scripts de teste já gravados permite que testes regressivos sejam realizados sempre que o software tenha sido modificado, o que é um passo importante para a obten- ção de produtos robustos. Com o objetivo de permitir o desenvolvimento de scripts de teste sem que a interface esteja imple- mentada, foram criados mecanismos que permitem a especificação das ações do usuário em termos dos objetos presentes na interface gráfica. Esse novo enfoque do problema tornou possível a geração de casos de teste a partir da especificação da interface gráfica, permitindo que a fase de testes seja realizada em paralelo com a fase de implementação. O grupo de interfaces gráficas selecionou e adquiriu a ferramenta qa partner que incorpora uma tec- nologia moderna para testes automáticos de aplicativos com interface gráfica [segue 1994]. O primeiro passo para o desenvolvimento de casos de teste com essa ferramenta é a declaração dos elementos da interface. Esse passo permite que os objetos presentes na interface sejam referencia- dos por nomes mnemônicos e facilita o desenvolvimento de scri pts de teste robustos, uma vez que mudanças de posição, tamanho e rótulo dos objetos na interface não irão impactar de modo significa- tivo os testes já desenvolvidos. O passo seguinte é o desenvolvimento de casos de teste na linguagem 4test que é orientada a obje- tos e possui uma sintaxe bastante semelhante à da linguagem c. A linguagem 4test possui comandos que referenciam os objetos da interface através de seus nomes mnemônicos anteriormente declara- dos. Por exemplo, o seguinte comando gotoline.ok.click () ; INTERFACE DE INTERAÇÃO COM USUÁRIO 13 WWW.DOMINACONCURSOS.COM.BR especifica um clique no botão "ok" da janela "gotoline" do aplicativo sendo testado. Com a ferramenta, os scripts de teste podem ser desenvolvidos de forma manual, sem a necessidade de o aplicativo estar operacional, ou automaticamente, com ajuda de um módulo que captura as ações do usuário, caso o aplicativo tenha uma versão executável d isponível. Os scripts de teste de- senvolvidos controlam a execução do aplicativo em análise, simulando a interação com o usuário. A ferramenta se encarrega de comparar os resultados do programa testado com os resultados espera- dos. Tal comparação pode verif icar o conteúdo de mensagens de erro apresentadas em janelas de diálogo, conteúdo de arquivos ou de áreas gráficas, etc. O uso efetivo das ferramentas para teste não prescinde do emprego de métodos viáveis e bem defini- dos que permitam criar casos de teste que cubram todos os objetos da interface gráfica de uma apli- cação e todos os possíveis cenários de interação homem-compu tador. O grupo de interfaces gráficas tem um projeto em andamento cujo objetivo é investigar técnicas e desenvolver um método para teste de interfaces gráficas [villaça 1995].O conceito de sistema computacional modificou-se substancial- mente com o surgimento das interfaces gráficas. Sua definição e seu processo de desenvolvimento tornaram-se mais abrangentes, a partir da intensa proliferação e uso dos computadores pessoais. Hoj e, com os computadores constituindo-se em bens de consumo há um redirecionamento das indústrias de software para atender novos nichos de mercado, compostos por faixas mais amplas e diversifica- das de usuários. As preocupações atuais da indústria de software são diferentes daquelas de anos atrás. Basica- mente, hoje há uma preocupação crescente tanto em relação à apresentação do produto quanto às necessidades dos usuários, que passam dessa maneira a ter um papel c entral no desenvolvimento de interfaces gráficas [norman 1986, laurel 1990, heckel 1991]. A abordagem para desenvolvimento centrada no usuário provocou uma ampliação do conceito tradici- onal de desenvolvimento de sistemas para além dos requisitos funcionais do aplicativo, incluindo, agora, fatores subjetivos relacionados com o conjunto de inter ações do usuário, essenciais para o design de interfaces com qualidade [winograd 1985]. Em linhas gerais, esta abordagem destaca a inadequação dos métodos tradicionais para desenvolvimento de sistemas com interfaces gráficas, ex- plicitando uma questão acer ca da visão errônea atribuída ao design e ao desenvolvimento de interfa- ces [kay 1990, norman 1990, hix 1993]. "a postura de que o processo de design da interface com o usuário não é necessário, podendo ser realizado simplesmente durante a finalização total do desenvolvimento, é ingênua. Infelizmente essa atitude tem prevalecido e tem contribuído para a imagem de que as indústrias de software desenvol- vem sistemas não usáveis." [browne, 1994, p. 20] vários estudos mostram o impacto financeiro e a importância das interfaces gráficas. Em [browne 1994], por exemplo, é apresentado um quadro quantitativo onde cerca de 55% do código total per- tence aos elementos de interface, aproximadamente 30% do custo to tal de desenvolvimento do apli- cativo está concentrado na interface e 60% do custo na fase de manutenção (responsável por 60% do custo total do aplicativo) está relacionado com alterações na interface. O resultado deste e de outros estudos quantitativos oferecem argumentos objetivos sobre o papel e o lugar das interfaces gráficas no processo de desenvolvimento e justificam de forma indiscutível a ne- cessidade de utilização de novos métodos de desenvolvim ento, para diminuição do custo total do sis- tema e conseqüente aumento da produtividade da indústria de software. Diante da importância finan- ceira e da complexidade do tema, muito tem sido discutido e vários métodos de desenvolvimento para aplicativos com interfaces gráficas foram propostos [nielsen 1993, hix 1993, browne 1994, car- lshamre 1994]. Nos diversos métodos para desenvolvimento identificamos certas semelhanças, que formam uma base comum. A primeira semelhança está relacionada com a utilização de considerações originárias da abordagem centrada no usuário [norman 1986]. A segunda correspon de ao consenso de que uma boa interface deve ser transparente e permitir o acesso fácil à funcionalidade da aplicação. E a ter- ceira está relacionada com a utilização do conceito de usabilidade como parâmetro central para de- INTERFACE DE INTERAÇÃO COM USUÁRIO 14 WWW.DOMINACONCURSOS.COM.BR senvolvimento do aplicativo e pa ra avaliações em relação à qualidade da interface. Mas, como elabo- rar e desenvolver uma interface? Para tratar esta questão, segundo [nielsen 1993], é necessário diminuir o caráter subjetivo da avalia- ção de uma interface, que normalmente gira em tornoda usabilidade do aplicativo. Com este objetivo, nielsen associa cinco atributos concretos e mensuráve is ao conceito de usabilidade, os quais auxi- liam na quantificação de questões relacionadas às condições oferecidas aos usuários na utilização da funcionalidade do aplicativo. Os atributos de usabilidade são: - facilidade de aprendizado - Eficiência de uso - Facilidade de memorização - Baixa taxa de erros - Satisfação subjetiva nielsen, a partir dessa associação, concentra-se no processo de desenvolvimento e estabelece o que denominou engenharia de usabilidade, onde são propostas atividades e heurísticas necessárias para a obtenção de um produto com alto grau de usabilidade. Basicamente, na engenharia de usabilidade é apresentado um roteiro de onze fases que, indepen- dente do tipo de interface considerada, podem ser realizadas para o aumento da usabilidade. No ro- teiro, apresentado na tabela 1, há uma tentativa de se definir fa tores críticos para a usabilidade do aplicativo, procurando-se, através de um desenvolvimento interativo, balancear os cinco atributos de usabilidade para obter produtos de software com um grau de usabilidade satisfatório. Nem sempre é possível realizar todas as fases do roteiro. Afinal, a pressão do tempo e dos custos são dependentes do projeto e da possibilidade econômica das empresas. Assim, nos parece neces- sário efetuar uma análise e possível redução do ciclo mostrado n a tabela 1 adaptando-o ao contexto brasileiro. O uso de interfaces gráficas como meio de comunicação com programas de computador é mandató- rio nos produtos de software atuais; longe de um simples modismo, esse mecanismo permite que usuários de programas de computador encontrem uma facilidade muito gran de para desempenha- rem suas tarefas. Dois fatores fundamentais para a implementação de uma boa interface gráfica são a tecnologia e a metodologia de trabalho empregadas. A tecnologia existente no mercado para implementação de interfaces gráficas já se encontra bastante estável, como demonstra a experiência narrada neste trabalho no uso de ferramentas que tratam dos aspectos de portabilidade e de teste de aplicativos com i nterfaces gráficas. Metodologias específicas para desenvolvimento de software com interfaces gráficas foram propostas recentemente e, embora importantes, ainda são pouco empregadas pela indústria de software. A im- portância dada aos futuros usuários dos produtos de software d urante a fase de definição da inter- face surge como um importante ponto comum entre todas as metodologias que estão sendo propos- tas. De forma semelhante ao que acontece em outras áreas, entre o surgimento de uma tecnologia e seu emprego industrial decorre um período de tempo ocasionado pelas dificuldades que as empresas en- contram para dominar e incorporar a nova tecnologia. Neste ponto , a atuação de centros difusores de tecnologia é de extrema importância pois permite que empresas possam incorparar mais rapida- mente novas tecnologias em seus processos produtivos. O cti vem trabalhando no processo de absorção e transferência de tecnologia para a produção de sof- tware através do programa de qualidade e produtividade em software (pqps), um de seus três progra- mas tecnológicos, procurando os mecanismos mais adequados à s necessidades dos interessados. INTERFACE DE INTERAÇÃO COM USUÁRIO 15 WWW.DOMINACONCURSOS.COM.BR O trabalho apresentado neste artigo é um dos realizados no âmbito do pqps, e os resultados obtidos até aqui indicam o acerto do rumo adotado. _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________