Академический Документы
Профессиональный Документы
Культура Документы
Linha de Pesquisa:
Engenharia de Software
Professor proponente:
Prof. Dr. Srgio Soares
Recife
2010
Justificativa
O surgimento e o avano da pesquisa na rea de desenvolvimento de software orientado a aspectos (DSOA)
tm demonstrado a capacidade deste paradigma de lidar com propriedades sistmicas de um projeto, fornecendo uma
nova dimenso para expressar e implementar requisitos que atravessam vrios mdulos de forma simples e concisa. No
entanto, vemos que a adoo pela indstria dessa tecnologia ocorre de forma lenta, e uma das razes a falta de
experimentos quantitativos que demonstrem os benefcios e relatem os custos referentes a essa mudana.
A rea de engenharia de software experimental carrega consigo um amplo corpo de conhecimento no que
tange a realizao experimentos em engenharia de software, apoiando o avano iterativo e incremental da rea atravs
da validao das ideias surgidas dentro dela.
Este projeto visa apoiar-se sobre este conhecimento da rea de engenharia de software experimental para
definir um testbed sobre o qual podero ser avaliadas vrias hipteses sobre tcnicas e processos em DSOA. Tal recurso
permitir um melhor dilogo entre os grupos de pesquisa atuando na rea, que tero um framework nico por onde
comparar os resultados de seus trabalhos, apontando objetivamente os pontos fortes e fracos de cada um.
Adicionalmente, os resultados das avaliaes sero uma slida referncia para a tomada de deciso dentro da indstria,
que contar com dados quantitativos sobre as alternativas disposio.
O testbed composto por (1) um conjunto de aplicaes para benchmark, (2) artefatos gerados a partir da
aplicao de certas tcnicas e processos aplicao base, e (3) um conjunto de mtricas para avaliar os resultados de
cada tcnica.
Reviso da Literatura
As tcnicas da programao orientada a objetos (OOP) surgiram durante a dcada de 80 fornecendo um novo
conjunto de conceitos que permitiam modelar mais facilmente elementos de domnios do mundo real [1]. Essas ideias
foram amplamente adotadas, evoludas e devemos a elas grande parte dos recentes avanos em Engenharia de Software.
No entanto, desde cedo, OOP apresentou srias limitaes para lidar com propriedades sistmicas, nofuncionais, que no podiam ser facilmente encapsuladas, e que se espalhavam entre os vrios mdulos do projeto [2].
Temos como exemplos desses chamados crosscutting concerns questes de persistncia, distribuio, logging e
autenticao. Visando uma forma mais modular de tratar esse tipo de requisito, foi desenvolvido um novo paradigma de
programao chamado orientao a aspectos (AOP) [2], que fornecia uma nova dimenso para que o programador
defina num nico mdulo como tais requisitos se comportam atravs do sistema como um todo. Com o tempo, esse
paradigma de desenvolvimento de software evoluiu para tratar tambm de outras etapas de um projeto alm da
implementao, tais como requisitos [3] e arquitetura [4].
Infelizmente, h poucos relatos de usos de AOP na indstria, onde tais ideias tm tido uma lenta adoo [5].
Isso se deve principalmente pouca quantidade de dados quantitativos sobre os benefcios e os custos do DSOA [6].
Apesar de vrias opinies informais sobre impactos do uso de AOP no desenvolvimento de software, sem informaes
precisas e abundantes sobre seus prs e contras, membros da indstria tm pouca segurana em arcar com os
investimentos necessrios em treinamentos, ferramentas e recursos humanos necessrios.
Para preencher esta lacuna, contamos com o corpo de conhecimento da rea de Engenharia de Software
Experimental [1]. Atravs de experimentos controlados, podemos quantificar as afirmaes subjetivas feitas pelos
pesquisadores, facilitando a transferncia dessa tecnologia do meio acadmico para a indstria.
Alm de servir como apoio a essa tomada de deciso, a realizao de vrios experimentos permitir fazer
correlaes e comparaes que daro maior credibilidade s informaes obtidas. Dessa forma, o testbed torna-se mais
do que uma metodologia de execuo de experimentos e passa a ser tambm um meio de publicao e comparao dos
resultados encontrados pelos diversos grupos trabalhando com pesquisa na rea de DSOA. Dessa agregao de
informaes poderemos apontar mais clara e precisamente qual tcnica mais apropriada em cada cenrio.
Objetivos
O objetivo deste projeto definir uma metodologia para a construo de um testbed onde tcnicas e processos
da rea de desenvolvimento de software orientado a aspectos possam ser testadas e avaliadas de forma objetiva, usando
mtricas e aplicaes de benchmark padronizadas. Em particular, o projeto tem como objetivos especficos:
Metodologia
As atividades a serem desenvolvidas durante a pesquisa esto abaixo descritas:
Referncias
[5] HOHENSTEIN, Uwe; JGER, Michael. Using Aspect-Orientation in Industrial Projects: Appreciated or Damned?
In: ACM INTERNATIONAL CONFERENCE ON ASPECT-ORIENTED SOFTWARE DEVELOPMENT, 8., 2009,
Charlottesville. Proceedings of the 8th ACM international conference on Aspect-oriented software development.
Nova Iorque: Acm, 2009. p. 213 - 222.
[1*] WOHLIN, C.; RUNESON, P.; HST, M.; REGNELL, B.; WESSLEN A. Experimentation in Software
Engineering: An Introduction. Kluwer Academic Publishers, 2000.
[2] ELRAD, T., FILMAN, R., e BADER, A. Aspect-Oriented Programming. Communications of the ACM, v. 44(10), p.
29-32, Outubro, 2001 .
[3*] RAMOS, R. e CASTRO, J. F. B., Evaluation of a methodology for the measurement of the quality of AspectOriented Requirements Document. WER 2005, p. 161-172.
[4*] AOP + arquitetura, ADLs, etc.
[5] Hohenstein - Using aspect-orientation in industrial projects: appreciated or damned?
[6] Greenwood - On the Contributions of an End-to-End AOSD Testbed