12.07.2015 Views

Protótipo de um weaver para programação orientada a aspectos em ...

Protótipo de um weaver para programação orientada a aspectos em ...

Protótipo de um weaver para programação orientada a aspectos em ...

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.

ex<strong>em</strong>plo do quadro 2, i<strong>de</strong>ntificado por logInsert, está se referindo ao métodoInsert da classe Arquivo, não importando quais sejam os parâmetros.2.2.2 AdviceOs advices são construções s<strong>em</strong>elhantes aos métodos na orientação a objetos e sãoassociados aos pointcuts. Eles contêm o código que será inserido no ponto <strong>de</strong> junçãoquando o pointcut correspon<strong>de</strong>nte for atingido. Po<strong>de</strong>m ser executados antes ou <strong>de</strong>poisdo método interceptado (KULESZA; SANT’ANNA; LUCENA, 2005). Todo pointcut<strong>de</strong>ve possuir <strong>um</strong> ou dois advices.Na linguag<strong>em</strong> AOPDelphi, o código Delphi contido no advice não é analisadopelo compilador. A linguag<strong>em</strong> permite que seja capturado o objeto que invocou ométodo interceptado, po<strong>de</strong>ndo utilizá-lo no escopo do advice, através da palavra self,como se tivesse sido criado localmente, porém é <strong>um</strong>a referência do objeto que chamou ométodo. No aspecto ex<strong>em</strong>plificado no quadro 2, t<strong>em</strong>-se a impl<strong>em</strong>entação <strong>de</strong> <strong>um</strong> advicedo tipo before associado ao pointcut logInsert. Conforme o ex<strong>em</strong>plo, o códigoShowMessage(‘Olá Mundo!’) será executado antes da execução do métodoInsert da classe Arquivo.3. AOPDelphiO AOPDelphi é <strong>um</strong>a ferramenta que provê suporte à programação <strong>orientada</strong> a <strong>aspectos</strong><strong>para</strong> a linguag<strong>em</strong> Delphi e é composta por <strong>um</strong>a linguag<strong>em</strong> <strong>de</strong> aspecto e <strong>um</strong> <strong>weaver</strong>. O<strong>weaver</strong> é o combinador <strong>de</strong> <strong>aspectos</strong>. Sua função é combinar os programas escritos <strong>em</strong>linguag<strong>em</strong> <strong>de</strong> componentes, no caso, as regras <strong>de</strong> negócio impl<strong>em</strong>entadas comorientação a objeto, com os escritos <strong>em</strong> linguag<strong>em</strong> <strong>de</strong> <strong>aspectos</strong>, gerando <strong>um</strong> programaque mescle as funcionalida<strong>de</strong>s <strong>de</strong>finidas nesses programas <strong>de</strong> entrada. Este processo échamado <strong>de</strong> weaving (GROTT, 2005).A ferramenta foi impl<strong>em</strong>entada utilizando a linguag<strong>em</strong> <strong>de</strong> programação Delphino ambiente Borland Delphi 7. Na impl<strong>em</strong>entação do compilador dos programas <strong>de</strong><strong>aspectos</strong> foi utilizada também a ferramenta GALS (GESSER, 2003). Através <strong>de</strong>le foramgeradas as classes <strong>para</strong> a impl<strong>em</strong>entação dos analisadores léxico e sintático, e a interfaceda classe do analisador s<strong>em</strong>ântico. Isso é feito com base nas <strong>de</strong>finições regulares,palavras reservadas, símbolos especiais, gramática e outras informações que sãofornecidas como entrada na ferramenta.Na figura 1 é apresentado o diagrama <strong>de</strong> ativida<strong>de</strong>s do AOPDelphi on<strong>de</strong> estãoespecificadas suas funcionalida<strong>de</strong>s <strong>de</strong> forma geral. Ele está dividido <strong>em</strong> duas raias,representadas pelo <strong>de</strong>senvolvedor e a ferramenta, com suas respectivas ativida<strong>de</strong>s.

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

Saved successfully!

Ooh no, something went wrong!