28
UNIVERSIDADE FEDERAL DE SANTA CATARIANA TECLADO VIRTUAL PARA DISPOSITIVOS MÓVEIS GUY BOORLLE OLIVEIRA SILVA RASCUNHO DO TRABALHO DE CONCLUSÃO DE CURSO Orientador: Profº Claudio Magalhaes de Oliveira Florianópolis, 2 de Julho de 2008.

Orientador: Prof Claudio Magalhaes de Oliveira · A interface de um sistema é o meio de comunicação e interação entre o usuário e o sistema, interfaces mais usuais e agradáveis,

Embed Size (px)

Citation preview

UNIVERSIDADE FEDERAL DE SANTA CATARIANA

TECLADO VIRTUAL PARA DISPOSITIVOS MÓVEIS

GUY BOORLLE OLIVEIRA SILVA

RASCUNHO DO TRABALHO DE CONCLUSÃO DE CURSO

Orientador: Profº Claudio Magalhaes de Oliveira

Florianópolis, 2 de Julho de 2008.

GUY BOORLLE OLIVEIRA SILVA

TECLADO VIRTUAL PARA

DISPOSITIVOS MÓVEIS 

Rascunho do Trabalho de Conclusão de Curso a ser Entregue na disciplina Projetos 1 

Profº Claudio Magalhaes de Oliveira

Florianópolis, 2 de Julho de 2008.

RESUMO

A usabilidade dos computadores de mão e das aplicações para estes equipamentos é um fator determinante   do   sucesso   deste   segmento   da   computação   móvel.   As   necessidades   e características   do   usuário   móvel,   o   contexto   de   uso   dos   computadores   de   mão,   as características das aplicações e as limitações físicas destes equipamentos são fatores que irão influenciar a interação e devem ser considerados tanto no projeto das interfaces quanto na avaliação de usabilidade destes equipamentos. Este trabalho teve como objetivo tratar uma das limitações dos dispositivos móveis, a entrada de dados. Foi apresentando uma maneira diferente de realizar esta tarefa seguindo conceitos de usabilidade e ergonomia.

      Palavras chave: Teclado Virtual, Dispositivos Móveis, Algoritmos Genéticos. 

SUMÁRIO

Introdução....................................................................................................................3

1 HANDHELDS.............................................................................................................5

1.1 Características...................................................................................................................6

1.1.1 Saída de dados...............................................................................................................................6

1.1.2 Entrada de Dados .........................................................................................................................6

1.1.3 Híbridos..........................................................................................................................................7

2 Teclado Virtual..........................................................................................................9

3 Algoritmos Genéticos............................................................................................11

3.1 Inicialização.....................................................................................................................12

3.2 Seleção...........................................................................................................................13

3.2.1 Seleção por Roleta.......................................................................................................................13

3.2.2 Seleção por Torneios...................................................................................................................14

3.2.3 Seleção por Elitismo....................................................................................................................14

3.3 Reprodução e Mutação...................................................................................................15

3.4         Algoritmos genéticos paralelos ...............................................................................16

4 Solução proposta...................................................................................................18

4.1 Novo Modelo <sofrerá mudanças>..................................................................................18

4.1.1 Clique ...........................................................................................................................................19

4.1.2 Deslize..........................................................................................................................................19

4.2 Utilização........................................................................................................................19

5 Resultados..............................................................................................................21

6 Considerações finais.............................................................................................22

6.1 Trabalhos Futuros............................................................................................................23

<ÍNDICE DE FIGURAS>

INTRODUÇÃO

         Nos últimos  anos  o desenvolvimento  de  sistemas  para  dispositivos  móveis  vem 

crescendo e   se   tornando  um ótimo  mercado  para   investimentos,  com a  popularização  de 

celulares com suporte a Java as aplicações destinadas a estes dispositivos tendem a crescer 

ainda mais. 

As pessoas estão a cada dia com mais mobilidade e a facilidade de se comunicar em 

qualquer lugar é uma razão freqüente para se possuir um dispositivo móvel. Poucas pessoas se 

encontram o   tempo   todo em apenas  um único   local   físico,  por   isso  a  necessidade  de  se 

compreender   o   hábito  dessas   pessoas  para   um bom projeto  de   sistema  para  dispositivos 

móveis.

