Please use this identifier to cite or link to this item:
|Title:||Eliminating redundancies with a "composition with adaptation" meta-programming technique|
|Authors:||Jarzabek, S. |
|Source:||Jarzabek, S.,Shubiao, L. (2003). Eliminating redundancies with a "composition with adaptation" meta-programming technique. Proceedings of the ACM SIGSOFT Symposium on the Foundations of Software Engineering : 237-246. ScholarBank@NUS Repository. https://doi.org/10.1145/940071.940104|
|Abstract:||Redundant code obstructs program understanding and contributes to high maintenance costs. While most experts agree on that, opinions - on how serious the problem of redundancies really is and how to tackle it - differ. In this paper, we present the study of redundancies in the Java Buffer library, JDK 1.4.1, which was recently released by Sun. We found that at least 68% of code in the Buffer library is redundant in the sense that it recurs in many classes in the same or slightly modified form. We effectively eliminated that 68% of code at the meta-level using a technique based on "composition with adaptation" called XVCL. We argue that such a program solution is easier to maintain than buffer classes with redundant code. In this experiment, we have designed our meta-representation so that we could produce buffer classes in exactly the same form as they appear in the original Buffer library. While we have been tempted to re-design the buffer classes, we chose not to do so, in order to allow for the seamless integration of the XVCL solution into contemporary programming methodologies and systems. This decision has not affected the essential results reported in this paper. © 2003 ACM.|
|Source Title:||Proceedings of the ACM SIGSOFT Symposium on the Foundations of Software Engineering|
|Appears in Collections:||Staff Publications|
Show full item record
Files in This Item:
There are no files associated with this item.
checked on Dec 13, 2017
checked on Dec 16, 2017
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.