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

AspectJem20minutos

DiogoVinciusWinck(diogo.winck@gmail.com)
VicenteGoetten(goetten@gmail.com)

1.Introduo

AOrientaoaObjetosestconsolidada.Entretanto,nemtodasaspromessasque
este paradigma se propunha a cumprir foram atendidas. Algumas solues foram
propostasnatentativadecumprirestaspromessaspendentes,entreelasaOrientao
aAspectos.

AArientaoaAspectos(OA)umparadigmaqueestendeaOrientaoaObjetos(e
outros,comooparadigmaestruturado)introduzindonovasabstraes.Estesnovos
elementossodestinadosasuprirdeficinciasnacapacidadederepresentaode
algumassituaes.

Esteartigofoicriadobaseadonocaptulo3eoutrosfragmentosdolivro:AspectJ
ProgramaoOrientadaaAspectoscomJava,escritopornselanadonoincio
de julho pela Editora Novatec. O nosso objetivo com este artigo sobrevoar os
assuntosligadoscomaAOecomoAspectJ.

Sobreolivro:
http://www.novateceditora.com.br/livros/poa/

http://www.submarino.com.br/books_productdetails.asp?Query=ProductPage&ProdTypeId=1&Pro
dId=1572973&ST=SE

2.InteresseseAspectos

Um dos elementos centrais da OA o conceito de Interesse, que so as


caractersticasrelevantesdeumaaplicao.Uminteressepodeserdivididoemuma
sriedeaspectosquerepresentamosrequisitos.Osaspectospodemseragrupados
nodomniodaaplicao,compondoosinteressesfuncionais,queformamalgicade
negcio.Oupodemseragrupadosemelementosqueprestamsuporteaosinteresses
funcionaisnomeadosporinteressessistmicos,etambmchamadosdeortogonaisou
transversais.

Segundo Piveta, quando duas propriedades devem ser compostas de maneira


diferenteeaindasecoordenarem,dizsequeelassoortogonaisentresi.Atentativa
deimplementaruminteressesistmicocomaaplicaodaOrientaoaObjetostem
como resultadocdigosquese espalham por todo o programa.Paraisso dseo
nomedecdigoespalhado(ScatteringCode).

Ocdigoespalhadopodeserclassificadoem:
1. Blocoduplicado.
2. Blococomplementar.

http://www.javafree.org/AvozJavanoBrasilPg.1
Aimplementaodevriosinteressessistmicosefuncionaisemummesmomdulo
comaorientaoaobjetoresultanocdigochamadodeemaranhado(TangledCode).
Ocdigoespalhadoeemaranhadodificultadamanutenoeareutilizaodecdigo.

3.OrientaoaAspectos

Christina von Flach G. Chavez, importante pesquisadora brasileira em POA


(Programao Orientada a Aspectos), afirmou que o desenvolvimento de um novo
paradigma de engenharia de software freqentemente progride da metodologia de
programao em direo s metodologias de projeto e anlise, fornecendo um
caminho completo pelo ciclo de vida de desenvolvimento de software, alcanando
assimamaturidade.Aprogramaoorientadaaaspectos(POA)apsumadcadade
pesquisas encontrase nesse ponto, resultando em ferramentas eficientes, uma
comunidadede usurioscapacitados eaplicaes iniciandoasuatrajetriaparao
mercado.

Os paradigmas atuais (como o POO) no atendem s necessidades para a


implementaodosrequisitosdeumsistemacompletosemquepartedosconceitos
desses paradigmas sejam quebrados. Na tentativa de resolver esses problemas, o
desenvolvimentoorientadoaaspectosemerge,promovendoaseparaoavanadade
perspectivas,desdeonveldaimplementaoatosoutrosestgiosdoprocessode
desenvolvimento,incluindoespecificaoderequisitos,anliseeprojeto.

Nesse contexto, umdos criadores da POA,Gregor Kiczales, sugerequepara um


paradigma de programao conseguir uma ampla aceitao, ele necessita ser
expressivo, eficiente, intuitivo, compatvel e possuir uma boa ferramenta que o
suporte.APOAjapresentaessascaractersticas,comopoderemosobservarapartir
deagora.

4.Oqueaprogramaoorientadaaaspectos?

A programao orientada a aspectos foi criada no fim da dcada de 1990, mais