Assim como nos  sistemas  para  computadores  de  mesa,  os   sistemas  para  dispositivos 

móveis precisam de uma maior preocupação com a sua usabilidade, devido as suas restrições 

que limitam em muito a capacidade de desenvolvimento de interfaces. 

A interface de um sistema é  o meio de comunicação e  interação entre o usuário e o 

sistema, interfaces mais usuais e agradáveis, chamam a atenção e definem a preferência por 

um ou outro sistema, é mais uma das características que pode influenciar na escolha de um 

software. 

4

Este trabalho mostra uma abordagem diferente ao problema de inserção de dados em 

dispositivos móveis com telas sensíveis ao toque, através de um novo conceito de interação 

com o usuário.  Para  isso,  noções  de usabilidade  foram empregadas  resultando num novo 

modelo  de   teclado  e   de  maneira   a   aumentar   a   eficácia   do   teclado  um programa  para   a 

otimização   do   seu   layout   foi   criado.   Este   programa   utiliza   uma   técnica   de   computação 

evolucionária chamada de Algoritmos Genéticos.

Objetivos

Sabendo das deficiências presentes na área de usabilidade em dispositivos móveis este 

trabalho  visa  apresentar  uma nova maneira  mais  eficiente  e  agradável  ao  usuário  para  a 

inserção de dados nos dispositivos citados.

Organização do trabalho 

Este trabalho está organizado de forma a se obter uma melhor compreensão dos assuntos 

envolvidos,   no   Capítulo   1   é   feita   uma   breve   explanação   sobre   dispositivos   móveis, 

abrangendo conceitos, características e problemas relacionados a estes aparelhos. 

No capitulo   seguinte  é   apresentado  o  conceito  de   teclado  virtual   suas   aplicações     e 

problemas   inerentes   ao   seu   desenvolvimento.   Na   sequencia   existe   uma   abordagem   ao 

conceito de Algoritmos Genéticos, suas peculiaridades, funcionamento Por fim teremos uma 

conclusão geral do trabalho e propostas para trabalhos futuros. 

1 HANDHELDS

Há muito tempo que atividades como anotar os compromisso do dia seguinte, ligar para 

seu   amigo,   ler   um  livro,   tirar   uma   fotografia,   escrever   uma   carta   ou  ouvir   uma  musica 

deixaram de ser realizadas por um objeto distinto. Hoje nem mesmo um computador com 

mouse, teclado, monitor, câmera web, etc. é necessário para realizar estas atividades, com o 

avanço  tecnológico  é  possível   realizar   tudo isso com um chamado “Handheld” que é  um 

dispositivo de bolso, com algum poder computacional<ref handheld>(HandHeld, Wikipedia).

A classe mais conhecida e difundida destes dispositivos é o celular. Pesquisas já indicam 

que existem cerca de 3 Bilhões de linhas ativas no mundo segundo a GSMA<ref gsma>, este 

número representa praticamente a metade da população do planeta. Isto, considerando apenas 

um   tipo   de   equipamento,   se   fossem   contabilizados   Assistentes   Pessoais   Digitais(PDAs), 

tocadores de musica, consoles de jogos, etc. esse número cresceria muito mais.

Este   tipo  de comportamento  evidencia  como as  pessoas de hoje estão cada vez mais 

interessadas  na  mobilidade,   assim é   natural   que  mais   empresas   invistam  na  área   e  mais 

produtos sejam lançados ou aperfeiçoados com novas tecnologias.  

6

1.1 Características

A gama de dispositivos é muito vasta bem como suas aplicações, mas ainda assim eles 

compartilham algumas  características  como métodos  de  entrada  de dados  ou métodos  de 

saída.  Um detalhamento maior destes itens está abaixo.

1.1.1 Saída de dados

Na grande maioria destes aparelho o método de saída mais utilizado é uma tela seja ela 

LCD ou Oled. Devido ao tamanho dos dispositivos é muito comum que sua tela também seja 

pequena. Esta limitação no espaço da tela é um grande problema enfrentado pois a tela não 

pode ser fisicamente maior, sem tornar o dispositivo grande,   fazendo assim com que ele 

perca  a   sua  característica  principal  que é  poder   ser    carregado na  mão ou  no bolso.  Os 

desenvolvedores tentam lutar contra esta limitação,   fazendo uma interface melhor possível 

