skip to main content
research-article

Component adaptation and assembly using interface relations

Published:17 October 2010Publication History
Skip Abstract Section

Abstract

Software's expense owes partly to frequent reimplementation of similar functionality and partly to maintenance of patches, ports or components targeting evolving interfaces. More modular non-invasive approaches are unpopular because they entail laborious wrapper code. We propose Cake, a rule-based language describing compositions using interface relations. To evaluate it, we compare several existing wrappers with reimplemented Cake versions, finding the latter to be simpler and better modularised.

References

  1. }}F. Arbab and F. Mavaddat. Coordination through channel composition. In Proc. Coordination, pages 21--38, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. }}G. Balakrishnan, R. Gruian, T. Reps, and T. Teitelbaum. Codesurfer/x86--a platform for analyzing x86 executables. In Proc. 14th Intl. Conf. Compiler Construction, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. }}D. Beazley. Swig: An easy to use tool for integrating scripting languages with C and C++. In Proceedings of the 4th USENIX Tcl/Tk Workshop, pages 129--139, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. }}A. Bohannon, J. N. Foster, B. C. Pierce, A. Pilkiewicz, and A. Schmitt. Boomerang: resourceful lenses for string data. In Proc. POPL '08, pages 407--419. ACM, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. }}A. Bracciali, A. Brogi, and C. Canal. A formal approach to component adaptation. J. Syst. Softw., 74:45--54, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. }}G. Bracha, C. Clark, G. Lindstrom, and D. Orr. Module management as a system service. In OOPSLA Workshop on Object-oriented Reflection and Metalevel Architectures, 1993.Google ScholarGoogle Scholar
  7. }}R. DeLine. Avoiding packaging mismatch with flexible packaging. IEEE Transactions on Software Engineering, 27:124--143, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. }}D. Dig, S. Negara, V. Mohindra, and R. Johnson. ReBA: a tool for generating binary adapters for evolving java libraries. In Proc. 30th Intl. Conf. Softw. Eng., pages 963--964. ACM, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. }}DWARF Debugging Information Format version 3. Free Standards Group, December 2005.Google ScholarGoogle Scholar
  10. }}E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design patterns: elements of reusable object-oriented software. Addison-Wesley Longman Publishing Co., Inc. Boston, MA, USA, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. }}W. Harrison and H. Ossher. Subject-oriented programming: a critique of pure objects. ACM SIGPLAN Not., 28:411--428, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. }}J. Järvi, M. Marcus, and J. Smith. Library composition and adaptation using C++ concepts. In Proc. 6th Intl. Conf. on Generative Programming and Component Engineering, pages 73--82, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. }}A. Kantee. Rump file systems: Kernel code reborn. In Proceedings of the 2009 USENIX Annual Technical Conference, Berkeley, CA, USA, 2009. USENIX Association. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. }}C.-K. Luk, R. Cohn, R. Muth, H. Patil, A. Klauser, G. Lowney, S. Wallace, V. J. Reddi, and K. Hazelwood. Pin: building customized program analysis tools with dynamic instrumentation. In Proc. PLDI. ACM, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. }}S. McDirmid and W. Hsieh. SuperGlue: Component programming with object-oriented signals. In ECOOP 2006. Springer, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. }}J. Misra and W. Cook. Computation orchestration: A basis for wide-area computing. J. Softw. & Syst. Modeling, 6:83--110, 2006.Google ScholarGoogle ScholarCross RefCross Ref
  17. }}I. Neamtiu and M. Hicks. Safe and timely dynamic updates for multi-threaded programs. In Proc. PLDI '09, pages 13--24, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. }}I. Neamtiu, M. Hicks, G. Stoyle, and M. Oriol. Practical dynamic software updating for C. In Proc. PLDI '06. ACM, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. }}M. Nita and D. Notkin. Using twinning to adapt programs to alternative APIs. In Proc. 32nd Intl. Conf. Softw. Eng. IEEE, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. }}D. Parnas. On the criteria to be used in decomposing systems into modules. Communications of the ACM, 15:1053--1058, 1972. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. }}R. Passerone, L. de Alfaro, T. Henzinger, and A. Sangiovanni-Vincentelli. Convertibility verification and converter synthesis: Two faces of the same coin. In Proc. Intl. Conf. Computer-Aided Design, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. }}J. Purtilo and J. Atlee. Module reuse by interface adaptation. Software -- Practice and Experience, 21:539--556, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. }}A. Reid, M. Flatt, L. Stoller, J. Lepreau, and E. Eide. Knit: Component composition for systems software. In Proc. 4th OSDI, pages 347--360. USENIX Association, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. }}J. Sharp and B. Massey. XCL: An Xlib compatibility layer for XCB. In Proceedings of the FREENIX Track: 2002 USENIX Annual Technical Conference. USENIX Association, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. }}A. Wasylkowski, A. Zeller, and C. Lindig. Detecting object usage anomalies. In Proc. ESEC-FSE '07, pages 35--44. ACM, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. }}D. Yellin and R. Strom. Protocol specifications and component adaptors. ACM TOPLAS, 19:292--333, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Component adaptation and assembly using interface relations

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!