Skip to main content

Towards an Engineering Approach to Component Adaptation

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 3938))

Abstract

Component adaptation needs to be taken into account when developing trustworthy systems, where the properties of component assemblies have to be reliably obtained from the properties of its constituent components. Thus, a more systematic approach to component adaptation is required when building trustworthy systems. In this paper, we illustrate how (design and architectural) patterns can be used to achieve component adaptation and thus serve as the basis for such an approach. The paper proposes an adaptation model which is built upon a classification of component mismatches, and identifies a number of patterns to be used for eliminating them. We conclude by outlining an engineering approach to component adaptation that relies on the use of patterns and provides additional support for the development of trustworthy component-based systems.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Balemi, S., Hoffmann, G.J., Gyugyi, P., Wong-Toi, H., Franklin, G.F.: Supervisory Control of a Rapid Thermal Multiprocessor. IEEE Transactions on Automatic Control 38, 1040–1059 (1993)

    Article  MathSciNet  MATH  Google Scholar 

  2. Yellin, D., Strom, R.: Protocol Specifications and Component Adaptors. ACM Transactions on Programming Languages and Systems 19, 292–333 (1997)

    Article  Google Scholar 

  3. de Alfaro, L., Henzinger, T.A.: Interface Automata. In: Gruhn, V. (ed.) Proceedings of the Joint 8th European Software Engineering Conference and 9th ACM SIGSOFT Symposium on the Foundation of Software Engeneering (ESEC/FSE-01), New York. SEN, vol. 26, 5, pp. 109–120. ACM Press, New York (2001)

    Google Scholar 

  4. Passerone, R., de Alfaro, L., Henzinger, T., Sangiovanni-Vincentelli, A.L.: Convertibility Verification and Converter Synthesis: Two Faces of the Same Coin. In: Proceedings of the International Conference on Computer Aided Design, ICCAD 2002 (2002)

    Google Scholar 

  5. Giannakopoulou, D., Pasareanu, C.S., Barringer, H.: Assumption Generation for Software Component Verification. In: IEEE (ed.) 17th IEEE International Conference on Automated Software Engineering (ASE 2002), Edinburgh, Scotland, UK, Los Alamitos, CA, September 23-27, pp. 3–12. IEEE Computer Society, Los Alamitos (2002)

    Chapter  Google Scholar 

  6. Inverardi, P., Tivoli, M.: Software Architecture for Correct Components Assembly. In: Bernardo, M., Inverardi, P. (eds.) SFM 2003. LNCS, vol. 2804, pp. 92–121. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  7. Inverardi, P., Tivoli, M.: Failure-Free Connector Synthesis for Correct Components Assembly. In: Proceedings of Specification and Verification of Component-Based Systems (SAVCBS 2003) (2003)

    Google Scholar 

  8. Tivoli, M., Inverardi, P., Presutti, V., Forghieri, A., Sebastianis, M.: Correct Components Assembly for a Product Data Management Cooperative System. In: Crnković, I., Stafford, J.A., Schmidt, H.W., Wallnau, K. (eds.) CBSE 2004. LNCS, vol. 3054, pp. 84–99. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  9. Brogi, A., Canal, C., Pimentel, E.: Behavioural Types and Component Adaptation. In: Rattray, C., Maharaj, S., Shankland, C. (eds.) AMAST 2004. LNCS, vol. 3116, pp. 42–56. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  10. Spitznagel, B., Garlan, D.: A Compositional Formalization of Connector Wrappers. In: IEEE (ed.) Proceedings of the 25th International Conference on Software Engineering, Portland, Oregon, USA, Los Alamitos, CA, pp. 374–384. IEEE Computer Society, Los Alamitos (2003)

    Google Scholar 

  11. Tivoli, M., Garlan, D.: Coordinator Synthesis for Reliability Enhancement in Component-Based Systems. Technical report, Carnegie Mellon University (2004)

    Google Scholar 

  12. Autili, M., Inverardi, P., Tivoli, M., Garlan, D.: Synthesis of ’Correct’ Adaptors for Protocol Enhancement in Component-Based Systems. In: Proceedings of Specification and Verification of Component-Based Systems (SAVCBS 2004). (2004)

    Google Scholar 

  13. Autili, M., Inverardi, P., Tivoli, M.: Automatic Adaptor Synthesis for Protocol Transformation. In: Proceedings of the First International Workshop on Coordination and Adaptation Techniques for Software Entities, WCAT 2004 (2004)

    Google Scholar 

  14. Tivoli, M., Autili, M.: SYNTHESIS: A Tool for Synthesizing Correct and Protocol-Enhanced Adaptors. L’Objet journal (to appear, 2005), http://www.di.univaq.it/tivoli/LastSynthesis.pdf

  15. Garlan, D., Allan, R., Ockerbloom, J.: Architectural Mismatch: Why Reuse Is So Hard. IEEE Software 12, 17–26 (1995)

    Article  Google Scholar 

  16. Mili, H., Mili, F., Mili, A.: Reusing Software: Issues and Research Directions. IEEE Transactions on Software Engineering 21, 528–561 (1995)

    Article  MATH  Google Scholar 

  17. de Lemos, R., Gacek, C., Romanovsky, A.: Architectural Mismatch Tolerance. In: de Lemos, R., Gacek, C., Romanovsky, A. (eds.) Architecting Dependable Systems. LNCS, vol. 2677, pp. 175–194. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  18. Canal, C., Murillo, J.M., Poizat, P.: Coordination and Adaptation Techniques for Software Entities. In: Malenfant, J., Østvold, B.M. (eds.) ECOOP 2004. LNCS, vol. 3344, pp. 133–147. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  19. Szyperski, C., Gruntz, D., Murer, S.: Component Software: Beyond Object-Oriented Programming, 2nd edn. ACM Press and Addison-Wesley, New York (2002)

    Google Scholar 

  20. D’Souza, D.F., Wills, A.C.: Objects, Components, and Frameworks with UML: The Catalysis Approach. Addison-Wesley, Reading (1999)

    Google Scholar 

  21. Becker, S., Overhage, S., Reussner, R.: Classifying Software Component Interoperability Errors to Support Component Adaption. In: Crnković, I., Stafford, J.A., Schmidt, H.W., Wallnau, K. (eds.) CBSE 2004. LNCS, vol. 3054, pp. 68–83. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  22. Yakimovich, D., Travassos, G., Basili, V.: A classification of software components incompatibilities for COTS integration. Technical report, Software Engineering Laboratory Workshop, NASA/Goddard Space Flight Center, Greenbelt, Maryland (1999)

    Google Scholar 

  23. Overhage, S., Thomas, P.: WS-specification: Specifying web services using UDDI improvements. In: Chaudhri, A.B., Jeckle, M., Rahm, E., Unland, R. (eds.) NODe-WS 2002. LNCS, vol. 2593, pp. 100–119. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  24. Beugnard, A., Jezequel, J.M., Plouzeau, N., Watkins, D.: Making Components Contract Aware. IEEE Computer 32, 38–45 (1999)

    Article  Google Scholar 

  25. Overhage, S.: UnSCom: A standardized framework for the specification of software components. In: Weske, M., Liggesmeyer, P. (eds.) NODe 2004. LNCS, vol. 3263, pp. 169–184. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  26. Zaremski, A.M., Wing, J.M.: Signature Matching: A Tool for Using Software Libraries. ACM Transactions on Software Engineering and Methodology 4, 146–170 (1995)

    Article  Google Scholar 

  27. Min, H.G., Choi, S.W., Kim, S.D.: Using smart connectors to resolve partial matching problems in COTS component acquisition. In: Crnković, I., Stafford, J.A., Schmidt, H.W., Wallnau, K. (eds.) CBSE 2004. Min, H.G., Choi, S.W., Kim, S.D, vol. 3054, pp. 40–47. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  28. Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice Hall, Englewood Cliffs (1997)

    MATH  Google Scholar 

  29. Zaremski, A.M., Wing, J.M.: Specification Matching of Software Components. ACM Transactions on Software Engineering and Methodology 6, 333–369 (1997), http://www.acm.org/pubs/articles/journals/tosem/1997-6-4/p333-zaremski/p333-zaremski.pdf

    Article  Google Scholar 

  30. Schmidt, H.W., Reussner, R.H.: Generating Adapters for Concurrent Component Protocol Synchronisation. In: Proceedings of the Fifth IFIP International Conference on Formal Methods for Open Object-Based Distributed Systems (2002)

    Google Scholar 

  31. ISO/IEC: Software Engineering - Product Quality - Quality Model. ISO Standard 9126-1, International Organization for Standardization (2001)

    Google Scholar 

  32. ISO/IEC: Software Engineering - Product Quality - External Metrics. ISO Standard 9126-2, International Organization for Standardization (2003)

    Google Scholar 

  33. Horwich, P.: Wittgenstein and Kripke on the Nature of Meaning. Mind and Language 5, 105–121 (1990)

    Article  Google Scholar 

  34. Paolucci, M., Kawamura, T., Payne, T., Sycara, K.: Semantic matching of web services capabilities. In: Horrocks, I., Hendler, J. (eds.) ISWC 2002. LNCS, vol. 2342, pp. 333–347. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  35. Noy, N.F.: Tools for Mapping and Merging Ontologies. In: Staab, S., Studer, R. (eds.) Handbook on Ontologies, pp. 365–384. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  36. Noy, N.F.: Semantic Integration: A Survey Of Ontology-Based Approaches. SIGMOD Record 33, 65–70 (2004)

    Article  Google Scholar 

  37. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)

    MATH  Google Scholar 

  38. Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M.: Pattern-Oriented Software Architecture – A System of Patterns. Wiley & Sons, Chichester (1996)

    Google Scholar 

  39. Schmidt, D., Stal, M., Rohnert, H., Buschmann, F.: Pattern-Oriented Software Architecture – Patterns for Concurrent and Networked Objects, 2nd edn. Wiley & Sons, Chichester (2000)

    MATH  Google Scholar 

  40. Kircher, M., Jain, P.: Pattern-Oriented Software Architecture: Patterns for Distributed Services and Components. John Wiley and Sons Ltd., Chichester (2004)

    Google Scholar 

  41. Grand, M.: Java Enterprise Design Patterns: Patterns in Java (Patterns in Java). John Wiley & Sons, Chichester (2002)

    Google Scholar 

  42. Fowler, M., Rice, D., Foemmel, M., Hieatt, E., Mee, R., Stafford, R.: Patterns of Enterprise Application Architecture. Addison-Wesley Professional, Reading (2002)

    Google Scholar 

  43. Magee, J., Kramer, J.: Concurrency: State Models and Java Programs. John Wiley and Sons, Chichester (1999)

    MATH  Google Scholar 

  44. Frølund, S., Koistinen, J.: Quality-of-Service Specification in Distributed Object Systems. Technical Report HPL-98-159, Hewlett Packard, Software Technology Laboratory (1998)

    Google Scholar 

  45. McIlroy, M.D.: Mass Produced” Software Components. In: Naur, P., Randell, B. (eds.) Software Engineering, Brussels, Scientific Affairs Division, NATO, pp. 138–155 (1969); Report of a conference sponsored by the NATO Science Committee, Garmisch, Germany, October 7-11, (1968)

    Google Scholar 

  46. Yellin, D., Strom, R.: Interfaces, Protocols and the Semiautomatic Construction of Software Adaptors. In: Proceedings of the 9th ACM Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA 1994). 10 of ACM Sigplan Notices, vol. 29, pp. 176–190 (1994)

    Google Scholar 

  47. Bracciali, A., Brogi, A., Canal, C.: A formal approach to component adaptation. Journal of Systems and Software 74, 45–54 (2005)

    Article  Google Scholar 

  48. Reussner, R.H.: Automatic Component Protocol Adaptation with the CoCoNut Tool Suite. Future Generation Computer Systems 19, 627–639 (2003)

    Article  Google Scholar 

  49. Kent, S.D., Ho-Stuart, C., Roe, P.: Negotiable Interfaces for Components. In: Reussner, R.H., Poernomo, I.H., Grundy, J.C. (eds.) Proceedings of the Fourth Australasian Workshop on Software and Systems Architectures, Melbourne, Australia, DSTC (February 2002)

    Google Scholar 

  50. Vanderperren, W., Wydaeghe, B.: Towards a New Component Composition Process. In: Proceedings of ECBS 2001 Int. Conf., Washington, USA, pp. 322–331 (2001)

    Google Scholar 

  51. Gschwind, T.: Adaptation and Composition Techniques for Component-Based Software Engineering. PhD thesis, Technische Universität Wien (2002)

    Google Scholar 

  52. Hissam, S.A., Moreno, G.A., Stafford, J.A., Wallnau, K.C.: Packaging predictable assembly. In: Bishop, J.M. (ed.) CD 2002. LNCS, vol. 2370, pp. 108–124. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  53. Dumitrascu, N., Murphy, S., Murphy, L.: A Methodology for Predicting the Performance of Component-Based Applications. In: Weck, W., Bosch, J., Szyperski, C. (eds.) Proceedings of the Eighth International Workshop on Component-Oriented Programming (WCOP 2003) (2003)

    Google Scholar 

  54. Aagedal, J.Ø.: Quality of Service Support in Development of Distributed Systems. PhD thesis, University of Oslo (2001)

    Google Scholar 

  55. Bosch, J.: Design and Use of Software Architectures – Adopting and evolving a product-line approach. Addison-Wesley, Reading (2000)

    Google Scholar 

  56. Bosch, J.: Composition through Superimposition. In: Weck, W., Bosch, J., Szyperski, C. (eds.) Proceedings of the First International Workshop on Component-Oriented Programming (WCOP 1996), Turku Centre for Computer Science (1996)

    Google Scholar 

  57. Kiczales, G.: Aspect-oriented programming. ACM Computing Surveys 28, 154 (1996), http://www.acm.org/pubs/citations/journals/surveys/1996-28-4es/a154-kiczales/

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2006 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Becker, S., Brogi, A., Gorton, I., Overhage, S., Romanovsky, A., Tivoli, M. (2006). Towards an Engineering Approach to Component Adaptation. In: Reussner, R.H., Stafford, J.A., Szyperski, C.A. (eds) Architecting Systems with Trustworthy Components. Lecture Notes in Computer Science, vol 3938. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11786160_11

Download citation

  • DOI: https://doi.org/10.1007/11786160_11

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-35800-8

  • Online ISBN: 978-3-540-35833-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics