Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Remodularizing Java programs for improved locality of feature implementations in source code
Olszak A., Nørregaard Jørgensen B. Science of Computer Programming77 (3):131-151,2012.Type:Article
Date Reviewed: May 10 2012

Remodularization is about giving a new or additional modular structure to an application’s source code. This activity is particularly important when maintaining an application since remodularizing increases the overall quality of the application, especially in terms of code delocalization and interweaving.

Remodularizing an application presents many challenges: identifying and delimiting the features to modularize is an important one; another is restructuring the application either in terms of the features or the domain.

The authors propose a remarkable approach to address these problems. By tracing the execution of the application (either from the user interface or from a set of use cases), classes that define user-specific features are identified. A new package structure is then proposed to regroup those identified features. This structure is made explicit in the source code by means of annotation. The source code may then be presented following this structure.

The presented approach is a mélange of sophisticated techniques, including execution tracing, feature identification, and program restructuring. Two large case studies confirm the feasibility of the proposal. Two points are, however, worth discussing.

First, only the entrance point of a feature is identified. The tracing helps specify in which portion of the source code a particular feature begins its execution. However, it is not specified where it ends, meaning that the completion of the user interface action or the use case drives it. As a consequence, a composition between features may not be properly identified.

Second, the granularity of classes is used for separating feature implementation. However, in practice, it often appears that a class belongs to several features. Some methods may be dedicated to a particular feature and some others to another feature. Apparently, this case is not considered in the approach.

All in all, this is an excellent paper. People interested in feature mining and remodularizing will find a fair amount of food for thought.

Reviewer:  Alexandre Bergel Review #: CR140129 (1209-0930)
Bookmark and Share
  Featured Reviewer  
Restructuring, Reverse Engineering, And Reengineering (D.2.7 ... )
Java (D.3.2 ... )
Would you recommend this review?
Other reviews under "Restructuring, Reverse Engineering, And Reengineering": Date
Software evolution: the software maintenance challenge
Arthur L., Wiley-Interscience, New York, NY, 1988. Type: Book (9789780471628712)
Mar 1 1989
The year 2000 computing crisis
Murray J., Murray M., McGraw-Hill, Inc., New York, NY, 1996. Type: Book (9780079129451)
Oct 1 1996
Constraint-based design recovery for software reengineering
Woods S., Quilici A., Yang Q., Kluwer Academic Publishers, Norwell, MA, 1998. Type: Book (9780792380672)
Dec 1 1998

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy