|
ABSTRACT
Program differencing is a common means of software debugging. Although many differencing algorithms have been proposed for procedural and object-oriented languages like C and Java, there is no differencing algorithm for aspect-oriented languages so far. In this paper we propose an approach for difference analysis of aspect-oriented programs. The proposed algorithm contains a novel way of matching two versions of a module of which the signature has been modified. For this, we also work out a set of well defined signatures for the new elements in the AspectJ language. In accordance with these signatures, and with those existent for elements of the Java language, we investigate a set of signature patterns to be used with the module matching algorithm. Furthermore, we demonstrate successful application of a node-by-node comparison algorithm originally developed for object-oriented programs. Using a tool which implements our algorithms, we set up and evaluate a set of test cases. The results demonstrate the effectiveness of our approach for a large subset of the AspectJ language.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
abc. The AspectBench Compiler for AspectJ. http://abc.comlab.ox.ac.uk/.
|
 |
2
|
|
| |
3
|
|
| |
4
|
|
 |
5
|
|
 |
6
|
|
 |
7
|
Mary Jean Harrold , James A. Jones , Tongyu Li , Donglin Liang , Alessandro Orso , Maikel Pennings , Saurabh Sinha , S. Alexander Spoon , Ashish Gujarathi, Regression test selection for Java software, ACM SIGPLAN Notices, v.36 n.11, p.312-326, 11/01/2001
|
 |
8
|
|
 |
9
|
|
 |
10
|
|
| |
11
|
S. Huang and J. Zhao. A Framework and Tool Support for Control Flow Analysis of AspectJ Programs. Technical Report SJTU-CSE-TR-08-02, Shanghai Jiao Tong University, School of Software, Shanghai, 2008.
|
| |
12
|
|
| |
13
|
V. N. Kas'janov. Distinguishing hammocks in a directed graph. Soviet Math. Doklady, 16:448--450, 1975.
|
| |
14
|
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. V. Lopes, J. -M. Loingtier, and J. Irwin. Aspect-Oriented Programming. In ECOOP 1997, volume 1241 of LNCS, pages 220--242, Heidelberg, 1997. Springer.
|
| |
15
|
J. Laski and W. Szermer. Identification of program modifications and its applications in software maintenance. In Proc. of the International Conference on Software Maintenance, pages 282--290, 1992.
|
 |
16
|
|
 |
17
|
|
 |
18
|
|
| |
19
|
Software Theory and Practice Group (STAP), 2005. http://stap.sjtu.edu.cn/.
|
| |
20
|
Sun Microsystems. Java Platform, Standard Edition 6 API Specification. Sun Microsystems, 2007.
|
 |
21
|
Peri Tarr , Harold Ossher , William Harrison , Stanley M. Sutton, Jr., N degrees of separation: multi-dimensional separation of concerns, Proceedings of the 21st international conference on Software engineering, p.107-119, May 16-22, 1999, Los Angeles, California, United States
[doi> 10.1145/302405.302457]
|
| |
22
|
T. ter Braak. Extending Program Slicing in AspectOriented Programming with InterType Declarations. In 5th Twente Student Conference on IT, 2006.
|
| |
23
|
The AspectJ Team. The AspectJ Programming Guide. http://aspectj.org.
|
| |
24
|
|
| |
25
|
|
| |
26
|
|
| |
27
|
S. Zhang, Z. Gu, Y. Lin, and J. Zhao. Change Impact Analysis for AspectJ Programs. Technical report, Shanghai Jiao Tong University, School of Software, Shanghai, 2007.
|
|