You are on page 1of 13

Interface gráfica do utilizador

Origem: Wikipédia, a enciclopédia livre.

Exemplo de GUI em sistemas Linux

Em informática, interface gráfica do utilizador (português europeu) ou usuário (português


brasileiro) (abreviadamente, o acrônimo GUI, do inglês Graphical User Interface) é um tipo de
interface do utilizador que permite a interação com dispositivos digitais através de elementos
gráficos como ícones e outros indicadores visuais, em contraste a interface de linha de
comando.

A interação é feita geralmente através de um rato ou um teclado, com os quais o usuário é


capaz de selecionar símbolos e manipulá-los de forma a obter algum resultado prático. Esses
símbolos são designados de widgets e são agrupados em kits.

Ambiente gráfico é um software feito para facilitar e tornar prática a utilização do computador
através de representações visuais do sistema operacional.

Para Windows temos apenas o ambiente gráfico padrão, nas versões Windows Vista temos a
chamada Windows Aero, com o principal recurso Flip 3D. Para Linux temos vários ambientes
gráficos, entre eles, o KDE, Gnome, BlackBox, Xfce, etc.. Há também a opção de não precisar
usar ambientes gráficos. Para prover a funcionalidade do ambiente gráfico existem programas
como X.org, XFree86.

Índice [esconder]

1 História

1.1 Década de 1980

1.2 Década de 1990

2 Componentes

3 Referências

4 Ver também

[editar]História

O precursor das interfaces gráficas do utilizador foi inventado por pesquisadores do Instituto
de Pesquisa de Stanford, liderados por Douglas Engelbart. Durante a década de 1960, eles
desenvolveram o uso de hiperligações de texto manipuladas com um rato para o NLS. Ivan
Sutherland desenvolveu um sistema baseado em ponteiros chamado Sketchpad em 1963, que
usava uma caneta de luz para guiar a criação e manipulação de objetos em desenhos de
engenharia. Durante a década de 1970, o conceito de hiperligações foi posteriormente
refinado e estendido por pesquisadores da Xerox PARC, que foram além da interface de texto,
usando uma interface gráfica como a principal interface do computador Xerox Alto, que
influenciou a maioria das interfaces gráficas modernas desde então.

A Interface do Utilizador da PARC consiste de widgets gráficos com janelas, menus, caixas de
opção, caixas de seleção e ícones. Ela usa um dispositivo de ponteiro em adição ao teclado.
Seguido desse sistema PARC, o primeiro modelo baseado somente em interface gráfica foi o
Xerox 8010 Star Information System, de 1981.[1]

[editar]Década de 1980

A partir de 1979, iniciado por Steve Jobs e liderado por Jef Raskin, os times de
desenvolvimento do Lisa e do Macintosh na Apple Computer continuaram a desenvolver as
idéias da Xerox. O Macintosh foi lançado em 1984, e representou o primeiro produto de
sucesso a usar uma interface gráfica. Ele utilizava uma metáfora em que os arquivos pareciam
folhas de papel, e os diretórios pareciam pastas de arquivo. Havia também um conjunto de
utilitários como calculadora, bloco de notas, despertador e lixeira de arquivos..

A Digital Research (DRI) criou o Graphical Environment Manager, desenvolvido para trabalhar
com sistemas oepracionais já existentes como CP/M e MS-DOS. A similaridade com Macintosh
resultou numa ação judicial da Apple Computer. O GEM foi bastante usado no mercado a
partir de 1985, quando tornou-se a interface padrão do TOS, sistema operacional da linha de
computadores Atari ST. Mas acabou caindo em desuso com a saída do Atari ST do mercado em
1992 e com a popularidade do Microsoft Windows 3.0.

O Amiga foi lançado pela Commodore em 1985 com uma interface gráfica chamada
Workbench. Como praticamente todos os sistemas da época, o sistema do Amiga também
seguia o modelo da Xerox, mas também era fornecia uma interface de linha de comando para
estender a funcionalidade do sistema.

Na linha 16 bit da Microsoft, o Windows 1.0 foi uma interface gráfica para o MS-DOS, usada na
linha PC e compatíveis desde 1981. O sistema foi seguido pelo Windows 2.0, mas foi somente a
partir de 1990, com o Windows 3.0, que popularidade do sistema cresceu. Baseada no
Common User Access, a interface se manteve estável desde então. A linha 16 bit do Windows
foi descontinuada com a introdução do Windows 95 e do Windows NT durante a década de
1990.

