Skip to main navigation Skip to search Skip to main content

Remodularizing Java Programs for Improved Locality of Feature Implementations in Source Code

Research output: Contribution to journal › Journal article › Research › peer-review

993 Downloads (Pure)

Abstract

Explicit traceability between features and source code is known to help programmers to understand and modify programs during maintenance tasks. However, the complex relations between features and their implementations are not evident from the source code of object-oriented Java programs. Consequently, the implementations of individual features are difficult to locate, comprehend, and modify in isolation. In this paper, we present a novel remodularization approach that improves the representation of features in the source code of Java programs. Both forward- and reverse restructurings are supported through on-demand bidirectional restructuring between feature-oriented and object-oriented decompositions. The approach includes a feature location phase based of tracing program execution, a feature representation phase that reallocates classes into a new package structure based on single-feature and multi-feature packages, and an annotation-based reverse transformation of code. Case studies performed on two open-source projects indicate that our approach requires relatively little manual effort and reduces tangling and scattering of feature implementations in the source code.
Original languageEnglish
JournalScience of Computer Programming
Volume77
Issue number3
Pages (from-to)131-151
Number of pages21
ISSN0167-6423
DOIs
Publication statusPublished - 2011

Fingerprint

Dive into the research topics of 'Remodularizing Java Programs for Improved Locality of Feature Implementations in Source Code'. Together they form a unique fingerprint.

Cite this