Interfaces com Usuário
Baseado nos trabalhos de
Andries Van Dam
Tipos de Interface


WIMP – Windows, icons, menus e point and
click.
Non-WIMP – baseadas em reconhecimento
de gestos de mouse ou caneta, ou
reconhecimento de fala.
Manipulação direta


Um padrão da indústria que é o coração das
interfaces WIMP.
Provê metáforas visuais para os comandos,
como o famigerado drag-and-drop.
Vantagens




Novatos aprendem a usar o sistema
relativamente rápido.
Menor tempo para aprender os comandos.
Visualmente atrativa e agradável de usar.
Fácil de memorizar os comandos.
Desvantagens

Alguns comandos são esquisitos ou
impossíveis.




Como apagar todos os arquivos de um disco?
Consome mais recursos computacionais.
Deficientes visuais ou desabilitados terão
muita dificuldade para operar o sistema.
Difícil de projetar símbolos adequados.

Dependem do contexto e do passado cultural.
Razão do projeto de interfaces


Uma interface com o usuário é um diálogo
entre o usuário e o computador.
É a chave para a produtividade.

Provê sistemas usáveis, úteis e eficientes para as
pessoas.
Projeto centrado no usuário



Projete para o usuário, não para o hardware.
Atualmente, a interface é mais importante do
que uma avalanche de funcionalidades.
Regra do 90/10


10% das funcionalidades são usadas 90% do
tempo.
Pense num manual de DVD ou vídeo cassete ...
Objetivos de alto nível


Faça simples as coisas fáceis e torne
possível as complicadas.
Otimize os fatores humanos e ergométricos.


Maximize a velocidade de aprendizado.


Crie interfaces confortáveis e convidativas, bem
como atraentes.
Incluindo a transição de novato para especialista.
Maximize a velocidade e facilidade de uso.
Objetivos de alto nível



Minimize a taxa de erro.
Permita um rápido reaprendizado.
Uma interface WIMP não necessariamente
maximiza a velocidade e facilita o uso.



Normalmente, mouse é mais lento do que atalhos de
teclado.
Causam RSI (repetitive stress injuries – lesões por esforço
repetitivo).
Evite erros e proveja a recuperação dos mesmos.

Undo e redo.
Histórico de UI

1963: Ivan Sutherland criou a pedra
fundamental dos sistemas gráficos, o
Sketchpad.


Grande quantidade de botões, teclas, pan e
zoom.
1968: Engelbart demonstrou o
NLS/documento aumentado hypermedia na
conferência Fall Joint.

Tiled windows, mouse, teclado e interface por
linha de comando.
Histórico

1970: Engelbart patenteia
o mouse.
Histórico

1973: Xerox cria o Alto, a primeira estação de
trabalho pessoal.


Baseada em um monitor raster bit-map, mouse
comercial, ethernet e arquitetura cliente-servidor.
Primeiro editor WYSIWYG, Smalltalk, interface
WIMP, incluindo gerenciadores de janela e
browsers.
Smalltalk-80
Histórico

1981: Xerox introduz o sistema de informação
Star, com janelas sobrepostas.
Histórico

1984: Apple lança o Mac, o primeiro
computador comercial com desktop gráfico.



Fortemente influenciado pelo Alto e o Star.
Janelas sobrepostas, pulldown menus, icons e
toolbars, manipulação de arquivos via drag-anddrop.
1985: Microsoft Windows, uma imitação do
Mac com poucos melhoramentos, para a
linha IBM-PC.
Algumas vezes UI pode ser uma questão
de vida ou morte

Queda na Colômbia
do primeiro Boeing
757 em 1995, devido
a uma ambigüidade
no comando digitado.
Características do projeto de UI



Colaborativo.
Iterativo.
Multi-disciplinar.
Profissionais envolvidos









Engenheiros de hardware.
Engenheiros de fatores humanos.
Projetistas gráficos.
Lingüistas.
Psicólogos perceptuais.
Cientistas da cognição.
Engenheiros de software.
Sociólogos e antropólogos.
Projetistas de UI.
Projeto de UI é difícil



O código da interface pode chegar a 70-80%
da aplicação.
É a razão do sucesso ou falha da aplicação.
Criar uma boa UI é mais difícil do que
meramente engenharia de software.

Requer mais habilidades do que apenas o
conhecimento de engenharia de software.
Etapas da Metodologia de Projeto







Conceitual.
Semântico.
Diálogo.
Sintático.
Léxico.
Gráfico.
Documentação.
Fatos


