Automated Creation and Assessment of Component Adapters with Test Cases

  • Oliver Hummel
  • Colin Atkinson
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6092)

Abstract

The composition of new applications from pre-existing parts has been one of the central notions in software reuse and component-based development for many years. Recent advances with component retrieval technologies and dynamically reconfiguring systems have brought the automated integration of components into systems into the focus of research. Even when a component offers all functionality needed by the using environment there is often a host of “syntactic obstacles” and to date there is no general solution available that can automatically address syntactic mismatches between components and their clients. In this paper we present an approach that automatically creates all syntactically feasible adapters for a given component-client constellation and selects the semantically correct one with the help of “ordinary” unit test cases. After explaining how our approach works algorithmically, we demonstrate that our prototype implementation is already able to solve a large fraction of the adaptation challenges previously identified in the literature fully automatically.

Keywords

Signature Match Identical Style Automate Adaptation Operation Signature Component Adapter 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Brooks, F.P.: No silver bullet: Essence and accidents of software engineering. IEEE Computer 20(4) (1987)Google Scholar
  2. 2.
    Parnas, D.L.: On the Criteria to be Used in Decomposing Systems into Modules. Communications of the ACM 15(12) (1972)Google Scholar
  3. 3.
    McIlroy, D.: Mass-Produced Software Components. In: Software Engineering: Report of a Conference Sponsored by the NATO Science Committee, Garmisch, Germany (1968)Google Scholar
  4. 4.
    Szyperski, C.: Component Software, 2nd edn. Addison-Wesley, Reading (2002)Google Scholar
  5. 5.
    Erl, T.: Service-oriented architecture: concepts, technology and design. Prentice-Hall, Englewood Cliffs (2005)Google Scholar
  6. 6.
    Crnkovic, I., Chaudron, M., Larsson, S.: Component-based Development Process and Component Lifecycle. In: Proc. of the Intern. Conf. on Software Engin. Advances (2006)Google Scholar
  7. 7.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)Google Scholar
  8. 8.
    Kell, S.: A Survey of Practical Software Adaptation Techniques. Journal of Universal Computer Science 14(13) (2008)Google Scholar
  9. 9.
    Beck, K.: Extreme programming explained: embrace change. Addison-Wesley, Reading (2004)Google Scholar
  10. 10.
    Podgurski, A., Pierce, L.: Retrieving Reusable Software by Sampling Behavior. ACM Transactions on Software Engineering and Methodology 2(3) (1993)Google Scholar
  11. 11.
    Hummel, O., Janjic, W., Atkinson, C.: Code Conjurer: Pulling Reusable Software out of Thin Air. IEEE Software 25(5) (2008)Google Scholar
  12. 12.
    Becker, S., Brogi, A., Gorton, I., Overhage, S., Romanovsky, A., Tivoli, M.: Towards an Engineering Approach to Component Adaptation. In: Reussner, R., Stafford, J.A., Szyperski, C. (eds.) Architecting Systems with Trustworthy Components. LNCS, vol. 3938. Springer, Heidelberg (2006)Google Scholar
  13. 13.
    Meyer, B.: Applying Design by Contract. IEEE Computer 25(10) (1992)Google Scholar
  14. 14.
    Zaremski, A.M., Wing, J.M.: Signature Matching: A Tool for Using Software Libraries. ACM Transactions on Software Engineering and Methodology 4(2) (1995)Google Scholar
  15. 15.
    Stringer-Calvert, D.W.J.: Signature Matching for Ada Software Reuse. Master’s Thesis, University of York (1994)Google Scholar
  16. 16.
    Liskov, B., Wing, J.M.: A behavioral notion of subtyping. ACM Transaction on Programming Languages and Systems 16(6) (1994)Google Scholar
  17. 17.
    Hummel, O., Atkinson, C.: The Managed Adapter Pattern: Facilitating Glue Code Generation for Component Reuse. In: Edwards, S.H., Kulczycki, G. (eds.) ICSR 2009. LNCS, vol. 5791. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  18. 18.
    Penix, J., Alexander, P.: Towards Automated Component Adaptation. In: Proceedings of the International Conference on Software Engineering and Knowledge Engineering (1997)Google Scholar
  19. 19.
    Haack, C., Howard, B., Stoughton, A., Wells, J.B.: Fully automatic adaptation of software components based on semantic specifications. In: Kirchner, H., Ringeissen, C. (eds.) AMAST 2002. LNCS, vol. 2422. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  20. 20.
    Bracciali, A., Brogi, A., Canal, C.: A formal approach to component adaptation. The Journal of Systems and Software 74(1) (2005)Google Scholar
  21. 21.
    Gschwind, T.: Adaptation and Composition Techniques for Component-Based Software Engineering, PhD thesis, Technical University of Vienna (2002)Google Scholar
  22. 22.
    Brenner, D., Atkinson, C., Malaka, R., Merdes, M., Suliman, D., Paech, B.: Reducing Verification Effort in Component-Based Software Engineering through Built-In Testing. In: Information Systems Frontiers, vol. 9(2). Springer, Heidelberg (2007)Google Scholar
  23. 23.
    Motahari Nezhad, H.R., Benatallah, B., Martens, A., Curbera, F., Casati, F.: Semi-automated adaptation of service interactions. In: Proceedings of the International Conference on the World Wide Web (2007)Google Scholar
  24. 24.
    Atkinson, C., Hummel, O.: Reconciling Reuse and Trustworthiness through Self-Adapting Components. In: Proceedings of the International Workshop on Component-Oriented Programming (2009)Google Scholar
  25. 25.
    Martin, J.A., Pimentel, E.: Automatic Generation of Adaptation Contracts. Electronic Notes on Theoretical Computer Science, vol. 229, p. 2 (2009)Google Scholar
  26. 26.
    Czarnecki, K., Eisenecker, U.: Generative Programming: Methods, Tools, and Applications. Addison-Wesley, Reading (2000)Google Scholar
  27. 27.
    O.S.G. Alliance: OSGi Service Platform Core Specification. Release 4. OSGi (2007)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Oliver Hummel
    • 1
  • Colin Atkinson
    • 1
  1. 1.Software Engineering GroupUniversity of MannheimMannheimGermany

Personalised recommendations