Você está na página 1de 19

1 2 3 4

No apenas para computadores! Percepo a chave! Tipos de Interface


Programao I WIMP - Windows, icons, menus e point and click.

Non-WIMP - baseadas em reconhecimento de gestos de


Aula 1: Interfaces com Usurio - UI mouse ou caneta, ou reconhecimento de fala.

Porque interfaces so importantes?

Mrio Benevides
Paulo Roma

Baseado nos trabalhos de Andries Van Dam

5 6 7 8

Manipulao direta Vantagens Desvantagens Razo do projeto de interfaces


Um padro da indstria que o corao das interfaces WIMP. Novatos aprendem a usar o sistema relativamente rpido. Alguns comandos so esquisitos ou impossveis. Uma interface com o usurio um dilogo entre o usurio
e o computador.
Como apagar todos os arquivos de um disco?
Menor tempo para aprender os comandos.
Prov metforas visuais para os comandos, como o Consome mais recursos computacionais. a chave para a produtividade.
famigerado drag-and-drop.
Visualmente atrativa e agradvel de usar. Prov sistemas usveis, teis e eficientes para as pessoas.
Deficientes visuais ou desabilitados tero muita dificuldade
para operar o sistema.

Fcil de memorizar os comandos.


Difcil de projetar smbolos adequados.

Dependem do contexto e do passado cultural.

9 10 11 12

Projeto centrado no usurio Objetivos de alto nvel Objetivos de alto nvel Histrico de UI

Projete para o usurio, no para o hardware. Faa simples as coisas fceis e torne possvel as complicadas. Minimize a taxa de erro. 1963: Ivan Sutherland criou a pedra fundamental dos sistemas
grficos, o Sketchpad.
Permita um rpido reaprendizado.
Atualmente, a interface mais importante do que uma Otimize os fatores humanos e ergomtricos. Grande quantidade de botes, teclas, pan e zoom.
avalanche de funcionalidades.
Crie interfaces confortveis e convidativas, bem como Uma interface WIMP no necessariamente maximiza a
atraentes. velocidade e facilita o uso. 1968: Engelbart demonstrou o NLS/documento aumentado
Regra do 90/10 hypermedia na conferncia Fall Joint.
Normalmente, mouse mais lento do que atalhos de teclado.
Maximize a velocidade de aprendizado.
10% das funcionalidades so usadas 90% do tempo. Tiled windows, mouse, teclado e interface por linha de
Causam RSI (repetitive stress injuries - leses por esforo
Incluindo a transio de novato para especialista. comando.
Pense num manual de DVD ou vdeo cassete ... repetitivo).
Evite erros e proveja a recuperao dos mesmos.
Maximize a velocidade e facilidade de uso.
Undo e redo.

13 14 15 16

Histrico Histrico Smalltalk-80 Histrico

1970: Engelbart patenteia 1973: Xerox cria o Alto, a primeira estao de trabalho pessoal. 1981: Xerox introduz o sistema de informao Star, com
o mouse. janelas sobrepostas.
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.
17 18 19 20

Histrico Algumas vezes UI pode ser uma Caractersticas do projeto de UI Profissionais envolvidos
questo de vida ou morte
Engenheiros de hardware.
1984: Apple lana o Mac, o primeiro computador comercial Colaborativo.
com desktop grfico.
Queda na Colmbia do Engenheiros de fatores humanos.
Fortemente influenciado pelo Alto e o Star. primeiro Boeing 757 em
1995, devido a uma Iterativo. Projetistas grficos.
ambigidade no
Janelas sobrepostas, pulldown menus, icons e toolbars, comando digitado.
manipulao de arquivos via drag-and-drop. Lingistas.
Multi-disciplinar.
Psiclogos perceptuais.
1985: Microsoft Windows, uma imitao do Mac com poucos
melhoramentos, para a linha IBM-PC. Cientistas da cognio.

Engenheiros de software.

Socilogos e antroplogos.

Projetistas de UI.

21 22 23 24

Projeto de UI difcil Etapas da Metodologia de Projeto Fatos O que est sendo projetado?

O cdigo da interface pode chegar a 70-80% da aplicao. Conceitual. Aqueles que acham que UI no importante no entendem Duas linguagens que se entrelaam:
o processo/metodologia de projeto.
Semntico. Usurio(s) -> computador -> usurio(s).
a razo do sucesso ou falha da aplicao.
Atualmente, as companhias so muito exigentes quanto a quem
Dilogo. projeta suas interfaces. Um protocolo de comunicao.
Criar uma boa UI mais difcil do que meramente
engenharia de software. UI define o produto!! Incluindo tempo (clique duplo!)
Sinttico.
Requer mais habilidades do que apenas o conhecimento Interfaces Non-WIMP podem possuir vrios canais operando
de engenharia de software. Lxico. em paralelo.