Aqueles que acham que UI não é importante
não entendem o processo/metodologia de
projeto.
Atualmente, as companhias são muito
exigentes quanto a quem projeta suas
interfaces.

UI define o produto!!
O que está sendo projetado?

Duas linguagens que se entrelaçam:


Um protocolo de comunicação.


Usuário(s) -> computador -> usuário(s).
Incluindo tempo (clique duplo!)
Interfaces Non-WIMP podem possuir vários
canais operando em paralelo.


Reconhecimento de voz e gestos.
Chamada de interação multi-modal.
Objetivos Principais




Conheça os objetivos dos seus usuários.
Defina as tarefas baseado no grau de
experiência do usuário.
Ajude o usuário a aprender o sistema.
Lidamos com fatores humanos.



Não deixe o seu ego se interpor ao problema.
O usuário normalmente está certo.
Obter e aceitar críticas ao projeto é difícil.
Objetivos



Várias medidas de eficiência são subjetivas e
difíceis de decifrar.
Ajude sempre o usuário a aprender.
Em produtos comerciais, a interface pode
custar tanto quanto o resto do sistema.
Nunca projete interfaces assim
Exemplo de um projeto gráfico
confuso
Essa interface é boa?
Essa interface é intuitiva?
Ferramentas para criar interfaces


O processo de projeto e implementação de
um interface é complexo e trabalhoso.
Ambientes RAD (Rapid Application
Development) / IDE (Integrated Development
Environment) fornecem um conjunto integrado
de ferramentas para construir aplicações.

Visam aumentar a produtividade do programador,
principalmente para aplicações simples.
Características


Tipicamente, oferecem compiladores,
debuggers, testadores, editores de janela,
construtores de interface e editores de texto.
Tradicionalmente criados para plataforma
Windows, e.g., Microsoft Visual Studio (C++,
C#, Basic, .Net) ou Borland (Delphi, C++
Builder), estão aparecendo cada vez mais
em Linux (Lazarus, Klix3, KDevelop e
Gambas).
Histórico do Delphi

Delphi é uma linguagem de alto nível, estruturada e
orientada a objetos.



Baseada em Object Pascal.
Pascal sofreu uma forte influência de Algol. Criada
por Niklaus Wirth, em 1971, foi implementada pela
primeira vez em 1973.
O Turbo pascal, da Borland, surge em 1983.


Introduz o conceito de IDE, que permite editar o programa,
compilar, ver os erros e ir diretamente para as linhas
erradas.
Uma das linguagens mais bem sucedidas de todos os
tempos.
Histórico

Em 1995, a Borland revive o Pascal
desenvolvendo um RAD, chamado Delphi.



Torna o Pascal uma linguagem visual.
A decisão estratégica foi tornar ferramentas
de banco de dados e de conectividade uma
parte central do produto.
“Se você quer falar com o Oráculo, vá a
Delphi”.
Versões


1995 – 2002 : Delphi 1 - 8
Fevereiro de 1999 – Lazarus


FPC é um compilador GPL que roda em
Linux, Win32, OS/2, 68K, e mais...


Uma biblioteca de classes para o Free Pascal que
emula o Delphi.
Projetado para entender e compilar a sintaxe do
Delphi.
Lazarus é a parte gráfica que permite
escrever programas similares aos do Delphi.
Widgets Gráficos



Widgets são as partes de uma GUI (graphical user
interface) que permitem aos usuário interagir com a
aplicação e o sistema operacional.
Exibem informação e convidam o usuário a agir de
diversas formas.
Incluem botões, caixas de diálogo, pop-up windows,
pull-down menus, icons, scroll bars, janelas com
arestas que podem ser esticadas, indicadores de
progresso, caixas de seleção, janelas, tear-off
menus, menu bars, toggle switches e formulários.
Widgets Gráficos

Qual o conjunto de widgets para o GUI do
Lazarus?


Projetado para ser independente, pode ser
qualquer coisa: GTK+, QT, Win32. Basta ligar, ou
na pior das hipóteses, escrever código para o
novo conjunto.
Quando chegar a versão 1.0, será possível
escrever as unidades para ligar o Lazarus a
qualquer conjunto de widgets.
Banco de Dados

Lazarus possui componentes para os
principais bancos de dados do Linux:
MySQL, PostgreSQL, SQLite, Firebird.

Ainda há problemas com alguns destes
componentes, mais é uma mera questão de
tempo solucioná-los.
Download

Interfaces