Abstract
This paper discusses various classifications of component interoperability errors. These classifications aim at supporting the automation of component adaptation. The use of software components will only demonstrate beneficial, if the costs for component deployment (i.e., acquisition and composition) are considerably lower than those for custom component development. One of the main reasons for the moderate progress in component-based software engineering are the high costs for component deployment. These costs are mainly caused by adapting components to bridge interoperability errors between unfitting components. One way to lower the costs of component deployment is to support component adaptation by tools, i.e., for interoperability checks of (semi-)automated adaptor generation. This automation of component adaptation requires a deep understanding of component interoperability errors. In particular, one has to differentiate between different classes of interoperability errors, as different errors require different adaptors for resolving. Therefore, the presented classification of component interoperability errors supports the automation of component adaptation by aiding automated interoperability problem detection and semi-automated adaptor generation. The experience gained from already implemented solutions for a specific class of interoperability errors provides hints for the solution of similar problems of the same class.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Garlan, D., Allen, R., Ockerbloom, J.: Architectural mismatch: Why reuse is so hard. IEEE Software 12, 17–26 (1995)
DeRemer, F., Kron, H.H.: Programming-in-the-large versus programming-in-the-small. IEEE Transactions on Software Engineering 2, 80–86 (1976)
Shaw, M., Garlan, D.: Software Architecture. Prentice Hall, Englewood Cliffs (1996)
Weyuker, E.J.: The trouble with testing components. In: Heineman, G.T., Councill, W.T. (eds.) Component-Based Software Engineering, pp. 499–512. Addison Wesley (2001)
Overhage, S., Thomas, P.: WS-Specification: Specifing 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)
Vallecillo, A., Hernández, J., Troya, J.: Object interoperability. In: Malenfant, J., Moisan, S., Moreira, A.M.D. (eds.) ECOOP 2000 Workshops. LNCS, vol. 1964, pp. 256–269. Springer, Heidelberg (2000)
Vallecillo, A., Hernández, J., Troya, J.: Object interoperability. In: Moreira, A.M.D., Demeyer, S. (eds.) ECOOP 1999 Workshops. LNCS, vol. 1743, pp. 1–21. Springer, Heidelberg (1999)
Beugnard, A., Jézéquel, J.M., Plouzeau, N., Watkins, D.: Making components contract aware. Computer 32, 38–45 (1999)
Object Management Group (OMG): TheCORBAhomepage, http://www.corba.org
Sun Microsystems Corp.: The JAVA homepage, http://java.sun.com/
Wehrheim, H.: Behavioural Subtyping and Property Preservation. In: Smith, S., Talcott, C. (eds.) Formal Methods for Open Object-Based Distributed Systems (FMOODS 2000), pp. 213–232. Kluwer, Dordrecht (2000)
Wehrheim, H.: Relating state-based and behaviour-oriented subtyping. Nordic Journal of Computing 9, 405–435 (2002)
Liskov, B.H., Wing, J.M.: A behavioral notion of subtyping. ACM Transactions on Programming Languages and Systems 16, 1811–1841 (1994)
Zaremski, A.M., Wing, J.M.: Specification matching of software components. ACM Transactions on Software Engineering and Methodology 6, 333–369 (1997)
Reussner, R.H.: Counter-constraint finite state machines:A new model for resource-bounded component protocols. In: Grosky, W.I., Plášil, F. (eds.) SOFSEM 2002. LNCS, vol. 2540, pp. 20–40. Springer, Heidelberg (2002)
Frolund, S., Koistinen, J.: Quality-of-service specification in distributed object systems. Technical Report HPL-98-159, Hewlett Packard, Software Technology Laboratory (1998)
ISO/IEC Standard: Software engineering - product quality - quality model. Technical Report 9126-1, ISO/IEC (2001)
Overhage, S.: Towards a standardized specification framework for component discovery and configuration. In: Weck, W., Bosch, J., Szyperski, C. (eds.) Proceedings of the Eigth InternationalWorkshop on Component-Oriented Programming, WCOP 2003 (2003)
Cook, S., Daniels, J.: Designing Object Systems. Object-Oriented Modeling with Syntropy. Prentice Hall, Englewood Cliffs (1994)
Davis, A.M.: Software Requirements: Objects, Functions and States. Prentice Hall, Englewood Cliffs (1993)
D’Souza, D.F., Wills, A.C.: Objects, Components, and Frameworks with UML: The Catalysis Approach. Addison-Wesley, Reading (1999)
Graham, I.: Migrating to Object Technology. Addison Wesley, Wokingham (1994)
Olle, T.W., Hagelstein, J., MacDonald, I.G., Rolland, C.: Information Systems Methodologies: A Framework for Understanding. Addison Wesley, Wokingham (1991)
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 9thACMConference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA 1994). ACM Sigplan Notices, vol. 29(10), pp. 176–190 (1994)
Yellin, D., Strom, R.: Protocol Specifications and Component Adaptors. ACM Transactions on Programming Languages and Systems 19, 292–333 (1997)
Bracciali, A., Brogi, A., Canal, C.: Dynamically Adapting the Behaviour of Software Components. In: Arbab, F., Talcott, C. (eds.) COORDINATION 2002. LNCS, vol. 2315, pp. 88–95. Springer, Heidelberg (2002)
Bracciali, A., Brogi, A., Canal, C.: Systematic component adaptation. In: Brogi, A., Pimentel, E. (eds.). Electronic Notes in Theoretical Computer Science, vol. 66, Elsevier, Amsterdam (2002)
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)
Reussner, R.H.: Automatic Component Protocol Adaptation with the CoCoNut Tool Suite. Future Generation Computer Systems 19, 627–639 (2003)
Bosch, J.: Design and Use of Software Architectures – Adopting and evolving a product-line approach. Addison-Wesley, Reading (2000)
Reussner, R.H.: Parametrisierte Verträge zur Protokolladaption bei Software-Komponenten. Logos Verlag, Berlin (2001)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)
Bosch, J.: Composition through superimposition. In: Weck, W., Bosch, J., Szyperski, C. (eds.) Proceedings of the First InternationalWorkshop on Component-Oriented Programming (WCOP 1996), Turku Centre for Computer Science (1996)
Kiczales, G.: Aspect-oriented programming. ACM Computing Surveys 28, 154–154 (1996)
Yakimovich, D., Travassos, G., Basili, V.: A classification of software components incompatibilities for COTS integration. Technical report, Software Engineering LaboratoryWorkshop, NASA/Goddard Space Flight Center, Greenbelt, Maryland (1999)
Davis, L., Gamble, R., Payton, J., Jónsdóttir, G., Underwood, D.: A notation for problematic architecture interactions. In: Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering, pp. 132–141. ACM Press, New York (2001)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Becker, S., Overhage, S., Reussner, R.H. (2004). Classifying Software Component Interoperability Errors to Support Component Adaption. In: Crnkovic, I., Stafford, J.A., Schmidt, H.W., Wallnau, K. (eds) Component-Based Software Engineering. CBSE 2004. Lecture Notes in Computer Science, vol 3054. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24774-6_8
Download citation
DOI: https://doi.org/10.1007/978-3-540-24774-6_8
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-21998-9
Online ISBN: 978-3-540-24774-6
eBook Packages: Springer Book Archive