Desenvolvimento Global de Software Mestrado de Informática / UFPB Francilene Procópio Garcia, D.Sc. [email protected] Interface do Usuário - Parte IV Introdução Quando se trata de processo para desenvolvimento global de software, um dos aspectos a ser detalhado com cuidado é o planejamento/execução da interface “A interface com o usuário deve prover informação a ser trocada entre o humano e o hardware ou componentes de software de um sistema computacional” [IEEE, Std 610.12-1990] Alguns aspectos devem ser detalhados acerca da interface, sobretudo quando se trata de projetos virtuais: Organização do contexto, dimensão visual, busca e seleção, ordenação, herança controlada pelo usuário, hierarquia da navegação, gestão de janelas, informação da sessão, help on-line, undo, macros 1. Organização do contexto Apresenta um overview da anatomia da interface baseada em janelas Uma interface baseada em janelas apresenta um conjunto finito de janelas, cada janela pode ser movida através do vídeo, fixada no topo de alguma outra ou ainda iconizada Em geral, um sistema possui uma janela central e algumas secundárias. A principal envolve as interações mais críticas com o cliente, com um número variável de objetos. As secundárias servem de apoio a janela principal, apresentando detalhes sobre os objetos e suas operações Janelas primárias A interação com o usuário é tipicamente a seleção de um ou mais objetos, por exemplo através de cliques ou opções dispostas num menu (cut, copy, paste, delete) Em geral, trazem um barra de menu, através da qual os usuários selecionam uma operação. As mesmas operações podem ser encontradas em menus pop-up Os usuários podem ainda redimensionar o tamanho da janela Janelas secundárias Suportam a janela primária provendo detalhes tais como propriedades dos objetos e de suas operações Os usuários devem poder alterar os atributos desses objetos É importante que testes extensivos de usabilidade sejam centrados nas janelas primárias 2. Dimensões visuais A chave para a usabilidade de janelas primárias é a correta aplicação das dimensões visuais no momento da visualização dos objetos e de seus atributos. Em projetos de software globais é importante dispor de mais atributos do que parece ser necessário: o usuário estará evitando abertura excessiva de janelas, uma vez que os atributos estarão disposto nas janelas primárias o usuário poderá ver diferentes aspectos (ou diferentes objetos) ao mesmo tempo - útil para fins de comparação e reconhecimento de padrões As dimensões chaves são: Posição, Tamanho, Forma, e Cor As dimensões são úteis para auxiliar na identificação única dos objetos e, em geral, estão associadas a uma outra dimensão TEMPO Dimensões chaves Posição: "What You See Is What You Get" (WYSIWYG), por exemplo, mostram os objetos na mesma posição da janela Algumas vezes é importante mostrar o tamanho real de objetos em editores WYSIWYG (CAD) Em alguns casos a posição de objetos associam algum conceito entre eles sobre seu uso (Planilhas, por exemplo) Tamanho: representam a mesma idéia da “posição”. Por exemplo, para um arquivo o tamanho do objeto poderia representar a capacidade de memória que ele ocupa no disco. Numa conta bancária, o tamanho poderia representar o saldo Na maioria dos casos, o uso de uma escala logarítmica é melhor do que uma escala proporcional (consume bastante área de vídeo) Dimensões chaves Formato: são representados por ícones numa interface gráfica. É muito usado para representar tipos por ser mais intuitivo numa operação de busca, por exemplo quais são os melhores critérios para situações envolvendo diferentes objetos que são de diferentes tipos? Em geral, classes distintas são vistas como de tipos diferentes. O importante é que o usuário possa reconhecer os tipos diferentes existentes os ícones também podem ser usados para representar diferentes estados de um mesmo objeto Cor: pode ser organizada em três componentes com base na percepção visual: coloração (azul, vermelho, etc), saturação e brilho a coloração pode indicar tipos de objetos diferentes a saturação pode indicar um atributo com faixas de valores o brilho pode também ser usado para atributos de menor importância com faixas de valores Identificação dos objetos O usuário deve ser capaz de identificar objetos de forma única. Algumas vezes as dimensões visuais apresentadas não são suficientes - apresenta-se um rótulo (nome) junto ao ícone para facilitar o ideal é que o nome possa ser gerado como um atributo do objeto deve ser posicionado abaixo ou à direita do ícone a fonte do nome pode ser usada para indicar um atributo de uso restrito (o usuário não pode/deve alterar) muitas variações pode trazer problemas de usabilidade 3. Busca e Seleção Existem duas condutas chaves para gerenciar buscas: todos os objetos que podem ser achados pela busca devem ser posicionados nas janelas primárias. Critérios adicionais de busca podem ser incluídos para executar operações sobre os objetos selecionados ( as vezes, envolvendo janelas secundárias). Vantagem: este método vincula todos os objetos numa dada operação de busca o botão de busca, na janela de busca, seleciona o objeto conforme o critério de busca e o conteúdo da janela primária onde o objeto é visível. Após a busca inicial o usuário pode continuar sua busca em objetos sequenciais a um dado critério de busca. Vantagem: cada objeto achado é visto no seu contexto - numa janela (e não numa lista) Em muitos casos, as duas condutas podem ser combinadas, por exemplo: incluíndo “Selecione Todos” na janela de busca sequencial 4. Ordenação A interface permite que os objetos sejam ordenados na vertical, em ordem alfabética por nome ou por qualquer um dos demais atributos de valores dos objetos A ordenação será mais eficaz quando o usuário domina os tipos de atributos que podem ser ordenados para um dado conjunto de atributos 5. Herança controlada pelo usuário Os editores WYSIWYG são um exemplo típico de herança controlada pelo usuário, onde o usuário define a que estilo o parágrafo pertence e, como este estilo será visualizado Uma desvantagem com relação ao método de busca é que a herança controlada suporta apenas a mudança de atributos para múltiplos objetos, mas não envolve a execução de operações A herança controlada também é mais trabalhosa, uma vez que o usuário deve explicitamente definir e manter os grupos de estilos disponíveis Para fazer uso de herança controlada, a natureza das classes de objetos deve poder ser categorizada 6. Hierarquia da navegação A hierarquia da navegação permite ao usuário categorizar os objetos numa janela primária, organizados hierarquicamente A hierarquia possibilita que o usuário possa navegar em apenas uma (ou em algumas) das categorias. Isto reduz o número de objetos que são mostrados num dado momento Um exemplo desta técnica é a navegação de arquivos através de diretórios ou folders 7. Gestão de janelas O tamanho e a posição das janelas são, em geral, controlados pelo usuário Quanto maior for uma janela primária mais objetos poderão ser visualizados, porém mais área no vídeo será consumida. Uma janela primária deveria ser mantida de forma a não fazer uso desnecessário de áreas do vídeo: ao abrir já devem vir com tamanho suficiente para visulaização dos objetos lembrar que o usuário poderá ter redimensionado a janela entre seções defina alguma posição default para visualização inicial das janelas para janelas secundárias, cuidar que elas não obstruam a janela primária que a chamou. No caso de caixas de diálogo, elas devem vir sobre a janela ativa 8. Informação da sessão Todas as configurações de uma aplicação devem ser salvas entre sessões (sem que o usuário tenha de especificar) O tamanho, a posição da janela, a visão selecionada, e as posições das barras de rolagem devem ser salvas. Quando o usuário reinicia uma aplicação, ele deverá encontrar exatamente o que via na sessão anterior Tal conduta evita que o usuário perca tempo para refazer o seu ambiente antes de iniciar o trabalho 9. Help on-line Um help on-line bem projetado poderá substituir manuais - um artefato que exige muito tempo para ser gerado Considere as seguintes ferramentas de ajuda: Help-on-subject - permite que o usuário busque por algum tema Help-on-object - é um help sensível ao contexto. Um texto é apresentado acerca de algum objeto específico Área de mensagem - uma área onde o sistema aponta comentários não solicitados sobre ações do usuário Wizards - muito usado quando o usuário solicita ajuda tipo “how to do something” A necessidade de help sensível ao contexto e wizards é definida durante as fases de teste de usabilidade Um problema - em geral, são escritos por pessoas inexperientes! 10. Undo Apesar de bastante útil, as vezes é difícil de implementar Os usuários se beneficiam ao aprenderem mais rápido, uma vez que não se intimidam de errarem Também reduz o risco da perda de informação 11. Macros Se o ambiente permite macros, deverá existir algum agente que monitore continuamente as ações do usuário, buscando por sequências de interações repetidas Tão logo uma sequência de interações repetidas é percebida, uma macro deve ser criada, após permissão do usuário