# Anotações IHC # Relatório sobre Interação Humano-Computador (IHC) ## User Experience (UX) - **Definição**: Experiência subjetiva do usuário com o produto ou serviço. - **Participação do Usuário**: Fundamental para avaliar a UX; usuários podem ter ações inesperadas. - **Importância**: Perspectiva do usuário crucial para o sucesso do design. ## User Interface (UI) - **Elementos**: Layout, cores, opções de interação, padrões de interface. - **Objetivo**: Criar interfaces claras e eficientes. ## IHC para Computação ### Desenvolvimento de Software - **Foco**: Melhorar a representação gráfica da informação. - **Projeto de Interface**: Inclui ergonomia e design centrado no usuário. ### Desenvolvimento de Hardware - **Foco**: Desenvolvimento de dispositivos de interação (teclados, dispositivos de apontamento). ### Processo de Projeto de Interface - **Etapas**: - Análise do Usuário. - Prototipação de Interface. - Avaliação de Interface. ## Características Humanas como Processadores de Informação - **Aspectos**: Memória, percepção, habilidades motoras, resolução de problemas. - **Influência no Design**: Fatores cruciais para o projeto de interação. ## Estilos de Interação (Shneiderman) - **Tipos**: - Manipulação Direta. - Seleção de Menu. - Preenchimento de Formulários. - Linguagens de Comandos. - Linguagem Natural. ## Avaliação de Interface ### Métodos de Avaliação 1. **Inspeção de Usabilidade**: - Sem usuários; em qualquer fase do desenvolvimento. 2. **Teste de Usabilidade**: - Com usuários; requer implementação funcional. ## Design - **Definição**: Processo de transformar solicitações em produtos acabados ou soluções (Ambrose & Harris, 2011). ## Usuário - **Cliente**: Entidade que solicita e financia o desenvolvimento do sistema. - **Usuário**: Pessoa que interage com o sistema, podendo ser primário ou secundário, leigo ou especialista. ## Design Centrado no Usuário - **Filosofia**: Coloca o usuário no centro do desenvolvimento, utilizando técnicas e processos para criar produtos com boa usabilidade (Rubin & Chisnell, 2008). ## Qualidade - **Conceito**: Atributo relativo e dinâmico, difícil de definir, mas fácil de observar. - **Qualidade Tradicional**: Inteligibilidade, operabilidade e confiabilidade. - **Usabilidade**: Learnability, memorability, efficiency, safety e satisfaction. ## Paradigmas de IHC ### Sistema como Máquina - O usuário deve adaptar-se e entender a 'língua' do computador. ### Parceiro de Discurso - O computador assume responsabilidades humanas, como tomadas de decisão, e utiliza linguagem natural. ### Ferramenta - O computador é usado para realizar atividades específicas, muitas vezes simulando o ambiente ou ferramenta real. ### Mídia - O computador serve como mediador de comunicação interpessoal, onde o sistema é 'invisível', facilitando a interação usuário-usuário. # Fatores Humanos em Interação Humano-Computador (IHC) ## Cognição - Processos mentais ativados durante a realização de tarefas, como pensar, lembrar e tomar decisões. ## Características Humanas como Processadores de Informação - **Memória**: Armazenamento e recuperação de informações. - **Percepção**: Meios pelos quais a informação é captada (ex. visão, audição). - **Habilidades Motoras**: Habilidade de manipular e interagir com o sistema. - **Resolução de Problemas**: Processo de compreender a ação, selecionar opções, decidir e agir. ## Processos de Cognição - **Atenção**: Seleção dos elementos centrais para a concentração. - **Percepção e Reconhecimento**: Entendimento da mensagem pretendida pelo projetista, como em ícones. - **Memória**: Facilidade de lembrar ou reconhecer informações. - **Aprendizado**: Processo de uso do computador para realizar tarefas sem consulta externa. - **Leitura, Fala e Audição**: Capacidades variadas entre pessoas para essas ações. - **Resolução de Problemas**: Compreensão e execução da ação, onde erros podem acontecer, especialmente sob estresse. ## Recomendações para Design - **Percepção**: - Utilizar representações gráficas de rápida compreensão. - Usar contrastes para facilitar a visualização. - Adotar sons e vozes claros e audíveis. - **Memória**: - Evitar procedimentos complicados. - Priorizar o reconhecimento em detrimento da memorização. - Oferecer alternativas para realizar tarefas. - **Aprendizado**: - Projetar interfaces que encorajem a exploração. - Restringir ações de usuários novatos para guiar o aprendizado. - Vincular representações e abstrações. - **Leitura, Fala e Audição**: - Projetar considerando a média geral dos usuários. - Oferecer opções para aumentar texto. - Possibilitar repetição de ações faladas. - **Resolução de Problemas**: - Fornecer alternativas para a execução de tarefas. - Disponibilizar informações adicionais de fácil acesso. - Criar mensagens de erro voltadas ao usuário. - Permitir recuperação de erros. ## Estilos de Interação de Shneiderman ## Manipulação Direta - **Vantagens**: - Interação rápida e intuitiva. - Fácil aprendizado. - **Desvantagens**: - Desafiador na implementação. - Apropriada apenas quando há metáforas claras para tarefas e objetos. ## Seleção de Menu - **Vantagens**: - Reduz erros do usuário. - Pouca necessidade de digitação. - **Desvantagens**: - Pode ser lento para usuários experientes. - Menus complexos são difíceis de navegar com muitas opções. ## Preenchimento de Formulários - **Vantagens**: - Simplicidade na entrada de dados. - Facilidade de aprendizado. - **Desvantagens**: - Pode ocupar espaço significativo na tela. ## Linguagens de Comandos - **Vantagens**: - Alta flexibilidade e poder. - **Desvantagens**: - Curva de aprendizado íngreme. - Gerenciamento de erros muitas vezes insuficiente. ## Definição de Requisitos - **Classificação (Preece et al., 2005)**: - **Funcionais**: Serviços que o sistema deve fornecer, reações a entradas específicas e comportamento em determinadas situações. - **Não Funcionais**: Restrições sobre serviços ou funções oferecidos, incluindo requisitos de domínio que refletem características específicas desse domínio. - **Dados**: Características necessárias dos dados para a aplicação, como tipo, volatilidade, tamanho e precisão. - **Contexto**: Circunstâncias físicas e sociais em que o produto deve operar. - **Usuário**: Características do grupo de usuários alvo, diferenciando novatos de especialistas e usuários frequentes de casuais. - **Usabilidade**: Metas e medidas associadas de usabilidade, incluindo eficácia, eficiência, segurança, utilidade, aprendizado e memorização. ## Importância da Especificação de Requisitos - **Desafios no Desenvolvimento de Software**: A compreensão e especificação de requisitos são desafios principais, influenciados por preferências dos usuários, questões políticas e organizacionais. - **Volatilidade dos Requisitos**: Influenciada por mudanças nas preferências dos usuários, bem como por fatores políticos e organizacionais. ## Coleta de Dados para Requisitos - **Objetivo**: Reunir informações para gerar um conjunto de requisitos estável. - **Técnicas**: Existem diversas técnicas de coleta, cada uma com pontos fortes e limitações. A combinação de técnicas é recomendável para abrangência. - **Escolha da Técnica**: Depende das características do sistema, do grupo de usuários e das questões específicas que precisam ser esclarecidas. ## Técnicas Úteis para Coleta de Dados - **Entrevista**: - **Descrição**: Perguntas feitas a uma pessoa ou a um grupo de pessoas individualmente. - **Tipos de Perguntas**: Estruturadas, não estruturadas ou semi-estruturadas. - **Vantagens**: - Permite exploração de questões não previstas inicialmente. - O entrevistador pode guiar a entrevista para obter informações detalhadas. - **Desvantagens**: - Pode ser influenciada pelo entrevistador. - Consome tempo e recursos. - **Questionário**: - **Descrição**: Conjunto de perguntas projetadas para obtenção de informações específicas. - **Tipos de Respostas**: Fechadas, em intervalo, e abertas. - **Vantagens**: - Aplicável a um grande número de pessoas. - Requer poucos recursos. - **Desvantagens**: - Possibilidade de direcionamento das respostas. - Pode ter baixa taxa de resposta. - **Grupos de Foco (Focus Groups)**: - **Descrição**: Perguntas realizadas a um grupo de pessoas simultaneamente. - **Vantagens**: - Identifica consenso ou conflito. - Permite exploração de questões em grupo. - **Desvantagens**: - Personalidades dominantes podem influenciar o grupo. - Similares às desvantagens das entrevistas. - **Observação**: - **Descrição**: Análise de como as tarefas são executadas para compreender processos. - **Vantagens**: - Observa-se o trabalho real e a interação em diferentes etapas. - Pode revelar processos tornados "automáticos" pelos usuários. - **Desvantagens**: - Demanda tempo e recursos. - Pode gerar grande volume de dados. ## Aplicação das Técnicas de Coleta de Dados - **Em Fases Distintas de Desenvolvimento**: - Exemplo: Observação pode ser usada tanto para entender a necessidade do usuário (identificando requisitos) quanto para identificar dificuldades no uso do sistema (avaliando a interface). - **Para Múltiplos Propósitos**: - Exemplo: Técnicas podem ser utilizadas para identificar requisitos e também para gerar alternativas de projeto (design). ## Coleta de Dados: Métodos e Considerações ### Técnicas Principais - **Entrevista**: - **Vantagens**: Permite criar novas perguntas com base nas respostas; profundidade nas respostas. - **Desvantagens**: Consome tempo e recursos significativos. - **Questionários**: - **Vantagens**: Podem ser distribuídos a um grande número de pessoas; eficientes em termos de custo. - **Desvantagens**: Risco de baixa taxa de resposta; respostas podem ser superficiais. - **Observação**: - **Vantagens**: Permite a visualização do trabalho real e das interações naturais. - **Desvantagens**: Demanda tempo e recursos; pode gerar uma grande quantidade de dados a serem analisados. - **Grupos de Foco**: - **Vantagens**: Facilita a identificação de consenso ou conflito; insights valiosos através da discussão. - **Desvantagens**: Personalidades dominantes podem influenciar a dinâmica do grupo. ### Outras Técnicas - **Pontos de Vista**: Captura diferentes perspectivas sobre o mesmo assunto. - **Diário**: Usuários documentam suas experiências e interações. - **LEAD Users**: Foco em usuários que estão na vanguarda das tendências ou problemas. - **Usuários Extremos**: Considera aqueles com necessidades ou comportamentos fora da norma. - **Personas**: Representações fictícias dos usuários ideais baseadas em dados coletados. - **Estudo de Documentação**: Análise de materiais existentes para entender contextos e necessidades. - **Brainstorming**: Geração de ideias em grupo para identificar requisitos e soluções potenciais. ### Considerações Finais na Coleta - **Aplicabilidade**: As técnicas podem ser utilizadas em diferentes fases do desenvolvimento, desde a compreensão inicial das necessidades dos usuários até a avaliação de interfaces já implementadas. - **Propósito Múltiplo**: Além de identificar requisitos, podem servir para gerar alternativas de design e entender melhor o contexto de uso. ### Usuário vs. Cliente - **Tipos de Usuário (Eason, 1987 apud Pierce et al., 2005)**: - **Usuário Primário**: Frequentes do sistema. - **Usuário Secundário**: Ocasionais. - **Usuário Terciário**: Indiretos, afetados pelo uso do sistema. - **Stakeholder**: Qualquer indivíduo relacionado ao desenvolvimento, incluindo gestores e desenvolvedores. ### Representação de Usuários - **Personas**: Criadas para representar os diferentes tipos de usuário em relação aos seus papéis e perfis, incluindo dados demográficos e comportamentais. - **Storyboards**: Narrativas visuais que detalham cenários específicos de uso, incluindo contexto e interações. - **Diários**: Artefatos gerados pelos usuários, documentando experiências relevantes. ### Análise de Tarefas - **Descrição de Cenários**: Narrativas informais que descrevem tarefas a serem executadas. - **Casos de Uso**: Focam nas funcionalidades desejadas e na interação usuário-sistema. - **Análise de Tarefa**: Divide tarefas em sub tarefas para entender melhor o objetivo do usuário. - **Modelo MAD (Método Analítico de Descrição de Tarefas)**: Utiliza construtores como SEQ (sequencial), PAR (paralelo), SIM (simultâneo), ALT (alternativo), LOOP (iterativo), OP (opcional) para descrever tarefas. ## O que é um Protótipo? Protótipos são versões preliminares de um produto que permitem explorar e testar ideias antes da implementação final. Eles oferecem uma maneira de visualizar e interagir com conceitos, permitindo ajustes e melhorias com base no feedback dos usuários. Protótipos podem variar amplamente em termos de fidelidade e complexidade, desde esboços simples até versões quase finais do produto. ### Tipos de Prototipagem - **Baixa Fidelidade**: Geralmente, são criados rapidamente e com custos reduzidos, utilizando materiais simples como papel e caneta, para esboçar ideias e estruturas de navegação (wireframes). - **Média Fidelidade**: Combinam elementos de baixa e alta fidelidade, focando em representar a interface de forma mais detalhada, mas ainda de maneira rápida e econômica, frequentemente usando ferramentas de design específicas. - **Alta Fidelidade**: Refletem de perto a aparência e funcionalidade do produto final, desenvolvidos com ferramentas avançadas e linguagens de programação, visando uma experiência de usuário mais realista. ### Objetivos da Prototipagem - Explorar e validar ideias de design e funcionalidades. - Proporcionar uma base para discussões entre designers, desenvolvedores e stakeholders. - Identificar problemas de usabilidade e requisitos não atendidos. - Testar hipóteses específicas sobre o comportamento dos usuários. ### Simulação como Técnica de Prototipagem - **Mágico de Oz**: Simula a funcionalidade do sistema com intervenção humana oculta, permitindo testar a interface sem implementar a lógica de programação completa. - **Prototipagem em Vídeo**: Apresenta cenários de uso através de vídeos, demonstrando as funcionalidades e interações pretendidas. ### Criando e Escolhendo Alternativas É recomendável desenvolver múltiplas alternativas de design para avaliar qual delas melhor atende aos requisitos do projeto. A prototipagem permite explorar diversas soluções e escolher a mais adequada através do feedback dos usuários e da análise crítica do design. ### Abordagens de Prototipagem - **Evolutiva (ou Exploratória)**: O protótipo é continuamente refinado e evolui para a versão final do produto. - **Descartável (ou Throwaway)**: Protótipos criados para explorar ideias que não são necessariamente incorporadas ao produto final. ### Estratégias para Desenvolvimento de Protótipos - Decidir entre desenvolver um único protótipo ou múltiplos simultaneamente. - Escolher se o desenvolvimento será feito de forma sequencial ou paralela. - Determinar se os protótipos serão compartilhados com todos os envolvidos ou apenas com um grupo seleto. # Projeto de Interação com o Usuário: Avaliação de Interação ## Introdução A avaliação é uma das atividades fundamentais no processo de design, prototipagem, e avaliação de produtos interativos. No entanto, é frequentemente percebida como uma atividade que enfrenta resistência, devido a percepções de que pode ser "muito demorada" ou "extremamente cara". Enquanto as atividades de Verificação e Validação (VV&T) na Engenharia de Software focam mais na qualidade interna do software e na verificação da presença/ausência dos requisitos, a avaliação da interação busca tornar-se tão acessível e rápida quanto necessário através de diferentes técnicas propostas. (ctrl c ctrl v do slide) ## O que avaliar? Todo produto interativo possui uma ampla lista de características que podem ser avaliadas. A escolha das características a serem observadas varia de acordo com o produto: - Um **site web** pode ser avaliado em relação à sua **navegabilidade** (se os links conduzem às páginas corretas). - Um **telefone celular** pode ser avaliado quanto à sua **resistência** (se continua funcionando após cair de uma mesa). É essencial estabelecer, antes de iniciar qualquer produto, quais características serão observadas. ## Slogans de Nielsen "Sua melhor tentativa não é boa o bastante" – Nielsen (1993) apud Rocha e Baranauskas (2003). Esta frase ressalta que mesmo as melhores ideias de design podem enfrentar dificuldades na interação com o usuário. ## Por que avaliar? A avaliação é crucial para verificar se os usuários são capazes de utilizar o produto conforme projetado. Ela permite, entre outras coisas: - Corrigir problemas antes do lançamento do produto. - Encontrar dificuldades reais, não apenas as imaginadas pela equipe de desenvolvimento. ## Quando avaliar? A avaliação pode ocorrer em diferentes momentos do desenvolvimento, não se limitando apenas a quando se tem uma versão executável do produto. Técnicas de prototipagem de baixa fidelidade, por exemplo, podem ser utilizadas para atividades de avaliação desde as etapas iniciais do desenvolvimento. Existem basicamente duas opções de ambiente para avaliação: - **Em laboratório**: O avaliador pode controlar o experimento. - **Em campo** (no ambiente em que o sistema será utilizado): Os usuários estão mais à vontade por estarem em um local conhecido. A técnica de "think aloud" (pense alto) é um exemplo de método de avaliação. ## Como avaliar? Diferentes paradigmas de avaliação podem ser empregados: - Avaliação rápida e suja - Teste de usabilidade - Estudos de campo - Avaliação preditiva (Inspeção) Cada paradigma possui um conjunto de técnicas associadas. ### Avaliação rápida e suja Esta deve ser realizada de forma rápida, com o objetivo de verificar se as ideias de design estão alinhadas com as necessidades do usuário, através da obtenção de feedback informal. Pode envolver tanto usuários quanto especialistas e, geralmente, não é documentada devido à sua natureza rápida. ### Teste de Usabilidade - Normalmente realizada em laboratório. - Consiste na avaliação do desempenho de usuários típicos. - Tarefas são escolhidas e preparadas para a realização do teste. - São observadas métricas como número de erros, tempo decorrido na realização de uma tarefa, entre outros. - Dados coletados podem incluir logs, vídeos e anotações. - É importante lembrar que a avaliação é do produto, não do usuário. ### Estudos de Campo - Realizados com usuários no ambiente real onde o sistema será utilizado. - Similar ao teste de usabilidade, porém o avaliador não possui controle sobre o experimento. - Necessário especificar quais elementos serão o foco da avaliação devido à grande quantidade de itens a serem observados. ### Avaliação Preditiva (Inspeção) - Normalmente realizada por especialistas. - Tenta prever dificuldades de interação. - Baseia-se no conhecimento dos usuários típicos e pode adotar recomendações/regras que devem ser observadas. - Torna a avaliação mais rápida e barata. ### Observando os Usuários - Observação direta nem sempre é possível devido a limitações como tempo e disponibilidade. - Técnicas de observação indireta podem ser utilizadas, como diários e logs. - A avaliação dos usuários é extremamente valiosa; não desperdice a oportunidade de avaliar com 'pequenas coisas'. - Sempre realize avaliações com usuários antes de entregas. #### Para Qualquer Sessão de Avaliação - Deixe claro que o sistema está sendo avaliado, não o usuário. - Explique as tarefas que são os objetivos e deixe-os tentar realizá-las sozinhos. - Direcione, mas não faça as ações pelo usuário. - Questione o usuário sobre as ações que está realizando (incentive o "think aloud"). - Explique que é possível parar o teste a qualquer momento. #### Dados e Fontes - Dados incluem tempo para efetuar ações, expressões faciais, cliques do mouse, gestos, direção do olhar, entre outros. - Fontes para captura desses dados incluem câmeras e software de captura. ### Inspeções - Usuários não estão sempre acessíveis e realizar testes de usabilidade pode ser muito caro e/ou demorado. - Combinações de avaliações envolvendo usuários e especialistas podem melhorar a qualidade do feedback. - Inspeções envolvem o uso da interface por especialistas com a finalidade de antecipar problemas de interação. #### Alguns Tipos de Inspeções São - Avaliação heurística. - Percursos (Walkthroughs). - Revisão de Guidelines/Checklists. #### Avaliação Heurística - Técnica criada por Nielsen em 1994 para minimizar tempo e custo da avaliação. - Especialistas são orientados por heurísticas e examinam a interface em busca de problemas de usabilidade. - Deve ser realizada por um conjunto de especialistas (entre 3 e 5 é sugerido). - Pode ser realizada sobre qualquer protótipo executável (baixa-média-alta fidelidade). - Processo inclui reunião inicial, sessões de avaliação e reunião de resultados. #### Percursos - São alternativas para a avaliação heurística. - Consistem em inspecionar a interface e a cada passo de uma tarefa verificar se existem problemas de usabilidade. - Dois tipos: Percurso cognitivo (especialistas inspecionam a interface) e Percurso pluralístico (especialistas, usuários e desenvolvedores realizam a inspeção). - O foco do percurso cognitivo é facilitar o aprendizado, documentando o que funciona e o que não funciona durante a 'caminhada'. ## Teste de Usabilidade - Um método de avaliação empírico que envolve usuários reais. - Executado em laboratório para maior controle do ambiente. - Objetiva permitir a apreciação de fatores de usabilidade, coletando dados para identificar possíveis problemas de interação. ### Metas de Usabilidade - Ser eficaz no uso (Eficácia). - Ser eficiente no uso (Eficiência). - Ser seguro no uso (Segurança). - Ser de boa utilidade (Utilidade). - Ser fácil de aprender (Learnability). - Ser fácil de lembrar como se usa (Memorability). ### Quantificação do Desempenho do Usuário - Não é o usuário que está sendo avaliado, mas o sistema (interface, interação). - Definição de métricas verificáveis, como tempo para realizar uma tarefa, quantidade de erros cometidos, porcentagem de usuários a conseguirem se recuperar de um erro, etc. - Estabelecimento de limites máximos e mínimos aceitáveis para cada métrica. ### Métricas Subjetivas - Satisfação do usuário. - Frustração do usuário. - Preferência do usuário (vs. outras aplicações). - Coletadas através de questionário ou entrevista. ### Avaliação dos Dados - Verificação se as metas foram atingidas. - Classificação dos problemas encontrados de acordo com sua gravidade, seguindo a classificação de Nielsen (1998): Problema catastrófico, Problema sério, Problema cosmético. ### Preparação para o Teste de Usabilidade - Determinação do objetivo da avaliação. - Seleção de tarefas e usuários participantes. - Geração do material para o teste. - Execução do teste piloto. ### Execução dos Testes - Deixar o usuário à vontade. - Consentimento do usuário. - Aplicação do teste. - Análise dos dados. #### Preparação - Detalhamento - **Determinação do Objetivo da Avaliação**: Definição dos critérios relevantes ou prioritários e os pontos críticos que serão avaliados. - **Seleção de Tarefas**: Definição de quais tarefas serão executadas no teste, considerando tarefas importantes e de uso frequente. - **Seleção de Usuários Participantes**: O perfil dos usuários deve representar os usuários típicos do sistema. - **Geração do Material para o Teste**: Inclui questionário para seleção de participantes, scripts de apresentação, formulários de consentimento, descrição das tarefas, roteiros de entrevista ou questionários pós-teste. - **Execução do Teste Piloto**: Verificação da qualidade do material gerado, entendimento por parte dos participantes, adequação do tempo de execução e viabilidade do teste. #### Execução dos Testes - Processo - **Deixando o Usuário à Vontade**: Superar o nervosismo do usuário em um ambiente desconhecido. - **Consentimento do Usuário**: Garantir a proteção aos usuários e o atendimento a exigências éticas. - **Aplicação do Teste**: Inclui leitura dos scripts de apresentação, apresentação das tarefas solicitadas e incentivo ao "think aloud". - **Análise dos Dados**: Seleção dos dados relevantes de várias fontes, definição e aplicação dos métodos de análise, e geração de um relatório descrevendo o teste e os problemas encontrados. ### Avaliação Heurística Criada por Jacob Nielsen em 1994, visa minimizar tempo e custo de avaliação, identificando problemas de interação de forma preditiva. Após análise de 249 problemas de usabilidade, foram estabelecidas 10 heurísticas: 1. **Visibilidade do status do sistema**: Mantenha o usuário informado sobre o que está acontecendo. 2. **Compatibilidade do sistema com o mundo real**: O sistema deve falar a língua do usuário, usando conceitos familiares. 3. **Controle do usuário e liberdade**: Ofereça opções de desfazer e refazer. 4. **Consistência e padrões**: Não faça os usuários adivinharem a consistência no sistema. 5. **Ajudar os usuários a reconhecer, diagnosticar e corrigir erros**: Use mensagens de erro claras e instrutivas. 6. **Prevenção de erros**: Projete o sistema para evitar erros antes que aconteçam. 7. **Reconhecer, em vez de relembrar**: Minimize a carga da memória do usuário tornando objetos, ações e opções visíveis. 8. **Flexibilidade e eficiência no uso**: Acomode usuários novatos e experientes com aceleradores e personalizações. 9. **Estética e design minimalista**: Remova informações irrelevantes ou raramente necessárias. 10. **Ajuda e documentação**: Forneça ajuda facilmente acessível e focada na tarefa.