Seguindo mais ações legais, a Apple processou a Microsoft em 1988 por violação de direito
autoral da interface gráfica do Lisa e do Macintosh.

O sistema de janelas do padrão do Unix é o X Window System, lançado em meados da década


de 1980, cujo precursor foi o W Window System, de 1983. Desde então, o sistema é a base de
todos os sistemas Unix e derivados, como o Linux.

[editar]Década de 1990
A adoção em massa da plataforma PC popularizou os computadores entre pessoais sem
treinamento formal do equipamento. Isso criou um grande mercado, que podia explorar a
oportunidade de interfaces de uso fácil. Também, o desenvolvimento de tecnologias gráficas
como mais bits de cor por pixel e placas de vídeos mais rápidas favoreceram o aparecimento
de sistemas mais sofisticados.

Após o Windows 3.11, a Microsoft começou a desenvolver o Windows 95, com uma versão
melhorada do MS-DOS e uma interface gráfica remodelada. Na mesma época houve a guerra
dos navegadores, quando a World Wide Web começou a ganhar grande atenção na cultura
popular. Entratanto, o Windows 95 possuía somente um serviço online próprio da Microsoft, o
The Microsoft Network, sem acesso à Internet. Com o lançamento de navegadores como
Netscape Navigator e Internet Explorer, o Windows passou suportar esse novo paradigma. A
interface gráfica do Windows 95 seguiu com Windows 98, Windows ME, Windows 2000 e
Windows XP, sendo descontinuada a partir do Windows Vista.

Já na Apple, houve atualizações da interface gráfica com o System 7 e com o Mac OS X.

[editar]Componentes

Uma interface gráfica do utilizador usa uma combinação de tecnologias e dispositivos para
fornecer uma plataforma com a qual o utilizador pode interagir.

Em computadores pessoais, a combinação mais conhecida é o WIMP, que consiste de janelas,


ícones, menus e ponteiros. Nesse sistema, utiliza-se um dispositivo de ponteiro como o rato
para controlar a posição dum cursor e apresentar informação organizada em janelas e
representada através e ícones. Os comandos disponíveis são compilados através de menus e
acionados através do dispositivo de ponteiro. Um gerenciador de janela facilita a interação
entre janelas, aplicações e o sistema de janelas, este, responsável por lidar com os dispositivos
de hardware como o dispositivo de ponteiro e o hardware gráfico.

A simulação proporcionada pelos gerenciadores de janelas, incluindo a interação entre janelas


e outros elementos gráficos, produz um ambiente de desktop.

Dispositivos móveis como PDAs e smartphones também usam elementos do WIMP mas com
outros tipos de metáforas, devido às limitações de recurso do próprio dispositivo.
A computação gráfica é a área da computação destinada à geração de imagens em geral — em
forma de representação de dados e informação, ou em forma de recriação do mundo real. Ela
pode possuir uma infinidade de aplicações para diversas áreas, desde a própria informática, ao
produzir interfaces gráficas para software, sistemas operacionais e sites na Internet, quanto
para produzir animações e jogos.

Índice [esconder]

1 Origem e desenvolvimento

2 Aplicações

3 Conceitos

4 Geração de imagens em um computador

5 Imagens

5.1 Imagens geradas totalmente por computação gráfica

6 Aplicativos para Computação Gráfica

7 Ligações externas

8 Referências

[editar]Origem e desenvolvimento

A computação gráfica surge da necessidade humana para visualização de dados. Um dos


aspectos mais importantes está no desenvolvimento dos dispositivos de interação humana
(monitores, mouses, teclados).

[editar]Aplicações

A computação gráfica intervém em diversas áreas, tais como:

Artes : Para expressão artística utilizando os ambientes gráfico-computacionais como meio ou


fim, tais como gravura digital, arte digital, web arte.

Arquitetura e Design de Produto: desenvolvimento gráfico dos projetos de forma visual e com
a aplicação dos cálculos matemáticos para os testes dos projetos quanto a resistência, a
variação de luz e ambientes.

Jogos: A indústria do entretenimento atualmente dá mais lucro que a cinematográfica! Jogos


