A third-party extension support framework using patterns, accepted at APSEC 2015 (CORE Rank B, acceptance rate 42/144=29%) as full paper.

Yiyang Hao, Hironori Washizaki, Yoshiaki Fukazawa, “A third-party extension support framework using patterns,” Proceedings of the 22nd Asia Pacific Software Engineering Conference (APSEC 2015), New Delhi, India, Dec 1-4, 2015. (to appear)

Software extension is a fundamental challenge in software engineering which involves extending the functionalities of a software module without modifying it. Many modern software developers choose to adapt third-party extension platform to further improve customizability. As the project evolves, the requirements may change to include third-party extension support. However to design and to implement such platform is no trivial task, and should happen at the beginning of the project. In this paper, we have shown the four types of extensions that are often made to object-oriented software, namely Member Access Extension, Subclass Extension, Event-based Extension and Data Extension. And proposed a language-independent platform design that can be applied to an existing software project to support such third-party extensions. The platform exercises design patterns to implement its features. We also developed an Eclipse plugin that helps developers introduce the platform to existing Java software via semi-automatic code manipulation. We further conducted a comparative experiment to test our tool with volunteers from Waseda University and noticed a significant decrease of required effort.