precisamentenoanode1997,emPaloAlto,noslaboratriosdaXerox,porGregor
Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Videira Lopes,
JeanMarcLoingtiereJohnIrwin.Oobjetivoeraconstruirumaabordagemquefosse
um conjunto no necessariamente homogneo, que permitisse linguagem de
programao, composta por linguagem central e vrias linguagens especficas de
domnio,expressardeformaidealascaractersticassistmicas(tambmchamadasde
ortogonaisoutransversais)docomportamentodoprograma.Aessaabordagemdse
onomedemetaprogramao.

Uma forma de caracterizar uma linguagem de metaprogramao pelo seu


compilador. A princpio, os compiladores destinados orientao a aspectos no
geramumprodutofinal(umprogramacompiladoeexecutvelouinterpretvel),mas
umnovocdigo.Nessaprimeiracompilaosoacrescidoselementosaocdigo,para
dar suporte s novas abstraes. O cdigo resultante necessita ser novamente
compiladoparaqueseja,ento,geradooprodutofinal.Outracaractersticadameta
programaopresentenaPOAareflexocomputacional,emquepartedocdigo
geradodestinadaaalterarcaractersticasdoprprioprograma.

http://www.javafree.org/AvozJavanoBrasilPg.2
APOAestendeoutrastcnicas,comoaPOOouprogramaoestruturada,propondo
noapenasumadecomposiofuncional,mastambmsistmicadoproblema.Isso
permitequeaimplementaodeumsistemasejaseparadaemrequisitosfuncionaise
nofuncionais, disponibilizando a abstrao de aspectos para a decomposio de
interesses sistmicos, alm dos recursos j oferecidos pelas linguagens de
componentes,comoJava,porexemplo.

5.Resolvendovelhosproblemas

OprincipalobjetivodaPOAconsisteemsepararocdigoreferenteaonegciodo
sistemadosinteressestransversais,deumaformabemdefinidaecentralizada.Como
jvistoanteriormente,interessessoascaractersticasrelevantesdeumaaplicao.
Um interesse pode ser dividido em uma srie de aspectos que representam os
requisitos da aplicao. Os aspectos que podem ser agrupados no domnio da
aplicaocompemosinteressesfuncionais,referenciadostambmcomolgicade
negcio.

A separao e a centralizao propiciada pela POA so indicadas pela Figura 1.


GregorKiczales,noartigoquelanouaPOAnomundoacadmico,deixaclaroesse
objetivo.Eleobservouqueaslinguagensdapocapodiamfazerumtimotrabalhoao
representar umadasmuitasfacetas deumsistema.Entretanto,paraasdemais,o
resultado era sempre apenas satisfatrio ou mesmo sofrvel. Podese citar como
exemplolinguagensdafamliadoC(incluindooC++).Oseutrabalhoemlidarcom
caractersticasdehardwarelouvvel,tantoqueumagrandequantidadedosdrivers
parahardwarespresenteshojenomercadoforamdesenvolvidosnessalinguagem.J
ao lidar com persistncia em banco de dados, por exemplo, exigese um trabalho
maante.Emconseqncia,oresultadosocdigosdifceisdeseremreaproveitados,
dificuldadedeinteligibilidadedecdigo,etc.

Figura1SeparaodeinteressescomPOA.

A orientao a aspectos trabalha em paralelo com outro paradigma, portanto, os


conceitos aprendidos, por exemplo, na orientao a objetos, so amplamente

http://www.javafree.org/AvozJavanoBrasilPg.3
reaplicveis.APOApossibilitaumnvelmaiordeabstraonodesenvolvimentode
software. Esse nvel maior de abstrao e, conseqentemente, a separao bem
definida de cada um dos componentes, consistem no princpio fundamental da
engenhariadesoftware,poisestesestaroemumlocalbemdefinidonosistema.Na
Figura1,cadanuvemrepresentauminteressesistmicoimplementadonosistema,
comoauditoria(log),tratamentodeexcees,persistncia,distribuio,dentreoutros.
Porestarembemseparadoseemlocaisbemdefinidos,oscomponentespodemser
melhorreutilizadoseasuamanutenoelegibilidadetornasemaisagradvel.

Aodisponibilizarmecanismosparadecomposionoapenasdoselementosedas
relaespertinentesaosproblemas,mastambmparasepararinteressessistmicos,
aPOAprometesimplificaraengenhariadesoftware.Porexemplo,umaclassepara
implementaodocontroledeprodutos,conformeaFigura2 atendeapenas aum
interesse,noinfringindonenhumconceitodaorientaoaobjetos.

Figura2ClasseProduto.

Posteriormente,surgeanecessidadedeimplementaodocontroledeauditoria(log).
SemutilizarPOA,ointeresseseriaimplementadonaprpriaclasseProduto,como
podeserobservadonaFigura3.Casofossenecessrioimplementarocontrolede
excees,essetambmseriafeitojuntamentenaclasse,comopodeserobservadona
Figura4.Aconseqnciadissoumacrscimogradativodacomplexidadenocdigo.

http://www.javafree.org/AvozJavanoBrasilPg.4
Figura3ImplementaodocontroledeauditoriacomOO.

Figura4ControledeexceodaclasseProduto.

Naprogramaoorientadaaaspectos,porsuavez,osinteressessoprogramados
em mdulos separados (classes e aspectos, por exemplo). Aps a programao,
ocorreacombinaoentreasclasseseosaspectos,conformeindicadopelaFigura5.
Issolevasimplificaodoproblema,poisoprogramadorpodefocarcadainteresse
deformaindependente.

http://www.javafree.org/AvozJavanoBrasilPg.5
Figura5CombinaoentreaclasseProdutoeosdemaisinteresses.

6.Composiodeumsistemaorientadoaaspectos

EduardoPiveta(2001)afirmaqueumsistemaqueutilizaaprogramaoorientadaa
aspectoscompostopelosseguintescomponentes:
Linguagemdecomponentes:Alinguagemdecomponentesdevepermitirao
programadorescreverprogramasqueimplementemasfuncionalidadesbsicas
dosistema,aomesmotempoemquenoprevemnadaarespeitodoque
deveserimplementadonalinguagemdeaspectos.Exemplodelinguagemde
componentes:Java,C++,C#,PHPetc.

Linguagem de aspectos: A linguagem de aspectos deve suportar a


implementao das propriedades desejadas de forma clara e concisa,
fornecendoconstruesnecessriasparaqueoprogramadorcrieestruturas
quedescrevamocomportamentodosaspectosedefinamemquesituaes
elesocorrem.

Combinadordeaspectos:Atarefadocombinadordeaspectos(aspectweaver)
combinar os programas escritos em linguagem de componentes com os
escritos em linguagem de aspectos. No livro, abordamos a linguagem Java
comolinguagemdecomponenteseoAspectJcomolinguagemdeAspectos.

Programasescritosemlinguagemdecomponentes:Oscomponentespodem
ser considerados as unidades funcionais do sistema. Num sistema para
controlebancrio,podesedefinircomocomponentesosclientes,ascontas,os
funcionrios,dentreoutros.Nocontextodaprogramaoorientadaaaspectos,
os componentes so abstraes providas pela linguagem, que permite a
implementaodafuncionalidadedosistema.

Programas escritos em linguagem de aspectos para atender a interesses


sistmicos.

http://www.javafree.org/AvozJavanoBrasilPg.6
AcomposiodeumprogramaorientadoaaspectosexemplificadanaFigura6,que
mostra os programas escritos em linguagem de componentes, a linguagem de
aspectos,osprogramasescritosemlinguagemdeaspectoseocombinadoraspectual.
Como sada obtmse, ento, o cdigo combinado entre programas escritos em
linguagemdecomponenteseprogramasescritosemlinguagemdeaspectos.

Figura6Composiodeumsistemaorientadoaaspectos.

6.1Combinaoaspectual

Acombinaoaspectualoprocessoresponsvelporcombinaroselementosescritos
emlinguagemdecomponentescomoselementosescritosemlinguagemdeaspectos.
um processo que antecede a compilao, gerando um cdigo intermedirio na
linguagemdecomponentescapazdeproduziraoperaodesejada,oudepermitira
suarealizaoduranteaexecuodoprograma.

As classes referentes ao cdigo do negcio nos sistemas no sofrem qualquer


alteraoparasuportaraprogramaoorientadaaaspectos.Issofeitonomomento
dacombinaoentreoscomponenteseosaspectos.Esseprocessotambmpodeser
definidocomorecompilaoaspectual.

ACombinaoaspectualpodeser:

Esttica:Umsistemaorientadoaaspectosutilizandocombinaoestticapode
trazeragilidadeaomesmo,jquenohnecessidadedequeosaspectos
existam em tempo de compilao e execuo. O uso de uma combinao
esttica previne que um nvel adicional de abstrao cause um impacto
negativonaperformancedosistema.

Dinmica:Paraqueacombinaopossaserdinmicaindispensvelqueos
aspectos existam tanto em tempo de compilao quanto em tempo de

http://www.javafree.org/AvozJavanoBrasilPg.7
execuo.Utilizandoumainterfacereflexiva,ocombinadordeaspectostema
possibilidadedeadicionar,adaptareremoveraspectosemtempodeexecuo.

Ocombinadorutilizaosaspectoseoscomponentesparacriarumnovocdigo.Em
umambientededesenvolvimentoorientadoaaspectoshipotticos,capazdecombinar
osaspectossclassesdemodosimilaraumprogramador,oscdigosgeradosnofim
doprocessodedesenvolvimentodeumsistema,antesdeseremcompilados,seriam
semelhantes,tantoorientadoaobjetosquantoaaspectos.

7.Conceitosfundamentaisdaorientaoaaspectos

Aorientaoaaspectospossuiquatroconceitosfundamentais,queseroabordados
nossubtpicosaseguir.

7.1Pontosdejuno(joinpoints)

Ospontosdejunosolocaisbemdefinidosdaexecuodeumprograma,como,
porexemplo,umachamadaaummtodoouaocorrnciadeumaexceo,dentre
muitosoutros.

Apartirdospontosdejuno,socriadasasregrasquedaroorigemaospontosde
atuao.Todosospontosdejunopossuemumcontextoassociado.Porexemplo,a
chamadaparaummtodopossuiumobjetochamador,oobjetoalvoeosargumentos
domtododisponvelcomocontexto.

7.2Pontosdeatuao(pointcuts)

Pontos de atuao so elementos do programa usados para definir um ponto de


juno,comoumaespciederegracriadapeloprogramadorparaespecificareventos
queseroatribudosaospontosdejuno.

Ospontosdeatuaotmcomoobjetivocriarregrasgenricasparadefiniroseventos
queseroconsideradospontosdejuno,semprecisardefinilosindividualmente(o
que tornaria a POA quase sem sentido). Outra funo dos pontos de atuao
apresentar dados do contexto de execuo de cada ponto de juno, que sero
utilizadospelarotinadisparadapelaocorrnciadopontodejunomapeadonoponto
deatuao.

Aps a identificao dos pontos de juno para um determinado interesse,


necessrioagruplosemumpontodeatuao.Acombinaodopontodejunoe
atuaotornaevidenteaocorrnciadeinteressessistmicos,jqueesseinteresse
muito provavelmente estar propagado em diversas classes no sistema, e estas
classes,estaro,portanto,implementandomaisdeuminteresse.

7.3Adendo(advice)

Adendossopedaosdaimplementaodeumaspectoexecutadosempontosbem
definidosdoprogramaprincipal(pontosdejuno).

http://www.javafree.org/AvozJavanoBrasilPg.8
Osadendossocompostosdeduaspartes:aprimeiradelasopontodeatuao,
quedefineasregrasdecapturadospontosdejuno;asegundaocdigoqueser
executadoquandoocorreropontodejunodefinidopelaprimeiraparte.Oadendo
um mecanismo bastante similar a um mtodo (quando comparamos com a
programao orientada a objetos), cuja funo declarar o cdigo que deve ser
executadoacadapontodejunoemumpontodeatuao.

7.4Aspectos

Aspropriedadesdeumsistemaqueenvolvemdiversoscomponentesfuncionaisno
podemserexpressasutilizandoanotaoeaslinguagensatuaisdeumamaneirabem
localizada. Propriedades, tais como sincronizao, interao entre componentes,
distribuioepersistncia,soexpressasemfragmentosdecdigoespalhadospor
diversoscomponentesdosistema.

Umaspectoomecanismodisponibilizadopelaprogramaoorientadaaaspectos
para agrupar fragmentos de cdigo referente aos componentes nofuncionais em
umaunidadenosistema.Paradesenvolvimentodeumsistemadeagenda,poderiam
serrelacionadososseguintesinteressesaseremimplementados:

Gerenciadordecontatos

Gerenciadordecompromissos

Persistnciadosdados

Controledeacesso

