Towards an Engineering Approach to Component Adaptation

  • Steffen Becker
  • Antonio Brogi
  • Ian Gorton
  • Sven Overhage
  • Alexander Romanovsky
  • Massimo Tivoli
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3938)


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.


Interface Model Component Adaptation Interaction Protocol Engineer Approach Require Interface 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 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)MathSciNetCrossRefMATHGoogle Scholar
  2. 2.
    Yellin, D., Strom, R.: Protocol Specifications and Component Adaptors. ACM Transactions on Programming Languages and Systems 19, 292–333 (1997)CrossRefGoogle Scholar
  3. 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. 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. 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)CrossRefGoogle Scholar
  6. 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)CrossRefGoogle Scholar
  7. 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. 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)CrossRefGoogle Scholar
  9. 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)CrossRefGoogle Scholar
  10. 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. 11.
    Tivoli, M., Garlan, D.: Coordinator Synthesis for Reliability Enhancement in Component-Based Systems. Technical report, Carnegie Mellon University (2004)Google Scholar
  12. 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. 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. 14.
    Tivoli, M., Autili, M.: SYNTHESIS: A Tool for Synthesizing Correct and Protocol-Enhanced Adaptors. L’Objet journal (to appear, 2005),
  15. 15.
    Garlan, D., Allan, R., Ockerbloom, J.: Architectural Mismatch: Why Reuse Is So Hard. IEEE Software 12, 17–26 (1995)CrossRefGoogle Scholar
  16. 16.
    Mili, H., Mili, F., Mili, A.: Reusing Software: Issues and Research Directions. IEEE Transactions on Software Engineering 21, 528–561 (1995)CrossRefMATHGoogle Scholar
  17. 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)CrossRefGoogle Scholar
  18. 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)CrossRefGoogle Scholar
  19. 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. 20.
    D’Souza, D.F., Wills, A.C.: Objects, Components, and Frameworks with UML: The Catalysis Approach. Addison-Wesley, Reading (1999)Google Scholar
  21. 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)CrossRefGoogle Scholar
  22. 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. 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)CrossRefGoogle Scholar
  24. 24.
    Beugnard, A., Jezequel, J.M., Plouzeau, N., Watkins, D.: Making Components Contract Aware. IEEE Computer 32, 38–45 (1999)CrossRefGoogle Scholar
  25. 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)CrossRefGoogle Scholar
  26. 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)CrossRefGoogle Scholar
  27. 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)CrossRefGoogle Scholar
  28. 28.
    Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice Hall, Englewood Cliffs (1997)MATHGoogle Scholar
  29. 29.
    Zaremski, A.M., Wing, J.M.: Specification Matching of Software Components. ACM Transactions on Software Engineering and Methodology 6, 333–369 (1997), CrossRefGoogle Scholar
  30. 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. 31.
    ISO/IEC: Software Engineering - Product Quality - Quality Model. ISO Standard 9126-1, International Organization for Standardization (2001)Google Scholar
  32. 32.
    ISO/IEC: Software Engineering - Product Quality - External Metrics. ISO Standard 9126-2, International Organization for Standardization (2003)Google Scholar
  33. 33.
    Horwich, P.: Wittgenstein and Kripke on the Nature of Meaning. Mind and Language 5, 105–121 (1990)CrossRefGoogle Scholar
  34. 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)CrossRefGoogle Scholar
  35. 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)CrossRefGoogle Scholar
  36. 36.
    Noy, N.F.: Semantic Integration: A Survey Of Ontology-Based Approaches. SIGMOD Record 33, 65–70 (2004)CrossRefGoogle Scholar
  37. 37.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)MATHGoogle Scholar
  38. 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. 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)MATHGoogle Scholar
  40. 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. 41.
    Grand, M.: Java Enterprise Design Patterns: Patterns in Java (Patterns in Java). John Wiley & Sons, Chichester (2002)Google Scholar
  42. 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. 43.
    Magee, J., Kramer, J.: Concurrency: State Models and Java Programs. John Wiley and Sons, Chichester (1999)MATHGoogle Scholar
  44. 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. 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. 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. 47.
    Bracciali, A., Brogi, A., Canal, C.: A formal approach to component adaptation. Journal of Systems and Software 74, 45–54 (2005)CrossRefGoogle Scholar
  48. 48.
    Reussner, R.H.: Automatic Component Protocol Adaptation with the CoCoNut Tool Suite. Future Generation Computer Systems 19, 627–639 (2003)CrossRefGoogle Scholar
  49. 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. 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. 51.
    Gschwind, T.: Adaptation and Composition Techniques for Component-Based Software Engineering. PhD thesis, Technische Universität Wien (2002)Google Scholar
  52. 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)CrossRefGoogle Scholar
  53. 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. 54.
    Aagedal, J.Ø.: Quality of Service Support in Development of Distributed Systems. PhD thesis, University of Oslo (2001)Google Scholar
  55. 55.
    Bosch, J.: Design and Use of Software Architectures – Adopting and evolving a product-line approach. Addison-Wesley, Reading (2000)Google Scholar
  56. 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. 57.
    Kiczales, G.: Aspect-oriented programming. ACM Computing Surveys 28, 154 (1996), CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Steffen Becker
    • 1
  • Antonio Brogi
    • 2
  • Ian Gorton
    • 3
  • Sven Overhage
    • 4
  • Alexander Romanovsky
    • 5
  • Massimo Tivoli
    • 6
  1. 1.Software Engineering GroupUniversity of OldenburgOldenburgGermany
  2. 2.Department of Computer ScienceUniversity of PisaPisaItaly
  3. 3.Empirical Software Engineering Group, National ICT Australia, Bay 15 Locomotive Workshop, Australian Technology Park EveleighAustralia
  4. 4.Dept. of Software Engineering and Business Information SystemsAugsburg UniversityAugsburgGermany
  5. 5.School of Computing ScienceUniversity of Newcastle upon TyneNewcastle upon TyneUnited Kingdom
  6. 6.Dept. of Computer ScienceUniversity of L’AquilaL’AquilaItaly

Personalised recommendations