skip to main content
10.1145/940071.940104acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
Article

Eliminating redundancies with a "composition with adaptation" meta-programming technique

Published: 01 September 2003 Publication History

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.

References

[1]
Bassett, P. 1997. Framing software reuse - lessons from real world, Yourdon Press, Prentice Hall.]]
[2]
Batory, D., Singhai, V., Sirkin, M. and Thomas, J. "Scalable software libraries,", ACM SIGSOFT'93: Symp. on the Foundations of Software Engineering, Los Angeles, California, Dec. 1993, pp. 191--199.]]
[3]
Batory, D. and Geraci, B.J. "Validating component compositions and subjectivity in GenVoca generators," Trans. on Software Engineering, 23, 2, 1997, pp. 67--82.]]
[4]
Biggerstaff, T. "The library scaling problem and the limits of concrete component reuse, " 3rd Int. Conf. on Software Reuse, ICSR'94, 1994, pp. 102--109.]]
[5]
Czarnecki, K. and Eisenecker, U. "Generative Programming: Methods, Tools, and Applications," Addison-Wesley, 2000.]]
[6]
Jarzabek, S. and Zhang, H. "XML-based Method and Tool for Handling Variant Requirements in Domain Models", 5th IEEE International Symposium on Requirements Engineering, August 2001, Toronto, Canada, pp. 166--173.]]
[7]
Karhinen, A., Ran, A. and Tallgren, T. "Configuring designs for reuse," Proc. International Conference on Software Engineering, ICSE'97, Boston, MA., 1997, pp. 701--710.]]
[8]
Kiczales, G, Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J-M., Irwin, J. Aspect-Oriented Programming," European Conference on Object-Oriented Programming, Finland, Springer-Verlag LNCS 1241, 1997, pp. 220--242.]]
[9]
Maginnis, N. "Specialist: Reusable code helps increase productivity," in Computerworld, Nov. 1986.]]
[10]
Neighbours, J. 1984. The Draco Approach to Constructing Software from Reusable Components. IEEE Trans. on Software Eng., SE-10(5), September 1984, pp. 564--574.]]
[11]
Smaragdakis, Y. and Batory, D. "Application generators," in Software Engineering volume of the Encyclopedia of Electrical and Electronics Engineering, J. Webster (ed.), John Wiley and Sons, 2000.]]
[12]
Sneed, H. private communication.]]
[13]
Soe, M.S., Zhang, H. and Jarzabek, S. "XVCL: A Tutorial," Proc. of 14th Int. Conf. on Software Engineering and Knowledge Engineering,SEKE'02, ACM Press, July 2002, Italy, pp. 341--349.]]
[14]
Tarr, P., Ossher, H., Harrison, W. and Sutton, S. "N Degrees of Separation: Multi-Dimensional Separation of Concerns", Proc. International Conference on Software Engineering, ICSE'99, Los Angeles, 1999, pp. 107--119.]]
[15]
Wong, T.W., Jarzabek, S., Soe, M.S., Shen, R. and Zhang, H.Y. "XML Implementation of Frame Processor," Symposium on Software Reusability, SSR'01, Toronto, Canada, May 2001, pp. 164--172.]]
[16]
Zhang, H.Y., Jarzabek, S. and Soe, M. S., 2001. XVCL Approach to Separating Concerns in Product Family Assets, Proc. Generative and Component-based Software Engineering (GCSE 2001), Erfurt, Germany, September 2001, pp. 36--47.]]

Cited By

View all

Index Terms

  1. Eliminating redundancies with a "composition with adaptation" meta-programming technique

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ESEC/FSE-11: Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
    September 2003
    394 pages
    ISBN:1581137435
    DOI:10.1145/940071
    • cover image ACM SIGSOFT Software Engineering Notes
      ACM SIGSOFT Software Engineering Notes  Volume 28, Issue 5
      September 2003
      382 pages
      ISSN:0163-5948
      DOI:10.1145/949952
      Issue’s Table of Contents
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 01 September 2003

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. class libraries
    2. generative programming
    3. meta-programming
    4. object-oriented methods

    Qualifiers

    • Article

    Conference

    ESEC/FSE03
    Sponsor:

    Acceptance Rates

    ESEC/FSE-11 Paper Acceptance Rate 33 of 168 submissions, 20%;
    Overall Acceptance Rate 112 of 543 submissions, 21%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)3
    • Downloads (Last 6 weeks)1
    Reflects downloads up to 24 Dec 2024

    Other Metrics

    Citations

    Cited By

    View all

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media