Font Size: a A A

AOVis: Reverse engineering and visualization of AspectJ/Java source code

Posted on:2012-12-02Degree:Ph.DType:Dissertation
University:The University of Texas at DallasCandidate:Koch, Jeffrey WFull Text:PDF
GTID:1458390011450435Subject:Computer Science
Abstract/Summary:
The reverse engineering of aspect-oriented projects introduces a number of challenges. Few reverse engineering frameworks are currently available that can extract program facts for AspectJ program facts, in contrast to the variety of reverse engineering tools for more mature languages such as Java. AspectJ tools have been built; however, these tools required modification of existing AspectJ compilers or used non-standard extensions that limited interoperability with other reverse engineering or analysis tools.;Even when program facts have been extracted, these facts must be abstracted to models at the desired level of detail. Aspect-specific abstraction challenges include: · Automated and semi-automated architectural modeling is the subject of ongoing research; however, past work has not considered the automated or semi-automated architectural modeling of aspect-oriented systems. · Cross-cutting concerns add to the complexity of a system. Research into techniques to visually represent cross-cutting concerns in a clear fashion is still on-going. · One goal of the aspect-oriented paradigm is to separate cross-cutting concerns from base concerns. It is a challenge to visually represent aspect-oriented models in a manner than separates cross-cutting concerns from base concerns.;AOVis (Aspect-Oriented Visualization) is a reverse engineering framework for AspectJ. This approach provides the following unique contributions to the field: · It provides a model-driven graph-based approach for the extraction of object-oriented and aspect-oriented program facts that uses existing AspectJ compilers and standard extensions to UML and XML, enhancing interoperability with existing AspectJ and reverse engineering technologies. · It provides a semi-automated rule-based approach for the abstraction of object-oriented and aspect-oriented program facts to the architectural level with multiple rule-based abstraction engines and AI-based pareto optimal ranking techniques.;Tool support includes initial implementation in the form of an Eclipse plugin that extracts program facts, partially analyzes the program fact model in terms of the MVC architecture, and generates program fact and architecture XMI files that can be used by XMI-capable tools.;This approach will be extremely useful to other researchers with a need for AspectJ program facts, including projects such as design visualization, traceability relationships, automatic test case generation, code metrics, and product line variation refactoring.
Keywords/Search Tags:Reverse engineering, Aspectj, Visualization, Facts, Aspect-oriented, Cross-cutting concerns
Related items