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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
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)
Yellin, D., Strom, R.: Protocol Specifications and Component Adaptors. ACM Transactions on Programming Languages and Systems 19, 292–333 (1997)
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)
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)
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)
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)
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)
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)
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)
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)
Tivoli, M., Garlan, D.: Coordinator Synthesis for Reliability Enhancement in Component-Based Systems. Technical report, Carnegie Mellon University (2004)
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)
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)
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
Garlan, D., Allan, R., Ockerbloom, J.: Architectural Mismatch: Why Reuse Is So Hard. IEEE Software 12, 17–26 (1995)
Mili, H., Mili, F., Mili, A.: Reusing Software: Issues and Research Directions. IEEE Transactions on Software Engineering 21, 528–561 (1995)
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)
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)
Szyperski, C., Gruntz, D., Murer, S.: Component Software: Beyond Object-Oriented Programming, 2nd edn. ACM Press and Addison-Wesley, New York (2002)
D’Souza, D.F., Wills, A.C.: Objects, Components, and Frameworks with UML: The Catalysis Approach. Addison-Wesley, Reading (1999)
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)
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)
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)
Beugnard, A., Jezequel, J.M., Plouzeau, N., Watkins, D.: Making Components Contract Aware. IEEE Computer 32, 38–45 (1999)
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)
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)
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)
Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice Hall, Englewood Cliffs (1997)
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
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)
ISO/IEC: Software Engineering - Product Quality - Quality Model. ISO Standard 9126-1, International Organization for Standardization (2001)
ISO/IEC: Software Engineering - Product Quality - External Metrics. ISO Standard 9126-2, International Organization for Standardization (2003)
Horwich, P.: Wittgenstein and Kripke on the Nature of Meaning. Mind and Language 5, 105–121 (1990)
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)
Noy, N.F.: Tools for Mapping and Merging Ontologies. In: Staab, S., Studer, R. (eds.) Handbook on Ontologies, pp. 365–384. Springer, Heidelberg (2004)
Noy, N.F.: Semantic Integration: A Survey Of Ontology-Based Approaches. SIGMOD Record 33, 65–70 (2004)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M.: Pattern-Oriented Software Architecture – A System of Patterns. Wiley & Sons, Chichester (1996)
Schmidt, D., Stal, M., Rohnert, H., Buschmann, F.: Pattern-Oriented Software Architecture – Patterns for Concurrent and Networked Objects, 2nd edn. Wiley & Sons, Chichester (2000)
Kircher, M., Jain, P.: Pattern-Oriented Software Architecture: Patterns for Distributed Services and Components. John Wiley and Sons Ltd., Chichester (2004)
Grand, M.: Java Enterprise Design Patterns: Patterns in Java (Patterns in Java). John Wiley & Sons, Chichester (2002)
Fowler, M., Rice, D., Foemmel, M., Hieatt, E., Mee, R., Stafford, R.: Patterns of Enterprise Application Architecture. Addison-Wesley Professional, Reading (2002)
Magee, J., Kramer, J.: Concurrency: State Models and Java Programs. John Wiley and Sons, Chichester (1999)
Frølund, S., Koistinen, J.: Quality-of-Service Specification in Distributed Object Systems. Technical Report HPL-98-159, Hewlett Packard, Software Technology Laboratory (1998)
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)
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)
Bracciali, A., Brogi, A., Canal, C.: A formal approach to component adaptation. Journal of Systems and Software 74, 45–54 (2005)
Reussner, R.H.: Automatic Component Protocol Adaptation with the CoCoNut Tool Suite. Future Generation Computer Systems 19, 627–639 (2003)
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)
Vanderperren, W., Wydaeghe, B.: Towards a New Component Composition Process. In: Proceedings of ECBS 2001 Int. Conf., Washington, USA, pp. 322–331 (2001)
Gschwind, T.: Adaptation and Composition Techniques for Component-Based Software Engineering. PhD thesis, Technische Universität Wien (2002)
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)
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)
Aagedal, J.Ø.: Quality of Service Support in Development of Distributed Systems. PhD thesis, University of Oslo (2001)
Bosch, J.: Design and Use of Software Architectures – Adopting and evolving a product-line approach. Addison-Wesley, Reading (2000)
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)
Kiczales, G.: Aspect-oriented programming. ACM Computing Surveys 28, 154 (1996), http://www.acm.org/pubs/citations/journals/surveys/1996-28-4es/a154-kiczales/
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)