資源描述:
《從命名切入點(diǎn)到的分析切入點(diǎn)自動(dòng)轉(zhuǎn)換》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、中文摘要關(guān)注點(diǎn)分離在現(xiàn)代軟件工程中是一個(gè)重要的原則。離開了它大型的軟件項(xiàng)目不可能簡(jiǎn)單的實(shí)現(xiàn)。面向方面的編程通過模塊化橫切關(guān)注點(diǎn)改善了關(guān)注點(diǎn)分離。但是,不幸的是現(xiàn)今主流的面向方面的編程語(yǔ)言正面臨著一個(gè)嚴(yán)重的問題一切入點(diǎn)的脆弱性。這些基于命名的切入點(diǎn)之所以脆弱是因?yàn)槿绻麄兯蕾嚨念惷蚍椒Q發(fā)生了變化,那么這些切入點(diǎn)將會(huì)很容易被破壞,而無(wú)法捕獲到正確的連接點(diǎn)。我們比較了一些嘗試解決切入點(diǎn)脆弱性問題的研究工作,發(fā)現(xiàn)在這些研究中所提出的新的切入點(diǎn)語(yǔ)言與原始的相比非常的不同,因此對(duì)于開發(fā)人員來(lái)說(shuō)這些新
2、的切入點(diǎn)語(yǔ)言很難編寫。本文提出了一個(gè)用來(lái)實(shí)現(xiàn)將基于命名的切入點(diǎn)自動(dòng)轉(zhuǎn)換為基于分析的切入點(diǎn)的Framework。我們將這個(gè)Framework命名為Nataly。我們的方法不僅能夠減輕切入點(diǎn)脆弱性的問題而且還填補(bǔ)了原始的基于命名的切入點(diǎn)與其他健壯的接入點(diǎn)之間的空白。基于命名的切入點(diǎn)直接使用類名,方法名或字段名,他們僅僅檢查被調(diào)用或執(zhí)行方法的特定的名稱或類型。基于分析的切入點(diǎn)被作為一種解決方法提出來(lái)以克服其脆弱性。它使用靜態(tài)分析的方法來(lái)替代單純的依賴命名,并且通過分析來(lái)捕獲那些滿足匹配策略的連接點(diǎn)。目
3、前存在的一個(gè)問題是,要開發(fā)人員實(shí)現(xiàn)一個(gè)或編寫一個(gè)能夠正確分析程序的基于分析的切入點(diǎn)十分困難。我們提出一種將基于命名的切入點(diǎn)自動(dòng)轉(zhuǎn)換為基于分析的切入點(diǎn)的方法來(lái)解決這個(gè)難題。我們使用Java來(lái)實(shí)現(xiàn)Natalyframework.我們使用經(jīng)典的FigureEditor系統(tǒng)作為例子,然后采用七種可能發(fā)生的最常見的程序變更的情景作為案例來(lái)評(píng)估基于分析的切入點(diǎn)和基于命名的切入點(diǎn)的魯棒性。關(guān)鍵詞:面向方面的編程,基于分析的切入點(diǎn),基于命名的切入點(diǎn),切入點(diǎn)的脆弱性ABSTRACTSeparationofconc
4、erns(SoC)isanimportantprincipleinsoftwareengineering.Withoutitlargesoftwaresystemsimplycouldnotberealized.Aspect—Orientedprogramming(AOP)improvesSoCbymodularizingcrosscuttingconcerns.UnfortunatelytodaysmainstreamAOPlanguagessufferfromfragilepointcutp
5、roblem.Theyarefragilebecausetheybreakeasilyifthenamesofthemethodsorclassesarechangedwhenprogramevolved.Wecomparedseveralimportantresearcheswhichattempttosolvepointcutfragility,andobservedthatnewpointcutlanguagesareverydifferentfromoriginalone.SOtheya
6、redifficulttobewrittenbyaprogrammer.InthiSdissertationweproposeaframeworkcalledNataly,whichtranslatesname——basedpointcutSintoanalysiS-basedpointcutSautomatically.Ourapproachcannotonlyalleviatepointcutfragileproblembutalsobridgeagapbetweenoriginalname
7、——basedpointcutandotherrobustone.Name—basedpointcutsdirectlyuseclassandmethodnames:theymerelycheckthatacalled/executedmethodhasthespecifiedname/type.Analysis—basedpointcutsareproposedasanapproachtoovercomethefragi1ity.Theyusestaticprogramanalysisrath
8、erthannames,andmatchthejoinpointsthatsatisfythematchstrategycheckedbytheanalysis.Oneoftheproblemsinusingtheanalysis——basedpointcutsiSdifficultyinimplementingcorrectprogramanalysis.Wetackletheproblembytranslationsfromname—basedpointcutstoanalysis—base