são a maior aplicação da computação gráfica, e a grande motivação para seu desenvolvimento.
Cinema: para produção de efeitos especiais, retoques nas imagens do filme, e filmes de
animação. Um dos primeiros filmes à utilizar efeitos em pessoas e elementos foi Exterminador
do Futuro,[1] o primeiro filme à utilizar efeitos especiais em animais foi Jurassic Park.[1]

Engenharia: simulação de todas as espécies de eventos físicos, químicos dos materiais


envolvidos nos projetos em elaboração.

Geoprocessamento : Para geração de dados relacionados à cidades, regiões e países.

Medicina: Para análise de exames como tomografia, radiografia, e mais recentemente o ultra-
som (que consegue gerar a partir deste uma imagem em 3D)

Design Visual: para o desenvolvimento de mídias visuais, desde a impressa (como propagandas
em revistas e outdoors) quanto para o auxílio cinematográfico dos comerciais televisivos.

[editar]Conceitos

Imagem: Uma pintura bidimensional, podendo ser um desenho ou uma fotografia, também
pode ser capturada através do olho humano.

Pixel: Contido em imagens digitais, o pixel é a menor parte de uma imagem, geralmente são
representados em forma de quadrados ou círculos.

Gráfico: São representações visuais em uma superfície, geralmente usados para se mostrar
uma cena, gráficos podem ser bidimensionais ou tridimensionais.

Renderização: Processo de gerar uma imagem a partir de modelos em um mundo


tridimensional.

Projeção 3D: Método de mapear pontos tridimensionais em plano bidimensional.

Ray Tracing: Técnica usada para gerar uma imagem tracejando o caminho da luz através de um
plano de imagem.

Sombreamento: Técnica de calcular o nível de escuridão em modelos 3D.

Mapeamento de textura: Método de aplicar detalhes a uma superfície 3D lisa.

[editar]Geração de imagens em um computador

pixel

Toda a computação gráfica é embasada em pixels que são pontos que fazem com que a
imagem seja sintetizada visualmente em um monitor. Seja em 3D por modelagem
tridimensional ou 2D, o profissional em computação gráfica trabalha direta ou indiretamente
com pixels e suas compressões. Isso porque todo o nosso formato de vídeo, tanto monitores,
televisores, celulares, cinema ou qualquer tipo de emissor de imagens atualmente são
interligados por uma série de algoritmos e ferramentas padrões de construção e edição de
imagens. Levando em conta que a maioria de criações e edições passam por um computador
para um resultado melhor ou mais atraente.

Atualmente, as ferramentas para a construção de imagens (os softwares) lidam praticamente


sozinhos com toda a parte algorítmica do hardware; quanto mais específico for o resultado de
uma determinada ferramenta, mais real o objeto criado será. No entanto os programas mais
poderosos são bastante flexíveis em relação a isso, ou seja, é possível em muitos softwares
que novas ferramentas sejam criadas por usuários que tenham um mínimo de conhecimento
em programação. É possível criar verdadeiros programas dentro desses programas, como é o
caso do 3D Studio Max, software para criação de imagens em 3D da Autodesk, ou do Software
livre Gimp para desenhos em 2D. Desta maneira, o usuário pode tanto criar algo que seja mais
próximo a seu interesse como também diminuir em muito seu tempo de trabalho.

[editar]Imagens

[editar]Imagens geradas totalmente por computação gráfica

[editar]Aplicativos para Computação Gráfica

- Desenho Vetorial/Ilustradores

Illustrator

Inkscape - aplicativo de código aberto

CorelDraw

- Desenho de bitmaps/Edição de fotos

Adobe Photoshop

Corel PHOTO-PAINT

GIMP - aplicativo de código aberto

- Visualizadores de imagens

XnView

IrfanView
Ulead Photo Explorer

- CAD

VariCad

FreeCad - aplicativo de código aberto

Autocad

QCad - aplicativo de código aberto

DataCAD

Corel Designer

- Edição de Vídeo

After Effects

VirtualDub - aplicativo de código aberto

Adobe Premiere

Sony Vegas

Cinelerra - aplicativo de código aberto

- Modeladores 3D

Wings 3D

Autocad

Rhino3d

FreeCad

- Modeladores e Animadores 3D

Blender- aplicativo de código aberto

3D Studio MAX

Cinema 4D

Maya

- Outros exemplos de Aplicativos

ACIS - núcleo geométrico.

Autodesk Softimage
POV-Ray

