TRABALHO FINAL DE CURSO - INESC-ID
TRABALHO FINAL DE CURSO - INESC-ID
TRABALHO FINAL DE CURSO - INESC-ID
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
MobileREVS 15-10-2006<br />
Figura 16 - Configuração hierárquica de ecrãs<br />
Para que cada ecrã respeite as características acima indicadas e se insira num<br />
grafo hierárquico de ecrãs conforme acabou de ser descrito, adoptou-se uma política de<br />
transições baseada em criações e invocações (ver Figura 17) [IMG]. Segundo esta<br />
política, cada ecrã é responsável pela criação dos seus subsequentes e, simultaneamente,<br />
tem a capacidade de invocar o seu antecessor (e.g. para regressar ao ecrã anterior).<br />
Figura 17 - Política de transições dos ecrãs<br />
Na criação de um filho, o ecrã pai passa-lhe a sua referência que é depois<br />
mantida pelo filho para realizar as invocações conforme necessário.<br />
Seguindo esta metodologia de implementação de ecrãs o desenvolvimento da<br />
interface mostra-se bastante adaptável a:<br />
• Adição de novos ecrãs: caso se pretender adicionar um novo ecrã apenas é<br />
necessário: (1) criar uma classe que herde as características do ecrã abstracto<br />
MenuScreen e implemente a interface IMenuScreen; (2) definir os<br />
métodos make() e commandAction() para, respectivamente, definir o<br />
conteúdo e o comportamento desse ecrã; (3) criar um pequeno método no<br />
ecrã pai que faça a criação e transição para o ecrã filho;<br />
• Alteração de ecrãs existentes: as alterações na interface são localizadas, e<br />
realizadas apenas na classe que representa o ecrã, mantendo-se o restante<br />
código inalterável.<br />
5.1.2. Comunicação<br />
Outro dos aspectos importantes da comunicação é o recurso a threads no<br />
contacto com os servidores nas fases de assinatura e submissão do voto. Esta decisão<br />
prende-se essencialmente com questões de desempenho. Como o estabelecimento de<br />
uma ligação é uma operação algo demorada, a utilização de threads permite que a<br />
aplicação contacte diversos servidores em simultâneo, sem ter de esperar pela resposta<br />
de um para passar ao próximo. Esta abordagem torna-se crítica em situações de falhas<br />
na comunicação, já que o timeout da ligação induz um atraso significativo no processo<br />
de votação.<br />
Luis Costa, Nuno Santos 51