Вы находитесь на странице: 1из 6

Davi Pires Rios

Definio de um Testbed para Desenvolvimento de Software


Orientado a Aspectos

Pr-projeto de pesquisa apresentado ao


Programa de Ps-Graduao em Cincias da
Computao do Centro de Informtica CIn, da
Universidade Federal de Pernambuco UFPE
como requisito parcial do processo seletivo do
programa, nvel mestrado.

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:

Elaborao de uma metodologia para a execuo dos experimentos em DSOA.


Ser elaborada uma metodologia que defina as etapas e condies de execuo dos experimentos,
definindo regras e guidelines.
Execuo e divulgao de resultados de experimentos em DSOA
A metodologia definida dever ser validada atravs da execuo de experimentos, e seus resultados devem
ser divulgados. Os resultados desses experimentos so to importantes quanto o feedback que ele fornece
para a melhoria da metodologia de execuo dos experimentos.
Fortalecer a comunicao e integrao entre os grupos de pesquisa atuando na rea de DSOA.
Um testbed fornece um framework nico de comparao entre as tcnicas e processos sendo avaliados por
cada grupo de pesquisa. Portanto, uma ampla rede de comunicao entre estes grupos ir enriquecer
deveras a validade dos resultados, permitindo correlaes e comparaes valiosas.
Fortalecer a relao entre indstria e academia, facilitando a transferncia de conhecimento entre os setores.
As mtricas a serem avaliadas e otimizadas devem ressoar com os interesses da indstria. Sendo assim,
membros da indstria de software devem participar como stakeholders no projeto, compartilhando suas
dificuldades e solues esperadas com a academia.

Metodologia
As atividades a serem desenvolvidas durante a pesquisa esto abaixo descritas:

Pesquisa na rea de Engenharia de Software Experimental.


Levantamento das mtricas em uso na pesquisa em DSOA.
Levantamento das aplicaes em uso para benchmark na pesquisa em DSOA.
Definio da metodologia de um experimento para avaliao de uma tcnica na rea de DSOA.
Execuo do experimento definido na etapa anterior.
Divulgao dos resultados em um artigo.
Realizar reunies com membros da indstria e de outras instituies de pesquisa.
Planejamento de um ambiente de comunicao, comparao e divulgao dos resultados encontrados.
Divulgao da definio deste ambiente em um artigo.
Escrita da tese.
Defesa da tese.

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

Вам также может понравиться