2008 · 47 citations · 17 references
Software MaintenanceEngineeringCross-cutting ConcernChange Impact AnalysisSoftware EngineeringAtomic Change RepresentationSoftware AnalysisFormal VerificationProgram EvaluationSoftware AspectAspect-oriented ProgrammingComputer ScienceAspectj ProgramStatic Program AnalysisCode RefactoringSoftware DesignProgram AnalysisSoftware TestingFormal MethodsSystem Software
Change impact analysis is a useful technique for software evolution. It determines the effects of a source editing session and provides valuable feedbacks to the programmers for making correct decisions. Recently, many techniques have been proposed to support change impact analysis of procedural or object-oriented software, but seldom effort has been made for aspect-oriented software. In this paper we propose a new change impact analysis technique for AspectJ programs. At the core of our approach is the atomic change representation which captures the semantic differences between two versions of an AspectJ program. We also present an impact analysis model, based on AspectJ call graph construction, to determine the affected program fragments, affected tests and their responsible changes. The proposed techniques have been implemented in Celadon, a change impact analysis framework for AspectJ programs. We performed an empirical evaluation on 24 versions of eight AspectJ benchmarks. The result shows that our proposed technique can effectively perform change impact analysis and provide valuable information in AspectJ software evolution.
17
Fast static analysis of C++ virtual function calls
David F. Bacon, Peter F. Sweeney · 1996 · 509 citations
Xiaoxia Ren, Fenil Shah, Frank Tip et al. · 2004 · 377 citations
Software Maintenance, Engineering, Change Impact Analysis +14
Erik Hilsdale, Jim Hugunin · 2004 · 338 citations
Software Maintenance, Engineering, Cross-cutting Concern +23