This Article 
 Bibliographic References 
 Add to: 
Behavior Protocols for Software Components
November 2002 (vol. 28 no. 11)
pp. 1056-1076

Abstract—In this paper, we propose a means to enhance an architecture description language with a description of component behavior. A notation used for this purpose should be able to express the interplay" on the component's interfaces and reflect step-by-step refinement of the component's specification during its design. In addition, the notation should be easy to comprehend and allow for formal reasoning about the correctness of the specification refinement and also about the correctness of an implementation in terms of whether it adheres to the specification. Targeting all these requirements together, the paper proposes employing behavior protocols which are based on a notation similar to regular expressions. As proof of the concept, the behavior protocols are used in the SOFA architecture description language at three levels: interface, frame, and architecture. Key achievements of this paper include the definitions of bounded component behavior and protocol conformance relation. Using these concepts, the designer can verify the adherence of a component's implementation to its specification at runtime, while the correctness of refining the specification can be verified at design time.

[1] R.J. Allen, “A Formal Approach to Software Architecture,” doctoral dissertation, School of Computer Science, Carnegie Mellon Univ., Pittsburgh, 1997.
[2] R. Allen and D. Garlan, "A Formal Basis for Architectural Connection," ACM Trans. Software Eng. and Methodology, July 1997.
[3] J. van den Bos and C. Laffra, “Procol: A Concurrent Object-Oriented Language with Protocols Delegation and Constraints,” Acta Informatica, vol. 28, no. 6, pp. 511–538, 1991.
[4] M. Broy, “A Logical Basis for Modular Software and System Engineering,” Proc. 26th Int'l Seminar Current Trends in Theory and Practice of Informatics, (SOFSEM '99), Nov. 1998.
[5] R.H. Campbell and A.N. Habermann, “The Specification of Process Synchronization by Path Expressions,” pp. 89–102, 1974.
[6] C. Canal, E. Pimentel, and J.M. Troya, “Compatibility and Inheritance in Software Architectures,” Science of Computer Programming, vol. 41, pp 105–138, 2001.
[7] G. Florijn, “Object Protocols as Functional Parsers,” Proc. European Conf. Object-Oriented Programming (ECOOP '95), 1995.
[8] D. Giannakopoulou, “Model Checking for Concurrent Software Architectures,” doctoral dissertation, Imperial College, Univ. of London, Jan. 1999.
[9] D. Giannakopoulou, J. Kramer, and S.C. Cheung, “Analysing the Behaviour of Distributed Systems using Tracta,” J. Automated Software Eng., vol. 6, no. 1, Jan. 1999.
[10] R.J. van Glabbeek, “Linear Time-Branching Time Spectrum,” Proc. CONCUR `90: Theories of Concurrency: Unification and Extension, pp. 278–297, 1990.
[11] Formal Models and Semantics, Handbook of Theoretical CS. J. van Leeuwen ed., MIT Press, 1990.
[12] D.C. Luckham,J.J. Kenney,L.M. Augustin,J. Vera,D. Bryan,, and W. Mann,“Specification and analysis of system architecture usingRapide,” IEEE Transactions on Software Engineering, vol. 21, no. 4, pp. 336-355, Apr. 1995.
[13] N. Medvedovic and R.N. Taylor, “A Classification and Comparison Framework for Software Architecture Description Languages,” Technical Report UCI-ICS-97-02, Dept. of Information and Computer Science, Univ. of California, Irvine, Feb. 1997.
[14] R. Milner, A Calculus of Communicating Systems. Berlin: Springer Verlag, vol. 92, 1980.
[15] O. Nierstrasz, “Regular Types for Active Objects,” Proc. 11th Ann. ACM Conf. Object-Oriented Programming Systems, Languages, and Applications (OOPSLA '93), 1993.
[16] O. Nierstrasz and T.D. Meijler, “Requirements for a Composition Language,” Proc. European Conf. Object-Oriented Programming (ECOOP '94), pp. 147–161, 1995.
[17] CORBA/IIOP Specification. Revision 2.4.2, OMG 01-02-01, 2001.
[18] F. Plasil, D. Balek, and R. Janecek, “SOFA/DCUP Architecture for Component Trading and Dynamic Updating,” Proc. Fourth Int'l Conf. Configurable Distributed Systems, (ICCDS '98), pp. 43–52, 1998.
[19] F. Plasil and D. Mikusik, “Inheriting Synchronization Protocols via Sound Enrichment Rules,” Proc. Joint Modular Programming Languages Conf., Mar. 1997.
[20] F. Plasil, S. Visnovsky, and M. Besta, “Bounding Behavior via Protocols,” Proc. TOOLS USA `99, 1999.
[21] F. Plasil, S. Visnovsky, and M. Besta, “Behavior Protocols,” Technical Report 2000/7, Dept. of Software Eng., Charles Univ., Prague, Oct. 2000.
[22] R. Reussner, “Enhanced Component Interfaces to Support Dynamic Adaption and Extension,” Proc. Hawaii Int'l Conf. System Sciences (HICSS-34), Jan. 2001.
[23] A.W. Roscoe, The Theory and Practice of Concurrency. Prentice Hall, 1998.
[24] B. Selic, “Protocols and Ports: Reusable Inter-Object Behavior Patterns,” ObjecTime Limited, 1998.
[25] SOFA project, / SOFAsofa.html, 2000.
[26] P. Steyaert, C. Lucas, K. Mens, and T. D'Hondt, ”Reuse Contracts: Managing the Evolution of Reusable Assets,” Proc. Conf. Object-Oriented Programming Systems, Languages, and Applications, pp. 268–285, Oct. 1996.
[27] C. Szyperski, Component Software: Beyond Object-Oriented Programming. Addison-Wesley, 1997.
[28] D.M. Yellin and R.E. Strom, “Protocol Specifications and Component Adapters,” ACM Trans. Programming Languages and Systems, vol. 19, no. 2, pp. 292–333, 1997.
[29] H. Eriksson and M. Penker, UML Toolkit. Somerset, N.J.: John Wiley&Sons, 1997.
[30] J.E. Hopcroft and J.D. Ullman, Introduction to Automata Theory, Languages and Computation. Addison-Wesley, Apr. 1979.
[31] L. de Alfaro and T.A. Henziger, “Interface Automata,” Proc. Joint Eighth European Software Eng. Conf. and Ninth ACM SIGSOFT Symp. Foundations of Software Eng. (ESEC/FSE '01), 2001.
[32] A. Vallecillo and J. Hernandez, “Object Interoperability,” Proc. European Conf. Object-Oriented Programming (ECOOP '00), 2000.
[33] H.W. Schmidt and R.H. Reussner, “Generating Adapters for Concurrent Component Protocol Synchronization,” Proc. Fifth Int'l Federation for Information Processing Conf., Mar. 2002.

Index Terms:
Behavior protocols, component-based programming, software architecture.
Frantisek Plasil, Stanislav Visnovsky, "Behavior Protocols for Software Components," IEEE Transactions on Software Engineering, vol. 28, no. 11, pp. 1056-1076, Nov. 2002, doi:10.1109/TSE.2002.1049404
Usage of this product signifies your acceptance of the Terms of Use.