An Aspect-oriented Implementation Method - Castelo Branco Soares, Sérgio (2005)
Esta tese define um método de implementação orientado a aspectos que guia a implementação de requisitos (concerns) de comunicação (distribuição), gerenciamento de dados e de controle de concorrência como aspectos. Um aspecto é um novo mecanismo de abstração adicionado pelo paradigma orientado a aspectos estendendo o paradigma orientado a objetos. O objetivo desta nova abstração é aumentar a modularidade do software e, portanto, sua manutenibilidade. A modularidade alcançada pelo uso de aspectos permite que programadores adicionem ou modifiquem a funcionalidade do software com mudanças não-invasivas, as quais mantém o código base livre de detalhes sobre estas mudanças e, portanto, mais fácil de entender e modificar. Além disso, este tipo de mudança evita que códigos de diferentes requisitos (concerns) fiquem misturados com o código base e entre si e que fiquem espalhados por vários módulos do software. Também definimos como o método de implementação pode ser composto com o processo de desenvolvimento RUP, de modo a ajustar atividades de gerenciamento, levantamento de requisitos, análise e de projeto para que possam suportar a aplicação do método num contexto do desenvolvimento de software. Além disso, o método apresenta uma abordagem de implementação alternativa que tenta antecipar mudanças de requisitos através da implementação de protótipos funcionais mais precocemente do que numa abordagem regular. Desta forma, clientes e desenvolvedores podem testar o software antes de aplicar esforço adicional para implementar requisitos de distribuição, persistência e de controle de concorrência. Um estudo foi executado de modo a caracterizar quão útil é esta abordagem alternativa, provendo um suporte para a tomada de decisões sobre quando utilizar a abordagem alternativa ou a regular. Em adição, o método provê suporte automatizado para a geração de tipos do software base e de aspectos para implementar requisitos de gerenciamento de dados, comunicação e de controle de concorrência. De fato, esta ferramenta guia a aplicação do método e o uso de um framework de aspectos gerado pelo método, o qual permite um reuso de parte dos aspectos gerados neste trabalho. O método de implementação foi definido com base numa arquitetura de software específica que apesar de específica pode ser utilizada pra implementar vários tipos de softwares