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.
- }}F. Arbab and F. Mavaddat. Coordination through channel composition. In Proc. Coordination, pages 21--38, 2002. Google Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}A. Bracciali, A. Brogi, and C. Canal. A formal approach to component adaptation. J. Syst. Softw., 74:45--54, 2005. Google Scholar
Digital Library
- }}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 Scholar
- }}R. DeLine. Avoiding packaging mismatch with flexible packaging. IEEE Transactions on Software Engineering, 27:124--143, 2001. Google Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}DWARF Debugging Information Format version 3. Free Standards Group, December 2005.Google Scholar
- }}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 Scholar
Digital Library
- }}W. Harrison and H. Ossher. Subject-oriented programming: a critique of pure objects. ACM SIGPLAN Not., 28:411--428, 1993. Google Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}A. Kantee. Rump file systems: Kernel code reborn. In Proceedings of the 2009 USENIX Annual Technical Conference, Berkeley, CA, USA, 2009. USENIX Association. Google Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}S. McDirmid and W. Hsieh. SuperGlue: Component programming with object-oriented signals. In ECOOP 2006. Springer, 2006. Google Scholar
Digital Library
- }}J. Misra and W. Cook. Computation orchestration: A basis for wide-area computing. J. Softw. & Syst. Modeling, 6:83--110, 2006.Google Scholar
Cross Ref
- }}I. Neamtiu and M. Hicks. Safe and timely dynamic updates for multi-threaded programs. In Proc. PLDI '09, pages 13--24, 2009. Google Scholar
Digital Library
- }}I. Neamtiu, M. Hicks, G. Stoyle, and M. Oriol. Practical dynamic software updating for C. In Proc. PLDI '06. ACM, 2006. Google Scholar
Digital Library
- }}M. Nita and D. Notkin. Using twinning to adapt programs to alternative APIs. In Proc. 32nd Intl. Conf. Softw. Eng. IEEE, 2010. Google Scholar
Digital Library
- }}D. Parnas. On the criteria to be used in decomposing systems into modules. Communications of the ACM, 15:1053--1058, 1972. Google Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}J. Purtilo and J. Atlee. Module reuse by interface adaptation. Software -- Practice and Experience, 21:539--556, 1991. Google Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}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 Scholar
Digital Library
- }}A. Wasylkowski, A. Zeller, and C. Lindig. Detecting object usage anomalies. In Proc. ESEC-FSE '07, pages 35--44. ACM, 2007. Google Scholar
Digital Library
- }}D. Yellin and R. Strom. Protocol specifications and component adaptors. ACM TOPLAS, 19:292--333, 1997. Google Scholar
Digital Library
Index Terms
Component adaptation and assembly using interface relations
Recommendations
Component adaptation and assembly using interface relations
OOPSLA '10: Proceedings of the ACM international conference on Object oriented programming systems languages and applicationsSoftware'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 ...
Using resemblance to support component reuse and evolution
SAVCBS '06: Proceedings of the 2006 conference on Specification and verification of component-based systemsThe aim of a component-based approach to software is to allow the construction of a system by reusing and connecting together a number of existing components. To successfully reuse a component, alterations generally need to be made to it, particularly ...
A catalogue of component connectors to support development with reuse
Component-based development is based on the idea of building software systems by composing pre-existing components. Connectors are the 'glue' for composing components. Therefore, it is important to consider connectors as first-class entities and provide ...







Comments