Artigo Engenharia de Software 5 - Analisando o Desenvolvimento de Software Orientado a Aspectos no contexto de Extreme Programming
Este artigo apresenta como os conceitos de programação orientada a aspectos influenciam a metodologia XP para desenvolvimento de software.
Artigos Artigo Engenharia de Software 5 - Analisando o Desenvolvimento de Software Orientado a Aspectos no contexto de Extreme Programming
Analisando o Desenvolvimento de Software Orientado a Aspectos no contexto de Extreme Programming
Indicar pontos positivos e riscos associados do uso destas abordagens em conjunto.
Para aqueles que tenham interesse em trabalhar com POA no contexto de XP e saber quais são os benefícios e principais riscos do uso destas abordagens em conjunto.
Considerando que time-to-market e volatilidade de requisitos de software compreendem fatores cruciais para a criação de valor para o processo de desenvolvimento de software, cada vez mais novas estratégias são pesquisadas a fim de atender satisfatoriamente os diferentes pontos de vista dos stakeholders envolvidos [Boehm, 2006]. Neste cenário, destacam-se os processos de desenvolvimento baseados em metodologias ágeis [Shore e Warden, 2007] [Beck, 2000], os quais focam em comunicação constante, projeto minimalista e codificação simplificada. Por essas características, tais processos têm despertado o interesse de empresas e de grupos de pesquisa, com destaque para o Extreme Programming (XP), devido às práticas e aos valores adotados durante o desenvolvimento, tais como integração contínua, programação em pares, refatoração de código e programação baseada em testes (Test-Driven Development – TDD) [Paulk, 2000]. A estrutura do processo XP se baseia nos princípios ágeis, que contemplam melhorias nas relações com os clientes e entre os membros da equipe, realçando o ambiente e os recur­sos disponíveis na organização e buscando "quebrar" problemas grandes em um con­junto de vários sub-problemas, com o intuito de melhorar a qualidade das soluções [Teles, 2005].
Por outro lado, um dos fatores que impactam o desenvolvimento de software está na escolha adequada de metodologias e tecnologias durante a etapa de planejamento de um projeto, sobretudo perante o aumento da complexidade dos domínios de aplicação [Travassos et al., 2001]. Isso tem levado empresas e grupos de pesquisa a voltarem a sua atenção para o desenvolvimento e adoção de tecnologias que auxiliem o processo de desenvolvimento. Particularmente em XP, tem-se buscado por tecnologias que melhorem a elaboração e organização de produtos de software e que aumentem a produtividade dos desenvolvedores, evitando desviar a sua atenção dos reais objetivos do negócio do cliente, representados pelos requisitos funcionais – documentados nas chamadas histórias em XP. Nessa linha, o Desenvolvimento de Software Orientado a Aspectos (DSOA) surge como uma abordagem que objetiva ampliar a reusabilidade e a manutenibilidade de software, ao se basear no isolamento de certas funcionalidades em unidades encapsuladas [Elrad et al., 2001].
Na concepção de Kiczales et al. (1997), nem as técnicas de programação orientada a objetos (POO) nem as técnicas da programação procedural são suficientes para implementar com clareza importantes decisões do projeto. A Orientação a Aspectos (OA) estende a orientação a objetos (OO) com o intuito de tratar o entrela­çamento e o espa­lhamento de certos requisi­tos (interes­ses transversais ou crosscutting concerns) [Filman et al., 2004]. No entanto, ape­sar das me­lhorias almeja­das, alguns pontos po­dem difi­cultar a reutilização e a ma­nu­ten­ção, tais como a inver­são de de­pendência e a inconsciência [Santos et al., 2007], fato este decorrente do estágio atual do DSOA rumo à aplicabilidade em projetos reais e na indústria, visando seu amadurecimento.
Dessa forma, faz-se necessária uma análise acerca de quais são os possíveis impactos positivos e negativos que uma abordagem como DSOA provocaria em ambientes reais (empresas de pequeno e médio porte), especialmente naqueles que adotam os princípios e práticas de XP, onde isso se torna fundamental, dado que esse processo se baseia na agilidade e não é dirigido por planos. Este trabalho tem por objetivo analisar características (valores, princípios e práticas) de XP de forma a confrontá-las com algumas questões críticas relativas ao DSOA, o que representa um primeiro passo para se pensar em avaliar a aplicabilidade de DSOA em diferentes contextos, buscando por possíveis impactos positivos e/ou negativos. ...