Uma abordagem modular para projeto de software orientado a aspectos

AUTOR(ES)
DATA DE PUBLICAÇÃO

2008

RESUMO

O projeto de software visa descrever os principais aspectos do sistema a ser construÃdo atravÃs de mecanismos que ajudam a raciocinar sobre a complexidade. Dentre as ativi- dades do projeto de software, destaca-se a elaboraÃÃo e documentaÃÃo da arquitetura, um dos principais mecanismos para raciocinar e lidar com essa complexidade. Uma das principais metas do projeto da arquitetura à a modularizaÃÃo do sistema atravÃs do esta- belecimento de design rules que deverÃo ser obedecidas pelos desenvolvedores. Exemplos de design rules estabelecidas no projeto da arquitetura sÃo os servÃcos disponibilizados pelos componentes e as regras de comunicaÃÃo entre estes. A modularizaÃÃo dos sistemas de software tambÃm motivou o surgimento da Pro- gramaÃÃo Orientada a Aspectos (POA). Entretanto estudos recentes mostraram que a utilizaÃÃo da POA apesar de ser um meio efetivo para modularizaÃÃo de interesses trans- versais, pode prejudicar a modularidade dos demais interesses se design rules nÃo forem estabelecidas pelo projetista. Muitas das design rules necessÃrias para melhorar a modu- laridade de sistemas orientados a aspectos sÃo definidas na fase de projeto da arquitetura do software. Para criaÃÃo e documentaÃÃo do projeto da arquitetura uma das principais abordagens Ã(LDA), que permitem descrever a arquitetura de forma clara e nÃo ambÃgua, possibilitando a verificaÃÃo de uma sÃrie de propriedades que antes sÃo poderiam ser analisadas depois do implementaÃÃo do software. O problema na utilizaÃÃo desta abordagem à que o modelo de arquitetura utilizado pela maioria das LDAs, formado por abstraÃÃes como componentes e conectores, à diferente do modelo baseado em objetos utilizado por muitas linguagens de programaÃÃo, tornado difÃcil o mapeamento e a consistÃncia entre essas fases do desenvolvimento. Entretanto, para garantir a modularidade do sistema e as propriedades arquiteturais obtidas atravÃs de uma LDA, à necessÃrio apenas garantir que as design rules estabelecidas por esta sÃo obedecidas pelo cÃdigo desenvolvido. Neste trabalho propomos um mapeamento das design rules implicitamente dfinidas por uma linguagem de descriÃÃo arquitetural para uma linguagem de descriÃÃo de design rules, responsÃvel por verificar se estas estÃo sendo obedecidas no cÃdigo desenvolvido. A verificaÃÃo das design rules permite garantir que a modularidade e as propriedades arqui- teturais obtidas atravÃs do projeto da arquitetura sejam vÃlidas no cÃdigo desenvolvido. A LDA escolhida foi a linguagem AspectualAcme, que utiliza os conceitos da orientaÃÃo a aspectos, permitindo que as design rules geradas melhorem tambÃm a modularidade de sistemas orientados a aspectos. Para diminuir os custos com a traduÃÃo, tambÃm foi construÃda uma ferramenta capaz de gerar automaticamente, a partir de uma especificaÃÃo vÃlida em AspectualAcme, as regras na linguagem de descriÃÃo de design rules. AlÃm da economia de tempo dos desenvolvedores, o suporte automÃtico para traduÃÃo evita que erros sejam cometidos ou que design rules sejam esquecidas, garantindo dessa forma as propriedades verificadas no modelo arquitetura e a modularidade do sistema

ASSUNTO(S)

projeto modular ciencia da computacao mapeamento entre modelos models translation linguagem de des- criÃÃo de design rules aspectualacme modular design design rules description language

Documentos Relacionados