從命名切入點(diǎn)到的分析切入點(diǎn)自動(dòng)轉(zhuǎn)換

    從命名切入點(diǎn)到的分析切入點(diǎn)自動(dòng)轉(zhuǎn)換

    ID:32261077

    大?。?.29 MB

    頁(yè)數(shù):69頁(yè)

    時(shí)間:2019-02-02

    從命名切入點(diǎn)到的分析切入點(diǎn)自動(dòng)轉(zhuǎn)換_第1頁(yè)
    從命名切入點(diǎn)到的分析切入點(diǎn)自動(dòng)轉(zhuǎn)換_第2頁(yè)
    從命名切入點(diǎn)到的分析切入點(diǎn)自動(dòng)轉(zhuǎn)換_第3頁(yè)
    從命名切入點(diǎn)到的分析切入點(diǎn)自動(dòng)轉(zhuǎn)換_第4頁(yè)
    從命名切入點(diǎn)到的分析切入點(diǎn)自動(dòng)轉(zhuǎn)換_第5頁(yè)
    資源描述:

    《從命名切入點(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

    當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

    此文檔下載收益歸作者所有

    當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
    溫馨提示:
    1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問題,請(qǐng)放心下載。
    2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
    3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
    4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。