Automated Adaptation of Component Interfaces with Type Based Adaptation

Abstract

The construction of software can be improved by building software from reusable parts, which are typically referred to as software components. Software components can be developed independently from each other, thus decreasing the overall development time of a project. A disadvantage of software components, however, is that due to their independent development, component interfaces do not necessarily match and thus need to be adapted. In this paper, we present type based adaptation an adaptation technique that, unlike other techniques, supports the automated adaptation of component interfaces by relying on the component’s type information and without requiring knowledge about the component’s implementation. In this paper, we describe how we have achieved this kind of functionality and we will show how we have applied type based adaptation in practice.

Keywords

Shipping Prefix Adapter 

Notes

Acknowledgements

This work was performed while the author was Technische Universität Wien as part of his PhD thesis. The author gratefully acknowledges the financial support provided by the European Union as part of the EASYCOMP project (IST-1999-14151).

References

  1. 1.
    Abadi, M., Cardelli, L.: A Theory of Objects. Springer, Berlin (1996) MATHCrossRefGoogle Scholar
  2. 2.
    Arnold, K., Gosling, J.: The Java Programming Language (Java Series), 2nd edn. Addison-Wesley, Reading (1997) Google Scholar
  3. 3.
    DeMichiel, L.G., Yalçinalp, L.Ü., Krishnan, S.: Enterprise JavaBeans Specification, Version 2.0. Sun Microsystems, April 2001. Proposed Final Draft 2 Google Scholar
  4. 4.
    Eddon, G., Eddon, H.: Inside Distributed COM. Microsoft Press, Redmond (1998) Google Scholar
  5. 5.
    Emmerich, W.: Engineering Distributed Objects. Wiley, New York (2000) Google Scholar
  6. 6.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software, 1st edn. Addison-Wesley, Reading (1995) Google Scholar
  7. 7.
    Hamilton, G.: JavaBeans. Sun Microsystems, August 1997. Version 1.01-A Google Scholar
  8. 8.
    Heineman, G.T.: Adaptation of software components. Technical Report WPI-CS-TR-99-04, Worcester Polytechnic Institute, Computer Science Department, February (1999) Google Scholar
  9. 9.
    Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. In: Akşit, M., Matsuoka, S. (eds.) Proceedings of the 11th European Conference on Object Oriented Programming (ECOOP’97), pp. 220–242. Springer, Berlin (1997) Google Scholar
  10. 10.
    Konstantas, D.: Object oriented interoperability. In: Nierstrasz, O. (ed.) Proceedings of the 7th European Conference on Object Oriented Programming (ECOOP’93), pp. 80–102. Springer, Berlin (1993) Google Scholar
  11. 11.
    Liskov, B.H., Wing, J.M.: Specifications and their use in defining subtypes. In: Paepcke, A. (ed.) Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPLSA’93), pp. 16–28. ACM Press, New York (1993) Google Scholar
  12. 12.
    Liskov, B.H., Wing, J.M.: A behavioral notion of subtyping. ACM Trans. Program. Lang. Syst. 16(6), 1811–1841 (1994) CrossRefGoogle Scholar
  13. 13.
    Maes, P.: Concepts and experiments in computational reflection. In: Meyrowitz, N.K. (ed.) Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA’87), pp. 147–155. ACM Press, New York (1987) CrossRefGoogle Scholar
  14. 14.
    McIlroy, M.D.: Mass produced software components. In: Proceedings of the Nato Software Engineering Conference, pp. 138–155 (1968) Google Scholar
  15. 15.
    Medvidovic, N., Taylor, R.N.: A classification and comparison framework for software architecture description languages. IEEE Trans. Softw. Eng. 26(1), 70–93 (2000) CrossRefGoogle Scholar
  16. 16.
    Meyer, B.: Applying “Design by Contract”. IEEE Comput. 25(10), 40–51 (1992) CrossRefGoogle Scholar
  17. 17.
    Mezini, M., Seiter, L., Lieberherr, K.: Component integration with pluggable composite adapters. In: Aksit, M. (ed.) 2000 Symposium on Software Architectures and Component Technology: The State of the Art in Research and Practice. Kluwer Academic, Dordrecht (2000) Google Scholar
  18. 18.
    Monson-Haefel, R.: Enterprise JavaBeans, 2nd edn. O’Reilly & Associates, Sebastopol (2000) Google Scholar
  19. 19.
    OMG: CORBA Components—Volume I, August 1999. OMG TC Document orbos/99-07-01 Google Scholar
  20. 20.
    OMG: CORBA Components—Volume II: MOF-Based Metamodels, August 1999. OMG TC Document orbos/99-07-02 Google Scholar
  21. 21.
    OMG: CORBA Components—Volume III: Interface Repository, August 1999. OMG TC Document orbos/99-07-03 Google Scholar
  22. 22.
    Purtilo, J.M.: The Polylith software bus. ACM Trans. Program. Lang. Syst. 16(1), 151–174 (1994) CrossRefGoogle Scholar
  23. 23.
    Purtilo, J.M., Atlee, J.M.: Improving module reuse by interface adaptation. In: Proceedings of the International Conference on Computer Languages, pp. 208–217 (1990) CrossRefGoogle Scholar
  24. 24.
    Smith, G., Gough, J., Szyperski, C.: Conciliation: The adaptation of independently developed components. In: Gupta, G., Shen, H. (eds.) Proceedings of the 2nd International Conference on Parallel and Distributed Computing and Networks. IASTED, Calgary (1998) Google Scholar
  25. 25.
    Thatté, S.R.: Automated synthesis of interface adapters for reusable classes. In: Proceedings of the Symposium on Principles of Programming Languages (POPL’94), pp. 174–187. ACM Press, New York (1994) Google Scholar
  26. 26.
    Wegner, P.: Interoperability. ACM Comput. Surv. 28(1) (1996) Google Scholar
  27. 27.
    Yellin, D.M., Strom, R.E.: Interfaces, protocols, and the semi-automatic construction of software adaptors. In: Proceedings of the Ninth Annual Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA’94), pp. 176–190. ACM Press, New York (1994) CrossRefGoogle Scholar
  28. 28.
    Zaremski, A.M., Wing, J.M.: Specification matching of software components. ACM Trans. Softw. Eng. Methodol. 6(4), 333–369 (1997) CrossRefGoogle Scholar

Copyright information

© Springer-Verlag London 2012

Authors and Affiliations

  1. 1.Zurich Research LaboratoryIBMRüschlikonSwitzerland

Personalised recommendations