Engenharia de Software
Prof. Wilkerson de L. Andrade
Versão resumida e traduzida dos slides originais produzidos por Ian Sommerville, Software Engineering, 7th edition. Chapter 16.
Estes slides foram adaptados dos slides gentilmente cedidos pela professora Patrícia D. L. Machado (DSC/UFCG).
A Interface com o Usuário (UI)
• Deve ser projetada de acordo com as
habilidades, experiência e expectativas dos potenciais usuários.
• Usuários usualmente julgam um sistema por sua interface ao invés de sua funcionalidade.
• Uma interface mal projetada pode levar o usuário a cometer erros catastróficos.
• Um projeto de interface com baixa qualidade é uma das razões pelas quais muitos sistemas de software não chegam a ser usados.
Fatores Humanos no Projeto de
Interfaces
• Memória de curto-prazo limitada – Pessoas podem
lembrar instantaneamente de mais ou menos 7 itens de informação. Se mais do que isto for apresentado, é
provável que o usuário cometerá erros.
• Pessoas cometem erros – Quando pessoas cometem erros e os sistemas respondem de forma errônea,
mensagens e alarmes podem levá-las a cometer mais erros.
• Pessoas são diferentes – Pessoas possuem um grande número de habilidades físicas. Projetistas não devem considerar apenas suas próprias habilidades.
• Pessoas possuem diferentes preferências de interação – Algumas gostam de imagem; outras preferem texto.
Princípios no Projeto de UI
• Projeto de UI deve levar em consideração
necessidades, experiência e habilidades dos usuários.
• Projetistas devem estar cientes de limitações
físicas dos usuários potenciais e devem identificar que pessoas podem cometer erros.
• Princípios de projeto de UI são a base do
projeto de interfaces, mas nem todos os
Princípios
• Familiaridade do Usuário – A interface deve ser
baseada em conceitos do usuário ao invés de
conceitos do computador. Por exemplo, um sistema de escritório deve usar conceitos tais como letras, documentos, pastas, etc., ao invés de diretórios, identificadores de arquivo, etc.
• Consistência – O sistema deve exibir um nível
apropriado de consistência. Comandos e menus devem ter um mesmo formato, pontuação de
comandos deve ser similar, etc.
• Minimização de Surpresas – Se um comando opera
de uma forma, o usuário deve ser capaz de prever sua execução com base em comparação com outros comandos conhecidos.
Princípios
• Recuperabilidade - O sistema deve prover algum poder de recuperação para erros do usuário e tornar possível que o usuário se recupere destes erros. Isto pode incluir
facilidades como “undo”, confirmação de ações destrutivas, etc.
• Orientação do Usuário – Tais como sistemas de
ajuda, manuais on-line, etc.
• Diversidade de Usuários – Facilidades de
interação para os diferentes tipos de usuários devem ser providas. Por exemplo, alguns
usuários com dificuldades na visão preferem texto com letra grande.
Questões de Projeto de UI
• Dois problemas devem ser considerados no
projeto de sistemas interativos.
▫ Como informação do usuário deve ser provida ao sistema?
▫ Como informação do sistema deve ser apresentada ao usuário?
• Interação com usuário e apresentação de
informações devem ser integradas em um arcabouço coerente tal como a metáfora da interface.
Estilos de Interação
• Manipulação Direta • Seleção em Menu • Preenchimento de Formulário • Linguagem de Comandos • Linguagem NaturalEstilos de Interação
Estilos de Interação
Principais Vantagens Principais Desvantagens Exemplos de Aplicação Manipulação Direta Rápida e intuitiva interação Fácil aprendizagem
Pode ser de difícil implementação. Acoselhavel somente em situaçãoes de manipulação de tarefas e objetos.
Video games sistemas CAD
Seleção de Menu Inibe erros de usuários Pouca digitação é requerida
Torna-se lenta pra usuários experientes. Pode tornar-se complexa com menus com muitas opções.
A maioria dos sistemas de uso geral
Preenchhimento e formulários
Entrada simples de dados Fácil aprendizagem Checável
Faz uso de muito espaço em tela.
Causa os problemas quando as opções do usuário não combinam os campos do formulário. Controles de estoque, Processadores pessoais de empréstimo Linguagem de Comando
Poderosa e flexível Difícil aprendizagem. Gerência de erros pobre.
Sistemas operacionais, Sistemas de comando e de controle Linguagem Natural Acessível a usuários casuais Facilmente extensível
Requer mais digitação.
Sistemas de compreensão de linguagem natural são irreais.
Sistemas de recuperação de informações
Apresentação de Informações
• Informações podem ser apresentadas de
forma direta (EX. texto em um processador) ou podem ser transformadas (EX. Gráficos).
• A abordagem Model-View-Controller é uma
forma de permitir múltiplas apresentações de dados.
Apresentação de Informações
Informação a ser mostrada Apresentação do software DisplayApresentação de Informações
• Informações Estáticas
▫ Iniciadas no começo de uma sessão. Não mudam durante a sessão.
▫ Podem ser numéricas ou textuais.
• Informação Dinâmica
▫ Mudam durante uma sessão e as mudanças devem ser comunicadas ao usuário.
Apresentação de Informações:
Fatores
• O usuário está interessado em informações precisas ou relacionamento entre dados?
• Qual a freqüência de mudança de valores?
• Mudanças devem ser indicadas imediatamente?
• O usuário deve executar alguma ação em resposta a uma mudança?
• Existe uma interface de manipulação direta?
• A informação é textual ou numérica? Valores relativos são importantes?
Apresentação de Informações
0 1 000 2 000 3000 4000Jan Feb Mar April May June Jan 2 842 Feb 285 1 Mar 3 164 April 2 789 May 12 73 June 2 83 5
Visualização de Dados
• Técnicas para visualização de grandes massas de dados.
• Visualização pode revelar relacionamentos entre entidades e tendências nos dados
• Exemplos:
▫ Informações sobre o tempo coletadas de diferentes fontes;
▫ O estado de uma rede de telefones com um conjunto
de nós conectados;
▫ Um modelo de uma molécula em 3 dimensões;
Cores
• Cores adicionam uma dimensão extra para
uma interface e podem ajudar o usuário a entender a complexidade de estruturas de informação
• Cores podem ser usadas para destacar
eventos excepcionais
• Erros comuns no uso de cores no projeto de
interfaces incluem:
▫ Uso de cor para comunicar um significado;
Orientações para o Uso de Cores
• Limite o número de cores usadas e seja
conservativo/discreto em seu uso.
• Use mudança de cores para indicar uma
mudança de status no sistema.
• Use cores de forma planejada e consistente.
Mensagens de Erro
• Projeto de mensagens de erro também é
crítico.
• Mensagens devem ser educadas, concisas,
consistentes e construtivas.
• O background e a experiência de usuários
devem ser fatores determinantes no projeto de mensagens de erro.
Um Exemplo de Erro
• Nome do paciente não é digitado
corretamente.
Please type the patient’s name in the bo x then c lick on OK
MacDonald, R.
OK Cancel Patient’s name
Um Mal e um Bom Projeto de
Mensagem de Erro
Mensagem de erro orientada a sistemas
Mensagem de erro orientada a usuários
id de paciente inválido
R. MacDonald não é um paciente registrado Click em Pacientes pra ver a lista dos pacientes Click em Retornar para introduzir um outro nome Click em Ajuda para mais informações
Processo de Projeto (Design) de UI
• Processo interativo entre usuários e
projetistas.
• Atividades Centrais:
▫ Análise do Usuário.
Entender o que os usuários irão fazer com o sistema;
▫ Prototipação do Sistema.
Desenvolver um conjunto de protótipos para experimentação;
▫ Avaliação de Interface.
O Processo de Projeto
Analisar e compreender atividades de usuário Produzir protótipo de projeto baseado em papelAvaliar projeto com usuários finais
Implementação final da interface do
usuário Avaliar projeto com
os usuários finais Produzir protótipo de
Técnicas de Prototipação
• Dirigida a Script
▫ Desenvolver um conjunto de scripts e telas usando uma ferramenta tal com a Macromedia Director.
▫ Quando o usuário interage com as telas, o script é executado e a próxima tela é provida (sem a lógica da aplicação)
• Programação Visual
▫ Usando uma linguagem para desenvolvimento ágil.
• Prototipagem baseada na Internet
▫ Usando um navegador Web e um conjuntos de
Avaliação de Interface com o
Usuário
• Métodos devem ser aplicados para avaliar a
adequação de uma interface.
• Avaliação em larga escala é bastante cara e
impraticável para a maioria dos sistemas.
• Idealmente, uma interface deve ser avaliada
com relação a sua especificação de usabilidade. Porém, é raro ter tais especificações produzidas.
Atributos de Usabilidade
Atributo Descrição
Aprendizagem Quanto tempo um novo usuário vai levar para se tornar produtivo com o sistema?
Velocidade de Operação
Qual é o tempo de resposta do sistema com relação à prática de trabalho dos usuários?
Robustez Qual a tolerância do sistema a erros do usuário? Recuperabilidade Como o sistema se recupera de erros?
Adaptabilidade O quão um sistema está vinculado a um único modelo de trabalho?
Técnicas de Avaliação Simples
• Questionários para feedback de usuários.
• Gravação de vídeo do uso do sistema e
avaliação subseqüente do mesmo.
• Instrumentação do código para coletar
informações sobre facilidade de uso e erros do usuário.
• Provisão de código no software para coletar