Auditoria(log),dentreoutros

Doexemplocitado,osinteressesparacontroledeacesso,auditoriadeoperaese
persistncia de dados so necessrios, mas no inerentes ao negcio. Caso um
desses interesses fosse implementado com a utilizao somente das tcnicas da
orientaoaobjeto,ocorreriaocdigoemaranhadoeespalhado,conformeaFigura7,
ondeasbarrasverticaisrepresentamasclassesdosistemaeostraos,aocorrncia
docdigoparaimplementaodointeresse.

Naprogramaoorientadaaaspectos,essesinteresses noinerentesaonegcio,
denominadosinteressessistmicos,soagrupadosemaspectos,evitandoocdigo
espalhadoeemaranhado.Dessaforma,oaspectonopodeexistirisoladamentepara
implementao dos interesses do sistema (tanto funcionais quanto sistmicos). Os
objetoscontinuamexistindoenelessoimplementadososinteressesfuncionais.J
nosaspectossotratadososinteressessistmicos.Podemosdefinir,ento,queopar
aspectoobjetoaunidadeprincipalemumprogramaorientadoaaspectos,assim
comooobjetoseriaoprincipalemumprogramaorientadoaobjetos.

http://www.javafree.org/AvozJavanoBrasilPg.9
Figura7Ocorrnciadecdigoemaranhado.

8.Ondeeporqueaplicaraorientaoaaspectos

APOAcontribuinaimplementaodosinteressessistmicos,que,mesmonosendo
inerentesaonegcio,so,namaioriadoscasos,indispensveisparaosucessoda
aplicao.Pormeiodousodaorientaoaaspectos,essesinteressespodemser
agrupadosemunidadesmodulares,tornandoamanutenomaissimplesefacilitando
oresoporreduzirainterdependnciaentreosinteresses.Umarevisodalistados
interessessistmicos,sobaperspectivadaPOA,ficariadaseguinteforma:

Sincronizao de objetos concorrentes: a POA disponibiliza um mecanismo


eficazparamodularizarapolticadesincronizao.

Distribuio: com a programao orientada a aspectos, podese tornar a


distribuio transparente por meio da criao de um aspecto destinado a
representaresseinteresse,tornandodesnecessriaarefatorao.Oaspecto
mapeiatodoointeressededistribuioe,pormeiodocombinadoraspectual,
gerado um cdigo distribuvel similar ao que seria o cdigo refatorado,
conformeaFigura8.

Tratamentodeexcees:PormeiodousodaPOApossvelcentralizaras
polticasparatratamentodeexceesemunidadeselementares,oquefacilita
tanto a manuteno e legibilidade das classes quanto abordagem para o
tratamentodeexcees.

Coordenao de mltiplos objetos: A POA permite modularizar a lgica


destinadaasincronizaraintegraoentreosobjetosativosembuscadeum
objetivoglobal.

http://www.javafree.org/AvozJavanoBrasilPg.10
Persistncia:Pormeiodousodeaspectospossvelcentralizareabstraira
implementaodesseinteressedacamadadenegcio,facilitando,assim,a
manutenoeaobtenodemelhoriasnasabordagensaplicadas.

Auditoria: Com a POA, o interesse de auditoria pode ser implementado


independentementedaregradenegcio.Dessaforma,ocdigoestariaemum
nicolocalcentralizadoebemdefinidonosistema,sendoretiradodasclasses.

Figura8Acrescentadodistribuiopormeiodeaspectos.

6.AspectJOrientaoaAspectoscomJava

OAspectJumaextensoparaalinguagemdeprogramaoJava.Porisso,houvee
ainda h uma preocupao pela compatibilidade de quatro itens extremamente
importanteseessenciais:

Compatibilidade total todo programa Java vlido tambm um programa


AspectJvlido;

CompatibilidadedeplataformatodoprogramaAspectJpodeserexecutado
emumamquinavirtualjava(JVM);

Compatibilidade de ferramentas deve ser possvel estender ferramentas


existentes para suportar o AspectJ de uma forma natural; isto inclui IDE's
(Integrated Development Environments), ferramentas de documentao e
ferramentasdeprojeto;

Compatibilidade para o programador Ao programar com AspectJ, o


programador deve sentirse como se estivesse utilizando uma extenso do
linguagemJava.

