04.01.2014 Views

TRABALHO FINAL DE CURSO - INESC-ID

TRABALHO FINAL DE CURSO - INESC-ID

TRABALHO FINAL DE CURSO - INESC-ID

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!