Font Size: a A A

Study And Implementation Of Pipa And Its Runtime Assertion Checking Compiler

Posted on:2009-01-13Degree:MasterType:Thesis
Country:ChinaCandidate:Y WangFull Text:PDF
GTID:2178360242976738Subject:Computer Software and Theory
Abstract/Summary:PDF Full Text Request
Aspect-Oriented Programming (AOP) is a new methodology of programming. It overcomes the weakness of Object-Oriented Programming (OOP) when modeling the crosscutting concerns. By extracting crosscutting concerns and encapsulating them into separate programming module, AOP eliminates code tangling in OO programs and improves the modularity of OO programs, making AO system more maintainable, extensible and flexible. Meanwhile, more and more software systems are developed by using AOP techniques, the systems also become more complex. Therefore, the requirement for the reliability of these systems becomes urgent. Providing runtime checking is a promising way to increase the software systems'reliability. But there are quite a few techniques that provide runtime specification checking.In this thesis, we introduce an approach to constructing Runtime Assertion Checking Compiler for AspectJ programs with Pipa Assertions through study the semantics of AspectJ and Pipa. The compiler can translate the AspectJ programs with Pipa assertions into Java bytecode. The bytecode files can run on standard Java virtual machine. During the running, the violation of the specifications can be detected automatically. And error information also can be provided. This improves of the system's reliability.When implementing the Runtime Assertion Checking Compiler, we use a preprocessor to translate the Pipa assertions into checking methods and put them into right place. Then, we can get the decompiled Java source file by using abc to weave the program. During implementing the system, we have referred several existing tools such as jmlc,jContractor and Jass. We also integrated abc and jmlc into our system. These all reduce the difficulties in implementing our system.In this thesis, we first introduce the basic concepts of AOP and AspectJ, then we review some features of JML and Pipa. We then provide brief introduction on the Runtime Assertion Checking techniques. Then we introduce the overall design and architecture of the system. We also provide detailed description of the design and implementation of each component of the compiler. The experiments and evaluation of the system are provided in the last section.
Keywords/Search Tags:AOP, AspectJ, Pipa, Runtime Assertion Checking
PDF Full Text Request
Related items