Slicing aspect-oriented program using aspect- oriented dependence flow graph for software maintenance
Program slicing is useful for debugging, testing, and maintaining software systems due to availability of information about the structure and relationship of the program modules. In general, program slicing can be performed either based on control flow graph (CFG) or dependence graph (DG). Howeve...
Saved in:
Main Author: | |
---|---|
Format: | Thesis |
Language: | English |
Published: |
2016
|
Subjects: | |
Online Access: | http://psasir.upm.edu.my/id/eprint/69403/1/FSKTM%202016%2047%20-%20IR.pdf |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
Summary: | Program slicing is useful for debugging, testing, and maintaining software systems due
to availability of information about the structure and relationship of the program
modules. In general, program slicing can be performed either based on control flow
graph (CFG) or dependence graph (DG). However, in the case of aspect-oriented
programming (AOP), aspect-oriented control flow graph (AOCFG) or aspect-oriented
dependence graph (AODG) individually is not enough to model the features of Aspectoriented
(AO) programs. Thus, a suitable graph model for aspect-oriented program
slicing is required to gather information on the structure of aspect-oriented programs.
In this thesis, the concept of slicing aspect-oriented programs for maintenance purpose
is proposed. In order to aid in slicing an aspect-oriented program, a graph model known
as Aspect-Oriented Dependence Flow Graph (AODFG) is proposed to represent the
structure of aspect-oriented programs. The graph is formed by merging AOCFG and
AODG. As a consequence, more information about dependencies involving the features
of AOP, such as join point, advice, aspects, their related constructs, and the flow of
control are able to be gathered. Based on AODFG, slicing criteria are defined for aspectoriented
features. A prototype tool called Aspect-Oriented Slicing Tool (AOST) was
developed to implement AODFG.
The prototype tool was evaluated for its applicability by checking the consistency of
output by analysing ten AspectJ programs taken from AspectJ Development Tools. The
analysis showed the outputs from the prototype are consistent with those from AODG
and AOCFG. Furthermore, a one-shot experimental case study involving experts was
conducted to find out the effect of AOST in terms of effectiveness, understandability,
and modifiability for maintenance purpose. The results of the experiement show positive
responses which are more than 85% of the experts says that AOST supports their
understanding of the programs structure, helps in identifying aspect-oriented features,
and effectively represents the program structure. |
---|