Grfico. Reconhecimento de voz e gestos.

Documentao. Chamada de interao multi-modal.

25 26 27 28

Objetivos Principais Objetivos Nunca projete interfaces assim Exemplo de um projeto grfico
confuso
Conhea os objetivos dos seus usurios. Vrias medidas de eficincia so subjetivas e difceis de decifrar.

Defina as tarefas baseado no grau de experincia do usurio.


Ajude sempre o usurio a aprender.
Ajude o usurio a aprender o sistema.
Em produtos comerciais, a interface pode custar tanto quanto
Lidamos com fatores humanos. o resto do sistema.

No deixe o seu ego se interpor ao problema.

O usurio normalmente est certo.

Obter e aceitar crticas ao projeto difcil.

29 30 31 32

Essa interface boa? Essa interface intuitiva? Ferramentas para criar interfaces Caractersticas

O processo de projeto e implementao de um interface Tipicamente, oferecem compiladores, debuggers, testadores,


complexo e trabalhoso. editores de janela, construtores de interface e editores de texto.

Ambientes RAD (Rapid Application Development) /


IDE (Integrated Development Environment) fornecem um Tradicionalmente criados para plataforma Windows, e.g.,
conjunto integrado de ferramentas para construir aplicaes. Microsoft Visual Studio (C++, C#, Basic, .Net) ou Borland
(Delphi, C++ Builder), esto aparecendo cada vez mais em
Visam aumentar a produtividade do programador, Linux (Lazarus, Kylix3, KDevelop e Gambas).
principalmente para aplicaes simples.
33 34 35 36

Histrico do Delphi Histrico Verses Widgets Grficos

Delphi uma linguagem de alto nvel, estruturada e orientada Em 1995, a Borland revive o Pascal desenvolvendo um RAD, 1995 - 2002 : Delphi 1 - 8 Widgets so as partes de uma GUI (graphical user interface)
a objetos. chamado Delphi. que permitem aos usurio interagir com a aplicao e o sistema
operacional.
Baseada em Object Pascal. Torna o Pascal uma linguagem visual. Fevereiro de 1999 - Lazarus
Uma biblioteca de classes para o Free Pascal que emula Exibem informao e convidam o usurio a agir de diversas
Pascal sofreu uma forte influncia de Algol. Criada por A deciso estratgica foi tornar ferramentas de banco de dados o Delphi.
Niklaus Wirth, em 1971, foi implementada pela primeira formas.
e de conectividade uma parte central do produto.
vez em 1973. FPC um compilador GPL que roda em Linux, Win32, OS/2,
68K, e mais... Incluem botes, caixas de dilogo, pop-up windows,
O Turbo pascal, da Borland, surge em 1983. "Se voc quer falar com o Orculo, v a Delphi". pull-down menus, icons, scroll bars, janelas com arestas que
Projetado para entender e compilar a sintaxe do Delphi. podem ser esticadas, indicadores de progresso, caixas de
Introduz o conceito de IDE, que permite editar o programa, seleo, janelas, tear-off menus, menu bars, toggle switches e
compilar, ver os erros e ir diretamente para as linhas erradas. formulrios.
Lazarus a parte grfica que permite escrever programas
similares aos do Delphi.
Uma das linguagens mais bem sucedidas de todos os tempos.

37 38 39

Widgets Grficos Banco de Dados Objetivos do Curso

Qual o conjunto de widgets para o GUI do Lazarus? Lazarus possui componentes para os principais bancos de Desenvolver a capacidade de programao usando o Lazarus
dados do Linux: MySQL, PostgreSQL, SQLite, Firebird. como plataforma de desenvolvimento.
Projetado para ser independente, pode ser qualquer coisa:
GTK+, QT, Win32. Basta ligar, ou na pior das hipteses, Ainda h problemas com alguns destes componentes, mais Aplicaes com interfaces simples, criadas a partir de
escrever cdigo para o novo conjunto. uma mera questo de tempo solucion-los. componentes e widgets.

Quando chegar a verso 1.0, ser possvel escrever as Aplicaes com banco de dados MySQL e Firebird.
unidades para ligar o Lazarus a qualquer conjunto de widgets.