INF 043 Comunicacão Homem-Computador Parte 6 Prof. Roberto Cabral de Mello Borges Instituto de Informática UFRGS 2008 1 Ergonomia de Software a) Definição – ciência que estuda conforto, utilização, organização e documentação do software. – objetiva facilitar e otimizar o trabalho do usuário junto ao computador. – propõe padrões de: » » » » » » » » apresentação de telas diálogos ferramentas de trabalho cardápios (menus) documentação técnicas de arquivos técnicas de otimização auxílio (help) 2 Vantagens/Desvantagens • b) Vantagens: – atração homem-máquina – programas mais bem documentados – redução dos custos de manutenção – software mais eficiente – software com funções mais poderosas – facilidade de aprendizado – redução de perturbações psicológicas do usuário em relação ao computador. • c) Desvantagens: – esforço adicional no desenvolvimento de software. – técnica bastante desconhecida dos "micreiros". – técnica relativamente nova, ainda em fase de maturação. Mas já há muitos antecedentes que comprovam sua eficácia. 3 Princípios Básicos 1 - Esforço Mínimo do Usuário 2 - Memória Mínima do Usuário 3 - Frustração Mínima 4 - Maximizar o uso de Padrões e Hábitos 5 - Máxima Tolerância para Diferencas Humanas 6 - Máxima Tolerância para Mudanças Ambientais 7 - Notificação Imediata de Problemas 8 - Controle Máximo de tarefas pelo usuário 9 - Apoio Máximo às Tarefas 4 1 - Esforço Mínimo do Usuário • usuário deve desempenhar somente as funções absolutamente essenciais, e que não possam ser desempenhadas pelo sistema. – tomadas de decisões – digitação de valores escolhidos (num saque de banco, p. ex.) – escolha de opções desejadas • transferir para o software uma função mesmo que ela possa ser desempenhada pelo usuário. – calcular um sub-total ou total de parcelas já informadas • não repetir trabalho já feito: – um dado só deve ser alimentado uma vez; programa deve ser re-utilizável, assim como rotinas, consultas , comandos, etc. – Trabalho não produtivo deve ser eliminado - Ex.: A data deve ser fornecida pelo sistema; "Recovery" deve ser automático. – questão para discussão: redigitação sucessiva da senha em terminais bancários ou na Internet; controle de tempo pode servir para timeout e para evitar redigitação da senha. 5 Ex. de pagamento de Doc bancário • DOC: – Valor do DOC: R$100,00 – à vista 15% de desconto – Valor à vista: R$85,00 Banco XXXX Valor do DOC Desconto Multa Juros Total R$100,00 R$15,00 Este valore deverá ser calculado pelo usuário R$85,00 6 1 - Esforço Mínimo do Usuário • facilitar acesso a informações sobre o sistema: – documentação (ou "help") escrita completa, mas apenas a suficiente e necessária para a tarefa do usuário. – instruções do sistema devem ser diretas e específicas, que não requeiram interpretação (somar números, decifrar código, etc.) Exemplo: Calculadora do programa do Imposto de Renda: calcula e transfere resultados para os campos 7 1 - Esforço Mínimo do Usuário • eliminar trabalho duplicado: –Todo trabalho deve poder ser feito pelo uso do sistema, sem estágios burocráticos intermediários. –Não redigitar dados já digitados anteriormente. –Evitar a repetição de ciclos para operações semelhantes. » Exemplo: No banrisul cada operação que se faz no caixa eletrônico exige o inicio de uma nova sessão (redigitar conta, senha, etc) 8 2 - Memória Mínima do Usuário • O usuário deve ter que memorizar o mínimo possível. • o aprendizado do sistema deve ser um processo hierárquico e incremental. • o usuário só deve ter que aprender o essencial para sua tarefa. • aprender uma pequena parte do sistema, deve recompensar o usuário com a capacidade de fazer algum trabalho real, ainda que limitado. • o usuário não deve ter que aprender a terminologia não relacionada à tarefa - instruções ou comunicações do sistema devem ser feitas na linguagem natural da tarefa. • a terminologia deve ser consistente por todo software com que o usuário vai interagir. • os comandos do usuário devem ter sintaxe natural e simples, e não devem ser complexos e compostos. 9 2 - Memória Mínima do Usuário 10 3 - Frustração Mínima • evitar demora na execução de tarefas. • ao usar menus ou técnicas equivalentes, o sistema deve permitir que o usuário experiente vá direto à tarefa desejada. • a organização hieráquica de menus ou técnicas equivalentes deve ser tal que o usuário não tenha que executar ou explicitamente saltar tarefas desnecessárias. • orientação ou help deve estar disponível de forma consistente em todo o sistema. 11 3 - Frustração Mínima • relembrar ações passadas: – em caso de interrupção de uma série de passos interrelacionados. o sistema deve prover (se solicitado) um resumo das ações executadas antes da interrupção. • escolha de atividade: – o usuário deve poder interromper ou terminar qualquer atividade a qualquer momento e selecionar outra. Após terminar a 2ª atividade, o sistema deve permitir a retomada da atividade interrompida no ponto de interrupção, numa ação simples e intuitiva. • auto-configuração e auto-verificação: – a instalação de hardware ou software básico deve ser suportada por técnicas de auto-configuração e autoverificação. – deve ser fornecida orientação para qualquer ação cujos resutados não sejam óbvios. 12 4 - Maximizar o Uso de Padrões e Hábitos • usar sempre certas teclas para as mesmas funções. • colocar sempre informações similares nas mesmas posições nas telas. • desenho consistente de formato de telas. • informação devolvida ao usuário como resultado de uma ação sua, deve ser posicionada no ponto onde o usuário a espera: em geral na próxima linha. • abordagem e terminologia consistentes para todas as funções do usuário. • "datilografar" uma carta num processador de textos deve ser o mais próximo possível da mesma atividade na máquina de escrever. Isto implica em um mínimo de re-treinamento. 13 5 - Máxima Tolerância para Diferenças Humanas • os sistemas devem armazenar perfis sobre a forma em que cada usuário prefere executar as tarefas. • estes perfis devem condicionar o sistema aos padrões de trabalho do usuário quando este começa uma sessão. 14 5 - Máxima Tolerância para Diferenças Humanas 15 5 - Máxima Tolerância para Diferenças Humanas • uso de métodos visuais e audíveis para chamar a atenção. 16 5 - Máxima Tolerância para Diferenças Humanas • uso de formas gráficas ou de desenho para auxiliar a comunicação visual. – aceitar abordagens "procedurais" e "não procedurais" em técnicas de orientação e em tarefas complexas como o desenvolvimento de consultas. 17 6 - Máxima Tolerância para Mudanças Ambientais • o sistema deve suportar mudanças do ambiente de hardware/software com um mínimo de esforço do usuário. – a mudança de ambiente também pode ser a mudança de plataforma ou ambiente operacional. – considerar como plataformas: » Windows » Macintosh » Linux/Unix – ambientes operacionais: » Windows 98 / NT / XP … » Mac OS 9 / X » família Linux / família Unix 18 6 - Máxima Tolerância para Mudanças Ambientais • o sistema deve se re-configurar automaticamente no caso de adição ou retirada de unidades do computador (exceto no caso de dispositivos de hardware críticos, como a UCP ou a unidade de disco onde o software reside). – no caso de adição dispor pelo menos de um assistente de configuração do novo hardware. • programas de aplicação não devem precisar recompilação para mudanças na base de dados, seja de conteúdo, método de acesso ou localização do arquivo, que não mudem a lógica de processamento para o programa de aplicação em questão. 19 6 - Máxima Tolerância para Mudanças Ambientais • programas de aplicação devem ser compatíveis e transportáveis entre diferentes modelos de computadores. – aplicações para Internet: a difícil compatibilidade entre plataformas, ambientes, browsers e versões. • cuidado com o uso de exclusividades de certo modelo/marca de computador, pois causará problemas quando da transportabilidade. – antes de usar um recurso novo verificar sua compatibilidade. • alocação de espaço deve ser automática, não requerendo intervenção ou ação do usuário – a existência de defaults selecionados pelo usuário facilita esta alocação automática. 20 7 - Notificação Imediata de Problemas • notificar ao usuário sobre um problema tão logo seja detectado. • notificar problemas potenciais antes que ocorram. • antes da mudança permanente em informação armazenada, o sistema deve mostrar os resultados da mudança e requerer aprovação do usuário. – cuidado com a "síndrome de Windows" 21 7 - Notificação Imediata de Problemas • sintaxe e terminologia de comandos, devem ser editados interativamente com resposta imediata indicando qual o erro e qual a ação corretiva. • o usuário deve ser notificado quando um percentual substancial de utilização do espaço for atingido (ex: 80%) para que o usuário possa tomar ações preventivas com antecedência. • a edição da entrada deve ser interativa, indicando os erros e provendo orientação e meios para correção imediata. Terminada a correção, o sistema deve voltar ao ponto que interrompeu. 22 8 - Controle máximo de tarefas pelo usuário • usuário deve controlar e gerenciar a sequência do trabalho sempre que não hajam atividades que exijam uma sequência. • usuário deve poder modificar as prioridades de processamento. • usuário deve poder definir opções "default"e o sistema deve "lembrar" estas definições no futuro. • usuário deve poder armazenar e recuperar informações de forma consistente, sendo-lhe transparente os problemas de localização e armazenamento físicos. 23 9 - Apoio máximo às tarefas • o usuário não deve precisar de outros recursos para desempenhar a tarefa. • documentação da tarefa deve estar "on line" , estruturada hierarquicamente e bem indexada. • um usuário deve poder se comunicar com outros via facilidades do sistema. • o usuário deve possuir acesso a métodos "customizados" de obtenção de informações, tais como filtros para geração de relatórios. 24 21 novos Princípios da ANEC (Association européenne pour la coordination de la représentation des consommateurs dans la normalisation) 1 - Facilidade de uso 2 - Projeto para todos 3 - Funcionalidade da solução 4 - Aspectos multi-cultural e multi-lingüista 5 - Terminologia 6 - Padrões compreensíveis 7 - Interoperabilidade e Compatibilidade 8 - Interface de usuário consistente 9 - Adaptabilidade 10 - Provisão para informações de status do sistema 11 - Tolerância a erros e estabilidade do sistema 25 21 novos Princípios da ANEC (Association européenne pour la coordination de la représentation des consommateurs dans la normalisation) 12 - Minimização das necessidades do usuário relembrar operações 13 - Explorabilidade 14 - Privacidade e segurança das informações 15 - Transparência de custos 16 - Qualidade do serviço, confiabilidade e durabilidade do sistema 17 - Questões de saúde e segurança 18 - Importância da informação 19 - Questões ambientais 20 -Utilização de Sistemas de avaliação e de classificação 21 - Trabalhos posteriores 26 1 - Facilidade de uso • Sistemas ergonômicos devem ser fáceis de usar, independentemente do tipo de usuário que fará uso do mesmo. • Facilidade de uso inclui aspectos de hardware, software, serviços e suporte. • A facilidade de uso pode ser medida em termos de desempenho do usuário para completar uma tarefa (inclui tempo, número de erros, satisfação) • Deve-se estabelecer metas de facilidade de uso a serem alcançadas. 27 2 - Projeto para todos • Consiste no processo de criação de produtos, sistemas e serviços que são acessíveis e usáveis por pessoas com a mais ampla faixa possível de habilidades operacionais, na mais ampla faixa possível de situações. • Pode haver situações em que o sistema não é desejado que seja para uso de todos. Seu uso dependeria de seleção de grupo especial de usuário e de treinamento específico. Nesse caso deve ser conhecido para quem o sistema é indicado e para quem não é indicado. 28 3 - Funcionalidade da solução • A solução adotada para determinado problema deve ser funcional. • Geralmente casos de não-funcionalidade são aqueles em que o desenvolvedor não conhece exatamente as necessidades dos usuários para o qual desenvolve o sistema. Até mesmo porque nunca se deparou com aquela situação em sua vida, se pondo como usuário. 29 4 - Aspectos multicultural e multilingüístico • Os sistemas hoje saem da fronteira de nossas redes internas (principalmente na Internet), e assim percorre várias culturas diferentes, mesmo dentro de um mesmo país. – Ex. Um site de seguro descreve os passos para acionar o conserto do carro: » "…com a liberação na mão o cliente pode procurar o lanterneiro de sua preferência… (São Paulo) » "…com a liberação na mão o cliente pode procurar o funileiro de sua preferência… (Rio de Janeiro) » "…com a liberação na mão o cliente pode procurar o chapeador de sua preferência… (Rio Grande do Sul) 30 4 - Aspectos multicultural e multilingüístico • Alguns sistemas precisam ser multilingüísticos, ou seja, devem poder ser operados em várias línguas. É o caso de sites de turismo, hotéis e similares. 31 5 - Terminologia • A terminologia usada nas interfaces deve ser consistente, e compatível com a terminologia usada em documentos escritos, em uso fora do computador. • Deve ser clara e de fácil domínio por qualquer usuário. 32 6 - Padrões compreensíveis • Padrões devem ser "não ambíguos" e fáceis de entender, de forma que qualquer pessoa não técnica em informática possa entender. • O não atendimento deste princípio dificulta a padronização de processos e procedimentos. Símbolo padrão para erros Símbolo padrão para Atenção 33 6 - Padrões compreensíveis transferência de tarefas Tarefas Disponibilidades 34 7 - Interoperabilidade e compatibilidade • Diferentes serviços devem operar entre si, nas mesmas redes e equipamentos. • Para tanto é preciso que haja compatibilidade nas aplicações. • Compatibilidade dentro de um sistema deveria assegurar que novas versões do sistema, devem ser compatíveis com as versões anteriores. 35 8 - Interface de usuário consistente • Os sistemas devem ter uma interface de usuário consistente. • É especialmente importante que o método de processamento, armazenamento e acesso aos sistemas seja consistente para o usuário. 36 9 - Adaptabilidade • O sistema deve se adaptar às necessidades específicas de cada usuário. • Isso implica em necessidades essenciais (deficiências) e necessidades preferenciais do usuário. • A forma e a seleção de saídas pode ser um exemplo de necessidades especiais e preferenciais. 37 10 - Provisão de informações sobre status do sistema • O status do sistema deve estar disponível para o usuário. • Diferentes mecanismos podem ser empregados para dar um completo feedback ao usuário. • Técnicas de áudio e visuais podem contribuir para melhor comunicação de erros e de entrada de dados. 38 11 - Tolerância a erros e estabilidade do sistema • O sistema deveria antecipar erros de operação e se possível corrigí-los. • O sistema deve ser robusto e permanecer estável, se o usuário comete erros operacionais e de entrada de dados, informando a existência do erro e como corrigí-lo. 39 11 - Tolerância a erros e estabilidade do sistema 40 12 - Minimização da necessidade de memorização da operação do sistema • Sistemas devem mostrar elementos do diálogo ao usuário e permitir que se selecione itens gerados pelo sistema e permitir que se os edite. • Técnica de Menus, é o exemplo de aplicação deste objetivo 41 13 -Explorabilidade • O sistema deve permitir que o usuário o explore, até mesmo sem realizar operações completas, fazendo apenas uma navegação. • Se o usuário sabe que há caminhos de retorno e se há possibilidade de "Undo" para desfazer alguma "mancada" ele se encorajará a explorar o software. 42 14 - Privacidade e Segurança de informações • O sistema deve garantir a privacidade do indivíduo. • Não deve ser permitido que pessoas não autorizadas acessem certos dados individuais nas redes. • O nível de segurança adotado deve ser comunicado ao usuário. 43 15 - Transparência nos custos • O sistema deve ser transparentes quanto aos custos envolvidos. • Por exemplo, ao se selecionar serviços e produtos que envolvam custos, mostrá-los antes da efetivação do serviço. 44 16 - Qualidade do serviço, confiabilidade e durabilidade • A qualidade é hoje ponto importantíssimo na prestação de um serviço. E nos serviços prestados pelo computador, especialmente na Internet é ponto importante. • A confiabilidade contribui para a qualidade e para obter a adesão do usuário ao sistema. • A durabilidade inclui a manutenção de serviços e sistemas ainda que com a implantação de novos sistemas. 45 17 - Confiabilidade da informação • As informações prestadas devem conter a fonte, para que a confiabilidade dos dados seja mantida. • Informações corretas (sem erros) também aumenta a confiabilidade. 46 18 - Questões de saúde e segurança • Os sistemas devem considerar a aplicação das regras de ergonomia e segurança física do usuário. • Exemplo: Quase todos os terminais bancários (brasileiros) serão reprovados se submetidos a exames de regras de ergonomia (tanto de hardware como de software). 47 19 - Questões ambientais • Muito se discute sobre a questão ambiental e os sistemas computadorizados também devem entrar nesta discussão. • Por exemplo, determinado banco suspendeu a emissão de comprovante de saque, porque constatou que 90% dos clientes, jogava fora o comprovante, e muitos o faziam no chão do caixa eletrônico ou mesmo na rua, na saída. 48 20 - Permitir sistemas de avaliação e de classificação • A avaliação constante do sistema faz parte das regras para garantir que os princípios têm sido aplicados. • Nas técnicas de Usabilidade tem-se diversos critérios e formas de avaliar um sistema. • Estudos sobre classificação dos sistemas ("Taxionomia") começam a ser desenvolvidos e implementados. 49 21 - Trabalhos posteriores • Após a conclusão do sistema, há de se fazer avaliações e simulações de processos, para se medir a eficiência, eficácia e satisfação do usuário Eficiência significa fazer certo. Eficácia é fazer da maneira certa, ou da melhor maneira possível. E nisto consiste uma grande diferença. Isto porque podemos alcançar uma meta, porém despendendo um esforço e recursos maiores do que necessário. 50