Uma abordagem modular para projeto de software orientado a aspectos

Detalhes bibliográficos
Ano de defesa: 2008
Autor(a) principal: Dósea, Marcos Barbosa
Orientador(a): Meira, Silvio Romero de Lemos
Banca de defesa: Não Informado pela instituição
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Universidade Federal de Pernambuco
Programa de Pós-Graduação: Não Informado pela instituição
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
Link de acesso: https://repositorio.ufpe.br/handle/123456789/1745
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 modularizadã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 serviços disponibilizados pelos componentes e as regras de comunicação entre estes. A modularizacã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 modularizacã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 é a utilização de Linguagens de Descrição de Arquitetura (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 definidas 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