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...

Full description

Bibliographic Details
Main Author: Ahmad, Syarbaini
Format: Thesis
Language:English
Published: 2016
Subjects:
Online Access:http://psasir.upm.edu.my/id/eprint/69403/1/FSKTM%202016%2047%20-%20IR.pdf
_version_ 1796978927954034688
author Ahmad, Syarbaini
author_facet Ahmad, Syarbaini
author_sort Ahmad, Syarbaini
collection UPM
description 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.
first_indexed 2024-03-06T10:01:35Z
format Thesis
id upm.eprints-69403
institution Universiti Putra Malaysia
language English
last_indexed 2024-03-06T10:01:35Z
publishDate 2016
record_format dspace
spelling upm.eprints-694032019-07-01T07:08:38Z http://psasir.upm.edu.my/id/eprint/69403/ Slicing aspect-oriented program using aspect- oriented dependence flow graph for software maintenance Ahmad, Syarbaini 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. 2016-10 Thesis NonPeerReviewed text en http://psasir.upm.edu.my/id/eprint/69403/1/FSKTM%202016%2047%20-%20IR.pdf Ahmad, Syarbaini (2016) Slicing aspect-oriented program using aspect- oriented dependence flow graph for software maintenance. Doctoral thesis, Universiti Putra Malaysia. Software maintenance Debugging in computer science - Computer programs
spellingShingle Software maintenance
Debugging in computer science - Computer programs
Ahmad, Syarbaini
Slicing aspect-oriented program using aspect- oriented dependence flow graph for software maintenance
title Slicing aspect-oriented program using aspect- oriented dependence flow graph for software maintenance
title_full Slicing aspect-oriented program using aspect- oriented dependence flow graph for software maintenance
title_fullStr Slicing aspect-oriented program using aspect- oriented dependence flow graph for software maintenance
title_full_unstemmed Slicing aspect-oriented program using aspect- oriented dependence flow graph for software maintenance
title_short Slicing aspect-oriented program using aspect- oriented dependence flow graph for software maintenance
title_sort slicing aspect oriented program using aspect oriented dependence flow graph for software maintenance
topic Software maintenance
Debugging in computer science - Computer programs
url http://psasir.upm.edu.my/id/eprint/69403/1/FSKTM%202016%2047%20-%20IR.pdf
work_keys_str_mv AT ahmadsyarbaini slicingaspectorientedprogramusingaspectorienteddependenceflowgraphforsoftwaremaintenance