mas mesmo assim como resultado ainda   encontra­se  interfaces difíceis  de serem usadas, 

textos   pequenos  que   tornam a   leitura   difícil,   além de   limitações   com a  apresentação  de 

gráficos e pequena informação contextual(BREWSTER; CRYER, 1999). 

1.1.2 Entrada de Dados 

A entrada de dados  ainda não segue uma  padronização, a exemplo dos computadores de 

mesa que possuem teclado e mouse.   Para os computadores de mão a entrada de dados é 

diferente para cada dispositivo,  podendo ser através de botões, mini teclados, telas de toque 

ou por comando de voz, no   caso dos celulares. Outra peculiaridade dos celulares é o seu 

método de entrada dados, conhecido como multi­tap, que força o usuário a pressionar várias 

7

vezes uma  tecla para chegar a letra desejada, este método é padrão para praticamente todos 

os  celulares  mas  é   considerado  difícil,   segundo Weiss<ref  weiss>   .  Como alternativa  ao 

multi­tap, existe o método T9 que baseado na predição de palavras, faz com que o usuário 

pressione apenas a tecla que contém a letra desejada e o software através de um banco de 

dados tenta adivinhar a palavra(Bertiol; Cybis, 2004). 

De   acordo   com   um   argumento   de   Dertouzos(2001)   o   uso   da   voz   como   forma   de 

interação entre pessoas e máquinas, deve torna­se o principal método de comunicação, já para 

o   caminho   inverso   da   informação,   a   visão   é   a   forma   mais   adequada.   Ainda   segundo 

Dertouzos, a tecnologia de reconhecimento de voz precisa amadurecer um pouco mais antes 

de ser definida como padrão de entrada de dados

1.1.3 Híbridos

Em 1971 o Dr. Samuel C. Hurst patenteou um invento que, depois de muito tempo, viria 

a se tornar moda entre os handhelds, o Elograph. Que nada mais é  do que uma interface 

sensível ao toque (Touch Screen). Essa interface é ao mesmo tempo um método de entrada 

como um método de saída, uma vez que o usuário pode selecionar, com os dedos, valores na 

tela e esta consegue exibir os resultados.

Os pontos fortes dessa interface seriam:

a) Aumento na gama de  interação do usuário,   já  que agora ele  possui  uma área 

muito maio para interagir;

8

b) Redução   na   quantidade   de   botões   do   aparelho   pois   quase   todos   podem   ser 

incorporados na tela;

c) Aumento na qualidade gráfica da informação a ser exibida devido ao aumento do 

tamanho da tela.

Os pontos fracos dessa interface são :

a) A falta de resposta táctil às interações do usuário;

b) O tempo de vida útil da tela.

Mesmo a tecnologia já sendo conhecida a muito tempo, os programas que se utilizam 

dela nos handhelds precisam de muitas melhorias quanto a usabilidade.  Isto se da devido ao 

fato do touchscreen ter iniciado sua  comercialização em escala industrial a poucos anos o que 

dificultou pesquisas e desenvolvimento nesta área.

2 TECLADO VIRTUAL

Teclado virtual é um software que permite entrada de texto em programas de computador 

de maneira alternativa ao teclado convencional. A maioria se baseia em receber cliques do 

dispositivo  apontador   (mouse,   canetas  ou   touchscreen)   sobre  uma  imagem de   teclado.  A 

imagem clicada é convertida para um caractere de texto, que é escrito na tela do editor.

Normalmente   tem­se   todas   as   teclas   de   um   teclado   convencional   como   'Ctrl',   'Alt', 

'PgUp' , etc. porém em se tratando de um dispositivo com área reduzida é inviável, em termos 

ergonomicos, considerar a disponibilização de todas as teclas ao mesmo tempo. A solução 

Fonte: [Intelliadmin, 2007]

10

mais comum é agrupar as teclas menos utilizadas em outros modos de visão , onde poderão 

ser acessadas quando requisitado pelo usuário pelo usuário. Na  Figura 2  isso fica claro, na 

visão atual o usuário só tem acesso aos símbolos numéricos, pontuais e acentuais para acessar 

as letras o usuário deverá acessar a tecla 'abc'.

Figura 2: Teclado Virtual com Teclas 

