Interação Humano Computador 2008/1 Profa. Neide Santos ([email protected]) Objetivos Dar aos alunos uma noção geral da área de IHC, bases teóricas, modelos e métodos para projeto e avaliação de interfaces. Ao fim do curso o aluno terá aprendido a aplicar os métodos e modelos, e, mais do que isso, sobre o objetivo, custo e benefício em aplicar cada um deles, estando assim capacitado a selecionar o mais adequado em um determinado contexto. Programa detalhado Conceitos básicos de Interação Homem-Computador: Interfaces, Sistemas Interativos, Usuários, Usabilidade, Componentes de Software e Hardware. Fundamentos teóricos: Aspectos Cognitivos e Ergonômicos. Projeto e Prototipação de Interfaces: Modelos, Métodos, Técnicas e Ferramentas, Projeto Baseado em Tarefas, Projeto Centrado no Usuário e Projeto Participativo, Integração com Engenharia de Software. Avaliação de Interfaces: tipos e técnicas de avaliação. Interfaces Web, Interfaces educacionais, Interfaces para Sistemas Cooperativos e Novas Tendências. Estudos de Caso em Projeto Avaliação de Interfaces. IHC 2008/1 Módulos O curso está dividido em 3 módulos. Conceitos básicos de Interface Projeto de Interfaces Tópicos em IHC Para cada módulo haverá aulas expositivas, discussões, demonstrações e um trabalho ou lista de exercício sobre o tema A idéia é apresentar o conceito, discuti-lo, ilustrá-lo com exemplos de implementações e realizar um exercício de apoio à fixação. Para cada módulo será definida uma literatura básica de leitura obrigatória IHC 2008/1 Critério de Aprovação A avaliação do aluno no curso considerará 5 parâmetros: Nota 1: Nota2: Media aritmética das notas do seminário individual (10 pontos) + nota obtida na lista de exercício (10 pontos) Desenvolvimento de uma interface de software (10 pontos peso 2) bônus obtido por trabalhos extras, discussões em sala e assiduidade (10%) IHC 2008/1 Calendário das atividades No Data Atividade 1 10 março Apresentação geral do Curso 2 12 março Objetivos e motivação para o estudo de Interfaces 1 3 17 março Módulo 1 – Conceitos básicos 1 (Definição IHC e Interface) 4 19 março Conceitos básicos 2 - Interação, Comunicabilidade e Usabilidade 5 24 março Conceitos básicos 3 - Perspectivas de interação 6 26 março Aula prática 7 3 abril Estilos de interação 1 8 7 abril Estilos de interação 2 9 9 abril Estilos de interação 3 10 CANCELADA Aula prática: Laboratório para análise dos estilos de interação de sistemas disponíveis Aulas 9 e 10 - Seminário de alunos Aula 11 - Inicio do Módulo 2: Projeto e Prototipação de Interfaces Módulo 1 - aula 1 Conceitos básicos de IHC IHC faz parte da Ciência da Computação? Ciência da computação é ... o estudo de computadores e o que eles podem fazer – as capacidades e limites inerentes a computadores abstratos, o design e características de computadores reais, e as inúmeras aplicações de computadores na resolução de problemas. Committee on the Fundamentals of Computer Science, National Research Council IHC 2008/1 Conceitos gerais de IHC Problemas Comuns no Desenvolvimento de Sistemas foco no sistema (versus foco no usuário) desprezo pela interface impacto da introdução de novas tecnologias desprezado base teórica dos desenvolvedores fraca ou inexistente design de software desconsiderado processo de desenvolvimento inadequado ferramentas inadequadas interação usuário-sistema não avaliada IHC 2008/1 O que é IHC? Interação Humano-Computador (IHC): área de estudo que está na interseção das ciências da computação e informação e ciências sociais e comportamentais e envolve todos os aspectos relacionados com a interação entre usuários e sistemas. A interação humano-computador estuda tanto os fatores computacionais quanto os fatores humanos e surgiu como um campo autônomo de estudo na interseção das áreas de: computação gráfica, sistemas operacionais, fatores humanos, ergonomia, engenharia industrial, psicologia cognitiva. Conceitos básicos Interface Interação Usabilidade Comunicabilidade Perspectivas de interação Interface O conceito de interface é utilizado em diferentes áreas da ciência da computação e é importante no estudo da interação homem-máquina, no projeto de dispositivos de hardware, na especificação de linguagens de programação e também em projetos de desenvolvimento de software. A interface existente entre um computador e um humano é conhecida como interface do usuário. As interfaces utilizadas para conectar componentes de hardware são chamadas de interfaces físicas. Interface – hardware e software A interface fornece métodos para: • Entrada, permitindo ao usuário manipular o sistema • Saida, permitindo ao sistema produzir os efeitos (as respostas) das ações do usuário Interface Atualmente as seguintes interfaces do usuário são as mais comuns: Interface gráfica - aceita a entrada através de sistemas como o teclado ou mouse e fornece saída gráfica articulada no monitor. Interface web - aceita a entrada e fornece saída ao gerar páginas Web, que são transportadas pela Internet e visualizadas através de um navegador. Interface de linha de comando - aceita a entrada através de comandos de texto utilizando teclado e fornece saída imprimindo o texto no monitor. Interface tátil - interface gráfica do usuário que usa telas de sensíveis ao toque como forma de entrada, tornando o monitor um dispositivo tanto de entrada como de saída do sistema. Módulo 1 - aula 2 Interação Interação é uma ação de um objeto físico sobre outro. Além da interação puramente física, o termo designa a ação conjunta humano-humano e humano-máquina. Em termos simples, ocorre interação quando a ação de uma pessoa desencadeia uma reação em outro (humano ou não). Esta interação pode ter diversos níveis, desde a simples bidirecionalidade até a interatividade. Interatividade é o que possibilita ao indivíduo afetar e ser afetado por outro numa comunicação que se desenvolve num sistema de mão dupla que vamos analisar dentro da grande rede mundial de computadores, a Internet. Interface versus Interação Interface: Parte de um sistema computacional com a qual a pessoa entra em contato – física, perceptiva ou conceitualmente Interação: Processo de comunicação entre pessoas e sistemas interativos Interação Usabilidade Termo usado para definir a facilidade com que as pessoas podem empregar uma ferramenta ou objeto a fim de realizar uma tarefa específica e importante. A usabilidade pode também se referir aos métodos de mensuração da usabilidade e ao estudo dos princípios por trás da eficiência percebida de um objeto. Em IHC, usabilidade normalmente se refere à simplicidade e facilidade com que uma interface, um programa de computador ou um website pode ser utilizado. O termo também é utilizado em contexto de produtos como aparelhos eletrônicos, em áreas da comunicação e produtos de transferência de conhecimento, como manuais, documentos e ajudas online. Também pode se referir a eficiência do design de objetos como uma maçaneta ou um martelo Usabilidade – qualidade de uso (1 de 3) A usabilidade de um sistema pode ser resumida -- de um ponto de vista mais técnico -- como a combinação das seguintes características: Facilidade de aprendizado: se refere ao tempo e esforço necessários para que os usuários aprendam a utilizar uma determinada porção do sistema com determinado nível de competência e desempenho. Geralmente, uma aplicação pode ser analisada sob uma perspectiva de uso simples, intermediário ou avançado, cada qual requerendo níveis de aprendizado distintos. Neste caso, este fator de facilidade de aprendizado pode ser analisado separadamente para cada passagem de um nível de capacitação para o próximo. Facilidade de uso: Uma vez que o usuário tenha aprendido a usar o sistema, consideramos a facilidade com que ele lembra como o sistema deve ser utilizado. Este fator está relacionado não apenas com o esforço cognitivo para interagir com o sistema, mas também com o número de erros cometidos durante a interação. É importante observar que um sistema fácil de aprender não é necessariamente fácil de utilizar ou viceversa. Usabilidade – qualidade de uso (2 de 3) Eficiência de uso: Sistemas fáceis de utilizar podem ser ineficientes em relação ao QUE permite o usuário fazer. Essa dimensão serve para analisar se o sistema faz bem aquilo a que se destina. Produtividade: Sistemas fáceis de usar também podem ser ineficientes em relação ao COMO permite o usuário fazer. Essa dimensão serve para avaliar se o usuário consegue fazer o que precisa de forma rápida e eficaz. Geralmente é avaliada pelo tempo decorrido desde o início até a conclusão de uma tarefa e pelo número de passos que o usuário precisou realizar. Satisfação do usuário: Como a aceitação de um sistema interativo é determinante do sucesso do sistema, o fator satisfação do usuário enfatiza a avaliação subjetiva do sistema feita por seus usuários, incluindo emoções positivas e/ou negativas, como prazer, diversão, frustração, medo, entre outras, que possam surgir durante a interação. Usabilidade – qualidade de uso (3 de 3) Flexibilidade: pessoas diferentes podem seguir caminhos distintos para atingir um mesmo objetivo. Estas idiossincrasias vão desde operações primitivas como o uso do mouse ou teclas de atalho para acionar uma função do sistema, até mesmo estratégias de solução de problemas completamente distintas, como o uso criativo de um editor de textos como software de apresentação de slides, por exemplo. O fator flexibilidade considera o quanto uma aplicação é capaz de acomodar essas idiossincrasias. Utilidade: refere-se a quanto um sistema oferece o conjunto de funcionalidades necessárias para os usuários realizarem as suas tarefas. Segurança no uso: esta dimensão está relacionada ao grau de proteção de um sistema contra condições desfavoráveis ou até mesmo perigosas para os usuários. Trata-se principalmente de como evitar e permitir que o usuário se recupere de condições de erro com conseqüências sérias para seu trabalho ou para sua saúde. Comunicabilidade Qualidade de uma interface de comunicar aos usuários as decisões e intenções do designer desta interface. É uma propriedade de um sistema de transmitir ao usuário de forma eficaz e eficiente as intenções e princípios de interação que guiaram seu design. Difere da usabilidade na medida em que: usabilidade refere-se em particular à facilidade de atingir objetivos no sistema durante a experiência da interação, enquanto a comunicabilidade refere-se ao uso de elementos de interface que sejam informativos ao usuário com relação ao uso esperado dos mesmos. Por exemplo, espera-se que o clique em um botão corresponda ao disparo de uma ação e que um botão em "baixo relevo" esteja desabilitado Módulo 1 - aula 3 Perspectivas de interação (1 de 3) 4 perspectivas Perspectivas de interação (2 de 3) A primeira perspectiva identificada é a do sistema. Nos primeiros sistemas computacionais desenvolvidos, o usuário precisava se comportar como uma máquina, aprendendo a interagir utilizando uma linguagem de comando ou programação de baixo nível. Nesta perspectiva, o usuário é visto como um módulo provedor de dados para o sistema computacional (o usuário é somente um data-entry). Esta perspectiva se mostrou inadequada, pois requeria muito esforço e tempo de treinamento, seu uso era difícil e tedioso, e os usuários freqüentemente cometiam erros. Uma reação à visão do usuário como máquina foi uma perspectiva diametralmente oposta, que propunha transformar o computador em parceiro de discurso (computador como pessoa). Nesta perspectiva, a máquina deveria assumir o papel de um interlocutor à altura de um ser humano, capaz de raciocínio e comportamento semelhantes aos dos seus usuários. Esta visão, muito voltada para a Inteligência Artificial, também é equivocada, pois muitas vezes desconsidera a capacidade que o usuário tem de ter um comportamento inovador, criativo. Nas perspectivas 1 e 2, o foco estava no sistema. Perspectivas de interação (3 de 3) A terceira perspectiva, computador como ferramenta, desloca o foco para os usuários. Estes agora utilizam o computador como um instrumento para realizar um trabalho ou criar um produto. Esta perspectiva é predominante nos sistemas atuais. A quarta perspectiva, computador como mídia (meio de comunicação), vem ganhando cada vez mais espaço com a disseminação da Internet. Nela, o foco está na comunicação entre os usuários, através do sistema. Cooperação – sistemas multi-usuarios Aula 4 Perspectivas de interação Aula prática no laboratório para análise de interfaces de sistemas disponíveis quanto a: usabilidade e perspectivas de interação Módulo 1 – aula 5 Estilos de interação Padrão específico que determina algumas características que o modelo de interação de uma interface deve ter. Existem diversos estilos de interação que podem ser classificados de diversas maneiras. Uma mesma interface pode permitir ao usuário a interação em diversos estilos. Vamos apresentar a seguir os exemplos de estilos de interação mais comuns sem a preocupação de oferecer uma classificação exaustiva. linguagem de comando menus preenchimento de formulários WIMP (Windows, Icons, Menus, and Pointers) manipulação direta WWW realidade virtual Linguagens de comandos (1 de 2) Interfaces baseadas em linguagens de comandos proporcionam ao usuário a possibilidade de enviar instruções diretamente ao sistema através de comandos específicos. Linguagem de comandos foi o primeiro estilo de interação a ser usado amplamente. Este estilo caracteriza-se por possibilitar ao usuário construir comandos através do teclado (hardware da interface) que devem poder ser interpretados pelo software da interface para que funções específicas da aplicação sejam ativadas. Os comandos podem ser produzidos pelo acionamento de teclas de funções especiais, ou pelo acionamento de uma tecla de caracter, ou pela estruturação delas. Um tipo de estruturação especial é aquele no qual teclas são acionadas para produzir palavras de comandos que podem ser combinadas em sentenças de acordo com a gramática que define a linguagem. Este estilo de interação visa possibilitar que a linguagem de comandos aproxime-se daquela falada pelos usuários. Linguagens de comando (2 de 2) Poderosas em oferecer acesso direto à funcionalidade do sistema e em permitir maior iniciativa do usuário e uma maior flexibilidade na construção dos comandos através da variação de parâmetros e combinação de palavras e sentenças. Este poder e flexibilidade implicam em uma maior dificuldade dos iniciantes em aprender e utilizar o sistema. Os comandos e a sintaxe da linguagem precisam ser relembrados e erros de digitação são comuns mesmo nos mais experientes. A falta de padronização nos diversos sistemas é um fator importante na dificuldade de utilização deste estilo. Usuários especialistas conseguem maior controle do sistema e produtividade através de interfaces baseadas em linguagens de comandos. Menus (1 de 2) Nas interfaces orientadas por menus o conjunto de funções oferecidas pela aplicação é mostrada ao usuário através da tela e cabe ao usuário selecionar uma delas através do mouse ou de teclas alfanuméricas ou especiais. Como as funções e a maneira de acioná-las estão visíveis na forma de opções para o usuário selecionar existe uma demanda maior pelo processo de reconhecimento ao invés de recordação com no caso das interfaces baseadas em comandos. Normalmente o número de opções de comandos é grande o suficiente para ser mostrado de uma única vez na tela da interface. Existem diversas técnicas para se agrupar e apresentar as opções de menus. A mais comum é a categorização hierárquica na qual as opções são agrupadas em categorias de maneira hierárquica. A escolha dos nomes dos grupos e de cada opção do menu é fundamental para que o usuário possa escolher aquelas que permite-o atingir as suas metas. Menus (2 de 2) As interfaces orientadas por menus podem ser textuais ou gráficas. Nas interfaces textuais (ou baseadas em caracteres) as opções são descritas através de palavras na linguagem do usuário que representem as funções do sistema correspondentes ao comandos. O comando é acionado através de uma tecla ou número associado à opção do menu. Nas interfaces gráficas os menus podem ser compostos por palavras ou por signos gráficos específicos. Existem alguns tipos específicos de menus nas interfaces gráficas como menus de barra, pull-down, e popup. Módulo 1 - aula 6 Linguagem Natural (1 de 3) LN é a expressão utilizada para se referir de maneira genérica à língua que o usuário domina, podendo ser o português, o francês, o inglês ou qualquer das linguagens existentes. Através de interfaces em linguagem natural o usuário pode interagir com o sistema na sua própria linguagem. Ao contrário das linguagens por comandos quando o usuário tem que aprender uma linguagem artificial que seja mais facilmente processada por computadores, nas interfaces que processam linguagem natural o maior esforço fica a cargo do computador que deve interpretar e gerar sentenças na linguagem natural do usuário. Linguagem Natural (2 de 3) A interação em LN é bastante atrativa para usuário com pouco ou nenhum conhecimento em computação. Entretanto ela não se aplica a todos os tipos de sistemas. Sistemas de consulta a informações e sistemas baseados em conhecimento são exemplos onde a utilização de interfaces em LN é bastante interessante. No primeiro caso por possibilitar que usuário não especialistas possam fazer consultas em sua própria língua. No segundo caso para que o sistema gere explicações a partir da sua base de conhecimento, uma vez que a LN é expressiva o suficiente para a descrição do raciocínio artificial do programa, o que não seria possível com outros estilos de interação Linguagem Natural (3 de 3) Um programa que processa linguagem natural é bastante complexo. Esta é justamente uma das maiores limitações deste tipo de interface. O exemplo apresenta um trecho de interação onde o usuário utiliza de elipses dificultando a interpretação e a geração das respostas. Preenchimento de formulário (1 de 2) Interfaces no estilo de preenchimento de formulário2 são utilizadas principalmente para entrada de dados em sistemas de informação. Estas interfaces apresentam para o usuário uma tela que lembra um formulário em papel solicitando informações específicas do domínio da aplicação. Nestes casos o modelo de interação básico é o fornecimento de dados para os campos ou registros de uma base de dados. Os modelos de formulários muitas vezes estão baseados nos formulários em papel que os usuário estavam acostumados a utilizar antes da implantação do sistema, facilitando o aprendizado do modelo de interação. Preenchimento de formulário (2 de 2) Estas interfaces são, em geral, fáceis de aprender, mas não possibilitam flexibilidade na funcionalidade. Os aspectos principais que vão influenciar a usabilidade do sistema são a produtividade do usuário, a sua satisfação e o esforço físico provocado pelo sistema, uma vez que estes sistemas são projetados para que os usuários forneçam um grande número de dados ao longo de um dia de trabalho. Estas interfaces devem facilitar a correção de erros de digitação e a verificação dos dados digitados através de técnicas como dígitos verificadores e totalização de valores. Manipulação Direta (1 de 2) Interfaces de manipulação direta são aquelas que permitem ao usuário interagir diretamente com os objetos da aplicação (dados ou representações de objetos do domínio) sem a necessidade de comandos de uma linguagem específica. Na manipulação direta os comandos são ações que o usuário desempenha diretamente com objetos do sistema. Este estilo diferencia-se da interação por linguagens de comandos na qual o usuário interage indiretamente através de comandos lingüísticos e nomes que apresentem os objetos do sistema. As interfaces gráficas que se utilizam da metáfora do desktop proporcionam um estilo no qual os usuários podem interagir com o gerenciador de arquivos do sistema operacional através de manipulação de ícones que representam arquivos, diretórios, discos e outros componentes computacionais. O usuário comanda através de ações de arrastar Manipulação Direta (2 de 2) O usuário comanda através de ações de arrastar e soltar (drag-and-drop) os ícones utilizando o mouse ou outro dispositivo equivalente. Existem duas formas básicas de manipulação direta. A primeira delas é a manipulação, através de dispositivos apontadores com o mouse, de representações de objetos computacionais dando a sensação de que se está manipulando o próprio objeto. A segunda forma é a manipulação direta dos dados quando o usuário pode alterar o estado do sistema através de ações explícitas sobre eles As interfaces gráficas que se utilizam da metáfora do desktop proporcionam um estilo no qual os usuários podem interagir com o gerenciador de arquivos do sistema operacional através de manipulação de ícones que representam arquivos, diretórios, discos e outros componentes computacionais. Módulo 1 – aula 7 GUI/WIMP (Windows, Icons, Menus e Pointers (1 de 3) O estilo de interação GUI/WIMP, um acrônimo em inglês para Interface de Usuário Gráfica com Janelas, Ícones, Menus e Apontadores, permite a interação através de componentes de interação virtuais denominado de Widgets. Este estilo é implementado com o auxílio da tecnologia de interfaces gráficas, que proporcionam o desenho de janelas e do controle de entrada através do teclado e do mouse em cada uma destas janelas. Os softwares de interfaces que implementam estes estilos permitem a construção de ícones que permitem a interação através do mouse, comportando-se como dispositivos virtuais de interação. widget é um termo sem tradução que designa componentes de interface gráfica com o usuário. Qualquer item de uma interface gráfica é chamada de widget, por exemplo: janelas, botões, menus e itens de menus, ícones, barras de rolagem, etc. Outro ponto que pode ser colocado como Widgets são pequenas janelas que ficam no desktop. Essas Janelas têm como intuito ajudar, informar e divertir o Usuario GUI/WIMP (Windows, Icons, Menus e Pointers (2 de 3) GUI/WIMP (Windows, Icons, Menus e Pointers (3 de 3) WIMP não deve ser considerado um único estilo, mas a junção de uma tecnologia de hardware e software, associado aos conceitos de janelas e de widgets que permite a implementação de vários estilos. Nas interfaces WIMP é possível ter os estilos de menus, manipulação direta, preenchimento de formulário e linguagem de comandos. WIMP pode ser considerado um modelo ou um framework de interface apoiado pela tecnologia de interfaces gráficas (GUI). É possível implementar o estilo WIMP usando tecnologia de telas não gráficas. Entretanto, têm-se a limitação de não se poder ícones gráficos e se ter um baixo nível de resolução que limita a quantidade de objetos de interface que pode ser mostrada para o usuário. Realidade virtual (1 de 2) Realidade Virtual compreende um estilo caracterizado por oferecer ao usuário, através de tecnologias avançadas, a sensação de estar presente num ambiente que simule certas condições de trabalho de um domínio. Nesta situação um mundo virtual é oferecido ao usuário para que ele possa interagir manipulando elementos deste mundo. As tecnologias de RV são consideradas como imersivas quando o usuário utiliza todo um aparato que lhe dá a sensação de estar presente no ambiente virtual. Neste caso, ele usa óculos com visores especiais para que sua visão esteja concentrada apenas no mundo virtual. Suas ações são realizadas através de luvas especiais que permitam-lhe interagir com os elementos do mundo virtual detectando os seus movimentos. A RV não-imersiva é aquela na qual o usuário utiliza um computador comum, com uma tela gráfica e um dispositivo apontador, para interagir com o mundo virtual. Neste caso, as sensações de estar presente no mundo virtual ocorrem em proporções menores. A ilustra um exemplo de uma interface no estilo RB não imersiva. Realidade virtual (2 de 2) Interface WWW Fim do módulo 1 Aula 8: Aulas 9 e 10 Laboratório para análise dos estilos de interação de sistemas disponíveis Seminário de alunos Aula 11 Inicio do Módulo 2: Projeto e Prototipação de Interfaces: Modelos, Métodos, Técnicas e Ferramentas, Projeto Baseado em Tarefas, Projeto Centrado no Usuário e Projeto Participativo,