Scribus

Silo (software)

Hexagon

Lightwave
Resumo: 
Por que Interfaces Homem-Máquina são difíceis de
Projetar e Implementar? 

Why are Human-Computer Interfaces Difficult to Design and Implement? 


Brad A. Myers 

Grupo 5 
Christian Reis 
Pedro M. S. Eleutério 
Ricardo J. M. Ribeiro 
Wagner S. Bila 
Ramon Chiara

Resumo:

Este artigo [1] afirma que a dificuldade de projetar e implementar de


interfaces entre o Homem e o Computador é inerente a estas tarefas, e
que tecnologias novas dificilmente causarão mudanças quânticas na
rapidez ou facilidade com que são executadas.

Introdução

A maior parte dos artigos sobre projeto de Interfaces


Homem-Máquina (IHM) não discute os motivos que levam à
dificuldade de se executar a tarefa. O autor do artigo defende
que, assim como para o desenvolvimento de software em
geral, existem muitas dificuldades relacionadas ao
desenvolvimento de interfaces, e que não existe uma solução
trivial para resolvê-las.

Porque Interfaces são Importantes

Cada vez mais, a vida humana está ligada ao uso de computadores e


dispositivos eletrônicos; isto ocorre tanto nas atividades pessoais
quanto no trabalho. A facilidade de uso destes dispositivos é
crescentemente uma parte essencial do seu projeto, pelo simples fato
de que dispositivos de interface difícil não são utilizados como
deveriam, e que incorrem em desperdício de tempo e aumento da
necessidade de treinamento. Muito se investe em tecnologia da
informação atualmente, e os ganhos associados esperados não tem sido
alcançados. A dificuldade de uso dos produtos gerados é citada como
um dos motivos para esta defasagem. 

Há fundamentação empírica que quantifica a redução de custo e


aumento de produtividade com a melhora da usabilidade de uma
interface. Diversos estudos citados no artigo descrevem economias na
escala de milhões de dólares atribuídas a melhoras decorrentes de
investimento em desenvolvimento e aprimoramento de interfaces. A
existência de especialistas em IHM em um projeto é apontada como
um fator muito importante na melhora de usabilidade do produto
resultante. Com base nestas provas importantes, a indústria e as
organizações acadêmicas e estatais com atividades ligadas à
computação têm voltado crescentemente seu interesse para esta área.

Porque Interfaces são Difíceis de ser Projetadas

Embora os benefícios da melhora da usabilidade de uma interface


sejam indiscutíveis, não estão resolvidos os problemas que levam à
dificuldade do projeto de uma Interface. Discute-se algumas
dificuldades abaixo:

1. A dificuldade em entender as tarefas e os usuários  


A necessidade da interface estar diretamente ligada ao modo com
que será usado requer compreensão profunda dos usuários e de
suas habilidades e expectativas. Levantar este tipo de informação
é difícil, sobretudo porque programadores têm dificuldade de se
imaginarem efetivamente na condição de usuários comuns.  
2. A complexidade inerente às tarefas e aplicações 
Em geral, o domínio da aplicação a ser criado envolve situações
de difícil modelamento -- seja porque a tarefa em si é
complicada, seja porque a aplicação se propõe a resolver
problemas de gama extensa. 
3. A variedade de aspectos e requisitos diferentes  
Além das limitações inerentes a qualquer projeto, interfaces com
o usuário envolvem questões como padrões,  design gráfico,
documentação, internacionalização, e performance, entre outras.
Estas questões associadas contribuem para aumentar a
complexidade do desenvolvimento da interface.  
4. Teoria e métodos não são suficientes para resolver o
problema 
Embora existam muitas metodologias para a criação de uma
interface boa, a maior parte dos estudos feitos a seu respeito
revela que a habilidade dos projetistas é o fator primário para a
qualidade das interfaces geradas. O fato de existir grande
proporção de casos que sejam exceções às regras propostas nos
métodos contribui para a dificuldade de se criar um método
abrangente. 
5. Dificuldade de se fazer um projeto iterativo  
Embora se veja como ideal o processo de se refinar ciclicamente
uma interface, este processo em si já é difícil de ser executado --
muitas vezes, as modificações trazem uma piora de usabilidade, e
é difícil saber quando a interface está realmente bem-elaborada.
Além disso, é difícil obter resultados do uso da interface
diretamente dos usuários primários, que muitas vezes não são os
seus compradores e nem responsáveis.