http://www.javafree.org/AvozJavanoBrasilPg.11
ExisteumadivisodoAspectJemduas partes: alinguagemdeespecificaoea
linguagem de implementao. A parte da linguagem de especificao define a
linguagem na qual o cdigo escrito; com AspectJ, os interesses funcionais so
implementados em Java, e para implementao da combinao de interesses
sistmicossoutilizadasasextensesdisponibilizadaspeloprprioAspectJ.Aparte
da linguagem de implementao fornece ferramentas para compilao, debug e
integraocomambientesintegradosdedesenvolvimento.

OAspectJimplementadoistiposdeinteressessistmicos,osestticosedinmicos.
Sonestesinteressesqueocorremacombinaoaspectual.Acombinaoaspectual
podeatravessardiversosmdulosdeumsistemaparaqueointeresseemquesto
possaserdevidamenteimplementado.

7.Concluso

Certamente a Orientao a Aspectos (OA) ainda no o paradigma ideal, e


acreditamos que em breve surgiro outros paradigmas capazes de melhor
abstrair/expressarsolues,eportal,permitindoacriaodesoluesmelhores.Mas
oqueficaclaroparansque,aOAumgrandepassorumoaoparadigmaideal.
Nesteartigo,emesmonolivro,trabalhamosapenasapartedaOrientaoaAspectos
ligadaprogramao,entretantoasvantagensdaOAquandoaplicadasaanlisee,
principalmente,aoprojetopodemserimpressionantes,masistoumtemaparaum
outroartigo.

Nolivrosoapresentadosdiversosexemplosprticosdautilizaodaprogramao
orientadaaaspectos,como:
Auditoria;
Registroerastreamentodeoperaes;
Persistnciadedados;
Tratamentodeexcees;
Polticasdedesenvolvimento;
Autenticao,identificaoeautorizaodeusurios;
Etc.

8.Bibliografia

http://www.javafree.org/AvozJavanoBrasilPg.12

GOETTENJunior,WINCKDiogo,2006.AspectJProgramaoOrientadaaAspectoscomJava.SoPaulo
SP:NovatecEditora,2006.

ASPECTJTeam.Disponvelem:<http://www.eclipse.org/aspectj>.

BLLERT,Kai.OnWeavingAspects.IntheProceedingsoftheAspectOrientedProgrammingWorkshopat
ECOOP'99,1999.

CHAVEZ,Christina.GARCIA,Alessandro.LUCENA,Carlos.DesenvolvimentoOrientadoaAspectos.Anais
do XVII Simpsio Brasileiro de Engenharia de Software, Manaus Amazonas. Universidade Federal do
Amazonas.2003.

CHAVEZ,Christina.LUCENA,Carlos.ATheoryofAspectsforAspectOrientedSoftwareDevelopment.Anais
do XVII Simpsio Brasileiro de Engenharia de Software. Manaus Amazonas. Universidade Federal do
Amazonas.2003.

GOETTENJunior,WINCKDiogoeMACHADOCaio,2004.ProgramaoOrientadaaAspectosAbordando
JavaeaspectJ.WorkcompSulSBC.

KICZALES,G.; LAMPING, J.; MENDHEKAR, A.; MAEDA, C. et al. Aspectoriented programming. Para
apresentaoem:ECOOP'97,LNCS1241.Springer,1997.

PIVETA,Eduardo.Ummodelodesuporteaprogramaoorientadaaaspectos.UFSC.Dissertaosubmetida
comopartedosrequisitosparaaobtenodograudeMestreemCinciadaComputao,2001.

Sobreosautores

Diogo Vincius Winck professor universitrio na UTESC e scio da Kugel Soft


Informtica, empresa de desenvolvimento de ERPs. Possui ttulo de bacharel e de
mestre em Cincia da Computao. Trabalha com desenvolvimento de software
orientadoaobjetosdesde2001.

Vicente Goetten Junior formado em Tecnologia da Informao pela UTESC e


possuiMBAemGestoEmpresarialpelaFGV.Atuacomodocentenafaculdadee
colgioFCJ/EliasMoreiraecomoconsultordeTecnologianaDatasul.Possuigrande
experinciacomdesenvolvimentodesoftwareorientadoaobjetosenosltimosanos
tem coordenado pesquisas sobre programao orientada a aspectos. Site:
www.goetten.org.

http://www.javafree.org/AvozJavanoBrasilPg.13

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