Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Remodularizing Java programs for improved locality of feature implementations in source code
Olszak A., Nørregaard Jørgensen B.  Science of Computer Programming 77 (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?
yes
no
Other reviews under "Restructuring, Reverse Engineering, And Reengineering": Date
Refactoring for software design smells: managing technical debt
Suryanarayana G., Samarthyam G., Sharma T.,  Morgan Kaufmann Publishers Inc., San Francisco, CA, 2014. 258 pp. Type: Book (978-0-128013-97-7)
Aug 21 2015
Software protection for dynamically generated code
Ghosh S., Hiser J., Davidson J.  PPREW 2013 (Proceedings of the 2nd ACM SIGPLAN Program Protection and Reverse Engineering Workshop, Rome, Italy,  Jan 26, 2013) 1-12, 2013. Type: Proceedings
Apr 9 2014
Identifying services from legacy batch applications
Komondoor R., Nandivada V., Sinha S., Field J.  ISEC 2012 (Proceedings of the 5th India Software Engineering Conference, Kanpur, India,  Feb 22-25, 2012) 13-22, 2012. Type: Proceedings
Dec 17 2012
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright © 2000-2017 ThinkLoud, Inc.
Terms of Use
| Privacy Policy