Escondidas

3 ALGORITMOS GENÉTICOS

Algoritmo genético(AG) é  um método estocástico de busca baseado nos conceitos de 

seleção   e   evolução   das   espécies.   Foi   desenvolvido   por   John   Holland   e   sua   equipe   na 

Universidade Michigan durante os anos setenta  (OLIVEIRA; WAZLAWICK, 2004). 

A execução do algoritmo genético se da por meio de iterações sobre uma população de 

indivíduos.   Cada   indivíduo   é   uma   codificação   de   uma   solução   em   potencial   do  

problema e a cada iteração novos indivíduos são gerados, avaliados e selecionados sendo que 

na(s)  próxima(s)  iteração(ões)  espera­se que uma melhor solução tenha sido alcançada.  O 

ciclo  para  quando uma das  soluções  atinge  uma meta  pré­estabelecida  ou  após  um dado 

período de atividade.

As principais dificuldades de se utilizar um AG para alcançar uma solução estão em:

● Construir uma representação genética do domínio da solução ;

● Obter uma função que consiga quantificar a qualidade de uma dada representação 

genética.

12

Mesmo sendo um método eficiente na solução de alguns problemas NP­Completos os 

AG não são a melhor opção para resolver todos as classes de problemas, na verdade eles são 

melhor empregados em problemas do tipo:

● Problemas de otimização, como aprendizado de maquina e vida artificial. Este é o 

campo mais desenvolvido dos AG;

● Problemas onde  uma pequena otimização afeta drasticamente o modelo. Os AG 

tendem   a   localizar   pequenas   melhorias   em   resultados   já   otimizados   por   outros 

algoritmos;

● Problemas onde uma otimização direta não consegue ser realizada. Por possuir o 

lado  probabilístico  os  AG podem  ter  mais  sucesso.  Esse   tipo  de  problema possui 

vários ótimos locais,  distorções,  funções não continuas ou tanta complexidade que 

alguns  algoritmos  simplesmente  não conseguem tratar   (problemas  NP­Completos), 

tais como o problema do caixeiro viajante (Travelling salesman problem, Wikipedia), 

problema da mochila (Lee; Lee,  1985) dentre outros como os descobertos por  Karp 

(1972 ).

3.1 Inicialização

Este é o primeiro passo do algoritmo, aqui cria­se uma população de indivíduos gerados 

aleatoriamente,  o  tamanho desta população está   relacionado com o problema em questão. 

Normalmente   esta   população   é   gerada   de   maneira   aleatória   mas   existem   casos   onde   a 

população  inicial é concebida nos intervalos onde se supõe estar a solução desejada.

13

Uma vez concluída da­se  inicio a parte  cíclica do algoritmo   que inicia  pela  seleção 

seguida da reprodução e mutação, sendo que após essa o passo da seleção é retomado. Muitas 

variantes   desse   ciclo   podem   ser   encontradas   em   AG   sendo   que   a   melhor   escolha   está 

associada as propriedades do problema em face.

3.2 Seleção

Durante esta fase uma porção da população existente é selecionada para ser a progenitora 

da próxima geração. Os indivíduos são selecionados com base em sua aptidão sendo que a 

mesma é calculada por uma função previamente estipulada, também conhecida como “fitness 

function”. 

A função de aptidão pode representar um dos pontos mais agravantes em AG, já que a 

mesma se mal implementada pode num caso mais brando tornar muito lento o algoritmo e no 

pior caso levar o mesmo a escolha de soluções não ótimas.

Uma vez calculada a aptidão dos indivíduos uma estratégia de seleção pode ser usada 

para escolher quais indivíduos podem passar ao próximo passo. Exemplos de estratégias são: 

seleção por roleta, por torneios, por elitismo.  

3.2.1 Seleção por Roleta

Dada   a   população   a   ser   selecionada   o   algoritmo  deste   método   atribui   um   intervalo 

numérico a cada individuo, este proporcional a sua aptidão naquele grupo. Uma vez que todos 

os indivíduos foram direcionados a um intervalo, um numero aleatório então é consultado e o 

14

individuo que possuir o intervalo que compreende o numero sorteado é então selecionado. 

Isto se repete até que um a quantidade desejada de indivíduos selecionados seja alcançada. 

Este   método   apresenta   problemas   quando   muitos   indivíduos   possuem   valores   para 

aptidão muito baixos, fazendo com que os mesmo quase não sejam escolhidos.  Isto pode 

causar uma convergência muito rápida para um ótimo local, já que muito da variabilidade das 

soluções estarão sendo ignoradas.

3.2.2 Seleção por Torneios

Neste  método  são  selecionados  aleatoriamente  alguns   indivíduos  da  população  e  um 

torneio entre eles é realizado onde quem possui a melhor aptidão é considerado vencedor. 

Eventualmente utiliza­se um valor probabilístico para determinar qual individuo selecionar 

detre os melhores do torneio.

3.2.3 Seleção por Elitismo

O   método   mais   simples,   onde   uma   cópia   dos   melhores   indivíduos   da   população   é 

selecionada. Dos três este é o método com mais chances de trazer problemas ao AG, isto pois 

com o passar das gerações os indivíduos tendem a se tornar homogêneos diminuindo o espaço 

de busca do AG.

15

3.3 Reprodução e Mutação

O próximo  passo  é   gerar   a   segunda  geração  de   soluções   a  partir  dos   indivíduos   já 

selecionados  em momentos  anteriores  através  de operadores  genéticos:  crossover(também 

conhecido por recombinação) e/ou mutação.

O Crossover consiste em, a partir de dois indivíduos, selecionar uma porção de material 

de um deles e aglutinar com o complemento desta porção copiado do outro participante dando 

origem   assim   a   um   novo   individuo.   Isto   se   repete   com   as   partes   não   selecionadas 

anteriormente   de   maneira   que   dois   indivíduos   gerem   outros   2.   É   possível   configurar   o 

crossover para que ele aconteça sob partes pré­definidas de cada solução, usando métodos 

determinísticos ou probabilísticos. 

Esta é a forma geral do método mas existem algoritmos que implementam variações do 

mesmo, como o GreedyCrossover. Esse algoritmo foi desenvolvido para problemas do tipo 

caixeiro viajante em que a nova solução não pode conter material repetido.

Considerando   a   representação   genética   da   solução   vemos   que   este   algorítimo   se 

comporta da seguinte maneira: o primeiro gene do cromossomo do pai é repassado ao filho; 

Procura­se este gene no cromossomo de cada um dos pais e a partir  calcula­se a distancia ate 

o “gene seguinte”; O filho ira receber o “gene seguinte” do pai em que a menor distancia for 

encontrada. Se este gene já existir no cromossomo do filho, então e repassado o gene do outro 

pai   (ou   seja,   com   a   maior   distancia).   Caso   este   gene   também   já   exista,   e   selecionado 

aleatoriamente   um   gene   ainda   não   existente   no   filho;   Repetem­se   os   itens   2   e   3   ate   o 

cromossomo filho estar completo. 

16

3.4         Algoritmos genéticos paralelos 

Alguns problemas podem necessitar  de grandes populações para que se possam obter 

bons   resultados   com algoritmos  genéticos.  Uma população  numerosa  necessita   de  maior 

quantidade de memória.  Também é  necessário avaliar   estes  indivíduos  para que se  possa 

aplicar a função  de seleção. O tempo de evolução é aumentado linearmente a medida que se 

aumenta a população. 

Outro ponto que pode tornar o algoritmo genético lento é a utilização de uma função de 

aptidão complexa que demanda muito poder de processamento. Mesmo um pequeno aumento 

no tempo  de  avaliação  de  um  indivíduo  pode acarretar  em   um   grande impacto   no 

tempo total do algoritmo genético. A função   é   chamada   para   avaliar   cada   indivíduo 

de   todas   as   populações. 

Qualquer acréscimo implica em um crescimento quadrático no tempo total de evolução. 

A   motivação  básica para  os   estudos  sobre  algoritmos  genéticos  paralelos  foi  reduzir 

o tempo   de   processamento   necessário   para   se   obter   soluções   aceitáveis.   Isto   foi 

possível implementando   algoritmos   genéticos   em   diferentes   arquiteturas   paralelas. 

A     primeira     tentativa     de     algoritmo     genético     paralelo     foi     feita     por     John 

Grefenstette (1981). Uma   classificação   dos   tipos   de   algoritmos   genéticos   paralelo 

