Escolar Documentos
Profissional Documentos
Cultura Documentos
Interfaces Homem-Computador
Copyright
c 1998
Prefacio
\A interface e frequentemente o mais importante fator para
determinar o sucesso ou falha de um sistema,
alem de ser um dos mais caros."
Baecker e Buxton[1, pag. 1]
Objetivos
Para prover um meio eciente de interaca~o entre o ser humano e o computador e preciso
conhecer ambos e as restric~oes que cada um imp~oe ao outro. Este texto ressalta o lado
\computacional" desta interac~ao. Em particular, ao que diz respeito a construc~ao do
software que permite o usuario interagir com o sistema. Esperamos que o leitor adquira
uma vis~ao panor^amica desta area e subsdios para que ele possa realizar adequadamente
os seus proprios empreendimentos, alem de orienta-lo numa explorac~ao mais ampla e
aprofundada da area. O texto contempla tanto o produto (a interface), quanto o processo
(din^amica de seu desenvolvimento).
Todos os tipos de sistemas interativos s~ao considerados?
O desenvolvimento de sistemas interativos pode envolver varias tecnologias: realidade
virtual, vdeo, animac~ao, visualizac~ao de dados complexos, banco de dados geogracos,
multimdia e hipermdia. Ao contrario de sistemas interativos que fazem uso de tais
tecnologias, sistemas interativos WIMP (windows, icons, menus and pointers ), s~ao os
mais empregados hoje em dia e restringem-se ao empregam janelas, menus, bot~oes e mouse
no processo de interac~ao com o usuario. No presente texto estamos mais interessados em
interfaces WIMP, embora parte das informac~oes aqui contidas tambem se aplique a outros
casos.
Publico alvo
Conhecimentos mais solidos em linguagens de programac~ao e engenharia de software fa-
cilitam a leitura do presente texto. Prossionais envolvidos com o desenvolvimento de
sistemas interativos, estudantes do terceiro ano (ou superior) de graduaca~o em Compu-
tac~ao ou iniciando seus estudos de pos-graduaca~o comp~oem o publico alvo. Os primeiros
beneciam-se da apresentaca~o de conceitos e metodos de forma simples, enquanto aos
ultimos possa interessar a apresentac~ao panor^amica e integrada da area, que abrange
varios temas, quase sempre discutidos isoladamente em artigos tecnicos ou confer^encias
especcas.
Agradecimentos
Muitos contriburam com sugest~oes que provocaram mudancas no conteudo e na forma
de apresentac~ao do presente texto. Em particular, Osvaldo Severino Junior.
Lista de Figuras
1.2-1 O conceito de interface [11]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2-2 Vis~ao simplicada de um sistema interativo. . . . . . . . . . . . . . . . . . . . . 4
4.1-1 Fluxo de controle interno (convencional) (a), externo (b) e misto (c). . . . . . . . 37
4.2-2 Organizac~ao funcional e ferramentas de apoio. . . . . . . . . . . . . . . . . . . . 38
4.6-3 Modelo abstrato de um SGI. Modelo de Seeheim [23] . . . . . . . . . . . . . . . 42
4.8-4 Conceitos analogos: independ^encias de dados e dialogo. . . . . . . . . . . . . . . 44
i
Captulo 1
Introduc~ao
Acerca do fracasso comercial parcial do Word v2.0,
Bill Gates, grande acionista da Microsoft, disse:
\Merecemos a culpa por n~ao termos facilitado o seu aprendizado. No tocante
aos recursos, o produto era fantastico, mas no que se refere a facilitar
os primeiros passos, nos n~ao nos samos muito bem."
Ichbiah[38]
Este captulo fornece uma vis~ao geral da area, que e renada nos captulos subsequen-
tes. Ainda s~ao denidos conceitos e termos empregados ao longo de todo o texto. Em
particular, e enfatizada a import^ancia de interfaces para sistemas interativos e ambien-
tes gracos precursores com caractersticas comumente encontradas nas atuais interfaces.
O captulo ainda descreve muitas das diculdades encontradas ao longo do processo de
desenvolvimento de interfaces e indica diversos textos fundamentais da area.
IHC n~ao e uma disciplina essencialmente voltada para o estudo de computac~ao, nem do
ser humano, mas da comunicac~ao entre estas duas entidades. A denic~ao sugere que os
atributos \produtiva" e \segura" s~ao indispensaveis para atingir a usabilidade esperada
de um sistema interativo. Usabilidade tem sido amplamente utilizado para caracterizar
a qualidade de um software com relac~ao a sua facilidade de uso e aprendizado. Quanto
mais facil de usar e aprender, maior e a usabilidade.
Esta area e multidisciplinar, envolve a area de Computaca~o (hardware, software, meto-
dologias, tecnicas, ferramentas) e varias outras areas do conhecimento humano (psicologia,
fatores humanos, artes gracas e outras). IHC esta voltada para a aplicaca~o do conheci-
mento acumulado nestas disciplinas para produzir boas interfaces. Conhecimentos acerca
das limitac~oes e capacidades humanas devem ser contrastados com os recursos e restric~oes
da tecnologia disponvel, a m de oferecer aos usuarios um meio adequado, atraves do qual
eles possam interagir com computadores. IHC compreende um grande volume de infor-
mac~oes, compiladas de areas distintas, orientadas para a produca~o de sistemas interativos
com melhor usabilidade.
A grande maioria da literatura existente sobre o assunto apresenta quest~oes pertinentes
a IHC de forma estanque. O carater multidisciplinar de IHC diculta a formaca~o de uma
vis~ao holstica da area. Em particular, o processo de desenvolvimento de um sistema
interativo e uma das quest~oes mais difceis, conforme sera visto no proximo captulo.
Tentamos, no presente texto, alem de fornecer uma vis~ao estanque de quest~oes pertinentes
a IHC, apresentar como elas se interrelacionam, quais s~ao as etapas da confecca~o de um
sistema interativo e como elas
uem ao longo do tempo (processo).
Este texto apresenta informac~oes destiladas de diversas refer^encias, das quais algumas
exerceram uma in
u^encia mais signicativa: [15, 34, 85] e [69]. [2] e uma fonte atualizada
e abrangente. Aspectos relacionados ao software de uma interface homem-computador
s~ao extensivamente cobertos em [4].
Observador externo
Entrada
USUÁRIO Protocolo SISTEMA INTERATIVO
Saída
Interação
Sistema Interativo
INTERFACE APLICAÇÃO
5. A partir dos \links" (URLs) abaixo e possvel obter uma grande quantidade de
informac~oes sobre os mais variados aspectos de IHC:
(a) Teses em andamento
http://www.ida.liu.se/labs/aslab/groups/um/hci/tip/
(b) New Directions in HCI Education, Research and Practice
http://www.sei.cmu.edu/arpa/hci/directions/TitlePage.html
(c) HCI Education Survey
http://www.cis.ohio-state.edu/~perlman/educhi.html
(d) Human Factors and Ergonomics Society
http://www.hfes.vt.edu/HFES/
(e) Human Factors FAQ
http://www.dgp.toronto.edu/people/ematias/faq/contents.html
(f) Resources in Interaction Design
http://is.twi.tudelft.nl/hci/
10 1.7 Exerccios
1.7 Exerccios
1. Por que apenas especialistas da area de computac~ao para compor esta equipe e
contra-indicado? Que tipo de equipe de especialistas seria necessario para desenvol-
ver uma interface \boa"? Justique a sua resposta.
2. Analise a interface de um pacote de software que voc^e esta habituado a utilizar com
base nos criterios de usabilidade apresentados na Sec~ao 1.2. Quais o seu pacote
satisfaz e em que grau? Justique as suas armativas.
3. Com relac~ao ao pacote escolhido (exerccio 2) voc^e usa o seu manual e, em caso
armativo, em que situac~oes? Poderia ser evitado? E possvel obter pelo menos
parte das informac~oes contidas no manual via interface?
4. Para que tipo de tarefas apoiadas pelo seu pacote predileto voc^e considera \natural"
a sua execuc~ao em termos dos recursos oferecidos pela sua interface? Algumas
tarefas s~ao difceis de serem realizadas? A interface inibe (diculta, desestimula) a
execuc~ao de alguma tarefa?
Captulo 2
Processo de Construc~ao de Interfaces
\Embora o projeto de interface seja em parte uma arte,
pode-se pelo menos sugerir uma abordagem
organizada para o processo."
Foley et al.[19, pag. 429]
No captulo anterior foi destacada a import^ancia, os custos relacionados com o desen-
volvimento, uso, possveis riscos e algumas denic~oes basicas associadas a interfaces. Esse
captulo discute o processo de desenvolvimento de sistemas interativos e, em particular,
o que diz respeito ao processo de desenvolvimento de interfaces e algumas quest~oes per-
tinentes a este processo. Em especial, este captulo trata da din^amica ou como evoluem,
ao longo do tempo, as varias atividades necessarias para a produca~o de uma interface.
S~ao ainda apresentadas as diculdades deste processo, o seu relacionamento com a area
de engenharia de software e algumas dos modelos (de processos) existentes.
Construção
Avaliação rápida de R&P = restrições e problemas
Protótipos
Projeto lógico
Projeto
Projeto físico
Codificação
Desenvolvimento
Testes
Evolução Operação e
Manutenção
Custos acumulados
Identificar
objetivos, Avaliação de alternativas,
alternativas, identificar e resolver riscos
restrições
Análise
de riscos
Análise
de riscos
Análise
de riscos
Análise Protótipo
de riscos Protótipo3 Operacional
Aceitação Protótipo2
Protótipo1
Revisão
Simulações, modelos, benchma
rks
Partição Plano de Conceitos de
Requisitos Operaçáo Especificação
P
de lan de requisitos Projeto
se o
nv de detalhado
ol Projeto de
P vi
in lan m en software
te o to
gr de Codificação
aç Validação de
ão requisitos
e
te
st Teste de
e Validação de projeto módulos
e verificação
Integracao
e testes
Teste de
aceitação
Implementação
PROJETO
Especificacao
Modelos
Formais
IMPLEMENTACAO
Diretrizes
Padroes Reqs Prototipo / Sistema
AVALIACAO
Avaliação
Protótipo Requisitos
Projeto Conceitual
abordagens alternativas, embora elas possam ser vistas como complementares [70]. Ou
seja, cada abordagem e empregada no desenvolvimento de parte do sistema a qual mais
se adapta.
Downton [15, cap. 1] mostra como o desenvolvimento tradicional de um sistema inte-
rativo pode incorporar especialistas em interfaces, ilustrado na Figura 2.6-6. Esta gura
ressalta os instantes do desenvolvimento de um sistema nos quais s~ao realizados atividades
pertinentes ao desenvolvimento da interface.
Escopo da Aplicação
Análise de sistemas/
Desenvolvimento
Prototipagem
rápida
Implementação Ferramentas de
projeto de diálogo
Depuração Técnicas de
avaliação formal
Manutenção e
Produção
Manual do usuário
Manutenção
DOCUMENTAÇÃO
Definição de requisitos
Ciclo de vida tradicional de software
Análise de tarefas
Projeto global
Construção de protótipos
Implementação do sistema
Teste do produto
Teste do usuário
Manutenção
Revisão do produto
utilizadas para questionar o projeto, bem como auxiliar na tomada de decis~oes de projeto
e na sua posterior avaliac~ao. A Figura 2.7-8 fornece uma ilustrac~ao do processo.
Projeto inicial
Características gerais
Análise inicial
Projeto
Projeto
Construir protótipo
Avaliação Protótipo
Definição do problema
Definir objetos
de computação
atividades relacionadas com o projeto de interac~ao, e que elas n~ao s~ao sucientes para
assegurar que a interface produzida seja boa | n~ao existem regras que garantam isto [55,
57]. Em varios pontos deste texto e enfatizado o fato de inexistir uma \linha de conduta"
que invariavelmente produza uma boa interface. Tais conhecimentos s~ao utilizados apenas
como \heursticas." Note ainda que estas informac~oes n~ao t^em relev^ancia isoladamente.
O processo ao longo do qual estas informac~oes s~ao utilizadas e de primordial import^ancia,
conforme visto no captulo anterior.
interac~ao n~ao envolve apenas o usuario. Em um dos extremos desta comunicac~ao esta o
computador, que tambem possui limitaco~es e tambem deve ser \conhecido" para permitir
a realizac~ao adequada de um projeto de interaca~o. Dessa forma, informac~oes acerca dos
usuarios e de computadores devem ser utilizadas e interpretadas durante o processo que
ira produzir uma especicaca~o de um projeto de interac~ao. Contudo, o conhecimento
das capacidades e limitac~oes de usuarios e computadores n~ao e suciente. Tambem e
preciso compreender as formas alternativas atraves das quais usuario e computador podem
interagir.
Na sec~ao seguinte s~ao apresentadas tecnicas, subtarefas e informac~oes relevantes para
o projeto de interaca~o denominadas entradas deste processo. Note que nem todas estas
entradas s~ao necessarias para o desenvolvimento de um sistema interativo e que a lista
aqui apresentada n~ao e exaustiva. Os topicos abordados s~ao aqueles mais frequentemente
empregados.
Estilos de interac~ao
Um estilo de interaca~o refere-se a uma forma atraves da qual ocorre uma interac~ao entre
usuario e computador. Em geral, varios estilos s~ao empregados em uma mesma interface.
Eles visam obter ou apresentar informac~oes ao usuario atraves de um comportamento
bem denido. Abaixo s~ao comentados varios estilos. Detalhes podem ser obtidos em [19]
e [78].
O projetista deve conhecer os estilos de interaca~o para poder emprega-los de forma
apropriada. Um guia pratico e extenso acerca do emprego de estilos de interac~ao pode
ser obtido em [15, 52]. Estilos de interac~ao menos convencionais (p.ex., data glove) s~ao
abordados em [89].
WYSIWYG. Atraves de uma interface WYSIWYG (What You See Is What You
Get) o usuario observa na tela, em tempo real, o resultado nal, ou um modelo
dele, ou uma aproximac~ao destes do processamento da aplicaca~o. Por exemplo, um
editor de texto WYSIWYG mostra na tela o que sera impresso enquanto o usuario
atua sobre o texto.
Linguagem de comandos. Meio de interac~ao em que o usuario fornece, via teclado,
uma sequ^encia de caracteres correspondentes a entrada. Geralmente e empregado
por usuarios experientes em uma aplicac~ao. Fornece um acesso rapido aos recursos
providos mas exige memorizaca~o.
Linguagem natural. Extens~ao do caso anterior, onde o usuario n~ao esta limitado
a usar um vocabulario exguo de palavras e uma sintaxe rgida para expressar os
comandos que deseja ver executados pela aplicac~ao.
Manipulac~ao direta. Este termo esta associado as seguintes ideias centrais [77]: (1)
visibilidade do objeto de interesse; (2) aco~es rapidas e reversveis; (3) visualizac~ao
imediata do resultado; e (4) substituic~ao de estilos de interac~ao como os de lingua-
gem de comandos e menus pela manipulac~ao direta da representac~ao do objeto de
interesse. Em outras palavras, este estilo permite que o usuario manipule, usual-
mente com o emprego do mouse, representac~oes de objetos do mundo real, dando-se
a ele a impress~ao de estar atuando sobre estes objetos e n~ao apenas sobre suas
representac~oes.
Reac~ao por infer^encia. Em ingl^es o termo utilizado e demonstrational. Estilo no
qual o usuario pode usar exemplos, fornecidos atraves de manipulac~ao direta, para
30 3.4 Atividade de projeto
especicar operac~oes abstratas [58]. O sistema usa infer^encias para \sugerir" gene-
ralizac~oes. Por exemplo, em uma interface que adota este estilo, na segunda vez
que o usuario \arrasta" um arquivo com extens~ao .bak ate uma lata de lixo, ime-
diatamente o sistema conclui que o usuario, provavelmente, deseja remover todos
os arquivos com esta extens~ao. Antes de realizar esta operac~ao, no entanto, esta
\infer^encia" e conrmada com o usuario.
Ic^onico. Icone e um smbolo graco que apresenta uma semelhanca ou estabelece
uma analogia com um objeto, propriedade ou aca~o. Em interfaces ic^onicas, tarefas
s~ao associadas a cones e acionadas atraves do mouse.
Menus. Menu e uma lista de opc~oes da qual o usuario pode realizar selec~oes. Reduz
a necessidade de memorizac~ao e limita o conjunto de opc~oes. Ha varias formas
de apresentac~ao de um menu. Os menus em formatos circulares (pie menus ), por
exemplo, permitem a mesma facilidade de acesso a todos os itens [36], o que n~ao e
possvel com os menus tradicionais.
Preenchimento de formularios. Estilo adequado para a entrada de dados composta
por varios campos. Pode-se alternar entre campos, identicados por rotulos, e
fornecer a entrada em qualquer ordem.
Caixas. A rea retangular usada para varios propositos: pode apresentar uma lista
de opc~oes (geralmente denidas em tempo de execuc~ao), obter informac~ao (texto)
do usuario, apresentar mensagens ou, ainda, referir-se a um conjunto de estilos
empregados para a realizac~ao de determinada tarefa. ListBoxes e caixas de dialogo
s~ao exemplos de caixas.
Guias de estilo
Um guia de estilo estabelece uma colec~ao de estilos de interac~ao e uma orientaca~o acerca
de quando e como utilizar cada um deles. Para cada estilo s~ao bem denidos o seu
comportamento e a sua forma de apresentac~ao. Alguns deles s~ao citados abaixo:
Common User Access (CUA), IBM
OpenLook, AT&T, Xerox e Sun
Motif, OSF (Open Software Foundation)
Windows, Microsoft
Em geral, estes guias v^em acompanhados de toolkits (veja Sec~ao 4.4). Cada toolkit
implementa os estilos de interac~ao do guia ao qual esta associado e fornece uma interface
de programac~ao. O objetivo e eliminar a difcil tarefa de implementar cada um dos estilos
e permitir a sua reutilizaca~o. Guias de estilo s~ao independentes de plataforma (hardware
Captulo 3. Projeto de Interaca~o 31
e software), onde s~ao empregados. Por exemplo, e possvel implementar uma interface no
padr~ao Motif em ambiente MS-Windows.
Prototipos
A complexidade intrnseca de interfaces e o conhecimento ainda insatisfatorio acerca de
como constru-las obrigam a validar decis~oes de projeto antes de p^o-las em pratica. Ge-
ralmente isto e feito atraves da construc~ao parcial da interface com o e de proposito de
demonstrar o leiaute de telas bem como a apresentaca~o e a sintaxe de comandos. Tal
construc~ao parcial e conhecida por prototipo. As ferramentas utilizadas para construir
prototipos, geralmente, n~ao s~ao as mesmas utilizadas para a implementac~ao denitiva de
uma interface dado os objetivos de cada implementac~ao. No caso de prototipos pretende-se
32 3.4 Atividade de projeto
construir algo rapido para testar ideias enquanto que, em relac~ao a interface, pretende-
se gerar um codigo eciente e robusto. Muitas ferramentas (Captulo ??, contudo, ja
pretendem facilitar um maior reaproveitamento dos esforcos colocados na construc~ao de
prototipos atraves de um esquema, onde especicaco~es de prototipos s~ao interpretadas
e, uma vez validados, e gerado codigo a partir destas especicac~oes. Tecnicas para a
construc~ao rapida de prototipos s~ao descritas em [88].
O projeto de uma interac~ao, geralmente, dura semanas ate que algum resultado possa
ser apresentado ao usuario. Uma forma alternativa de construir prototipos em pouco
tempo de projeto e apresentada em [73]. Nesta abordagem, em vez das tradicionais
ferramentas para confecc~ao de prototipos s~ao utilizados papel, canetas coloridas e outros
materiais tpicos de um escritorio para gerar esbocos de telas que representam instantes
de uma interaca~o. A caracterstica principal desta abordagem esta na rapidez com que
o usuario pode ser envolvido na avaliaca~o de um projeto. Tradicionalmente, prototipos
exigem tempo consideravel para serem construdos e modicados. Usando esta tecnica, em
pouco tempo podem ser desenhados menus, telas, bot~oes e caixas de dialogo. Todos estes
desenhos podem ser utilizados durante uma execuca~o simulada da interface utilizando
estes esbocos. As vantagens, neste caso, residem na pouca resist^encia a alterac~oes no
projeto por parte do projetista, na devida atenc~ao dada aos aspectos mais relevantes,
em detrimento de cores, formato de letras e outros que s~ao, pelo proprio processo de
confecc~ao, eliminados e, por ultimo, no contato mais cedo do usuario com a interface em
desenvolvimento.
Retorno Retorno
Codigo Codigo Codigo Codigo
(a) (b)
Figura 4.1-1: Fluxo de controle interno (convencional) (a), externo (b) e misto (c).
Um sistema de janela possui pelo menos duas interfaces: uma com o usuario e outra
para uso de um programa. Os recursos fornecidos para programas, no entanto, s~ao de
baixo nvel e exigem um esforco substancial do programador mesmo para realizar tare-
fas simples. O desenvolvimento do software de uma interface para o qual s~ao utilizados
recursos fornecidos exclusivamente pelo sistema de janela e extremamente difcil. Com o
intuito de prover recursos de mais alto nvel de abstraca~o, simplicar a tarefa do progra-
mador e permitir a reutilizac~ao de elementos comumente encontrados em interfaces foram
criados os toolkits.
4.4 Toolkits
Toolkit e uma biblioteca, usada por programadores, composta de uma colec~ao de widgets.
Widget e um objeto de interac~ao, ou seja, um elemento que pode ser percebido e manipu-
lado pelo usuario, com uma apresentac~ao e um comportamento bem denidos. Um objeto
40 4.5 Ferramentas de alto nvel
Independencia de dados
4.9 Exerccios
1. Cite um exemplo onde a arquitetura de software a ser empregada no desenvolvimento
de um sistema interativo imp~oe restric~oes ao projeto de interac~ao da interface deste
sistema. Explique ao menos um tipo de restrica~o.
2. O que voc^e entende por uma \interface atrativa"? De que forma voc^e usaria cores
no desenho de um cone, por exemplo?
3. Existe um canal de comunicac~ao direta da interface com a aplicaca~o com o com-
ponente de apresentac~ao no modelo de Seeheim. Por que, na sua opini~ao, ele foi
contemplado neste modelo?
4. Ferramentas de nvel mais alto abstraem de detalhes relevantes em nveis inferiores?
O que se ganha e o que se perde com isto?
5. O gesto, por exemplo, utilizado por americanos para dizer que algo esta otimo e
entendido como insulto no contexto brasileiro. Siglas, abreviaco~es ou termos apa-
rentemente inofensivos em uma lngua podem ser obscenos em outra. Se voc^e estiver
familiarizado com diferentes culturas, voc^e e capaz de enumerar caractersticas des-
tas culturas que requeiram um tratamento diferenciado para serem utilizadas por
interfaces?
46 4.9 Exerccios
Captulo 5
Avaliac~ao
\A complexidade de sistemas constitudos tanto por seres humanos quanto por
computadores fazem com que a interac~ao entre eles seja menos previsvel do
que gostaramos que fosse. Mesmo as melhores intenc~oes podem resultar em sistemas
n~ao utilizaveis ou, ainda mais frequentemente, em sistemas com problemas."
Perlman [67]
N~ao ha formulas magicas para o desenvolvimento de interfaces. Por esta raz~ao a
iterac~ao e uma necessidade neste processo, conforme visto no Captulo 2. Uma iterac~ao,
por si so, contudo, n~ao teria utilidade sem a exist^encia de uma avaliac~ao ao nal de cada
iterac~ao para determinar se um novo ciclo se faz necessario. Implcito em iterac~ao esta
o otimismo de que cada ciclo aproxima mais um produto em desenvolvimento da sua
forma ideal. N~ao somos pessimistas, mas e importante ressaltar que a tecnica de iterac~ao
n~ao e uma soluc~ao enquanto tambem n~ao assegura a qualidade desejavel em um produto
e que seu uso ecaz depende fortemente da qualidade da avaliaca~o a ser realizada. O
escopo do processo de avaliac~ao se estende desde a observac~oes de resultados de decis~oes
de projetistas ate aquela realizada pelo usuario quando rejeita ou opta por um produto.
Dessa forma, uma avaliac~ao pode tomar varias formas, ter propositos distintos e outras
particularidades, que podem ser utilizadas para classicar as varias tecnicas existentes.
Este captulo trata sucintamente deste tema, que pode ocupar sozinho todo o conteudo
de um livro. Recomendadmos [86] para mais detalhes.
contexto de interfaces ha indcios favoraveis que recomendam a realizaca~o desta ativida-
de. O \censo comum", por exemplo, e algo comumente empregado durante o projeto. No
entanto, n~ao pode ser aplicado de forma conavel e muitos resultados de pesquisas t^em
contradito este princpio. Outro indcio diz respeito a postura do projetista, que assume,
em geral, seu comportamento como representativo, o que e uma falacia. Estes e outros
problemas s~ao comentados em [15].
A avaliac~ao pode ser executada durante todo o ciclo de vida do projeto e ate mes-
mo antes da exist^encia de um sistema executavel envolvendo apenas os projetistas, por
exemplo. Em particular, tais projetistas podem injetar erros ao alterar um prototipo.
Avaliac~ao e o mecanismo utilizado para tentar assegurar a converg^encia de um projeto
para um sistema de qualidade satisfatoria. No entanto, isto n~ao substitui o teste com as
pessoas para as quais o sistema e projetado: os usuarios. Neste ultimo caso, entretanto, e
utilizado alguma forma de implementac~ao do sistema: desde simulac~ao de especicac~oes,
prototipos ate o sistema completamente implementado.
Varias tecnicas podem ser usadas para a avaliaca~o de um produto na sua forma nal
ou representado por um modelo. Por exemplo, os metodos analticos empregam mode-
los formais de interaca~o. Os metodos empricos utilizam-se de observac~oes do usuario,
questionarios, entrevistas e experimentos desenvolvidos formalmente. Abaixo s~ao citados
alguns metodos:
Cenarios. Fornecem uma indicac~ao de caractersticas a serem conferidas a uma
interface.
Manual do usuario preliminar. Durante a escrita de detalhes especcos, pode-se
descobrir melhores metodos de operac~ao.
Sistemas de fachada (mock-up). Demonstra a apar^encia pretendida para a interface.
Simulaco~es previas. Demonstra o comportamento din^amico da interface.
Prototipos. Mostra um limitado subconjunto da funcionalidade a ser implementada.
Verbalizaca~o dos pensamentos (Think aloud). O usuario relata o que esta pensando
enquanto esta operando um prototipo ou vers~ao preliminar do sistema.
Teste formal de prototipo. Fornece informaco~es acerca do grau de facilidade com
que tarefas podem ser realizadas. Usa tecnicas de pesquisas em fatores humanos e
estatstica.
5.2 Exerccios
1. Como voc^e faria o registro de uma sess~ao de uso de um prototipo por parte de um
usuario tpico? Que informac~oes devem ser coletadas para posterior analise? Uma
Captulo 5. Avaliaca~o 49
simples mudanca na express~ao facial pode signicar que alguma diculdade no seu
uso foi encontrada. Que parte da coleta poderia ser automatizada?
2. Uma quest~ao importante em relaca~o a interfaces que apoiam a execuca~o de tarefas
repetidas inumeras vezes por um numero grande de usuario, que trabalham em uma
mesma empresa, e a sua produtividade. Que voc^e avaliaria em uma interface como
esta, onde a quest~ao de produtividade e primordial?
3. A amostra de usuarios tpicos para testar prototipos de interface pode in
uenciar
signicativamente os resultados obtidos no processo de avaliaca~o. Amostras \vicia-
das" podem n~ao desvendar problemas graves enquanto que grandes variac~oes em
termos de experi^encias anteriores, por exemplo, podem produzir resultados incon-
clusivos. Que tipos de cuidados devem ser tomados para n~ao invalidar o processo
de avaliac~ao?
50 5.2 Exerccios
Captulo 6
Palavras Finais
\Para os usuarios, a interface representa o sistema."
Hix and Hartson [34]
Este texto apresenta fundamentos de uma area relativamente recente relacionada com
a interac~ao de seres humanos com computadores. Varios aspectos do desenvolvimento de
interfaces s~ao abordados. As informaco~es apresentadas s~ao sucintas, contudo, acredita-
mos que o \todo" sirva de arcabouco, onde mais informac~oes podem ser obtidas atraves
das refer^encias fornecidas. Buscou-se passar uma vis~ao geral da area baseada em reco-
mendac~oes sobre o ensino do topico [20, 79, 67], com ^enfase em aspectos de interesse de
especialistas em computac~ao. A estrutura do texto pretende servir de guia para estes
prossionais com relac~ao a vasta bibliograa existente.
Acreditamos que, no espaco disponvel, a abordagem empregada produz melhores
resultados do que a apresentaca~o deste ou de outro metodo de projeto, que pode ser
encontrada na bibliograa apresentada. Alem disto os fundamentos s~ao mais estaveis do
que informac~oes sobre processos especcos, que s~ao mais volateis, ja que os temas desta
area, relativamente instavel, est~ao sujeitos a constantes mudancas. Os fundamentos s~ao
uteis no entendimento de propostas descritas na literatura e de propostas ainda a serem
feitas.
Expectativas sempre crescentes de usuarios de computadores bem como avancos tec-
nologicos em diversas areas relacionadas t^em sido as molas propulsoras na area de in-
terfaces. Mega esforcos de programaca~o para desenvolver sistemas de apoio a trabalho
cooperativo que utilizem a infra-estrutura ja instalada de redes de computadores de longa
dist^ancia s~ao esperados para o futuro proximo. Interfaces n~ao WIMP, por exemplo, que
empregam reconhecimento de voz, gestos e outras formas de interac~ao bem como o em-
prego de realidade virtual s~ao sistemas cada vez mais comuns. Estes exemplos implicam
em novos desaos tambem para a area de interfaces. Conforme Myers [61], multimdia,
sistemas distribudos e sistemas de informac~ao geograca s~ao nichos para os quais existe
um futuro promissor para boas ferramentas de apoio ao desenvolvimento de tais sistemas.
52
Novas fronteiras demandar~ao projetos e implementac~oes de sistemas interativos mais e
mais complexos a serem desenvolvidos por prossionais com conhecimento cada vez mais
especializado na area, ja que o sucesso deste tipo de empreendimento depende fortemente
da qualidade de suas interfaces. Esperamos que o presente texto sirva de iniciac~ao para
aqueles que enfrentar~ao os desaos da area atualmente colocados e os que ainda ser~ao
feitos no futuro.
Bibliograa
[1] Ronald M. Baecker and William A. S. Buxton, editors. Readings in Human-Computer
Interaction { A Muldisciplinary Approach. Morgan Kaufmann, 1987.
[2] Ronald M. Baecker, Jonathan Grudin, William A. S. Buxton, and Saul Greenberg,
editors. Readings in Human-Computer Interaction: Toward the Year 2000. Morgan
Kaufmann, second edition, 1995.
[3] Lon Bareld. The User Interface - Concepts & Design. Addison-Wesley Publishing
Company,Inc., 1993. ISBN 0-201-54441-5.
[4] Len Bass and Joelle Coutaz. Developing Software for the User Interface. SEI Series
in Software Engineering. Addison-Wesley Publishing Company, Inc., 1991.
[5] Len Bass, Ross Faneuf, Reed Little, Niels Mayer, Bob Pellegrino, Scott Reed, Robert
Seacord, Sylvia Sheppard, and Martha R. Szczur. A Metamodel for the Runtime
Architecture of an Interactive System. SIGCHI Bulletin, 24(1):32{37, January 1992.
[6] Daniel G. Bobrow, Sanjay Mittal, and Mark J. Stek. Expert Systems: Perils and
Promise. Communications of the ACM, 29(9):880{894, September 1986.
[7] Barry W. Boehm. A Spiral Model of Software Development and Enhancement. IEEE
Computer, pages 61{72, 1988.
[8] Susanne Bdker. Through the Interface: A Human Activity Approach to User Inter-
face Design. Lawrence Erlbaum Associates, Inc., 1991. ISBN 0-8058-0570-2.
[9] Judy Brown. Exploring Human-Computer Interaction and Software Engineering
Methodologies for the Creation of Interactive Software. SIGCHI Bulletin, 29(1):32{
35, January 1997.
[10] John M. Carrol, Robert L. Mack, and Wendy A. Kellogg. Interface Metaphors and
User Interface Design. In Martin Helander, editor, Handbook of Human-Computer
Interaction. Elsevier Science - Publishers B.V, 1988.
[11] Uli H. Chi. Formal Specication of User Interfaces: A Comparison and Evaluation
of Four Axiomatic Approaches. IEEE Software, SE-11(8):671{685, August 1985.
54 BIBLIOGRAFIA
[12] Joelle Coutaz. Abstractions for User Interface Design. IEEE Computer, 18(09):21{34,
September 1985.
[13] Joelle Coutaz. Software Architecture Modeling for User Interfaces. Technical Report,
1992. ftp.imag.fr/pub/IHM.
[14] Bill Curtis. Japan's Research Focus Shifts to Interfaces. IEEE Software, November
1991.
[15] Andy Downton, editor. Engineering the Human-Computer Interface. McGraw-Hill,
1991. ISBN 0{7-707321-5.
[16] Susan Dray. The Importance of Designing Usable Systems. Interactions, 2(1):17{20,
January 1995.
[17] Clarence Ellis, Simon Gibbs, and Gail Rein. Groupware: Some Issues and Experien-
ces. Communications of the ACM, 34(1):38{58, January 1991.
[18] Mark A. Flecchia and R. Daniel Bergeron. Specifying Complex Dialogs in ALGAE.
In Proceedings of the ACM CHI+GI'87, pages 229{234, April 1987.
[19] James D. Foley, Andries van Dam, Steven K. Feiner, and John F. Hughes. Compu-
ter Graphics: Principles and Practice. Addison-Wesley Publishing Company, Inc.,
second edition, 1990.
[20] ACM/IEEE-SC Joint Curriculum Task Force. Computing Curricula 1991, 1991.
ISBN 0-8979-381-7.
[21] Jason Gait. Pretty Pane Tiling of Pretty Windows. IEEE Software, pages 9{14,
September 1986.
[22] David Garlan. Research Directions in Software Architecture. ACM Computing Sur-
veys, 27(2):257{261, June 1995.
[23] Mark Green. Report on Dialogue Specication Tools. In Gunther E. Pfa, editor,
User Interface Management Systems, pages 9{20. Springer-Verlag, 1985.
[24] Mark Green. A Survey of Three Dialogue Models. ACM Transactions on Graphics,
5(3):244{275, July 1986.
[25] Jonathan Grudin. Integratin Human Factors and Software Development. In Human
Factors in Computing Systems, Proceedings SIGCHI'88, pages 157{159, Washington,
D.C., May 1988.
[26] Frits Habermann. Giving Real Meaning to easy-to-use' Interfaces. IEEE Software,
pages 90{91, July 1991.
BIBLIOGRAFIA 55
[27] Andrew Harbert, William Lively, and Sallie Sheppard. A Graphical Specication
System for User-Interface Design. IEEE Software, 7(4):12{20, July 1990.
[28] D. Harel. Statecharts: A Visual Formalism for Complex Systems. Science of Com-
puter Programming, 8(3):231{274, June 1987.
[29] H. Rex Hartson and Deborah Hix. Toward Empirically Derived Methodologies and
Tools for Human-Computer Interface Development. Int. J. Man-Machine Studies,
pages 477{494, 1989.
[30] H. Rex Hartson, Antonio C. Siochi, and Deborah Hix. The UAN: A User-Oriented
Representation for Direct Manipulation Interface Designs. ACM Transactions on
Information Systems, 8(3):181{203, July 1990.
[31] H.R. Hartson and D. Hix. Human-Computer Interface Development: Concepts and
Systems for its Management. ACM Computing Surveys, 21(1):5{92, March 1989.
[32] Rex Hartson. User-Interface Management Control and Communication. IEEE Soft-
ware, pages 62{70, January 1989.
[33] Ralph D. Hill. Event-Response Systems | A Technique for Specifying Multi-Thread
Dialogues. In Proceedings of the ACM CHI+GI'87, pages 241{248, April 1987.
[34] Deborah Hix and H. Rex Hartson. Developing User Interfaces: Ensuring Usability
Through Product & Process. John Wiles & Sons, Inc., 1993. ISBN 0471-57813-4.
[35] Deborah Hix and Robert S. Schulman. Human-Computer Interface Development
Tools: A Methodology for their Evaluation. Communications of the ACM, 34(3):74{
87, March 1991.
[36] Don Hopkins. The Design and Implementation of Pie Menus. Dr. Dobb's Journal,
pages 16{26, December 1991.
[37] W. D. Hurley and J. L. Sibert. Modeling User Interface-Application Interactions.
IEEE Software, pages 71{77, January 1989.
[38] Daniel Ichbiah and Susan Knepper. MICROSOFT. Editora Campus, Rio de Janeiro,
1992. Traduc~ao do original: The Making of Microsoft.
[39] Robert J. K. Jacob. Using Formal Specications in the Design of a Human-Computer
Interface. Communications of the ACM, 26(4):259{264, April 1983.
[40] Setrag Khoshaan and Razmik Abnous. Object Orientation: Concepts, Languages,
Databases, User Interfaces, chapter User Interfaces, pages 323{387. John Wiley &
Sons, Inc., 1990.
[41] Barbar Kitchenham and Shari Lawrence P
uger. Software Quality: The elusive
target. IEEE Software, 13(1):12{21, January 1996.
56 BIBLIOGRAFIA
[42] Brenda Laurel, editor. The Art of Human-Computer Interface Design. Addison-
Wesley Publishing Company, Inc., 1990. ISBN 0-201-51797-3.
[43] Geo Lee. Object-Oriented GUI Application Development. Prentice-Hall, 1993.
[44] Jonathan Levy. Measuring Usability: Preference vs. Performance. Communications
of the ACM, 37(4):66{75, April 1994.
[45] Clayton Lewis and John Rieman. Task-Centered User Interface Design: A
Practical Introduction. Shareware, 1994. FTP an^onimo: ftp.cs.colorado.edu,
/pub/CS/distribs/clewis/HCI-Design-Book.
[46] K. Y. Lim, J. B. Long, and N. Silcock. Integrating Human Factors with the Jackson
System Development. Ergonomics, 35(10):1135{1161, 1992.
[47] Fabio N. Lucena. Construca~o de Interfaces Homem-Computador: O Uso de
Estadogramas na Especicac~ao e Implementaca~o de Interfaces. Master's thesis,
dcc/imecc/unicamp, Campinas/SP, 1993.
[48] Fabio N. Lucena and Hans K. E. Liesenberg. Construca~o de Interfaces Homem-
Computador: Uma Proposta de Disciplina de Graduaca~o. Workshop de Educac~ao
em Informatica (XV SBC, pages 191{200, Agosto 1995.
[49] Fabio N. Lucena and Hans K.E. Liesenberg. Re
ections on Using Statecharts to
Capture User Interface Behaviour. Proceedings of XIV Int. Conf. of the Chilean
CSS, October 1994.
[50] Arnold M. Lund. Another Approach to Justifying the Cost of Usability. Interactions,
4(3), 1997.
[51] M. M. Mantei and T. J. Teory. Cost/Benet Analysis for Incorporating Human
Factors in the Software Lifecycle. Communications of the ACM, 31:428{439, 1988.
[52] Deborah J. Mayhew. Principles and Guidelines in Software User Interface Design.
Prentice-Hall, 1992. ISBN 0-13-721929-6.
[53] Susan E. McDaniel, Gary M. Olson, and Judith S. Olson. Methods in Search of
Methodology { Combining HCI and Object Orientation. In Human Factors in Com-
puting Systems CHI'94 Conference Proceedings, pages 145{151, 1994.
[54] G. A. Miller. The Magical Number 7, plus or minus 2: Some Limits of our Capacity
for Processing Information. Psychological Review, 1956. Number 63.
[55] Rolf Molich and Jakob Nielsen. Improving a Human-Computer Dialogue. Commu-
nications of the ACM, 33(3):338{348, March 1990.
[56] Brad A. Myers. A Taxonomy of Window Manager User Interfaces. IEEE Computer
Graphics & Applications, pages 65{84, September 1988.
BIBLIOGRAFIA 57
[74] W. robert Collins, Keith W. Miller, Bethany J. spielman, and Phillip Wherry. How
Good is Good Enough? Communications of the ACM, 37(1):81{89, January 1994.
[75] Mattew D. Russell, Howard Xu, and Lingtao Wang. Action Assignable Graphics -
A Flexible Human-Computer Interface Design Process. In Human Factors in Com-
puting Systems CHI'92 Conference Proceedings, pages 71{72, Monterey, California,
May 1992.
[76] Robert W. Schei
er and Jim Gettys. The X Window System. ACM Transactions on
Graphics, 5(2):79{109, April 1986.
[77] Ben Shneiderman. Direct Manipulation: A Step Beyond Programming Languages.
IEEE Computer, 16(8):57{69, August 1983.
[78] Ben Shneiderman. Designing the User Interface: Strategies for Eective Human-
Computer Interaction. Addison-Wesley Publishing Company, Inc., 1987.
[79] ACM SIGCHI. Curricula for Human-Computer Interaction, 1992. ISBN 0-89791-
474-0.
[80] H. W. Six and J. Voss. User Interface Development: Problems and Experiences.
Lecture Notes in Computer Science, 555:306{319, June 1991.
[81] Sidney L. Smith and Jane N. Mosier. Guidelines for Designing User Interface Soft-
ware. Technical Report ESD-TR-86-278, US Air Force, 1986. Anonymous ftp:
archive.cis.ohio-state.edu, pub/hci/Guidelines.
[82] R. Summersgill and D. P. Browne. Human Factors: Its Place in System Development
Methods. ACM SIGSOFT Engineering Notes, 14(3):227{234, May 1989.
[83] P. P. Tanner and W. A. S. Buxton. Some Issues in Future User Interface Management
System (UIMS). In Gunther E. Pfa, editor, User Interface Management Systems,
pages 67{79. Springer-Verlag, 1985.
[84] Harold Thimbleby. User Interface Design. ACM Press, 1990. ISBN 0-201-41618-2.
[85] Siegfried Treu. User Interface Design: A Structured Approach. Plenum Press, 1994.
[86] Siegfried Treu. User Interface Evaluation: A Structured Approach. Plenum Press,
1994.
[87] Anthony I. Wasserman, Peter A. Pircher, David T. Shewmake, and Martin L. Kers-
ten. Developing Interactive Information Systems with the User Software Engineering
Methodology. IEEE Software, SE-12(2):326{345, February 1986.
[88] James Wilson and Daniel Rosenberg. Rapid Prototyping for User Interface Design.
In M. Helander, editor, Handbook of Human-Computer Interaction, chapter 39, pages
859{875. Elsevier Science Publishers B.V., 1988.
BIBLIOGRAFIA 59
[89] Michael Wilson and Anthony Conway. Enhanced Interaction Styles for User Interfa-
ces. IEEE Computer Graphics & Applications, 11(2):79{90, March 1991.
Indice
A estilos de interaca~o, 29
analise de tarefas, 28 exerccios, 10, 21, 33, 45, 48
aplicac~ao, 3
apresentac~ao, 42 F
arquitetura de software, 41 facil de usar e aprender, 4
atrativo, 4 feedback, 25
avaliac~ao, 47 ferramentas
avaliacao, 47{49 toolkits, 39
ex, 27
C
uxo de controle, 36
caixas, 30 funcionalidade, veja aplicaca~o
callback, 40 G
cascata groupware, 27
ciclo de vida, 15 guidelines, veja diretrizes
cenarios, 48
ciclo de vida, 16 H
Ci^encia da Computac~ao, 26 hipermdia, 2
conclus~oes, 51
consist^encia, 25 I
construtor de interface, 40 cone, 30
controle de dialogo, 42 implementaca~o, 35{45
diculdades, 35
D independ^encia de dialogo, 3, 44
demonstrational, 29 interaca~o
desenvolvimento, 11{21 estilos, 29
dialogo, 3 Interaca~o Homem-Computador, 1
diculdades de desenvolvimento, 6 interaca~o, 2
dispositivos de E/S, 29 interface
conceito, 2
E construtor de, 40
engenharia de software, 14 denica~o, 3
ergonomia, 26 desenvolvimento, 11
especicac~oes de dialogo, 43 estilos, 29
espiral fontes de informaca~o, 7
ciclo de vida, 15 import^ancia, 5
estilo de interaca~o, 30 software de, 35
INDICE 61
interface builder, 40 projeto de interac~ao, 23{33
interface homem-computador, 2 prototipos, 31
Introduc~ao, 1{10 psicologia, 26
L R
lex, 27 raz~ao aurea, 26
linguagem de comandos, 29 reac~ao por infer^encia, 29
linguagem natural, 29 recordac~ao rapida, 4
lingustica, 27 recuperac~ao de erros, 25
look and feel, 24 regras, 28
M S
manipulac~ao direta, 29 SDI, 41
manual do usuario, 48 Seeheim
menus, 30 modelo de, 42
metaforas, 26 SGI, 40
modelo de Seeheim, 42 sistema de janela, 38
modelo formal, 16 sociologia, 27
modelos de dialogo, 43 software
multidisciplinar, veja projeto arquitetura, 41
multimdia, 2, 51 organizaca~o, 38
software de interfaces, 35
N desaos, 36
numero magico 7 + = ; 2, 26 Star, 38
O statecharts, 43
objeto de interac~ao, 39 T
P tamanho da interface, 6
task-centered
padr~oes, 28
portabilidade, 37 design, 26
preenchimento de formularios, 30 taxa de erro mnima, 4
princpios, 28 tempo de aprendizado, 26
consist^encia, 25 tipograa, 27
feedback, 25 toolkits, 39
habilidades distintas, 25
metaforas, 26
U
UIDS, 41
minimizar erro, 25 UIMS, veja SGI
minimizar memoria, 26 UNIX, 27
recuperar erro, 25 usabilidade, 2
processo de projeto, 11 user-friendly, 4
projeto usuario, 2
denic~ao de, 24
multidisciplinar, 26 W
produto de, 32 Waterfal, veja cascata
62 INDICE
widget, 39
WIMP, 2
Windows, 38
Windows NT, 38
WYSIWYG, 29