Signature Page | 第4-5页 |
Dedication | 第5-6页 |
Acknowledgement | 第6-7页 |
Abstract | 第7页 |
List of Figures | 第11-12页 |
List of Tables | 第12-13页 |
List of Abbreviations | 第13-14页 |
1. INTRODUCTION | 第14-17页 |
1.1 Goals | 第15-16页 |
1.2 Organization of the Thesis | 第16-17页 |
2. BACKGROUND | 第17-26页 |
2.1 Control flow | 第18-20页 |
2.2 Data flow analysis | 第20-22页 |
2.2.1 Iterative Data flow analysis | 第20-21页 |
2.2.2 Syntax - directed Data flow analysis | 第21-22页 |
2.3 Static Slicing | 第22-24页 |
2.4 Dynamic Slicing | 第24-26页 |
3. PROGRAM DEPENDENCES IN JAVA | 第26-34页 |
3.1 Program Dependence Graph | 第26-29页 |
3.2 Control and Data Dependence | 第29-31页 |
3.3 Call and Parameter Dependence | 第31-32页 |
3.4 Membership Dependence | 第32-34页 |
3.4.1 Class membership dependence | 第32页 |
3.4.2 Interface membership | 第32页 |
3.4.3 Package membership dependence | 第32页 |
3.4.4 Inheritance membership dependence | 第32-34页 |
4. THE SOFTWARE DEPENDENCE GRAPH FOR JAVA | 第34-48页 |
4.1 Method Dependence Graph | 第36-39页 |
4.2 Class Dependence Graph | 第39-42页 |
4.2.1 Class interaction | 第40-41页 |
4.2.2 Class extending | 第41页 |
4.2.3 Polymorphism | 第41-42页 |
4.3 Interface Dependence Graph | 第42-46页 |
4.3.1 Single interfaces | 第42-43页 |
4.3.2 Interface extending | 第43-46页 |
4.4 Package Dependence Graph | 第46-47页 |
4.5 Constructing the graph | 第47-48页 |
5 SLICING JAVA PROGRAMS | 第48-62页 |
5.1 Slicing | 第48-49页 |
5.2 Slicing java programs | 第49页 |
5.3 The Modified Algorithm | 第49-51页 |
5.4 Size of the SDG and cost of the algorithm computing a slice | 第51-52页 |
5.5 Comparison with previous work | 第52-53页 |
5.6 Experimental results | 第53-55页 |
5.7 Applications of Slicing | 第55-62页 |
5.7.1 Debugging and program analysis | 第55-57页 |
5.7.2 Program differencing and integration | 第57页 |
5.7.3 Software maintenance | 第57-58页 |
5.7.4 Testing | 第58-59页 |
5.7.5 Compiler Tuning | 第59-60页 |
5.7.6 Parallelization | 第60-61页 |
5.7.7 Software Quality and Assurance | 第61-62页 |
6 JAVA ANAYLSIS TOOLKIT | 第62-86页 |
6.1 Syntax Analysis Module | 第62-79页 |
6.1.1 Java Compiler Compiler | 第63-67页 |
6.1.1.1 Special features of JavaCC | 第63-66页 |
6.1.1.2 JavaCC compilation process | 第66-67页 |
6.1.2 Java Tree Builder | 第67-79页 |
6.1.2.1 Calling the parser and visitor | 第78-79页 |
6.2 Component Architecture | 第79-80页 |
6.3 Data structures | 第80-83页 |
6.4 Analysis and graph creation | 第83-86页 |
7 RELATED WORK | 第86-87页 |
8 CONCLUSION | 第87-88页 |
9 REFERENCES | 第88-91页 |
10 APPENDIX | 第91-99页 |