Upload
samuel-valgueiro-ferrao
View
221
Download
2
Embed Size (px)
Citation preview
MAPS - Engenharia de Software - IHC 1
Parte 1Visão Geral
Engenharia de Software
Processos de SoftwareGerenciamento
Projeto de Software
MAPS - Engenharia de Software - IHC 2
2 Processo de Software MAPS - Engenharia de Software
Definição: conjunto de atividades que levam a produção de um produto de software
EspecificaçãoLevantamento e análise de requisitos etc.
Projeto e implementaçãoModelo conceitual, prototipação, codificação etc.
ValidaçãoTestes, correções
EvoluçãoAlterações, suporte
MAPS - Engenharia de Software - IHC 3
MAPS - Engenharia de Software
2.1 – Modelos de Processos de Software
Representação abstrata de um processo de software (ciclo de vida de desenvolvimento)
Modelos: cascata e evolucionário
Modelos híbridos
Modelos iterativos
MAPS - Engenharia de Software - IHC 4
ExploratórioUm software evolui para uma versão final
Modelos evolucionários
Prototipação descartávelVários protótipos são desenvolvidos e descartados, posteriormente um software definitivo é contruído
MAPS - Engenharia de Software
2.1 – Modelos de Processos de Software
MAPS - Engenharia de Software - IHC 5
INTERFACE HUMANO-COMPUTADOR = INTERFACE HOMEM-MÁQUINA
Interface: meio físico que permite a interação entre dois Sistemas.
Esquema de Interface:
Sistema 1
Agente (tem o controle da Interação)
Interface Sistema 2Paciente
Interação Humano-computador (IHC)
MAPS - Parte 3
MAPS - Engenharia de Software - IHC 6
Interação Humano-computador (IHC)
disciplina preocupada com o designe, avaliação e implementação de Sistemas Computacionais Interativos para o uso
humano e com os principais fenômenos ao redor deles.
INTERFACE <> INTERAÇÃO
MAPS - Engenharia de Software - IHC 7
Interação Humano-computador (IHC)
Sistemas Computacionais Interativos: relativo, contextual.
Aplica-se desde a construção de hardware, páginas web, interfaces de aplicativos até o
próprio aplicativo.
MAPS - Engenharia de Software - IHC 8
3.1 METÁFORAS DE INTERFACE
Provê um meio comum de comunicação entre usuário e computador funcionando como um modelo natural que utiliza experiências comuns aos seres humanos para representar ações abstratas e desconhecidas sem utilizar linguagem técnica
Exemplos de Metáfora:
copiar e colar; salvar; desktop; fila; pilha; variável etc.
Interação Humano-computador (IHC)
MAPS - Engenharia de Software - IHC 9
Às vezes podem ser utilizados modelos que imitam a realidade, estes modelos não são citados como metáforas por serem representação
da mesma entidade do seu formato natural para um abstrato (digital ou virtual), porém, têm ainda mais força na Interação, por agregarem
toda a experiência do usuário com o modelo natural. Exemplo:
= +
MAPS - Engenharia de Software - IHC 10
3.2 Os objetivos de IHC
Os objetivos de IHC são o de produzir sistemas usáveis, seguros e funcionais. Esses objetivos podem ser resumidos em como desenvolver ou melhorar a segurança, utilidade, efetividade e usabilidade de sistemas que incluem computadores. Nesse contexto o termo sistemas se refere não somente ao hardware e o software mas a todo o ambiente que usa ou é afetado pelo uso da tecnologia computacional. Nielsen (1993) engloba esses objetivos em um conceito mais amplo que ele denomina aceitabilidade de um sistema.
Interação Humano-computador (IHC)
MAPS - Engenharia de Software - IHC 11
3.3 Aceitabilidade:
•Prática
Usabilidade: apesar de outros fatores como custo, por exemplo, serem citados, a aceitação prática de uma Interface está quase estritamente ligada á usabilidade. Por este motivo a maioria dos estudos e materiais disponíveis sobre Interface e Interação humano-computador aborda praticamente este tópico.
•Social: benefícios sociais (que não estão diretamente ligados à tecnologia) tende amenizar desconfortos em relação à usabilidade e outros conceitos práticos da Interface.
oExemplos:
porta giratórias com detecção de metal.Filtros para Monitores CRT.
Interação Humano-computador (IHC)
MAPS - Engenharia de Software - IHC 12
3.4 DESAFIOS EM IHC
• Como dar conta da rápida evolução tecnológica?• Como aplicar novas ferramentas em tempo suficiente?• Como garantir que os design ofereçam uma boa IHC ao mesmo tempo que exploram o potencial e funcionalidade da nova tecnologia?
Porém o maior de todos é conseguir aplicar de forma equilibrada todos os conceitos (princípios) conhecidos, sem que uma característica tida como boa para a interação venha prejudicar outra característica também tida como boa, tornando-a um “Defeito de Interface”.
Exemplo: visibilidade & densidade Informacional
Interação Humano-computador (IHC)
MAPS - Engenharia de Software - IHC 13
3.5 Princípios de Design
Norman (1988), para sistemas em geral.•Modelo Conceitual: conhecer bem os objetivos do Sistema (requisitos).•Mapeamento:
Indica o relacionamento entre os controles e seus movimentos e os resultados no mundo.
•Visibilidade e Affordances:Visibilidade: controles à disposição;Affordances: o que eu posso fazer com isso (controles). Intuitividade dos controles
•Feedback: repostas em tempo hábil ao usuário do que está ocorrendo
Interação Humano-computador (IHC)
Controles: objetos que permitem o contato, a interação entre humano e interface
MAPS - Engenharia de Software - IHC 14
Nielsen (1993), direcionado para sistemas computacionais.12 Slogans:
•Sua melhor tentativa não é boa o suficiente•Usuário está sempre certo•Usuário não está sempre certo•Usuários não são designers•Designers não são usuários•Menos é mais•Help não ajuda•Facilidade de aprendizagem•Eficiência•Facilidade de relembrar•Erros•Satisfação subjetiva
Interação Humano-computador (IHC)
MAPS - Engenharia de Software - IHC 15
QUALIDADES ERGONÔMICAS PARA IHCWalter de Abreu Cybis (2003), direcionado à usabilidade:
•ConduçãoPrestezaFeedbackLegibilidadeAgrupamento/Distinção de itens
oPor Localização;oPor Formato.
•Carga de trabalhoBrevidadeDensidade Informacional
Interação Humano-computador (IHC)
MAPS - Engenharia de Software - IHC 16
•Controle explícitoAções ExplícitasControle do Usuário
•AdaptabilidadeFlexibilidadeConsiderações sobre experiência do usuário
•Gestão de ErrosProteçãoQualidade das MensagensPermitir a correção dos erros
•Homogeneidade (Padronização)•Significado dos Códigos•Compatibilidade
Interação Humano-computador (IHC)
MAPS - Engenharia de Software - IHC 17
Outras abordagens sobre princípios de designe
• Shneiderman• Nielsen
MAPS - Engenharia de Software - IHC 18
Oito regras de Ouro de Ben Shneiderman
• 1. Mantenha a consistênciaSequências consistentes de ações devem ser usadas em situações similares. Use terminologia idêntica em prompts, menus e telas de ajuda. Comandos devem ser utilizados da mesma maneira ao longo da interface.
• 2. Ofereça atalhos aos usuários experientesAo mesmo tempo que a frequência de uso de uma interface aumenta, o desejo do usuário é reduzir o número de interações e aumentar o compasso da interação. Abreviações, teclas de função, comando ocultos e facilidades de macros ajudarão o usuário mais experiente.
• 3. Ofereça feedbacks informativosPara cada operação do usuário deve haver algum tipo de feedback do sistema. Ofereça respostas discretas quando as ações são frequentes ou de menor importância e respostas com maior prioridade para ações incomuns ou mais importantes.
MAPS - Engenharia de Software - IHC 19
• 4. Apresente as etapas do processoSequências de ações devem ser organizadas em grupos com início, meio e fim. O feedback informativo ao completar um grupo de ações dá ao usuário satisfação de realização, senso de distinção e uma indicação que o caminho é claro para se preparar para o próximo conjunto de ações.
• 5. Ofereça uma forma simples de correção de errosTanto quanto possível, o design do sistema não deve permitir que o usuário cometa erros graves. Se um erro for cometido, o sistema deve ser capaz de detectar e oferecer um mecanismo simples e compreensível para a solução.
• 6. Permita fácil reversão de açõesEsta funcionalidade diminui a ansiedade, desde o momento que o usuário toma conhecimento que um erro grave pode ser desfeito. Isso potencializa a exploração de funções desconhecidas. As unidades de reversibilidade podem ser de uma única ação, de uma entrada de dados ou uma sequência completa de ações.
MAPS - Engenharia de Software - IHC 20
• 7. O controle do sistema é do usuárioUsuários experientes desejam ter a noção de que controlam o sistema e este é que responde aos seus comandos. O sistema deve ser projetado para deixar os usuários como iniciadores das ações ao invés de reagentes.
• 8. Reduza a carga de memória curta do usuárioEste princípio está relacionado à limitação humana de processamento de informação na memória de curta duração. O sistema deve ser projetado para que haja o menor esforço possível do usuário em memorizar ou relacionar elementos na interface.
MAPS - Engenharia de Software - IHC 21
Heurísticas de Nielsen• 1. Visibilidade do status do sistema
O sistema deve manter o usuário sempre informado sobre o que está acontecendo através de um feedback em tempo real.
• 2. Correspondência entre o sistema e o mundo realO sistema deve usar a linguagem e modelo mental do usuário e não ser orientado a estrutura do sistema.
• 3. Liberdade e controle do usuárioUsuários frequentemente cometem erros e precisarão ser capazes de reconhecerem ‘saídas de emergências’ para se recuperarem de estados indesejáveis.
MAPS - Engenharia de Software - IHC 22
• 4. Consistência e padrõesEm ações e contextos iguais use as mesmas palavras, ícones e comportamentos. Facilite o reconhecimento do usuário.
• 5. Prevenção de errosMais importante que uma boa mensagem de erro é um design cuidadoso que evita o problema. Em ações como a de exclusão de um arquivo, por exemplo, forneça uma mensagem de confirmação antes da ação ser executada.
• 6. Reconhecimento ao invés de memorizaçãoEvite a sobrecarga de memória do usuário. Forneça informações contextuais para que cada ação não precise de informações que estão em outro ponto do sistema.
MAPS - Engenharia de Software - IHC 23
• 7. Flexibilidade e eficiência de usoForneça atalhos para usuários experientes que agilizem o uso deste perfil, mantendo a facilidade para usuários leigos.
• 8. Estética e design minimalistaO diálogo do sistema com o usuário não deve conter informações desnecessárias. Mantenha apenas as informações úteis, diretas e claras.
• 9. Ajude os usuários a reconhecerem, diagnosticarem e recuperarem-se de errosAs mensagens de erro devem ser claras a ponto de indicarem o problema e sugerirem uma solução.
MAPS - Engenharia de Software - IHC 24
• 10. Ajuda e documentaçãoEmbora o melhor é o usuário ser capaz de usar o sistema sem necessidade de ler a documentação, é necessário fornecer ajuda documentada em caso de necessidade. As informações devem ser facilmente encontradas, descreverem passos de forma clara e não serem extensas demais
MAPS - Engenharia de Software - IHC 25
Exercícios1. Identifique quais as interfaces e controles existem entre o
homem e um aparelho de TV.2. Identifique metáforas de interfaces não citadas nos
exemplos deste material.3. Proponha novas metáforas para metáforas conhecidas.4. Explique as diferenças de abordagens utilizadas pelos três
primeiros autores citados, ao indicarem bons princípios de designe de Interfaces.
5. Comente divergências entre os 12 slogans de Nielsen e os princípios chamados de “heurísticas de Nielsen”.
MAPS - Engenharia de Software - IHC 26
3.6 Projeto de interfaces com o usuário
(Sommerville)• O Engenheiro de software herda a função de
engenheiro de interfaces/usabilidade;• Indica o desenvolvimento iterativo, evolucionário
(evolutivo) exploratório (tentativa e erro);
• Adverte para a importância da Interface na Engenharia de Software, principalmente em relação à gestão de erros;
• Abordagem direcionada ao desenvolvimento de Software
MAPS - Engenharia de Software - IHC 27
3.6.1 Princípios de Projeto
• Familiaridade com o usuário: considerar a capacidade física e mental dos usuários;
• Consistência;• Mínimo de surpresa;• Facilidade de recuperação;• Orientação do Usuário;• Diversidade de usuários;
MAPS - Engenharia de Software - IHC 28
Familiaridade com o usuário e diversidade de Usuários
• Capacidade física e mental dos usuários (Ergonomia ou fatores humanos);
• Experiência;• Usuário não deve se adaptar à interface;• Alternativas para diferentes tipos de usuários:
experientes e iniciantes; uso freqüentes e casuais
Princípios de Projeto
MAPS - Engenharia de Software - IHC 29
Consistência
• Elementos gráficos, Comandos, Atalhos etc.• Níveis de consistência;
• Entre o maior número de entidades possível;• Referências externas;
Princípios de Projeto
MAPS - Engenharia de Software - IHC 30
Mínima surpresa
• Prever o que o usuário espera do Sistema;• Intuitividade, condução;• Ações semelhantes, efeitos equivalentes;
(mapeamento)
Princípios de Projeto
MAPS - Engenharia de Software - IHC 31
Facilidade de recuperação e orientação ao usuário
• Confirmação de ações destrutivas;• Recurso “Desfazer”;• Ajuda contextualizada.
Princípios de Projeto
MAPS - Engenharia de Software - IHC 32
Interação dos usuários
• Manipulação direta;• Seleção de menu (opções);• Preenchimento de formulários;• Linguagem de comando;• Linguagem natural.
A maioria dos Sistemas utilizam vários tipos de Interação!
MAPS - Engenharia de Software - IHC 33
Interação dos usuáriosInteração Vantagens Desvantagens Exemplos
Manipulação direta
Interação rápida e intuitiva
Implementação; dependência de metáforas visuais
Jogos, simuladores, CAD
Seleção de menu Evita erros; pouca digitação
Inadequado para usuários experientes; brevidade
Genéricos
Preenchimento de formulário
Entrada de dados simples, fácil de aprender
Toma espaço em tela
Cadastros
Linguagem de comando
Flexível Difícil de aprender Sistemas Operacionais; bibliotecas
Linguagem natural
Acessível a usuários casuais
confiabilidade Recuperação de informações na web