Master Thesis - Past Projects - Abstract
Structuring Aspects in Embedded Database Systems
Typically, a complex software system can be viewed as a combined implementation of different types of requirements placed on the system. These requirements can be classified in two categories, namely functional requirements and non-functional requirements. The code that implements non-functional requirements, e.g., is tangled with the code that implements functional requirements of the software system, i.e., it crosscuts the functional code. Such feature is said to be crosscutting in the software system. Crosscutting concerns are spread throughout the entire code of the software system, making changes to the software difficult and error-prone.
Current techniques used to design and implement database systems focus primarily on the implementation of functional requirements. Non-functional requirements are often implemented ad hoc and tangled in the functional code of the database system. Aspect-oriented programming (AOP) is a new technique that provides an efficient way of modularizing crosscutting concerns in the software system. AOP allows crosscutting concerns in the system to be encapsulated into modules called aspects. Hence, the application of AOP to separate concerns in database systems and enable implementation of the non-functional features as aspects in the system has promise.
The goal of this thesis is to evaluate the effectiveness of applying AOP in the design and development of database systems. Our focus is on the embedded database systems, as a representative of database systems. To achieve the thesis goal, we perform a case study on an existing embedded database system that is commercially available and widely used, namely Berkeley Database.
We have identified three crosscutting concerns in Berkeley Database, namely failure detection, synchronization, and error handling. We found that aspect implementations reduce the code related to failure detection (the reduction ratio for recovery detection is 34%; for run-time configuration it is 48%) and synchronization (the reduce ratio is 42%). Without changing functional requirements since we did not change the implementation of the original code.
Keywords: aspect-oriented programming, embedded database system, failure detection, synchronization, error handling
Author(s): Ke Sheng
Contact: Jörgen Hansson
Click here to return.