33
MAPS - Engenharia de Software - IHC 1 Parte 1 Visão Geral Engenharia de Software Processos de Software Gerenciamento Projeto de Software

MAPS - Engenharia de Software - IHC1 Parte 1 Visão Geral Engenharia de Software Processos de Software Gerenciamento Projeto de Software

Embed Size (px)

Citation preview

Page 1: MAPS - Engenharia de Software - IHC1 Parte 1 Visão Geral Engenharia de Software Processos de Software Gerenciamento Projeto de Software

MAPS - Engenharia de Software - IHC 1

Parte 1Visão Geral

Engenharia de Software

Processos de SoftwareGerenciamento

Projeto de Software

Page 2: MAPS - Engenharia de Software - IHC1 Parte 1 Visão Geral Engenharia de Software Processos de Software Gerenciamento 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

Page 3: MAPS - Engenharia de Software - IHC1 Parte 1 Visão Geral Engenharia de Software Processos de Software Gerenciamento Projeto de Software

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

Page 4: MAPS - Engenharia de Software - IHC1 Parte 1 Visão Geral Engenharia de Software Processos de Software Gerenciamento Projeto de Software

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

Page 5: MAPS - Engenharia de Software - IHC1 Parte 1 Visão Geral Engenharia de Software Processos de Software Gerenciamento Projeto 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

Page 6: MAPS - Engenharia de Software - IHC1 Parte 1 Visão Geral Engenharia de Software Processos de Software Gerenciamento Projeto de Software

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

Page 7: MAPS - Engenharia de Software - IHC1 Parte 1 Visão Geral Engenharia de Software Processos de Software Gerenciamento Projeto de Software

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.

Page 8: MAPS - Engenharia de Software - IHC1 Parte 1 Visão Geral Engenharia de Software Processos de Software Gerenciamento Projeto de Software

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)

Page 9: MAPS - Engenharia de Software - IHC1 Parte 1 Visão Geral Engenharia de Software Processos de Software Gerenciamento Projeto de Software

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:

= +

Page 10: MAPS - Engenharia de Software - IHC1 Parte 1 Visão Geral Engenharia de Software Processos de Software Gerenciamento Projeto de Software

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)

Page 11: MAPS - Engenharia de Software - IHC1 Parte 1 Visão Geral Engenharia de Software Processos de Software Gerenciamento Projeto de Software

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)

Page 12: MAPS - Engenharia de Software - IHC1 Parte 1 Visão Geral Engenharia de Software Processos de Software Gerenciamento Projeto de Software

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)

Page 13: MAPS - Engenharia de Software - IHC1 Parte 1 Visão Geral Engenharia de Software Processos de Software Gerenciamento Projeto de Software

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

Page 14: MAPS - Engenharia de Software - IHC1 Parte 1 Visão Geral Engenharia de Software Processos de Software Gerenciamento Projeto de Software

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)

Page 15: MAPS - Engenharia de Software - IHC1 Parte 1 Visão Geral Engenharia de Software Processos de Software Gerenciamento Projeto de Software

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)

Page 16: MAPS - Engenharia de Software - IHC1 Parte 1 Visão Geral Engenharia de Software Processos de Software Gerenciamento Projeto de Software

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)

Page 17: MAPS - Engenharia de Software - IHC1 Parte 1 Visão Geral Engenharia de Software Processos de Software Gerenciamento Projeto de Software

MAPS - Engenharia de Software - IHC 17

Outras abordagens sobre princípios de designe

• Shneiderman• Nielsen

Page 18: MAPS - Engenharia de Software - IHC1 Parte 1 Visão Geral Engenharia de Software Processos de Software Gerenciamento Projeto de Software

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.

Page 19: MAPS - Engenharia de Software - IHC1 Parte 1 Visão Geral Engenharia de Software Processos de Software Gerenciamento Projeto de Software

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.

Page 20: MAPS - Engenharia de Software - IHC1 Parte 1 Visão Geral Engenharia de Software Processos de Software Gerenciamento Projeto de Software

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.

Page 21: MAPS - Engenharia de Software - IHC1 Parte 1 Visão Geral Engenharia de Software Processos de Software Gerenciamento Projeto de Software

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.

Page 22: MAPS - Engenharia de Software - IHC1 Parte 1 Visão Geral Engenharia de Software Processos de Software Gerenciamento Projeto de Software

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.

Page 23: MAPS - Engenharia de Software - IHC1 Parte 1 Visão Geral Engenharia de Software Processos de Software Gerenciamento Projeto de Software

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.

Page 24: MAPS - Engenharia de Software - IHC1 Parte 1 Visão Geral Engenharia de Software Processos de Software Gerenciamento Projeto de Software

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

Page 25: MAPS - Engenharia de Software - IHC1 Parte 1 Visão Geral Engenharia de Software Processos de Software Gerenciamento Projeto de Software

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”.

Page 26: MAPS - Engenharia de Software - IHC1 Parte 1 Visão Geral Engenharia de Software Processos de Software Gerenciamento Projeto de Software

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

Page 27: MAPS - Engenharia de Software - IHC1 Parte 1 Visão Geral Engenharia de Software Processos de Software Gerenciamento Projeto 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;

Page 28: MAPS - Engenharia de Software - IHC1 Parte 1 Visão Geral Engenharia de Software Processos de Software Gerenciamento Projeto de Software

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

Page 29: MAPS - Engenharia de Software - IHC1 Parte 1 Visão Geral Engenharia de Software Processos de Software Gerenciamento Projeto de Software

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

Page 30: MAPS - Engenharia de Software - IHC1 Parte 1 Visão Geral Engenharia de Software Processos de Software Gerenciamento Projeto de Software

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

Page 31: MAPS - Engenharia de Software - IHC1 Parte 1 Visão Geral Engenharia de Software Processos de Software Gerenciamento Projeto de Software

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

Page 32: MAPS - Engenharia de Software - IHC1 Parte 1 Visão Geral Engenharia de Software Processos de Software Gerenciamento Projeto de Software

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!

Page 33: MAPS - Engenharia de Software - IHC1 Parte 1 Visão Geral Engenharia de Software Processos de Software Gerenciamento Projeto de Software

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