Towards Improving Interface Modularity in Legacy Java Software through Automated Refactoring (bibtex)
by Raffi Khatchadourian, Olivia Moore and Hidehiko Masuhara
Abstract:
The skeletal implementation pattern is a software design pattern consisting of defining an abstract class that provides a partial interface implementation. However, since Java allows only single class inheritance, if implementers decide to extend a skeletal implementation, they will not be allowed to extend any other class. Also, discovering the skeletal implementation may require a global analysis. Java 8 enhanced interfaces alleviate these problems by allowing interfaces to contain (default) method implementations, which implementers inherit. Java classes are then free to extend a different class, and a separate abstract class is no longer needed; developers considering implementing an interface need only examine the interface itself. We argue that both these benefits improve software modularity, and discuss our ongoing work in developing an automated refactoring tool that would assist developers in taking advantage of the enhanced interface feature for their legacy Java software.
Reference:
Towards Improving Interface Modularity in Legacy Java Software through Automated Refactoring (Raffi Khatchadourian, Olivia Moore and Hidehiko Masuhara), In Proceedings of the Workshop on Language Modularity À La Mode Workshop (LaMOD'16), included in Companion Proceedings of International Conference on Modularity (Raffi Khatchadourian, David H. Lorenz, Jacques Noyé, eds.), ACM, 2016.
Bibtex Entry:
@inproceedings{khatchadourian2016lamod,
  publisher = {{ACM}},
  month = mar,
  location = {M{\'a}laga, Spain},
  editor = {Raffi Khatchadourian and David H. Lorenz and Jacques Noy{\'e}},
  year = 2016,
  booktitle = {Proceedings of the Workshop on Language Modularity {\`A} La Mode Workshop (LaMOD'16), included in Companion Proceedings of International Conference on Modularity},
  author = {Raffi Khatchadourian and Olivia Moore and Hidehiko Masuhara},
  title = {Towards Improving Interface Modularity in Legacy {Java} Software through Automated Refactoring},
  doi = {10.1145/2892664.2892681},
  pdf = {lamod2016-refactoring.pdf},
  pages = {104--106},
  abstract = {The skeletal implementation pattern is a software design pattern consisting of defining an abstract class that provides a partial interface implementation. However, since Java allows only single class inheritance, if implementers decide to extend a skeletal implementation, they will not be allowed to extend any other class. Also, discovering the skeletal implementation may require a global analysis. Java 8 enhanced interfaces alleviate these problems by allowing interfaces to contain (default) method implementations, which implementers inherit. Java classes are then free to extend a different class, and a separate abstract class is no longer needed; developers considering implementing an interface need only examine the interface itself. We argue that both these benefits improve software modularity, and discuss our ongoing work in developing an automated refactoring tool that would assist developers in taking advantage of the enhanced interface feature for their legacy Java software.}
}
Powered by bibtexbrowser