Font Size: a A A

Automatic Translation From Name-based Pointcuts To Analysis-based Pointcuts For Robust Aspects

Posted on:2013-01-01Degree:MasterType:Thesis
Country:ChinaCandidate:L WangFull Text:PDF
GTID:2248330362960850Subject:Software engineering
Abstract/Summary:PDF Full Text Request
Separation of concerns (SoC) is an important principle insoftware engineering. Without it large software system simplycould not be realized. Aspect-Oriented programming (AOP) improvesSoC by modularizing crosscutting concerns. Unfortunately todaysmainstream AOP languages suffer from fragile pointcut problem.They are fragile because they break easily if the names of themethods or classes are changed when program evolved. We comparedseveral important researches which attempt to solve pointcutfragility, and observed that new pointcut languages are verydifferent from original one, so they are difficult to be writtenby a programmer.In this dissertation we propose a framework called Nataly, whichtranslates name-based pointcuts into analysis-based pointcutsautomatically. Our approach can not only alleviate pointcutfragile problem but also bridge a gap between original name-basedpointcut and other robust one. Name-based pointcuts directly useclass and method names; they merely check that a called/executedmethod has the specified name/type. Analysis-based pointcuts areproposed as an approach to overcome the fragility. They use staticprogram analysis rather than names, and match the join points thatsatisfy the match strategy checked by the analysis. One of theproblems in using the analysis-based pointcuts is difficulty inimplementing correct program analysis. We tackle the problem bytranslations from name-based pointcuts to analysis-based ones. Weimplemented the Nataly framework in Java.We also illustrate a case study that evaluates robustness ofname-based pointcuts and analysis-based pointcuts in face of sevenpossible change scenarios to the classic Figure Editor System.
Keywords/Search Tags:Aspect-Oriented Programming, analysis-based pointcuts, name-based pointcuts, fragile pointcut problem
PDF Full Text Request
Related items