Porque Interfaces são Difíceis de Implementar

Além de ser difíceis de projetar, interfaces com o usuário também são


difíceis de se implementar. Há estudos que quantificam em 50% o
tempo e a quantidade de código relacionado diretamente à interface.
Há razões importantes que explicam porque software relacionado à
interface estará entre os mais difíceis de se implementar.

1. A necessidade de se fazer um projeto iterativo  


Implementar a interface iterativamente significa entrelaçar as
etapas de projeto e implementação e teste; o impacto direto disto
é que o processo de software tradicional se torna inadequado, e o
processo utilizado em si, mais difícil se administrar e
documentar. 
2. Programação reativa 
Uma das diferenças principais entre a implementação de
software para a interface e software de outros tipos é que o
software deve ser escrito contemplando seu controle pelo
usuário, e não pela aplicação. Esta diferença tem mostrado
resultar em uma maior dificuldade na modularização e
organização do código. 
3. Multiprocessamento 
Além de existirem diversas tarefas simultâneas que necessitem
responder à atenção do usuário, o tempo de execução destas
tarefas varia, e é importante manter o sistema respondendo
instantaneamente. Por este motivo, os mesmos problemas
relacionados ao multiprocessamento -- sincronização, controle
de concorrência e consistência das informações -- existem no
desenvolvimento de interfaces.  
4. Programação em tempo real 
Há limitações importantes do tempo de resposta e do redesenho
das informações exibidas pela interface; esta característica
embute preocupações que a maior parte dos sistemas não
contempla a fundo. 
5. Necessidade de robustez 
Toda entrada do usuário deve ser atendida satisfatóriamente;
isto difere em muito da robustez costumeira que se deseja em um
software. As entradas dos usuários podem ser de qualquer
natureza, e muitas vezes é difícil prever todos os tipos diferentes
de interação que ocorrerão. A necessidade de cancelar e desfazer
as operações que o usuário executa acrescenta a esta dificuldade.  
6. Dificuldade de sistematizar testes 
Sistemas de manipulação direta à interface são em geral pouco
úteis para efetuar seu teste, porque não simulam bem a atividade
caótica do usuário, e porque alterações na interface implicam em
se ter de fazer mudanças nos testes. Além disso, grande parte da
qualidade da interface é não-avaliável por um sistema, por ser
resultado de apreciações essencialmente humanas.  
7. Falta de suporte por linguagens de programação  
As linguagens de programação populares não contém primitivas
internas para comunicação com interfaces mais complexas do
que o console. Além disso, as necessidades de multiprogramação
e a reatividade do software requerem suporte pela linguagem de
programação. [Neste ponto discordamos do autor, em 2000;
Visual Basic e Delphi suportam efetivamente a programação de
interfaces -- não estando em discussão a qualidade destas
linguagens.] 
8. Complexidade das ferramentas 
Como a linguagem de programação muitas vezes não suporta
completamente as necessidades da interface, cria-se uma
necessidade por ferramentas que endereçem esta questão. No
entanto, estas ferramentas em geral são incompatíveis e
requerem longo treinamento por parte dos desenvolvedores.  
9. Dificuldade de modularização 
Uma das maiores dificuldades relacionadas à criação de
interfaces é a dificuldade de se separar a forma da interface com
o conteúdo a ser apresentado -- muitas vezes, mudanças na
interface implicam em mudanças na funcionalidade da aplicação.
Além disso, o uso extensivo de funções  call-back nas ferramentas
tornam o problema ainda maior, porque cada interação com uma
parte da interface (um widget) requer uma função
correspondente.

Conclusões

O desenvolvimento de interfaces acrescenta complexidade


significativa à implementação de qualquer software. Embora
pesquisa no campo da IHM possa produzir melhora nas
teorias, métodos e ferramentas, muitos dos problemas
citados no artigo não serão resolvidos. Além disso, novas
formas de interação aparecem constantemente; o esforço
dirigido ao projeto e implementação da interface com o
usuário só tende, portanto, a crescer.

Bibliografia

1
Brad A. Myers "Why are Human-Computer Interfaces Difficult
to Design and Implement?", Carnegie Mellon University School
of Computer Science Technical Report CMU-CS-93-183, Julho
1993.

Christian Reis 2000-08-15

You might also like