[Colloq] Thesis Proposal - Pengcheng Wu

Rachel Kalweit rachelb at ccs.neu.edu
Wed Jun 3 11:28:51 EDT 2009


Thesis Proposal Presentation:
Speaker: Pengcheng Wu
Thesis title: On Aspect-oriented Programming for Enforcing Software Design Rules
Date: June 10, 2009 (Wed.) at 1:30PM
Where: WVH 366

Abstract

Software design rules are important in modern software development, with
significance in achieving high quality in many aspects of software engineering
including functional correctness, safety, performance, reusability, and so on.
The current practice of software engineering tools to enforce software design
rules has much to be desired. They usually either can only check a pre-defined
set of design rules without allowing customization/extension, or even when they
allow customization/extension, they require programmers to encode new
design rules in low level
primitives such as byte code API's or Abstract Syntax Tree nodes, or force
programmers to learn new domain specific languages or new meta-models that
programmers are not familiar with.

In this thesis work, we argue that the static join point model of AspectJ-like
Aspect-oriented programming languages is a useful and suitable meta-model for
building customizable software design rule static checkers for programs written
in Java-like object-oriented languages. To support this thesis, based
on AspectJ's
static join point model, we have built two compile time facilities, with which
software design rules can be encoded and enforced. The first facility is called
Statically Executable Advice, which allows programmers to implement design rule
checkers in advice-like constructs, but unlike advice in AspectJ, they
are advice
that are defined on static join points, instead of on dynamic join
points, and that
they are executed at compile time, instead of at run time. The second
facility is a
further improvement of the idea, by featuring a Datalog based declarative query
mechanism on static join points, with a seamless integration with
AspectJ's native
pointcut expression language. When designing this Datalog static join
point query
mechanism, we especially designed it with a focus on performance and
scalability. We
observe that there is much redundant information in critical static join point
relationships, for which Binary Decision Diagrams (BDD) can offer very compact
representations. We design a Datalog representation of the static join
point model of AspectJ in order to leverage this BDD reduction
capability and make
use of an advanced third party BDD-based Datalog solver called
"bddbddb" to solve
design rule constraints encoded in Datalog static join point queries.
Preliminary
data has shown there is a non-trivial performance improvement against
recent work
by other researchers. Part of this research work has been published in
two of my papers
accepted by competitive conferences: AOSD 2003 and GPCE 2005.


Thesis committee:

Gene Cooperman
Shriram Krishnamurthi (Brown University, external member)
Karl Lieberherr (thesis advisor)
Mitchell Wand




More information about the Colloq mailing list