11.04.2013 Views

gestão de dados partilhados em ambientes de computação móvel

gestão de dados partilhados em ambientes de computação móvel

gestão de dados partilhados em ambientes de computação móvel

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

48 CAPÍTULO 3. APRESENTAÇÃO DO SISTEMA DOORS<br />

interface <strong>de</strong>finida. Esta aproximação permite criar um novo componente <strong>de</strong> um dado tipo <strong>de</strong> forma<br />

in<strong>de</strong>pen<strong>de</strong>nte, i.e., s<strong>em</strong> conhecer a impl<strong>em</strong>entação dos componentes com os quais ele interage.<br />

Em alguns componentes utilizaram-se classes base abstractas para <strong>de</strong>finir a interface do componente<br />

(<strong>em</strong> vez <strong>de</strong> interfaces Java). Esta opção t<strong>em</strong> duas vantagens. Primeiro, permite criar <strong>de</strong>finições típicas <strong>de</strong><br />

alguns métodos. Segundo, permite impl<strong>em</strong>entar <strong>de</strong> forma <strong>de</strong>finitiva os métodos que executam funções<br />

críticas para o sist<strong>em</strong>a DOORS, como por ex<strong>em</strong>plo, os métodos que lidam com a representação dos<br />

coobjectos e subobjectos usada no núcleo do sist<strong>em</strong>a (por ex<strong>em</strong>plo, os i<strong>de</strong>ntificadores). Esta aproximação<br />

garante que o mau funcionamento <strong>de</strong> um coobjecto não corrompe outros coobjectos.<br />

S<strong>em</strong>pre que necessário, um programador po<strong>de</strong> esten<strong>de</strong>r a interface básica <strong>de</strong>finida para um dado<br />

componente com novos métodos. A nova interface estendida po<strong>de</strong> ser usada, não só na criação <strong>de</strong> novos<br />

componentes <strong>de</strong>sse tipo, mas também na criação <strong>de</strong> outros componentes que necessit<strong>em</strong> <strong>de</strong> utilizar as<br />

novas funcionalida<strong>de</strong>s disponibilizadas pelos novos métodos. Neste caso, um componente que requeira<br />

as novas funcionalida<strong>de</strong>s apenas po<strong>de</strong> ser composto com um componente que impl<strong>em</strong>ente a interface<br />

estendida, impondo assim uma restrição nas composições possíveis.<br />

Um coobjecto é <strong>de</strong>finido como uma composição <strong>de</strong> componentes <strong>de</strong>finidos <strong>de</strong> acordo com o fra-<br />

mework <strong>de</strong> componentes DOORS. No protótipo do sist<strong>em</strong>a DOORS, o código <strong>de</strong> criação e ligação dos<br />

vários componentes <strong>de</strong>ve ser criado pelo programador como parte do código do componente cápsula.<br />

Como se disse anteriormente, as ligações entre os vários componentes <strong>de</strong>v<strong>em</strong> respeitar as interfaces<br />

esperadas por cada um dos componentes.<br />

No âmbito do projecto DataBricks [36] estão-se a investigar formas alternativas <strong>de</strong> <strong>de</strong>finição dos<br />

coobjectos. Assim, recorrendo a uma linguag<strong>em</strong> <strong>de</strong> composição <strong>de</strong> componentes, o ComponentJ [153],<br />

a composição e ligação dos vários componentes <strong>de</strong> um coobjecto <strong>de</strong>ve ser efectuada exteriormente ao<br />

código dos componentes do coobjecto. Esta linguag<strong>em</strong> <strong>de</strong>ve permitir ainda verificar estaticamente a<br />

compatibilida<strong>de</strong> das ligações entre os vários componentes. Finalmente, <strong>de</strong>ve ser possível criar esque-<br />

letos (t<strong>em</strong>plates) <strong>de</strong> coobjectos. Um esqueleto <strong>de</strong> um coobjecto <strong>de</strong>fine uma composição típica para um<br />

coobjecto no qual ficam por <strong>de</strong>finir um ou mais componentes (<strong>em</strong> geral, os subobjectos). Assim, um<br />

programador po<strong>de</strong> criar um coobjecto, a partir dos subobjectos que preten<strong>de</strong> gerir, usando o esqueleto<br />

com a s<strong>em</strong>ântica <strong>de</strong>sejada. Este trabalho está, no entanto, fora do âmbito <strong>de</strong>sta dissertação.<br />

3.4.1 Pré-processador<br />

Actualmente, o protótipo do sist<strong>em</strong>a DOORS inclui apenas um pré-processador para simplificar a criação<br />

<strong>de</strong> componentes e subobjectos. Os programadores <strong>de</strong>fin<strong>em</strong> um componente ou um subobjecto como uma<br />

classe na linguag<strong>em</strong> Java estendida com os seguintes el<strong>em</strong>entos:<br />

• Um conjunto <strong>de</strong> qualificadores <strong>de</strong> métodos (<strong>de</strong>scritos na secção 3.2.2.5) que <strong>de</strong>fin<strong>em</strong> o tipo <strong>de</strong>

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

Saved successfully!

Ooh no, something went wrong!