pode ser encontrada em (NOWOSTAWSKI, POLI,   1999)   e   (CANT'U­PAZ, 1995). Esta 

taxinomia  divide  os algoritmos genéticos paralelos em três categorias: paralelização global, 

modelo em ilhas e modelo em células. 

17

 A paralelização global modifica o código original a fim de melhor aproveitar os recursos 

de   arquiteturas   paralelas.   Não   altera   a   semântica   nem   os   resultados   obtidos.   Somente 

balanceia a carga de processamento entre vários processadores. A população é armazenada 

em um único local e a probabilidade de cruzamentos entre os seus integrantes é mantida em 

relação à versão serial do algoritmo genético. 

As outras duas categorias de paralelização modificam o formato do algoritmo genético. 

Ao invés de manterem uma única população, utilizam várias populações que simulam um 

afastamento entre   os   indivíduos.   As   populações  evoluem   com   certa   independência 

e,     em     certos     momentos, trocam   informações   genéticas   com as   outras   populações 

através  de “migrações ”.   Ao  se  utilizar várias populações parcialmente isoladas, reduzse a 

probabilidade de que a busca fique presa em um máximo  local.   Além   disso,   é   possível 

que, ao  final  da evolução,  apareçam   boas   soluções   com genótipos   divergentes   nas 

várias      populações.      Alguns     estudos      mostram     que,      mesmo     em equipamentos 

monoprocessados,     estes     algoritmos     obtêm     melhores     resultados     que     algoritmos 

genéticos seriais (GORDON, WHITLEY, 1993, p.183). 

Também é possível realizar várias evoluções completamente independentes. Ao final do 

processo,   cada   algoritmo   genético   pode   ter   encontrado   uma   boa   solução   diferente.   As 

melhores soluções são coletadas dentre as populações e se tem então a solução final. 

4 SOLUÇÃO PROPOSTA

4.1 Novo Modelo <sofrerá mudanças>

Visando cobrir as deficiências dos teclados virtuais para handhelds um esquema novo de 

teclado foi concebido visando maximizar o espaço do botões para facilitar o manuseio com os 

dedos assim como a visualização de seu conteúdo. 

Para   tal   uma  nova   abordagem   de   uso   foi   criada,   onde   além   dos   comuns   clique   foi 

adicionado o efeito deslize. A idéia é  simples clicando em um ponto e deslizando até  um 

outro ponto produz os símbolos que forem interceptados no movimento.

Figura 3: Modelo de Teclado Proposto

19

A  Figura  3  mostra  o  modelo  criado  neste   trabalho.  Neste  modelo  para  produzir  um 

símbolo existem duas maneiras:

4.1.1 Clique 

Quando o símbolo estiver centralizado em uma das teclas grandes (as de cor clara na 

Figura 3) basta clicar nele e o símbolo será exibido na saída  Por exemplo clicando na tecla 

que possui um 'X' fará com que um 'X' seja exibido na saída

4.1.2 Deslize

Quando o símbolo estiver em uma das arestas do botões basta deslizar entre as teclas com 

a qual o símbolo faz divisa, não importando a direção. Por exemplo apertando a tecla 'X' e 

deslizando (sem soltar) até a tecla 'V' fará com que na saída seja exibido 'n'. O acesso via 

deslize pode continuar enquanto for necessário sendo que a cada borda de tecla atravessada 

será produzido na saída o símbolo ali presente.

4.2 Utilização

Como esse sistema de uso não é comum uma pequena indicação visual acontecerá assim 

que o usuário pressionar uma das teclas(Figura 4). Onde a coloração das outras teclas serão 

modificadas passando a idéia de que elas não estão acessíveis naquele instante.

20

 Se o usuário soltar a tecla, o sistema volta a coloração inicial, no entanto se ele deslizar 

na direção de algum dos símbolos acessíveis1  aquele símbolo será produzido na saída e a 

coloração das teclas será atualizada. 

1 No caso da Figura 4 os simbolos acessíveis são: b, d, i, m, n, espaço.

Figura 5: Atualização das cores apos uma seleção 

de simbolo utilizando o deslize

5 RESULTADOS

<texto a ser inserido>

6 CONSIDERAÇÕES FINAIS

Uma boa interface com facilidade de uso realmente é fator de sucesso para um software e 

pode   ser   item   decisivo   na   hora   de   escolher   entre   softwares   que   tenham   a   mesma 

funcionalidade. Haja visto a briga dos Sistemas operacionais modernos Windows vs Linux, 

sendo que este último apesar de apresentar uma robustes maior, em termos de confiabilidade e 

segurança, sob seu adversário não é tão bem quisto entre os usuários finais dada sua falta de 

usabilidade.

Desenvolver softwares para dispositivos móveis requer um estudo maior em relação a 

interface devido as restrições destes dispositivos, em relação a tamanho de tela, entrada de 

dados e utilização dos recursos. Apesar de esforços estarem sendo feitos nesta área ainda 

existe muito a ser repensado.

Em se   tratando  de   teclado  virtual,   o  presente   trabalho  não visa  propor  uma  solução 

completa à questão, pois tecnologias novas surgem a cada instante junto a novas maneiras de 

aplica­las que podem tornar essa solução impraticável. Porém, no estado tecnológico atual, 

este trabalho tenta abrir um novo sugerir uma nova abordagem ao problema.

23

6.1 Trabalhos Futuros

<texto a ser criado>

REFERÊNCIAS BIBLIOGRÁFICAS

<sofrerá mudanças>

Lee, C. C.; Lee, D. T. A simple on­line bin­packing algorithm.Journal of the ACM Volume 32 , Issue 3(July 1985)

Richard M. Karp (1972). "Reducibility Among Combinatorial Problems", in R. E. Miller and J. W. Thatcher (editors): Complexity of Computer Computations. New York: Plenum, 85–103.

ROCHA, José Antonio Meira da. Modelo de Trabalho de Conclusão de Curso (TCC). Modelo de documento digital do programa OpenOffice 2.0 disponível em <http://www.meiradarocha.jor.br/uploads/1021/196/modelo_de_projeto_de_TCC­2006­06­12a.sxw>. Acesso em: 29 nov. 2007 .

 Travelling salesman problem. Wikipedia the free Enciclopedia. Disponível  em: <http://en.wikipedia.org/wiki/Traveling_salesman_problem>. Acessado em 10 mar. 2008.

HANDHELD. Wikipedia the free Enciclopedia. Disponível em : <http://en.wikipedia.org/wiki/Handheld>.  Acesso em: 29 nov. 2007.

GSMA. GSM Association. Disponível em: <http://www.gsmworld.com/>. Acessado em: 29 nov. 2007.

OLIVEIRA, Cláudio M de; WAZLAWICK, Raul S. Electrical reallocation of transformers in distribution systems  using genetic algorithms. Engineering Intelligent Systems. CRL Publishing Ltd. 2004

INTELLIADMIN. Windows XP Tablet Keyboard. Disponível em: <http://www.intelliadmin.com/images/Windows%20XP%20Tablet%20Keyboard.gif>. Acessado em: 30 nov. 2007.

BREWSTER, Stephen A., CRYER, Peter G. Maximising Screen­Space on Mobile Computing Devices. Conference on Human Factors in Computing Systems, 1999.

WEISS, S. Handheld Usability. England: John Wiley & Sons Ltd, 2002.

25

BETIOL, Adriana H., CYBIS, Walter de A. Avaliação de usabilidade para os computadores de mão: um estudo comparativo entre três abordagens para ensaios de interação. Florianópolis, 2004.

DERTOUZOS, M. The Unfinished Revolution: Human­centered Computers and What They Can Do for us. Nova Iorque, 2001.

                      

CANT'UPAZ, Erick. A summary of research on parallel genetic algorithms. IlliGAL report No. 97003. University of Illinois at UrbanaChampaign. 1995 

GORDON, V.;WHITLEY,  D. Serial and Parallel Genetic Algorithms as Function Optimizers. Proceedings of the 5th International Conference on Genetic Algorithms (ICGA5). 1993 

NOWOSTAWSKI, Mariusz; POLI,  Riccardo. Parallel Genetic Algorithms Taxonomy. Proceedings of Third International Conference on Knowledgebased Intelligent Information Engineering Systems KES'  99. 1999 

GREFENSTETTE, J. J. Parallel adaptive algorithms for function optimization.. Technical Report CS8119. Computer Science Department, Vanderbilt University, Nashville, TN. 1981