The Community for Technology Leaders
RSS Icon
Issue No.04 - July/August (2008 vol.34)
pp: 546-563
Carlos Canal , Universidad de Málaga, Málaga
Pascal Poizat , INRIA, Rocquencourt
Gwen Salaün , Universidad de Málaga, Málaga
Component-Based Software Engineering focuses on the reuse of existing software components. In practice, most components cannot be integrated directly into an application-to-be, because they are incompatible. Software Adaptation aims at generating, as automatically as possible, adaptors to compensate mismatch between component interfaces, and is therefore a promising solution for the development of a real market of components promoting software reuse. In this article, we present our approach for software adaptation which relies on an abstract notation based on synchronous vectors and transition systems for governing adaptation rules. Our proposal is supported by dedicated algorithms that generate automatically adaptor protocols. These algorithms have been implemented in a tool, called Adaptor, that can be used through a user-friendly graphical interface.
Software Engineering, Requirements/Specifications, Design Tools and Techniques, Software Architectures, Interoperability, Interface definition languages, Software Construction
Carlos Canal, Pascal Poizat, Gwen Salaün, "Model-Based Adaptation of Behavioral Mismatching Components", IEEE Transactions on Software Engineering, vol.34, no. 4, pp. 546-563, July/August 2008, doi:10.1109/TSE.2008.31
[1] O. Nierstrasz and T.D. Meijler, “Research Directions in Software Composition,” ACM Computing Surveys, vol. 27, no. 2, pp. 262-264, 1995.
[2] S. Becker, A. Brogi, I. Gorton, S. Overhage, A. Romanovsky, and M. Tivoli, “Towards an Engineering Approach to Component Adaptation,” Architecting Systems with Trustworthy Components. pp. 193-215, Springer, 2006.
[3] C. Canal, J.M. Murillo, and P. Poizat, “Coordination and Adaptation Techniques for Software Entities,” Proc. European Conf. Object-Oriented Programming '04 Workshop Reader, pp. 133-147, 2004.
[4] C. Canal, J.M. Murillo, and P. Poizat, “Software Adaptation,” L'Objet, special issue on coordination and adaptation techniques, vol. 12, no. 1, pp. 9-31, 2006.
[5] G. Agha, “Introduction to Special Issue on Adaptive Middleware,” Comm. ACM, vol. 45, no. 6, pp. 30-64, June 2002.
[6] C. Szyperski, Component Software: Beyond Object-Oriented Programming. Addison-Wesley, 1998.
[7] A. Beugnard, J.-M. Jézéquel, and N. Plouzeau, “Making Components Contract Aware,” Computer, vol. 32, no. 7, pp. 38-45, July 1999.
[8] R. Allen and D. Garlan, “A Formal Basis for Architectural Connection,” ACM Trans. Software Eng. and Methodology, vol. 6, no. 3, pp. 213-249, 1997.
[9] D.M. Yellin and R.E. Strom, “Protocol Specifications and Components Adaptors,” ACM Trans. Programming Languages and Systems, vol. 19, no. 2, pp. 292-333, 1997.
[10] J. Magee, J. Kramer, and D. Giannakopoulou, “Behaviour Analysis of Software Architectures,” Proc. First Working IFIP Conf. Software Architecture, pp. 35-49, 1999.
[11] L. de Alfaro and T.A. Henzinger, “Interface Automata,” Proc. Joint Eighth European Software Eng. Conf. and Ninth ACM SIGSOFT Int'l Symp. Foundations of Software Eng., pp. 109-120, 2001.
[12] F. Plasil and S. Visnovsky, “Behavior Protocols for Software Components,” IEEE Trans. Software Eng., vol. 28, no. 11, pp. 1056-1076, Nov. 2002.
[13] C. Canal, L. Fuentes, E. Pimentel, J.M. Troya, and A. Vallecillo, “Adding Roles to CORBA Objects,” IEEE Trans. Software Eng., vol. 29, no. 3, pp. 242-260, Mar. 2003.
[14] C. Canal, P. Poizat, and G. Salaün, “Synchronizing Behavioural Mismatch in Software Composition,” Proc. Eighth IFIP Int'l Conf. Formal Methods for Open Object-Based Distributed Systems, pp. 63-77, 2006.
[15] C. Canal, P. Poizat, and G. Salaün, “Model-Based Adaptation of Behavioural Mismatching Components (Long Version),”, 2008.
[16] J. Cubo, G. Salaün, C. Canal, E. Pimentel, and P. Poizat, “A Model-Based Approach to the Verification and Adaptation of WF/.NET Components,” Proc. Fourth Int'l Workshop Formal Aspects of Component Software (FACS '07), pp. 39-55, 2008.
[17] K. Scribner, Microsoft Windows Workflow Foundation: Step by Step. Microsoft Press, 2007.
[18] Handbook of Process Algebra, J.A. Bergstra, A. Ponse, and S.A. Smolka, eds. Elsevier, 2001.
[19] R. Milner, Communication and Concurrency. Prentice Hall, 1994.
[20] Formal Methods for Software Architectures, M. Bernardo and P. Inverardi, eds. Springer, 2003.
[21] A. Arnold, Finite Transition Systems. Prentice Hall, 1994.
[22] H. Garavel, R. Mateescu, F. Lang, and W. Serwe, “CADP 2006: A Toolbox for the Construction and Analysis of Distributed Processes,” Proc. 19th Int'l Conf. Computer Aided Verification, pp.158-163, 2007.
[23] S. Haddad and P. Poizat, “Transactional Reduction of Component Compositions,” Proc. 27th IFIP Int'l Conf. Formal Methods for Networked and Distributed Systems, pp. 341-357, 2007.
[24] J.E. Hopcroft and J.D. Ullman, Introduction to Automata Theory, Languages and Computation. Addison Wesley, 1979.
[25] S. Uchitel, J. Kramer, and J. Magee, “Synthesis of Behavioural Models from Scenarios,” IEEE Trans. Software Eng., vol. 29, no. 2, pp. 99-115, Feb. 2003.
[26] P. Inverardi and M. Tivoli, “Deadlock Free Software Architectures for COM/DCOM Applications,” J. Systems and Software, vol. 65, no. 3, pp. 173-183, 2003.
[27] T. Murata, “Petri Nets: Properties, Analysis and Applications,” Proc. IEEE, vol. 77, no. 4, pp. 541-580, 1989.
[28] C. Rackoff, “The Covering and Boundedness Problems for Vector Addition Systems,” Theoretical Computer Science, vol. 6, pp. 223-231, 1978.
[29] “Adaptor, December 2007 Distribution (LGPL Licence),”, 2008.
[30] E. Gansner, E. Koutsofios, and S. North, DOT User's Manual, Jan. 2006.
[31] B. Berthomieu, P.-O. Ribet, and F. Vernadat, “The Tool TINA— Construction of Abstract State Spaces for Petri Nets and Time Petri Nets,” Int'l J. Production Research, vol. 42, no. 14, pp. 2741-2756, 2004.
[32] M. Wermelinger, A. Lopes, and J.L. Fiadeiro, “A Graph Based Architectural (Re)Configuration Language,” Proc. Joint Eighth European Software Eng. Conf. and Ninth ACM SIGSOFT Int'l Symp. Foundations of Software Eng., pp. 20-32, 2001.
[33] S. Dustdar and W. Schreiner, “A Survey on Web Services Composition,” Int'l J. Web and Grid Services, vol. 1, no. 1, pp. 1-30, 2005.
[34] Proc. Int'l Workshop Series on Coordination and Adaptation Techniques, http:/, 2008.
[35] D. Lea and J. Marlowe, “Interface-Based Protocol Specification of Open Systems Using PSL,” Proc. Ninth European Conf. Object-Oriented Programming, pp. 374-398, 1995.
[36] B. Spitznagel and D. Garlan, “A Compositional Formalization of Connector Wrappers,” Proc. 25th Int'l Conf. Software Eng., pp. 374-384, 2003.
[37] H. Foster, S. Uchitel, J. Maggee, and J. Kramer, “Model-Based Verification of Web Service Compositions,” Proc. 18th IEEE Int'l Conf. Automated Software Eng., pp. 152-163, 2003.
[38] A. Brogi and R. Popescu, “Automated Generation of BPEL Adapters,” Proc. Fourth Int'l Conf. Service Oriented Computing, pp.27-39, 2006.
[39] H.R. Motahari-Nezhad, B. Benatallah, A. Martens, F. Curbera, and F. Casati, “Semi-Automated Adaptation of Service Interactions,” Proc. 16th Int'l World-Wide Web Conf., pp. 993-1002, 2007.
[40] P. Inverardi and M. Tivoli, “Software Architecture for Correct Components Assembly,” Formal Methods for Software Architectures pp. 92-121, Springer, 2003.
[41] M. Autili, P. Inverardi, A. Navarra, and M. Tivoli, “SYNTHESIS: A Tool for Automatically Assembling Correct and Distributed Component-Based Systems,” Proc. 29th Int'l Conf. Software Eng., pp. 784-787, 2007.
[42] M. Tivoli, P. Fradet, A. Girault, and G. Goessler, “Adaptor Synthesis for Real-Rime Components,” Proc. 13th Int'l Conf. Tools and Algorithms for the Construction and Analysis of Systems, pp. 185-200, 2007.
[43] L. de Alfaro and M. Stoelinga, “Interfaces: A Game-Theoretic Framework to Reason about Open-Systems,” Proc. Second Int'l Workshop Foundations of Coordination Languages and Software Architectures, pp. 3-23, 2004.
[44] A. Bracciali, A. Brogi, and C. Canal, “A Formal Approach to Component Adaptation,” J. Systems and Software, vol. 74, no. 1, pp.45-54, 2005.
[45] A. Brogi, C. Canal, and E. Pimentel, “Component Adaptation through Flexible Subservicing,” Science of Computer Programming, vol. 63, no. 1, pp. 39-56, 2006.
[46] H.W. Schmidt and R.H. Reussner, “Generating Adapters for Concurrent Component Protocol Synchronization,” Proc. Fifth Int'l Conf. Formal Methods for Open Object-Based Distributed Systems, pp.213-229, 2002.
[47] H. Min, S. Choi, and S. Kim, “Using Smart Connectors to Resolve Partial Matching Problems in COTS Component Acquisition,” Proc. Seventh Int'l Symp. Component-Based Software Eng., pp. 40-47, 2004.
[48] B. Benatallah, F. Casati, D. Grigori, H.R. Motahari-Nezhad, and F. Toumani, “Developing Adapters for Web Services Integration,” Proc. 17th Conf. Advanced Information Systems Eng., pp. 415-429, 2005.
[49] R.H. Reussner, “Automatic Component Protocol Adaptation with the CoConut/J Tool Suite,” Future Generation Computer Systems, vol. 19, no. 5, pp. 627-639, 2003.
[50] M. Dumas, K.W.S. Wang, and M.L. Spork, “Adapt or Perish: Algebra and Visual Notation for Service Interface Adaptation,” Proc. Fourth Int'l Conf. Business Process Management, pp. 65-80, 2006.
[51] J. Cubo, G. Salaün, J. Cámara, C. Canal, and E. Pimentel, “Context-Based Adaptation of Component Behavioural Interfaces,” Proc. Ninth Conf. Coordination Models and Languages, pp.305-323, 2007.
[52] R.J. Back, “Incremental Software Construction with Refinement Diagrams,” Technical Report 660, Turku Center for Computer Science, 2005.
[53] P. Poizat and G. Salaün, “Adaptation of Open Component-Based Systems,” Proc. Ninth IFIP Int'l Conf. Formal Methods for Open Object-Based Distributed Systems, pp. 141-156, 2007.
[54] X. Fu, T. Bultan, and J. Su, “Analysis of Interacting BPEL Web Services,” Proc. 13th Int'l Conf. World Wide Web, pp. 621-630, 2004.
[55] H. Foster, S. Uchitel, and J. Kramer, “LTSA-WS: A Tool for Model-Based Verification of Web Service Compositions and Choreography,” Proc. 28th Int'l Conf. Software Eng., pp. 771-774, 2006.
[56] G. Salaün, L. Bordeaux, and M. Schaerf, “Describing and Reasoning on Web Services Using Process Algebra,” Int'l J. Business Process Integration and Management, vol. 1, no. 2, pp. 116-128, 2006.
[57] O. Maréchal, P. Poizat, and J.-C. Royer, “Checking Asynchronously Communicating Components Using Symbolic Transition Systems,” Proc. Int'l Symp. Distributed Objects and Applications, pp.1502-1519, 2004.
[58] C. Attiogbé, P. Poizat, and G. Salaün, “A Formal and Tool-Equipped Approach for the Integration of State Diagrams and Formal Datatypes,” IEEE Trans. Software Eng., vol. 33, no. 3, pp.157-170, Mar. 2007.
[59] P. Poizat, G. Salaün, and M. Tivoli, “An Adaptation-Based Approach to Incrementally Build Component Systems,” Proc. Third Int'l Workshop Formal Aspects of Component Software (FACS '06), pp. 155-170, 2007.
[60] J. Cámara, G. Salaün, and C. Canal, “Clint: A Composition Language Interpreter,” Proc. 11th Int'l Conf. Fundamental Approaches to Software Eng., pp. 423-427, 2008.
[61] S. Ben Mokhtar, N. Georgantas, and V. Issarny, “COCOA: COnversation-Based Service Composition in PervAsive Computing Environments with QoS Support,” J. Systems and Software, special issue on ICPS '06, vol. 80, no. 12, pp. 1941-1955, 2007.
[62] M. Burnett, C. Cook, and G. Rothermel, “End-User Software Engineering,” Comm. ACM, vol. 47, no. 9, pp. 53-58, Sept. 2004.
[63] X. Liu, G. Huang, and H. Mei, “Towards End User Service Composition,” Proc. 31st Ann. Int'l Computer Software and Applications Conf., pp. 676-678, 2007.
15 ms
(Ver 2.0)

Marketing Automation Platform Marketing Automation Tool